A little info on programming the Lumapad
Hello Kickstarter Backers,
Lumapads have started to ship and people are asking how to write their own code. Remember, if you don't know how to read schematics, flash Atmel chips and load hex files via AVR dude or Arduino, I do not recommend messing around. I will be providing the factory hex files on the Lumapad website for those of you who need it but in most cases the factory software should be fine as-is. If you do accidentally erase everything, an AVR ISP can be purchased to flash the factory software. I recommend this for anyone trying to write their own code even if you are using the Arduino programming environment. Remember to set the chip selection to Arduino "uno" in the compiler. Once you erase the factory firmware, the only way to get it back in is via a hex uploader since I did not write the code in the Arduino language. Don't worry, you can't break anything but be aware that you can have a hard time getting the code back in if you have never done it before!
You do not need to load special software to use the electric IMP card. All you need to do is ground (set to 0) IMP-Data1 to shut off channel 1 (16 LEDS) and ground IMP-Data2 to shut off the other 16 LEDS. PWM the IMP data1 and data2 lines if you want to dim either or both channels. You will need to open an account on the Electric IMP Website, blink up your IMP and then write simple code to control these two data lines.
The fan will still be controlled by the Atmel. This is a design safety feature. The Atmel will always monitor the temperature and control the fan as long as factory firmware is installed. You can not control the fan via the IMP for safety reasons. There are multiple overheating safeties built into the Lumapad design due to the immense heat produced by this light. If you erase the factory firmware in the Atmel chip, the onboard safeties will still protect from overheating but it is not recommended to run the Lumapad for long without the factory firmware installed or at least your own code with propper temperature monitoring written into the code.
If you want to control the fan or read temperature directly with the IMP, you will need to control PortB.0 (= fan off, 1 = fan on) via the Atmel chip and some Arduino code but you can also read some of the IMP lines via the Atmel so you can do a pass through or very simple code. The circuit is designed so that grounding any of the many control lines will do the same things so you have lots of options.
If you decide to write your own Arduino (Atmel) programs just control OC0a (PortD.6) and OC1a (PortB.1). Set to "0" (ground) to shut each 16 LED channels off or PWM these 8 bit counters to dim. Very easy in Arduino. Fan temperature is read via ADC6. The lower the 10 bit value, the hotter the light is. A binary value of less than 150 is the danger zone. Fan is controlled by PortB.0. Shut fan off by setting this port to "0" (ground)
That's it! All the software is installed already to control all this stuff and the hex file is on the Lumapad website should you accidentally erase it. Be sure you have a way to reload the firmware either by an Atmega AVR programmer or Arduino programmer. Remember, I wrote the code in hex so there is no Arduino file, I leave that up to you guys so be sure you know how to reload hex files before messing around!!!
I hope you all enjoy your Lumapads, a whole bunch of technology and time went into the design of these lights. There is no brighter LED lighting system out there in this price range with all these features and intense illumination.
Remember, if you have no idea what this email means, don't change the factory firmware in the Lumapad until this makes sense!