Nice tutorial from brandonhawkes on Instructables.
What are we making?
We are going to create a controllable 6×7 LED grid with minimal components.
Charlieplexing
Charlieplexing is a method to individually control more LEDs than pins used. This method is popular since it doesn’t require any additional components like shift registers.
It mostly works by changing the mode of two pins to an input and an output to light a specific LED. By cycling through and lighting up each LED at a time quick enough it gives the illusion of multiple LEDs being lit at once.
The formula for working out the amount of LEDs you can control from the amount of pins (N) you want to use is:
N*(N-1)
So 3 pins = 6 LEDs, 4 = 12, 5 = 20, 6 = 30, 7 = 42, 8 = 56, 9 = 72 and so on.
For this tutorial we are going to use 7 pins, so that means we have 42 LEDs that we can control.
Adafruit Huzzah
The Adafruit Huzzah is an ESP8266 breakout board – I used it for this project its easier to program and power compared to a bare ESP8266, but still is still super cheap. This board is great because it has built in WiFi, so we can add the ability to change the grid over the Internet.
Featured Adafruit Product!
Adafruit HUZZAH ESP8266 Breakout: Add Internet to your next project with an adorable, bite-sized WiFi microcontroller, at a price you like! The ESP8266 processor from Espressif is an 80 MHz microcontroller with a full WiFi front-end (both as client and access point) and TCP/IP stack with DNS support as well. While this chip has been very popular, its also been very difficult to use. Most of the low cost modules are not breadboard friendly, don’t have an onboard 500mA 3.3V regulator or level shifting, and aren’t CE or FCC emitter certified….UNTIL NOW! Read more.