NEW PART DAY: LED DRIVER IS FPGA DEV BOARD IN DISGUISE




Our new part of the day is the ColorLight 5A-75B, a board that’s meant to drive eight of those ubiquitous high-density color LED panels over gigabit Ethernet. If you were building a commercial LED wall, you’d screw a bunch of the LED panels together, daisy-chain a bunch of these boards to drive them, supply power, and you’d be done. Because of that high-volume application, these boards are inexpensive, around $15 each, and available as quickly as you can get stuff shipped from China.

But we’re not here to talk commercial applications. Managing fast Ethernet and pushing so many pixels in real time is a task best handled by an FPGA, and hacker [q3k] noticed that these things were essentially amazing FPGA development boards. He started the chubby75 reverse engineering project to dig into their secrets.




While the first generations of these boards used the old-standby Spartan 6, things got interesting for fans of open FPGA tools when newer versions were found using the Lattice ECP5-25 chips, the little brother of the stonking big chip [Sprite_TM] used on the 2019 Hackaday Supercon badge. If you want to grab one you’re looking for ColorLight boards marked with revision 6 or 7 as of this writing.

What does this mean? For the price of a gourmet hamburger, you get an FPGA that’s big enough to run a RISC-V softcore, two 166 MHz, 2 MB SDRAMS, flash for the FPGA bitstream, a bazillion digital outputs on 5 V level shifters, and two gigabit Ethernet ports. The JTAG port is broken out in 0.1″ headers, and it works with OpenOCD, which is ridiculously convenient. How’s that for a well-stocked budget FPGA dev board that’s served by a completely open toolchain?

HACKERS AT WORK

The reverse engineering work on the ECP5 variants is still in progress, but there are some really heavy hitters in the open FPGA scene playing around with this board right now, and progress is being made rapidly.

Last week, to map out the new ECP5 variants’ pinouts, [Mike Walters] used a particularly sweet hack that he learned from [Claude Schwarz] that plays to the strengths of an FPGA: bit-bang serial UART with the pin number on all of the pins simultaneously. Each pin on the output headers then told him which pin on the FPGA it was attached to. Great idea!

[Florent] of Enjoy Digital got a picoRV core up and running with Ethernet UART just yesterday.

What would you do with one of these beasts? Obviously, drive many, many LEDs. (Here are two great references for Hub75 LEDs: one for Arduino, and one for Raspberry Pi.) But there are other uses for high-bandwidth, real-time outputs. Control an arbitrary number of servo motors over Ethernet? Or heck, steppers! Myself, I’m not so much interested in the Ethernet as the memory and pinout, but you have to admit that an Ethernet bitstream bootloader would be an awesome hack.

While this is a reverse engineering effort — prying open a closed design — we’ve also seen great open-source hacker FPGA boards flourishing in the last few years. From the early Dipsy and Upduino projects, through TinyFPGABlackIce, and the iCEBreaker, to the super-recent Pergola and [Greg Davill]’s OrangeCrab and ButterStick, you’re not hurting for choice in dev boards if you don’t want to hang out on the bleeding edge with a Chinese LED driver.

If you are just starting out with FPGAs, you can support these awesome developers and it will more than pay you back in time spent: they’re all open, documented, and tested. I’m sure I’ve missed more than a few awesome boards as well — these are just the ones that I’ve had in my own two hands. (Post your favorites in the comments!)

But if twin Ethernets, a bunch of RAM, and too many 5 V outputs are the peripherals you need for your FPGA project, or if you just want to lend a hand to the development effort, the ColorLight 5A-75B might just be worth the hack. You certainly can’t beat the price.

Source: NEW PART DAY: LED DRIVER IS FPGA DEV BOARD IN DISGUISE




Leave a Comment

*
= 3 + 6

(Spamcheck Enabled)

Read previous post:
Read-a-Potentiometer-With-Arduinos-Analog-Input
Read a Potentiometer With Arduino’s Analog Input

Let's learn how to read a potentiometer, a type of rotating variable resistor, using Arduino's analog input! We'll connect up...

Close
Scroll to top