Charlieplexing with the RaspberryPi


To combine our knowledge of hardware and software implementing Charlieplexing using Raspberry Pi as our hardware part of the project. Control six LEDs electronically in different sequences via Raspberry Pi (GPIO) over the internet. By means of Apache and PHP servers installed on the raspberry pi for communication through software to hardware. GPIO is known for General Purpose Input/output which is an interface available on some devices like Raspberry Pi. Charlieplexing is a technique proposed in early 1995 by Charlie Allen at Maxim Integrated Products for driving a multiplexed display in which relatively few I/O pins on a micro-controller are used to drive an array of LEDs aka sending multiple signals or streams of information from a programming code to a low level hardware device. The method utilizes the tri-state logic capabilities of micro-controllers in order to gain efficiency over traditional multiplexing.


  • Raspberry Pi
  •  Breadboard
  • 6 LED’s
  • Cables
  • USB charger
  •  SD card


GPIO Pin 7, 11 and 12 are being used in this Project 

Assembled on Bread-Board

Website To Control the LEDs



Our goal for this project was to learn how to implement electronic devices using hardware and programming to control the LEDs through Python. The Charlieplexing method was very useful to us for programming the LEDs in the sequence we desired them to display by using Raspberry Pi as our hardware device. We were able to display six LEDs electronically in different sequences via the internet with the php program we have developed that displays on our webpage. The Apache server and Wheezy OS (operating systems) were installed on the SD card that is placed in the Raspberry pi. When we first tested our project it worked! We used one LED and were asked by Doctor Mendoza to either add more LED’s or a fan to our project just to expand it more by also modifying the programming. The fan and the extra LED’s were then added. We came to an issue due to finding out that the fan had to be supplied with 5 volts and our board only provides 3.3 volts. So, to start up the fan we had to give it a little push with a finger gently. After experimenting we decided not to use the fan. We ended up using six LED’s with the method of Charlieplexing and got the results/conclusion we were aiming for!

People interested in doing the Project {Link to the Scripts}