I feel I ought to clarify the $8k figure mentioned for a comparable console in my email to HaD. This figure was based upon a quoted price for an LSC Maxim LP, which I had misread as an LSC Maxim L – the difference being moving light abstraction and about $3k. When ML abstraction is eventually added to the console, then I may claim the former figure. In the meantime however, I apologise for the innacuracy – it was the result of rushed documentation at a rather late hour.
Archive for August, 2011
I thought I should probably contextualise this project:
Initially, as many projects do, it began as a desire to own a piece of technology too expensive for me to purchase (especially with no reliable source of income). However, the idea of developing a lighting control system from scratch also offered learning opportunities in electronics and particularly the Arduino platform (which I’m still very new to). The opportunity to create a free-choice “major work” for Design & Technology arose at a similar time as I was considering this, and I settled on the idea.
As for why the interest in lighting – I’ve been involved in shows for 5 years now (probably around three dozen) and am now operating school and community events and (tentatively) corporate. The ability to shape the audience’s response to a performance through light has always appealed to me, as has the “wow” factor that lighting can often achieve.
Following this interest, I’ve read many books on the subject, along with online research and have near-memorised the DMX protocol (although I still can’t get a MAX485 chip to play nicely) and so experimentation in DIY lighting control has developed into a full-scale lighting console.
As I said, this has been very much a learning experience for me, most of the code and electrical implementations are improvised based on knowledge that is likely very limited compared to the readers (e.g. those directed from HaD) and as such a lot of the decisions I’ve made may not make sense in the context of wider knowledge. In other cases, good practice has been compromised to meet financial and time pressures.
Any improvements or constructive criticism you can contribute would be very, very much appreciated as it can only add to what I gain from this build.
Just letting you know, on September 23rd (ish), I’ll have the opportunity to test out the console with 28 led par 64s, 4 led bars, 2 mac 550s, 7 technobeams, an atomic strobe and 24 channels of conventional dimming.
Obviously, the direct-fader control (even with softpatching and scenes recorded) makes operation difficult, but the aim is really to stress-test the console by running as many chases as possible simultaneously.
The show itself will be run on a Jands Vista i3, as I don’t yet trust my console enough.
I hope to post videos from the event demonstrating the console’s capabilities.
I’m posting all the code used for this project at Google Code, here.
Their code formatting and SVN tools will hopefully make the code more accessible, than WordPress posts but I’m very much open to other suggestions.
FYI I haven’t used Google Code before, so I’m still finding my way around it.
I’ll be uploading schematics and Eagle files here as they’re finalised – the CNC didn’t play nicely with Gerber files so everything ended up being constructed on veroboard (twisting a leatherman blade in a hole seems to work well, in my case better than the traditional drill bit – but that may just be my drill bits).
Bear in mind, I’m new to almost everything I’m doing here, including Eagle designs, so the schematics are somewhat messy. I’ve tried to keep the lines fairly separate.
This post will be updated with all the latest build photos and such.
- The parts start arriving (Motor Faders in this case) – better get cracking on construction.
- CNCing out the capacitive buttons using a Denford CNC milling machine.
- See (2).
- The reason we’re using a floating head and not trying to use the CNC to cut the boards to size.
- A completed button board wired up to one of the Sparkfun capacitive boards, following the guide here. – The board eventually stopped working as the internal i2c pullups were sending through 5V. In later versions, I’ve disabled the internal pullups and now pull-up to 3.3V.
- CNCing the panels for the faders to be mounted in.
- The reason we decided to use acrylic – cooling is an issue with aluminium.
- A fader panel with motor faders mounted and all wired up, spaghetti-style.
- The wooden case coming together with a fader panel resting on it.
- The wooden case completed with a black panel of acrylic mounted on the base. The motherboard is now mounted securely into the acrylic base panel. The other components are yet to be mounted.
Photos yet to be uploaded: functioning Fader Module Slave IC.
Note: please see this amendment with regard to the price comparison mentioned on HaD.
This design uses:
- An X86 PC running the application logic
- 6 fader panels, each of which includes:
- 12 standard or motorised faders (3 motorised panels, 3 non-motorised)
- 12 capacitive touch “flash” buttons
- 12 indicator LEDs
- 2 Motor-control chips (i2c to 6x ADC + 6x PWM + 6x GPIO)
- 1 i2c to 12x GPIO IC
- 1 i2c to 12x Capacitive touch sensor IC
- 1 Master microcontroller – translates higher-level instructions to lower-level instructions for the 4 slave ICs and participates in an i2c multi-master network with the other fader modules and the X86 PC.
- A menu / control row at the top of the console including:
- 2x 7-segment displays to indicate the “page” of each bank of faders
- 1x 16×2 LCD display to display the menu system
- 17x capacitive touch buttons for menu navigation / console control
- DMX output from X86 PC (view + controller)
This is implemented using:
- The guts of an old IBM dual-core Pentium ThinkCentre
- 3x ATX power supplies (to provide enought current for the motors)
- 20x Atmel 328Ps with Arduino bootloader, as:
- 6 fader panel controller ICs
- 12 i2c to 6xPWM+6xGPIO+6xADC chips (because they are the cheapest chip I could find to function as such, without learning a new PIC system)
- 1 menu system controller (running 2x 7-segment 1-digit displays, 1x 16×2 LCD display and up to 24 capacitive touch buttons)
- 1 RS232->i2C bridge for communication between the X86 PC and the multi-master network
- 8x Sparkfun i2c capacitive touch ICs (these)
- 8x MCP23017 i2c-to-GPIO ICs for the LEDs.
- 36x ALPS RSA0N11M9A07 100mm motorised faders (these)
- 36x non-motorised faders.
- A DIY enlosure made from 3mm black acrylic with a wooden internal frame (with the help of a CNC router).
- ENTTEC DMX USB Pro widget, internalised
To explain the setup graphically, here‘s a Gliffy diagram I prepared earlier.
This is what I have constructed and am now in the process of documenting it. I may set up a Google Code page for the code powering this console.