May 11, 2021: General update

Being forced to work from home during the pandemic means that practically all physical work on EnsembleBot has been stalled for more than a year now. This is quite annoying, especially since I compensate by thinking up new projects and enhancements.

Dedicated master controller

Currently, an Arduino Mega serves as both interface to the host and master controller, while also serving as instrument controller for the tubular bells, glockenspiel and misc. percussion. As the number of instruments in EnsembleBot grows, we’ve begun experiencing some data congestion problems. This is partly because of bad programming (i.e. not enough focus on bus priority and input buffering), and partly because of the current master controller, that quickly becomes a data bottleneck.

For these reasons alone it’s obviously a good idea to implement some separation of functionality by building a dedicated master controller unit. This actually makes the overall architecture of the EnsembleBot simpler and more compliant with the master/slave principle.

EnsembleBot architecture overview
EnsembleBot architecture overview

The new Master Controller will interface to the host computer through USB, buffer incoming EBP messages and relay EBP messages to the CAN bus. The old master controller will be reprogrammed to serve as a CAN bus slave instrument controller only.

Physically, the Master Controller will be built as a small box containing a microcontroller and a CAN bus interface. Power will be supplied from the central EB-PSU (A-side power domain) – not from host USB.

Firmware reprogramming

To prevent any more data congestions, the instrument firmwares are going to be reprogrammed with a much more strict focus on input buffering. This is not a huge undertaking, but it still means changing code that hasn’t been touched in a very long time.

Air pressure evaluation

As feared, the optimal air pressures of the piccolos and the flutes respectively in the PipeMare cabinet are not quite compatible. I.e. the air pressure, that allows the piccolos to overblow (desired), makes the flutes also overblow (absolutely not desired). Unless we can find a delicate sweet-spot, where both pipe stops blow nicely, we will have to address this problem by building some kind of secondary pressure regulation.

PipeMare instrument calibration

The PipeMare project contains 3 instruments, and none of them has been calibrated yet. For the accordion we even need to build a dedicated microprocessor-controlled calibrator.

PipeDream61 valves

The valve controller boards in the PipeDream61 organ has electrical problems with two of the 64 valve drivers. This is probably just a trivial matter of bad connections or a bad MOSFET driver, but it’s quite difficult to access the boards without having to disconnect and reconnect all the pipe valve control wires.

Velocity-controlled percussion

The percussion instruments need to be sensitive to MIDI velocity values, i.e. able to play softer or louder depending on the music.

Woodblock

The main cabinet still needs to have a dual-mallet woodblock installed.

September 6, 2019: New pressure monitor

New PipeWind pressure sensor

As mentioned earlier, I decided to replace the STM32F103C BluePill microcontroller in the PipeWind pressure monitor/logger with a more problem-free and widely supported Teensy 3.2. This replacement exposed some problems with our chosen graphics TFT display, as it turned out be both extremely slow and unreliable. So, I replaced the display with a much faster and better ILI9341-based display.

Unfortunately, the breakout PCB of this display is larger than the old one, so I had to drop the nice, compact enclosure and use a much bulkier and uglier junction box. Damn.

Anyway, the pressure sensor worked right away, and even though I haven’t programmed the actual logger/analyzer function yet, the box shows the organ air pressure in mmH2O above ambient pressure. The rest is just basic programming.