diff --git a/Software/Gravity/Gravity.ino b/Software/Gravity/Gravity.ino index a1f09a5..d120d97 100644 --- a/Software/Gravity/Gravity.ino +++ b/Software/Gravity/Gravity.ino @@ -154,7 +154,7 @@ U8G2_SSD1306_128X64_NONAME_2_HW_I2C u8g2(U8G2_R2, SCL, SDA, U8X8_PIN_NONE); RotaryEncoder encoder(ENC_D1_PIN, ENC_D2_PIN, RotaryEncoder::LatchMode::TWO03); //Font -const uint8_t velvetscreen[437] U8G2_FONT_SECTION("velvetscreen") = +const PROGMEM uint8_t velvetscreen[437] U8G2_FONT_SECTION("velvetscreen") = "\64\0\2\2\3\3\2\3\4\5\5\0\0\5\0\5\0\0\221\0\0\1\230 \4\200\134%\11\255tT" "R\271RI(\6\252\334T\31)\7\252\134bJ\12+\7\233\345\322J\0,\5\221T\4-\5\213" "f\6.\5\211T\2/\6\244\354c\33\60\10\254\354T\64\223\2\61\7\353\354\222\254\6\62\11\254l" @@ -170,7 +170,7 @@ const uint8_t velvetscreen[437] U8G2_FONT_SECTION("velvetscreen") = "\7p\10\255\364V\266\323\2q\7\255\364\216\257\5r\10\253d\242\32*\2t\6\255t\376#w\11" "\255\364V\245FN\13x\6\233dR\7\0\0\0\4\377\377\0"; -const uint8_t stkL[569] U8G2_FONT_SECTION("stk-l") = +const PROGMEM uint8_t stkL[569] U8G2_FONT_SECTION("stk-l") = "\25\0\4\4\4\5\2\1\6\17\27\1\0\27\0\0\0\1\77\0\0\2\34%'\17\37\313\330R#&" "\32!F\14\211I\310\24!\65\204(MF\21)Cd\304\10\62b\14\215\60Vb\334\20\0/\14" "\272\336\336d\244\350\263q\343\0\60\37|\377\12\32\25\17\2\35\263\253ChD\30\21bB\14\242S" @@ -649,8 +649,7 @@ void loadState() { addr = addr + sizeof(extClockPPQN); EEPROM.get(addr, reverseEnc); } else { - //calibrateCVs(); - saveState(); + saveState(); //write default values to EEPROM EEPROM.write(1023, memCode); } } @@ -663,6 +662,7 @@ void reboot() { void calibrateCVs() { CV1Calibration = analogRead(ANALOGUE_INPUT_1_PIN); CV2Calibration = analogRead(ANALOGUE_INPUT_2_PIN); + //saveState(); showDone = true; updateScreen(); } diff --git a/Software/Gravity/Interactions.ino b/Software/Gravity/Interactions.ino index ce0ce44..95a542a 100644 --- a/Software/Gravity/Interactions.ino +++ b/Software/Gravity/Interactions.ino @@ -64,6 +64,8 @@ void checkInputs() { } else if (displayScreen == 2 && menuItem == 2) { reverseEnc = !reverseEnc; saveState(); + showDone = true; + updateScreen(); } else if (displayScreen == 2 && menuItem == 3) { EEPROM.put(1023, memCode - 1); reboot(); diff --git a/Software/Gravity/UI.ino b/Software/Gravity/UI.ino index 8f8aacc..021ba83 100644 --- a/Software/Gravity/UI.ino +++ b/Software/Gravity/UI.ino @@ -6,7 +6,7 @@ void updateScreen() { byte width; //String textToShow; String valueStr; - char valueChar[16]; + //char valueChar[16]; u8g2.setDrawColor(1); if (displayScreen == 0) { @@ -39,11 +39,11 @@ void updateScreen() { } else if (i == 3 && masterClockMode == 0) { valueStr = "RANGE:"; } - valueStr.toCharArray(valueChar, 16); + //valueStr.toCharArray(valueChar, 16); if (menuItem == i && insideTab) { - u8g2.drawButtonUTF8(leftOffset, 8 + (i-1) *11, U8G2_BTN_BW1|U8G2_BTN_INV, width, 1, 2, valueChar ); + u8g2.drawButtonUTF8(leftOffset, 8 + (i-1) *11, U8G2_BTN_BW1|U8G2_BTN_INV, width, 1, 2, valueStr.c_str() ); } else { - u8g2.drawButtonUTF8(leftOffset, 8 + (i-1) *11, U8G2_BTN_BW0, width, 1, 2, valueChar); + u8g2.drawButtonUTF8(leftOffset, 8 + (i-1) *11, U8G2_BTN_BW0, width, 1, 2, valueStr.c_str()); } } if (masterClockMode != 0 && menuItem == 0) { //to make main param non selectable for external clock @@ -72,14 +72,14 @@ void updateScreen() { valueStr = String(bpmModulationRange * 10); } - valueStr.toCharArray(valueChar, 16); + //valueStr.toCharArray(valueChar, 16); if (menuItem == i && insideTab && (menuItemSelected || shiftBtnPushed)) { - u8g2.drawButtonUTF8(leftOffset + 37, 8 + (i-1) *11, U8G2_BTN_BW1, 26, 2, 2, valueChar ); + u8g2.drawButtonUTF8(leftOffset + 37, 8 + (i-1) *11, U8G2_BTN_BW1, 26, 2, 2, valueStr.c_str() ); } else if (menuItem == i && insideTab && (!menuItemSelected || !shiftBtnPushed)) { - u8g2.drawButtonUTF8(leftOffset + 37, 8 + (i-1) *11, U8G2_BTN_BW1|U8G2_BTN_INV, 26, 2, 2, valueChar ); + u8g2.drawButtonUTF8(leftOffset + 37, 8 + (i-1) *11, U8G2_BTN_BW1|U8G2_BTN_INV, 26, 2, 2, valueStr.c_str() ); } else { - u8g2.drawButtonUTF8(leftOffset + 37, 8 + (i-1) *11, U8G2_BTN_BW0, 26, 2, 2, valueChar ); + u8g2.drawButtonUTF8(leftOffset + 37, 8 + (i-1) *11, U8G2_BTN_BW0, 26, 2, 2, valueStr.c_str() ); } } @@ -141,11 +141,11 @@ void updateScreen() { } else if (i == 3) { valueStr = "MOD:"; } - valueStr.toCharArray(valueChar, 16); + //valueStr.toCharArray(valueChar, 16); if (menuItem == i && insideTab) { - u8g2.drawButtonUTF8(leftOffset, 8 + (i-1) *11, U8G2_BTN_BW1|U8G2_BTN_INV, width, 1, 2, valueChar ); + u8g2.drawButtonUTF8(leftOffset, 8 + (i-1) *11, U8G2_BTN_BW1|U8G2_BTN_INV, width, 1, 2, valueStr.c_str() ); } else { - u8g2.drawButtonUTF8(leftOffset, 8 + (i-1) *11, U8G2_BTN_BW0, width, 1, 2, valueChar); + u8g2.drawButtonUTF8(leftOffset, 8 + (i-1) *11, U8G2_BTN_BW0, width, 1, 2, valueStr.c_str()); } } @@ -178,18 +178,18 @@ void updateScreen() { valueStr = "CV2"; } - valueStr.toCharArray(valueChar, 16); + //valueStr.toCharArray(valueChar, 16); if (i == 2 && channels[displayTab - 1].mode == 2) { //EDIT PATTERN thing if (menuItem == i && insideTab) { u8g2.drawBox(leftOffset + 54, ((i-1) * 11), 11, 11); } } else { if (menuItem == i && insideTab && (menuItemSelected || shiftBtnPushed)) { - u8g2.drawButtonUTF8(leftOffset + 37, 8 + (i-1) *11, U8G2_BTN_BW1, 26, 2, 2, valueChar ); + u8g2.drawButtonUTF8(leftOffset + 37, 8 + (i-1) *11, U8G2_BTN_BW1, 26, 2, 2, valueStr.c_str() ); } else if (menuItem == i && insideTab && (!menuItemSelected || !shiftBtnPushed)) { - u8g2.drawButtonUTF8(leftOffset + 37, 8 + (i-1) *11, U8G2_BTN_BW1|U8G2_BTN_INV, 26, 2, 2, valueChar ); + u8g2.drawButtonUTF8(leftOffset + 37, 8 + (i-1) *11, U8G2_BTN_BW1|U8G2_BTN_INV, 26, 2, 2, valueStr.c_str() ); } else { - u8g2.drawButtonUTF8(leftOffset + 37, 8 + (i-1) *11, U8G2_BTN_BW0, 26, 2, 2, valueChar ); + u8g2.drawButtonUTF8(leftOffset + 37, 8 + (i-1) *11, U8G2_BTN_BW0, 26, 2, 2, valueStr.c_str() ); } } } @@ -198,17 +198,17 @@ void updateScreen() { leftOffset = 29; width = 55; if (channels[displayTab - 1].mode == 0) { - valueStr = "SUBDIVISION"; + valueStr = F("SUBDIVISION"); } else if (channels[displayTab - 1].mode == 1) { - valueStr = "SKIP CHANCE"; + valueStr = F("SKIP CHANCE"); } else if (channels[displayTab - 1].mode == 2) { - valueStr = "PATTERN"; + valueStr = F("PATTERN"); } - valueStr.toCharArray(valueChar, 16); + //valueStr.toCharArray(valueChar, 16); if ((!insideTab && shiftBtnPushed) || (insideTab && menuItem == 0)) { - u8g2.drawButtonUTF8(leftOffset, 41, U8G2_BTN_BW1|U8G2_BTN_INV|U8G2_BTN_HCENTER, width, 0, 3, valueChar ); + u8g2.drawButtonUTF8(leftOffset, 41, U8G2_BTN_BW1|U8G2_BTN_INV|U8G2_BTN_HCENTER, width, 0, 3, valueStr.c_str() ); } else { - u8g2.drawButtonUTF8(leftOffset, 41, U8G2_BTN_BW0|U8G2_BTN_HCENTER, width, 1, 2, valueChar ); + u8g2.drawButtonUTF8(leftOffset, 41, U8G2_BTN_BW0|U8G2_BTN_HCENTER, width, 1, 2, valueStr.c_str() ); } if (channels[displayTab - 1].mode == 0) { @@ -226,14 +226,14 @@ void updateScreen() { valueStr = "B" + String(channels[displayTab - 1].seqPattern - 7); } } - valueStr.toCharArray(valueChar, 16); + //valueStr.toCharArray(valueChar, 16); u8g2.setFont(stkL); if ((!insideTab && shiftBtnPushed) || (insideTab && menuItem == 0 && (menuItemSelected || shiftBtnPushed))) { - u8g2.drawButtonUTF8(leftOffset, 28, U8G2_BTN_BW1|U8G2_BTN_HCENTER, width, 0, 3, valueChar ); + u8g2.drawButtonUTF8(leftOffset, 28, U8G2_BTN_BW1|U8G2_BTN_HCENTER, width, 0, 3, valueStr.c_str() ); } else if (insideTab && menuItem == 0 && !menuItemSelected) { - u8g2.drawButtonUTF8(leftOffset, 28, U8G2_BTN_BW1|U8G2_BTN_INV|U8G2_BTN_HCENTER, width, 0, 3, valueChar ); + u8g2.drawButtonUTF8(leftOffset, 28, U8G2_BTN_BW1|U8G2_BTN_INV|U8G2_BTN_HCENTER, width, 0, 3, valueStr.c_str() ); } else { - u8g2.drawButtonUTF8(leftOffset, 28, U8G2_BTN_BW0|U8G2_BTN_HCENTER, width, 0, 3, valueChar ); + u8g2.drawButtonUTF8(leftOffset, 28, U8G2_BTN_BW0|U8G2_BTN_HCENTER, width, 0, 3, valueStr.c_str() ); } } @@ -317,7 +317,7 @@ void updateScreen() { //Settings Screen else if (displayScreen == 2) { - u8g2.drawStr(8, 5,"SETTINGS" ); + u8g2.drawStr(8, 5, "SETTINGS"); u8g2.drawStr(102, 5, version ); u8g2.drawHLine(0, 8, 128); lastMenuItem = 3; @@ -325,23 +325,23 @@ void updateScreen() { for (byte i = 0; i <= lastMenuItem; i++) { switch(i) { case 0: - valueStr = "CALIBRATE CV"; + valueStr = F("CALIBRATE CV"); break; case 1: - valueStr = "ROTATE SCREEN"; + valueStr = F("ROTATE SCREEN"); break; case 2: - valueStr = "REVERSE ENC"; + valueStr = F("REVERSE ENCODER");//"REVERSE ENC"; break; case 3: - valueStr = "FULL RESET"; + valueStr = F("FULL RESET"); break; }; - valueStr.toCharArray(valueChar, 16); + //valueStr.toCharArray(valueChar, 16); if (menuItem == i) { - u8g2.drawButtonUTF8(8, 19 + (i*11), U8G2_BTN_BW0|U8G2_BTN_INV, width, 2, 3, valueChar ); + u8g2.drawButtonUTF8(8, 19 + (i*11), U8G2_BTN_BW0|U8G2_BTN_INV, width, 2, 3, valueStr.c_str() ); } else { - u8g2.drawButtonUTF8(8, 19 + (i*11), U8G2_BTN_BW0, width, 2, 3, valueChar ); + u8g2.drawButtonUTF8(8, 19 + (i*11), U8G2_BTN_BW0, width, 2, 3, valueStr.c_str() ); } } }