Drum-Triggered Room of Lights

A Matrix of 69 Fluorescent Light Tubes Controlled by a Live Drummer

aka “The Big Bang Project”

This is the second project I did with Ezra Masch (see the 72-channel Color Organ). We wanted to make a more immersive light environment that was more sensitive to the musician’s nuances than the Rhodes project.

Overview

This time we used a live drummer, with a kick (bass drum), snare, and hi-hat. We wanted each drum to control a bank of lights, with more lights turning on the harder the drum is hit. We decided to have 4 levels of “loudness”, or 4 amplitude bands  (soft, medium, loud, very loud).

We put the drummer in one room, and filled another room with the lights. There were three layers of 23 lights each, for a total of 69 fluorescent tubes arranged in a hexagonal matrix.

Each drum had a sensor (piezo element, aka “contact mic”). The sensors ran into my modular synthesizer where the signals were split into 4 amplitude bands, cleaned up and sent to a custom-built relay box. The relay box had 12 relays, each one turning on a 120VAC circuit when it received a 5VDC signal on the input. Each relay controlled a bank of lights in another room.

The Patch

If you are familiar with modular synthesis, the following might make sense. Simply put: Contact mic -> Gain stage -> Four-way splitter -> Variable attenuation -> Trigger to gate converter (with Variable gate length) -> Relay box.
Here’s the patch in detail: I patched each of the three contact mics into a level booster (“Gozinta” module by Circuit Abbey), to provide lots of gain and to make use of the clipping LED (so I could check that the mic hadn’t fallen off!). I then patched each of these three outputs into a VCA Matrix channel configured as a single-input, four-output splitter. I attenuated each of these four outputs a little bit more than the previous one to provide four outputs, each of a different amplitude. These are the four amplitude bands for each mic. At this point we have 12 signals running (3 mics split into four bands each). Each of the twelve outputs ran to the Async Trigger jack on a Pingable Envelope Generator, to convert the audio wave into a steady gate signal. The P.E.G. has a triggering threshold of 3.5V, so by attenuating the signal on the VCA Matrix in different amounts I was effectively adjusting the amount of amplitude on the contact mic required to trigger each P.E.G. channel. I then took the gate output on the P.E.G. to trigger the relay box. By adjusting the Ping time on each P.E.G. channel, I could adjust the length of the output gate. This was very important because the contact mic outputs dirty triggers (multiple spikes, variable lengths, glitchy stuff…) but fluorescent lights want to see steady on or off conditions. They also need to have AC current for a certain amount of time before the light will turn on. We had different ballasts in our lighting rig, so each one had to be tuned differently.

The Lights

The lights were fluorescent tubes standing vertically in columns in an empty room, 69 lights total. Each column was made of 3 tubes (bottom, middle, top), giving us three layers of lights. The bottom layer was controlled by the kick drum, the middle layer by the snare, the top layer by the hi-hat. Also, the columns were arranged in 4 concentric rings that corresponded to the 4 amplitude bands (loudness response). So there was a center column, then a ring of 6 lights around that, then another ring, and a final perimeter along the edge of the room. A soft tap on the drum would just trigger the inner lights. A medium hit would trigger the center light and one or two rings around that, and a hard hit would turn all the lights on (for that layer only).

As you might know, fluorescent lights require a ballast, and wiring 69 lights isn’t trivial. Ezra took charge of this project, framing out a ceiling structure to attach each column of lights and to run the wiring overhead, and then taking a few late nights to do the wiring. We used crimp tabs (0.25″ faston style) and solid copper wire and tons of zip ties. It all had to be done very neatly because the audience was invited to walk through the forest of light tubes, and this was to be shown to the sculpture department!

The Show

The performance was at University of Texas’ Sculpture Department. The audience stood facing the light room, and the drummer played in a raised room behind the audience. It was critical that the drummer was watching the lights, and the audience was not watching the drummer. Two different drummers played, with a break in between. I kept my hands near the controls in case a mic slipped or the thresholds needed adjusting. Everything went smoothly, but at the very end of the last drum riff, some of the relays started acting wonky and stuck on. This was clearly because we were using the relays outside of their intended use by flipping them so fast for so long. To prevent such things in the future we would need a budget for industrial grade relays that can handle switching at low audio rates for prolonged periods (around $100 each, times 12 relays…). However, we were lucky this time and it didn’t ruin the show!

The Big Bang Project from Ezra Masch on Vimeo.

The Big Bang Project, debut performance from Ezra Masch

LED Buttons

I often get asked “Where do you get those buttons you use in your modules/kits?” or “Where can I get different colors of those buttons?”

If you just want a few buttons, a company called Well Buying makes a suitable replacement. Mouser carries them.

Here is the datasheet.

And here are some of Well Buying’s part numbers (search for these numbers at mouser.com if the links aren’t working):

PS004-L22NPR1AXTURXX (Red latching)

PS004-L22NPR1AXTUGXX (Green latching)

PS004-L22NPR1AXTUYXX (Yellow latching)

PS004-N22NPR1AXTURUG (Red/Green momentary)

PS004-N22NPR1AXBUBXX (Blue momentary)

PS004-N22NPR1AXRURXX (Red momentary)

PS004-N22NPR1AXTUYXX (Yellow momentary)

Mouser’s stock varies, and they may carry different colors, so try some searches on mouser to see if they have new stuff.

The caps on these buttons are translucent in a slightly different way than the ones we use in our kits and modules, but they are a drop-in replacement.

If you want to get a lot of buttons, I’ve heard that Well Buying will sell them to you direct at a much cheaper price. Or, if you prefer the exact buttons we use, then email me and I can refer you to our contact. Minimum order is several thousand pieces from our supplier.

Rhodes piano 72-channel color organ

Rhodes Piano Overhead view
Rhodes Piano Color Organ installation at University of Texas, Austin.

In 2010, Ezra Masch, who was pursuing his MFA at University of Texas, Austin at the time, approached me about designing the electronics for a color organ project he was planning to show at UT and at the Artpost during the East Austin Studio Tour. We went over some ideas and ended up building a 72-channel light display controlled by a Rhodes piano. Each key on the Rhodes would not only play a note (like a normal Rhodes), but would also trigger an AC circuit to turn a light on. The lights were arranged by color so that the same notes were the same colors in any octave (F=red, G=orange, A=yellow, etc). This blog post is intended to document my work on the project, which was mainly the electronics.

Overview

Our system consisted of mounting a strip of tact buttons under the keys of the Rhodes, and running those signals to three DB-25 ports (aka parallel port cable, or old-school printer cable) on the back of the Rhodes. The DB-25 cables ran to three AC boxes, each box having 24 normal household 120V electrical plus on it. Each of these outlets corresponded to a key on the Rhodes. Each of the 72 clip-lamps plugged into one of the electrical plugs and was mounted on a rack frame the Ezra designed and built.

Schematic for the 3 PCBs. A 72-key Rhodes requires 3 PCBs. The fourth section shows the wiring for the AC boxes

Button board

I designed a PCB that we could mount 16 buttons onto, so we needed 6 of these to get 72 buttons. (They’re the same buttons I used on the Autonomous Bassline Generator). We both assembled and soldered the PC-boards, they’re a good quality so it went fast. The PCBs themselves mounted to an aluminum angle, which provided enough rigidity to keep a constant level under the keys. Ezra designed and fabricated this angle with a slotted mounting system so we could precisely set the clearance between the button-board rail and the keys. This was critical for ensuring good play-ability.
Each button closed a circuit to feed a DC voltage to one of the header pins. Since there’s no power normally on a Rhodes (they work wonderfully like guitar pickups), the DC voltage was provided by a power-supply in the AC boxes.

Button board
Button board, mounted to custom rail.

Inside the Rhodes

Traces ran from the buttons to 2×8 header pins on the end each PCB. Six ribbon cables (16-conductors each) ran from the header pins to a breakout board in the back that had three DB-25 plugs. With one pin reserved for a reference voltage, and ground taken from the shield, each DB-25 left us with 24 signal pins, meaning 24 lights could be switched on/off from one DB-25 cable.

The whole system could be removed from the Rhodes without any damage or change to this vintage instrument (besides the DB-25 jacks mounted the rear).

Inside the Rhodes
Inside the Rhodes, the button board wired with ribbon cables leading to the DB25 ports on the back (not shown)

AC boxes

The other end of each DB-25 cable went to an AC box. When a key was pressed on the Rhodes, the DC voltage coming from the button boards would trigger an SCR to allow AC current to flow to one of the AC outlets. In the foreground you can see there’s two identical yellow PCBs, each with 12 SCRs on it. The IC sockets are there to hold resistor arrays (which helped to keep stray currents from falsely triggering the circuits). It took us a few hours to do the wiring together. Afterwards, the wires were zip-tied and organized neatly before the boxes were closed (not shown in photos). Ezra built the boxes out of wood and aluminum angle, and mounted all the AC outlets before we began the wiring process.

Also you can see the DC power supply (green PCB, foreground), which was just a wall-wart I busted open and mounted inside each AC box. The DC voltage goes through the DB-25 cable to the button boards inside the Rhodes. This setup is not ideal from a signal/noise perspective because the reference voltage is running inside the same shielded cable (the DB-25) as the signal conductors. However we stuck with this method instead of generating the DC voltage inside the Rhodes because it meant the expensive Rhodes would be modified as little as possible, and it also kept any AC power out of the Rhodes itself (which could contaminate the audio). We also wanted to avoid using batteries since this would be set up for long periods of time in a musuem/gallery setting. So the DC came off the same AC circuit that’s switching the lights, and ran along side the switching voltages, and with some extra attention to keeping noise out of the system, it worked great.

Inside the power switching box, pre-wiring
Inside the power switching box, before wiring the AC outlets. The SCR boards (left and right) are visible, as well as the DC power supply (bottom, green)
Inside power switching box, post-wiring
Inside the power-switching box, after wiring the AC outlets

Setup

For setup, Ezra mounted all the lights in a pattern on a rack (approximately 30′ x 10′). A group of us spent a long night extending the cords of all 72 lights so they would hang down to the AC boxes with some comfortable slack. The Rhodes was in the center of the light racks, behind the performer’s back, with it’s three printer cables running out to the AC boxes. The audience stood or sat in front and watched the wall of light flash behind and above the performer.

Power switching box, in use
Power switching box (1 of 3), connected to 24 lamps

Testing

But before the audience showed up, we tested and tweaked. The button board had to be adjusted very precisely in order to maintain a consistent triggering force across the whole keyboard. Also we found some cheaper DB-25 cables caused false-triggering, so we had to use good ones (which are hard to find, since they have fallen out of demand with the advent of USB). A few trips to the computer Goodwill and Radioshack solved this.

Ezra testing the unit
Ezra Masch, testing the channels before a performance

“Music of the Spheres” from The Daily Texan

Performances

Ezra gave his master’s show at UT, in the sculpture building. Later that week he performed at the Artpost as a part of the East Austin Studio Tours, with smoke machines, clapping and cheering, and I even recall a limo pulling into the space.

A few months later (?) it was again set up at the Visual Arts Center at UT. This time there were more performers, elaborate costumes, and psychedelic patterns on the walls.

In costume
In costume, performing. In the foreground are silver-painted greco drummers

Critique

At the end of the day, we were pretty happy: the experiment was a success. Along the way we had to sacrifice a few ideals to meet deadlines and make the project practical. One big one was the sustain pedal. Since the buttons responded only when a key was physically held down, the lights would turn off when the key was released even if the sound continued because the sustain pedal was held down. This meant the lights didn’t quite “ring” the same way the sound would. However, watching the lights flicker and flash in time, space, and color to the music was mesmerizing enough. Some ideas to add this sustain functionality would be using a 72-channel CMOS latch circuit (use the sustain pedal to latch the data from the buttons, and then clear it when the pedal is released). Or a micro-controller circuit could accomplish this easily (as well as fancy stuff like arpeggiation!)

A critique of the electrical circuit would be that the unit is not grounded well. The DC ground needs to be connected to the AC neutral in order for the SCRs to trigger. No exposed metal is connected to the neutral, so there is little risk of shock, but I didn’t like having to use AC neutral as the interference shield in the long DB-25 cables. If a performance space had bad ground in the building, or if there was noisy AC power, it might effect how well the SCRs trigger, and that could cause problems. We addressed this issue in our next project, by using relays instead. More on that in another post…

Another issue was the use of physical buttons. A slight force was necessary to close the button, so the Rhodes didn’t respond the same way it did without the button board installed. With a little practice, it could be ignored, but it would have been nice to use something optical or magnetic/Hall effect. But, getting 72 optical or magnetic switches to operate without interference in tight quarters seemed daunting, so we chose the mechanical switch approach despite the change in “feel” on the instrument.

Finally, the system looked much better when played in the dark. This might be obvious, but it had an impact since the first performance had to be done in the daytime. Ezra and I considered this when we collaborated on our next project….the Light Matrix… To be continued

Programming the Pingable Envelope Generator

How to re-program your P.E.G.

In a nutshell:

  1. Set up the hardware and software: Updating Firmware on AVR chips
  2. Download the current release of PEG code
  3. Connect ISP to red channel and flash code from your computer (see photo below)
  4. Remove blue channel jumper
  5. Connect ISP to blue channel and flash code from your computer  (see photo below)
  6. Re-install blue channel jumper
  7. Cycle power
  8. Play time!

(see bottom of post for detailed instructions)

Programming the Red channel
Programming the blue channel. Note the blue jumper has been removed so that the 6-pin ISP cable can fit. Replace the jumper after programming, and cycle power before using the PEG.

Detailed Instructions:
First, if don’t already have your computer set up for programming AVR chips, then read the article on programming firmware. You’ll need software installed on your computer (AVR Fuses or CrossPack for OSX, or AVRStudio).

Now, remove your PEG from your rack and power it up. You may need a longer ribbon cable, or somehow rig something up so you can keep it powered on while programming.

Next, connect the AVR ISP programmer to the 6-pin header under the red channel chip. Note the red stripe orientation. On your computer, flash the code to the PEG. See photo below.

Next, connect the 6-pin ISP cable to the blue channel header that’s to the right of the blue channel chip. You’ll have to remove the blue jumper from this header, and replace it when you’re done. Flash the code onto the blue channel.

Finally, disconnect the AVR ISP and turn off the PEG, and then turn it back on. This final step is necessary because the jumper on the blue channel is only read at boot-time, so the PEG must be turned off and back on with this jumper installed.

To clear up any confusion, notice that there’s a second blue jumper on the PEG that’s located near the power cable. Just leave this alone during programming. The blue jumper that’s mentioned above is located next to the blue channel AVR chip (towards the top, center of the board).

Technical Note on fuses:

Normally, you won’t have to do anything to the fuses. But if your chips got a static shock, or if you are using brand-new chips from mouser or an electronics supplier (as opposed to chips that you bought from 4ms) then you will need to program the fuses.

With avrdude (which is installed if you have AVRFuses running in OSX) the command is this:

avrdude -F -B 16 -P usb -c avrispmkII -p atmega328p -U hfuse:w:0xd9:m -U lfuse:w:0xce:m

Note that it contains -B 16, which forces avrdude to run at a slower bit-rate since the chips come pre-set at 8Mhz (internal RC osc). When we run this command, we are enabling the external 20MHz ceramic resonator on the PEG pcb, so future commands can be run at a faster bit rate. For example, after executing the above command, we can execute:

avrdude -F -B 0.5 -P usb -c avrispmkII -p atmega328p -U flash:w:peg.hex

(Assuming that the file peg.hex is in the current directory). This runs at -B 0.5 which is must faster!

If you are using AVRStudio, simply type in the following values on the fuses section of the programmer page:

High Fuses: 0xD9

Low Fuse 0xCE

Or, simply go with the default fuse settings, but change the clock settings to Ext. Crystal Res, >8Mhz (fastest), 258 CK/14CK + 4.1ms

Building an RCD Breakout Module

How to make an RCD Breakout

Intro

The Rotating Clock Divider is a Euro-rack format module from 4ms that takes an incoming clock signal and outputs 8 simultaneous divided clocks, each in the range of /1 to /64. It also has a Rotate CV input that re-assigns the divide-amount on the jacks. More information is at 4mspedals.

The RCD features 6 jumpers that can control various features. The User Manual goes into depth about what these do. The breakout panel is a way to bring those jumpers to the front, so you can use flip switches to change the jumper settings on the fly.

For PCB version 1.0.2 and later….

You will need:

  • RCD with PCB 1.0.2 or later (see the bottom for instructions on pcb version 1.0.1 and 1.0)
  • 4HP panel
  • 6 SPST switches
  • 16-conductor cable with a 2×8 connector on one end (standard Doepfer power cable, cut in half).

Here’s how it goes together in a nutshell:

PCB 1.0.2 RCDBO

Let’s start by looking at the connection to the board. There’s only 12 pins on the board, but the connector has 16 holes. That’s OK! Just let the bottom four holes hang off (those four wires don’t go to anything anyways, as you can see in the first diagram). To be clear, by the “bottom four holes” I mean the four holes on the right hand side in the photo below (they are on the bottom in the photo above). The edge of the connector should not stick over the edge of the board.

Cable connection to RCD board -- Click to enlarge
Cable connection to RCD board -- Click to enlarge

OK, now let’s look at the wiring of the panel. There are six switches, each has two connections.

Notice the Max Divide 1 and 2 switches are flipped from the other 4 switches: the lugs are on the right side. That’s just because of the way I labeled the panel (which is the same one included in the 4ms kit, so do it exactly like this if you got the panel in the kit). For the top two switches, flipping the switch lever to the left will open the connection (same as removing the jumper) and flipping it to the right will close the connection (same as putting on the jumper). For the bottom 4 switches, flipping the switch to the right is like removing the jumper, flipping to the left is like installing the jumper. See the User Manualfor a description of what the jumpers do!

 

PCB version 1.0.1 (and 1.0)

For PCB version 1.0.1, it’s the same process, but the switches are in a different order. Using the same cable above, it goes:

1 (Red) & 2: Max Div 32
3 & 4: Max Div 16
5 & 6: Spread
7 & 8: Auto-Reset
9 & 10: Counting
11 & 12: Gate/Trig
13-16: not used

RCD PCB 1.0.1 wiring to RCDBO

Obviously you will have to upgrade your chip firmware to v1.1 if you want to use Gate/Trig or Up/Down counting or Spread. You can read about upgrading on the RCD page on 4mspedals.com

PCB version 1.0

For PCB 1.0, there’s only 4 switches hard-wired to the breakout connector pins, so you have to solder wires from the back of the PCB to some jumper pins which you insert into the breakout’s connector. Look at the photo:

PCB 1.0, solder the three wires to the 4-pin connector

You will be soldering the red, yellow, and black wires from the PCB to the back of a 4-pin (2×2) connector. Note that the black wire connects to BOTH pins in a row, but the red and yellow wires connect to one pin each. The inset photo shows the back of the 4-pin connector.

To use your new 4-pin, just push it into the breakout’s 16-pin connector where the Up/Down and Gate/Trig jumpers are supposed to go. Follow the pin numbering from the PCB 1.0.1 section (above). The red wire is Up/Down and that should be closest to the existing breakout pins. The yellow wire is next to the red, farthest from the existing pins. The black wires should be on the top.

Updating firmware on AVR chips

A number of 4ms devices use an AVR microcontroller. These chips run a small program. On most 4ms devices that use an AVR chip, there’s a 6-pin header (2 rows of 3 pins) near the chip. This header lets you update, upgrade, or hack the AVR chip.

Here’s how to do it:

You will need…

  1. AVR ISP mk2
    AVR ISP mk2

    ISP (In-circuit Programmer): I recommend the AVRISP2 (also known as AVR ISP MKII) available from Mouser for $34, or elsewhere sometimes cheaper! In Europe, try Farnell

  2. A computer with a USB port. Windows actually has the most seamless installer, but I also use Mac and Linux to burn code just fine. Download and install one of these:
    • Windows: AVR Studio 4.19. Download it here: AVR Studio Archives. (Note that the latest version is AVR Studio 6, which will probably work, but these instructions are geared for AVR Studio 4)
    • Mac OS X: Download and install Crosspack-AVR and then AVRFuses
    • Linux: You just need the avrdude program to burn code, but can install the whole avr-gcc toolchain if you might be compiling your own firmware.
  3. The hex file: This is the actual file that contains the firmware update. If you’re upgrading a device, this will be available for download on the device’s web page, or you can find alternative firmwares on the 4ms github. If you’re an advanced hacker, you’ll probably compile your own code using avr-gcc (part of AVR Studio and Crosspack) which will generate a hex file for you. The file should be in intel hex format, ending in .hex

Specific instructions for PEG:

If you’re programming a PEG, read this article specifically about the PEG before continuing.

Click the image for instructions specific to the PEG

Specific instructions for QCD:

The QCD has four ATtiny85 chips: one for the tap button and one for each of the four channels. Each chip has its own 6-pin ISP header.

The tap button chip can be programmed normally. It’s marked with a white dot and is located under the tap button and jack. (At this time, the firmware for the tap button is not available)

To program the channels, you must apply a gate signal to the Reset and CLK IN jack for the channel you’re programming. The gate signal should be 5V or more. Note: It’s usually fine to use a passive mult to split one gate signal to all the Reset and CLK IN jacks.

Specific instructions for QPLFO:

The QPLFO has four ATtiny85 chips: one for each channel. Each chip has its own 6-pin ISP header.

To program the channels, you must apply a gate signal to the Reset and Ping jack for the channel you’re programming. The gate signal should be 5V or more. Note: It’s usually fine to use a passive mult to split one gate signal to all the Reset and Ping jacks.

 

Detailed Instructions:

PLuig the AVR ISP mkII into the 6-pin header of your device, making sure to line the red stripe up with the printed white box on the PCB

Windows (AVR Studio 4):

  1. Download and installAVR Studio 4.19 from the AVR Studio Archives. 
  2. Run the installer and click OK/Next to everything. Yes, you want the “Jungo/USB” driver to be installed.
  3. Plug in your AVR ISP mkII into the USB port and make sure Windows finds it, and automatically installs the drivers. The green light near the USB plug should come on.
  4. Power your device up (that is, plug your Rotating Clock Divider into your Eurorack system, or power up your Bend Matrix, etc…). Your device should be running normally, but don’t plug any patch cables into it
  5. Plug the 6-pin ISP header of the AVRISP mkII into your device. Note the orientation: the red stripe should go towards the white box that’s printed on the PCB: see photo above.
  6. The light near the 6-pin cable on the AVRISP mkII should turn green, indicating that it detects power. If you plugged it in backwards, it might flash orange. Nothing’s damaged, just flip it around…
  7. Run AVRStudio 4
  8. Click the little “AVR Programmer” icon: AVR Programmer
  9. If it doesn’t automatically detect your AVR ISP mkII, then select it from the box on the left, and click “USB”, and then click “Connect…”
  10. Click on the “Main” tab, and select “ISP mode” from the bottom box. Click “Settings” and choose an ISP Frequency of 125kHz.
  11. Select the chip you’re programming under “Device and Signature Bytes”:
    • Select “ATmega168″ for the RCD or SCM
    • ATtiny84 for the Auto Bass Gen
    • ATmega32 for the Bend Matrix
    • ATmega328 for the PEG
    • ATtiny85 for the QPLFO or QCD channels
    • ATtiny2313 for the QPLFO tap controller
  12. Click “Read Signature” and it should say “Signature matches device”
  13. Click the “Program” tab. Under “Flash” click the “…” button next to “Input HEX File” (the top one). Make sure you’re not under EEPROM! Select your hex file that you downloaded (or compiled yourself)
  14. Now, click “Program” (under the Flash section, not under the EEPROM section). It should give you no errors at the bottom of the window
  15. Unplug your ISP 6-pin header and you should be good to go!

Please let me know if you have any problems!

Mac OSX (AVR Fuses) –the easy way to upgrade your firmware:

  1. Download and install Crosspack-AVR
  2. Download and install AVR Fuses
    • For programming an atmega328 chip (such as used in the P.E.G.), download and install this hacked version of AVRFuses and follow the README.txt instructions for installation
  3. Download the hex file for your upgrade from 4mspedals.com
  4. Plug in your AVR ISP mkII. The green light by the USB plug might not come on.
  5. Do steps 4, 5, and 6 of the Windows installation (power up your device, plug in the AVR ISP mkII, make sure the green light comes on)
  6. Open up the AVR Fuses program that you downloaded.
  7. Select the AVR chip type that you’re using (the name of the chip is also printed on the chip itself, use a flashlight to read the tiny letters!)
  8. Pingable Envelope Generator (PEG) uses ATMEGA328
    Bend Matrix uses ATMEGA32 or ATMEGA32A
    RCD and SCM: ATMEGA168 or ATMEGA168P
    AutoBassGen: ATTINY84
  9. Select the hex file you downlaoded in step 2, and burn it onto your chip!

Mac OSX (Crosspack) –the advanced way to hack your code:

  1. Download and install Crosspack from here: http://www.obdev.at/products/crosspack/index.html]
  2. Download the hex file for your upgrade. Save the file in your Home directory, so you can find it easily with the Terminal.
  3. Plug in your AVR ISP mkII. The green light by the USB plug might not come on.
  4. Do steps 4, 5, and 6 of the Windows installation (power up your device, plug in the AVR ISP mkII, make sure the green light comes on)
  5. Open up your Terminal program (in Utilities folder)
  6. In Terminal, type “ls” and hit enter. You should see the name of the hex file that you saved in your Home directory (along with everything else in your Home directory). If not, you didn’t save it in the right place.
  7. Now tell it to burn the code. For the RCD, type this command:
    avrdude -P usb -c avrispmkII -p atmega168  -U flash:w:clocker.hex -v -v

    And press enter. This assumes your hex file is named “clocker.hex”. It should say “avrdude: Thank you” and have no errors above that. If all goes well, unplug your 6-pin cable and your RCD is updated!

    If you’re using a fresh chip, you’ll need to use this command to burn the fuses:

    avrdude -P usb -c avrispmkII -p atmega168 -U hfuse:w:0xd7:m -U lfuse:w:0xef:m -U efuse:w:0x01:m -U flash:w:clocker.hex

Linux:

  1. Install avrdude. You can probably install it with your package manager, such as Aptitude: (type “sudo aptitude install avrdude”), or Ubuntu’s Synaptic
  2. Follow the OSX instructions starting at step 2. Hint, if avrdude is not finding a usb connection, you might need to type “sudo” before the avrdude commands. Then it’ll ask you for your password before running avrdude.

Solar Pump display panel design

4435547099_cb89302c52_b
Solar charging station at the Austin fire station Trinity/4th

Sol Design Lab’s Solar Pump, a solar-powered charging station for mobile electronics, was an official part of South-by-Southwest this year. The stations have standard outlets, so anyone can walk up and charge a cell phone, laptop, or even an electric bike or scooter. The power comes from solar panels on the roof of the stations, so there’s no charge for charging (sorry… couldn’t resist). Refurbished 1950′s gas pumps provide a retro-future look that catch the public’s eye and twists the concept of “fill-up station”.

We set up three stations throughout Austin, including a large station downtown by the convention center, a smaller “pump” outside the South Lamar Alamo theater, and a mobile “pump” at Auditorium Shores. The Solar Pump grew out of Beth Ferguson’s MFA project, and these represent the third generation of prototypes.

LED display panel
LED display panel

My main role was the design and construction of the digital display, which used LEDs to indicate solar panel voltage, power output (to the inverter) and battery bank voltage. More technical details below….

Each station is a little bit different, with either 2 or 4 deep cycle 100AH 12V batteries creating a 24V system. A 1100W inverter supplies standard 110VAC power to the user through a GFCI outlet (including a big red Emergency-Stop button!). Between 2 and 4 bi-facial Sanyo solar panels charge the batteries through a Morningstar charge controller. We used the Pentametrix system to read the shunts and voltages, and then send that data digitally over RS-232 to the custom digital display module.

Solar charging station at the Austin fire station Trinity/4th
Gotta love that E-stop button!
solarpump
Solar Pump at Alamo Drafthouse, South Lamar

Tech details

Here’s the schematic:

Front panel schematic
Front panel schematic

Here’s the code (avr-gcc, using AVR Studio 4): solarpumppanel.c

Software

An Atmel AVR ATmega32A chip is at the core, communicating with the Pentametrix meter over a serial cable. The AVR makes a “request” to the Pentametrix every 500mS or so, and the Pentametrix responds with the latest readings: voltage on the solar panels, voltage on the battery bank, and current flowing out of the batteries to the inverter. The AVR then scales and converts these numbers and outputs them to the LED displays. The UART runs at 2400 baud, and the final byte is a checksum. If the checksum is off, or if the AVR doens’t hear a response from the Pentametrix, an error light goes on inside the box. Not terribly useful for debugging on the field, but on the bench this was handy.

Hardware

A Max232 chip handles the RS232 voltages, converting RS232 levels (-7V/+7V) to/from TTL levels (0V/5V). This directly connects to the AVR’s UART pins (RX/TX). These chips rule, they are totally worth the cost and board space.

Driving the LED displays turned out to be a little harder than I originally thought because the super-bright displays we found drop 7.4V, which is obviously higher than the 5V the AVR chip runs on. So I had to use an NPN/PNP transistor pair for each blue LED digit to switch +9V. (Q4/Q4B, Q5/Q5B, Q6/Q6B). This turned out to work well once I became OK with modifying the PCB and changing the code invert the “on” and “off” signals on the AVR pins for the blue digits only.

The yellow digits drop much less voltage, so I ran them on +5V and only needed on PNP transistor per digit (Q1, Q2, Q3). I’ve used the 2N5401 PNP transistor with good results for switching LED segments in other projects, and also have seen it around in the Peggy project… it’s fast and can drop a good amount of power… a keeper.

Finally, there’s a “bar graph” LED display which is 5 sets of LEDs, with 4 LEDs in parallel in each set. Each LED set is a different type of LED so they have a trimpot to set their brightness. I used the same 2N5401 PNP transistor on a 5V rail for these.

I went super-conservative on the powersupply, dropping the original 24V down to 18V, then to 9V, then to 5V.

Oh did I mention I found Pink LEDs! Yeah!!

Enclosure

Beth and drew up the front panel graphics in Illustrator, and I sheared some panels from 2mm aluminum. I then took that to a friend with a mill, who cut the rectangular holes for the numerical displays. I drilled out the round holes figured out a (perhaps excessively elaborate) way to mount the PCB to the front panel, and bend a flanged box to shield the circuit from the rear. The front panel is the main structural element and is mounted to braces which mounted to the frame of the pump.

I powdercoated the front panels white, and then applied the graphics with a decal, and baked that on. It came out pretty nice!

Guitchurn

Making butter and basslines
Making butter and basslines

Michael Merck asked me to collaborate on upgrading his Guitchurn, which was (at the time) an acoustic musical instrument coupled to the shell of a common hand-built olde tyme kitchen appliance. Naturally I thought any cottage churner would enjoy electronic basslines while doing the deed, so we connected an Autonomous Bassline Generator to it for the Cantanker Magazine show (issue 7) at the Big Medium Gallery in October ’09, and then later at the Creative Research Gallery.

The Guitchurn works by a little paddle on the arm breaking an infrared light beam each time you bring the arm down. The Bassline Generator detects the broken beam and plays the next note in the autonomously-generated melody. So you only get music if you’re making butter and vice-versa.

Bread was set out, with a note asking you to “wait until the butter comes”, which surely was incentive to take a turn on the churn. For some people it was their first time churning butter and playing electronic bass! Imagine! Copious amounts of hand-sanitizer, wine bags hanging from framed art, banana pudding in lettered mugs, and Marcel Duchamp speaking backwards also added to the festivities.

Guitchurn Installation at Big Medium Gallery
Guitchurn Installation at Big Medium Gallery

SimSam

SimSam 1.0

Unveiled at the beginner’s class at Handmade Music Austin #4, the SimSam (Simple Sampler) is a single-chip “sample-rate cruncher” that’s glitchy as all-get-out but only costs about $8 in parts. It’s an effect with an input and output jack; and it’s a noise-maker since a jumper shorts the output back into the input when nothing is plugged into the input jack. We built 28 SimSams in a couple hours at the workshop.
Continue reading

Handmade Music Austin #3


YouTube via EA78751
“Video from Handmade Music Austin #3, Dec. 20th 2009. At this workshop 13 people built the free project, Mini Space Rockers. After that we witnessed live electroacoustic sound by Lustigovi. And then 19 people built the upper division project, Andromeda Mk-4 Analog Bass Drum. And last there was an open jam with DIY bassline and drum machines from this workshop series, plus acid lines from a MIDIbox SID.”