Wednesday, June 12, 2013

How to build your very own AsYetUnnamedDMXController

So you want a basic DMX controller. You want to use it as a bench tool, because you spend your days troubleshooting devices like color scrollers, dimmers and LEDs. Or maybe you want it as a cheap alternative to a remote focus unit. You want something you can toss in your bag to set static colors on your LED fixtures without messing around with the menu. There's any number of reasons to want a simple, portable DMX controller, and certainly some I haven't listed here.

Probably the most cost-effective commercial option of which I'm aware is the Pocket Console DMX by Baxter Controls. Certainly a functional device, and it's not -too- expensive, as these things go.

I think we can do better in the cost and user interface department. My entry into this category doesn't have the faders (yet?) but it does have a lot more buttons.

There are 20 buttons, in fact.


You've likely heard of the Arduino. If not, I would describe it as one of the easiest ways to get into digital electronics. It's a small computer (it might not look like it, but it really is a whole computer on a board around the size of a business card) that you can program to do all sorts of low-level magic. It forms the heart of my DMX controller.

One of the great things about the Arduino is that anyone can make a shield, which is just another circuit board that stacks right on top of the Arduino. These shields add all kinds of functionality, from allowing the Arduino to use Ethernet to giving you a bunch of relays to control external devices to putting a touchscreen right on top of the Arduino. Needless to say, this is where a lot of the 'easy' comes from. There's even a shield for DMX Control, which is, unsurprisingly, useful for my controller project.

So how are we going to build my version of a DMX controller? Well, first you want to assemble the components. I'll link to Amazon as much as possible, though there's a decent chance you could actually buy everything you need at Radio Shack, if you were so inclined. They're really making an effort at catering to the electronics hobbyist again, and I think that's amazing. I actually picked up my DMX Shield at RS when I happened to be there looking for other electronics components.

You'll need:

  • Arduino Uno R3
    • Other versions and revisions will likely work, but I won't make any guarantees and can't support other hardware at this time, sorry.
  • Tinkerkits DMX Master shield
    • You can probably pick this up at a local Radio Shack.
  • 20 tactile switches. I like these, but you could use smaller 6mm switches without fancy caps if you were so inclined.
    • We will be soldering these into a matrix, which allows us to use many buttons without tying up every I/O pin on our Arduino. 
  • A piece of protoboard large enough for your switches. I'll be sure to measure the one I used, it's just the right size for the keypad, though you can always trim a larger one to fit.
    • You could assemble your keypad on a breadboard, but because it'll need to be fairly large, this is the more expensive option. If you're not comfortable soldering, then this is a good option to get started.
  • screen. The one I've linked is my preferred model, and the one that will work with the code I've written with no changes. If you would prefer a different screen, there's a large variety of appropriate choices, though you'll need to modify the code to make it work the way you want.
  • Some kind of battery holder if you want your portable DMX controller to be properly portable.
    • Your battery choice isn't super critical, except that whatever you choose, it should provide at least 7V. The reason for this is that the Arduino uses a linear regulator, the 7805 to provide a steady 5V to the electronics on the board. This is important because these regulators don't function well if their input voltage is less than 2V above their output voltage.
    • You can power this project from a 9v battery, but not very long. I really recommend a 6-cell series holder for AA, C or if you don't mind a heavy controller, D batteries. You can also use an 8 cell, certainly, but if your supply voltage is much higher than 12v you'll start heating the regulator quite a bit (Linear regulators basically 'burn off' excess voltage as heat.). You can, according to specification, power the Arduino with as much as 20V, but you'll likely see heat damage if you do that for long.
  • Some kind of hookup wire (24-28AWG) or breadboard jumpers.
  • Patience, especially if this is your first electronics project. The payoff is worth it.
In my next post, I'll talk about actually putting all this stuff together. Look for that in the next week or two. If you feel you just must assemble one of these sooner, please let me know and I'll happily give you any guidance you might need.