Master controller

The EnsembleBot master circuitry parses the EBP packages from the host, and redirects the instructions to the relevant instruments or instrument groups depending on the MIDI channel.

Originally, the master role was handled by the percussion controller, but to avoid communication bottlenecks we decided to make a dedicated master controller unit.

The master controller is connected directly to the host computer via USB. The host sends EBP commands to the master, and the master controller basically relays them onto the EnsembleBot CAN bus for the instrument slaves to pick up.

MICROCONTROLLER
Master Controller Enclosure

The master controller has a simple job: Listening for EBP commands from the host, and relaying them to the CAN bus. However, it is not quite so simple, and that is the reason for making it a dedicated master unit.

We chose a Teensy 3.2 microcontroller, not because we necessarily need the speed (72 MHz), but rather because we use Teensy controllers so many other places in EnsembleBot, that it just makes everything easier.

But this extra power gives us the opportunity to gie the controller some “bling”. As a direct visual feedback on the EnsembleBot / CAN bus activity, we placed 16 LEDs on the front – one for each MIDI channel / EB instrument/group. These LEDs will flash briefly, when a EBP command is sent to the CAN bus.

RELAY SCHEME

The controller has to balance between not missing any command from the host, while at the same time relaying the commands without unacceptable (i.e. perceptible) delay to the CAN bus. When the host sends commands to a full EnsembleBot, many MIDI commands are being sent concurrently.

We choose to employ a simple scheme, both in this master controller as well as in each slave controller, where we give priority to input over output. This means, that as long as there are new messages on the input (whether USB or CAN), we read these messages and puts them in a FIFO buffer. Only when the input line is silent, the FIFO buffer is emptied one message at a time, while still listening for more input messages.

This very simple scheme may prove problematic and cause unacceptable (audible) delays, but we’ll see.


Next: Read about the Percussive instruments