keyboardio / Chrysalis

Graphical configurator for Kaleidoscope-powered keyboards
https://github.com/keyboardio/Chrysalis#chrysalis
GNU General Public License v3.0
496 stars 64 forks source link

large emulated EEPROM sizes locks up firmware #428

Closed mattvenn closed 5 years ago

mattvenn commented 5 years ago

Describe the bug The Raise keyboard uses the SAMD21G microcontroller and the Dygma fork of the SAMD Arduino framework: https://github.com/Dygmalab/ArduinoCore-samd/tree/algernons-hacks

The SAMD21 doesn't have EEPROM like the 32U4, so we are using a FlashStorage library to implement this: https://github.com/cmaglie/FlashStorage And setting the EEPROM_EMULATION_SIZE definition in boards.txt.

Using the fuses I have reserved 16k for emulated EEPROM, however I run into problems at EEPROM_EMULATION_SIZE settings larger than 8k.

To Reproduce

Change EEPROM_EMULATION_SIZE to 16384 or 16383. In both cases the firmware won't boot and doesn't establish USB connection.

I have compiled a simple test program that just prints out EEPROM.length() on the USB Serial and omits the Kaleidoscope libraries. This works as expected with a setting of 16k.

mattvenn commented 5 years ago

wrong repo!