Multiple 16x32 RGB LED matrix panel

EL Wire/Tape/Panels, LEDs, pixels and strips, LCDs and TFTs, etc products from Adafruit

Moderators: adafruit_support_bill, adafruit

Multiple 16x32 RGB LED matrix panel

Postby jsissom » Thu Aug 18, 2011 8:20 pm

Has anyone tried driving multiple 16x32 RGB displays using the out connection? I can see from the example code how to refresh one, but I'm interested in driving multiple displays.

Thanks
Jay
jsissom
 
Posts: 20
Joined: Thu Aug 18, 2011 8:19 pm

Re: Multiple 16x32 RGB LED matrix panel

Postby adafruit » Thu Aug 18, 2011 8:45 pm

we're like 99% sure you just have to clock in 2 x 192 (or n x 192) bits instead of 192 and it gets 'passed thru' to the next display. we're going to try to do it with an arduino and 6 or 3-bit color.
User avatar
adafruit
 
Posts: 10490
Joined: Thu Apr 06, 2006 3:21 pm
Location: nyc

Re: Multiple 16x32 RGB LED matrix panel

Postby jsissom » Fri Aug 19, 2011 10:40 am

Thanks. I'll try this out when I get them and reply with the results.

Now I'm off to find a >2A 5V power supply.
jsissom
 
Posts: 20
Joined: Thu Aug 18, 2011 8:19 pm

Re: Multiple 16x32 RGB LED matrix panel

Postby adafruit » Fri Aug 19, 2011 4:52 pm

you can use an ATX supply from any computer - check out the IDE power cable we just put in the shop, which will work nicely and give you 5-10A (check the supply)
User avatar
adafruit
 
Posts: 10490
Joined: Thu Apr 06, 2006 3:21 pm
Location: nyc

Re: Multiple 16x32 RGB LED matrix panel

Postby jsissom » Mon Aug 22, 2011 3:23 pm

Thanks. I had a 5V 3A bench supply so all is good. I received the displays today and ran the examples with one panel and things look good.

I think there is a difference between the code and the documentation. OE and LAT are reversed. The documentation says LAT goes to digital 9 and OE to analog 3. The code says LAT is A3 and OE is 9. I think this matches the pictures also.

Other than that, it's great. Now I'll try to write my own code to refresh a screen (slowly) so I understand it, then I'll try cascading 2.

Thanks
Jay
jsissom
 
Posts: 20
Joined: Thu Aug 18, 2011 8:19 pm

Re: Multiple 16x32 RGB LED matrix panel

Postby jsissom » Mon Aug 22, 2011 7:49 pm

I was able to cascade two displays. I'll put some videos and code up and give a link soon (hopefully tonight).
jsissom
 
Posts: 20
Joined: Thu Aug 18, 2011 8:19 pm


Re: Multiple 16x32 RGB LED matrix panel

Postby jsissom » Mon Aug 22, 2011 9:08 pm

Here's a page with some videos and some code. The code is not anywhere near as good as the library. I just wrote it so I could learn the protocol. My next experiment will be making these work with a propeller chip. It might take a while because I have to deal with 3.3v/5v conversion and building a board with connectors on it. Since the propeller has enough I/O, I might just connect the A,B,C,LAT,OE and CLK in parallel on all 4 display panels, then have separate R,G,B pins for each panel. It will take less time to refresh them this way.

http://bloominglabs.org/index.php/Adafruit32x16RGB
jsissom
 
Posts: 20
Joined: Thu Aug 18, 2011 8:19 pm

Re: Multiple 16x32 RGB LED matrix panel

Postby adafruit » Mon Aug 22, 2011 9:14 pm

nice work! although the video is really narrow for some reason?
you probably dont have to do 3.3v conversion the panels can handle 3.3v input they just need 5v power
User avatar
adafruit
 
Posts: 10490
Joined: Thu Apr 06, 2006 3:21 pm
Location: nyc

Re: Multiple 16x32 RGB LED matrix panel

Postby jsissom » Tue Aug 23, 2011 7:10 am

I used my iphone in portrait mode when taking the video. I don't do this very often and wasn't thinking. I didn't realize it until later when I synced with my computer.

I'll do a test with the propeller driving the display without any buffer to see what happens. If it works, that would make things much easier.

Thanks
jsissom
 
Posts: 20
Joined: Thu Aug 18, 2011 8:19 pm

Re: Multiple 16x32 RGB LED matrix panel

Postby Sunbuzz » Mon Feb 13, 2012 7:36 am

I am really interested how this project unfolded. what is the status? I couldn't see more than you driving it with a FPGA, did you do that as 2 separate displays, or were they still cascaded?

eager to learn more...
Sunbuzz
 
Posts: 8
Joined: Fri Feb 10, 2012 9:13 am

Re: Multiple 16x32 RGB LED matrix panel

Postby Scott216 » Wed May 01, 2013 4:22 pm

jsissom wrote:Has anyone tried driving multiple 16x32 RGB displays using the out connection? I can see from the example code how to refresh one, but I'm interested in driving multiple displays.

Thanks
Jay


Did you ever get this finished? I have an idea for an Arduino project where I need to display text across two 16x32 panels.
Scott216
 
Posts: 67
Joined: Sun Apr 12, 2009 10:08 am
Location: New Jersey

Re: Multiple 16x32 RGB LED matrix panel

Postby mattjakob » Tue May 07, 2013 9:36 am

Hello,
has anyone made some progress in getting the library working with two 16x32 matrices (cascading) ?

I did try my best looking at the RGBMatrixPanel - which is very well documented - but with 0 luck. I tried to compare the UpdateDisplay code with the one from Bloominglabs (http://www.bloominglabs.org/index.php/Adafruit32x16RGB) as the latter one does make two 16x32 matrices work in chained mode but it displays only a series of 8-rows bands but I get lost with the multiple planes techniques :(
It would super fantastic getting the GFX/MatrixPanel libraries work with multiples RGB LED matrices in cascade mode !

If nobody has time to look into getting the library working with multiple cascaded matrices I would also appreciate being pointed at some references to understand the code/logic behind the RGBmatrixPanel library (have good knowledge of c++, CG).

Please help !

Cheers,
MJ
mattjakob
 
Posts: 6
Joined: Tue Apr 30, 2013 5:17 am

Re: Multiple 16x32 RGB LED matrix panel

Postby pburgess » Tue May 07, 2013 5:19 pm

Howdy,

Here's an old but relevant thread, with caveats:
viewtopic.php?f=47&t=23349

This was a fun experiment (in my pre-Adafruit days), but it's not something we officially support and I'm not sure I could even get my head back around it. Some of the techniques were subsequently merged into the Official Library™, but chained panels and/or greater color depth were both regarded as too impractical for the Arduino to handle (and still do other things). Rummaging through the source might turn up some ideas if you decide to tackle some chained-panel code yourself.
User avatar
pburgess
 
Posts: 1332
Joined: Sun Oct 26, 2008 1:29 am

Re: Multiple 16x32 RGB LED matrix panel

Postby mattjakob » Wed May 08, 2013 5:52 am

Thanks!
So far I wrote a VERY rudimentary piece of code which actually enables me to input a large image (binary bitmap) e split it out on two 16x32 matrices.
Im slowly building it up (now using also the source you provided) and hopefully get close to the level of functionality of your RGBMAtrixPanel (it's already based on it).
In my dreams I thought extending the Adafruit Library to be used on multiple cascaded matrices was just a matter of tweaking some functions but reality is a bit far from it ;)

Here is my code - again any critic/suggestion is highly appreciated:

Code: Select all
#include "MJmatrixPanel.h"


// Constructor for 16x32 panel:
MJmatrixPanel::MJmatrixPanel(
    uint8_t a, uint8_t b, uint8_t c,
    uint8_t sclk, uint8_t latch, uint8_t oe, boolean dbuf) {
    /*
    pinMode(R1,OUTPUT);
    pinMode(G1,OUTPUT);
    pinMode(B1,OUTPUT);
    pinMode(R2,OUTPUT);
    pinMode(G2,OUTPUT);
    pinMode(B2,OUTPUT);
    pinMode(CLK,OUTPUT);
    pinMode(OE,OUTPUT);
    pinMode(A,OUTPUT);
    pinMode(B,OUTPUT);
    pinMode(C,OUTPUT);
    pinMode(LAT,OUTPUT);
   
    digitalWrite(A,LOW);
    digitalWrite(B,LOW);
    digitalWrite(C,LOW);
    digitalWrite(LAT,LOW);
    digitalWrite(OE,LOW);
    digitalWrite(CLK,HIGH);
     */
}

void MJmatrixPanel::drawPixel(int16_t x, int16_t y, uint16_t c) {
   
}

uint16_t MJmatrixPanel::getBitmapPixel(int16_t x, int16_t y, const uint8_t *bitmap)
{
    int16_t w = 32;
    int16_t h = 32;
    int16_t i, j, byteWidth = (w + 7) / 8;

    if(pgm_read_byte(bitmap + y * byteWidth + x / 8) & (128 >> (x & 7))) {
                //drawPixel(x+i, y+j, color);
                return 1;
            }
            else
                return 0;
}

void MJmatrixPanel::updateRow(int y)
{
    digitalWrite(OE,LOW);
   
    // Set the row address
    if ( y & 0x1 ) {
        digitalWrite(A,HIGH);
    } else {
        digitalWrite(A,LOW);
    }
    if ( y & 0x2 ) {
        digitalWrite(B,HIGH);
    } else {
        digitalWrite(B,LOW);
    }
    if ( y & 0x4 ) {
        digitalWrite(C,HIGH);
    } else {
        digitalWrite(C,LOW);
    }

    for ( uint8_t x = 0; x < 64; x++ ) {
       
            digitalWrite(CLK,LOW);
           
            int _x, _y;
           
            if(x > 31)
            {
                _x = x - 32;
                _y = y + 16;
            }
            else
            {
                _x = x;
                _y = y;
            }
           
            if(getBitmapPixel(_x,_y,bitmap))
            {
                digitalWrite(R1,HIGH);
                digitalWrite(G1,HIGH);
                digitalWrite(B1,HIGH);
            }
            else
            {
                digitalWrite(R1,LOW);
                digitalWrite(G1,LOW);
                digitalWrite(B1,LOW);
            }
   
            _y += 8;
           
            if(getBitmapPixel(_x,_y,bitmap))
            {
                digitalWrite(R2,HIGH);
                digitalWrite(G2,HIGH);
                digitalWrite(B2,HIGH);
            }
            else
            {
                digitalWrite(R2,LOW);
                digitalWrite(G2,LOW);
                digitalWrite(B2,LOW);
            }
       
           
            digitalWrite(CLK,HIGH);
        }
   
    digitalWrite(LAT,HIGH);
    digitalWrite(LAT,LOW);
    digitalWrite(OE,HIGH);
}

void MJmatrixPanel::drawDisplay()
{
    for ( int i = 0; i < 8; i++ ) {
        updateRow(i);
    }
}
mattjakob
 
Posts: 6
Joined: Tue Apr 30, 2013 5:17 am

Next

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

Who is online

Users browsing this forum: mibignistinly and 9 guests

Stuff to buy from the Adafruit store and links to product documentation!


New Products [102]

Raspberry Pi[80]
 
FLORA[23]
 
Bunnie Studios[9]
 
FPGA[1]
 
mbed[11]
Arduino[60]
 
NETduino[14]
 
BeagleBone[24]
 
Android[6]
 
XBee[10]
More Dev Boards[30]


 
BoArduino[8]
 
SpokePOV[4]
 
TV-B-Gone[4]
 
MiniPOV[3]
 
SIM reader[3]
 
Microtouch[5]
 
Clocks & Watches[18]
 
Drawdio[4]
 
Brain Machine[1]
 
Game of Life[2]
 
MintyBoost[2]
More DIY Kits[16]


 
MaKey MaKey[3]
 
Tweet-a-Watt[5]
 
Young Engineers[33]
 
Discover Electronics[2]
 
Snap Circuits[4]
 
littleBits[3]
 
Project packs[8]


 
Breakout Boards[33]
LCDs & Displays[48]
Components & Parts[69]
Batteries & Power[49]
EL Wire/Tape/Panel[52]
LEDs[109]
 
Wireless[14]
Cables[60]
 
Lasers[6]
Sensors/Parts[145]
 
Enclosures/Cases[11]
 
Solar[11]
 
RFID / NFC[13]
Prototyping[70]
 
iDevices[13]
Tools[71]
 
Wearables[39]
 
CNC[37]
 
Robotics[29]
 
3D printing[1]
 
Materials[24]


 
Stickers[41]
 
Skill badges[55]
 
Books[25]
 
Circuit Playground[7]
 
Gift Certificates[4]