Charlieplexing 49 LEDs

Hey, I should start off by let you know I'm fairly new to electronics. I'm looking to control 49 leds with my arduino using charlieplexing.

I understand the theory behind it but im having trouble designing the circuit, could someone give me a hand please?


Well, you know the term charlieplexing, so presumably you've done some searches.
You simply need to attach opposing (back-to-back) pairs of diodes between all possible combinations of I/O pins.
Charlieplexing allows you to light n squared minus n LEDs, where n is the number of pins.
So, for 49 LEDs, you'll need at least eight pins.

you've probably already seen.
What more do you need to know?
Is it the hardware or the software you need to know more about?

its the hardware. Having known the theory, I dont understand how to lay out the remainder of the circuit after the first 14 LEDs.

so at the moment I have 2 rows of 7 LED's, wired in opposing directions, if i were to alternate again for the third row of LEDs surely it would react in the same way as the 1st row would, or maybe not function at all since the LEDs in row one are a quicker route.

heres a pic of what I have:

I also found this, but its so large I find it quite daunting and I don't really know which ones I should remove to adapt it to my needs..

I'm not sure you do understand the theory.
The progression goes (from n=2) 2, 6, 12, 20, 30, 42..
The "first 14" doesn't come into it.

So, for pins 0, 1, 2, 3.
Pairs across (0,1), (1, 2), (2, 3) = three LED pairs = 6 LEDs
Then a pair across (0, 2), (0, 3) = two LED pairs = 4 LEDs
And a pair across (1, 3) = one LED pair = 2 LEDs

Total 12 LEDs.

does this look right...

I prefer to set it up more like a standard row/column matrix, with the common of each row driven by one signal, and each column for that row driven by all the others...

ok that last one confuses me... does that mean they all share the same ground?

That last diagram looks more like standard matrix multiplexing to me (though I may well be wrong).

Try this:

OK, it is for PIC and not an AVR, but the principles are the same.