Evil Mad Scientist Laboratories Evil Mad Scientist Laboratories

Making the World a Better Place, One Evil Mad Scientist at a Time

 
About EvilMadScientist  :  Buy Stuff  :  Contact  :  Forums  :  Links  :  Articles  :  Search  

"Peggy," A Light Emitting Pegboard Display

Resist1- Wall hanging

With all the cool things that you can do with LEDs today, there is still one thing that's lacking: simplicity. If you want to run a bunch of LEDs at a time, you usually end up spending a fair bit of time worrying about series and parallel combinations, matching brightness, and picking load resistors. Or, if you're a beginner, maybe you only get one third of the way through the previous sentence-- wondering if you're already in over your head.

Suppose that you want to make a big LED display for your window or wall: maybe it's your logo, a symbol, your favorite 8-bit character, or maybe even a sign that spells out words like "OPEN" or "ON AIR." How do you go about it? The usual DIY solution involves drilling holes in a panel to fit your LEDs, then spending a heck of a lot of time wiring everything up-- ending up with one resistor per LED (and a three-dimensional mess if you happen to look at the back side of the panel). And, if you do everything in the most obvious ways, it can even end up consuming a surprising amount of power.

While I have certainly spent my share of time constructing things with the aforementioned technique, at some point it becomes clear that there has to be a better way. In this day and age, shouldn't LEDs be about as difficult to play with as, say, a Lite Bright? Today we are releasing a new open-source hardware and software design that takes some of the sting, complexity, and mess out of playing with LEDs. It's a versatile and powerful light-emitting pegboard that lets you efficiently drive hundreds of LEDs in whatever configuration you like, without so much as calculating a single load resistor.



bluepink

So how does it work?
The design is based on a large custom printed circuit board that provides a 25 x 25 grid of locations for LEDs; 625 in all. Around the edges of this array go resistors and transistors that serve to control the array, driven by a large AVR microcontroller. Once those peripheral components around the edges have been added, every one of the 625 LED locations is active, and an LED placed there will light up and be efficiently driven.

Circuit theory
The basic idea is that we have constructed a multiplexed array where only one row of the display is actually turned on at any given time. However, the microcontroller scans through the different rows so quickly that they all appear to be on continuously. The anodes of the LEDs in each column are connected together, and through a single resistor to the positive voltage rail, 4.5 V. Since only one row is ever on at a given time, that column resistor limits the amount of current through just one LED-- effectively providing one load resistor for every LED that is on at a given time. The cathodes of the LEDs in each row are connected together and are controlled through a single NPN transistor driven by the microcontroller. This design inherently does not care which LED locations are populated and which are empty-- performance is not affected by the number of LEDs in a given row.


ATmega164P ATmega164P On Board

Microcontroller
While there are some other ways that the circuit could be driven, we chose to use an ATmega164P microcontroller to drive the display. It is a relatively inexpensive AVR family microcontroller with 16 K of flash, hardly any of which is required for the basic row-scanning functions that we use. The most important thing is that it comes in a 40-pin package that can easily drive the 25 pins of the display and still have room left over for several extra I/O pins including analog to digital converters. One of the main reasons to pick a controller like that is that one of our design goals was for the whole circuit to be seriously hackable. What exactly can be done with that processor and its extra inputs is wide open. As a simple example, our default firmware uses a light sensor and can (optionally) turn off the display during the daytime.


ruler

What does it look like?
First of all it should be stressed that the circuit board is huge: 12 x 15". That's because we've left enough room at each LED location to fit a "10 mm" LED. The pegboard area itself covers nearly a square foot of space. Immediately below the LED field is room for a battery box (3 x D-cell). On the lower left is the microcontroller and on the lower right there is a place for a power jack and a switch to select whether the board is powered from an adapter or from batteries.

Of course, what we really care about is what it looks like when there are things on the circuit board:

Happy VD 4

Happy VD Happy VD 2
Resist4 Resist3
White LEDs blue
Bright Green


In the examples above, you can see our Evil Mad Scientist "Resist" logo, along with our electronic and sarcastic valentine's day card. There are also closeups on 10 mm pink, green, and blue diffused LEDs, as well as 5 mm white clear LEDs installed in the panels.

How do you make it?
This project is fully documented, wide open, open source, and you can approach it from any direction you want. Start with the schematics and firmware, or start with a circuit board and a soldering iron. It's all yours:

  • Get a kit here.
  • Build instructions and schematics are here (1.7 MB PDF File)
  • Download the Bill of Materials (45 kB PDF File), featuring Digi-Key part numbers.
  • Thrill at reading the painfully simple GPL-released firmware, written for AVR-GCC. It's available for download here. (16 kB .ZIP file)
  • The circuit board was designed in gEDA PCB, and you can download the original PCB file here; Fundamentally, it's also source code; we are releasing it under the GPL.
  • Want to talk about it? That's what the forums are for.


FAQ:
1. What's this all about?

    This is an easy way to drive a lot of LEDs-- up to 625-- in a big matrix. You can make an LED sign for your window, a geeky valentine for your sweetie, one bad-ass birthday card, or freak the holy bejesus out of Boston. Your call. It's a versatile, high-brightness display.

    The display can run off an AC adapter or batteries (3 'D' cells), and is designed to run as many green/blue/white/violet LEDs as you care to solder into the holes, all with excellent brightness. The board can accommodate LEDs in several common sizes: 3mm, 5 mm (standard T-1 3/4 size), and 10 mm. A photosensor is provided that can automatically turn off the display in bright daylight or incandescent light.

2. Do I have to put the LEDs on the grid, or can I position them exactly where I want to?

    You do not have to place every LED on a regular grid. See the instructions for some tips on how to position the LEDs more arbitrarily.

3. What can I reprogram the display to do?

    If you have an appropriate interface and like to program, you can control what the display does, either turning all the LEDs on and off, or controlling the individual rows (but not columns) of the display. Here are some basic ideas to get you started:
  1. Turn on only for a given period of time after it goes dark, or even after a given period of time.
  2. Blink or flash the whole display slowly or occasionally. Use it as a strobe?
  3. Add external buttons to control the display.
  4. Make an insane-o-tv-b-gone? (Yes you can!)
  5. Use the photosensor to make the display interactive in other ways-- turns on for ten seconds when somebody walks by?
  6. Make an open/closed sign where either the top half or the bottom half of the display is on.
  7. Make a sign with a static logo in one half and blinking text in the other.
  8. Animate vertical waves, fading in and out through the display.
  9. Put different color LEDs in different rows, and alternate how much each of them is driven to make a color changing illumination panel, or a static panel with adjustable color.
  10. LED coffee table?
  11. 8-bit style electronic art for your wall or bicycle-- it can run on batteries, you know.
  12. LED illumination panel for photography or even an infrared illumination panel.
  13. Use the light sensor, or other sensor with the analog inputs and make a scrolling strip chart that records and displays the history of that variable, plotted by the intensity of the rows of the display.
  14. Attach a sound sensor and make a display or sign that pulses to the beat.

4. What is the "charlieplexing" option/hack?

    It's an alternate configuration (well, a hack, actually) for the board that allows you to control individual LED locations to a limited extent. It requires you to change the hardware around a bit and reprogram the board. It is much dimmer, and doesn't have enough speed to do anything really complicated. There are also some bugs to work out (A hack with bugs? Never!) that may not make it impossible-- or at least very inconvenient-- to drive a board that has a lot (note: purposefully left vague) of LEDs on it. So what *can* it do? It can allow very minor animation in limited cases-- do you want to blink or wink the eyes on your giant happy face display?

    4A. Do you recommend building the multiplexed (standard) or charlieplexed display option?
    For almost everyone, the standard option is the way to go. It's much brighter.

    4B. Can I put in 625 LEDs and use this as a full animated display with charlieplexing?
    It's probably possible, but we don't recommend trying that yet-- again, there are some bugs to work out first, and we may need a more severe hack to make it work well.


Trackback

Trackback URL for this entry: http://www.evilmadscientist.com/trackback.php/peggy

Here's what others have to say about '"Peggy," A Light Emitting Pegboard Display':
your message in light emitting diodes from technabob
Want to get your point across? Why not say it with light? This new kit lets you create your own custom LED light board using any pattern you want. The whole thing reminds me of a modern-day Lite-Brite. The latest Open Source creation from Evil Mad Sci... [read more]
Tracked on Thursday, January 31 2008 @ 08:05 PM PDT
http://www.friday.com/bbum/2008/01/30/january-31st-2007-never-forget/
Tracked on Friday, February 01 2008 @ 02:23 AM PDT
Just wonderful things >> Peggy: Open source LED-based Mooninite kit
Tracked on Friday, February 01 2008 @ 03:56 AM PDT
"Peggy," - A Light emitting pegboard display from MAKE: Blog
Evil Mad Scientist Laboratories have released "Peggy" this is a great open source hardware project for LED art makers! - With all the cool things that you can do with LEDs today, there is still one thing that's lacking:... [read more]
Tracked on Friday, February 01 2008 @ 04:11 AM PDT
Evil Mad Scientist Peggy LED Kit | The Opine
Tracked on Friday, February 01 2008 @ 10:07 AM PDT
Where in the World are Chris and Tiffany >> Blog Archive >> Lightboard!
Tracked on Friday, February 01 2008 @ 11:39 AM PDT
Peggy board: recordando a los mooninites from meneame.net
Hace un año una campaña de marketing viral desató la alarma en Boston por unos dispositivos sospechosos en distintos puntos de la ciudad (fon.gs/mooninites). Se trataba de una promoción de la película "Aqua Teen Hunger Force" (fon.gs/athf). D... [read more]
Tracked on Friday, February 01 2008 @ 02:14 PM PDT
http://laughingsquid.com/peggy-an-open-source-led-pegboard-display/
Tracked on Friday, February 01 2008 @ 03:15 PM PDT
Pure Genius, evil genius… from Hackinstack's Weblog
The people over at Evil Mad Scientist (one of my favorite electronics blogs) have done it again! http://www.evilmadscientist.com/article.php/peggy Their latest is this “lite-brite for the 21st century” - check it out for a very nice LED pro... [read more]
Tracked on Monday, February 04 2008 @ 12:18 PM PDT
Evil Mad Scientists Peggy LED Kit | The Opine
Tracked on Sunday, February 10 2008 @ 02:48 PM PDT
Zinger.Org >> Blog Archive >> LED Sign kit
Tracked on Sunday, February 10 2008 @ 03:03 PM PDT
Austoon Daily >> “Peggy,” A Light Emitting Pegboard Display
Tracked on Tuesday, February 12 2008 @ 01:40 AM PDT
DIY Pozostałe i Newsy :: Duży wyświetlacz na LEDach | Elektronika - schematy elektroniczne
Tracked on Monday, February 18 2008 @ 06:30 AM PDT
OpnShrts-EP0001-080225-10 Years On and New Beginnings
Tracked on Wednesday, February 27 2008 @ 09:15 AM PDT
LAB >> Blog Archive >> Blog de comoLAB
Tracked on Thursday, February 28 2008 @ 05:22 AM PDT
Noise Land Arcade >> Blog Archive >> Let There Be Light (emitting diodes)!
Tracked on Monday, March 03 2008 @ 11:38 PM PDT
The Eat Me LED pegboard design project
Tracked on Tuesday, March 04 2008 @ 08:57 PM PDT
Large 25×25 LED sign board : AVR Based Projects Collection
Tracked on Saturday, March 08 2008 @ 02:12 AM PDT
http://www.friday.com/bbum/2008/03/09/avr-microcontroller-prototype-board/
Tracked on Monday, March 10 2008 @ 12:53 AM PDT
ladyada’s ranting >> Blog Archive >> PACPACPEGGY
Tracked on Tuesday, March 11 2008 @ 07:35 PM PDT
"Peggy," A Light Emitting Pegboard Display | 17 comments | Create New Account
The following comments are owned by whomever posted them. This site is not responsible for what they say.
"Peggy," A Light Emitting Pegboard Display
From: Anonymous on Thursday, January 31 2008 @ 07:11 PM PDT
Very cool! I have to say though that "Happy V.D." took me a second to get the intended meaning.
"Peggy," A Light Emitting Pegboard Display
From: Anonymous on Friday, February 01 2008 @ 12:43 AM PDT
Brilliant!
Is V.D. the gift that keeps on giving?
"Peggy," A Light Emitting Pegboard Display
From: Anonymous on Friday, February 01 2008 @ 04:17 AM PDT
V.D. is.. ambiguous.

hopefully intentionally so.
Make it more like a lite-brite?
From: Anonymous on Friday, February 01 2008 @ 12:00 PM PDT
How hard would it be to solder LED sockets to the board, so that one could swap LEDs at any time?
Programming Peggy
From: Anonymous on Friday, February 01 2008 @ 04:33 PM PDT
This is very cool. It occurs to me that rapidly moving bars of light could be used to make a Dreamachine, which usually uses a record player to produce a flickering pattern of light at around the rate of alpha brain waves. The dreamachine is said to induce fantastic visual illusion -- http://en.wikipedia.org/wiki/Dreamachine.

To make a dreamachine would, of course, take some programming. I've programmed an Arduino but I don't have much experience with programming in C and would prefer to avoid the hassle of learning. Could the chip be programmed on an Arduino board and then moved over to the Peggy. I suspect not but perhaps someone could suggest a way.
"Peggy," A Light Emitting Pegboard Display
From: westfw on Friday, February 01 2008 @ 10:10 PM PDT
What a good idea. Perhaps the next run of boards should do the silkscreen in a more subtle color? (Hmm. Do silkscreens COME in subtle colors?)
VD, the card day?
From: Anonymous on Tuesday, February 05 2008 @ 04:31 PM PDT
I am not usually one for special occasions, so it took me some time to understand what VD was referring to; but I expect it has very high humor density for character.

Kevin
LANL

ps Nice board.
pps I only give people gifts if they contain LED's...hopefully the light will bring them illumination (in more ways than one).
"Peggy," A Light Emitting Pegboard Display
From: russ_hensel on Friday, February 15 2008 @ 09:53 AM PDT
I am a bit confused, have looked at the schematics but still do not quite get what is going on. Normally I would expect to get full row and column control over a 25 by 25 array you would need 25 + 25 port bits or a trick. Could you explain just a bit more?