Matrix Portal M4 and 64x64 matrix split image

EL Wire/Tape/Panels, LEDs, pixels and strips, LCDs and TFTs, etc products from Adafruit

Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.
Locked
User avatar
luisf
 
Posts: 46
Joined: Sat Jan 04, 2014 8:40 am

Matrix Portal M4 and 64x64 matrix split image

Post by luisf »

Hello,

I recently purchased a Matrix Portal M4 and a 64x64 matrix and I am using Arduino IDE. I seem to be having the same problem as other users where the matrix is divided in 4 horizontal bands, with two of them not displaying anything. You can see something similar in
this post.

I've soldered the E line to pin 16, tested the simple, tiled and pixeldust examples from Adafruit Protomatter library. Tried different initializations of the matrix but i can never get those in between leds to turn on.

Here is how i am initializing the matrix, what am i doing wrong?

Code: Select all

#include <Adafruit_Protomatter.h>

uint8_t rgbPins[] = { 7, 8, 9, 10, 11, 12 };
uint8_t addrPins[] = { 17, 18, 19, 20, 21 };
uint8_t clockPin = 14;
uint8_t latchPin = 15;
uint8_t oePin = 16;

Adafruit_Protomatter matrix(
  64,         
  1,           
  1, 
  rgbPins,  
  5, 
  addrPins, 
  clockPin, latchPin, oePin, 
  false
);

void setup() {
  ProtomatterStatus status = matrix.begin();
}

void loop() {
  matrix.drawLine(0, 0, matrix.width() - 1, matrix.height() - 1,
    matrix.color565(255, 0, 0)); // Red line

  matrix.drawLine(matrix.width() - 1, 0, 0, matrix.height() - 1,
    matrix.color565(0, 0, 255)); // Blue line

  int radius = min(matrix.width(), matrix.height()) / 2;
  matrix.drawCircle(matrix.width() / 2, matrix.height() / 2, radius,
    matrix.color565(0, 255, 0)); // Green circle

  matrix.show(); 
}

User avatar
mikeysklar
 
Posts: 13824
Joined: Mon Aug 01, 2016 8:10 pm

Re: Matrix Portal M4 and 64x64 matrix split image

Post by mikeysklar »

It looks like you are having the same issue as the other forum post you linked to. They were using CircuitPython so slightly different solution.

The example code you are running is also meant for a 64x32 panel.
This example is written for a 64x32 matrix but can be adapted to others.
https://github.com/adafruit/Adafruit_Pr ... simple.ino

Try changing the address pin in initialization from:

Code: Select all

Adafruit_Protomatter matrix(
  64,          // Width of matrix (or matrix chain) in pixels
  4,           // Bit depth, 1-6
  1, rgbPins,  // # of matrix chains, array of 6 RGB pins for each
  4, addrPins, // # of address pins (height is inferred), array of pins
  clockPin, latchPin, oePin, // Other matrix control pins
  false);      // No double-buffering here (see "doublebuffer" example)
to:

Code: Select all

Adafruit_Protomatter matrix(
  64,          // Width of matrix (or matrix chain) in pixels
  4,           // Bit depth, 1-6
  1, rgbPins,  // # of matrix chains, array of 6 RGB pins for each
  5, addrPins, // # of address pins (height is inferred), array of pins
  clockPin, latchPin, oePin, // Other matrix control pins
  false);      // No double-buffering here (see "doublebuffer" example)
Fifth argument is the number of "address" (aka row select) pins,
from which the matrix height is inferred. "4" here means four
address lines, matrix height is then (2 x 2^4) = 32 pixels.
16-pixel-tall matrices will have 3 pins here, 32-pixel will have
4, 64-pixel will have 5. Sixth argument is a uint8_t array
listing those pin numbers. No PORT constraints here.

User avatar
luisf
 
Posts: 46
Joined: Sat Jan 04, 2014 8:40 am

Re: Matrix Portal M4 and 64x64 matrix split image

Post by luisf »

mikeysklar wrote: Mon Nov 21, 2022 1:54 pm
Try changing the address pin in initialization from:
to:

Code: Select all

Adafruit_Protomatter matrix(
  64,          // Width of matrix (or matrix chain) in pixels
  4,           // Bit depth, 1-6
  1, rgbPins,  // # of matrix chains, array of 6 RGB pins for each
  5, addrPins, // # of address pins (height is inferred), array of pins
  clockPin, latchPin, oePin, // Other matrix control pins
  false);      // No double-buffering here (see "doublebuffer" example)
The example code i posted already used 5 address pins. Change this number does produce different results.
I have just tried this code with a Matrix Portal with the E pin soldered to 16 and another without any soldering, both give the same result.

I just can't seem to find an example that works with a 64x64, seems almost like a limitation no matter where i look... don't get it.

User avatar
mikeysklar
 
Posts: 13824
Joined: Mon Aug 01, 2016 8:10 pm

Re: Matrix Portal M4 and 64x64 matrix split image

Post by mikeysklar »

Can you tell the chipset that your 64x64 RGB Matrix is using? There should be multiple on the board, locate near the HUB75 connector. Since there are few place this comes up I wanted confirm that it is not a FM6126A based model which Protomatter does not support.

User avatar
luisf
 
Posts: 46
Joined: Sat Jan 04, 2014 8:40 am

Re: Matrix Portal M4 and 64x64 matrix split image

Post by luisf »

mikeysklar wrote: Mon Nov 21, 2022 8:09 pm Can you tell the chipset that your 64x64 RGB Matrix is using? There should be multiple on the board, locate near the HUB75 connector.
I didn't find any FM6126A on the matrix or the box, but i am not sure if i am looking in the right place. You mean this chipset name is written on a chip somewhere close to the connector or printed on the plastic? I took some pictures, hopefully its readable enough: https://www.dropbox.com/home/schuur%20c ... x64%20pics

Here is an overview:
Image

User avatar
mikeysklar
 
Posts: 13824
Joined: Mon Aug 01, 2016 8:10 pm

Re: Matrix Portal M4 and 64x64 matrix split image

Post by mikeysklar »

This photo should help with chip location.
Screenshot from 2022-11-23 06-55-36.png
Screenshot from 2022-11-23 06-55-36.png (741.12 KiB) Viewed 207 times
You can clearly see the FM6126A printed on these chips.

I was not able to access your Drop box photos (directory does not exist is the error). You can post them direct to the forums. 800x600 works well.

If you do not have the FM6126A chip the next step is to open an issue with the github repo as the example code might need a modification to work correctly with the 64x64 panel.

Another option to test would be to briefly load CircuitPython to test that library and see if the example code correctly as that would be a useful data point.

User avatar
luisf
 
Posts: 46
Joined: Sat Jan 04, 2014 8:40 am

Re: Matrix Portal M4 and 64x64 matrix split image

Post by luisf »

mikeysklar wrote: Wed Nov 23, 2022 10:58 am
If you do not have the FM6126A chip the next step is to open an issue with the github repo as the example code might need a modification to work correctly with the 64x64 panel.

Another option to test would be to briefly load CircuitPython to test that library and see if the example code correctly as that would be a useful data point.
It's hard to read right now but i don't think it uses the FM6126A chip, didn't see any. I see lots of RUC7258D and what i think is MN245B.
I'm now trying CircuitPython but the 64x64 example in this page also doesn't work. I tried combining it with the line scroller. But i'm still new to CircuitPython so i'm searching for any errors on my part.

In the meantime how can i solve the problem on the Arduino side? who should i contact that could give me some working for a 64x64 matrix?

User avatar
mikeysklar
 
Posts: 13824
Joined: Mon Aug 01, 2016 8:10 pm

Re: Matrix Portal M4 and 64x64 matrix split image

Post by mikeysklar »

Open an issue with the Adafruit Protomatter github repo. The stock example modified to using 5-bit addressing is not working with the Adafruit 64x64 panel (insert model#).

https://github.com/adafruit/Adafruit_Protomatter/issues

Lets confirm what about the CircuitPython setup is not working. Can you paste the code you are running along with the CircuitPython version you have installed?

Locked
Please be positive and constructive with your questions and comments.

Return to “Glowy things (LCD, LED, TFT, EL) purchased at Adafruit”