Electron + Adafruit 64x32 RGB LED Matrix not working [SOLVED]

I am at a loss, and I hope someone can help me.

I am trying to get an Electron, with @peekay123’s board (SD Card, 2016-04-09), to drive an Adafruit 64x32 RGB LED Matrix (link). I also have a 32x32 RGB LED Matrix.

I can drive both panels with an Arduino UNO (the 64 wide panel works as expected). When I use the Electron, the 32x32 panel works, but the 64x32 panel is blank. I have also used the 64x32 panel with a Raspberry PI 3.

I have:

  • Made sure the connector is positioned correctly, verified that both displays have a HUB75 connector with the same pin outs, and I am using the IN connector and not the OUT connector.
  • Powered the displays with @peekay123’s board and with separate power supplies. I am using a 5V @ 10A supply for the panel (and a 5V @ 5A for @peekey123’s board when powered separately)
  • I am testing using the RGB Pixel Clock firmware.

To recap, both displays work with the Arduino and Raspberry PI, but the with the Electron only the 32x32 panel will work. :frowning:

Blair.

Have you made the necessary code adjustments to accommodate the larger panel?

2 Likes

@bleduc, the trick to using a larger panel is in the RGBMatrixPanel constructor as @Moors7 pointed out. Which library are you using?

1 Like

I started from scratch this morning.

I used the sample “RGB Pong Clock”, then added these libraries:

  • ADAFRUIT_MFGFX
  • RGBMATRIXPANEL
  • SPARKINTERVALTIMER

I changed the constructor to (and commenting the other):

RGBmatrixPanel matrix(A, B, C, D, CLK, LAT, OE, true, 64); // 64x32

I verified the app and it compiled.

I downloaded the firmware.bin and flashed the Electron. I waited until it started breathing cyan, and I verified that the console log has these entries:

hook event name | {"mycity":"Ottawa,ON","units":"metric","apikey":"xxxxxxxxxxxxxxx"} | October 16th at 11:58:30 am | Alpha
RGBPongClock | V1.1.2 | October 16th at 11:58:26 am | Alpha

I then executed particle get Alpha RGBPCversion and received V1.1.2 so the Electron is definitely running.

Still nothing on the panel. :frowning:

So, to double check, I returned the RGBmatrixPanel constructor to a 32x32 panel flashed the electron, connected the 32x32 panel, and it works.

I connected the 64x32 panel to the Arduino and it still works.

Aside: I am using the examples that come with the RGBmatrixPanel/Afafruit_GFX libraries from Adafruit, in this case the colour wheel, where I see two wheels since an Arduino UNO does not have enough memory to drive the 64 wide panel, so the library is configured for a 32x32 panel. In the past, I have modified Adafruit’s library to write zeros to the second half of the display, and it looks great, well the lit up half that is.

Blair.

What happens if you run the 32x32 sketch on the 64x32 panel?
AFAIK you should just see both panels show the same images - at least mine do :wink:

Unfortunately, @ScruffR, the panel is still blank.

Is it possible that the Electron is attempting to drive the display too fast? It is the only thing I can think of as a potential difference between the Arduino UNO and the Electron at the moment. Long shot, I know.

I’ve now tried with one of my Electrons and it works fine.
As said, with the 32x32 panel setup I get both 32x32 panels display the same pics and with 64x32 setup the images extend over both.

The only thing that I experienced was that the Electron didn’t connect without the LiPo attached, but that’s a known behaviour.
Does your device reach cyan breathing?

Yes, it is cyan breathing.

@bleduc, I suggest you use the “lastest” RGBPongClock code from the RGBPixelClock repo or on Build. The only concern I would have with that panel is that the shield sits properly in the panel socket. Do you have a 2x8 ribbon cable you could use to connect the shield to the panel instead on putting the shield directly on the panel?

Then I’ve no idea what’s wrong with your setup, but here is a quick video (22MB) how it looks on my side
(don’t mind the second shield on the left panel, it’s just there as power supply for that panel)

1 Like

Thanks, @peekay123, I will try it with the code from the repo. Also, the board does not sit perfectly flat, say a couple of mm higher on the opposite side of the board from the connector. I will scrounge around and see if I have a cable or the parts to make one/jerry-rig something.

1 Like

@peekay123, that was it. I do not have a 2x8 cable with a male connection, just one with females at each end, so I jerry-rigged a male-to-male adapter with breadboard wire. :blush:

The display is working perfectly now and looks beautiful. It’s a 3mm pitch panel and compared to my 32x32’s 6mm pitch and it makes a world’s of difference.

Hey, if you ever do another run of these boards and decide to move the barrel jack to the other side of the board, please let me know!

Blair.

1 Like

@peekay123, heard this? :wink: :sunglasses:

1 Like

Hi! I have 64x32 Adafruit panel, but can’t start it with Arduino Uno. Can you show your changes in the the RGBmatrixPanel/Afafruit_GFX libraries?

@remnew, this forum is for Particle devices, not Arduino! However, I can tell you immediately that the Uno does not have enough RAM to handle a 64x32 panel.

If you invest in an amazing and super-easy to use Particle Photon, you will be able to handle two such panels chained for a total of 128x32! Just saying :wink:

3 Likes

Oh, sorry! I’ve found this forum during googling my problem… So, can you explain why Arduino Uno (or Nano) can’t works with 63x32 panel? For example, I need to display just numbers, and, if I’ll change variables of integer types to smallint, and cut library with only drawing text., Isn’t it? And @bleduc has wrote that Uno works with 64x32…

@remnew, the amount of RAM required by the RGBMatrixPanel library is calculated by:

int buffsize = width * nRows * 3, // x3 = 3 bytes holds 4 planes "packed"

In the case of a 32x64 panel, nRows = 16 so buffsize = 64163 or 3072 bytes. The Uno only has 2KB or RAM. However, with a 32x32 panel, only 1,536 bytes is required so an Uno will work. Using an ATMega256, which has more RAM, with work with the 32x64 panel, just not the Uno. Can you provide a link to where @bleduc wrote about the Uno working with a 32x64 panel?

@remnew, I said that “the 64 wide panel works as expected”. As @peekay123 said, there is not enough RAM on the UNO, so the image that is displayed is a bit of a mess, but it did display something that was expected, so I knew the panel wasn’t dead.

Thanks for explain!

p.s I’ve just trying to run 64x32 sample on Mega, but it’s not works too… ((

Is any another yet library or another method to work with Adafruit 64x32 panels with Uno and Nano for very simple text drawing? Or may be it is possible to extend RAM on controller?