Skip to content
Software and hardware platform for simpler building of MIDI controllers.
C C++ HTML Assembly Makefile JavaScript Other
Branch: master
Clone or download

Build+Test [Linux] Build+Test [macOS]

OpenDeck MIDI Platform

OpenDeck is a platform suited both for prototyping and developing custom MIDI controllers. Platform uses class-compliant USB MIDI which makes it compatible with any MIDI software on any OS. Main part of the platform is board on which various components used to build a MIDI controller can be connected. OpenDeck supports the following components:

  • Buttons
  • Encoders
  • LEDs (single color or RGB)
  • Potentiometers
  • FSRs (force-sensitive resistors)
  • LCD/OLED displays (Arduino Mega and Teensy++ 2.0 only)

OpenDeck supports sending of both 7-bit and 14-bit Non-Registered Part Numbers (NRPN), latching messages on buttons, various encoding modes for quadrature encoders, LED control using MIDI In, configurable MIDI channels for each component individually, daisy-chaining of boards etc. Full list of supported features can be found here.

All configuration is done using custom SysEx protocol explained in detail on Wiki page or using Web interface.

OpenDeck firmware is compatible with official OpenDeck board, as well as various other boards:

  • Arduino Uno
  • Arduino Leonardo
  • Arduino Pro Micro
  • Arduino Mega2560
  • Teensy++ 2.0
  • STM32F4 Discovery (experimental)

Web UI

This repository also contains source code for OpenDeck Web configuration utility written using Angular framework by other developer. Web utility can run in any browser which supports WebMIDI specification (currently Google Chrome and Opera). Utility needs access to MIDI devices so that it can communicate with OpenDeck boards. All communication is done with custom SysEx protocol explained in detail in Wiki section.

Latest version of the UI is always available on this link. The UI available on this link is hosted on GitHub (via this repository, master branch) and it's compatible only with latest available OpenDeck firmware. If older firmware is used with latest UI, UI tends to crash when it tries to request parameters which aren't available in older firmwares.

Older versions of the UI are also available and can be downloaded from releases page.

Coming soon

  • Official support for STM32 boards



All code is available under Apache Licence v2.0.

You can’t perform that action at this time.