board707 / DMD_STM32

STM32Duino library for RGB, Monochrome and Two-color led matrix panels
GNU General Public License v3.0
65 stars 21 forks source link

DISPLAYS_ACROSS >3 not working #131

Open ravigyanvihar opened 3 days ago

ravigyanvihar commented 3 days ago

sir i am trying to make a panel with 4x5 with 80X40 led p6 matrix on raspberry pi pico this is my settings

define DISPLAYS_ACROSS 4

define DISPLAYS_DOWN 5

DMD_RGB_SHIFTREG_ABC<RGB80x40plainS20, COLOR_1BITS> dmd(mux_list, DMD_PIN_nOE, DMD_PIN_SCLK, custom_rgbpins, DISPLAYS_ACROSS, DISPLAYS_DOWN, ENABLE_DUAL_BUFFER);

but when I set DISPLAYS_ACROSS 3, it works but if I set DISPLAYS_ACROSS 4 the logic stops working.

can you please help me with this

board707 commented 2 days ago

Hi I think the problem is not DISPLAYS_ACROSS, but the total display size. The maximum screen size tested with Raspberry Pico is 16 panels 64x32. You are trying to run 20 panels 80x40 - that's exactly twice as much. Try to set, say, DISPLAYS_DOWN 3 and test DISPLAYS_ACROSS 4

ravigyanvihar commented 2 days ago

HI i HAVE TESTED 24 80X40 DISPLAY ON ONE PICO. IN
DISPLAYS_ACROSS 3 DISPLAYS_down 8

BUT EVEN IF I SET DISPLAYS_ACROSS 4 DISPLAYS_DOWN 1 IT DOESNT WORK

also I am using COLOR_1BITS to save memory

board707 commented 2 days ago

Ok, thank you. Please clarify, what is your "DOESNT WORK" means exactly? Do you see anything on panels?

ravigyanvihar commented 2 days ago

//pico version 3.7.2

include "DMD_RGB.h"

include

define DISPLAYS_ACROSS 4

define DISPLAYS_DOWN 2

define ENABLE_DUAL_BUFFER false

define DMD_PIN_A 6

define DMD_PIN_B 7

define DMD_PIN_C 8

define DMD_PIN_D 9

define DMD_PIN_E 10

uint8_t mux_list[] = { DMD_PIN_A, DMD_PIN_B, DMD_PIN_C, DMD_PIN_D, DMD_PIN_E };

define DMD_PIN_nOE 15

define DMD_PIN_SCLK 12

uint8_t custom_rgbpins[] = { 11, 0, 1, 2, 3, 4, 5 };

DMD_RGB_SHIFTREG_ABC<RGB80x40plainS20, COLOR_1BITS> dmd(mux_list, DMD_PIN_nOE, DMD_PIN_SCLK, custom_rgbpins, DISPLAYS_ACROSS, DISPLAYS_DOWN, ENABLE_DUAL_BUFFER);

uint16_t red = dmd.Color888(255, 0, 0); uint16_t green = dmd.Color888(0, 255, 0); uint16_t blue = dmd.Color888(0, 0, 255); uint16_t yellow = dmd.Color888(255, 255, 0); uint16_t purple = dmd.Color888(255, 0, 255); uint16_t cyan = dmd.Color888(0, 255, 255); uint16_t white = dmd.Color888(255, 255, 255); uint16_t black = dmd.Color888(0, 0, 0); //DMD_Standard_Font Arial_F(Arial_14);

void main_display() { //clear the screen first

dmd.fillScreen(black);

//making all border //dmd.drawRect(x0,y0, w,h,color);h lin e (xstart,ystart,legth) dmd.drawRect(0, 0, dmd.width(), dmd.height(), white); dmd.drawPixel(1, 1, white); dmd.drawPixel(dmd.width() -2, 1, red); dmd.drawPixel(dmd.width() -2, dmd.height() - 2, green); dmd.drawPixel(1, dmd.height() - 2, blue);

//print after update // dmd.swapBuffers(true); }

void setup() { // put your setup code here, to run once: Serial1.setRX(17u); Serial1.setTX(16u); Serial1.begin(115200); //dmd.setConnectScheme(2); dmd.init(100); main_display(); pinMode(25, OUTPUT); }

void loop() { // put your main code here, to run repeatedly: digitalWrite(25, HIGH); delay(1000); digitalWrite(25, LOW);   delay(1000); }

it's is my code the code seems stuck . the led on pin 25 doesn't blink . and no display on the led matrix

board707 commented 2 days ago

I need make some tests. What the library version do you use?

ravigyanvihar commented 2 days ago

i am using 1.1.2

board707 commented 2 days ago

Thank you, I will investigate it

ravigyanvihar commented 21 hours ago

Sir , Have you got time to check the issue

board707 commented 17 hours ago

May be on weekend.