Skip to content

Help with pixel mapping on 64x32 panel. #580

Open
@bug2k19

Description

I have a 64x32 panel which seems to be addressed in blocks of 16x4 pixels and 2 panels of 64x16 one on top of the other.
By creating 16x4 rectangles I can see that the blocks of pixels are mapped as follows, actual output to the right.
64x32_mapping

Using this code produces the following output on the panel.
`#include <ESP32-HUB75-MatrixPanel-I2S-DMA.h>

#define R1_PIN 2
#define G1_PIN 12
#define B1_PIN 4
#define R2_PIN 16
#define G2_PIN 27
#define B2_PIN 17

#define A_PIN 5
#define B_PIN 25
#define C_PIN 18
//#define D_PIN 33
#define D_PIN -1
#define E_PIN -1

#define LAT_PIN 32
#define OE_PIN 21
#define CLK_PIN 19

#define PANEL_RES_X 64
#define PANEL_RES_Y 16
#define PANEL_CHAIN 2

MatrixPanel_I2S_DMA *dma_display = nullptr;

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};
delay(10);

HUB75_I2S_CFG mxconfig(
PANEL_RES_X,
PANEL_RES_Y,
PANEL_CHAIN,
_pins
);
delay(10);

dma_display = new MatrixPanel_I2S_DMA(mxconfig);
dma_display->begin();
dma_display->setBrightness8(16);

dma_display->clearScreen();

dma_display->drawRect(16,0, 16, 4, 254);
dma_display->drawRect(112,0, 16, 4, 254);
dma_display->drawRect(0,12, 16, 4, 254);
dma_display->drawRect(96,12, 16, 4, 254);
}

void loop()
{

}`
64x32_panel

How would I modify the output so that the output looks correct?

Metadata

Assignees

No one assigned

    Labels

    workaround existsA workaround exists for this. Read the issue comments.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions