Charlieplexing is a technique that allows you to drive a larger number of LEDs than wouldn’t be possible with the same number of I/O pins on a traditional multiplexed matrix. If we lost you there just think of it as lots of blinky lights connected to a small number of pins. It works by leveraging the one-way nature of a diode. Current will only flow through an LED in one direction so if you hook up your display in a clever way you can drive multiple LEDs from one I/O by switching the polarity of that pin between voltage and ground. [M.Rule] recently looked at using Charlieplexing with LED modules. His conceptual approach to the problem is different from those we remember seeing before and it’s worth a look.
Instead of just using the formula to calculate how many LEDs he can drive [M.Rule] is using a table of I/O pins to establish how many and in what order these displays can be connected. Each colored set of blocks represents an LED module. The graphic above shows how 18-pin can be utilized. He even filled in the unused pin combinations with input buttons.
[Michael] built his own LED marquee using individual diodes. Despite his choice to forego the 8×8 or 5×7 modules we often see in these projects, his decision to spin a dedicated PCB saved him a lot of trouble during assembly. Sure, he still had to solder 180 leads on the 9×18 grid of lights, but at least he didn’t have to deal with wiring up the complex display layout.
The chip driving the display is an ATtiny24. You can see that it’s an SMD package and spans one row of the through hole LED footprint. There are way too few pins to drive a multiplexed display of this size. Instead of adding a separate driver IC he decided to design the display to use Charlieplexing. We didn’t see a schematic for the project, but judging from the board images all of the I/O pins are used by either the display itself, or the serial connection provided by that right angle pin header.
Here’s an LED and Button shield for the Stellaris Launchpad (translated) which you can fabricate at home. It gives you access to a 5×5 matrix of LEDs, and adds four more buttons. In order to cut down on the number of I/O pins required to operate the lights [Cosimo] is using the concept of Charlieplexing. This lets him get away with just six driver pins and four button pins.
It’s not just the finished product that interests us here. The fabrication itself is worth clicking through to his project post. What initially caught our eye is the use of Kapton tape as an insulator so that clipped off LEDs could be used as jumpers flat against the top side of the board before populating the LEDs themselves. After those are soldered in place he masks them off, as well as the button footprints, and uses spray paint to protect the top side of the board. The final look is more polished than most at-home project boards.
Get a little more exposure than one under-saddle bike light can provide by building your own LED enabled messenger bag. It looks like the bag itself was fabricated from scratch by [Andrew Maxwell-Parish] rather than altering an existing bag. He had a few goals for the project, the most interesting of which was to make the electronics removable. His reasoning for this is so he can get the bag past security at the airport.
The design is quite simple, there’s a large flap which is attached at the top of the bag and has a couple of clips at the bottom to keep ti closed. On the inside of the flap he sewed a snap system which holds one piece of material on which all of the electronics are attached. The Lilypad system is used (it looks like the original hardware and not the FLORA upgrade). The main unit is sewn to one side, while the Charlieplex LED matrix was attached in a grid centered on the flap. The lights shine through the orange fabric, keeping them fairly safe from the weather and giving them a reddish hue.
If you’re looking for a few more features check out this GPS enabled messenger bag.
Ahh, the Lite Brite.
What could be more fun than pushing dozens of little plastic pegs through a piece of black paper in order to create a pixelated, though colorful image? Well, I can think of quite a few things more engaging than that, and luckily so can [Lonnie Honeycutt] over at MeanPC.
While contemplating what to build with a pile of LEDs, his daughter came into the room with her portable Lite Brite. He thought that the pegs she was using looked awfully similar to the LEDs on his desk, so he did some test fitting and was surprised to see that they fit almost perfectly.
[Lonnie] thought that the toy would make an excellent clock, and his daughter happily agreed to let Dad do some tinkering. A few hours, an Arduino, and some Charlieplexing later, he had a nice looking clock that his kids were sure to enjoy.
If you’re interested in seeing more about how constructed, be sure to check out his YouTube channel and Instructable, where he happily provides all of the build details.
[Mike Shegedin] makes full use of an 8-pin microcontroller with this ATtiny13-based dice project. With a maximum of six I/O pins (that includes using the reset pin as I/O) he needed a couple of tricks in order to drive 14 LEDs and use a momentary push button for user input. We’re certainly familiar with the concepts here, but it still took quite a while to figure out what is going on with the schematic that [Mike] posted.
You’ve probably already guessed that he’s using Charlieplexing to drive more LEDs than he has pins. But when we started looking at the layout we thought he had drawn the schematic wrong, because there are six pairs of LEDs where the two diodes in each pair a not reverse biased, but hooked up in parallel. That, plus the fact that his battery is hooked up backwards. After several minutes of study the light bulb finally clicked on. Dice add pips (the dots on each side of a die) in pairs with the exception of the center pip. That means that you only need to control four total lines for each die (three pairs plus the center pip). There’s two ways to handle this, you could use four rows and two columns with traditional multiplexing, or you can reverse bias the two sets of LEDs for each die and use Charlieplexing. The former is a bit easier to program, the latter saves you one I/O pin and meant that [Mike] didn’t need to use the reset pin as I/O.
This is a clever addition to the collection of dice projects we’ve seen like the battery-less die, and the ATtiny2313 powered dice.
[Tom] recently started experimenting with Charlieplexing, and wrote in to share the 4x4x4 cube he built with an ATtiny24. Similar to this minimalist 4x4x4 LED cube we featured the other day, [Tom’s] version attempts to use the least pins possible to drive the LEDs, but in a different manner.
[Tom] didn’t want to sacrifice brightness, so he decided that the LEDs would have a 1/8 duty cycle. The problem is that the ATtiny’s I/O ports can’t support that kind of current so he needed a different means of driving the LEDs. Rather than employ any sort of shift register to control the LEDs, he opted to exclusively use transistors as he had done in previous projects.
For his Charlieplexed cube to use a total of 9 I/O pins he had to get creative with his design. He broke each level of the structure into two non-connected groups of LEDs, utilizing diagonal interconnects to get everything wired up properly.
It seems to work quite nicely as you can see in the video below. While it uses two more I/O lines than the other ATtiny cube we featured recently, we love the simple, shift register-less design.
Continue reading “ATtiny Hacks: ATtiny-controlled 4x4x4 LED cube has a unique design”