ESP32 & HUB75 16x32 1/8 Scan Mod

Hi Everyone.
I’m dealing with an ESP-WROOM-32 [not using PSRAM] and a RGB Hub75 16x32 - 1/8 scan module.
Background color change seems to work fine but I having trouble with scrollingLayer… characters seems to be bad mapped (I just see lines instead of dots)…
I’m currently using HUB75_ADAPTER_PINOUT modified to my hardware pins [using Just ABC pins SMARTMATRIX_HUB75_16ROW_MOD8SCAN ]…

backgroundLayer.fillScreen(K_BLACK);
backgroundLayer.swapBuffers();
scrollingLayer.setColor(K_BLUE);
scrollingLayer.setMode(wrapForward);
scrollingLayer.setSpeed(2);
scrollingLayer.setFont(font3x5);
scrollingLayer.start(“Hello World”, 1);

Any clues ?
Thx in advance.
Gus

Does Bitmaps sketch show the bitmaps correctly on the background layer?

Hi Louis, Thx 4 the reply… No… Bitmaps [DEMO_MONO_BITMAP = 1] does not appear correctly, neither circles, rectangles, etc… just backgroundLayer.fillScreen() function works fine.

Any Ideas ?

What’s the pixel pitch on your panel? Can you show a picture of the back, and maybe a picture or video of something displayed on the front?

Your panel may have non-standard mapping, which seems odd for a 16x32/8 panel. Try using the MultiRowRefreshMapping sketch that’s available in the “teensy4” branch of the SmartMatrix Library to reverse engineer the mapping on your panel and add a new mapping to the library.

1 Like

Hi louis…!
It’s a P10 SMD.
P10 RGB|690x317
Here’s showing the sketch before…
I’ll do the reverse engineering of the panel and I’ll let you know.

Hi Louis
…still dealing with the panel…
I’ve discovered that C Address line is not used…
The MultiRowRefreshMapping.ino does not give to much info because it does’n work with this panel…

I have this debug info:

Starting SmartMatrix MallocsHeap/32-bit Memory Available: 362416 bytes total, 124640 bytes largest free block
8-bit/DMA Memory Available : 289076 bytes total, 124640 bytes largest free block
SmartMatrix Layers Allocated from Heap:Heap/32-bit Memory Available: 357300 bytes total, 124640 bytes largest free block
Starting SmartMatrix DMA Mallocssizeof framestruct: 00001800DMA Memory Available before ptr1 alloc: 270072 bytes total, 124640 bytes largest free block
matrixUpdateFrames[0] pointer: 3FFB2688DMA Memory Available before ptr2 alloc: 270072 bytes total, 124640 bytes largest free block
matrixUpdateFrames[1] pointer: 3FFB3E98Frame Structs Allocated from Heap:Heap/32-bit Memory Available: 343412 bytes total, 124640 bytes largest free block
8-bit/DMA Memory Available : 270072 bytes total, 124640 bytes largest free block
Allocating refresh buffer:lsbMsbTransitionBit of 0 requires 98304 RAM, 124640 available, leaving 26336 free: Raised lsbMsbTransitionBit to 0/11 to fit in RAMlsbMsbTransitionBit of 0 gives 19 Hz refresh, 120 requested: lsbMsbTransitionBit of 1 gives 38 Hz refresh, 120 requested: lsbMsbTransitionBit of 2 gives 76 Hz refresh, 120 requested: lsbMsbTransitionBit of 3 gives 151 Hz refresh, 120 requested: Raised lsbMsbTransitionBit to 3/11 to meet minimum refresh rateDescriptors for lsbMsbTransitionBit 3/11 with 2 rows require 12288 bytes of DMA RAMSmartMatrix Mallocs CompleteHeap/32-bit Memory Available: 331092 bytes total, 113792 bytes

Is this correct ?

Hi Gus,

I’ve seen a few P10 panels that require MultiRowMapping

“doesn’t work” doesn’t tell me much. What doesn’t work?

"I’ve discovered that C Address line is not used…

It’s likely a /4 panel not /8 panel then.

Can you show a picture of the back?

Hi Louis…
MultiRowMapping does not seem to be helpfull with this panel…

I’ve try my own test program and I’ve found that the pattern is like the one indicated in the picture


The Panel backside is this…

Note: b127 means b63.
Thx in advance

I don’t see anything useful from the back of the panel, but it’s only half the panel, can you post a picture of the other half?

Again, I can’t get any useful information to help you, or help others by improving the MultiRowRefreshMapping sketch without more details.

Looks like your test program is working though, and you got similar output to what MultiRowRefreshMapping would do.

I don’t think your sketch is correct, you’re filling 5 rows with 128 pixels, when 4 rows makes more local sense (128 pixels / 32 pixels wide = 4)

Can you follow the instructions in MultiRowRefreshMapping to generate a map?

Pls… see note… Note: b127 means b63 .

This is the Backside of the hole panel…

it is strange i have P10 32X16 pannel working very well with esp32 but looking at your picture i think it is not standard P10 1/8 scan panel.


here are few pictures if it helps.

I am not sure if this is helpful because I used an Adafruit 32 x 16 RGB LED Matrix, not an HUB75. I connected my ESP-WROOM-32 to it and uploaded the Prottomatter library example named doublebuffer_scrolltext . This is the pin configuration that finally worked with the ESP-WROOM-32
uint8_t rgbPins[] = {25, 5, 15, 27, 26, 21}; // R1, G1, B1, R2, G2, B2
uint8_t addrPins[] = {22, 18, 23, 19}; // A, B, C, D
uint8_t clockPin = 13; // Clock Must be on same port as rgbPins. Don’t use 32 or higher for Clock.
uint8_t latchPin = 16;
uint8_t oePin = 17;