Reverse Engineering Saves Trashed LED Panels

While out riding his bike, [Hammond Pearce] came across a dumpster overflowing with large LED panels. Despite the fact that the model numbers didn’t reveal anything helpful after some online searching, he decided to pedal off with as many as he could safely carry. The COVID-19 lockdown left him with only a limited set of tools, be he still managed to crack the protocol used to control his e-waste score and document it for our reading pleasure.

Between the helpful labels on the PCB silkscreen and the advice of a friend that used to work on digital road signs, it didn’t take [Hammond] long to get a general idea of what the panels were looking for in terms of power and control. Especially once he noticed the MBI5024 shift registers dotting the board.

The next step was to take an ATmega328PB based development board and start throwing data at the panel’s input lines to see if he could elicit a response. With careful attention and some custom code, he eventually figured out that each byte of data sent down the line would control a 4 x 2 section of LEDs.

Once he had the basics down, the next step was to start expanding his code to handle things like shapes, text, and daisy-chained panels. After posting some of his work to Reddit, cyber-sleuths determined that the protocol appeared to be some variation of HUB75, which gave [Hammond] hints on what some of the other pins in the connector might be used for. He’s released all of his code online for anyone who might find it useful, but since he still doesn’t know who made these panels and why there’s really no telling how many of them are actually floating around out there.

Figuring out how to talk to an unknown or undocumented piece of hardware can be intimidating, but success stories like these are reminders of why it’s worth putting the effort in. As we’ve seen, the difference between trash and treasure is often a keen eye and a few lines of code.

7 thoughts on “Reverse Engineering Saves Trashed LED Panels

    1. > figured out that each byte of data sent down the line would control a 4 x 2 section of LEDs.

      From the article, it seems there are separate shift registers for sets of color and sections of panel– 2 input pins for each color. “sent down the line” means 1 of 6 lines and the idea that 8 bits are for 8 pixels holds up :)

      Funny, this is a bit (no pun) closer to what I suggested in a reply that got deleted presumably because the original comment also got deleted, but it’s OK… I just said that Leo Fernekes could’ve tripled the demand for all but 2 components of his design by making smaller programmable ‘pixels’ in separate R,G,B versions, and that might have helped out with his volume problem.

      1. Yeah. Tricks are used to make that bit do triple duty. I’ve seen ones where the refresh rate is raised enough so that it only flashes one color per screen refresh and each refresh also rotates through the three sub-pixels in sequence as a hard-coded behavior in the panel, letting persistence of vision do the rest. It’s strange to take photos of that setup. Always a random monochrome image.

  1. Nice trash find! I always used to amuse people with the shit I could drag home on my bike. I used to work second shift and the ride home on trash night was slow. You never knew what you might find curbside.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.