We’ve seen a lot of arcade machine builds here on Hackaday. Seriously, a lot. Even more so since the Raspberry Pi took over the world and made it so you didn’t have to cannibalize an old laptop to build one anymore. It’s one of those projects with huge appeal: either you’re somebody who’s built their own arcade, or you’re somebody who wishes they had. But even after seeing all these builds, we occasionally come across a specimen that deserves special recognition.
[Al Linke] recently wrote in to tell us about his arcade build, which we think you’ll agree is worth a closer look. The core build is actually a modification of a previously published design, but what makes this one unique is the addition of a programmable LED matrix in the top that actually shows the logo and artwork for whatever game you’re currently playing. This display really helps sell the overall look, and instantly makes the experience that much more authentic. Sure you don’t need the marquee of your home arcade machine to show era-appropriate artwork…but we know you want it to.
So how does one interface their Raspberry Pi with this beautiful 64×32 LED marquee display? Well it just so happens that [Al] is in the business of making cool LED displays, and even has a couple successful Kickstarter campaigns under his belt to prove it. He’s developed a board that lets you easily connect up to low-cost HUB75 LED panels such as the one used in the arcade. It’s been a few years since we’ve last seen a project that tackled these specific LED displays, and it’s encouraging to see how far things have come since then.
Even if you’re somehow not in love with the LED marquee, this build really does stand on its own as a fantastic example of a desktop arcade machine. [Al] went to great length to document his build, including putting together several videos during different phases of construction. If you’re curious about the start of the art for home arcade builds, this project would be a pretty good one to use as a barometer.
A few years ago, [Frans-Willem] bought a few RGB LED panels. Ten 32×16 panels is a lot of LEDs, and to drive all of these panels requires some sufficiently powerful hardware. He tried working with an FPGA development board, but that didn’t have enough memory for 24-bit color. The microcontroller du jour – a TI Stellaris – couldn’t get more than 16 bits of color without flickering. With a bunch of LEDs but no way to drive them, [Frans-Willem] put the panels in a box somewhere, waiting for the day they could be used to their fullest capacity.
This day came when [Frans-Willem] was introduced to the STM32 series of chips with the F1 Discovery board. While looking for some electronic playthings to use with this board, he stumbled upon the LED panels and gave them one more try. The results are spectacular, with 33 bits of color, with animations streamed over a router over WiFi.
The panels in question are HUB75 LED panels. In the 32×8 panels, there are six data pins – two each for each color – four row select pins, and three control pins. The row select pins select which row of pixels is active at any one time. Cycle through them fast enough, and it will seem like they’re all on at once. The control pins work pretty much like the control pins of a shift register, with the data pins filling in the obvious role.
The code that actually drives the LEDs all happens on an STM32F4 with the help of DMA and FSMC, or the Flexible Static Memory Controller found on the chip. This peripheral takes care of the control lines found in memory, so when you toggle the write strobe the chip will dump whatever is on the data lines to a specific address in memory. It’s a great way to take care of generating a clock signal.
For sending pixels to this display driver, [Frans-Willem] is using the ever-popular TP-Link WR703N. He had originally planned to send all the pixel data over the USB port, but there was too much overhead, a USB 1.1 isn’t fast enough. That was fixed by using the UART on the router with a new driver and a recompiled version of OpenWRT.
All the software to replicate this project is available on Github, and there’s a great video showing what the completed project can do. You can check that out below.