HexLight is a 4-channel high-power LED driver, perfect for driving those LED strips you can get from china. It is based around the PIC32MX210F016B MCU, which provides high-resolution PWM and USB all in a low-price chip!
This is not just an arduino with AnalogWrite! - The PIC32 has very high resolution PWM outputs which means almost zero perceptible flicker, while still maintaining high dynamic range (12-16 bits of resolution for each channel).
It has a USB-HID interface, which means no drivers are required! Additionally it has an optional RS-485 interface, for future smart-home networking!
And on top of all that, it has a microphone pre-amp and analog stage, so you can set it up to flash the lights to the music, or other advanced effects, all with out any need for a computer!
The MOSFETs I've selected should be able to drive up to 70-80 watts of LEDs (ie. two 5 meter strips)
** Schematics/Hardware are still under construction, I'll upload the sources when I'm done **
I've been prototyping the firmware on the UBW32 development board, based on a more powerful PIC32 processor. Currently I have the following working:
- USB HID (Driverless) or CDC (Serial) communications for controlling RGB values
- Dual-function HID/Audio microphone USB device - It can act as a sound card input! Still some issues in buffering the audio data though...
- Flicker-free PWM outputs
- Framing protocol (Based on HLDC) for future extension to RS485
Still to do:
- XYZ/xyY device-independant & accurate colour control (RGB does not guarantee the specific colour, as it depends on the LEDs you use!)
- Automatic colour calibration?
- Port code to the hardware I'm designing
- Implement FFT & beat detection in firmware
Jared Sanson •
02/04/2015 at 08:57 •
So after MANY issues with the PicKit 3, I finally managed to program the PIC32. I think this will be my last project with the PIC - the ARM world looks so much nicer!
Seriously I don't understand how Microchip could have gotten the PicKit 3 so wrong - it has less functionality than the PicKit 2, and doesn't even work half the time. If you do a quick google search you'll find a lot of people complaining about it in general, so it's not just a bad PicKit!
Anyway enough of the rant, here's a photo of my prototype version with the bare minimum soldered in:
Unfortunately I've run into more problems: The PIC32MX210F016B doesn't have enough flash :(
There's not even enough flash to fit in a USB bootloader like I was originally intending to, and there's only just enough room for the USB communications library and some basic PWM control. There's definitely not enough room to be able to do any kind of audio processing (which I want in order to make it sound reactive) Looks like I under-estimated how much space PIC32 code would use.
So it looks like the next step is to order in some bigger chips, which luckily will be pin-compatible. At least it works with my C# GUI though!
Jared Sanson •
10/02/2014 at 02:59 •
Woop, PCBs have arrived! I got a stack of 10 in a nice red colour:
My next course of action is to order the components for it and solder up a few boards!
There's also still a bit of work to be done on both the firmware and software. If you're interested follow my github projects:
The firmware & software is what will make this project special; it will use advanced colour models that will allow accurate colour reproduction and animation. It will also be able to respond to audio and external triggers!
Looking back on my design now I kind of wished I added room for an RGB colour sensor, so it could automatically calibrate the colour models. Alas I'll probably have to implement some sort of separate module to do this, or rely on dodgy chinese datasheets!
Jared Sanson •
09/05/2014 at 03:47 •
PCB has been ordered! It should arrive within a month's time, after which I'll start assembling the prototype... (I don't mind waiting for the boards since I still have a lot of University work to do)
There's still lots of work to be done on the firmware and software though. Schematics/PCB coming soon!
View all 3 project logs
Enjoy this project?