Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

74hc245kaj Chip #725

Open
gxsins opened this issue Jan 7, 2025 · 2 comments
Open

74hc245kaj Chip #725

gxsins opened this issue Jan 7, 2025 · 2 comments
Labels
panel specific issue A HUB75 panel that isn't supported out-of-the-box. Fiddling required. Not a DMA library issue.

Comments

@gxsins
Copy link

gxsins commented Jan 7, 2025

shared image
shared image (1)

i ordered a new set from Aliexpress, this time with a new chip that i havent seen before.

old chips were
d18807na

new ones are
74hc245kaj

what i've noticed is the bottom right portion of a 64X32 panel is good, and all top right \ bottom left have a shift, then top left has a bigger shift

@gxsins
Copy link
Author

gxsins commented Jan 7, 2025

Here is a better picture.

i wrote 3 lines, RGB over and over.
Good chip vs new one.

472355157_1122978649463376_5014220539241608896_n
472108035_585738154207038_3914354237448579440_n

code:

#include <ESP32-HUB75-MatrixPanel-I2S-DMA.h> // Library for controlling the LED matrix

// Panel configuration
#define PANEL_RES_X 64                  // Panel width in pixels
#define PANEL_RES_Y 32                  // Panel height in pixels
#define PANEL_CHAIN 1                   // Number of panels chained together

MatrixPanel_I2S_DMA *dma_display;       // Pointer to the display object

void setup() {
    // Define the GPIO pins for the matrix
    HUB75_I2S_CFG::i2s_pins _pins = {
        // R1, G1, B1, R2, G2, B2, A, B, C, D, E, LAT, OE, CLK
           25, 26, 27, 14, 12, 13, 23, 19, 5, 17, -1, 4, 15, 16
    };

    // Initialize the display configuration
    HUB75_I2S_CFG mxConfig(PANEL_RES_X, PANEL_RES_Y, PANEL_CHAIN);
    mxConfig.gpio = _pins; // Assign the custom pin configuration

    dma_display = new MatrixPanel_I2S_DMA(mxConfig);
    dma_display->begin(); // Initialize the display
    dma_display->setBrightness8(64); // Set medium brightness (scale of 0–255)
    dma_display->clearScreen(); // Clear the screen at startup
}

void loop() {
    dma_display->clearScreen(); // Clear the display at the start of the loop

    // Draw RGB vertical lines across the entire width of the panel
    for (int x = 0; x < PANEL_RES_X; x++) {
        uint32_t color;

        // Repeat the RGB pattern
        if (x % 3 == 0) {
            color = 0xFF0000; // Red
        } else if (x % 3 == 1) {
            color = 0x00FF00; // Green
        } else {
            color = 0x0000FF; // Blue
        }

        drawVerticalLine(x, color); // Draw the line
    }

    delay(5000); // Delay to observe the pattern
}

// **Helper Function: Draw Vertical Line**
void drawVerticalLine(int x, uint32_t color) {
    for (int y = 0; y < PANEL_RES_Y; y++) { // Loop through all rows
        dma_display->drawPixelRGB888(x, y, (color >> 16) & 0xFF, // Red
                                     (color >> 8) & 0xFF,       // Green
                                     color & 0xFF);            // Blue
    }
}

@board707
Copy link
Contributor

board707 commented Jan 7, 2025

new ones are 74hc245kaj

No, it is neither an driver nor line switch. It's just a buffer. It presents on most panels.

Look on the panel for another chips - you should able to found a two another ones.

@mrcodetastic mrcodetastic added the panel specific issue A HUB75 panel that isn't supported out-of-the-box. Fiddling required. Not a DMA library issue. label Jan 11, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
panel specific issue A HUB75 panel that isn't supported out-of-the-box. Fiddling required. Not a DMA library issue.
Projects
None yet
Development

No branches or pull requests

3 participants