Model 100 won't talk to Chrysallis

So I unboxed my Model 100 tonight - what a beauty!

I typed for a few minutes just fine, then wanted to move some keys around. I installed Chrysalis from Homebrew, and it gave me a warning about EEPROM layers not being supported. I stupidly pressed a button on the right without really understanding it, and all of the keys stopped responding - looks like the default keymap was deleted.

No problem, I thought I’d just reinstall the firmware; so, I went into Chrysalis and told it to reinstall. It started the process, and I held down Prog as instructed - however, it never flashed (maybe Prog isn’t Prog since my keymap went away :()

I sat there about 10 minutes, and it never made any progress. I quit Chrysalis, unplugged / replugged the keyboard, and now whenever I try to reconnect to it the communication times out.

Is there some other way I can reinstall the firmware or diagnose the connection time outs? I really hope I have not bricked it already!

make sure you have at least version 0.11.3 of chrysalis, some of the earlier versions have issues with flashing the firmware

You can reset your firmware by holding PROG while plugging in your keyboard. More detail at Troubleshooting Firmware Upload Issues · keyboardio/Kaleidoscope Wiki · GitHub

Doing this allowed me to re-flash the default firmware, which restored the factory settings.

In general, though, I haven’t been able to use the normal flash sequence, where you hold the PROG button with the keyboard already powered on. I have only gotten flashing to work by doing the hack PROG-while-plugging-in trick.

1 Like

There are a couple of things in play here:

  • As @superfell said, Chrysalis prior to 0.11.3 had a bug that made flashing not work, at all. It backed up the EEPROM contents, cleared it in preparation for flashing, but flashing itself failed. That left the keyboard in a half-bricked state.
  • The current firmware also has a bug where saving… pretty much anything larger than 32 bytes can cause data loss on the firmware side, which manifests as corrupted data saved. We will have a fix out in a couple of hours.
  • If flashing with the Arduino IDE, the Arduino IDE doesn’t know how to put the Model 100 into programmable mode (yet), so you have to do the hold-PROG-while-plugging-in trick @msarahan mentioned above. We know how to teach the reset sequence to the Arduino IDE, we just didn’t get around to implement it yet. This will be fixed soon, too.

It is really, really, really hard to completely brick the Model 100. Even intentionally. And accidentally, that’s practically impossible. There is always a way back, even if your firmware ends up crashing on boot. As long as you do not overwrite the bootloader (not possible without specialized hardware), you can restore it.

The PROG key is always PROG, no matter what you map it to. What matters is the location of the key (first key on the first row on the left half), not what it is mapped to. It is handled by the bootloader, not the firmware, and the bootloader doesn’t even look at the keymap. The bootloader is also something you can’t overwrite without specialized hardware and explicit intent.

In short, my advice for now would be to wait a few hours until I release the updated firmware. I will make an announcement topic here on the forums once I’ve done so.

When the firmware is out, you can start up Chrysalis, go to Preferences, enable automatic firmware updates, which will then download the newest firmware, and will offer it for flashing once we get there. When the firmware is downloaded, unplug your Model 100, hold the PROG key, plug it in, and then Chrysalis will be able to connect to it, and will offer you to flash new firmware. Select the new firmware (it will be version 0.90.1), flash it. Then, to make sure you’re starting with a clean slate, go to Preferences, then My Keyboard, and hit the “Reset to factory settings” button. There’s currently a bug where that never “finishes”, but you can restart Chrysalis after ~10 seconds, and you’ll have a working keyboard.

This isn’t the easiest process, but hopefully you won’t have to repeat it ever again. (Or if you do, we hope to make the restoration process much smoother in the not too distant future)

2 Likes

Thanks for all the help and information everyone! Sounds like I haven’t bricked it, phew! Will try out the advice mentioned here

ok! The combination of auto updating to the latest firmware just put out, plus holding prog while plugging in resolved my issues! I was able to reload the default layout from Chrysalis and I am back in business. Thank you so much!

1 Like

I am now also having problems with connection timeouts and Chrysalis.

I got the model 100 yesterday. I installed the newest Chrysalis and updated the firmware on the keyboard to the newest which was after the fix released yesterday. For a large part of the day yesterday, I was using it fine. I made my own color map and defined the few keys I wanted to.

Today, I wanted to connect to export all my settings since I ordered 2 model 100s and wanted a copy on my home for when the second arrived since this one is going in the office on Monday.

I have tried 10 times. It detects the keyboard, but when I say connect it always times out. Keyboard is working fine. I am running Windows 11.