Arduino Firmware for the HexBoard https://shapingthesilence.com/tech/hexboard-midi-controller/
Microtonal setting: add more options
bfbaa9af — Jared DeCook 16 days ago
Add EZMajor experimental layout
Fix bugs recently introduced


browse  log 
release notes 



You can also use your local clone with git send-email.

#HexBoard MIDI Controller

The HexBoard is a 140-key board designed for techno-musicians, babies, and computer people.

A HexBoard with the default layout active

You can order your HexBoard today, or contact Jared if you're interested in assembling it yourself.

#The Team

  • Jared DeCook has been writing music, developing hardware, and performing as Shaping The Silence for over a decade.
  • Zach DeCook has been listening to music, breaking hardware, and occasionally writing software since the former discovered his exploitable talents.

#HexBoard Arduino firmware

The Arduino firmware is the default firmware for the HexBoard (and is what this repository contains).

Sourcehut Build status Nightly builds are automatically made when a commit is pushed to SourceHut.

#Building the firmware

If you want to build the firmware, we'll assume you're already proficient at installing software on your computer at this point.

#Using Arduino-IDE

(Instructions to come)

#Using arduino-cli

(You also need to have python3 installed on your system)

# Download the board index
arduino-cli --additional-urls=https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json core update-index
# Install the core for rp2040
arduino-cli --additional-urls=https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json core download rp2040:rp2040
arduino-cli --additional-urls=https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json core install rp2040:rp2040
# Install libraries
arduino-cli lib install "MIDI library"
arduino-cli lib install "Adafruit NeoPixel"
arduino-cli lib install "U8g2" # dependency for GEM
arduino-cli lib install "Adafruit GFX Library" # dependency for GEM
arduino-cli lib install "GEM"
sed -i 's@#include "config/enable-glcd.h"@//\0@g' ~/Arduino/libraries/GEM/src/config.h # remove dependency from GEM
# Correct Rotary Library
git clone https://github.com/buxtronix/arduino buxduino
cd buxduino
git apply ../Rotary.patch
cd ..
mv buxduino/libraries/Rotary ~/Arduino/libraries/
rm -rf buxduino
# Run Make to build the firmware

Your firmware file will be the uf2 file inside the build directory.

#Flashing the firmware

  1. Unplug the HexBoard from your computer, then plug it in while holding the button by the USB port.
  2. It should appear as a disk in your computer.
  3. Copy the .uf2 firmware file onto that disk
  4. The disk should eject, and the HexBoard should automatically reboot into that firmware.