The ChromoDisk is very similar to the Aurora LED. It has the same 9 rings of 18 LEDs and every ring has to be the same color and brightness due to the multiplexing approach. This device uses pulse-width modulation (PWM) instead of resistors to limit the power fed to the LEDs, so while it takes less assembly time and components, you need to be a little careful about how you write the software. This is a good illustration of the tradeoff you need to make when you design with microcontrollers. You need to strike a balance between what you do in hardware and what you do in software. I am NOT saying that LED Artist's approach with all the resistors is bad, it's just a design choice and this is one alternative. More about this later.
Let's start with the design parameters:
- Easily available, low cost components
- Low component count
- Fits within a low-cost tier for PCB manufacture
- Hand-solderable
- Multiple power supply options
- Easily programmable
The components I've chosen barely fit into the tight space. I picked the largest SMT components that I could to facilitate manual handling and ease of soldering. In the end, because of the limited real estate, I was not able to allow both battery pack and DC power jack, so you need to choose which one you'll use. Also, everything fits within a 100 mm square, a 4 inch disk, which is one of the pricing tiers typical of most PCB manufacturers. Anything bigger bumps you to the next pricing tier. Since area and cost goes up as the square of the radius, it's a good idea to limit the size. Routing out the circular shape is normally included in the board price.
The AVR micros are fairly easy to program. The code I've provided is entirely interrupt-driven and written in assembly language. It might be a bit less readable than C or some other language, but it's about as efficient as you can get. I don't claim to be the best programmer, but it seems to work pretty well and I was able to derive some new modes using code from other modes. It's designed to be hacked!
Here is the list of parts for the ChromoDisk, with Mouser P/N, description, and quantity:
| 667-ERJ-3EKF1201V | Thick Film Resistors-0603 1.2K ohms 1% | 13 |
| 667-ERJ-3EKF6800V | Thick Film Resistor-0603 680 ohms 1% | 3 |
| 667-ERJ-3EKF1002V | Thick Film Resistor-0603 10K ohms 1% Tol | 1 |
| 81-GRM188R71H104KA93 | Capacitor (MLCC)-0603 0.1uF 50volts X7R 10% | 1 |
| 512-FDN338P | MOSFET Small Signal SSOT-3 P-CH -20V | 3 |
| 771-PMST2369115 | Bipolar Small Signal NPN 15v 200mA 500MHz | 12 |
| 556-ATTINY4313-SU | Microcontroller AVR 4KB FL 256B SRAM 1.8-5.5V | 1 |
| 612-TL3315NF250Q | Tactile Switch LOPRO 250GF SMD | 1 |
| 611-KSC741GLFS | Tactile Switch 4.3mm IP67 3N Soft Actuator | 1 |
| 798-DF1BZ-6DP-2.5DSA | 2.5MM V DBL ROW HDR | 1 |
| Common cathode RGB LEDS | 162 | |
| Custom PC Board | 1 | |
| 598-AVE227M16X16T-F | Al Electrolytic Cap - 220uF 16V 85C Case 6.3 x 7.7 | 1 |
| 163-5030-E | DC PWR JACK 2.0MM X 5.5MM SMT | 0/1 |
| 12BH331P-GR | Battery Holder 3 AA PC LEADS | 1/0 |
| In-System Programmer for AVR microcontrollers | 1 |
A couple of comments here. First, you'll notice that you have to choose either the DC power jack or the solder-on battery pack (you can use one with wire leads if you like, but I designed it to use the version with pins). There's a mounting hole in the center for whatever you want, but the battery pack will obscure it. I used it to secure battery packs before I added the PC mount pack. Second, I don't have a spec for the RGB LEDs. It's entirely up to you which ones you choose. Since I eliminated the current-limiting resistors on the LEDs by using PWM in software, you can adjust the brightness of the LEDs over a wide range by adjusting a couple of simple parameters at the top of the code. This allows you to accommodate LEDs with various current specs as long as they can take the surge current of the PWM approach.
The pinout for the LEDs is red / cathode / green / blue. I have tried assembling boards with diffused and water-clear LEDs. Diffused give more uniform color and brightness; clear give brighter light that floods farther and they have interesting effects with angle of view, but non-uniformity in LEDs can result in color hot-spots. The PWM approach has some limitations there.
I've ordered the parts in large enough quantities that I can provide the kit of parts and the custom board (but not the ISP programmer). Let me know if you're interested. Given the time involved, I'm not going to make any money on it. That wasn't really the point. It was intended to be a challenge and something fun for people to experiment with.
Remove these ads by
Signing UpStep 1: The Build - Layer 1
- Solder on the small passive SMT components and transistors
- Solder on the larger SMT components
- Program the microcontroller
- Solder on the LEDs
- Solder on the power source
The idea here is to put on components that don't interfere with each other in layers. The board is very crowded, so it's essential to do this to make the build as easy as possible. Here's a picture of the board you're starting with. Let's go!
Layer 1 - SMD Components ... Most of them
The passive components go on first because they are the smallest and easiest to lose if you tilt the board. You need as much clear area as possible when you're soldering these. You can use the “skillet” / oven method, or hand solder them. I did it all by hand. SparkFun has a good tutorial on hand-soldering SMT components, so I won't try to duplicate that here. Solder on all of the resistors and the bipolar transistors first. The MOSFETs are static-sensitive, so adding in the other components first will help protect them. Don't put on the microcontroller, the large electrolytic cap, the 6-pin connector, the LEDs, the power connector / battery pack, or the capacitor on the back yet. Solder on the MOSFETs last in this layer.












































Visit Our Store »
Go Pro Today »




Can You share the schematics and/or pcb files ?
( Ithink, You use altium/protel ? )
Or a better schematic (pdf or so ).
THX
Frank-de
Kudos for doing it your way and doing it with a 8 bit controller. I decided at the early stage of the development that 8 bit PIC wasn't going to cut it, and learned the 16 bit assembler.
I'm very curious to see the schematics, though...
Aki
To be honest, I had mixed feelings about posting this Instructable, since it is a rework of your great idea. In the end I thought it would be useful to give an alternate design approach to help people understand some of the issues involved, and it makes the design accessible to those who use AVR rather than PIC. I'm always up for a personal challenge, and surprised myself that I pulled it off ... and in only 4 design cycles, LOL! So I take your comment as a compliment and hope your other designs are going well!
Sorry for not posting the design docs (yet). I had intended to attach them and just plain forgot. I'm moving to a new laptop and need to re-install some apps (like Eagle), so look for the Eagle and Gerber files in a few days.
Best regards,
Roger
Any reason you chose assembly over C? The code outputted by GCC is usually just as good as asm (and can sometimes be more efficient than writing it yourself, because GCC can optimise register usage, etc.) and often it's not worth the hassle. Still, thanks for putting the source out there, all too often it's missing from the projects!
If this AVR has 3 PWM generators, you could omit 3 transistors connected to the MOSFET - like Aurora 9x18 mk2 and 18x18's circuit. This also saves an IO pin.
Thanks,
Aki
The ATTiny only has two timers, so I was not able to eliminate your FET drivers. I did change the resistors on the driver circuits though to reduce the current draw on the AVR outputs. It was funny on version one of the board where I didn't have the resistors on the bases of the bipolar drivers of the LED cathodes: the ATTiny heated up pretty well! The bases essentially act as short circuits.
Very nice.
If you want to price out the pieces, the board fits in a 100mm x 100mm board size. It's two-sided, with solder mask and silkscreen both sides, so your preferred PCB house should have standard pricing.
Does that help?
That way you could use the ChromoDisk all year round...