Model 100 firmware update to fix corruption issues

I get stuck on “Reading data from device…” when trying to open Chrysalis. Are there instructions for getting around this?

I did some clicking and poking around and eventually it went through and I think everything is OK now.

I would suggest editing the instructions to more strongly recommend, up front, selecting “Factory reset” on the firmware update screen unless there are (unikely) somehow customizations the user has managed to apply that they want to keep.

1 Like

I updated the instructions, it now shows how to put the keyboard into programmable mode, then do a flash, and a separate EEPROM reset (because doing an eeprom reset during flash while the keyboard is in bootloader mode doesn’t work yet).

1 Like

It doesn’t work for me. My Model 100s arrived today and first I wanted to update their fw and sully them with my layout.
When I connect it to USB while pressing the prog key, in Chrysalis’ (0.11.5) “Select a keyboard” combobox it shows “Keyboardio Model 100\nUnknown” (“Unknown”, where it otherwise would say sth. like “/dev/ttyACM0”).
I select it, connect, click on “UPDATE FIRMWARE” then “UPDATE”, click “CONTINUE” at the confirmation dialogue, and immediately get “Error flashing the firmware”.

When I normally connect it physically and connect from Chrysalis, the latter pulls and displays the KB’s layout. Going to fw-update from there, going through the steps (this time holding the prog key) the same happens after saving the EEPROM. This happens for both Model 100s.

I tried on Devuan as well as on Artix. The same Chrysalis AppImage did manage to fw update my Model 01.

So I thought, I first should push the latest Kaleidoscope release via means of the Arduino IDE, but that fails stating:
“Invalid library found in /home//.arduino15/packages/keyboardio/hardware/gd32/1.99.6/libraries/Kaleidoscope-LEDControl: no headers files (.h) found in /home//.arduino15/packages/keyboardio/hardware/gd32/1.99.6/libraries/Kaleidoscope-LEDControl”.
In that directory there indeed is only a file “”.

I don’t know what to try next. Any informed ideas?

Lets stick to Chrysalis for now.

Since you’re on Linux, can you try installing the udev rules at Chrysalis/60-kaleidoscope.rules at master · keyboardio/Chrysalis · GitHub ?

Just copy the contents of those to /etc/udev/rules.d/, and reload the rules with sudo udevadm control --reload-rules.

My suspicion is that you may have permissions to write to /dev/ttyACM*, but no permission to write to the DFU device when the keyboard is in bootloader mode.


Wow, you’re quick to answer.
I already had that rule file, a version from March '21, missing the model100 lines. Fixing that fixed the issue.
Thank you very much!

1 Like

This howto worked for me!

Sadly, this doesn’t work for me.

  1. I hold down ‘prog’.
  2. I insert the USB cable. The ‘prog’ key lights up red.
  3. I start up chrysalis (0.11.6-snapshot.141) . It has the 0.90.1 warning that directs me here.
  4. I connect to my Model 100 (on ‘unknown’ interface). It gives me the ‘Chrysalis…neds to update its firmware’ dialog.
  5. I follow through to the ‘Update your keyboard’s firmware’ page, leave the ‘Latest version’ (0.90.2) selected, no factory reset. I hit ‘Update’. I am not holding down any keys, and I do not press any keys on the Model100.

I just get a very fast ‘Error flashing the firmware’ in the bottom left corner. :frowning:

I have checked & reloaded the udev rules as suggested, to no avail.

Can you try it again, and create a debug bundle and share it? To create a debug bundle, go to “Report a Problem”, you can create and save the bundle from there. Additionally, if you could open the developer console (Control + Shift + I), see if there are any errors there (in red text), and if there are, take a screenshot of that too?

Well, in principle, yes: in practice, not so much.
The time delay was me going to bed. I’m sorry, I only tend to get time to look at nice things like this last thing at night.

Anyway, I got up, had a look, went through the process again to create the debug bundle and… it worked.

I can’t provide a good explanation why, I am 100% sure I followed the same procedure. I can only wave my hands and mutter about the keyboard being “a bit tired”, or something.

Anyway, all’s well that ends well; and I now have a shiny new Model100 with the keymap from one of my Model01s imported. I’m very happy .

Thanks as always for the product, the quick response, and for chrysalis.

Lord, I love these new keyswitches.

1 Like

I had the same problem and the proposed fix worked for me

I tried updating the firmware and it said that it was successfully updated but when i connect the keyboard again it still says it needs to be updated. When I go into the settings and select My Keyboard I only get a white screen and the console says “no supported devices found” in transport.js and some Cannot read properties of null (reading ‘focus’)

@jesse I would really like to get your opinion what I can do to fix this. Now that I flashed the firmware I have this weird behavior that the keyboard prints “(” and “)” when i press and release the left and right shift keys which is super annoying.

This is because the SpaceCadet plugin has been enabled. With the current default Model100 firmware installed by Chrysalis, this should be turned off unless it has been configured that way in EEPROM.

If Chrysalis isn’t communicating properly with your keyboard, there is one thing you can try. Close Chrysalis (if running), unplug the keyboard, press (and hold) the prog key, plugin in the keyboard (still holding the prog key), then start Chrysalis and try to connect and flash the firmware again.

You should be able to go into the chrysalis setitngs pane for your keyboard and turn off space cadet shift. That ought to fix it. @algernon was to have rolled a new firmware release a bit ago to make that unnecessary, but it looks like it never happened.

please see my previous message. i can’t even go into the settings for my keyboard without chrysalis crashing.

So sorry about that. What OS and OS version are you on? Is this the latest released version of Chrysalis or the latest development snapshot?

no worries, @jesse. i have 0.12.0 of Chrysalis installed and this is my OS version:
LSB Version: :core-4.1-amd64:core-4.1-noarch
Distributor ID: Fedora
Description: Fedora release 36 (Thirty Six)
Release: 36
Codename: ThirtySix

I’ve just built out a Fedora 36 box and confirmed that…it’s completely broken. The serialport library we’re relying on…isn’t doing what it’s supposed to be doing for me.

From the command line, what does this command get you?

npx @serialport/list -f jsonline