Flash the Firmware of the Preonic from Keyboardio

I recently bought the Preonic keyboard, as my two Model 01 were not really portable.

The Preonic is a superb keyboard that is highly customizable and connects either by wire or bluetooth. I couldn’t pass the opportunity.

Since it’s customizable, one of the first things I wanted to do was change the layout a bit. The suggested way is to use Chrysalis but it requires Chrome-based browsers, which I don’t use. So, I resorted to the terminal.

As there were no step-by-step instructions, this post documents how I’ve done it.

Getting started

The first step is to clone the repository and set things up. From your terminal, type:

git clone https://github.com/keyboardio/Kaleidoscope
cd Kaleidoscope
export KALEIDOSCOPE_DIR=${HOME}/git/Kaleidoscope  # or, if you use fish, use set -x KALEIDOSCOPE_DIR ${HOME}/git/Kaleidoscope
make setup # this is done the first time

Customizing the layout

If everything goes well, we should be ready to customize our layout. To do so

# for some reason, it's not where their other firmwares are
cd plugins/Kaleidoscope-Hardware-Keyboardio-Preonic/examples/Devices/Keyboardio/Preonic
vim Preonic.ino # edit the layout with whatever editor you have
make compile

If everything went well (e.g., you didn’t mess up), we should be ready to flash the layout.

Flashing the layout into the Preonic

To flash the layout, we need to put the keyboard in bootloader model (these instructions minus the last step come from their website):

That’s it! You should now have a working layout. If you want to generate an SVG of the layout, you can type

python generate_layout.py

There are a couple of quirks in the python file, but it will output something that looks like

The layout as produced by a modified version of the generate_layout.py file

Well done, Jesse and Kaia!