So I came up with Aurora 9 bar. It's a bare essential version of Aurora 9x18. In fact the circuit is almost exactly the same (with a lot less number of LEDs of course). Even the firmware is essentially the same. So it has the same super smooth color fades as Aurora 9x18.
Step 1: Concept & Circuit
Aurora 9 bar's circuit operates in the same exact way Aurora 9x18's does. Same PWM theme, same refresh rate, etc. Please refer to my Aurora 9x18 Instructable for the details.
Aurora 9 bar took one LED out from each of Aurora 9x18's 9 circles. Only difference in the circuit is that it uses BJTs instead of MOSFETs for the high-side switch (to save cost). Because there are only 9 LEDs total, the current requirement for the bus controllers is much lower.
Everything else is the same. So if you somehow manage to hook up more LEDs to Aurora 9 bar, it will look like Aurora 9x18.
Step 2: PCB
Aurora 9 bar uses surface-mount technology (SMT). If you've never built anything with SMT, this might be a good opportunity to try out. You will most likely realize that there's nothing to fear about SMT.
The high-quality, custom made PCBs, as well as kits are available at reasonable prices. Please view the details at "Kits" section of the forums.
Step 3: Parts
Here are the list of parts, or BOM. All except two items (LED and switch) are available at Digi-Key (digikey.com), and the rest are at SparkFun Electronics (sparkfun.com).
You can download BOM files that can be uploaded to Digi-Key for quick ordering.
- 16x 120 Ohm (0603)
- 21x 1k Ohm (0603)
- 1x 10k Ohm (0603)
- 2x 1uF (0603)
- 1x 10uF (1206)
- 1x AP7333-33 or AP7313-33 (3.3V linear voltage regulator)
- 3x MMBT2907A or equivalent PNP transistor
- 12x MMBT2222A or equivalent NPN transistor
- 1x PIC24F08KA101 (SSOP)
- 9x 5mm Tricolor LED (common-cathode) (SparkFun COM-09264 should be identical)
- 1x 5-way Tactile Switch: COM-10063 (Available at SparkFun Electronics)
- 1x 5V regulated power supply, 4 NiMH batteries & case, or USB cable
- 1x 2 pin Molex header (right-angle recommended) (optional)
- 1x 2 pin Molex connector with corresponding terminals (optional)
There are many places to purchase LEDs. I source LEDs directly from China via AliExpress. Takes a few days for delivery, but the prices are great. (If you are purchasing a lot of LEDs.)
You can substitute transistors if you have something compatible.
The kits are available at a reasonable price as well. Please view the details at "Kits" section of the forums.
Step 4: Tools & Supply
- Soldering iron
- Solder (flux core. go for the highest quality solder you can afford.)
- Soldering flux (Use high quality flux. Low quality flux causes problems! ChipQuick brand recommended.)
- Wire cutter (I recommend this one.)
- Microchip PIC programmer (supports PIC24F08KA and capable of In-circuit programming through a standard 6-pin ICSP connector, such as PICKit, ICD 2, ICD 3)
- Computer running Windows
- Magnifier visor or other visual aid device (optional, but highly recommended)
- Molex crimper (to make your own power supply connector cables)
Step 5: Notes on SMT
If you are already familiar with SMT, you can skip this step.
There's no need to use reflow method (solder paste & bake) to build the SMT version of Aurora 9 bar. Since there are only a few components to solder, it's quicker to just hand solder everything.
It's very helpful to use high quality flux when you solder SMT components. I'd say it's the key to successful hand soldering of SMD. Apply a small amount of flux to the PCB pads before placing the device, then solder. If you haven't done this before, you'll feel like your solder skill has suddenly improved :)
Step 6: Assembly
Please download and print the "Parts Placement Chart". Use this to identify/guide where all the parts go.
I recommend following the order listed. Also be mindful of electrostatic charge. Use anti-static desk mat if you have one. Or place aluminum foil under the PCB like I do.
Mounting the LEDs
If you want to mount the LEDs very close to the PCB like I do, you need to cut the leads. Cut the leads right where they get thick. Please refer to the picture.
The leads of LEDs are very close together, so easy to create solder bridges when soldering. Get your solder wick handy and make sure there are no shorts.
Washing the Board
Solder everything _but_ the switch. Then wash the PCB with water. I've had many problems of LED flickering a while after the assembly due to the slight short circuit caused by flux residue. Even with high quality flux, solder joints can accumulate dust, and with moisture in the air creates electrical conduct. The problems went away after I started washing my PCBs.
Wash PCB in warm water and detergent. Use old toothbrush to scrub the solder joints, making sure all of the flux is off. Rinse very well with warm water, and dry completely using a hair dryer. (Very important)
If you solder the switch by mistake, don't wash the board. Switches can not be wet. Instead, use cotton swabs and alcohol or flux cleaner to clean the flux residue.
After the PCB is cleaned and dry, solder the switch, and assembly is finished!
Step 7: Choose Power Supply Connection
The supply needs to be 5V regulated type. Unlike Aurora 9x18, the current rate can be as little as 150 mA. You can remove the plug from the AC adapter and attach an Molex plug like I did, or solder the leads from the power supply directly to the PCB. Square pad is negative, and round pad is positive. Be very careful not to apply voltage in reverse polarity! It may (or may not) destroy the unit - can't tell - I never tested.
You can also use NiMH batteries to power Aurora 9 bar. 4 NiMH batteries connected in series provide just about 5V, perfect power supply for most circuits that call for regulated 5V power.
Another cool thing is to use USB power. (See the photo.) Aurora 9 bar draws less than 150 mA, so most (if not all) USB ports should work.
Step 8: Electronic Check & Programming the PIC
Then fire up your PC, launch Microchip IDE and program the PIC microcontroller on the PCB with the HEX file provided. You need to connect a 5V power supply. I use a straight 5 pin header to connect (square pad marks the MCLR pin) the programmer. Mine is ICD 2, but any compatible programmer such as ICD 3, PICKit 2 and 3 should work.
Just use the PCB holes/pads as though they are the female connector. Give a bit of tension sideways to make sure the electrical connection is stable.
You need to use "high-voltage programming" mode. IDE defaults to low-voltage programming mode for the device, so make sure to change the mode. You will find this option in IDE, under "Programmer" menu -> "Settings". On "Program Memory" tab, check "Use high voltage on MCLR".
(If your programmer is an older one like mine, you also need to make sure that the programming voltage for high voltage programming mode is below 9V. Microchip suggest using high-speed shunt regulator on MCLR pin to clip the voltage - I found this overkill - I just put a 8.2 V zener diode between MCLR and GND. It works!
If you get the following:
"The following memory regions failed to program correctly:
Address: 00f8000c Expected Value: 0000007a Received Value: 000000fa
then you are not using high-voltage programming mode. Please double check the setting (see the screen shot) and try again.
If all is well, you'll see the IDE reporting successful programming. If not, go back to more inspection.
Step 9: Enjoy!
I hope you enjoy the beautiful and hypnotic color patterns as much as I do. I have 5 well tweaked parameters in the current firmware to chose from. The up/down of the switch changes the pattern, while left/right moves of the switch changes the speed. Push of the switch pauses/un-pauses the movement. Hold down the switch for two seconds turns the lights off.
There might be more functions added to the firmware, as there is a plenty of room left on the programming memory.
The 5 pin header contains two pins that can be used as analog inputs - so there are possibilities of adding interactivity based on analog input, such as sound. Hackers are invited.