Go Wireless with your DMX LED Stage Lights

Too Many Cables!

I like cords and cables as much as the next guy (or gal) but there is a limit!  A could years ago I picked up some Chauvet Slimpar 56 LED light fixtures because I was tired of hauling around heavy standard bulb fixtures for the band I played in.  The LED units had some huge advantages, low power, lightweight, etc… but I found out quickly that for every one of them there were TWO cords (power and DMX control) that needed to be strung and plugged in, whereas in the past a light had only ONE cord to deal with.  So it didn’t take long for me to start investigating ways to make the whole business “cable free”.  This is what I ended up with:

It is basically a standard LED par 56 fixture mounted on top of an enclosure that houses a 12v AGM battery and wireless DMX board.

There are a few battery powered wireless DMX fixtures out there on the market currently, but I’m astounded at how expensive they are.  Here are a couple of examples:

This one for $499


This one (which is not wireless DMX only battery) for $160 –


This one for $200 –


The first and third examples both require proprietary “D-Fi” USB transmitters to be purchased for about $30 each – so you can add that onto the cost.

The total cost of the unit I built was more in the $100 range per fixture.   The retail cost of a Slimpar 56 is around $70  (on sale) and you can get similar Chinese fixtures for one quarter that cost on ebay!  (lot of 4 for $80 – $20 each!)  Here is a cost breakdown:

So I figured that I could build them for between $100 and $300 less than I could buy them for.  Put another way: for what I would spend to buy 4 lights, I could build and have 8 to 16 lights.  I thought it was worth the effort.

A quick note before I detail the construction steps – one of the parts, the 12V to 5V converter unit.. I realized later that I could have just as easily used a little 5V regulator IC (LM7805) that would have cost 20 cents rather than $5.50… That would have saved quite a bit.  I didn’t realize or consider that the little wireless DMX board needed so little power that I could have use the 5v chip even without a heatsink.  Oh well… live and learn.

Parts List

Here are the parts that I used.  I’ve linked most of them to ebay searches because in most cases I don’t know if the auction that I used will still exist when you read this.


Par Fixture ether Chauvet or Chinese import
12V 4.5Ah AGM Battery
Wireless DMX Board
5.5mm x 2.1mm Metal DC Jack Female
Nylon Hex M3 Spacers Screw Nut Standoffs
DC-DC Converter 12V Step Down to 5V
Pair of PVC 4×4 end caps
4×4 PVC post sleeve
Power switch
3-6.5mm Cable Waterproof PG7 Plastic Gland
Aviation Plug Male & Female 16mm 4 pin GX16-4
Misc Wire (one 2 conductor for power and one 3 conductor for DMX) Local Hardware Store  AND  Misc Hardware (bolt, washers, wingnut) Local Hardware Store
Female XLR Connector  – I forgot this on the cost list above – it raises the cost about $2.  🙂


Building the Base

Most of this build is copied from someone else’s battery powered LED fixture project I saw, and for the life of me I can’t remember where I saw it.  It was somewhere out there on the inter-web.   But anyhow, they used 4×4 PVC post sleeve material as a housing, and I like the idea and stuck with it.   It is probably best to buy the sleeve from a local hardware store because the shipping on the sleeve is kind of high.   And while you are there, pick up the end caps and make sure that the caps fit tight on the sleeve.  I gave them a gentle sanding so that paint would hold better and shot a code of matte black onto the sleeves and caps.   They look something like this:



In the photos above you can see that I’d already drilled the holes and installed some of the parts.   The first set I made of these units, I made the base about 7.5 inches – just beyond the length of the par fixture brackets.  But the next set I cut a little shorter, more like 6″.  I found that the best way to cut the PVC into lengths was to use a bandsaw.  Any fine toothed hand saw would work as well.  I would avoid using a circular saw of any time.  PVC tends to pinch and become an instant projectile with those saws. Kind of dangerous. Be careful!

You can see of the photos that there are quite a few holes, around 11 total.   For the bolt that will hold the fixture to the PVC housing, I used 3/8″ size, about 2.5″ long.  In order to keep things as rigid as possible I used LOTS of large ‘fender washers’.   One washer on either side of the PVC shell to keep it from wobbling – I squeezed them as tight together as I could with a 3/8″ nut… then on top of that nut (on the outside of the housing) I put another large washer for the fixture bracket to rest on… then the bracket.. then another washer, slightly smaller, and then finally a wingnut used fasten the fixture to the whole thing.

Note that until the AGM battery is put into the housing, the whole thing will be VERY tippy if you try to attached the light fixture.  There battery has quite a bit of weight and it is that weight that gives the base its stability.  So don’t bother attaching the light until the very end.

I offset the hole for the fixture holding bolt as far to the edge of the sleeve as I could and still have room for the fender washers so that there would be room to mount the other items on the top.

You’ll need to drill 6 small holes for the wireless DMX board.  2 of the holes are to access the pushbutton settings switch and to view the status LED.  The other four holes are for the nylon standoffs that will hold the board in place.  Getting the hole placement right is pretty tricky.  I put one of the DMX boards on my scanner, scanned it, printed it actual size and then used that printout as a template to mark off where to drill the holes.

Beyond that, you’ll need 4 more holes:

1 hole for the wireless DMX antenna

1 hole of the power switch

1 hole for the 12v charging jack

1 hole for the cable strain relief

They can all be arranged on the opposite side of the PVC sleeve from the fixture holding bolt.

Modifying the Fixture

There is a good chance that the LED fixture you have does not happen to have a DC input jack.  This is, of course a very important thing to work through before you even start this project!  Most all of the LED par fixtures I have seen use a 12V switching power supply inside the case to step the 110V AC power input down to 12V DC. That is actually a pretty convenient thing because it is super easy to tap in a 12V input jack.    The first slim-par units I bought had the 12V input already built in.  The newer units did away with that connector to save a little money I would imagine.

On the photo above you can see the little 4 pin connector on the lower right just below the AC outlet which I added.  It is pretty simple to do.  Take the light apart.

Drill a hole for the connector and mount it in:

You’ll want to solder the wires onto the connector BEFORE you mount it – it is easier that way.  Then find the switching power supply board.  It will be the board that is (electrically) between the 110V AC input and the rest of the fixture.  You’ll have to unscrew that circuit board and find the 12V output wires.  Make sure to check the voltage output with a voltmeter.  BE CAREFUL!!  Switching power supplies can be very dangerous – they use high voltages!!  (in the thousands of volts range!)  Once you are sure that you have found the 12V output connection – you can solder your wires in parallel with the existing connections.

Fasten the board back into the fixture and put the whole thing back together.

If there is any doubt about “hackability” of a particular fixture – you might want to just order up a single fixture to see if you can make the needed modifications – and once you are sure that you are able to use a 12V DC battery supply with the given fixture, then order up a batch of them.

Now back to working on the base…

We can turn our attention back to wiring up the “Guts” of the unit – all the stuff in the base.

Here I have all the stuff laid out that I’ll use:

I start by soldering the XLR connectors onto the 3 wire cable and the 2 wire DC supply wires onto the 4pin “aviation” plug.   This is a reference diagram for the 3pin XLR DMX wiring:

The aviation plug can be wired any way you like… just make sure that the +12v and Ground pins match up with how you wired the plug you retrofitted into the PAR fixture!  I used pins 1 and 2, pin 1 for +12v and pin 2 for ground.

This is the wiring diagram I ended up with for all of the “innards”:

After I had the power cable and the DMX cable soldered and threaded through the strain relief I set those bases aside.

Next I set to work soldering the switch to the DC charging jack.

Notice that I didn’t always pay too much attention to making the wires the proper colors.  Normally the wire from the center conductor of the switch above would be RED for + voltage.  In this case I just used a bit of black wire.

Next I soldered the 12v to 5v DC converter into the circuit:

Usually after soldering the wires together I wrapped them with a bit of electrical tape for protection.  I would strongly suggest that you use 3M brand electrical tape – it make a big difference.

Next I can solder the pigtail wires from the DMX board into the mix and mount all those parts inside the base.

Fitting the battery and the DC converter in is a pretty tight fit:

But it kind of keeps everything from moving around that way.  You can see from the above picture that the PVC sleeve bulges out a bit from the battery, but here again, that keeps the end cap fit very snug.  I’ve had dozens of gigs with the end caps just press fit on and because they fit so tight, they never fell off.

Having soldered up all the wires, mounted the board, switches, jacks, battery, in the housing, I set the aside and get ready to assemble the fixtures and put on the finishing touches.

Playing with Homemade Sugru

Even the right angle XLR connectors that are available, I felt, stuck out too far from the back of the light fixtures and so I opted to get inexpensive XLR connectors, solder the wire to the connectors and throw away the XLR connector sleeves.   To protect the wires on the back of the connectors there is a product called “Sugru”  that would be perfect, but being cheap, I found several sites that showed how to make it yourself!

It is basically cornstarch and silicone caulk mixed together to a “play-dough” consistency.

I took a little bit and molded it around the wire and bare connector:

In the photo above you can see one of the bare connectors and one that I molded with my homemade sugru.  After curing for an evening it hardens up to a more stuff rubber consistency – perfect for protecting the wires – and the result is that the entire connector fits snugly into the socket and is protected.

All Done!

So this is what it finally looks like:

And I’m very happy with how they work.

At first I used 7 Amp Hour batteries, but they lasted so long, more than 10 four hour gigs, so with the second batch of lights I made, I used 4.5 Amp Hour battery which were a little lighter and still lasted a very long time.

I charge them up with something like this:


I also made a foot controlled Raspberry Pi DMX light controller.  I’ll try to post the info on how I made that as well.

Thanks for checking this out!


A Raspberry Pi based intermission/announce device for theater



A few times a year I volunteer to an arts organization and serve as their “house sound and light guy”.  When they bring in shows for their yearly concert series, I’m the guy that helps the artists set up and get situated.  I usually run sound and do the lights for them if they don’t have a tech that travels with them.   The auditorium is in Staples Minnesota – a very rural area, but even so, we try to host a “professional quality” event for the concert goers and the artists.  That means for me, lots of small details that need to be attended to.  Details such as pre-show and intermission music in the lobby area as people are waiting for the show to start make a big difference.  I usually toss a CD of royalty-free light jazz music into my ‘go bag’ before I leave home – to play through the house and lobby speaker systems.  Sometimes I dust off my radio voice and get on the mic to do the lobby announcements.  I say something like this at the end of intermission:  “Ladies and Gentlemen – the show is about to begin – please take your seats.”  It sounds simple, but getting the right blend with the background music and a pleasing overall level can be VERY tricky.   There is an existing “Intermission Signal Bell” built into the lobby amplifier system…. but no ones uses it because it sounds like something out of the stone age.

Most nights I’m kind of a “one man crew”, so sometimes those little professional details get tossed out at the expense of more important tasks.  I’d often thought: “how could I automate the task of playing lobby music and announcing the end of intermission to make it stupid crazy simple?”  In addition, wouldn’t it be cool to make it so easy and available so that ANYONE could do it and get consistently good results?    It would be very useful if any teacher, or student at the school auditorium could just press a button and have professional sounding prelude or intermission music start up in the lobby for their concert, play or program.

So that was the beginning and the need – what follows is the beginning of the solution.


When I heard about the Raspberry Pi (rPi) and began experimenting with one, I realized quickly that an rPi would be perfect little device to automate my theater music/announce task.  Perhaps I could have figured out a way to make it work using a less expensive Arduino, but for the cost difference, I’m not sure that the technical “hoops” I would have had to jump through would have been worth using the Arduino.  Some of the inspiration for the device I had in mind came from the Richardson and Wallace article “Simple Soundboard” in issue 33 of Make magazine.   There are some key differences however.

The Raspberry Pi lent itself very well to all of the requirements I had in mind of a device:  1) I could store the playback audio files on the SD Card file system of the rPi,  2) I could use the GPIO pins for both the trigger switches and the a front panel “ready” LED light, and 3) the rPi could easily play back audio files through a built in audio out jack.  All I had to do was put the pieces together in a case and “presto!” an instant automated music and announcement device.


There are five main components that comprise my rPi intermission/announcement unit:

1 – A Raspberry Pi  (DUH!)  – $40

2 – An Audio Distribution Amp that will feed the audio to multiple audio output destinations. (IE: main house board and lobby PA amp)  This piece was not strictly necessary – but it will make it much more easy to wire the unit into the existing system.  – around $40

3 – Power supply for the rPi unit (5v 2A) –  $14

4 – Power supply for the Audio D/A  (24v 2A) – $16

5 –  Momentary contact push buttons to trigger the sounds – $7

(and other misc components – resistors – capacitors – etc) – $20

The total investment is probably in the $130 range.  Although many of the parts were dug up and found rattling around in my parts/junk bins.


I wanted the device to mount unassumingly into the rack that all the other auditorium hardware was in – so that meant I needed a rack mount case.  I was REALLY shocked to find that rack mount project enclosures were really expensive no matter where I looked.  Even my favorite bargain shopping hangout Ebay could not produce a reasonably priced rack case.  So I decided that it was far more economical to just buy some sort of rack mount JUNK that didn’t work any more,  rip the guts out, and then recycle the rack case.  For this project I used the case from on old “Alesis MIDIVerb II”.  After removing all of the original buttons and switches – I glued a bit of aluminum sheet metal over the front to cover up the existing holes.



I also REALLY didn’t want a “wall wart” or any sort of external power supply box.  Being a school district technology coordinator, I’ve come to love the standard NEMA C13 power connector.   So I decided to look for power supply options that would allow me to mount a standard C14 power socket into the back of the rack case and feed the AC mains from that into switching power supply modules which would then feed the end devices.  I found the AC power supply modules on ebay.  They are pretty simple: 120V input and 5 and 24V outputs each.


I picked up a few RDL Audio Distribution Amp modules on an ebay auction for next to nothing.   I see now that they are rather expensive if purchased retail.  (around $130 each)  So sadly – all I can suggest is to keep your eyes open for ebay bargains on those!  You can still snag them for around $30 each used on ebay.


I just strapped the audio d/a into the case:


I bought the momentary contact switches on ebay:


Here are the switches mounted in the case:


Of course the rPi units you can buy from any number of places.  My favorite is MCM electronics:


I did 3d print the holder/mount for my rPi unit – but you can buy them almost anywhere also.  Here it is mounted in the case:



Here is a diagram of the most important bits of the project:


I had some trouble with double triggering with the announcer button and so I put a 0.1uF capacitor across the switch terminals.  With that AND the debounce function of the GPIO event detection routine – the problem went away.  Also note that the ground of the LED resistor is tied to pin 14 on the rPi header which is generally labeled as “DNC” for Do Not Connect – but it appears that many of the DNC pins are just grounded anyhow, so they make a convenient spot to hook into when  a ground is needed.  I guess they call them DNC because they are planning to use those pins in future revisions of the rPi board and don’t want people getting used to using them.  So keep an eye out for that change!

The wiring is pretty basic.  I used header pin jumper wires to connect up most all of the parts to the rPi headers:


I simply soldered resistors to the switches and LED as needed:


A couple of wiring bit I don’t show are the power supply connections and the audio connections.  They are both pretty basic.   For the 5V power to the rPi unit I connected the supply up to pin 2 on the header (5V) and pin 6 (ground).  It was far more easy using header pin connectors than adapting a micro-usb connector to the supply wires.

I used a simple 1/8″ mini-plug to connect audio out (unbalanced) to the input of the distribution amp.  I only connected the left audio out channel since the system in the auditorium was mostly mono and and stereo signal wiring would have been wasted effort.


First, a note about the code…. it is sort of a disaster!  Try to not judge me too harshly for it.  I am certainly NOT a coder.  I grabbed bits and pieces of code from places all around the net and through trial and error – found something that worked the way I needed it to.

The pygame toolkit is the heart of the system.  The toolkit’s primary audience is high school students who want to learn to write video games in python – but it has a very nice programmatic interface for handling audio playback.  Most importantly it has methods for layering and mixing various audio channels.  That way I can have a main background music track playing and easily mix over the top of it, another track, in this case, an announcement that people should return to their seats.

But there was one HUGE hurdle to start with:  even though I could play various tracks – I had a hard time figuring out how do the actual layering.  I discovered that I would need to spawn each audio element as its own thread with the python “callback” function.  That essentially allowed each audio element to exist in its own space and not need any further attention once started.

Also… another huge bit of the puzzle was using the rPi GPIO Event Detection function to simultaneously detect the button pushes AND debounce them AND call the appropriate code subroutine.  WHEW!  That’s a lot!

Here is the code as I currently run it:


I wanted the program to start up at boot and in case the program crashed I wanted it to restart automatically.  It seems pretty stable, but I have had it segfault on me a couple times as I randomly and quickly pushed the buttons.  I don’t anticipate it to be an issue… but just in case, having a ‘watchdog’ restart the process in case it dies is helpful.  I found something that I could put into my /etc/rc.local that does both things: 1) startup at boot and 2) auto-restart on exit – lines 5-17 below.




Finally,  I put some labels on the buttons:


and a little description on the front of what the unit does, instructions if you will, for any student or staff tech people who may wonder what the new box in the equipment rack is supposed to do:



I think that the beauty of the Raspberry Pi, or for that matter any number of other modular electronic devices appearing on the market lately, is that they allow you to “scratch an itch” that you maybe  could not afford to in the past.  I could have set up a computer with iTunes and hooked that into the auditorium system – but not very long ago, the school district would not have had a computer just ‘laying around’ to dedicate to such a task.  And even if I did dig up an  old computer to serve as an intermission music / announce unit – it would have been overly complicated and I imagine that rather than use it – it would have collected dust.  But the “single mindedness” and simplicity of devices built with Raspberry Pi units and Arduinos, and Beagle Bones,  ideally suit them to single simple tasks.   And not to mention they are just plain fun to play around with!