# P5(1921)64x32-8S

**URL:** <https://rpi-rgb-led-matrix.discourse.group/t/p5-1921-64x32-8s/1161>\
**Category:** Uncategorized\
**Created:** [December 13, 2025, 5:03pm UTC](https://rpi-rgb-led-matrix.discourse.group/t/p5-1921-64x32-8s/1161 "2025-12-13T17:03:59Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![embeddedwolf](https://avatars.discourse-cdn.com/v4/letter/e/e19adc/32.png) [@embeddedwolf](https://rpi-rgb-led-matrix.discourse.group/u/embeddedwolf)\
**Post date:** [December 13, 2025, 5:03pm UTC](https://rpi-rgb-led-matrix.discourse.group/t/p5-1921-64x32-8s/1161/1 "2025-12-13T17:03:59Z")

</div>

Hi, I am very new here , I am just working on a small project with esp32-S3 no PSRAM module, I have to display few words on HUB75-RGB panel on 128x32(64X32 two ), what I got from market consist of these two ICs ICN2037B and HX6061S, I tried all over did not find any details or Datasheets of these ICs nor found help in this forum, during panel scan complete panel light up, but when I try to access any row column or print any word on it, it shows just garbage broken text, and shows further split in half 32x32 , but if I connect a 32X16 panel with it this panel shoes exactly what I expect (but in it own pixels limit). can you please guide me I can share further details if required

 ![G](https://global.discourse-cdn.com/free1/uploads/rpi_rgb_led_matrix/original/1X/4aba14a3b76ea09ad5e5004b4c5bab3c33929e2c.jpeg)

#include \<ESP32-HUB75-MatrixPanel-I2S-DMA.h\>

/\* PINS \*/

#define R1\_PIN 17

#define G1\_PIN 18

#define B1\_PIN 21

#define R2\_PIN 14

#define G2\_PIN 13

#define B2\_PIN 12

#define A\_PIN 5

#define B\_PIN 6

#define C\_PIN 4

#define D\_PIN -1

#define E\_PIN -1

#define LAT\_PIN 16

#define OE\_PIN 15

#define CLK\_PIN 8

#define PANELS 2

#define WIDTH 128

#define HEIGHT 32

MatrixPanel\_I2S\_DMA \*dma\_display;

const uint8\_t rowMap[32] = {

16,17,18,19,20,21,22,23,

0, 1, 2, 3, 4, 5, 6, 7,

24,25,26,27,28,29,30,31,

8, 9,10,11,12,13,14,15

};

inline void drawMappedPixel(int x, int y, uint16\_t c)

{

dma\_display-\>drawPixel(x, rowMap[y], c);

}

void setup()

{

HUB75\_I2S\_CFG::i2s\_pins pins = {

R1\_PIN, G1\_PIN, B1\_PIN,

R2\_PIN, G2\_PIN, B2\_PIN,

A\_PIN, B\_PIN, C\_PIN,

D\_PIN, E\_PIN,

LAT\_PIN, OE\_PIN, CLK\_PIN

};

HUB75\_I2S\_CFG cfg(64, 32, PANELS, pins);

cfg.i2sspeed = HUB75\_I2S\_CFG::HZ\_10M;

dma\_display = new MatrixPanel\_I2S\_DMA(cfg);

dma\_display-\>begin();

dma\_display-\>setBrightness8(60);

}

void loop()

{

dma\_display-\>clearScreen();

for (int y = 0; y \< 32; y++) {

dma\_display-\>drawPixel(5, rowMap[y], dma\_display-\>color565(255,255,255));

delay(200);

}}

---

<div class="post-metadata">

**Author:** ![board707](https://avatars.discourse-cdn.com/v4/letter/b/bc79bd/32.png) [@board707](https://rpi-rgb-led-matrix.discourse.group/u/board707)\
**Post date:** [December 13, 2025, 8:15pm UTC](https://rpi-rgb-led-matrix.discourse.group/t/p5-1921-64x32-8s/1161/2 "2025-12-13T20:15:47Z")

</div>

First of all, could you show a clear picture of the panel rear side?

Next, where did you get this code? Why didn’t you start with the library examples?

And why did you decide to ask this question on a forum that pertains to a different library? If you had asked this question in the ESP32-HUB75-MatrixPanel-I2S-DMA repository, you would have had a better chance of getting an answer.

---

<div class="post-metadata">

**Author:** ![embeddedwolf](https://avatars.discourse-cdn.com/v4/letter/e/e19adc/32.png) [@embeddedwolf](https://rpi-rgb-led-matrix.discourse.group/u/embeddedwolf)\
**Post date:** [December 13, 2025, 8:37pm UTC](https://rpi-rgb-led-matrix.discourse.group/t/p5-1921-64x32-8s/1161/3 "2025-12-13T20:37:11Z")

</div>

Thanks for your reply, I was working on 32X16 board and achieved all targets but then we think to switch to this panel for better visibility,I just tried few examples from forums and from libraries too, only panel scan works, i got many help from this forum so I decided to get help from here, panel pic is attached , it on 02, 45,89… rows on and skip rest of rows, even I tried to on manually like C++ , I was unable to light up consecutive rows,except full scan,(sorry for my bad English)

 ![image](https://global.discourse-cdn.com/free1/uploads/rpi_rgb_led_matrix/original/1X/a5ae8d5261e41fe01ab3a732c4e042f25c131ae5.jpeg)

---

<div class="post-metadata">

**Author:** ![board707](https://avatars.discourse-cdn.com/v4/letter/b/bc79bd/32.png) [@board707](https://rpi-rgb-led-matrix.discourse.group/u/board707)\
**Post date:** [December 13, 2025, 8:45pm UTC](https://rpi-rgb-led-matrix.discourse.group/t/p5-1921-64x32-8s/1161/4 "2025-12-13T20:45:58Z")

</div>

please show a whole panel image

---

<div class="post-metadata">

**Author:** ![embeddedwolf](https://avatars.discourse-cdn.com/v4/letter/e/e19adc/32.png) [@embeddedwolf](https://rpi-rgb-led-matrix.discourse.group/u/embeddedwolf)\
**Post date:** [December 14, 2025, 6:55am UTC](https://rpi-rgb-led-matrix.discourse.group/t/p5-1921-64x32-8s/1161/5 "2025-12-14T06:55:48Z")

</div>

1.whole panel pic  
2.display against code I wrote in problem statement

 ![IMG_3458](https://global.discourse-cdn.com/free1/uploads/rpi_rgb_led_matrix/original/1X/4275510f40002840938d47c09e592c7c465af7c5.jpeg)

---

<div class="post-metadata">

**Author:** ![embeddedwolf](https://avatars.discourse-cdn.com/v4/letter/e/e19adc/32.png) [@embeddedwolf](https://rpi-rgb-led-matrix.discourse.group/u/embeddedwolf)\
**Post date:** [December 14, 2025, 6:56am UTC](https://rpi-rgb-led-matrix.discourse.group/t/p5-1921-64x32-8s/1161/6 "2025-12-14T06:56:48Z")

</div>

Display against code, this panel have only three address lines ABC, D pin is not working or have any impact on addressing I checked in detail.

 ![IMG_3441](https://global.discourse-cdn.com/free1/uploads/rpi_rgb_led_matrix/original/1X/22ca686c6548cbb016cb79c606947959d1fd523c.jpeg)

---

<div class="post-metadata">

**Author:** ![board707](https://avatars.discourse-cdn.com/v4/letter/b/bc79bd/32.png) [@board707](https://rpi-rgb-led-matrix.discourse.group/u/board707)\
**Post date:** [December 14, 2025, 7:19am UTC](https://rpi-rgb-led-matrix.discourse.group/t/p5-1921-64x32-8s/1161/7 "2025-12-14T07:19:46Z")

</div>

Thanks for the photo, but its quite blurry image…  
Please take a photo of this area clear enough to read a text on the white sticker:

 ![Screenshot from 2025-12-14 10-13-52](https://global.discourse-cdn.com/free1/uploads/rpi_rgb_led_matrix/original/1X/f4949eceb7b73997e281e52c7f71e2d1c9b1cac6.jpeg)

I addition, could you try to read a model on one of the selected chips:

 ![Screenshot from 2025-12-14 10-14-23](https://global.discourse-cdn.com/free1/uploads/rpi_rgb_led_matrix/original/1X/4f420c0d7b1af3c42d281a50f57119da038309ca.jpeg)

---

<div class="post-metadata">

**Author:** ![embeddedwolf](https://avatars.discourse-cdn.com/v4/letter/e/e19adc/32.png) [@embeddedwolf](https://rpi-rgb-led-matrix.discourse.group/u/embeddedwolf)\
**Post date:** [December 14, 2025, 7:35am UTC](https://rpi-rgb-led-matrix.discourse.group/t/p5-1921-64x32-8s/1161/8 "2025-12-14T07:35:37Z")

</div>

As told you before it is HX6016SP

 ![IMG_3459](https://global.discourse-cdn.com/free1/uploads/rpi_rgb_led_matrix/original/1X/b4d149dee5c18bb0876f1dc5d80945624e5fa534.jpeg)

---

<div class="post-metadata">

**Author:** ![embeddedwolf](https://avatars.discourse-cdn.com/v4/letter/e/e19adc/32.png) [@embeddedwolf](https://rpi-rgb-led-matrix.discourse.group/u/embeddedwolf)\
**Post date:** [December 14, 2025, 7:39am UTC](https://rpi-rgb-led-matrix.discourse.group/t/p5-1921-64x32-8s/1161/9 "2025-12-14T07:39:21Z")

</div>

![A](https://global.discourse-cdn.com/free1/uploads/rpi_rgb_led_matrix/original/1X/d392a867507d78c1615011d62f3c4317f0a33fc5.jpeg)

---

<div class="post-metadata">

**Author:** ![board707](https://avatars.discourse-cdn.com/v4/letter/b/bc79bd/32.png) [@board707](https://rpi-rgb-led-matrix.discourse.group/u/board707)\
**Post date:** [December 14, 2025, 7:49am UTC](https://rpi-rgb-led-matrix.discourse.group/t/p5-1921-64x32-8s/1161/10 "2025-12-14T07:49:57Z")

</div>

Well, finally, something informative 🙂  
The label on the sticker put everything in its place. The bottom line means your panel has a ICN2037 driver and a 6016 multiplexer, as you already noted. But most importantly, there’s a note indicating the multiplexer is of the so-called 138 type, which is very useful, since the internet and AI know nothing about the HX6016 chip.  
You need to run the `Pixel_Mapping_Test` example from the ESP32-HUB75-MatrixPanel-I2S-DMA library **using a single panel.** Important: **don’t change anything in the code** except the lines about the panel size:

```auto
#define PANEL_RES_X 32 
#define PANEL_RES_Y 16

```

Run the example and post a video of it running.

---

<div class="post-metadata">

**Author:** ![embeddedwolf](https://avatars.discourse-cdn.com/v4/letter/e/e19adc/32.png) [@embeddedwolf](https://rpi-rgb-led-matrix.discourse.group/u/embeddedwolf)\
**Post date:** [December 14, 2025, 8:08am UTC](https://rpi-rgb-led-matrix.discourse.group/t/p5-1921-64x32-8s/1161/11 "2025-12-14T08:08:01Z")

</div>

sorry, its not allowing me to upload a video here, please guide, I uploaded that SS from Video

 ![WhatsApp Image 2025-12-14 at 13.07.06_9afe7e78](https://global.discourse-cdn.com/free1/uploads/rpi_rgb_led_matrix/original/1X/8e306185de05709437aeec06f45360036299f9fb.jpeg)

---

<div class="post-metadata">

**Author:** ![embeddedwolf](https://avatars.discourse-cdn.com/v4/letter/e/e19adc/32.png) [@embeddedwolf](https://rpi-rgb-led-matrix.discourse.group/u/embeddedwolf)\
**Post date:** [December 14, 2025, 8:15am UTC](https://rpi-rgb-led-matrix.discourse.group/t/p5-1921-64x32-8s/1161/12 "2025-12-14T08:15:34Z")

</div>

I used second cord option and display this

 ![IMG_3463](https://global.discourse-cdn.com/free1/uploads/rpi_rgb_led_matrix/original/1X/d21323522eb6d38309da3215eac8efecb9aab331.jpeg)

---

<div class="post-metadata">

**Author:** ![board707](https://avatars.discourse-cdn.com/v4/letter/b/bc79bd/32.png) [@board707](https://rpi-rgb-led-matrix.discourse.group/u/board707)\
**Post date:** [December 14, 2025, 8:25am UTC](https://rpi-rgb-led-matrix.discourse.group/t/p5-1921-64x32-8s/1161/13 "2025-12-14T08:25:44Z")

</div>

> [@embeddedwolf](#):
>
> its not allowing me to upload a video her

You could upload the video to Youtube and put the link here

> [@embeddedwolf](#):
>
> used second cord option

What is the “second cord option” ? I dont understand

---

<div class="post-metadata">

**Author:** ![embeddedwolf](https://avatars.discourse-cdn.com/v4/letter/e/e19adc/32.png) [@embeddedwolf](https://rpi-rgb-led-matrix.discourse.group/u/embeddedwolf)\
**Post date:** [December 14, 2025, 8:29am UTC](https://rpi-rgb-led-matrix.discourse.group/t/p5-1921-64x32-8s/1161/14 "2025-12-14T08:29:49Z")

</div>

(ok let me try to upload video there)  
example said if your panel displaying right to left than use second coordinate option, to start mapping from left to right, I did it but its turned all panel blinking white

---

<div class="post-metadata">

**Author:** ![board707](https://avatars.discourse-cdn.com/v4/letter/b/bc79bd/32.png) [@board707](https://rpi-rgb-led-matrix.discourse.group/u/board707)\
**Post date:** [December 14, 2025, 8:36am UTC](https://rpi-rgb-led-matrix.discourse.group/t/p5-1921-64x32-8s/1161/15 "2025-12-14T08:36:17Z")

</div>

> [@embeddedwolf](#):
>
> example said…

Is not for you.  
I asked you don’t change anything in the code.

---

<div class="post-metadata">

**Author:** ![embeddedwolf](https://avatars.discourse-cdn.com/v4/letter/e/e19adc/32.png) [@embeddedwolf](https://rpi-rgb-led-matrix.discourse.group/u/embeddedwolf)\
**Post date:** [December 14, 2025, 8:42am UTC](https://rpi-rgb-led-matrix.discourse.group/t/p5-1921-64x32-8s/1161/16 "2025-12-14T08:42:35Z")

</div>

video

[https://youtube.com/shorts/Xd3Hh86DzpQ?feature=share](https://youtube.com/shorts/Xd3Hh86DzpQ?feature=share),

but I have one doubt, I didnot map pins as per example code,

---

<div class="post-metadata">

**Author:** ![board707](https://avatars.discourse-cdn.com/v4/letter/b/bc79bd/32.png) [@board707](https://rpi-rgb-led-matrix.discourse.group/u/board707)\
**Post date:** [December 14, 2025, 8:51am UTC](https://rpi-rgb-led-matrix.discourse.group/t/p5-1921-64x32-8s/1161/17 "2025-12-14T08:51:21Z")

</div>

> [@embeddedwolf](#):
>
> I didnot map pins as per example code,

IDK what’s this means..  
Please show your code

---

<div class="post-metadata">

**Author:** ![embeddedwolf](https://avatars.discourse-cdn.com/v4/letter/e/e19adc/32.png) [@embeddedwolf](https://rpi-rgb-led-matrix.discourse.group/u/embeddedwolf)\
**Post date:** [December 14, 2025, 8:52am UTC](https://rpi-rgb-led-matrix.discourse.group/t/p5-1921-64x32-8s/1161/18 "2025-12-14T08:52:44Z")

</div>

#include “ESP32-VirtualMatrixPanel-I2S-DMA.h”

// Define custom class derived from VirtualMatrixPanel  
class CustomPxBasePanel : public VirtualMatrixPanel  
{  
public:  
using VirtualMatrixPanel::VirtualMatrixPanel; // inherit VirtualMatrixPanel’s constructor(s)

protected:

```
VirtualCoords getCoords(int16_t x, int16_t y); // custom getCoords() method for specific pixel mapping

```

};

// custom getCoords() method for specific pixel mapping  
inline VirtualCoords CustomPxBasePanel ::getCoords(int16\_t x, int16\_t y) {

coords = VirtualMatrixPanel::getCoords(x, y); // call base class method to update coords for chaining approach

if ( coords.x == -1 || coords.y == -1 ) { // Co-ordinates go from 0 to X-1 remember! width() and height() are out of range!  
return coords;  
}

uint8\_t pxbase = panelResX; // pixel base  
// mapper for panels with 32 pixs height (64x32 or 32x32)  
if (panelResY == 32)  
{  
if ((coords.y & 8) == 0)  
{  
coords.x += ((coords.x / pxbase) + 1) \* pxbase; // 1st, 3rd ‘block’ of 8 rows of pixels  
}  
else  
{  
coords.x += (coords.x / pxbase) \* pxbase; // 2nd, 4th ‘block’ of 8 rows of pixels  
}  
coords.y = (coords.y \>\> 4) \* 8 + (coords.y & 0b00000111);  
}

// mapper for panels with 16 pixs height (32x16 1/4)  
else if (panelResY == 16)  
{  
if ((coords.y & 4) == 0)  
{  
// 1. Normal line, from left to right  
coords.x += ((coords.x / pxbase) + 1) \* pxbase; // 1st, 3rd ‘block’ of 4 rows of pixels  
//2. in case the line filled from right to left, use this (and comment 1st)  
[//coords.x](https://coords.x) = ((coords.x / pxbase) + 1) \* 2 \* pxbase - (coords.x % pxbase) - 1;  
}  
else  
{  
coords.x += (coords.x / pxbase) \* pxbase; // 2nd, 4th ‘block’ of 4 rows of pixels  
}  
coords.y = (coords.y \>\> 3) \* 4 + (coords.y & 0b00000011);  
}  
return coords;  
}

// Panel configuration  
#define PANEL\_RES\_X 64 // Number of pixels wide of each INDIVIDUAL panel module.  
#define PANEL\_RES\_Y 32 // Number of pixels tall of each INDIVIDUAL panel module.

// Use a single panel for tests  
#define NUM\_ROWS 1 // Number of rows of chained INDIVIDUAL PANELS  
#define NUM\_COLS 1 // Number of INDIVIDUAL PANELS per ROW

// Chain settings, do not cnahge  
#define SERPENT true  
#define TOPDOWN false  
#define VIRTUAL\_MATRIX\_CHAIN\_TYPE CHAIN\_BOTTOM\_RIGHT\_UP

// placeholder for the matrix object  
MatrixPanel\_I2S\_DMA \*dma\_display = nullptr;

// placeholder for the virtual display object  
CustomPxBasePanel \*FourScanPanel = nullptr;

/\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
Setup!  
\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*/  
void setup()  
{  
HUB75\_I2S\_CFG mxconfig(  
PANEL\_RES\_X \* 2, // DO NOT CHANGE THIS  
PANEL\_RES\_Y / 2, // DO NOT CHANGE THIS  
NUM\_ROWS \* NUM\_COLS // DO NOT CHANGE THIS  
//,\_pins // Uncomment to enable custom pins  
);

mxconfig.clkphase = false; // Change this if you see pixels showing up shifted wrongly by one column the left or right.

// OK, now we can create our matrix object  
dma\_display = new MatrixPanel\_I2S\_DMA(mxconfig);

// let’s adjust default brightness to about 75%  
dma\_display-\>setBrightness8(40); // range is 0-255, 0 - 0%, 255 - 100%

// Allocate memory and start DMA display  
if ( not dma\_display-\>begin() )  
Serial.println(“\*\*\*\*\*\* !KABOOM! I2S memory allocation failed \*\*\*\*\*\*\*\*\*\*\*”);

dma\_display-\>clearScreen();  
delay(500);

// create FourScanPanellay object based on our newly created dma\_display object  
FourScanPanel = new CustomPxBasePanel ((\*dma\_display), NUM\_ROWS, NUM\_COLS, PANEL\_RES\_X, PANEL\_RES\_Y, VIRTUAL\_MATRIX\_CHAIN\_TYPE);

}

void loop() {  
for (int i = 0; i \< FourScanPanel-\>height(); i++)  
{  
for (int j = 0; j \< FourScanPanel-\>width(); j++)  
{  
FourScanPanel-\>drawPixel(j, i, FourScanPanel-\>color565(255, 0, 0));  
delay(30);  
}  
}  
delay(2000);  
dma\_display-\>clearScreen();  
} // end loop

---

<div class="post-metadata">

**Author:** ![board707](https://avatars.discourse-cdn.com/v4/letter/b/bc79bd/32.png) [@board707](https://rpi-rgb-led-matrix.discourse.group/u/board707)\
**Post date:** [December 14, 2025, 8:55am UTC](https://rpi-rgb-led-matrix.discourse.group/t/p5-1921-64x32-8s/1161/19 "2025-12-14T08:55:53Z")

</div>

Thanks, the code looks correct.  
What is the issue with pins? Why didn’t you can to connect it as in the example?

---

<div class="post-metadata">

**Author:** ![embeddedwolf](https://avatars.discourse-cdn.com/v4/letter/e/e19adc/32.png) [@embeddedwolf](https://rpi-rgb-led-matrix.discourse.group/u/embeddedwolf)\
**Post date:** [December 14, 2025, 5:24pm UTC](https://rpi-rgb-led-matrix.discourse.group/t/p5-1921-64x32-8s/1161/20 "2025-12-14T17:24:57Z")

</div>

yeah I updated my hardware pins as per library, I run code again and got this result, i got 11Hrs restriction for being a new user, so I replied late

[](https://www.youtube.com/watch?v=D5FcEb3OxNw)

[Next page](https://rpi-rgb-led-matrix.discourse.group/t/p5-1921-64x32-8s/1161.md?page=2)
