Panel 8x8 Support Library
Panel 8x8 Support Library
Remember that library I was teasing about?
Well, it's finally in production.
My first cut of the library is at
http://Code.Google.Com/p/panel8x8
The library comes with 5 examples at the moment:
Text Scrolling from RAM
Test Scrolling from FLASH
Animation from FLASH
Uses the Panels as direct output from your program (Test Pattern)
And lastly, the Game of Life.
All this with just a few lines of code!
I've also coded the following as straight code,
But am now coding advanced Panel8x8 objects to support:
* Reading animations from SD Card
* Change text/graphics over Serial
* Change text/graphics over Ethernet
* Change text/graphics over Wireless
I've also created a set of Windows .Net tools to
* Create font characters
* Create animation files
* Post Twitter updates to the Panel
Also, I've just finished shooting and editing videos that show you how to build an 8x8 array,
Step by step.
Feedback appreciated!
Well, it's finally in production.
My first cut of the library is at
http://Code.Google.Com/p/panel8x8
The library comes with 5 examples at the moment:
Text Scrolling from RAM
Test Scrolling from FLASH
Animation from FLASH
Uses the Panels as direct output from your program (Test Pattern)
And lastly, the Game of Life.
All this with just a few lines of code!
I've also coded the following as straight code,
But am now coding advanced Panel8x8 objects to support:
* Reading animations from SD Card
* Change text/graphics over Serial
* Change text/graphics over Ethernet
* Change text/graphics over Wireless
I've also created a set of Windows .Net tools to
* Create font characters
* Create animation files
* Post Twitter updates to the Panel
Also, I've just finished shooting and editing videos that show you how to build an 8x8 array,
Step by step.
Feedback appreciated!
Re: Panel 8x8 Support Library
wow! simply put. thanks!!!!!!!!
david
david
Re: Panel 8x8 Support Library
Thank you for accepting me to the board, Paul.
Dataman, this will certainly be a very useful library, especially for the not-that-clever-coder I am.
I have to display a sequence of changing shapes (i.e. a square growing in size) on 1 Panel.
I read the wiki page and studied Example#4, but cannot figure how to generate shapes other than lines, or even control one led at a time.
What would be the simplest code to light up one led using your lib ?
Thanks in advance,
Manu from France.
Dataman, this will certainly be a very useful library, especially for the not-that-clever-coder I am.
I have to display a sequence of changing shapes (i.e. a square growing in size) on 1 Panel.
I read the wiki page and studied Example#4, but cannot figure how to generate shapes other than lines, or even control one led at a time.
What would be the simplest code to light up one led using your lib ?
Thanks in advance,
Manu from France.
Re: Panel 8x8 Support Library
Great question,
It's really easy to create animations with version 1.06 of the library & Microsoft Windows.
Version 1.06 supports updating the panels over the serial connection,
including Text and Graphics.
I've also included a set of DotNet utilities for creating graphics visually.
You can download graphics to the boards, or stream them frame by frame if too large.
You can play with the animator even if you don't have boards!
There's a simulator built right in!
Please do!
And to briefly explain,
Data is sent to the panels in Frames.
A Frame is defined as a set of Panels & Lines.
4 control words are sent (2 bytes, lo word, hi word) are sent...
Version (currently 2 - 0), Number of Panels, Number of Frames, Inter Frame Delay
Next we send the frames, panel by panel, line by line,
8 lines per panel, then the next panel,
On receiving the correct number of panels for a frame,
The array sends back a 0,
Or a 1 if there is an error.
Cool part is, this is all take care of by the built in uploader in the Animator.
To animate a single byte in a single panel, you'd have to stash a single panel worth of data in memory....
This is all in binary, so Binary 0 0 0 0 0 0 0 1 = 1 Decimal
1,0,0,0,0,0,0,0,0 Would light up the upper right bit.
256,129,129,129,129,129,129,256 lights up a square
Another cool program is the character animator
Which would give you dicimal codes for any pattern you could draw...
It's really easy to create animations with version 1.06 of the library & Microsoft Windows.
Version 1.06 supports updating the panels over the serial connection,
including Text and Graphics.
I've also included a set of DotNet utilities for creating graphics visually.
You can download graphics to the boards, or stream them frame by frame if too large.
You can play with the animator even if you don't have boards!
There's a simulator built right in!
Please do!
And to briefly explain,
Data is sent to the panels in Frames.
A Frame is defined as a set of Panels & Lines.
4 control words are sent (2 bytes, lo word, hi word) are sent...
Version (currently 2 - 0), Number of Panels, Number of Frames, Inter Frame Delay
Next we send the frames, panel by panel, line by line,
8 lines per panel, then the next panel,
On receiving the correct number of panels for a frame,
The array sends back a 0,
Or a 1 if there is an error.
Cool part is, this is all take care of by the built in uploader in the Animator.
To animate a single byte in a single panel, you'd have to stash a single panel worth of data in memory....
This is all in binary, so Binary 0 0 0 0 0 0 0 1 = 1 Decimal
1,0,0,0,0,0,0,0,0 Would light up the upper right bit.
256,129,129,129,129,129,129,256 lights up a square
Another cool program is the character animator
Which would give you dicimal codes for any pattern you could draw...
Re: Panel 8x8 Support Library
Whew,
Working the last bug in the library now.
You can now move all of your aminations to SD card,
Hook up an SD card reader to to the arduino,
and stream all those animations to the panel array.
Pretty much gives you unlimited animation capability.
Should be version 1.08 which I'm posting up later today.
That will be the final functionality version of the library.
I could keep going, but I think that's enough scope creep for now!
You can update over ethernet, wireless, serial, or SD card.
I think that's a lot a more than you originally could!
Working the last bug in the library now.
You can now move all of your aminations to SD card,
Hook up an SD card reader to to the arduino,
and stream all those animations to the panel array.
Pretty much gives you unlimited animation capability.
Should be version 1.08 which I'm posting up later today.
That will be the final functionality version of the library.
I could keep going, but I think that's enough scope creep for now!
You can update over ethernet, wireless, serial, or SD card.
I think that's a lot a more than you originally could!
Re: Panel 8x8 Support Library
Version 1.09 has been posted.
Please get the latest version if you're not up to date.
Would love to have some feedback of what you think of the library.
Please get the latest version if you're not up to date.
Would love to have some feedback of what you think of the library.
Re: Panel 8x8 Support Library
Posted a short video < 4mb on how to use the Animator included in the support library.
http://code.google.com/p/panel8x8
http://code.google.com/p/panel8x8
-
- Posts: 5
- Joined: Wed Oct 27, 2010 8:33 am
Re: Panel 8x8 Support Library
Hi,
recently found this 8x8 Panel library for Arduino. Very nice! Exact what i was looking for
It has many nice features
I wrote a mail also (didn't know where i would get help faster
)
I find one thing that could be improved. I tried to figure out myself, but with no luck for now =].
Its about "detecting" real character width. Wen all displayed characters in message
are equal width (exmpl. "ABRAKADABRA") then spaces between chars also are equal.
BUT, when message consists chars like "i", "1" or symbols !^*();:,.[] etc., then spaces
are uneven and too wide! The message becomes not so readable ( especialy on 1 or 2 panels).
I found out, that i need to modify AddChar(); routine, to it to check - is the first row of new char empty ("0"),
and add only starting from row containing data, same at the end - add only one empty row(or predefined count).
It is dificult to me to figure it out, because You are shifting rows, and there is some logic goin on.
Maby You have some ideas that could help me to make it happen?
I hope You will understand my idea - to make equal spaces between characters, maby even definable - charSpacing(int spaceRowCount);
It would make scrolling message more readable and more goodloking!
Please help me to figure it out =]
Best regards,
Kaspars
recently found this 8x8 Panel library for Arduino. Very nice! Exact what i was looking for

It has many nice features


I find one thing that could be improved. I tried to figure out myself, but with no luck for now =].
Its about "detecting" real character width. Wen all displayed characters in message
are equal width (exmpl. "ABRAKADABRA") then spaces between chars also are equal.
BUT, when message consists chars like "i", "1" or symbols !^*();:,.[] etc., then spaces
are uneven and too wide! The message becomes not so readable ( especialy on 1 or 2 panels).
I found out, that i need to modify AddChar(); routine, to it to check - is the first row of new char empty ("0"),
and add only starting from row containing data, same at the end - add only one empty row(or predefined count).
It is dificult to me to figure it out, because You are shifting rows, and there is some logic goin on.
Maby You have some ideas that could help me to make it happen?
I hope You will understand my idea - to make equal spaces between characters, maby even definable - charSpacing(int spaceRowCount);
It would make scrolling message more readable and more goodloking!
Please help me to figure it out =]
Best regards,
Kaspars
Re: Panel 8x8 Support Library
matajumotors,
What you are talking about is called letter kerning. It would indeed improve the library but it's not that easy to implement and will require modifying several functions. I'll see if dataman wants to take a shot at it or not.
Paul
What you are talking about is called letter kerning. It would indeed improve the library but it's not that easy to implement and will require modifying several functions. I'll see if dataman wants to take a shot at it or not.
Paul
-
- Posts: 5
- Joined: Wed Oct 27, 2010 8:33 am
Re: Panel 8x8 Support Library
I hope he would like to do it =]. Now at least i know how its called.paul wrote:matajumotors,
What you are talking about is called letter kerning. It would indeed improve the library but it's not that easy to implement and will require modifying several functions. I'll see if dataman wants to take a shot at it or not.
Paul
-
- Posts: 5
- Joined: Wed Oct 27, 2010 8:33 am
Re: Panel 8x8 Support Library
Any news on letter kerning?
Re: Panel 8x8 Support Library
This kind of got lost in other things at M.D. I'll shoot some email out and see what it would take.
It does really put some complications in the code so would be part of a sizable rewrite I believe
Paul
It does really put some complications in the code so would be part of a sizable rewrite I believe
Paul
-
- Posts: 5
- Joined: Wed Oct 27, 2010 8:33 am
Re: Panel 8x8 Support Library
Its time for a BUMP!
Letter kerning - any news?
Letter kerning - any news?
Re: Panel 8x8 Support Library
matajumotors ,
This fell through the cracks I'm afraid. Thanks for the prod, I'll look into it.
For what's it worth I did look through the code and decided it was not something that could be implemented really easily. It requires a better scheme on "counting" pixels to see "where" the code is currently writing. Assuming all the characters are 6 pixels wide (with the space) is really easy.
Dataman and the MD staff are both over our heads in projects though, with Maker Faire coming up.
Paul
This fell through the cracks I'm afraid. Thanks for the prod, I'll look into it.
For what's it worth I did look through the code and decided it was not something that could be implemented really easily. It requires a better scheme on "counting" pixels to see "where" the code is currently writing. Assuming all the characters are 6 pixels wide (with the space) is really easy.
Dataman and the MD staff are both over our heads in projects though, with Maker Faire coming up.
Paul
Re: Panel 8x8 Support Library
Here we are getting ready for Maker Faire again - on another coast. I will send some more email though
Paul
Paul
Re: Panel 8x8 Support Library
Awesome library, and this board is even better than I thought it would be. I got the wide angle blue LED's and the thing is almost blinding!
Problem with persistence.
Problem with Persistence.
I love the panel and the library. I currently have the panel hooked up to an arduino UNO and when I download the flash animation example to it, it works fine, however, if I unplug it and plug it back in, it doesn't work anymore. I've poured over the code and cant find anything obvious. It seems since it is in PROGMEM, it should retain the animation.
The other odd thing is, I put dumpframes on in the library, and immediately after downloading, or even if I hit reset, the animation displays (slowly) and the serial data is dumped. if I remove power and add it again, no output. The UNO's on board LED does blink (twice rapidly, pause, twice rapidly)
I added Serial.printlns in setup() and loop, and once again, it outputs as expected as long as you don't unplug it after downloading, but nada when you power cycle.
I should probably add that I'm powering the (single) panel off the arduino.
I love the panel and the library. I currently have the panel hooked up to an arduino UNO and when I download the flash animation example to it, it works fine, however, if I unplug it and plug it back in, it doesn't work anymore. I've poured over the code and cant find anything obvious. It seems since it is in PROGMEM, it should retain the animation.
The other odd thing is, I put dumpframes on in the library, and immediately after downloading, or even if I hit reset, the animation displays (slowly) and the serial data is dumped. if I remove power and add it again, no output. The UNO's on board LED does blink (twice rapidly, pause, twice rapidly)
I added Serial.printlns in setup() and loop, and once again, it outputs as expected as long as you don't unplug it after downloading, but nada when you power cycle.
I should probably add that I'm powering the (single) panel off the arduino.
Re: Panel 8x8 Support Library
Well, I did some research, and it looked like the bootloader was in a reset loop. I reburned the bootloader, and everything is happy now.
If you do more than play with arduino for 5 minutes, I highly recommend getting a ISP programmer (like usbytinyisp from Adafruit)!
If you do more than play with arduino for 5 minutes, I highly recommend getting a ISP programmer (like usbytinyisp from Adafruit)!