Panel 8x8 Support Library

Post Reply
dataman
Posts: 13
Joined: Fri Sep 04, 2009 1:12 pm

Panel 8x8 Support Library

Post by dataman » Tue Sep 22, 2009 12:36 pm

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!

waxweb
Posts: 5
Joined: Sun Dec 14, 2008 5:10 am

Re: Panel 8x8 Support Library

Post by waxweb » Sat Oct 03, 2009 4:12 am

wow! simply put. thanks!!!!!!!!
david

Vertigo
Posts: 1
Joined: Tue Oct 06, 2009 9:32 am

Re: Panel 8x8 Support Library

Post by Vertigo » Tue Oct 06, 2009 9:42 am

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
Posts: 13
Joined: Fri Sep 04, 2009 1:12 pm

Re: Panel 8x8 Support Library

Post by dataman » Mon Oct 12, 2009 10:16 am

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...

dataman
Posts: 13
Joined: Fri Sep 04, 2009 1:12 pm

Re: Panel 8x8 Support Library

Post by dataman » Tue Oct 13, 2009 12:05 pm

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!

dataman
Posts: 13
Joined: Fri Sep 04, 2009 1:12 pm

Re: Panel 8x8 Support Library

Post by dataman » Wed Oct 14, 2009 7:37 pm

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.

dataman
Posts: 13
Joined: Fri Sep 04, 2009 1:12 pm

Re: Panel 8x8 Support Library

Post by dataman » Wed Oct 28, 2009 6:13 pm

Posted a short video < 4mb on how to use the Animator included in the support library.
http://code.google.com/p/panel8x8

matajumotors
Posts: 5
Joined: Wed Oct 27, 2010 8:33 am

Re: Panel 8x8 Support Library

Post by matajumotors » Wed Oct 27, 2010 8:40 am

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 :roll: )


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).
example.JPG
(2.89 KiB) Downloaded 16825 times
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

paul
Site Admin
Posts: 735
Joined: Mon May 12, 2008 4:19 pm

Re: Panel 8x8 Support Library

Post by paul » Thu Oct 28, 2010 8:49 pm

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

matajumotors
Posts: 5
Joined: Wed Oct 27, 2010 8:33 am

Re: Panel 8x8 Support Library

Post by matajumotors » Sun Oct 31, 2010 5:19 am

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
I hope he would like to do it =]. Now at least i know how its called.

matajumotors
Posts: 5
Joined: Wed Oct 27, 2010 8:33 am

Re: Panel 8x8 Support Library

Post by matajumotors » Tue Dec 21, 2010 3:53 am

Any news on letter kerning?

paul
Site Admin
Posts: 735
Joined: Mon May 12, 2008 4:19 pm

Re: Panel 8x8 Support Library

Post by paul » Tue Dec 21, 2010 6:20 am

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

matajumotors
Posts: 5
Joined: Wed Oct 27, 2010 8:33 am

Re: Panel 8x8 Support Library

Post by matajumotors » Thu Apr 14, 2011 11:56 pm

Its time for a BUMP!
Letter kerning - any news?

paul
Site Admin
Posts: 735
Joined: Mon May 12, 2008 4:19 pm

Re: Panel 8x8 Support Library

Post by paul » Fri Apr 15, 2011 7:34 am

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

matajumotors
Posts: 5
Joined: Wed Oct 27, 2010 8:33 am

Re: Panel 8x8 Support Library

Post by matajumotors » Mon Sep 05, 2011 12:43 am

BUMP! 8-)

paul
Site Admin
Posts: 735
Joined: Mon May 12, 2008 4:19 pm

Re: Panel 8x8 Support Library

Post by paul » Mon Sep 05, 2011 9:05 pm

Here we are getting ready for Maker Faire again - on another coast. I will send some more email though

Paul

osbock
Posts: 4
Joined: Mon Sep 19, 2011 5:24 pm

Re: Panel 8x8 Support Library

Post by osbock » Tue Oct 04, 2011 10:13 pm

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!

osbock
Posts: 4
Joined: Mon Sep 19, 2011 5:24 pm

Problem with persistence.

Post by osbock » Wed Oct 05, 2011 10:35 am

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.

osbock
Posts: 4
Joined: Mon Sep 19, 2011 5:24 pm

Re: Panel 8x8 Support Library

Post by osbock » Wed Oct 05, 2011 10:54 am

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)!

Post Reply