LED matrix sign

I pulled this out of the boneyard, it’s an 80x7 bicolour (red/green) matrix display. Karl had dumped it there, but wanted it as an HSBNE sign - lucky for him that’s what I’m planning to do :slight_smile:

The display hardware is in good condition, and the existing controller board was easily removed, leaving a fairly straightforward 2x10 header. The columns are controlled by a chain of 20 74HC595s, and the rows by a 3-to-8 decoder, which are easy to drive.

I’m planning to run the display off an ESP8266, which will allow it to be controlled directly from the space’s WiFi. I should also be able to run it at a high enough frame rate that I can do more than just text scrollers, like piping video to it :smiley:

Controller pinout (pins numbered like an IC from the top left):
1,2,3: Row select
4: Row enable
5: Column latch
6: Column clock
7: Column data
8,9: Serial RX/TX, unused
10: IR receiver data (receiver not populated)
11-12: GND
13: dunno
14-16: GND
17-20: 5V

Column format is 8 bits red followed by 8 bits green, repeated 10 times. It’s shifted in from the right, so the first byte will end up on the left edge.

Rows are interlaced, so top-to-bottom it is 0,2,1,3,4,6,5. I haven’t found a bit order that gets closer yet (though looking at this it seems like just swapping the lowest two bits will do it, but when I tried it it just got more screwed up.)


Images here: https://goo.gl/photos/HWZm3KA8kgdwbnF97

Ten seconds after that first light video it started generating smoke. I yanked the power fast enough to prevent anything getting damaged; I think I was lucky in that there’s a lot of flux residue on the board - so that smoked before the silicon did. It had gotten stuck on a single row for a few seconds, and I had hardwired the row enable on for that first trial so it was 100% duty cycle. It’s not designed to do that :smile:

I hardwired the row enable because it had a 4.7k pullup to 5v. I didn’t want to put that on an 8266 pin (which aren’t 5v tolerant), so I added a 6.8k resistor to ground to form a divider that pulls the pin to ~3.3v instead.

I’m using most of the GPIO’s that the ESP-12 module gives me, which unfortunately includes the three bootloader select pins. I’m currently stuck having to disconnect the module from the display when I want to upload new code, because of that. Guh. Hopefully someone will get OTA flashing going soonish…

1 Like