Introduction: A CharliePlexed RGB LED Dice
The project uses 7 RGB LEDs arranged in the form of dice.Each RGB LED has three separate LEDs inside so that makes a total of 21 LEDs and they have been controlled by 4 I/O pins of ATTiny13V Microcontroller.But according to the theory of CharliePlexing,we can only control 12 {n(n-1)} LEDs from 4 I/O Pins.
Actually the arrangement of the LEDs in the form of dice is such that they can be divided into four groups.Three having two LEDs each and one having single LED . The LEDs of each group are ON and OFF simultaneously and can be connected to same I/O pins with same enables.In short , they are treated as single LEDs.So that makes total of 4 RGB LEDs to be handled by the code ( 4 x 3 = 12 so charlieplexing holds)'
The 5 I/O pin of the Controller is used for Switch which when pressed generates random numbers from 1 to 6 and when released generates random colours( 6 in all)
Step 1: Circuit Description
The circuit consists of tiny 13 , 7 RGB LEDs ,few resistors and a microswitch apart from power supply connections.The schematic in PDF and SCH format is available here
The resistors used in the circuit are in the form of arrays as shown in the image below.
CHARLIEPLEXING
Charlieplexing technique uses all the three possible states : 0,1 or Z ( High Impedance state) of the digital I/O pin of a microcontroller .It manages to control N*(N-1) LEDs using N digital pins. In this technique only one LED can be controlled at a time and hence all the LEDs to be controlled should be refreshed at a suitable frequency so that they appear stationary.
The LED to be controlled at a particular time has its I/O pins (to which it is connected ) declared as output and all other pins are declared as input ( High Impedance or 'Z' state)
Step 2: Working Pics of the Dice
Here are a few more pics of the dice in action.
Look at different colours it can produce.!!!!!!!!!!!
Step 3: Source Code
Here is the source code of the project written in C language. The compiler used is WINAVR GCC
Makefile and .Hex files are also attached

Participated in the
The Instructables Book Contest

Participated in the
Let It Glow!
16 Comments
7 years ago
does anyone know if I can order this somewhere or parts at least ?
Reply 7 years ago
if someone could answer asap
7 years ago
does anyone know if I can order this somewhere or parts at least ?
8 years ago on Introduction
hmm, please explain to me how LED1 G glows without the LED2 G glows?
8 years ago on Introduction
Hi there, with todays technologies, I would consider using WS2812 rgb leds, you just load the data in and go, they can be daisy chained together, this would only take up ONE pin of the micro and probably make the code simpler too - and one more advantage... each colour has 256 shades, therefore you get the full 16.7million colours on each device !!
11 years ago on Introduction
Nothing new nothing fancy here. They made it picbasic forum at 2006. Try that link; http://www.picbasic.co.uk/forum/showthread.php?t=3510 maybe minor differences but same idea, same technic, different micro.
12 years ago on Introduction
pcb layout would be helpful
14 years ago on Introduction
Cool, I am the 5,999 viewer!
Reply 13 years ago on Introduction
i am the 9038
14 years ago on Step 1
You say "In this technique only one LED can be controlled at a time". It's my understanding that with charlieplexing you are able to have n-1LED's on at a time. Is your statement saying you are controlling the three LEDs (x2 for each color in the paralleled chip) in the chip at the same time ?
14 years ago on Introduction
What programmer and software did you use?
Reply 14 years ago on Introduction
STK500 and AVR Studio to program the chip. Source code is given in step 3 of this instructable.
14 years ago on Introduction
I think your idea deserves 5 Stars, I was going to submit a design of mine, but looking at your design, My design was simple PIC driven, I give up! Your idea is great and does more than expected at a low cost. Congratulations and have a good day
Reply 14 years ago on Introduction
For My curiosity, your spot board (or whatever you call your PCB, looks home made, the drillings I mean (the hole edges are a bit rough like they were drilled and not punched). Did you make that as well, if so I commend you for your patience.
Reply 14 years ago on Introduction
Thanks. Just uploaded pictures of a new version of the PCB. The new PCB was done with a Modela milling machine. The newer version of the dice also uses larger size RGB LEDs. The earlier version used commercially available, general purpose PCB with 0.1 inch pitch holes. Yes, the holes seem to be drilled and not punched.
15 years ago on Introduction
That's quite cool. I could imagine using that in some nighttime game of D&D or something. All you need is a d8, d10, d12, and d20 to be electronically simulated with pretty colors :D