The plot so far: suppose you want to build a large, pixel-addressable LED installation with the following parameters:
- Runs at 60 frames per second
- More than 4400 LEDs
- Fully-programmable from a PC or otherwise
- Survives the desert
You can run a Teensy 3.2 with the FastLED library and parallel output on 8 different pins: that gets you 4416 pixels. To get more pixels than that, your best bet is to connect a bunch of Teensy’s over ethernet.
I decided to build a basic circuit board which combined:
- Teensy 3.2
- WIZ850io Ethernet Board
- The usual 3.3v to 5v level shifter and eight 100 ohm resistors to drive WS2812b LED strips via long runs of CAT-6
- a small 32×128 OLED display panel for status report (especially useful to find the Mac and IP address of a given board and get some field diagnostics when things go wrong)
- a “heartbeat” status LED
- an infrared remote receiver, so basic operations can be done with a cheap remote control
Here’s what all that looked like on a breadboard:
I also started writing the code to run this whole thing, although that is still very much a work in progress so far. The problem I immediately hit is that the messy prototype wiring is really kinda flaky and half the time something falls out and wastes an hour of my time debugging what happened.
Since I’m going to want a PCB version of this eventually, I downloaded KiCad, which I had literally never used before, and got started. In the course of one weekend I was able to build the schematic:
… and design a prototype board:
It’s probably not the world’s fanciest circuit board, there are probably lots of ways to make it better, but it’s just a prototype and it is the first prototype board I’ve ever designed. I’ve sent it off to Osh Park to get made, which is going to take a few weeks, and then we’ll discover all the things I did wrong.