0

ESP32, 64x32 RGB Matrix row 1 dups on row 3
Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.

ESP32, 64x32 RGB Matrix row 1 dups on row 3

by tommynar on Fri Sep 06, 2019 7:02 am

I'm using an ESP32 Dev Board with the P3RGB64x32MatrixPanel library on GitHub. I've wired up quite a few of them and suddenly a new proto board is causing duplicate rows to be displayed. As if one row of text overlays the next row. That is, font is 8 pixels high=4 rows of text. When writing text row 1, it duplicates on text row 3; writing text row 2, duplicates on text row 4 (I will include a photo later). I've looked at all the connections (solder bridges), thinking I've shorted "A" and "C" or something but there are no faults. I've tried 2 different RGB Matrix displays and it does the same thing on both. I go back to another prototype board and both displays work fine (same software uploaded to ESP). I've changed ribbon cables, no affect.

The ONLY difference between proto board A (which works) and proto board B (which doesn't) is that board A is powered by a (Adafruit) 5V 2A supply and board B is powered by a 3A 12V supply with a 5V regulator (EzSbc 5v/3A 7805 replacement). I checked the voltages and they are stable at 5.01 to 5.02 when the display is active. I checked the current draw and it never exceeds 0.9 amps.

It is obviously a hardware issue, but I don't see any wiring mistakes.

Anyone have an idea where to look ?

Thanks
Tom

tommynar
 
Posts: 7
Joined: Sat Jan 19, 2019 1:22 am

Re: ESP32, 64x32 RGB Matrix row 1 dups on row 3

by adafruit_support_mike on Mon Sep 09, 2019 1:21 am

It sounds like you're getting signal coupling on the address lines.

That can happen without any kind of DC short circuit between the lines. If the lines that carry the signals are close to each other for more than a couple of inches, you can get capacitive or inductive coupling.

adafruit_support_mike
 
Posts: 58798
Joined: Thu Feb 11, 2010 2:51 pm

Re: ESP32, 64x32 RGB Matrix row 1 dups on row 3

by tommynar on Mon Sep 09, 2019 4:32 am

So the answer is to make as short of cables as possible ? Is there a pattern I should try: run straight parallel to each other; run next to a ground, run across from each other ? Looking at the Mega/M4 shield, the lines seem to be running straight, but they are short. Since the use of these displays on an Arduino are limited, it is because of the rate or frequency of the signals, correct? That's why I searched for using an ESP32, since it is much faster. I'll have to go back and look at all my working circuits and see if I see a pattern to how I ran those wires.

Thanks for the reply.

Tom

tommynar
 
Posts: 7
Joined: Sat Jan 19, 2019 1:22 am

Re: ESP32, 64x32 RGB Matrix row 1 dups on row 3

by tommynar on Mon Sep 09, 2019 4:46 am

Here is the test code I'm running. The "true" sketch is a WiFi NTP clock with a list of calendar events (birthdays, etc.) displayed on the last line of the display-scrolling right to left:

#include <Adafruit_GFX.h>
#include <P3RGB64x32MatrixPanel.h>

P3RGB64x32MatrixPanel matrix;

void setup() {
Serial.begin(115200);
matrix.begin();
}

void loop() {
matrix.fillScreen(0);
matrix.swapBuffer();
delay(1000);
matrix.setCursor(0, 0);
matrix.setTextColor(matrix.color444(15, 15, 15));
matrix.print("11111111");
matrix.swapBuffer(); delay(1000);
matrix.setCursor(16, 8);
matrix.setTextColor(matrix.color444(6, 15, 6));
matrix.print("22222222");
matrix.swapBuffer(); delay(1000);
matrix.setCursor(32, 16);
matrix.setTextColor(matrix.color444(15, 15, 15));
matrix.print("3");
matrix.swapBuffer(); delay(1000);
matrix.setCursor(48, 24);
matrix.setTextColor(matrix.color444(6, 15, 6));
matrix.print("4");
matrix.swapBuffer();
delay(10000);
}
Attachments
Board2.jpg
This is board #2, it's symptom is that the bottom 16 rows won't display GREEN.
Board2.jpg (352.29 KiB) Viewed 76 times
Board1.jpg
Layout of board #1
Board1.jpg (355.71 KiB) Viewed 76 times
displayIssue.jpg
Here is the symptom.
displayIssue.jpg (310.67 KiB) Viewed 76 times

tommynar
 
Posts: 7
Joined: Sat Jan 19, 2019 1:22 am

Re: ESP32, 64x32 RGB Matrix row 1 dups on row 3

by adafruit_support_mike on Mon Sep 09, 2019 11:46 pm

As a sanity check, did you get the LED matrix from us?

There are no standards for matrix connections, and the output you're seeing looks like a couple of the signals have been swapped.

adafruit_support_mike
 
Posts: 58798
Joined: Thu Feb 11, 2010 2:51 pm

Re: ESP32, 64x32 RGB Matrix row 1 dups on row 3

by tommynar on Thu Sep 12, 2019 1:42 am

Not this particular one, but yes. It does the same on the Adafruit unit as well. I tried my (Chinese) P5 and then an Adafruit P4 unit. I fried all my other Adafruits with 12V instead of 5V. I have 2 P5s in production and 1 P3, both Adafruit.

Update to my circuit. I shortened all the wires and tried some rerouting so they didn't run so parallel. The symptoms have changed. Now it does not duplicate, but there is distortion in the upper left corner (lots of random pixels lighting up). So I'm sure it is a wire run issue, just not sure how to fix.

I reconnected the display to my M4 Grand Central setup and it displays properly.

I've just purchased an inexpensive CNC machine that can make PCBs. I used to do the old ferrate (sic) liquid light exposure technique (Radio Shack???), but I think the CNC stuff will be easier and less messy (I.E., no toxic chemical to recycle). So I am going to try that solution. I will keep this thread active with my results.

Thanks
Tom,

tommynar
 
Posts: 7
Joined: Sat Jan 19, 2019 1:22 am

Re: ESP32, 64x32 RGB Matrix row 1 dups on row 3

by adafruit_support_mike on Thu Sep 12, 2019 2:41 am

Try running all the signals through twisted-pair phone wire, with one wire in each pair connected to GND.

The twist is designed to eliminate inductive coupling between wires from different pairs, and having a GND line running in the same pair will strongly reduce capacitive coupling between pairs.

If you still want to rout a PCB (which is a good idea), put traces connected to GND between the signal traces. They're called 'guard traces', and they prevent capacitive coupling between the signal traces.

adafruit_support_mike
 
Posts: 58798
Joined: Thu Feb 11, 2010 2:51 pm

Re: ESP32, 64x32 RGB Matrix row 1 dups on row 3

by tommynar on Fri Sep 13, 2019 8:50 pm

Something else just occurred to me: your Raspberry Pi RGB Hat contains level converters since the Raspberry is 3.3 logic. Could the same be occurring with the ESP-not being able to drive stable signals for all those active pins ?

Thanks
Tom

tommynar
 
Posts: 7
Joined: Sat Jan 19, 2019 1:22 am

Re: ESP32, 64x32 RGB Matrix row 1 dups on row 3

by adafruit_support_mike on Sun Sep 15, 2019 1:00 am

Hmm.. that shouldn't be a problem in general, but the ESP8266 and ESP32 have built-in operating systems that keep all the radios running.

The OS suspends the code you've written periodically to give the radio-management firmware time to do its thing, and we've seen that cause timing problems for people in the past. There's a known problem trying to control more than about 60 NeoPixels with an ESP32, for instance.

RGB LED matrices use clocked signals, so a short pause shouldn't cause that much trouble, but there may be some kind of edge condition where a bit flips at the wrong time. You'd have to check that out with a logic analyzer.

adafruit_support_mike
 
Posts: 58798
Joined: Thu Feb 11, 2010 2:51 pm

Please be positive and constructive with your questions and comments.


cron