April 19, 2020: PipeMare update

Well, the PipeMare project is beginning to take shape. The secondary controller and PSU passed unit testing with flying colours. It’s a relatively simple circuitry with an Arduino Nano, a couple of relays and current sensors and some simple LED feedback, so no surprises there.

The PipeMare controller drawer
Primary controller

The primary instrument controller is quite a bit more complex, but after a few problems, the Teensy 3.5 firmware started working. However, there are still a few problems.

The 8-channel combined optocoupler and MOSFET driver, used for both the instrument LED illumination and controlling the quad half-H bridge for the two swell motors, needs to have its 74HCxx logic ICs replaced with 74HCTxx to ensure lower low-level voltages. No biggie.

Windchests

A much more serious problem is the initial tests of the two pipe stops (the piccolo and the flute). There’s always been the risc that the flutes (designed for 2″ w.c.) would overblow, when the organ pressure level is closer to 3″ w.c. needed for the harmonic piccolos. However, the problem seems to be the exact opposite. The flutes play quite nicely, but many of the piccolo pipes don’t quite reach the overblow state. Now, some more specific testing needs to be done, and it may very well be easily solved during the voicing of the pipes. If not, we’ll have to adjust the valve holes in the windchest, thus facing some serious hardware modifications in a windchest which is very hard to work with.

The piccolo windchest cabled

Also, it seems that we are finally facing the consequences of not building any kind of compression chambers into the piccolo windchest, like we did in the flute windchest. This may change, when we modify the valve holes, but so far it looks like we are going to live with some quite harsh tone attacks in the piccolo pipes.

Accordion

Besides those troubles, we still haven’t made any real tests of the accordion, except for the very early hardware tests. And we also need to build the cabinet swell panels.

But, the show must go on…

March 20, 2020: PipeMare update

Oh well, it apparently took a global pandemic to get us started again. The work is currently focused on the PipeMare controller. The firmware for the secondary microcontroller (controlling the power supplies etc.) has been written, and hardware unit-testing is scheduled for this weekend.

Of course, the secondary controller is the simplest half of the PipeMare controller circuit. But one step at a time. When all the power handling is working, we can start testing the actual instrument firmware.

January 10, 2020: EnsembleBot update

As mentioned in an earlier post, we need some preparation before the real testing of PipeMare and PipeWind can begin. While rewiring the EnsembleBot for a new global 12V A-side power scheme, it became apparent that the central power supply needed some maintenance.

The central EnsembleBot power supply

The power supply delivers and monitors power in two galvanically isolated power domains (A-side and B-side) and for different voltages and current demands. The power supply has 24 outputs, individually controlled from 24 switches on the front panel and 24 relay modules. This should work, but unfortunately the toggle switches used are of very, very low quality. So, thay have to be replaced, and while we are at it, their wiring scheme and LED indicators are improved.

NEW PIPES!

Even though we really don’t need another organ, I was lucky enough to win an auction for a full rank of 4-foot wooden wald flutes. Combined with a rank of fifteenth (2-foot) flautino pipes from an earlier auction, there are some possibilities.

One possible project could be to buy a cheap harmonium/pump organ, and rebuild and expand it to include the two pipe ranks. This would probably mean replacing the foot-pump with an electrical pump and reservoir, tapping into the manual mechanics to activate the pipe valves (providing we opt for a more traditional, purely mechanical tracker-like solution), and – quite possibly – build the dual pipe rank windchest as a slider windchest.

However, as I have neither time nor space for such a project right now, this will probably remain a pipe dream for some time.

November 19, 2019: EnsembleBot update

To even begin testing the PipeMare organ and controller, we needed a lot of changes to the master circuitry and firmware, as well as to the CAN bus and A-side power topology, and to the master power supply as well.

The master power supply has been upgraded to a more powerful 12V PSU for the slave instruments, and the slave instruments (for now only PipeDream61 and PipeMare) and the combined CAN bus and power cables have been modified for 12V supply instead of 5V.

As we needed some more dynamic control of the percussion instruments on the master controller, we needed a reprogramming of the firmware. In the end, to make the master microcontroller more simple and efficient, the entire firmware was rewritten. At least for now. The old firmware used a very neat and generic heap/buffer system to manage local instruments, but in the end it was too much trouble for the current needs, and not very efficient. If we, in the future, need more bling and functionality, we can dig up the old code and load it into a faster microcontroller, like the almost pin-compatible Arduino Due.

Now, we need to make last adjustments to the master firmware, and then recalibrate all the instruments on the master (i.e. glockenspiel, tubular bells and percussion). The we need to make sure that PipeDream61 still works after all the rebuilding and all the idle time. Then, and only then, can the work with testing and debugging the PipeMare controller begin.

November 2, 2019: PipeMare update

PipeMare controller drawer completed

So, the PipeMare controller hardware is finally assembled and mounted inside the cabinet drawer. This took quite a bit longer, than I had planned, but now it’s done.

The PipeMare controller electronics

Unfortunately, this doesn’t mean that we are close to having a working tripple organ. None of the controller circuitry parts has been tested, and there is still quite a lot of programming of the two microcontrollers to do. I also need to make some changes to the EnsembleBot master circuitry, specifically some changes to our CAN bus and power scheme. As a result, some minor but difficult changes to the PipeDream61 organ controller, as well as firmware changes to the master controller, are necessary.

Most of these things need to be addressed, before we can even begin unit testing the PipeMare controller parts. Personally, I had hoped to finish the PipeMare organs by Christmas, but sadly that looks quite unrealistic at the moment.

August 18, 2019: PipeWind pressure monitor

Inside the pressure monitor

I have had an endless number of problems getting the STM32F103C “Blue Pill” microcontroller to work properly in the PipeWind pressure monitor. First I had problems getting the microcontrollers to work in the first place, which required actual hardware modifications to the microcontroller boards. Then there was figuring out how to install a working bootloader on the devices. Then getting the SoftWire libraries to work properly with our dual Bosch BMP280 pressure sensors. But finally it did begin to work.

That is, until some software update suddenly made it impossible to upload firmware to them. Whether it was changes in the Arduino IDE, the dfu-util or something else I do not know. And frankly, I no longer care. I was excited about these very powerful yet dirt cheap microcontrollers, but now I have wasted so much time getting them to work, that I never want to see them again.

Pressure monitor front

The plan now is to replace the Blue Pill with an equally powerful but much more expensive Teensy 3.2. They always work like a charm, and there is no need for hardware hacking, cumbersome bootloader programmers or annoying software/bitbanging I2C libraries.

Maybe I should even try one of the new Teensy 4.0 microcontrollers. They run at 600 MHz with the same price tag as the 3.2. That’s just insane.

August 15, 2019: Central power supply update

The EnsembleBot is growing bigger, and we need to address some issues with supplying power for especially the A-side components (i.e. microprocessors and communication).

The slave instruments are connected to the master circuitry via a CAN bus, while the A-side power (and sometimes the B-side power as well) is supplied directly from the central power supply. This makes it quite annoying to run cables between instruments, especially if we want to use a more flexible and ad hoc bus topology.

Inside the bottom PSU enclosure

So, we are going to run a common A-side 12V power line along the CAN bus cable to cover all A-side power needs. If a slave instrument needs A-side 5V, it must use the 12V line and step down the voltage locally.

Until now, we only had a small 12V/2A PSU for the A-side. To support a wider use of this power line, we have replaced it with a more powerful 12V/5A PSU. Fortunately, this could be done with only minor physical alterations to the central PSU enclosure, and a very minor update to the central power supply monitor firmware.

June 19, 2019: PipeMare confessions

16-channel MOSFET drivers for electromagnet organ valves
16-channel MOSFET drivers for electromagnet organ valves

Damn. After assembling and air soldering the last two pipe driver boards for the PipeMare controller circuitry, I realized that I placed all the onboard LEDs the wrong way. So now, there are no fancy lights to indicate that the board is functioning correctly.

Furthermore, it turns out that the 12mm brass stand-offs that I planned to use to stack the boards (like the PipeDream organ drivers) are just one millimeter too long for the entire stack to fit into the PipeMare controller drawer. If I had a small lathe, I could easily have shaven off a bit of the 12mm stand-offs, but lacking the right tools I have to order them from China. No big deal, but still yet another delay.

June 7, 2019: PipeMare controller update

The controller in the PipeMare triple-organ must handle communication with the master, monitor the local power supplies, and of course manage and play all three instruments in the PipeMare cabinet. This means that the controller circuit will be a bit more complex than in the other EnsembleBot instruments.

The PipeMare controller assembled

The board is divided into sections by some vertical ground planes to reduce noise from the on-board switching step-down converters. The right side is the main A-side circuitry with the Teensy 3.5 microcontroller in the center, a CAN-bus transceiver, two I2C isolators, optocouplers etc. Just to the left of the main circuitry are two small switching step-down (buck) converters to make stable 5V and 3.3V out of the 12V from the master power supply.

The left side holds the B-side circuitry. In the top left corner is a dual relay for the 5V and 12V power lines, and next to it a step-down buck converter to make a stable and relatively noise-free 5V supply for the secondary controller and support circuitry.

In the bottom left corner we have the secondary controller (Arduino Nano), a PCA9685 PWM-driver board for status RGB LEDs, as well as two INA219 high-side current sensors and their shunt-resistors. This controller will also be connected to one or more Dallas DS18B20 temperature sensors, and to the optocouplers facilitating the simple status messages between the A-side and the B-side controllers.

The controller board is completely cabled, but nothing has been tested yet.

February 13, 2019: PipeMare update

The two pipe windchests inside the PipeMare cabinet are now finally installed. It looks great, and fortunately they fit perfectly.

Both pipe windchests installed
Both pipe windchests installed

We’re still quite a long way away from having a working instrument, though. Besides general debugging, tweeking, voicing and tuning of the pipes, we haven’t yet built the control and driver circuits.

We also need to finish the PipeWind pressure monitor and evaluate the pressure responses in the wind system.