Multiplexing LEDs, outputs on Arduino and other Controllers

Multiplexing LEDs, outputs on Arduino and other Controllers
Multiplexing is a very important concept in electronics which allows you to drive multiple outputs through less pins. This is extremely useful in creations such as the LED cube, LED matrices, servo drives and other applications which require multiple pins to function.

Charlieplexing is a multiplexing method proposed by Charile Allen in the early 90s. He derived the fact that you can drive two LEDs or outputs with a set of two pins. Based on that assumption he was able to prove that with n pins, there is a possibility to have n^2 – n outputs in total.

Watch the above video for a great explanation of this method.