Chrysalis writes to EEPROM upon first connection to a keyboard with an erased EEPROM, even if not asked to save a layout. This means that using Chrysalis to upgrade firmware makes the keyboard vulnerable to keymap scrambling if a custom sketch is later flashed via the Kaleidoscope Makefile or Arduino IDE.
To Reproduce
invoke eeprom.erase in Focus
invoke keymap.custom in Focus
observe that all entries are 65535
open Chrysalis
connect to the keyboard
immediately exit Chrysalis
invoke keymap.custom in Focus
observe that it appears to have been initialized by Chrysalis
Expected behavior
Chrysalis should not write to EEPROM unless explicitly requested. This is a source of frustration for users who use Chrysalis as recommended to update their firmware to work around, e.g., buggy factory firmware on the Model 100, but who primarily want to use non-Chrysalis methods of customizing their firmware.
Screenshots
output of keymap.custom immediately after eeprom.erase
Describe the bug
Chrysalis writes to EEPROM upon first connection to a keyboard with an erased EEPROM, even if not asked to save a layout. This means that using Chrysalis to upgrade firmware makes the keyboard vulnerable to keymap scrambling if a custom sketch is later flashed via the Kaleidoscope
Makefile
or Arduino IDE.To Reproduce
eeprom.erase
in Focuskeymap.custom
in Focuskeymap.custom
in FocusExpected behavior
Chrysalis should not write to EEPROM unless explicitly requested. This is a source of frustration for users who use Chrysalis as recommended to update their firmware to work around, e.g., buggy factory firmware on the Model 100, but who primarily want to use non-Chrysalis methods of customizing their firmware.
Screenshots
output of
keymap.custom
immediately aftereeprom.erase
output of
keymap.custom
after connecting Chrysalis after erasing EEPROM, then immediately disconnectingDesktop
Additional context
Add any other context about the problem here.