January 10, 2025

Driving an LED panel - first steps

My first concern was the need for level shifters. The panel is 5 volt logic. Some users say they have had luck driving it directly from 3.3 volt logic. Adafruit recommends level shifters.

This could be my big opportunity to lay out a board using KiCAD, just to hold the level shifters. What I did was to purchase a little board offered by Adafruit, their

This is designed to plug directly onto the 40 pin IO connector on a Raspberry Pi. Of course I am not going to use it in that way.

Since ordering it, I have certain misgivings. I am not at all convinced that the 3.3 to 5 volt level shifters are needed. My panel has 245 devices in place on it, which ought to do the same job. I ran across this item on Amazon (for $23 instead of $16). They give you a hub75 cable and two power cables. No level shifters that I can see unless they are on the bottom of the board. If you wanted to use a Pico, you could just plug one in. Not what I want to do, but the pico connectors would be a handy place to plug "dupont" cables if you wanted to breadboard something up.

I found an old 40 pin IDE cable laying around, cut it off so I got a piece about 3 inches long with just wires on one end, then used a 40 pin header to mate it to the bonnet. Then I made a diagram and soldered the 14 wires I need (along with 2 wires for grounds) to my Antminer S9 board.

Then to test it, I generated an FPGA bitstream that mapped software accessible EMIO to the various offboard signals on the Antminer S9. Then I could write software to run on the ARM that would generate square waves on each pin one by one and let me check my soldering and my understanding of pin mapping. I did the check all the way from ARM pin selection to checking pins on the 16 pin HUB75 connector on the bonnet.

This leaves me with confidence that I am not going to have problems due to selecting the wrong wire on that 40 pin cable or some other stupid screw-up. It also leaves me in a position where I can write code to run on the ARM and drive the panel without (yet) doing that via the FPGA.


Have any comments? Questions? Drop me a line!

Tom's Electronics pages / [email protected]