Charlie! We were just talking about you.

Quote Originally Posted by Charlie View Post
Hi Robert - a couple questions / thoughts....
I think you have too many resistors. With the original Charlie-plexing, there should be one current limiter per pin, not per diode, since some combinations rely on the forward volt drop of a diode to keep two others from coming on. I think what you did will work, but once you get beyond 3 pins, you may start having different intensities of LEDs. It would certainly save you some components to go per pin rather than per LED pair.
Many LEDs on the same pin may be on, but only a single LED per pair can be lit.

The tri-state properties of a pin control which LED is lit, not forward voltage drop. See Tip #2 in the Microchip PDF.

LED intensity is not supposed to vary depending on active LEDs.

Do the red and green diodes have the same volt drop? Green is usually about double red, so there will be still more challenges.
Probably not, the LEDs I have in stock do not have identical properties. But they are close enough for personal use. I am compensating by using different light intensities; ie: I have varying intensities of LEDs for the same colour. Bulk purchases so I don't have specs.

Is it your intent that something is green or red, but never off unless broken? I think that might be difficult to do too.
I don't understand.

The array will need to be constantly scanned if more than one led should be on at any given time. But you'll want to do that to save power, anyway.
Yes, definitely scanning to save current.

Have you done a big truth table to see what happens for each combination? You'll need that to write the code anyway, but it might save you a lot of work.
Next on my TO-DO list.

I don't think this is something that can be tested in a simulator easily since it depends on analogue effects.
Anyway, very cool approach if you can work around those limitations!
Yes it can be tested, this is digital only. But I don't have Proteus.

Robert