Control/Dimming Build Your Own Lighting Console

parcanman

Member
I have a friend that builds computers, and he has inspired me to try to build my own lighting console. I was wondering what I might need to do that. How might I go about building my own software for it? Where can I get case for it? What do I need to send out dmx signals, etc. I know it's not going to be easy, and I expect it could take months or years to accomplish.
 
Well, the easiest way to do this is to buy a USB-to-DMX device like those from ENTTEC, plug it into a computer and get some lighting control software for that machine. There is plenty available and many threads on it here on CB. You might check out Chamsys MagicQ This can be done for Mac or PC.

If you are talking about coding your own software, go for it, but it is probably not worth your time. It seems silly to reinvent the wheel.
 
Yeah seems like you need a programmer and to tell them exactly how you want it every step of the way...ya know like an LD and a Board Op...

then if you wanna develop a physical interface too you'll probably need a separate engineer/genius for that as well.
 
This is a very cool project idea... and it will help you get way more familiar with how lighting consoles 'think.'

I agree that the Enttec Open or Pro is the best hardware choice for getting the dmx out of the computer. Hippy's Open DMX resources ( Hippy's Open DMX USB Resources ) has mid-level drivers and visual basic examples that will get you started with that part of it, as well as a list (pretty ancient by internet standards, but still worth browsing) of software that will use the Enttec dongles so you can look at how other people are doing things.

As for the actual program... I'd recommend designing it modularly... start with the piece that actually sends the dmx and get it working... then develop the interface and memory parts. Visual basic isn't hard to work in, and there's a fairly capable free version available from microsoft these days... Really think through the challenges of making lighting software and plan how the pieces work. Once you have the outputs working... you need a way to capture channels... then a way to store a captured look... then a way to recall it with a certain fade time... But you have to think through what advanced features you'll eventually want before you start on the easy stuff because you'll waste days rewriting things that could have been good the first time if you had done them the way you needed to in the end... for example when I first started playing with lighting software I wrote an routine that handled timed fades before I decided I wanted the ability to write part cues... which required totally rewriting the fade routine... if I'd made a list of what it had to do from the start, I would have written the routine to allow part cues in the first place.

If you want to go beyond software generating dmx, and include a physical control surface, so it feels more like a 'light board' then you're into a different challenge... but one that I think is actually much easier than the actual software part. I'd recommend looking into learning (or making a friend who's learned) about microcontrollers. Getting a microcontroller to read values from buttons (or even from linear pots (the electronics catalog name for faders)) and pass those values via usb to a computer isn't a terribly difficult project. I would recommend writing the software part first... and writing it so it's usable without the control surface... but writing it in such a way that it's a simple matter to add a control surface. How do you do this? It's easy in visual basic where everything is event driven. When you click a button onscreen, it triggers a subroutine in the program that is called the 'event handler' for that particular button press. Likewise, when a command is received from the microcontroller, it will trigger an event handler which can THEN call the event handler for the button press... so the software that was coded to work with a virtual button press on the screen can be extended to work with a physical button press on the control board fairly easily.

If all of this is over your head, don't be discouraged. I'm dumping a smattering of several topics on you right up front here so you'll know what things you need to be thinking about. If you want to talk more about basics, or about details of any of the areas I've mentioned, feel free to ask. I'd recommend as a first step that you make (and post here if you'd like) a list of exactly what requirements you want to set for your lightboard... (how many channels? does it do moving lights? Does it record cues? Part Cues? Do you want multiple cue stacks? Do you want a soft patch ability? And a big one that I should have asked up front... Who's going to use this? As in, is it just a learning project for you and your friends, are you hoping to actually use it at your school (and if so... do you know that there are easier and just as cheap or free software solutions already made for you that will save you a lot of time and be just as good?) or are you hoping to someday release your software and/or hardware either for free or for zillions of dollars to be used by the adoring public?)


Anyway. Hope all that helps!

Art Whaley
Art Whaley Design
 
Try this it comes with the DLL's to make your own software, thus saving you a lot of time. Plus its $70 AUD (About 50 US)
Nick
 
As a software engineer and a lighting designer who has build a moving light console, I find this thread interesting.

I would suggest that the first thing you need to do is to be very clear about what you are trying to accomplish. Do you want to learn how to write software, get a better understanding of how commercial products work, make something you can use for yourself, or explore new metaphors for controlling lights? Each of these beginning goals will affect how you approach the project.

A project like this implies writing a lot of code. This will be the biggest piece of work you need to consider. How much do you know about software? I would suggest using Java or a derivative ( like Microsoft's C#). If you are doing this to learn how to write software, get some books an start hacking code. Read about software design as you go and be ready to throw away everything you write early on. You will learn a lot, but early code tends not to survive. Hint - read up on agile programing and building unit tests as you go.

As others have said, the enttec usb-pro is a very good way to output dmx. ( it is one of the output devices we support) You will also, need a way to see what you are outputting. At the least you will need a dimmer or moving light to play with ( depending on what kind of console you are creating). You will probably need some kind of dmx text equipment to see what you are really putting out.

If you want knobs and sliders, check out Enttec's Program wing or Playback wing. These are hardware devices your program can talk to.

These things are very hard to get right, but you can learn a lot and have loads of fun on the way, whatever the final result is.

John Chenault
 

Users who are viewing this thread

Back