Have received my brand new keyboard model 100, excellent quality and I love it from all aspects.
I have configured my custom layout and led color with Chrysalis, but seems there’s no way to define macros such as LED on/off directly in this software. Also, I find some great LED plugins in the forum. How can I import those plugins without touching my currently set layout and led color configurations?
The editable macros in Chrysalis are quite limited at the moment, turning leds on and off for example is not a functionality available through it. Macros implemented in firmware can do that - and more - however.
You will need to compile custom firmware to add new plugins. You can start with the official firmware, and add or remove plugins as you wish. The configuration you set with Chrysalis will not be affected, as long as you flash your new firmware with Chrysalis (Chrysalis saves & restores the settings saved on your keyboard during flashing).
Using custom firmware is 100% supported, and even encouraged, so you can go wild freely!
The only thing to pay attention is to not remove plugins essential for Chrysalis.There is some documentation about that, too.
Great! Very detailed reply. Thank you very much for helping me a lot from startup.
Can’t help getting hands dirty with coding stuff.
It would be great if you could open issues against Chrysalis for the macro functions you’d like but which are currently missing.
Sorry, I have some new troubles and back again.
I’ve followed documents and instructions and found some difficulties because they were compatible to Model01 and Model100’s current situation is different. So my current environment is not totally instruction followed and maybe a bit … weird.
I’ve downloaded the default firmware from here.
First. I tried to compile it in Arduino IDE(just for making a check), and the error log is:
Arduino: 1.8.13 (Mac OS X), Board: "Keyboardio Model 100, dfu-util (DFU - Keyboardio DAPBoot bootloader)"
Model100:27:10: fatal error: Kaleidoscope-FirmwareVersion.h: No such file or directory
27 | #include "Kaleidoscope-FirmwareVersion.h"
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
exit status 1
Kaleidoscope-FirmwareVersion.h: No such file or directory
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
I don’t know where the headers file search path is, but I’m sure there’s no Kaleidoscope-FirmwareVersion.h in my file system.
Then. I tried to compile the firmware directly from Arduino CLI. But I got a different error:
Using Kaleidoscope from ~/Documents/Arduino/hardware/keyboardio/avr/libraries/Kaleidoscope
Building in quiet mode. For a lot more information, add 'VERBOSE=1' to the beginning of your call to /Applications/Xcode.app/Contents/Developer/usr/bin/make
Error during build: Platform 'keyboardio:gd32' not found: platform not installed
Platform keyboardio:gd32 is not found in any known index
Maybe you need to add a 3rd party URL?
***************************************************************
Arduino couldn't figure out what kind of device this sketch
is for. Usually, Arduino looks in a file called `sketch.json`
to figure this out.
I'm unable to detect your keyboard, you may need to manually
edit your `sketch.json` file or run
ARDUINO_DIRECTORIES_USER=~/Documents/Arduino/ ARDUINO_DIRECTORIES_DATA=~/Documents/Arduino/hardware/keyboardio/avr/libraries/Kaleidoscope/.arduino/data /usr/local/bin/arduino-cli board attach
manually, specifying the FQBN for your keyboard.
***************************************************************
~/Documents/Arduino/hardware/keyboardio/avr/libraries/Kaleidoscope/etc/makefiles/sketch.mk:92: *** . Stop.
But I have directly reinstalled beyboardio:gd32 board from Arduino CLI.
$ arduino-cli core install keyboardio:gd32
Platform keyboardio:gd32@1.99.5 already installed
I’ve no idea what’s going wrong.
I was only just now able to build the stock firmware.
Notes of what I tried. What eventually worked (nicely formatted at the above link ):
Setup prerequisites
- Add udev rules for the Model100 per https://community.keyboard.io/t/model-100-firmware-update-to-fix-corruption-issues/5553/9 .
-
chown root:root
the new rules file or it won’t be used (ask me how I know! )
- Install the latest
dfu-util
from source
- Clone per instructions at https://dfu-util.sourceforge.net/
./autogen.sh && ./configure && make -j
- Confirm that the keyboard is accessible:
- Hold
prog
while plugging in the keyboard - Run
./src/dfu-util -lv
and make sureModel 100 (bootloader)
appears - Install the latest firmware using Chrysalis per Model 100 firmware update to fix corruption issues
Setup Chrysalis-Firmware-Bundle
- Clone GitHub - keyboardio/Chrysalis-Firmware-Bundle: Firmware sketches for boards supported by Chrysalis and cd into the clone dir.
- Run
./tools/bootstrap
. This will create.arduino/
and.kaleidoscope/
and download lots of files into them. export KALEIDOSCOPE_DIR="$(realpath .kaleidoscope/)"
export ARDUINO_DIRECTORIES_USER="$(realpath .kaleidoscope/.arduino/user)"
make -C .kaleidoscope setup
Build the firmware
-
make Keyboardio/Model100 VERBOSE=1
. This should leave output inoutput/Keyboardio/Model100/default.bin
. - Unplug the Model100, hold Prog, and plug the Model100 back in. The prog key should light steady red.
- Run
dfu-util -d 3496:0005 -D ./output/Keyboardio/Model100/default.bin -R
— use your locally-built dfu-util. You should see something like the below “Sample dfu-util output”. The first column of keys will cycle green while this is happening. - When the programming is done, the keyboard should reset. If it doesn’t, unplug and replug it.