Modular MIDI Controller
The individual modules allow the device to customised for the specific application, and expanded with additional modules as required. Each module contains an MCP23017 I2C IO expander connected to it's encoders and a HT16K33 I2C controlled LED driver that allow the attached controller board to interface with the components
The controller board can then process all of of the information fed to it by the controls, respond with the correct visual feedback using the LEDs and act as the USB controller to interact with software on a users device
The GitHub repo contains example schematics and firmware for a USB MIDI device based on an STM32F4 microcontroller using the ST HAL