Raspberry Pi driven 128x32 LED sign
The sign is constructed from wood, its about 1.3m wide. It has a matching stand which it just sits on, the sign can be removed and even wall
mounted if brave.
If you do want to make one you need 8 panels, but it's best to have a spare in case one gets damaged.
The Raspberry Pi board is mounted inside the sign box. Its in a rather nice laser cut perspex case available here from PCATS
The box is made from two different sizes of wood with a hardboard back. The frame is glued and screwed together, the slats are placed in to line up with the mounting holes in the P10 boards. The P10 boards sit far enough from the front face for a 3mm red perspex panel to mount in front. Corner sections made from painted PCB material screwed with black screws hold the corners of the perspex panel.
P10 BoardsThe term serial in the description refers to serially loading of shift registers, not RS232 or SPI.
The P10 boards daisy chain together. This sign uses a strange arrangement, the top 4 boards are daisy chained right to left, the bottom 4 boards are mounted upside done and daisy chain left to right. This arrangement allows the cables to be short, this helps with clocking the data fast. The 2 bits per pixel code updates the display at more than 400 complete frames a second.
The P10 boards use a set of shift registers, these are serially loaded with pixel data. The pinout of the P10 is pretty simple, lines "A" and "B" are a two address bits, these selects which row is active. SCLK changes state to update the active row (strobe). R is the pixel data (red), CLK is the pixel clock. OE is used to enable/disable the shift registers. This turns all the leds On or Off. At any one point 1024 leds can be one, the display is 4096 leds in total so its required that you keep clocking them to update the display. The raspberry Pi is amply fast enough to do the job. Pictured left is a minimal level converter for 3v to 5v logic to drive the panels. You probably don't need it as I suspect that the panels will work with the 3 volt signals.
Raspberry Pi I/O
Pi LED Sign Software
The software is little bit tricky. It needs to clock data into the sign at a fair rate. Two programs for driving the sign from the Pi are included here, p10_board_empegdisplay.c. this drives the board in one bit per pixel. It enables you to specify the amount of the time the LEDS are on and the amount of time OFF. I find a pattern of off for 4 periods of time off and one for on on gives a nice bright display without getting the boards hot, this saves a lot of power. The time the leds are on or off is specified on the command line, use -h for help
p10_board_empegdisplay_2bpp is the two bit per pixel display code. This turns the brighter pixels on for a longer time, it still has some blanking time so the panels don't run too hot. This code works well ish ! The snag is that produce the dim pixels the panel needs to turn the display on for a only a very very short period of time, because this time is so brief any jitter in the timing is visible as a change in brightness. This makes the dim pixels slightly flickery. If anyone can cure this let me know.
The script "./compile" is used to compile everything. I didn't see the point in a Makefile for a project of this scale. I'm using the debian arm toolchain on a desktop PC to cross compile the binaries. The binaries are included in the tar file.
All code is GPL.
EMPEG SoftwareThis code broadcasts the contents of the Hijack kernels two bits per pixel framebuffer as UDP data. To use you first need to enable the telnet server on the empeg.
Add "ktelnetd_port=23" to config.ini file in empegs "/empeg/var" directory then ftp the file to the player. Copy broadcastfb_proc to the players root directory,
telnet to the player and make it executable (chmod +x /broadcastfb_proc). That is about it, if you use the "-k
All code is GPL.
This video is a bit out of date, I will upload a new one when I get time.
For details of a simple one line LED sign see here
All content on this site is (c) 2014 Jonathan Andrews, This article is marked as free and open. Feel free to copy and or republish it