A CharliePlexed RGB LED Dice


Introduction: A CharliePlexed RGB LED Dice

This Instructable will show how to make a colourful dice using the technique of charlieplexing with RGB LEDs.

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 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



    • Planter Challenge

      Planter Challenge
    • Make it Move Contest

      Make it Move Contest
    • Casting Contest

      Casting Contest

    We have a be nice policy.
    Please be positive and constructive.




    does anyone know if I can order this somewhere or parts at least ?

    1 reply

    if someone could answer asap

    does anyone know if I can order this somewhere or parts at least ?

    hmm, please explain to me how LED1 G glows without the LED2 G glows?

    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 !!

    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.

    pcb layout would be helpful

    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 ?

    STK500 and AVR Studio to program the chip. Source code is given in step 3 of this instructable.

    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

    2 replies

    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.

    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.

    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