A MIDI-controlled Arduino pipe organ, phase 1

This is a project I've been meaning to do for a while as a demo of the sixteen channel high current shield, but I'm just now getting around to starting it. I did the first phase of the build at HBL, which gave me the opportunity to borrow a very nice camera to take far more and better build pictures than I usually do.

The project is built around a block of cassette-style low pressure air solenoid valves that I scored on eBay earlier this year for about as much as a single valve in the block costs new. It originally had sixteen channels, but after getting rid of the oddballs and one messed up one, I ended up with thirteen usable valves.

The parts for this phase of the build

The valves came mounted on a DIN rail, which is nice for keeping them all together and mounting them in to the final project. A wiring harness with the connectors for the solenoids can be seen on the left in the parts picture. I decided to get rid of most of it with the exception of the solenoid connectors.

The push-style connectors on the valves will make the plumbing of the project much easier. They are designed to make a connection when the cut end of a soft tube is inserted. The cassette style packaging of the valves allows a single input on the end to feed the air passages of all of the valves. 

Each solenoid also has an LED indicator that comes up when they are activated, which is nice for debugging. All in all, they were an excellent eBay score.

An Arduino Duemilenova carrying a sixteen channel shield is visible in the lower right. It's a pre-production prototype, so it still has green solder mask and white silkscreen, unlike the production boards. Common grounds wired up

Since the sixteen channel shield carries high side drivers, the grounds for all of the valves needed to be wired together. Splicing thirteen wires into a single bundle would be difficult to do in an aesthetically appealing or electrically sound way; therefore, I did it in two groups. The two resulting ground wires will be spliced later. 

The next phase, wiring up the shield connector, was the most time consuming part of this phase.

I put the valve block and the shield in bench vises in order to get more consistent positioning (so the wire lengths would be right) and put them at a more convenient working height. Once they were all soldered in, I bundled them up to produce a nice pleasing appearance. 

Phase 1 is almost done; last step is to add the power connections to the shield.

One of the features of the sixteen channel shield is that each bank of four drivers has an independent power supply. This is useful for some applications, but for this one, I'd like to run a single wire for power. 

My plan was to simply put solder bridges between the power pins on the back of the main connector. It has never been that hard for me to accidentally add them where I didn't want them, so I figured adding some on purpose would be quick and easy. It turned out to both less easy and more messy than I'd anticipated.Jumpering the power

You can see the resulting mess in the next image. The flux puddles over on the right is where I tried to jumper the pair of power pins on that end of the connector. Since the other three jumpers provide power to the whole shield, I abandoned that one. I was weighing the idea of putting solder jumpers on the back of the board in order to provide an easy way to do the same thing -- I will definitely add that in the next generation of this board, because this was a messy pain in the neck. I also plan to include a jumper to allow the option of powering the host Arduino off the main power supply for the shield. This project doesn't need that, since I will be powering the Arduino off the MIDI source.

After dealing with that, I flipped it over and got to work attaching the power cables and bundling them up nicely. I spliced all the grounds (the green wires) together, added a power supply cable, and then bundled it all up in a nice piece of shrink tube to keep it neat. The next phase is programming, which I will cover after I've done some more work on the Zigduino.