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!