Intermittant issue with Metro M4 Airlift Lyte and Adafruit 8

Please tell us which board you are using.
For CircuitPython issues, ask in the Adafruit CircuitPython forum.

Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.
Locked
User avatar
Blazes946
 
Posts: 7
Joined: Sun Nov 14, 2021 7:06 am

Intermittant issue with Metro M4 Airlift Lyte and Adafruit 8

Post by Blazes946 »

Hi there!

I've been having this problem since buying the products late 2021. Essentially, the lighting up of the matrices is extremely flaky. All connections seem good (have tested each with a multimeter's continuity function), the board seems to be working (LED blink example works each time I test it), and all LED matrices and their backpacks successfully turn on...but only when they feel like it.

What happens is that I'll plug the header pins into the board via jumper cables (have tested with multiple sets, same issue), and then plug the board into the computer via USB to power it. Green LED comes on, as does the yellow "RX" LED. And then nothing happens for awhile. Sometimes, (I'd say maybe 20% of the time), it'll light up properly, but it takes literal minutes to do so. Yellow RX light goes off at this time. This is usually the case with just one matrix plugged in.

The usual case is that it'll just hang like this seemingly indefinitely. At least 10 minutes at my last test. Sometimes, I'd say over 50% of the time, it'll magically work if I take the VCC to 5v jumper cable out, wait a second, then plug it back in. This will fix it if single or multiple LED backpacks are attached. Sometimes, this fix only works if I take the cable out, hit reset, wait about 10 seconds, then plug it back in.

I've tested this with known good code (the example code on the backpack tutorial article), same issue.

In short, it works, but it's flaky as heck and I can't pin down if my cables are just ALL bad, there's a loose connection somewhere that somehow fooled my multimeter, or if I'm just seriously impatient and it really does take a long time to finish up and light up the LEDs.

To fully elaborate on the specs, It's a Metro M4 Airlift Lite. Bootloader at version 3.13. Using Arduino IDE, latest version. All libraries updated this morning to most recent stable version. LEDs are Adafruit bought on either an 8x8 or 8x16 backpack, again Adafruit bought. Jumper cables are admittedly a bit cheap but tested with multimeter and used very gently each time.

Below is the example code I'm using as of this writing just to triple check each matrix is working (as they're all now installed pending wiring). Apologies for the odd matrix names, it's for a costume. Uploaded is three pictures. Close up of the board, close up of the backpack, and zoomed out a bit to show the whole shebang.

EDIT: While I was writing this, the LED matrix shown in the photos turned on. I had a stopwatch going, it took about 3 minutes. I mention this as the LED blink example loads, completes and runs in under a second.

Code: Select all

#include <Adafruit_GFX.h>
#include "Adafruit_LEDBackpack.h"
#include <Wire.h>

Adafruit_8x8matrix NoseL = Adafruit_8x8matrix();
Adafruit_8x8matrix NoseR = Adafruit_8x8matrix();
Adafruit_8x16matrix EyeL = Adafruit_8x16matrix();
Adafruit_8x16matrix EyeR = Adafruit_8x16matrix();
Adafruit_8x16matrix MawL1 = Adafruit_8x16matrix();
Adafruit_8x16matrix MawL2 = Adafruit_8x16matrix();
Adafruit_8x16matrix MawR1 = Adafruit_8x16matrix();
Adafruit_8x16matrix MawR2 = Adafruit_8x16matrix();

void setup() {
NoseL.begin (0x71);
NoseR.begin (0x70);
EyeL.begin (0x72);
EyeR.begin (0x73);
MawL1.begin (0x74);
MawL2.begin (0x75);
MawR1.begin (0x76);
MawR2.begin (0x77);
}

void loop() {
  // put your main code here, to run repeatedly:
NoseL.drawRect(0, 0, 8, 8, HIGH);
NoseR.drawRect(0, 0, 8, 8, HIGH);
EyeL.drawRect (0, 0, 8, 16, HIGH);
EyeR.drawRect (0, 0, 8, 16, HIGH);
MawL1.drawRect (0, 0, 8, 16, HIGH);
MawL2.drawRect (0, 0, 8, 16, HIGH);
MawR1.drawRect (0, 0, 8, 16, HIGH);
MawR2.drawRect (0, 0, 8, 16, HIGH);
NoseL.writeDisplay();
NoseR.writeDisplay();
EyeL.writeDisplay();
EyeR.writeDisplay();
MawL1.writeDisplay();
MawL2.writeDisplay();
MawR1.writeDisplay();
MawR2.writeDisplay();
}
Attachments
photo_2022-01-10_07-24-21.jpg
photo_2022-01-10_07-24-21.jpg (113.63 KiB) Viewed 199 times
photo_2022-01-10_07-24-18.jpg
photo_2022-01-10_07-24-18.jpg (116.33 KiB) Viewed 199 times
photo_2022-01-10_07-24-11.jpg
photo_2022-01-10_07-24-11.jpg (90.03 KiB) Viewed 199 times

User avatar
dastels
 
Posts: 15608
Joined: Tue Oct 20, 2015 3:22 pm

Re: Intermittant issue with Metro M4 Airlift Lyte and Adafru

Post by dastels »

The first thing I look at is the soldering. It looks ok though I see some blobby looking joints that could be an intermittent problem.

Your code uses 8 matricies. In the photo you only have one connected? Each begin call tries to interact with the specific I2C device. there could be some retry-timeout logic involved that is causing the delay. What happens if you have the one matrix connected and have the code create and use just that one?

Dave

User avatar
Blazes946
 
Posts: 7
Joined: Sun Nov 14, 2021 7:06 am

Re: Intermittant issue with Metro M4 Airlift Lyte and Adafru

Post by Blazes946 »

dastels wrote:The first thing I look at is the soldering. It looks ok though I see some blobby looking joints that could be an intermittent problem.

Your code uses 8 matricies. In the photo you only have one connected? Each begin call tries to interact with the specific I2C device. there could be some retry-timeout logic involved that is causing the delay. What happens if you have the one matrix connected and have the code create and use just that one?

Dave
Hi there! Sorry for the delayed reply (night shift unfortunately).

I tried several times with just the one and having the code ONLY do that one (see below for the full code). No difference whatsoever. Once it lit up normally after about 30 seconds. A couple times it only lit up after hitting reset and waiting a minute. Just now it took about 45 seconds after plugging it all in and then hitting reset. So maybe it seems a bit better? It still seems like the board is hanging or waiting for something when I plug it in when it's hooked into a matrix.

This is just me thinking out loud (am not remotely an engineer or even similar) but is it maybe trying to request info from the matrix itself?

This is the code for just one matrix:

Code: Select all

#include <Adafruit_GFX.h>
#include "Adafruit_LEDBackpack.h"
#include <Wire.h>
Adafruit_8x16matrix MawL2 = Adafruit_8x16matrix();
void setup() {
MawL2.begin (0x75);

}

void loop() {
  // put your main code here, to run repeatedly:
MawL2.drawRect (0, 0, 8, 16, HIGH);
MawL2.writeDisplay();
}

User avatar
dastels
 
Posts: 15608
Joined: Tue Oct 20, 2015 3:22 pm

Re: Intermittant issue with Metro M4 Airlift Lyte and Adafru

Post by dastels »

It still seems like the board is hanging or waiting for something when I plug it in when it's hooked into a matrix
Can you explain this a bit further?

Dave

User avatar
Blazes946
 
Posts: 7
Joined: Sun Nov 14, 2021 7:06 am

Re: Intermittant issue with Metro M4 Airlift Lyte and Adafru

Post by Blazes946 »

dastels wrote:
It still seems like the board is hanging or waiting for something when I plug it in when it's hooked into a matrix
Can you explain this a bit further?

Dave
Sure!
Basically, if I plug it in with nothing connected, it'll start up, the Yellow RX light and the red L light light up, then instantly vanish. If I have other code installed, such as the blink LED example, it'll just go, within seconds.
If the matrix is connected, the yellow RX light stays on, which IIRC, means it's receiving via USB, but I'm not sending anything to it. It will do so even if I'm not powering it via USB. I don't have anything diagnostic I can use unfortunately, it's just a gut feeling.

My plan currently is to re-wire everything together with better soldering and hook it up with the real code and see how it works (first batch of connecting wires fell apart, multiple cold joints, the works).

Not sure what else to do at this point beyond that. Beyond getting a new board and trying that perhaps?

User avatar
dastels
 
Posts: 15608
Joined: Tue Oct 20, 2015 3:22 pm

Re: Intermittant issue with Metro M4 Airlift Lyte and Adafru

Post by dastels »

Redoing the connections and making sure the solder joints are good is a good plan.

Dave

User avatar
Blazes946
 
Posts: 7
Joined: Sun Nov 14, 2021 7:06 am

Re: Intermittant issue with Metro M4 Airlift Lyte and Adafru

Post by Blazes946 »

dastels wrote:Redoing the connections and making sure the solder joints are good is a good plan.

Dave
Sounds good my dude! Will report back.

Side question: Is there any way to properly thank you for all the help?

User avatar
dastels
 
Posts: 15608
Joined: Tue Oct 20, 2015 3:22 pm

Re: Intermittant issue with Metro M4 Airlift Lyte and Adafru

Post by dastels »

It's always worth revisiting the soldering. I've found that if something should work and doesn't, there's a good chance the soldering is not 1-% somewhere even if it all looks good. So retouching the soldering is my first action.

And this is just something I do, so no worries.

Dave

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

Return to “Metro, Metro Express, and Grand Central Boards”