Problems uploading custom firmware: reverts back to Chrysalis layer definition

Hi all,

I’m having problems updating the firmware on my Model01. The Chrysalis firmware seems to work ok, but when I try to flash using the Arduino IDE or CLI everything seems to work ok (Prog key goes red, and the little red light dance happens), but the uploaded layout isn’t right. Layer 0 seems to be taken from the Chrysalis config, which is weird because the first time I did this I was running a previous custom firmware which I had flashed a few weeks ago and not the Chrysalis firmware. Layer 1 also seems to be ok and activated by NumLock, but the palm keys don’t switch to layer 2 anymore.

Potentially relevant points:

  • The LED button breathes blue after I flash my config or the default config, I don’t remember it doing this before.
  • The keyboardio board version is 1.94.0-beta in the IDE
  • On the CLI I’m building using the latest version of Model01-Firmware (git sha c41e951).
  • I’ve tried building using an updated version of my custom ino file, the example ino from the IDE and the default ino from the repo, but all seem to produce the same results.

Any suggestions for what to try or what might be wrong? Thanks.

The led key glowing blue for a few seconds as the keyboard boots is from the BootGreetingEffect plugin, and has been default for as long as I can remember.

Wish I could help you with the rest. Sorry!

Have you tried resetting the EEPROM completely (with Chrysalis)?

What preferences are set in Chrysalis for your keyboard? You could only be seeing the eeprom layers.

Thanks for the tip. Didn’t know I could do that. I gave it a go, and it’s better now, but I still can’t seem to upload a custom firmware.

I am getting errors on the CLI which I didn’t pay much attention to at first, since something seemed to get updated the first time and Chrysalis seems to work, but now I’m thinking this might be something. Also, I’m connecting to my kbd through my monitor, I wonder if that could be a factor.

BOARD_HARDWARE_PATH="/Users/misaka/Documents/Arduino/hardware" /Users/misaka/Documents/Arduino/hardware/keyboardio/avr/libraries/Kaleidoscope/bin//kaleidoscope-builder flash
Building ./Model01-Firmware 0.0.0-g
v1.22-63-gc41e-dirty into /var/folders/3_/vs8c57m53xd1ltmvsxb6gt640000gn/T//kaleidoscope-misaka/sketch/8661818338-Model01-Firmware.ino/output...
- Size: firmware/Model01-Firmware/Model01-Firmware-0.0.0-g
v1.22-63-gc41e-dirty.elf
  - Program:   24742 bytes (86.3% Full)
  - Data:       1329 bytes (51.9% Full)

To update your keyboard's firmware, hold down the 'Prog' key on your keyboard,
and then press 'Enter'.

When the 'Prog' key glows red, you can release it.


2019-06-23 22:48:44.754 system_profiler[9880:16877525] SPUSBDevice: IOCreatePlugInInterfaceForService failed 0xe00002be
2019-06-23 22:48:48.004 system_profiler[9890:16877606] SPUSBDevice: IOCreatePlugInInterfaceForService failed 0xe00002be
Connecting to programmer: .
Found programmer: Id = "CATERIN"; type = S
    Software Version = 1.0; No Hardware Version given.
Programmer supports auto addr increment.
Programmer supports buffered memory access with buffersize=128 bytes.

Programmer supports the following devices:
    Device code: 0x44

I think resetting the EEPROM has gotten updates through Chrysalis working, so I think that that’s sorted now, thanks.

Alright. Finally got somewhere tonight. I dissected my configuration file and the problem is brought in when I setup the EEPROMKeymap plugin. Without it I can configure the key layout, with it it reverts to, presumably, what’s been uploaded into EEPROM via Chrysalis.

I’ll have to give clearing the EEPROM another go. I thought I did it in Chrysalis but probably not.

Thanks all for the help and advice.

–Misha

2 Likes