Hi Everyone ... thankz kaziewip !!

I did it !! I tested the code for 128x64 ...and work fine for me XD !

... view a video on https://www.youtube.com/v/__iE2CaXtKs&feature=youtu.be

Thanks Again !

I'll try the 128x16 code in the weekend. I suspect that one will give me less of an headache when it's just made for a "longer display".

Thanks a bunch for the tip on where in the code I can get it to scroll all the rows. That vital info will help me a lot, so now I could probably use the 64x32 code as well. :)

Will try to fiddle with the delay(15) and see if it solves the scrolling issue I am plagued with. On the left side when the letters scroll out everything looks right. So a "E" for instance will on the left go from an E to three lines, then three dots and then it's gone. On the right side it just appears as an complete E two columns from the end and starts scrolling to the left. :/ The last two columns never see any action on my display when scrolling text. :~

But I'll see what I can figure out during the weekend. :)

As for the adressing on the red and green, it seems that it just sets either red or green pin high but the rest seems the same. This is a code part from another sketch I found that has the green/red/orange working but no fancy scrolling and such. Just shows clock in green and Hello in red.

                  digitalWrite(oePin, HIGH);
                  digitalWrite(aPin,row & B0001 );
                  digitalWrite(bPin,row & B0010 );
                  digitalWrite(cPin,row & B0100 );
                  digitalWrite(dPin,row & B1000 );
                  digitalWrite(strPin, LOW);
                  shiftOut(redPin, sckPin, MSBFIRST, pbuffer_r[0][row]);
                  shiftOut(redPin, sckPin, MSBFIRST, pbuffer_r[1][row]);
                  shiftOut(redPin, sckPin, MSBFIRST, pbuffer_r[2][row]);
                  shiftOut(redPin, sckPin, MSBFIRST, pbuffer_r[3][row]);
                  digitalWrite(strPin, HIGH);  
                  digitalWrite(oePin, LOW);
                  delayMicroseconds(draw_delay);  // delay for seeing red
                  digitalWrite(oePin, HIGH);
                  digitalWrite(strPin, LOW);
                  shiftOut(greenPin, sckPin, MSBFIRST, pbuffer_g[0][row]);
                  shiftOut(greenPin, sckPin, MSBFIRST, pbuffer_g[1][row]);
                  shiftOut(greenPin, sckPin, MSBFIRST, pbuffer_g[2][row]);
                  shiftOut(greenPin, sckPin, MSBFIRST, pbuffer_g[3][row]);
                  digitalWrite(strPin, HIGH);  
                  digitalWrite(oePin, LOW);
                  delayMicroseconds(draw_delay);  // delay for seeing green


Firstly, apologies for digging up an old thread, I thought it better than starting a new one...

I am using kaziewip's code from post #15, the countdown works great.

However, when I try to get it to display the text in const char message[] or byte buffer[256]

I can't get it to work, the best I could achieve is the message spelling out on the very last panel.

I tried PMing kaziewip to no avail, I don't think he was/is very active on these forums.

Can anybody please tell me what I need to edit/add/remove to have the display read out the message and scroll to the left?

Many Thanks,


Bren - you're right. I've not been around much on the forum. Trying to work with some Uno32s. Try my code in post number 18. This was designed for two 64x16 panels, side by side.

Hello, I have recently purchased a 64x16 LED matrix, I have downloaded the zip file. And thank you guys very much! But, I am have trouble editing the code to have text scroll the entire height of the display, I can remove the clock, the rectangle part, But I cannot seem to combine the upper and lower halves to form one display.

I am also very new to programming.

I need help please, or at least guidance into the right direction. Thanks!!!

Hello guys! I bought this matrix 16x64 here: http://pt.aliexpress.com/item/Indoor-F3-75-P4-75-Single-Red-color-LED-dot-matrix-module-304-76mm-64-16/1721794648.html

So I used this code: https://www.youtube.com/watch?v=4zE6duwytEY,

but I'm having a problem: instead of words the LEDs are off and the rest of the LEDs are lit; I would be grateful for help from someone!

Hi Dancopy, you seem to have posted a link to a video by mistake, instead of a link to the code. Try again.


Sorry Paul,
Here’s the code that video,

shortened_Final_Code_A.ino (17.4 KB)

Try changing

      PORTB |= !((buffer[index]>>(7-i)) & 0x01) << (data_R1-8);  // top set of rows
      PORTB |= !((buffer[index+128]>>(7-i)) & 0x01) << (data_R2-8); // bottom set of rows


      PORTB |= !((~buffer[index]>>(7-i)) & 0x01) << (data_R1-8);  // top set of rows
      PORTB |= !((~buffer[index+128]>>(7-i)) & 0x01) << (data_R2-8); // bottom set of rows

Hello Paul! Note 10++ for you - said and done, it worked perfectly!
I do not want to bother you but I want to ask you these questions:
I have a great desire to do my own codes (sketches) but also have many difficulties in understanding; So I ask you: what is the principle for learning about the codes, especially those arrays as of this review, Led Dot Matrix 64x16 and also these RG Led Matrix?
If for their kindness and gentleness, you want to answer me, I would be very grateful!!
God bless you and all the members of this forum;

Dancopy: what is the principle for learning about the codes, especially those arrays as of this review, Led Dot Matrix 64x16 and also these RG Led Matrix?

Dancopy, I don't understand your question, can you re-phrase?

ok; sorry How can I learn more easily on codes (sketches) of these matrices as 64x16 and 32x16 RGY? For example, this sign (~) you told me everything has changed in the code !! how can I know this? There are good books / ebooks that explain about it? I am very grateful to you

Try this page.


I have buy the same 64x16 LED panel.

It's possible to make a timer min:sec;millis ?

Thank's for help me !

Hi Naudnaud,

Yes this is possible. You should start a new topic for this question.


Ok, thank's !


Thank's to Kaziewip for your program, it work perfectly !!

But i have a probleme with my LED Matrix.

My counter work well, but i have a lot of blinking artefact on the screen:

You know why ?

How to rewrite the code for displaying ASCII extended characters like "É" or "ã"?

Thank You.


I'm working 117x24 led display. If anything could give any help with coding that will be great. I'm really having a hard with the coding. for the rows i used decade counter, and shift register to drive the columns.

My question is How I modify your code to make work for a 117x24.

Plz in any way possible.

thnks in advance

jafleu - I would suggest that you post a clearly written question of your own in this section , rather than trying to get a response via prior threads. You may get more help. There is also Reddit Arduino where a lot of smart guys post. Good Luck with your project and Happy New Year