Turn-key PCB assembly services in prototype quantities or low-volume to mid-volume production runs

Driving 11×10 LED matrix with better charlieplexing

Dmitry had a bunch of spare LEDs and decided to give them a purpose. So he built a LED matrix of 11×10 LEDs. He found spare PIC16F688 laying around – why not. It has 11 pins that can be used and coincidentally he found that using charlieplexing 11 pins is what he need.

While building the matrix, Dmitry decided to improve the algorithm that drives charlieplexed LEDs. The problem is that normally scanning algorithm scans only those LEDs that has to be light. So more LEDs are ON the more dim image gets. He decided to scan through all LEDs and this way give same timing no matter how many of the mare ON. This way intensity is always same. He used a Timer0 interrupt that frees MCU from timing and also added double buffer for storing image – this prevents from flickering. Great ideas that can be used in any project!

[..Source link..]

Bookmark the permalink.


  1. great projects, can you provide with AVR sdample examples coading.

  2. So, have the source code and schematics eventually become available? It would be nice if you can revisit the project with the updates. 10×11 may seem like an odd format but I’ve seen MJPA selling 10×12 LED matrices very cheaply (it must have been almost 10 years since they started, still cannot get rid of them 🙂 ) and wondered if I could use the project to drive one.

Comments are closed