An oversized scanned-matrix display using 10mm LEDs.


When Steven Colbert and Jon Stewart announced the Rally To Restore Sanity and/or Fear, my politically zealous brother wanted to add some flair to the party. We devised a satirical protest sign that would scroll conservative absurdities on one side of the sign and liberal nonsense on the other, reading such garbage from a hand-curated text file.

What it does

  •  Displays arbitrary text/graphics in a variety of ways.

What it’s made of

  • 74AHC595-series 8-bit shift registers
  • PFET transistors (to source current through columns)
  • NFET transistors (to sink current through rows)
  • LM3150 DC/DC buck convertor
  • 10mm LEDs
  • A bunch of support components
  • Custom PCB designed in EAGLE and fabricated at PCBExpress
  • Firmware written in C using MPLABX, compiled by XC16 and loaded using an ICD3

Theory of operation

Send it bunch of bits over SPI a zillion times a second and you get pretty text! The code linked to above just sets the stage – it’s up to you to send the display what you want to see. When I get some extra time (LOL) I’ll hook it up to a WiFi module and use it as a wall-clock.


It works, yay! Lessons learned:

  • Light-bleed into adjacent LEDs is easily fixed with some opaque heat-shrink tubing.
  • Each row has a considerable amount of capacitance that needs to be discharged with each row switch. Write an all-off sequence to the column drivers to do this.
  • Light output is considerably reduced when you scan the display, essentially reducing it to 1/7 (in this case using 7 rows) of the original brightness. You can overdrive the rows by 7x (in this case using 7 rows) to get around this but you must make sure your OE line is de-asserted until you start switching the rows or you’ll pop the LEDs.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.