Feather ESP32-S3 4flash 2psram - RGB Matrix Featherwing

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.
Post Reply
User avatar
Rstwo
 
Posts: 7
Joined: Wed Nov 16, 2022 1:42 am

Feather ESP32-S3 4flash 2psram - RGB Matrix Featherwing

Post by Rstwo »

Feather ESP32-S3 4flash 2psram + RGB Matrix Featherwing & 32x64 rgb matrix...

I'm new to Arduino IDE, very rusty on C++... Trying to follow the adafruit guide for the RGB Matrix Featherwing. I've tried the Protomatter "simple" example scetch but I got nothing. I commented out all the board specific stuff at the top and just added the appropriate PIN definitions for and ESP32-S3... then I got a lot of light and garbage output on the matrix.

I can see in the protomatter libraries there are a lot of "arch" definitions. I can pick out that it's looking to identify a Feather ESP32-S3 with 8 GB flash and no-psram... but I don't see a definition specific to the ESP32-S3 with 4 GB flash and 2 GB psram.

Is the problem that the Protomatter library doesn't support this specific feather, maybe? Any hints on what I need to do to get this particular combination working with the protomatter library?

User avatar
adafruit_support_mike
 
Posts: 65547
Joined: Thu Feb 11, 2010 2:51 pm

Re: Feather ESP32-S3 4flash 2psram - RGB Matrix Featherwing

Post by adafruit_support_mike »

Could you post a link to the code you're using please?

User avatar
Rstwo
 
Posts: 7
Joined: Wed Nov 16, 2022 1:42 am

Re: Feather ESP32-S3 4flash 2psram - RGB Matrix Featherwing

Post by Rstwo »

I am using the Adafruit Protomatter RGB Matrix library in the Arduino IDE as following this guide.

https://learn.adafruit.com/adafruit-pro ... no-library

I've tried both the "simple" and the "doublebuffer-scrolltext" examples that come with the library, neither work.

I'm using the version of the board designed for "SAMD21 M0, SAMD51 M4, RP2040 and ESP32-S3", I assembed it with the 2x10 header block on the bottom of the feather wing and plugged into the RGB Matrix's Data_In port as described on this page: https://learn.adafruit.com/rgb-matrix-featherwing

I traced all the solder joints and confirmed continuity between the expected pins as detailed here: https://learn.adafruit.com/rgb-matrix-f ... ng/pinouts

When the sample code failed to display anything I commented out the "#if defined" section entirely and added the following from the FeatherWing guide:

Code: Select all

// Use FeatherWing pinout
uint8_t rgbPins[]  = {6, 5, 9, 11, 10, 12};
uint8_t addrPins[] = {A5, A4, A3, A2};
uint8_t clockPin   = 13;
uint8_t latchPin   = 0;
uint8_t oePin      = 1;
Still no output on the RGB Matrix, but I am getting FPS reports on the Serial out.

I changed these two lines:

Code: Select all

uint8_t latchPin   = RX;
uint8_t oePin      = TX;
Now the whole RGB Matrix lights up and flickers but the output is garbage.

User avatar
Rstwo
 
Posts: 7
Joined: Wed Nov 16, 2022 1:42 am

Re: Feather ESP32-S3 4flash 2psram - RGB Matrix Featherwing

Post by Rstwo »

I have version 1.5.1 of the Protomatter library installed

This was the part of the declarations that caught my attention, there is no section in the example for the version of Feather ESP32-S3 that I have with PSRAM on board. My USB VID and PID are different when look at the board info in Arduino IDE.

Code: Select all

#elif USB_VID == 0x239A && USB_PID == 0x8113 // Feather ESP32-S3 No PSRAM
  // M0/M4/RP2040 Matrix FeatherWing compatible:
  uint8_t rgbPins[]  = {6, 5, 9, 11, 10, 12};
  uint8_t addrPins[] = {A5, A4, A3, A2};
  uint8_t clockPin   = 13; // Must be on same port as rgbPins
  uint8_t latchPin   = RX;
  uint8_t oePin      = TX;
Forcing those values create output on the matrix but its garbage. I'm thinking my particular board isn't getting recognized elsewhere in the library as there are comments referencing using different timing methods specifically for ESP32.

Here is the GitHub repo for the ProtoMatter library: https://github.com/adafruit/Adafruit_Protomatter

User avatar
adafruit_support_mike
 
Posts: 65547
Joined: Thu Feb 11, 2010 2:51 pm

Re: Feather ESP32-S3 4flash 2psram - RGB Matrix Featherwing

Post by adafruit_support_mike »

Thank you for the links.

The PSRAM and Flash should be irrelevant to the Protomatter code, but I'll check with the developers to see if there are any known quirks.

User avatar
pburgess
 
Posts: 4120
Joined: Sun Oct 26, 2008 2:29 am

Re: Feather ESP32-S3 4flash 2psram - RGB Matrix Featherwing

Post by pburgess »

Can confirm this combo has worked in the past, but just wired it up and it does not work presently (not crashing, but just garbage display).

It’s late here, but in the morning I’ll get out the scope and see what’s up.

User avatar
pburgess
 
Posts: 4120
Joined: Sun Oct 26, 2008 2:29 am

Re: Feather ESP32-S3 4flash 2psram - RGB Matrix Featherwing

Post by pburgess »

The good news: just committed & released Adafruit_Protomatter 1.5.2 and it should percolate through to the Arduino Library Manager within a couple hours if it hasn’t already. This should fix the garbled matrix problem on ESP32-S3 with PSRAM.

The not-so-good news: might still get some flickering in some situations. The RGB Matrix FeatherWing does not have 5V logic level shifting, and some RGB LED matrices are more tolerant of 3.3V logic than others. One I’m testing with here is rock steady, another has some flicker.

I’ll bring up the level-shifting issue for a possible future version of the ’Wing, but in the interim and if you experience some flicker with the new code…one kludgey workaround, if you’ve got other 5V power supplies, is to swap out and see if the image stabilizes. The actual +V out will vary up or down by a few percent among supplies, and if one happens to be more toward the low end than the high end, 3.3V logic will suffice.

User avatar
Rstwo
 
Posts: 7
Joined: Wed Nov 16, 2022 1:42 am

Re: Feather ESP32-S3 4flash 2psram - RGB Matrix Featherwing

Post by Rstwo »

Success!

Your information about the 5V logic shifting issue was the key. Lucky for me, I'm powering this project with an 18A MeanWell power supply (planning to run 3 matrices for 32x192 total) that I can adjust the voltage on. It became stable when I turned the supplied voltage down to 4.75V.

The examples still do not work "as is", in fact the board won't even open a serial port and the neopixel and built-in led blink steady. But simply replacing the if..elsif logic at the top with the following does work:

Code: Select all

  uint8_t rgbPins[]  = {6, 5, 9, 11, 10, 12};
  uint8_t addrPins[] = {A5, A4, A3, A2};
  uint8_t clockPin   = 13; // Must be on same port as rgbPins
  uint8_t latchPin   = RX;
  uint8_t oePin      = TX;
Thank you for the help on this!

User avatar
Rstwo
 
Posts: 7
Joined: Wed Nov 16, 2022 1:42 am

Re: Feather ESP32-S3 4flash 2psram - RGB Matrix Featherwing

Post by Rstwo »

HOWEVER, it is not stable when I add the other two panels with any voltage. All garbage, no usable output achieved.

So, this is an issue with the Matrix Featherwing design? I've got quite an investment into this project, what's the fix?

User avatar
adafruit_support_mike
 
Posts: 65547
Joined: Thu Feb 11, 2010 2:51 pm

Re: Feather ESP32-S3 4flash 2psram - RGB Matrix Featherwing

Post by adafruit_support_mike »

At this point it sounds more like a signal issue than a voltage issue.

5V-CMOS devices typically accept anything higher than 0.7VCC as a HIGH signal. For a 5V supply that comes out as 3.5V. Most devices have some padding below that level, and can read 3.3V signals without any trouble.

In this case, it sounds like the voltage difference is a problem. The correct solution is to run the signals through a 3v3-to-5V logic gate like the 74AHCT125:

https://www.adafruit.com/product/1787

or any buffer from the HCT or AHCT logic families. The 5V-TTL protocol's input side uses exactly the same voltage thresholds as the 3v3-CMOS protocol, so those devices work as glue logic between 3.3V and 5V systems.

PhilB's suggestion to try mulitple power supplies involved the hope of finding one whose output voltage is low enough that the RGB matrix logic will accept 3.3V signals. A related option is to run power to the matrix through a high current Schottky diode. Dropping the matrix supply voltage to 4.5V puts 3.3V signals back in the acceptable input range.

User avatar
Rstwo
 
Posts: 7
Joined: Wed Nov 16, 2022 1:42 am

Re: Feather ESP32-S3 4flash 2psram - RGB Matrix Featherwing

Post by Rstwo »

Hmm... I was expecting to be a little more plug and play on the hardware end based on the guides and product descriptions.

Could I get a little help on how I would wire the 74AHCT125 with the Matrix FeatherWing to make it drive an Adafruit matrix correctly? It's a 16-pin connection so do I require two 74AHCT125s?

I'm not stuck on the ESP32-S3 Feather, either. I didn't like that the Matrix Portal sticks out past the edge of the panel when plugged directly to the board and I didn't want to hassel with coming up with a mounting option for the board and running a cable... however, if the Matrix Portal M4 handles the 5v logic shift then maybe that's my plug and play option?

Any suggestions?

User avatar
pburgess
 
Posts: 4120
Joined: Sun Oct 26, 2008 2:29 am

Re: Feather ESP32-S3 4flash 2psram - RGB Matrix Featherwing

Post by pburgess »

Watch for 1.5.3 in the Arduino Library Manager. This might clear things up even without the level shifter (no guarantee there, but worth a try). HOWEVER, for long matrix chains like that, you’ll need to dial back the number of bitplanes…6 will be too flickery. Try 5 or even 4.

MatrixPortal would address the level shifter part of the problem, but I can’t say for certain whether it’ll handle long chains any better than this.

Might want to consider Raspberry Pi if possible for this project. Though microcontrollers can generally handle a single matrix panel OK, it really is and probably will always be kind of a hack, and only gets hackier with longer chains.

User avatar
Rstwo
 
Posts: 7
Joined: Wed Nov 16, 2022 1:42 am

Re: Feather ESP32-S3 4flash 2psram - RGB Matrix Featherwing

Post by Rstwo »

Got it. I was wondering how much the chaining was really causing the issue. But when I went back to a single panel I'm still getting instability, this time I had to dial the PS up to 5.7V to get it 90% stable image.

I've got a couple Raspberry Pi's and a couple similar Rockchip based SBC... Thank you for that suggestion.

Really appreciate the support! Got to set this aside for the holiday but when I come back to it I'll look for the latest update on the library and I've got the SBC options on hand as well.

Happy Thanksgiving!

Post Reply
Please be positive and constructive with your questions and comments.

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