Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Teensy MIDI Encoder Box

This project uses 16 rotary encoders to generate relative MIDI CC messages. It uses a Teensy 3.2, which features 34 digital input pins, each with the ability to use interrupts.


The only non-standard Arduino library used is:

Building the software

First download the latest Arduino Software that is compatible with Teensyduino. At the time of writing, this is Arduino 1.6.9, and Teensyduino 1.29.

Ensure you install the Encoder library when installing Teensyduino.

Now open up RotaryController.ino located in the RotaryController directory.

At the top of the file you can customise the number of encoders in use, MIDI channel and CC numbers to suit your project.

Verify the sketch, which will open Teensy Loader. Now press the button on the Teensy to load the firmware.

Now connect up all your encoders, following the schematic.

Finally, test each encoder using a MIDI monitor. I recommend Snoize MIDI Monitor on macOS, and MIDI-OX on Windows. If you know of a Linux MIDI monitor, I'd welcome a Pull Request!

Speaking of which...

Pull Requests

Pull Requests are most welcome! Do you have a suggestion for code improvement? Or just spot a spelling mistake in this README file? Send me a Pull Request.

To do list

  • Write sketch code
  • Test on bread board
  • Create schematic
  • Design breakout PCB
  • Design 3D enclosure
  • Ableton Instant Mapping files

Bill of Materials

Work in progress...

Quantity Part Number Description Line Price £ Supplier
16 EC12E2420802 ALPS Incremental Rotary Encoder, 24 Pulses, 24 Detents 14.24 Farnell
16 CR-BAB-6-D MULTICOMP,CR-BAB-6-D,Knob, Round, 6 mm, 6.50 Farnell
1 Teensy 3.2 18.00 Pimoroni
1 N/A 40-pin 0.1" Pin Headers (Male)
1 N/A 2x7 SMD pin headers
16 N/A M8 nuts
16 N/A M8 nuts
16 N/A Washers
1 N/A Breakout PCB (optional)



A 16 encoder MIDI controller based on the Teensy Arduino platform




No releases published


No packages published