-
Notifications
You must be signed in to change notification settings - Fork 172
HUB75 Panels
HUB75 RGB panels are typically used for LED billboards (e.g. Times Square), making them cost-effective and readily available. They're much cheaper per-pixel than addressable LEDs, and available in a wide range of pixel pitch (as of now, 2 mm spacing up to 10 mm spacing per LED). They do require an external controller to continually send data to the panels to refresh them line by line, and that's where the SmartLED Shield and SmartMatrix library come in. Adafruit, Sparkfun, and other distributors carry panels that are known to be compatible with SmartLED Shield and the SmartMatrix library, but most panels on AliExpress and other sources are compatible as well.
The pixel pitch and "RGB" are good search terms on Aliexpress, e.g. "P6 RGB" for a 6 mm pitch RGB HUB75 panel.
Despite what they look like when refreshed at a high rate, the panels typically only display two rows of pixels at a time, with each pixel either in a fully on or fully off state. We see a full image with high color depth as a result of SmartMatrix Library updating the content of the rows two at a time, toggling the LEDs on and off, and cycling through the rows at a high rate of speed.
Todo: Add image of HUB75 Pinout
When SmartMatrix Library started, all panels had the same general characteristics:
- Panel contains two RGB channel inputs, driving one row of pixels per channel at a time, resulting in two visible rows evenly spaced vertically across the panel, going from left to right when viewed from the front
- The currently driven LED rows are selected with address lines driven directly
- There are
n=matrixHeight/2rows to choose from, and2^naddress lines driven to select the row - e.g. a 32x16 panel would have 16/2=8 rows to choose from, with three address lines to select: "ABC"
- e.g. a 128x64 panel would have 128/2=64 rows to choose from, with five address lines to select: "ABCDE"
- There are
- Driver chipsets on the panel act as simple shift registers
The panels sold by Adafruit and SparkFun all have these characteristics and are therefore easily supported by SmartMatrix Library
HUB75 manufacturers started making panels that didn't follow the above "rules", and SmartMatrix Library may not be able to support them. When you order panels from Aliexpress or other vendors, you're taking a chance as the vendors typically just send whatever panels they have in stock, not necessarily matching the photos or specifications they list, even if you request a panel with a specific chipset or configuration.
Panels with a FM6126A chipset require a special initialization sequence to be sent before starting SmartMatrix Library. Without the sequence, the panels may display seemingly random pixels, or be completely blank. There is initial support for this in SmartMatrix Library 4.0, but not for all platforms:
- Teensy platforms: supported
- ESP32: limited support, see this discussion
Some panels drive more than one row per RGB channel at a time, and are more difficult for SmartMatrix Library to refresh. If running example code on your panel results in scrambled text and graphics being displayed, you might have one of these panels. These panels are only supported in SmartMatrix Library 4. The MultiRowRefreshMapping example sketch walks you through determining the mapping for your panel, how to add the mapping to SmartMatrix Library, and how to test to make sure the mapping is applied correctly. This is not yet an easy process. You may find that one of the already added panel types supports your panel. Feel free to record video of running the MultiRowRefreshMapping sketch and post to the SmartMatrix Community to get help with mapping a new panel.
Some panels include a chipset that requires a series of pulses on the A and B ("AB") or A and C ("AC" or "ABC") lines while the latch signal is high, to change which row is driven. This is a significant departure from how the generic panels work, and is incompatible with how SmartMatrix Library and SmartMatrix/SmartLED Shield hardware was intended to work.
How would you know if you had one of these panels? Here's an incomplete list of clues:
- You have ICN2038S chips on the board
- The silkscreen for the HUB75 connector only shows the "A" and "B", or "A", "B" and "C" signals for addressing, when your panel is large
It won't be possible to support these with the Teensy platform, due to the way the latch is controlled by a timer, and the address bits are controlled by DMA driving GPIO.
On the ESP32, it should be possible to support these panels with certain hardware configurations, but it's been difficult to get a sample of these panels to test. The panels with this configuration only seem to show up for people that don't want them. If you have a panel with this configuration and want to donate it (with shipping to the UK) to help with adding support with this feature for the ESP32 platforms, please reach out!
Some discussion here:
- https://community.pixelmatix.com/t/new-p2-1-32-scan-64-64-led-panel-with-different-ic-chip-controller/281
- https://github.com/pixelmatix/SmartMatrix/issues/49
These panels are supported by hzeller's Raspberry Pi matrix driver: https://github.com/hzeller/rpi-rgb-led-matrix
If you're ordering from a vendor that may send you panels incompatible with SmartMatrix Library, you may want to request specific chipset that are known to work. Here's an (very) incomplete list of chipsets that are known to work
- ICN2028BP
- FM6124
- DP5220X
- ICN2028AP
Here's an incomplete list of chipsets that are known to be incompatible:
- ICN2038S
- FM6126A (limited compatibility)