Porting Model 01 Firmware to Model 100?

Will my Model 01 firmware work on the Model 100?

Apart from custom keymaps/layers, I also have custom LEDs on each layer, and mouse key functionality.

It should require very minimal changes, if any.

2 Likes

Resurrecting this topic. I have a bunch of customization in my 01 .ino . What are the steps to install that on the 100 ?

I just went to the Kaleidoscope git repository looking for a default Model 100 firmware .ino to see what needed to change, and noticed the wiki doesn’t have a link to the Model 100 directory. I found the directory here:

This wiki page should perhaps be updated:

If you navigate those waters yourself, please report back. I’m in the same position – I have a shiny new Model 100 which I’d love to use but I’m burnt out from my day job and reading more docs etc is the last thing I want to do at the moment!

If you’re building firmware using Arduino, please make sure to update the Arduino board support for Kaleidoscope Keyboards (GD32) to at least 1.99.6, to get the version with the fix for the USB corruption bug. Earlier versions might still contain the bug.

I had a very customised model 01 firmware. It did take a bit of syntax change to get it ready for model 100, but that’s largely because I hadn’t updated it for a long time and kaleidoscope had changed a lot in the meantime. Once I’d done the basic syntax changes, it didn’t take much. If you’ve updated more recently than the 2 years old my firmware was, it’ll take even less effort.

1 Like

It’s been at least two years since I updated it. Fun times! I found that default Model 100 .ino and I’m planning to put that side by side with my customized Model 01 .ino and sort through the changes I need to make to get the new keyboard to do what the old one did. I’ll update this thread with my progress. :slight_smile:

You guys got your keyboards? I got the keycaps like two weeks ago, but there have been no updates on the keyboard itself since the tracking number was assigned. :cry:

1 Like

bummer. Yes, I got mine yesterday, along with the keycaps.

Moof.

First effort at merging the files seemed like it was going to be straightforward-- the Model 100 file is obviously descended from the same original config file I was using, so I was able to compare section by section and make changes that seemed to make sense. I was hopeful it would compile first shot.

Not so. It generated a bunch of errors and I don’t have time right now to try to sort them out-- I need to get other stuff done. Guess I’m not using the new keyboard yet. :-/

Errors if anyone is interested:


Arduino: 1.8.10 (Mac OS X), Board: "Keyboardio Model 100, dfu-util (DFU - Keyboardio DAPBoot bootloader)"

In file included from /Users/jennifer/Library/Arduino15/packages/keyboardio/hardware/gd32/1.99.6/libraries/Kaleidoscope/src/Kaleidoscope.h:82,
from /Users/jennifer/Dropbox/Making/hackery/Keyboardio/Model100-Firmware.custom.220928/Model100-Firmware.custom.220929/Model100-Firmware.custom.220929.ino:11:
/Users/jennifer/Library/Arduino15/packages/keyboardio/hardware/gd32/1.99.6/libraries/Kaleidoscope/src/kaleidoscope/layers.h:38:4: error: could not convert ‘{(((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(58, 0))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(59, 0))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(60, 0))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(61, 0))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(62, 0))), (((void){}), kaleidoscope::convertToKey(Key_LEDEffectNext)), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(79, 0))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(63, 0))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(64, 0))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65, 0))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(66, 0))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(67, 0))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(68, 0))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(81, 0))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::addFlags(kaleidoscope::convertToKey(kaleidoscope::Key(47, 0)), 8))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::addFlags(kaleidoscope::convertToKey(kaleidoscope::Key(48, 0)), 8))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(47, 0))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(48, 0))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(69, 0))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::plugin::OneShotLayerKey(((uint8_t)FUNCTION)))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(82, 0))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::plugin::OneShotLayerKey(((uint8_t)FUNCTION)))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(80, 0))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(82, 0))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(81, 0))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(79, 0))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(76, 0))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(80, 0))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(40, 0))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(49, 0))), (((void){}), kaleidoscope::convertToKey((((void){}), kaleidoscope::addFlags(kaleidoscope::convertToKey(kaleidoscope::Key(49, 0)), 8))))}’ from ‘’ to ‘Key’ {aka ‘kaleidoscope::Key’}
38 | }; NL
| ^
| |
|
/Users/jennifer/Library/Arduino15/packages/keyboardio/hardware/gd32/1.99.6/libraries/Kaleidoscope/src/kaleidoscope/layers.h:51:3: note: in expansion of macro ‘END_KEYMAPS’
51 | END_KEYMAPS
| ^~~~~~~~~~~
/Users/jennifer/Dropbox/Making/hackery/Keyboardio/Model100-Firmware.custom.220928/Model100-Firmware.custom.220929/Model100-Firmware.custom.220929.ino:211:1: note: in expansion of macro ‘KEYMAPS’
211 | KEYMAPS(
| ^~~~~~~
/Users/jennifer/Library/Arduino15/packages/keyboardio/hardware/gd32/1.99.6/libraries/Kaleidoscope/src/kaleidoscope/layers.h:38:4: error: could not convert ‘{(((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(58, 0))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(59, 0))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(60, 0))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(61, 0))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(62, 0))), (((void){}), kaleidoscope::convertToKey(Key_LEDEffectNext)), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(79, 0))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(63, 0))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(64, 0))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65, 0))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(66, 0))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(67, 0))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(68, 0))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(81, 0))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::addFlags(kaleidoscope::convertToKey(kaleidoscope::Key(47, 0)), 8))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::addFlags(kaleidoscope::convertToKey(kaleidoscope::Key(48, 0)), 8))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(47, 0))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(48, 0))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(69, 0))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::plugin::OneShotLayerKey(((uint8_t)FUNCTION)))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(82, 0))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::plugin::OneShotLayerKey(((uint8_t)FUNCTION)))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(80, 0))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(82, 0))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(81, 0))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(79, 0))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(76, 0))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(80, 0))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(40, 0))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(65535))), (((void){}), kaleidoscope::convertToKey(kaleidoscope::Key(49, 0))), (((void){}), kaleidoscope::convertToKey((((void){}), kaleidoscope::addFlags(kaleidoscope::convertToKey(kaleidoscope::Key(49, 0)), 8))))}’ from ‘’ to ‘const Key’ {aka ‘const kaleidoscope::Key’}
38 | }; NL
| ^
| |
|
/Users/jennifer/Library/Arduino15/packages/keyboardio/hardware/gd32/1.99.6/libraries/Kaleidoscope/src/kaleidoscope/layers.h:51:3: note: in expansion of macro ‘END_KEYMAPS’
51 | END_KEYMAPS
| ^~~~~~~~~~~
/Users/jennifer/Dropbox/Making/hackery/Keyboardio/Model100-Firmware.custom.220928/Model100-Firmware.custom.220929/Model100-Firmware.custom.220929.ino:211:1: note: in expansion of macro ‘KEYMAPS’
211 | KEYMAPS(
| ^~~~~~~
Multiple libraries were found for “Kaleidoscope-EEPROM-Settings.h”
Used: /Users/jennifer/Library/Arduino15/packages/keyboardio/hardware/gd32/1.99.6/libraries/Kaleidoscope-EEPROM-Settings
Multiple libraries were found for “Kaleidoscope-LEDEffect-Rainbow.h”
Used: /Users/jennifer/Library/Arduino15/packages/keyboardio/hardware/gd32/1.99.6/libraries/Kaleidoscope-LEDEffect-Rainbow
Multiple libraries were found for “Kaleidoscope-Escape-OneShot.h”
Used: /Users/jennifer/Library/Arduino15/packages/keyboardio/hardware/gd32/1.99.6/libraries/Kaleidoscope-Escape-OneShot
Multiple libraries were found for “Kaleidoscope-SpaceCadet.h”
Used: /Users/jennifer/Library/Arduino15/packages/keyboardio/hardware/gd32/1.99.6/libraries/Kaleidoscope-SpaceCadet
Multiple libraries were found for “Kaleidoscope-EEPROM-Keymap.h”
Used: /Users/jennifer/Library/Arduino15/packages/keyboardio/hardware/gd32/1.99.6/libraries/Kaleidoscope-EEPROM-Keymap
Multiple libraries were found for “Kaleidoscope-FirmwareVersion.h”
Used: /Users/jennifer/Library/Arduino15/packages/keyboardio/hardware/gd32/1.99.6/libraries/Kaleidoscope-FirmwareVersion
Multiple libraries were found for “Kaleidoscope-MouseKeys.h”
Used: /Users/jennifer/Library/Arduino15/packages/keyboardio/hardware/gd32/1.99.6/libraries/Kaleidoscope-MouseKeys
Multiple libraries were found for “Kaleidoscope-LayerNames.h”
Used: /Users/jennifer/Library/Arduino15/packages/keyboardio/hardware/gd32/1.99.6/libraries/Kaleidoscope-LayerNames
Multiple libraries were found for “KeyboardioHID.h”
Used: /Users/jennifer/Library/Arduino15/packages/keyboardio/hardware/gd32/1.99.6/libraries/KeyboardioHID
Multiple libraries were found for “Kaleidoscope-HostPowerManagement.h”
Used: /Users/jennifer/Library/Arduino15/packages/keyboardio/hardware/gd32/1.99.6/libraries/Kaleidoscope-HostPowerManagement
Multiple libraries were found for “Kaleidoscope-Qukeys.h”
Used: /Users/jennifer/Library/Arduino15/packages/keyboardio/hardware/gd32/1.99.6/libraries/Kaleidoscope-Qukeys
Multiple libraries were found for “Kaleidoscope-IdleLEDs.h”
Used: /Users/jennifer/Library/Arduino15/packages/keyboardio/hardware/gd32/1.99.6/libraries/Kaleidoscope-IdleLEDs
Multiple libraries were found for “Kaleidoscope-USB-Quirks.h”
Used: /Users/jennifer/Library/Arduino15/packages/keyboardio/hardware/gd32/1.99.6/libraries/Kaleidoscope-USB-Quirks
Multiple libraries were found for “Kaleidoscope-Hardware-Keyboardio-Model100.h”
Used: /Users/jennifer/Library/Arduino15/packages/keyboardio/hardware/gd32/1.99.6/libraries/Kaleidoscope-Hardware-Keyboardio-Model100
Multiple libraries were found for “Kaleidoscope-FocusSerial.h”
Used: /Users/jennifer/Library/Arduino15/packages/keyboardio/hardware/gd32/1.99.6/libraries/Kaleidoscope-FocusSerial
Multiple libraries were found for “Kaleidoscope-MacroSupport.h”
Used: /Users/jennifer/Library/Arduino15/packages/keyboardio/hardware/gd32/1.99.6/libraries/Kaleidoscope-MacroSupport
Multiple libraries were found for “Kaleidoscope-OneShot.h”
Used: /Users/jennifer/Library/Arduino15/packages/keyboardio/hardware/gd32/1.99.6/libraries/Kaleidoscope-OneShot
Multiple libraries were found for “Kaleidoscope-OneShotMetaKeys.h”
Used: /Users/jennifer/Library/Arduino15/packages/keyboardio/hardware/gd32/1.99.6/libraries/Kaleidoscope-OneShotMetaKeys
Multiple libraries were found for “Kaleidoscope-Macros.h”
Used: /Users/jennifer/Library/Arduino15/packages/keyboardio/hardware/gd32/1.99.6/libraries/Kaleidoscope-Macros
Multiple libraries were found for “Kaleidoscope-DefaultLEDModeConfig.h”
Used: /Users/jennifer/Library/Arduino15/packages/keyboardio/hardware/gd32/1.99.6/libraries/Kaleidoscope-DefaultLEDModeConfig
Multiple libraries were found for “Kaleidoscope-MagicCombo.h”
Used: /Users/jennifer/Library/Arduino15/packages/keyboardio/hardware/gd32/1.99.6/libraries/Kaleidoscope-MagicCombo
Multiple libraries were found for “Kaleidoscope-DynamicMacros.h”
Used: /Users/jennifer/Library/Arduino15/packages/keyboardio/hardware/gd32/1.99.6/libraries/Kaleidoscope-DynamicMacros
Multiple libraries were found for “Kaleidoscope-Steno.h”
Used: /Users/jennifer/Library/Arduino15/packages/keyboardio/hardware/gd32/1.99.6/libraries/Kaleidoscope-Steno
Multiple libraries were found for “Wire.h”
Used: /Users/jennifer/Library/Arduino15/packages/keyboardio/hardware/gd32/1.99.6/libraries/Wire
Multiple libraries were found for “Kaleidoscope.h”
Used: /Users/jennifer/Library/Arduino15/packages/keyboardio/hardware/gd32/1.99.6/libraries/Kaleidoscope
Multiple libraries were found for “FlashAsEEPROM.h”
Used: /Users/jennifer/Library/Arduino15/packages/keyboardio/hardware/gd32/1.99.6/libraries/FlashStorage
Multiple libraries were found for “Kaleidoscope-Colormap.h”
Used: /Users/jennifer/Library/Arduino15/packages/keyboardio/hardware/gd32/1.99.6/libraries/Kaleidoscope-Colormap
Multiple libraries were found for “Kaleidoscope-LED-Palette-Theme.h”
Used: /Users/jennifer/Library/Arduino15/packages/keyboardio/hardware/gd32/1.99.6/libraries/Kaleidoscope-LED-Palette-Theme
Multiple libraries were found for “Kaleidoscope-HardwareTestMode.h”
Used: /Users/jennifer/Library/Arduino15/packages/keyboardio/hardware/gd32/1.99.6/libraries/Kaleidoscope-HardwareTestMode
Multiple libraries were found for “Kaleidoscope-LED-ActiveModColor.h”
Used: /Users/jennifer/Library/Arduino15/packages/keyboardio/hardware/gd32/1.99.6/libraries/Kaleidoscope-LED-ActiveModColor
Multiple libraries were found for “Kaleidoscope-Ranges.h”
Used: /Users/jennifer/Library/Arduino15/packages/keyboardio/hardware/gd32/1.99.6/libraries/Kaleidoscope-Ranges
Multiple libraries were found for “Kaleidoscope-NumPad.h”
Used: /Users/jennifer/Library/Arduino15/packages/keyboardio/hardware/gd32/1.99.6/libraries/Kaleidoscope-NumPad
Multiple libraries were found for “Kaleidoscope-LEDEffect-BootGreeting.h”
Used: /Users/jennifer/Library/Arduino15/packages/keyboardio/hardware/gd32/1.99.6/libraries/Kaleidoscope-LEDEffect-BootGreeting
Multiple libraries were found for “Kaleidoscope-Heatmap.h”
Used: /Users/jennifer/Library/Arduino15/packages/keyboardio/hardware/gd32/1.99.6/libraries/Kaleidoscope-Heatmap
exit status 1
Error compiling for board Keyboardio Model 100.

This report would have more information with
“Show verbose output during compilation”
option enabled in File → Preferences.

Yeah, got mine with the keycaps on Monday

This part looks suspicious. Can you share your full KEYMAPS(), please? That’d make it easier to figure out what is exactly going wrong.

1 Like

will post later- on my way out to lunch. Thanks Gergely! <3

Link to the file:

I expect I can sort this with a little time to stare at the syntax, but I’ll take help. :slight_smile:

My first guess would be: try removing the trailing comma at the end of KEYMAPS(), after your FUNCTION layer.

1 Like

ok, trying again.

I cleared all the old cruft from Arduino IDE installs off my computer, and did a fresh install to get rid of the duplicate libraries errors.

I used the board loader to install support for the Keyboardio boards, and selected the “dfu-util (DFU - Keyboardio DAPBoot bootloader)” as the upload method.

I compiled the default Model 100 firmware without errors.

I plugged in the keyboardio and confirmed that it was working, then held down “prog” and pressed the “->” upload key.

I got the below errors, and so far as I could tell the uploader did not connect to the keyboard.

I’m not sure where to go from here.


Sketch uses 158384 bytes (15%) of program storage space. Maximum is 1048576 bytes.
Global variables use 21096 bytes (21%) of dynamic memory, leaving 77208 bytes for local variables. Maximum is 98304 bytes.
dfu-util 0.10-dev

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2021 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to dfu-util / Tickets

dfu-util: Warning: Invalid DFU suffix signature
dfu-util: A valid DFU suffix will be required in a future dfu-util release
dfu-util: No DFU capable USB device available
Failed uploading: uploading error: exit status 74

Exit status 74 is a connection error. The Model 100 firmware didn’t originally support “1200bps touch” (the method that the Arduino IDE uses to force a reset). Until you have a version of the BSP and firmware that does have that support, you’ll have to plug in the keyboard while holding down PROG to force it into bootloader mode (PROG key is lit up red) before uploading.

I tried that first without success, then tried the “hold down prog after boot” method described above. I will try it again.

FWIW, 0.90.3 of the firmware should support the “1200bps touch” reboot method.