OpenDeck Versions Save

Software and hardware platform for simpler building of MIDI controllers.

v7.3.2

1 year ago

New features

  • Added support for OpenDeck v2.1 board
  • Added support for Seeed XIAO nRF52840
  • Added support for Seeed XIAO RP2040

Improvements

  • Improved bootloader performance
  • Improved support for RP2040

v7.3.1

1 year ago

New features

  • Added support for Raspberry Pi Pico

Improvements

  • Better UART performance on nRF52 boards
  • Improved ADC stability on STM32 boards

Other

  • Added support for flashing via pyocd
  • Moved generic I2C/ADC handling to core module
  • Dropped hex files from release (not needed anymore)
  • Misc build tweaks

v7.3.0

1 year ago

New features

Fixes

  • Fixed broken flash.sh script for flashing AVR boards

Other

  • Disabled DMX support on Teensy++ 2.0 by default (lack of RAM)
  • Disabled touchscreen support on Arduino Mega2560 by default (lack of RAM)
  • Added the ability to analyze the code with Infer
  • Logging format is now consistent between glog library and internal firmware logging
  • Refactored database access in various modules (implemented admin/user model)

v7.2.0

1 year ago

New features

  • Added support for multiple shift registers for rows in button matrices (16x8/24x8/32x8 etc. matrices are now possible)
  • Added support for MAX7219 LED driver
  • Integrated board LEDs now blink during firmware update
  • Added support for OpenDeck v3 boards (A and B variants)
  • Added DMX support on nRF52 boards
  • Added firmware update support on nRF52 boards
  • When BLE MIDI is used, the advertised name now contains BLE acronym for clarity (e.g. OpenDeck BLE | nrf52840dk)
  • Added support for Arduino Nano 33 BLE

Improvements

  • Improved error reporting during custom board builds when multiplexer pins are omitted
  • Improved analog readouts from nRF52 boards

Fixes

  • Fixed some incorrectly defined pins for Adafruit ItsyBitsy nRF52840 board

Other

  • Moved most of the generic board code to core module
  • Reworked I2C support - supported I2C components can now use dedicated I2C channels instead of all components being on the same one
  • Moved integrated LED flashing on startup to application from bootloader
  • Misc refactoring of build scripts and board directory

v7.1.0

2 years ago

New features

  • Added support for Bluetooth MIDI on nRF52 boards
  • Added support for Adafruit ItsyBitsy nRF52840 Express board

Fixes

  • Fixed DFU flashing via make
  • Fixed broken MIDI thruing (regression from previous release)

Other

  • Misc internal cleanups/improvements/reorganisation

v7.0.0

2 years ago

New features

  • Added initial support for Nordic nRF52840 MCUs (no Bluetooth yet - support will be added in future releases)
  • Added the ability to specify global MIDI channel for all components
  • Added the ability to specify "omni" MIDI chanel 17
    • For outgoing data, channel 17 will send MIDI messages on all MIDI channels
    • For incoming data, setting the channel to 17 will ignore the channel (eg. for LEDs this will make them listen to all MIDI channels)
  • Added "Only note off" and "Only CC 0" message modes for buttons: combined with omni MIDI channel setting this makes it possible to configure the buttons as "kill" switches to mute all channels if supported by the controlling software / gear
  • Reworked MIDI thru options (DIN to DIN, DIN to USB, USB to DIN, USB to USB)
  • Implemented double-buffering for DMX to avoid tearing
  • Added the ability to control DMX channels via SysEx
  • Added the ability to control DMX channels via connected components - DMX message mode can now be assigned to buttons, encoders and analog components

Fixes

  • Fixed broken indication of current preset

Other

  • Switched to tinyusb USB stack for ARM targets
  • Switched to GoogleTest framework for all tests for easier mocking
  • Simplified adding support for various flashing tools
  • Refactoring of build system, database, scripts and many other internal details
  • Reworked MIDI library to make it easier to add different transport mechanism and to simplify thruing across different transports
  • Added initial logging mechanism
  • Added clang-tidy infrastructure for code linting and to improve code styling consistency
  • Removed support for analog components on touchscreen

v6.4.0

2 years ago

New features

  • Added the ability to specify lower and upper ADC percentage offsets (useful for inputs which can't reach minimum or maximum ADC value)

v6.3.2

2 years ago

Misc

  • Updated to new compiler version
  • Misc build changes/improvements

v6.3.1

2 years ago

Improvements

  • Improved system responsiveness
  • Reduced RAM usage

Fixes

  • Fix atrocious performance when I2C displays are used with analog components

Misc

  • Added macOS CI build

v6.3.0

2 years ago

New features

  • Added support for STM32F401CC BlackPill variant
  • Analog filters are now configurable in compile time for custom boards to reduce the usage of RAM and to improve latency on AVR boards

Improvements

  • Various performance improvements
  • Switched to 38400 baudrate again for Arduino Mega2560 for communication between main and USB link MCU
  • Some STM32 boards now support 10 presets again instead of just 5

Fixes

  • Fix broken code compilation when buttons aren't used on custom boards
  • Fixed some tests being compiled with wrong constants

Misc

  • Reorganized board source hierarchy