Adafruit IS31FL3741 13x9 PWM RGB LED Matrix

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
jimk123
 
Posts: 708
Joined: Sun Dec 26, 2010 7:04 pm

Adafruit IS31FL3741 13x9 PWM RGB LED Matrix

Post by jimk123 »

I just bought this product: Adafruit IS31FL3741 13x9 PWM RGB LED Matrix Driver - STEMMA QT / Qwiic PRODUCT ID: 5201

I am using the arduino ide 1.8.10, library manager to install version 2.0.0 of the Adafruit_IS31FL3731 and trying to run the sample code in Arduino\libraries\Adafruit_IS31FL3731_Library\examples\gfxdemo the gfxdemo folder.

I am using it with a UNO board that has a qwiic connector and it compiles ok but the serial output window says:

17:44:51.798 -> ISSI manual animation test
17:44:51.798 -> IS31 not found

here is a pic, no wiring per say, just using a qwiic cable
IMG_3080.jpg
IMG_3080.jpg (925.62 KiB) Viewed 249 times
thanks

User avatar
jimk123
 
Posts: 708
Joined: Sun Dec 26, 2010 7:04 pm

Re: Adafruit IS31FL3741 13x9 PWM RGB LED Matrix

Post by jimk123 »

As another test I tried a Adafruit QT PY (SAMD21) board and selected 'Adafruit QT PY (SAMD21)' as the board type and the port "COM5 Adafruit QT PY (SAMD21))". It compiled OK and seemed to load

Write 21500 bytes to flash (336 pages)

[===== ] 19% (64/336 pages)
[=========== ] 38% (128/336 pages)
[================= ] 57% (192/336 pages)
[====================== ] 76% (256/336 pages)
[============================ ] 95% (320/336 pages)
[==============================] 100% (336/336 pages)
done in 0.181 seconds

Verify 21500 bytes of flash with checksum.
Verify successful
done in 0.034 seconds
CPU reset.

but nothing shows up in the serial monitor window and the RGB board is dark.
thanks

User avatar
jimk123
 
Posts: 708
Joined: Sun Dec 26, 2010 7:04 pm

Re: Adafruit IS31FL3741 13x9 PWM RGB LED Matrix

Post by jimk123 »

I added a i2cScan function wondering maybe I need to specify the address on the matrix.begin() line and got some really strange output:

18:59:07.544 -> Scanning I2C devices...
18:59:07.544 -> Unknown error at address 0x01
18:59:07.544 -> I2C device found at address 0x3
18:59:09.544 -> I2C device found at address 0x5
18:59:11.554 -> I2C device found at address 0x7
18:59:13.563 -> I2C device found at address 0x9
18:59:15.556 -> I2C device found at address 0xB
18:59:17.551 -> I2C device found at address 0xD
18:59:19.550 -> I2C device found at address 0xF
18:59:21.532 -> I2C device found at address 0x11
18:59:23.534 -> I2C device found at address 0x13
18:59:25.568 -> I2C device found at address 0x15
18:59:27.524 -> I2C device found at address 0x17
18:59:29.527 -> I2C device found at address 0x19
18:59:31.539 -> I2C device found at address 0x1B
18:59:33.544 -> I2C device found at address 0x1D
18:59:35.560 -> I2C device found at address 0x1F
18:59:37.535 -> I2C device found at address 0x21
18:59:39.542 -> I2C device found at address 0x23
18:59:41.533 -> I2C device found at address 0x25
18:59:43.533 -> I2C device found at address 0x27
18:59:45.545 -> I2C device found at address 0x29
18:59:47.534 -> I2C device found at address 0x2B
18:59:49.547 -> I2C device found at address 0x2D
18:59:51.530 -> I2C device found at address 0x2F
18:59:53.538 -> I2C device found at address 0x31

Code: Select all


void scanI2C()
{
  byte error, address;
  int nDevices;
   
  
  Serial.println("Scanning I2C devices...");


 nDevices = 0;
 for (address = 1; address < 127; address++ )
  {
    // The i2c_scanner uses the return value of
    // the Write.endTransmisstion to see if
    // a device did acknowledge to the address.
    Wire.beginTransmission(address);
    error = Wire.endTransmission();

    if (error == 0)
    {
      Serial.print(F("I2C device found at address 0x"));
      Serial.println(address, HEX);
      nDevices++;
      
      delay(2000);
    }   
    else if (error == 4)
    {
      Serial.print("Unknown error at address 0x");
      if (address < 16)
        Serial.print("0");
      Serial.println(address, HEX);
    }
  }
}


User avatar
jimk123
 
Posts: 708
Joined: Sun Dec 26, 2010 7:04 pm

Re: Adafruit IS31FL3741 13x9 PWM RGB LED Matrix

Post by jimk123 »

looking at the back the of RGB matrix board it looks like the jumper is set for 0x30

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

Re: Adafruit IS31FL3741 13x9 PWM RGB LED Matrix

Post by adafruit_support_mike »

Try connecting power and SDA/SCL directly. The output from the I2C address scan looks like the SDA line is being held low.

User avatar
jimk123
 
Posts: 708
Joined: Sun Dec 26, 2010 7:04 pm

Re: Adafruit IS31FL3741 13x9 PWM RGB LED Matrix

Post by jimk123 »

using the UNO blackboard posted in the first pic I first used the qwiic/stemma connector on the RGB board and manually wired it to SDA (blue), SCL(yellow) GND and 3.3v on the blackboard, same results, Then I used the qwiic/stemma connector on the blackboard UNO and wired it to the pins on the RGB board, same result.

Then I found a adafruit huzzah esp32 and a feather wing oled stemma display and used that and a qwiic cable to the RGB and the output showed:
21:32:52.097 -> entry 0x400806a8
21:32:53.222 -> Scanning I2C devices...
21:32:53.222 -> I2C devices found: 0
21:32:53.222 -> ISSI manual animation test
21:32:53.222 -> IS31 not found

not sure what to make of the results.
thanks

User avatar
jimk123
 
Posts: 708
Joined: Sun Dec 26, 2010 7:04 pm

Re: Adafruit IS31FL3741 13x9 PWM RGB LED Matrix

Post by jimk123 »

fyi - on the blackboard I unplugged the RGB board, restarted the board and it still displays false devices, not sure why ?
7:00:17.328 -> Scanning I2C devices...
07:00:17.328 -> Unknown error at address 0x01
07:00:17.328 -> I2C device found at address 0x3
07:00:17.564 -> I2C device found at address 0x5
07:00:17.845 -> I2C device found at address 0x7
07:00:18.068 -> I2C device found at address 0x9
....

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

Re: Adafruit IS31FL3741 13x9 PWM RGB LED Matrix

Post by adafruit_support_mike »

Electrically that means the SDA pin is being held low somehow. I'm not familiar with that specific board, so I don't know if that's normal or not.

As a sanity check, can you get a working I2C connection to any device from that board?

User avatar
jimk123
 
Posts: 708
Joined: Sun Dec 26, 2010 7:04 pm

Re: Adafruit IS31FL3741 13x9 PWM RGB LED Matrix

Post by jimk123 »

I did some more testing with the adafruit ESP32 feather and the QT PY and got a little further so let's leave out the blackboard for now.

QT PY test
I got the QT PY code to run in the serial console (was missing while(!Serial); in setup)

19:37:58.915 -> Scanning I2C devices...
19:37:58.915 -> I2C devices found: 0
19:37:58.915 -> ISSI manual animation test
19:37:58.915 -> IS31 not found

after adding a wire.begin in setup and specify the address on the matrix.begin I see this which looks ok but the display is blank. I added a Serial.println("clear"); in the loop function and can see it in the serial monitor every few seconds so the code is looping ok I think, but the RGB board never lights up.

20:04:38.401 -> Setup
20:04:38.401 -> Scanning I2C devices...
20:04:38.401 -> I2C device found at address 0x30
20:04:38.651 -> I2C devices found: 1
20:04:38.651 -> ISSI manual animation test
20:04:38.698 -> IS31 Found!
20:04:38.698 -> clear

ESP32 test
using the adafruit esp32 feather with a Adafruit FeatherWing OLED (since it has a stemma connector)
This looks better, 0x30 is the RGB board and 0x3C is the OLED featherwing, it discovered the RGB board in the I2C scan but the matrix.begin() fails to start ?

19:45:52.387 -> Scanning I2C devices...
19:45:52.387 -> I2C device found at address 0x30
19:45:52.621 -> I2C device found at address 0x3C
19:45:52.903 -> I2C devices found: 2
19:45:52.903 -> ISSI manual animation test
19:45:52.903 -> IS31 not found

so I added 0x30 to the if (! matrix.begin(0x30)) { line and then got this for output

19:53:27.360 -> Scanning I2C devices...
19:53:27.407 -> I2C device found at address 0x30
19:53:27.643 -> I2C device found at address 0x3C
19:53:27.927 -> I2C devices found: 2
19:53:27.927 -> ISSI manual animation test
19:53:27.975 -> IS31 Found!

but nothing on the display. I added a Serial.println("clear"); in the loop function and can see it in the serial monitor every few seconds so the code is looping ok I think.

question: When I installed the code I used the arduino library manager and in Adafruit_IS31FL3731_Library folder I noticed 3 folders under examples, but when I went to the URL in the product page https://www.adafruit.com/product/5201 it took me here https://github.com/adafruit/Adafruit_IS31FL3741 and under examples it only shows two folders; gfxdemo and rgbswirldemo, are the code libraries out of sync ?

thanks

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

Re: Adafruit IS31FL3741 13x9 PWM RGB LED Matrix

Post by adafruit_support_mike »

It's possible you have an older version of the library. Try using the latest version and see what happens.

User avatar
jimk123
 
Posts: 708
Joined: Sun Dec 26, 2010 7:04 pm

Re: Adafruit IS31FL3741 13x9 PWM RGB LED Matrix

Post by jimk123 »

that was it, when I downloaded and unzipped the file from here: https://github.com/adafruit/Adafruit_IS31FL3741 it worked !
Thank you !

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

Re: Adafruit IS31FL3741 13x9 PWM RGB LED Matrix

Post by adafruit_support_mike »

Glad to hear you got things working. Happy hacking!

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

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