Layers seem to not change after uploading modified firmware

Hi, I recently started playing with my Model01 and I wanted to change the layout and try out some plugins. I started with uploading the default firmware and it worked without any issues. Then I added the SpaceCadet plugin with a few additional keys and it also worked flawlessly. And then I wanted to do some small changes to various layers. To my surprise nothing changed after changing the FUNCTION layer. I tried a few different things and then I thought that maybe I screwed something up. So I cloned the firmware repo and uploaded without any changes. Then I changed the prog key to Key_Q, the whole diff looks like following:

diff --git a/Model01-Firmware.ino b/Model01-Firmware.ino
index f30171d..7c0909b 100644
--- a/Model01-Firmware.ino
+++ b/Model01-Firmware.ino
@@ -174,7 +174,7 @@ KEYMAPS(

 #if defined (PRIMARY_KEYMAP_QWERTY)
   [PRIMARY] = KEYMAP_STACKED
-  (___,          Key_1, Key_2, Key_3, Key_4, Key_5, Key_LEDEffectNext,
+  (Key_Q,          Key_1, Key_2, Key_3, Key_4, Key_5, Key_LEDEffectNext,
    Key_Backtick, Key_Q, Key_W, Key_E, Key_R, Key_T, Key_Tab,
    Key_PageUp,   Key_A, Key_S, Key_D, Key_F, Key_G,
    Key_PageDown, Key_Z, Key_X, Key_C, Key_V, Key_B, Key_Escape,

After uploading the firmware prog still doesn’t do anything. Am I missing something?

Just to make sure that I actually upload anything I re-added the SpaceCadet plugin and it still works and prog still doesn’t work. The current version is here: https://github.com/drogus/Model01-Firmware/commit/05ad151752f95dcc1852019169ed8ed207f85ece

Have you used Chrysalis at any point?

Because when you first use it, it copies the then-current keymap to EEPROM, so it can tweak it, and sets things up so that the EEPROM copy is the default. You can wipe the EEPROM clean from within Chrysalis to restore it back to factory settings, which includes the in-firmware keymap as the default.

I’m 99% sure this is the problem, all the symptoms point toward this. The reason SpaceCadet works is because it doesn’t touch the keymap, it overrides how certain keys work, without touching the keymap itself. So wherever your parens are, SpaceCadet will handle that. Changing PROG to Q didn’t work, because the keyboard was most likely using the factory layout Chrysalis copied to EEPROM.

1 Like

Yes, I have used Chrysalis before playing with the code. I have reset the EEPROM to defaults and it works without any problems, thanks!

1 Like