# Infinity ErgoDox Configuration In Progress

###### Posted: 2020 February 3Last updated: 2020 June 20

I’ve been using my Infinity ErgoDox for a few years, which means it seems like it’s about time to break everything by messing with the firmware.

By default, this uses a custom firmware developed by Kiibohd/Input Club, the creators of the keyboard. It’s also QMK compatible, so I could program it like I did for my fully home-built keyboard. But that wouldn’t give me control over the little LCD screens built into the keyboard, so what fun is that? But since the default firmware is all open source like the hardware, I can hack the crap out of it directly.

And luckily, someone has already worked out how to do this in a series of posts on Reddit. (They’re three years old, so hopefully they still work.)

I’m going to start by basically following this and filling in any details/gaps I run into along the way. (Luckily, it’s already written for Linux.)

EDIT: Turns out they’ve change quite a bit, including getting rid of the online configurator. And their new documentation for configuration and compiling is frustratingly incomplete. So this will be more fun than originally planned.

## Building and Flashing Default Firmware

You need some dependencies to build the firmware yourself (taken from the wiki):

sudo apt-get install git cmake exuberant-ctags libusb-1.0-0-dev ninja-build gcc python3 lsb-release bsdmainutils
sudo apt-get install binutils-avr gcc-avr avr-libc
sudo apt-get install binutils-arm-none-eabi gcc-arm-none-eabi libnewlib-arm-none-eabi dfu-util
sudo apt-get install ruby ruby-dev screen
sudo gem install serialport


You’ll also need to clone the controller/firmware repository:

git clone git@github.com:kiibohd/controller.git


cd into the repository’s Keyboards directory.

We need to install the Python dependencies:

pip install pipenv


And then make sure it’s set to use Python 3 (or this will break): (See this note)

pipenv --python 3.6


Install/activate the pipenv:

pipenv install
pipenv shell


You can run a test to make sure everything is behaving as expected and your layout isn’t broken (from within Keyboard/Testing)

./klltest.bash


Now you should be able to compile the controller (from within the Keyboards directory):

./ergodox.bash


## Using QMK

After some further research, it looks like the LCD does work with QMK (at least in some form), so that seems worth a try. (Based on this and this Reddit threads.)

My (in-progress) layout is in my QMK fork: QMK firmware.