Wiring up a Charlieplexed design

Hi,

I've read about Charlieplexing and now have a solid handle on the concepts. I have a setup where I am driving 30 LEDs. Everything is working just as I want.

My question concerns the physical wiring. My LEDs are arranged in a large, hollow "diamond" pattern (ie not square). My current breadboard layout has roughly 3 gazillion wires on it. :slight_smile: Seriously, I am wondering if there is an algorithm I can apply that minimizes the amount of wire I need to use and still be able to have all the functionality I require.

Thanks for an advice/suggestions!
-LT

I dont understand why you are using more than 30 wires to control 30 LEDs that are charlieplexed. You also dont mention how they are arranged, or any specific details that might help someone understand what you have going on.

You could add shift registers or LED drivers to reduce pinout, but you will still need wires to the LEDs, and no math will solve that.

If you have 30 leds in a 5 x 6 grid(multiplex), that would require 11 wires, since yours are charlieplexed, you would need less.

If the individual wires bother you, then maybe you could use a ribbon cable instead.

Um... Hippynerd, when Charlieplexing you only needs 6 pins to drive 30 LEDs. You might want to read up on Charlieplexing before you answer questions about it. :slight_smile: Charlieplexing - Wikipedia

That said, my question wasn't about Charlieplexing... it was about wiring. Much of what I've seen on the net uses Charlieplexing to drive LED cubes or squares. Wiring up the physical connections in those cases are trivial but when you use a non-square layout things get very complicated. The issue with my layout (below) is that connecting up the six LEDs to pin 1 is not straight forward/neat. My question was whether or not there is an algorithm/design technique that can come up with an ~optimal wiring solution.

	   L1
	 L2  L3
       L4      L5
     L6          L7
       L8      L9
         LA  LB
           LC

Why not put the equivalent of 30 2-pin headers on a little board (8x8 grid even, couple extra) wire that up to support the charlieplexing and then run 2 wires from each header off to the LEDs? Should make it easier to place them wherever you want.

Im familiar with charlieplexing, I havnt done any charlieplexing, but I understand how it works.

A square or cube shape will probably be the most compact way, but you can make any shape you want, but it will require more wire. One of the nice things about wire, is its flexibility, but If you are constrained to a plane, like when using a printed circuit board, you may find it difficult to make a circuit board traces connect to where you want, sometimes in those cases, its easier to just jump a few traces with wires to complete circuits.

Do you need to charlieplex? maybe multiplexing will be sufficient, even if it uses more pins.

CrossRoads: as always... thank you - I believe that is going to be the most efficient way to do what I want in this case and will make it that much easier to modify the configuration down the line. Thanks man!

Hippynerd:

A square or cube shape will probably be the most compact way, but you can make any shape you want, but it will require more wire.

Dude, did you even read my original question? That is exactly what I said. And if you are so familiar with Charlieplexing then do the maths right. If I hadn't already known what I was doing I might have spent a ton of time trying to figuring your answer (which was incorrect - I still don't know how you came up with 11 pins to control 30 LEDs).

If you MULTIPLEX (not charlieplex) 30 leds in a 5x6 grid (5 + 6 =11) , that totals 11 pins required to control 30 LEDs. charlieplexing will always reduce that number, but it also always increases complexity, and it sounded like you had too much complexity over connecting wires.

I guess I got that idea from things you typed...

When you said "Wiring up the physical connections in those cases are trivial but when you use a non-square layout things get very complicated."

and
I am wondering if there is an algorithm I can apply that minimizes the amount of wire I need to use and still be able to have all the functionality I require."

Good luck with your project.