August 25, 2020

Flashing new firmware into the Ergodox EZ keyboard

This is apparently quite normal and routine. Encouraged even, so you can fiddle with your keyboard layout.


The flashing tool is something called "wally" and is available on Github. First some dependencies:
dnf install gtk3 webkit2gtk3 libusb
These were already on my system.

Then some new udev rules. I create a new file /etc/udev/rules.d/50-wally.rules as follows:

# Teensy rules for the Ergodox EZ
ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789B]?", ENV{ID_MM_DEVICE_IGNORE}="1"
ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789A]?", ENV{MTP_NO_PROBE}="1"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789ABCD]?", MODE:="0666"
KERNEL=="ttyACM*", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789B]?", MODE:="0666"
This goes alongside the file "50-oryx.rules" that I already created to get the live training to work.

Lastly I download the "wally" binary, which is pretty big, and I put it into /home/tom/bin which is on my path.

chmod a+x wally
mv wally ~/bin
cd bin
ls -l wally
-rwxrwxr-x   1 tom tom 11229576 Aug 25 20:59 wally

The instructions don't say anything about rebooting to activate these rules, and from what I am reading it is probably not necessary, but it certainly won't hurt. Since so many things have been going wrong, it seems worthwhile to be belt and suspenders. So I reboot.

Wally source

I don't need this, but it may be interesting to look at. It looks like wally is written in Golang, and the source is on github, so:
mkdir Ergodox
git clone

My new layout

The kind folks at Ergodox made for me a new experimental layout with the Oryx key on the first level. I download both the source (as a zip file) and the firmware (as a hex file), as follows:
I put both of these in my Ergodox directory, plug in my keyboard, and I think I am ready to go.

I type "wally" in my Ergodox directory. It starts up and has me navigate to the Ergodox directory and select the hex file there. Then I get a paperclip and put it into the hole next to the 3 LED on the board, and it tells me the new firware is successfully flashed.

That was certainly easy.

And best of all, it works and I can use their live training pages.

Have any comments? Questions? Drop me a line!