Hey MIDIbox community, first of all I want to thanks everybody participating in this project, since utilizing from the MIDIbox project really saved me a lot of time.
In 2014 I started working on my DIY MIDI controller LambdaControl and can now proudly say that it is finished. I designed and build LambdaControl to support me during my upcoming live performances. Therefore, the controller consists of 10 channel that are fully integrated into Ableton Live. Each channel consists of a volume fader, six buttons for clip selection, four rotary potentiometers for effects, and an encoder with switch button functionality (could be used to control a looping mechanism).
The normal components like the potentiometers or encoders are simply scanned by using the AINSER64 and DIN modules with a custom MIOS32 firmware. However, the special part of LambdaControl is the custom 10x6 RGB button matrix (based on button pads from Sparkfun), which is completely integrated into Ableton Live like a Novation Launchpad. For this purpose I connected a separate micro controller unit (MCU) via I2C to the MIDIbox core, which drives the RGB leds and reads the button inputs. The matrix MCU (16MHz Arduino Nano) can produce up to 4096 different colors by driving the matrix with a combination of multiplexing and Bit Angle Modulation (BAM). The matrix MCU still uses the shift registers of the DIN and DOUT modules to connect to the matrix rows and columns. This works really stable in the given scenario, but my implementation has some drawbacks like a low refresh rate or a relatively high input lag for the buttons (more in the documentation). This problems can be easily solved by using a MCU with more power or using a specialized IC like a TLC5958. However, it was a nice challenge to do everything in software on a limited hardware. Moreover, the parts used for the matrix MCU were with around 4€ really cheap.
Additionally, I written a so called MIDI Remote Script, which integrates the by MIDI messages controllable RGB button matrix into Ableton Live. The MIDI Remote Scripts are python scripts that Live internally uses to integrate the different commercial MIDI controllers. The following picture shows that LambdaControl can be selected as every other control surface inside Live's preferences. The other screenshot shows the red rectangle that Live is rendering to visualize the position of LambdaControl's clip launcher that can be moved up and down by using the encoder on the master channel.
I decided to release all files under open source licenses, such that other people can make us of my work. First of all you can find a complete documentation with more information and pictures on my website. Then I created four repositories on github for the different parts:
Repository for the hardware related files like the faceplate or the 3D printable case
MIOS32 firmware for the MIDIbox core
Matrix MCU Firmware for the separate micro controller that drives the RGB matrix
MIDI Remote Script for Ableton Live that integrates LambdaControl into the DAW
I hope this information can help other people with their projects.