Step 1: Features
- Capable of individually controlling 48 Full color LEDs.
- Each LED can be faded in 7 bit per channel - 2,097,152 colors.
- Gamma corrected brightness curve for very smooth fades.
- Simple, one button control.
- 11 sequence pattern (as of firmware version 1.0).
- Compact - 2.68 inch (68 mm) in diameter.
- Thin profile construction (0.137 inch (3.5 mm) thick).
- No leads sticking out on the back. Ideal for wearable projects.
- Firmware is easily upgradable via 5 pin ICSP connection.
Step 2: Circuit
The circuit is relatively simple and straightforward. If you've seen other LED matrix type circuit, this should look familier.
In a nutshell, the 48 RGB LEDs are divided in two groups, connected in a 6:1 multiplex fashion, taking R, G, and B as bus lines, and common pin of each LED as column lines. There are two pairs of R/G/B buses. Since there are only 3 PWM outputs available on the controller used, I used a binary decoder IC to multiplex the PWM signal, to drive 6 bus lines. 3 pins are used to select one of the 6 buses, and 24 pins are used to control LEDs' common pins.
The controller activates one bus at a time, outputs a pulse to the LED that should be lit. The actual duration that a particular LED turns on is controlled by the PWM pulse that goes into the binary decoder, 74HC238. The controller sends PWM pulses as short as 62.5 ns to as long as 12,500 ns to control the brightness.
Step 3: Parts & PCB
- 24x 68 ohm (0603) (RC1-24)
- 6x 220 ohm (0603) (R1,3,5,7,9,11)
- 6x 1k ohm (0603) (R2,4,6,8,10,12)
- 2x 10k ohm (0603) (R13,14)
- 4x 0.1uF (0603)
- 2x 10uF (1206)
- 6x MMBT2222A
- 1x PIC24FV16KA304
- 1x 74HC238
- 48x PLCC4 RGB LED (common-anode)
- 1x Tactile Switch