Firmware upload not updating keymaps (but can update led effects)

I carefully followed the tutorial using the arduino ide, and i succeeded in removing some of the extra LED effects that I don’t want, by uploading modified firmware that strips them out (I also removed all keymaps except qwerty, as that’s the only one i’m interested in currently). However, when I map the Prog key to “Key_Escape”, verify and upload, the key does not remap. I also tried remapping Key_1 to Key_4, it uploads fine, but the keyboard still types 1, not 4 as in the firmware which appeared to have uploaded successfully. This is strange because I was able to strip some of the LED effects so something is clearly updating. I also tried the same with the default firmware (i.e., with none of my changes re. stripping out LED effects), and changed only the blank Prog to Esc, and Key_1 to Key_4, but neither are reflected in operation of the keyboard after seeming to successfully upload in arduino ide, the keyboard flashed red and responded with done uploading - prog does not produce esc and key 1 is still key 1, and not key 4.

I’m on latest Catalina and latest ardiuno ide.

How should I proceed?

Update: I was playing about with Chrysalis, (not sure what exactly this is doing) and managed to change prog to the number 2 and the keyboard now responds with that, so this method has somehow had an impact. But if I understand correctly, Chrysalis is still alpha.

Update 2: I’ve found that in Chrysalis all I need to do is “save changes”, in the bottom right, and that effectively does the upload, flashing the firmware (though this seems very fast in comparison to the time taken with the arduino method). Using this method I’m getting success in remapping keys.


It has probably to do with crysalis storing the layout in eeprom which needs to be wiped using chrysalis for a custom layout to work or so. Related topic is here Stuck with old custom layout

Hello @miwallr,

Like @alfalfasprossen stated, this is due to the keyboard layout being stored in EEPROM.

Originally the layout used to be part of the firmware and that is why there is still a keyboard layout in the default Arduino sketch, however it has since been moved to EEPROM which allows you to edit the layout using Chrysalis.

I would recommend only editing the layout in Chrysalis and ignoring the keboard layout in the Arduino sketch since this is more convenient and intuitive.

1 Like

Great - that explains it, including the fix if wanted, in the link by @alfalfasprossen above.