OpenDeck is a platform for building MIDI controllers. It is a firmware running on various boards which transforms them into class-compliant USB MIDI devices, making them compatible with any MIDI software on any operating system. OpenDeck is designed to solve two problems when building a MIDI controller:
- Coding - there is no need to code anything in order to make changes to the controller or to make it work
- Making the controller behave the way you want it to - the firmware supports huge number of configurable parameters, all configurable in a Web browser
Solving this two goals means you can forget about implementation details and focus on having your custom controller built as fast as possible.
The platform also supports DMX output so it can be used as DMX interface through usbserial
plugin in Open Lighting Architecture.
Click the image below for a demo video of the OpenDeck configurator
Configurator is available either online or offline.
Some of the controllers built with OpenDeck
The following components are supported:
- Buttons
- Encoders
- LEDs (single color or RGB)
- Potentiometers
- FSRs (force-sensitive resistors)
- LCD/OLED displays
- Touchscreen displays (Nextion and Viewtech/Stone)
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, DMX output etc. Full list of supported features can be found here.
If the feature you want isn't supported yet, don't feel discouraged. Open up a discussion thread and let's talk about it.
OpenDeck firmware is compatible with official OpenDeck board, as well as various other boards, both small and large:
- Arduino Mega2560
- Arduino Mega2560 Pro Mini / Meduino
- Mux Shield v2 with Arduino Mega2560
- Teensy++ 2.0
- STM32F4 Discovery (Mouser / Digikey)
- STM32F401CC Black Pill
- STM32F401CE Black Pill
- STM32F411 Black Pill (Adafruit / AliExpress)
- Waveshare Core405R
- Waveshare Core407V
- Waveshare Core407I
- STM32F4VE (eBay)
- TPyBoard (PyBoard clone) (eBay)
Some of the supported boards
For more details on supported boards, check the dedicated wiki page. A page with instructions on how to flash OpenDeck firmware to supported boards is also available. Support for custom boards can be easily added using YAML descriptors.
Available on dedicated Wiki section.
Need help? Want to show off your OpenDeck based builds? Head over to Discussions!
- Hardware MIDI source code based on Arduino MIDI library v4.2 by Francois Best.
- USB MIDI source code based on LUFA USB framework by Dean Camera.
Most of the code is available under Apache Licence v2.0, with the following exceptions:
src/board/arch/stm32/gen
: Code licenced by ST. Depending on the source file, the licence is mostly BSD 3-Clause or ST Ultimate Liberty license. Check individual files for details.modules
:avr-libstdcpp
: GNU GPL v3 or later with GCC Runtime Library Exception 3.1core
: MITdbms
: MITdmxusb
: MITEmuEEPROM
: MITlufa
: Modified MIT, seemodules/lufa/LUFA/Licence.txt
for detailsmidi
: MITsysex
: MITu8g2
: Two-clause BSDunity
: MIT