A major focus of the SoundPuddle project right now is building a new circuit board to run the installation and carry it through the next two years.
The installation is controlled by a Papilio FPGA, which connects the other parts of the system - the microphone and audio input hardware, the flash memory, and control hardware for the LED strips. The Zpuino, a softcore running inside the FPGA, handles most of the logic for the system. One of the biggest challenges for the installation is elegantly and reliably integrating all of these devices.
For the trial run at Apogaea, all these components were connected with jumper-wires, and mounted on a large piece of HDPE plastic. This setup worked well enough to demo the installation, but was cumbersome somewhat glitchy. Wires wire often loose or tangled, and on the site at Apogaea there was flickering in the LED array from electrical noise.
In order to make the system reliable and have room to grow, we’ve building a new circuit board that brings all the external devices into one integrated package. This new board is an expansion (or “wing”) for the Papilio, intended for interactive control of massive LED arrays. We’re calling it the SoundPuddle Megawing. Its features are:
- 16 channels for controlling LED strips (support for over 10,000 RGB LEDs)
- Balanced microphone preamplifier with 48 volt phantom power
- Stereo aux input
- Bluetooth module for audio input and controlling the installation
- MIDI input
This board will make it much easier to setup the SoundPuddle, by bringing everything into one package and almost completely eliminating cabling between different components. Since it can fit in a waterproof pelican case, it should be well protected and nicely portable. The case is small enough to fit on a bike or backpack, so future projects of large-scale portable LED creations should be possible.
The single most important task of the board is driving the LEDs quickly and reliably. The SPI control signals to the LED strips operate at 3Mhz. This speed is fast enough that EM noise and AC characteristics (i.e. impedance) of the circuit board and wires can be a big deal. Additionally, the FPGA run on 3.3 volts, while the LED strips run on 5 volts. This means we need to both translate signals from the FPGA up to 5 volts, and deal with electrical noise and impedance.
The new control circuit uses SN74XXX buffer transceivers. There are many pin-to-pin compatible components in this series that will work on the board, so there are options for exactly which chip is placed on the board. For now, we’re using the SN74LS541. It’s chosen because it's inputs have hysteresis, which makes the digital signals more robust against analog noise. Each signal has a series terminating resistor, which helps dampen reflections that cause problems at high speeds.
We use a condenser microphone for the installation, and it needs 48 volts of phantom power to run. The new board has a built in phantom power supply. It takes the 5 volt input to the board, and boosts it up to 48 volts. It doesn't require much current, so it's a relatively low cost and simple circuit based on the LM5002 switching regulator.
The microphone outputs a balanced (differential) audio signal, which needs to get read by the FPGA. We use a Maxim MAX4062 chip to amplify the low-power differential signal from the microphone. That FPGA uses an analog-to-digital converter (the ADC128S102 chip) to read that amplified audio signal.
Additionally, there are a few simple circuits on the board that allow the analog to digital converter to read signals from a stereo aux-input, a dynamic microphone, and four extra inputs.
There’s also a MIDI input on the board. It’s very simple, with a standard optocoupler (6N138) to isolate the board from the signals sent from MIDI devices. This is a new feature for the SoundPuddle, which could be great for connecting to musical instruments or computers.
Another new feature is the RN-41 bluetooth module. It has both UART and PCM data buses connected to the FPGA. This will allow the SoundPuddle to be controlled via bluetooth (imagine changing its speed or color patterns using a phone). More interestingly, it means the SoundPuddle can respond to stereo audio streamed over bluetooth.
Finally, the board also has a 64 MBit SPI Flash chip (the MX25L6445), which the FPGA can use to store program data. At Apogaea, we used an SPI Flash to store the lookup tables that determined color and brightness in response to sound.
Below are images of the schematic and routing for the board. It's a work in progress, and we’re pushing to have it ready for SoundPuddle’s appearance at Burning Man at the end of August. After that the design can be used for many more projects and events.
This is an open-hardware design, and all the files are freely available on github. The circuit CAD work was done in Eagle.
And just for fun, here's a video of from the development of the original hardware: