SX controlled 6432 Dot Matrix Bi/Tri-Color LED Display
AZKY Alliance
Posts: 2
PJ Allen and T&E Engineer have teamed up and present here an SX-controlled Bi/Tri-Color LED Message Board.
We ended up with separate implementations, but the operation of the Message Board is the same either way.
PJ established the hardware operation and T&E implemented the memory and character data structure.
We hope to see alot of interest in this project as we have had fun code writing and designing to it over the last few weeks. Please feel free to add your questions, comments, suggestions and additions to this project.
We ended up with separate implementations, but the operation of the Message Board is the same either way.
PJ established the hardware operation and T&E implemented the memory and character data structure.
We hope to see alot of interest in this project as we have had fun code writing and designing to it over the last few weeks. Please feel free to add your questions, comments, suggestions and additions to this project.
Comments
Besides the (2) 6432 LED boards (3mm and 5mm LED), they also have a single RED color 5mm version for $45.
http://www.sureelectronics.net/search.php?encode=YTozOntzOjg6ImtleXdvcmRzIjtzOjQ6IjY0MzIiO3M6ODoiY2F0ZWdvcnkiO3M6MToiMCI7czoxODoic2VhcmNoX2VuY29kZV90aW1lIjtpOjEyMTc0MTc0Nzc7fQ==
Trying to guess at and figure out the datasheet was a challenge. Finally after asking Sure-Electronics a few times, they updated their datasheet/manual which is 100% better and provided some PIC "C" code. As I am not a "C" programmer but could follow along and "try" to get it right, I knew I needed some programming help on the boards.
PJ Allen and others on this forum stood up and offered a hand. PJ Allen remained dedicated to this project and I sent him a board to develop code too. However, the first agenda was to get a better set of schematics and figure out the board which we did with a meter, scope, etc. as the vendor wasn't able to provide too much assistance to us on this. Finally we were able to display something to the board and PJ Allen with his excellent programming skills kept improving the code and make it more efficient and write it better. Much of our early coding was a joint effort to "get it working". However, we are now ready to go off and explore our own avenues of interest in this board as you are also welcome to become involved in the continuing development of code and hardware.
Early code led us up to displaying graphics (DATA statements) in 3 colors (Red, Green and Red+Green or Orange). His "Chopomatic" routine is what made it possible. We then wanted to display characters so we worked on the code to acheive this. We were even able to cascade 2 boards together (but needed a fast resonator like 50 MHz). Later we added a Micro datapad that Bean sold to me for $3 each that provided a keyboard like data entry. This worked but required the user to have an LCD screen to see the characters and color codes as entered in because the Display routine is a LOOP and not in an interrupt. I do beleive it should be updated continuously into an interrupt and if anyone wants to help in that area, that would be great!
Finally we moved into a Hyperterminal approach so that we could echo the characters on the PC screen and enter 8 characters per the 4 lines (or 32 characters in 3 color choices). I would like to see the characters·broken down into 5x7 instead of 8x8 at some point - Anyone want to help on that?
I have attached some pictures and code to follow in the next post or two to show my work originating from a joint effort between PJ Allen and myslef. I found a $5 clear box at Lowes that is a perfect fit for 1 Display board. I went to OfficeDepot and picked up some foamboard and painted it cut·out a frame (painted black) to slide over the Display and cover up the screws and mounting brackets. This·small rubbermaid container is·perfect sized for this·display and I added a reset·slide·switch and program/no program slide switch for Hyperterminal character entry. I used an·older broken router·D-Link power supply that is 5.14vdc at 2 amps and it works well.
As stated before - please join in and contribute to what I believe is the best LED Display board that I know of.
I also forgot to include documentation in the code about the program/no program switch used. See attached pic.
Post Edited (T&E Engineer) : 7/30/2008 12:57:03 PM GMT
The FETs' internal resistance (R_DS_on) limits the LED current, not limiting resistors.· On that basis, use of "orange" (having Red & Green on simultaneously) is probably pushing the envelope and warrants attention.·
The "Sure LED Display" isn't anything like a TV (i.e. scanned one-dot-at-a-time); it's not X-Y addressable.· The pixel data is loaded for an entire line (64 bits, daisy-chained shift registers), the display is enabled briefly then disabled, the next line is selected, its data is loaded, and so on.
The are Red and Green registers for the upper 1/2 of the display and Red and Green registers for the lower 1/2.· There is only one line select counter circuit, it services both halves.· I decided that it would be better to place data (ONs) in only one 1/2 at a time to avoid straining the FETs.
I devised a serial input routine that fit into what was left of the flash-RAM.· It has no error checking and the data must be formatted: letter, color, letter, color,...· ASCII characters from $20 to $5A are allowed, space ($20) must have a color associated with it and Colors are coded ("0" = red, "1" = green, "2" = orange/amber.)· The data can be sent with any terminal program, you could hunt-and-peck or send it as a text file.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Chris Savage
Parallax Tech Support
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
I am 1011, so be surprised!
Advertisement sponsored by dfletch:
Come and join us on the Propeller IRC channel for fast and easy help!
Channel: #propeller
Server: irc.freenode.net or freenode.net
If you don't want to bother installing an IRC client, use Mibbit. www.mibbit.com
Some things you will need to build a project like·mine are as follows:
6432 3mm LED Display Board
16 pin (8x2) female IDC connectors - see the datasheet/manual. You will receive (2) 2" very short connector cables with the display but really need to make your own with 16 wire ribbon cable. I would get a few of them in case you break one or two like I did.
1-3 feet of 16 wire ribbon cable for use with the IDC connector.
SX48 protoboard - You may be able to do this project like PJ Allen has with an SX28 but unless you are very efficient with your code, you will soon run out of available RAM or space. Simpler projects will be fine but expansion will require an SX48 protoboard.
Pushbuttons / switches - Used for extension of the protoboards reset button and program/no program hyterminal control (if used).
Resistors (4.7K, 4.7K, 1K, 10K, 22K, etc..).
Terminal connector or power connector adapter for power supply.
Hook-up wire, small nuts, bolts, solder, soldering iron (15w), etc.
Case - I used a clear rubbermaid utlity box I bought at Lowes for $5. I also painted black some white foam board (Office Depot)·and used a utility knife to cut a frame shape out to cover up the mounting brackets for the display. A good dremel tool was needed to cut out the frame from the case and possibly a drill for some of the holes.
DB9 serial cable and DB9 male connector. I just cut a serial cable and used the female end and ran wires into the protoboard.
Male/Female header connectors and pins (optional) to solder to the ribbon cable and protoboard and serial cable.
5vdc regulated power supply with ~2 amps or more of current.
I think that was about it. Enjoy! Ask any questions you have either in the forum or via PM to myself or PJ Allen.
http://forums.parallax.com/showthread.php?p=739018
"That's not as giant LED display.... this is a giant LED display!
technabob.com/blog/2008/07/31/giant-led-clock-big-enough-to-hold-your-cd-collection/
Thanks,
PeterM
Unfortunately with the extra variables used for the RTC, an SX28 will not be able to handle this even though I was able to re-use some variables - just couldn't get there. You will need either an SX48 or SX52 for this application. I used an obsolete SX52 Protoboard from Parallax. But an SX48 Protoboard should work fine.
JonnyMac was kind to·write a MAKE_BCD Function I needed to combine 2 ascii characters into 1 BCD Hex character. Thanks JonnyMac!
I also added the ability to TRANSFER - SEND·TEXT FILE from Hyperterminal so all the·clock settings can be entered·at once. A nice time saver than having to add in 8 characters and 8 color codes each time for each of the 4 row/lines.
As you can see from the pics, the Hours, Minutes and Seconds are in (R) Red; the Month, Date and Year are in (G) Green; and the colons, AM/PM, slashes and day are in (Y) Yellow.
The TEXT file for the "4232 Clock Settings" needs to be read in a certain format of 64 characters (settings and color codes of R, G and Y) as shown here:
11:59:45rrorrorr·· PM·· oooooooo08/02/08ggoggoggSATURDAYoooooooo
hh[noparse]:mm:[/noparse]ssrgorgorg___AP___rgorgorgmm/dd/yrrgorgorgddddddddrgorgorg
I added an un-read 2nd line in the TEXT file template to show you the format as well. It is the 8 characters of time followed by the color codes, and then the 8 characters showing AM or PM (with spaces) followed by color codes, followed by the 8 characters of month, date and year and associated color codes; finally the 8 characters of the day and the color code. The day has to be entered in a certain spacing format for display screen centering as shown below (underscores are spaces):
_Monday_· ' <- 1 space on both sides = 8 characters
Tuesday_·· ' <- 1 space on right side = 8 characters
Wednesdy· ' <- 0 spaces = 8 characters
Thursday·· ' <- 0 spaces = 8 characters
_Friday_··· ' <- 1 space on both sides = 8 characters
Saturday·· ' <- 0 spaces = 8 characters
_Sunday_· ' <- 1 space on both sides = 8 characters
Either AM or PM must be entered in with 2 spaces infront and 2 spaces behind = 8 characters.
Both the Time and Date use all 8 characters so this is not as critical on placement.
This project doesn't utilize the EEPROM yet for power loss saving - as you just connect the serial cable back up and load in an updated·TEXT file. However, I·tried adding a·3 vdc watch battery to pins 8 (+)·and 4 (-) on the DS1302 IC to save the time if power is lost but the display went a bit crazy so I might look into that.
For general operation it is as follows:
1. Build and test the circuit and code.
2. Start Hyperterminal with 38400 N-8-1 No Flow and Echo OFF.
3. Slide Program/No Program switch to Program.
3. Reset the Clock circuit (Display should be blank) with the Reset Switch.
4. Open the 6432_Clock_Settings.txt file with Notepad and edit the first line for the correct time, AMorPM, Date and Day data and save.
5. In Hyperterminal do a TRANSFER - SEND A TEXT FILE and in a second or so, the LED Display will show the correct time and date information.
Enjoy and ask your questions and provide any comments you may have.
Post Edited (T&E Engineer) : 8/3/2008 2:22:29 AM GMT
This program has some quirks but it's there for anyone who wants.
nice job with the display
Jeff T.
I was able to clean up the code a little in hopes of trying to get it to fit on an SX28 but removing un-used items such as the EEPROM statements, switch statements, etc.. and subroutines for this Hyperterminal Clock routine for the LED Display. I was also able to re-use some of the variables to cut the space down too. However, it doesn't appear it will fit at this time with an SX28 due primarily to the extended use of RAM variables. The new file is attached.
HIGH CTS
SERIN sdata
LOW CTS
GOSUB do_work
which allows for files larger than the buffer , still limited to 64 bytes at the moment
Jeff T.
The 3mm board is roughly 10" x 5" while the 5mm board is roughly double that @ ~18" x ~9.5". It's like you could almost fit 4 of the 3mm boards over 1 of the 5mm boards.
From looking at the datasheet breifly, it looks like the only difference is besides the new design layout, is the enable line is inverted compared to the 3mm board. Big deal with that one!
I hope to transfer some 3 mm displays over to this one this week and show this mamoth display off!
Keep watching....
Thanks.
Maybe next paycheck...
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Living on the planet Earth might be expensive but it includes a free trip around the sun every year...
Experience level:
[noparse][[/noparse] ] Let's connect the motor to pin 1, it's a 6V motor so it should be fine.
[noparse][[/noparse] ] OK, I got my resistors hooked up with the LEDs.
[noparse][[/noparse]X] I got the Motor hooked up with the H-bridge and the 555 is supplying the PWM.
[noparse][[/noparse] ] Now, if I can only program the BOE-BOT to interface with he Flux Capacitor.
[noparse][[/noparse] ] I dream in SX28 assembler...
/Bamse
Great news indeed! - No software changes are needed for the Message Display, ·Clock Display, or any future software builds.
More things to come. However, I may take a break for awhile as I am starting the process of buying my first house over the next few weeks. Oh God - Lawnmowing 1.5 acres...agh. lol.
Anyway - I will probably still continue just not as much for a while.
Thanks for watching.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Dan Taylor
The 3mm LED display sits on my desk now at work and it is the talk of the company I work for. I can only imagine what the big 5mm LED version would do.
Here are the links. 5mm LED Display: http://www.sureelectronics.net/goods.php?id=147
3mm LED Display: http://www.sureelectronics.net/goods.php?id=420
Shipping is about ~$23 If I remember correctly - so buy more.
On their forum (link) you will see another user that has started to design with the 3mm board and an Arduino micro-controller board in C.
http://www.sureelectronics.net/forum/forumdisplay.php?fid=14
http://www.sureelectronics.net/forum/viewthread.php?tid=18&extra=page%3D1
Let me know if you have any other questions...
Thanks for watching.
Since the data is clocked out via shift registers I guess you should get a decent refresh speed...
I was thinking of making a PONG game with one of these and wondered if the refresh rate would be high enough...
Do you guys think the refresh rate would be good enough for a simple game as PONG ?
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Living on the planet Earth might be expensive but it includes a free trip around the sun every year...
Experience level:
[noparse][[/noparse] ] Let's connect the motor to pin 1, it's a 6V motor so it should be fine.
[noparse][[/noparse] ] OK, I got my resistors hooked up with the LEDs.
[noparse][[/noparse]X] I got the Motor hooked up with the H-bridge and the 555 is supplying the PWM.
[noparse][[/noparse] ] Now, if I can only program the BOE-BOT to interface with he Flux Capacitor.
[noparse][[/noparse] ] I dream in SX28 assembler...
/Bamse
Let us know if you get one of these great displays. For the price and shipping you could either get (2) smaller 3mm boards and maybe make it into a 64x64 display - or just get a bigger 5mm one and either way it will be about $100 with shipping included in.
Brightness is determined by the PAUSEUS in SUB RCK_see.· You can increase that PAUSEUS till you begin to see flicker.
Another aspect is your clock: the faster the clock, the faster the program executes·meaning that you can "dwell" longer·on that PAUSEUS.
One clarification, since the last few posts are related to·a Real Time Clock (RTC) DS1307 chip, let's be clear that when you are refering to "Clock" - you are refering to the clock cycles generated by the use of the resonator / crystal - not the RTC.
Now they have one for the 6432 & 6416 Display Boards for $6. It most likely just run's their butterfly and star patterns as shown in the 6432 and 6416 display board pages. I like the idea of this but you need a 12 vdc with 2-3 amps power supply to bring it down to the 5vdc that the display board needs to use. I would have rather it run directly from 5vdc or given the option but hey it still looks like·a neat product to show off the board.
Let us not forget though that any micro-controller including the SX-28, 48, etc has been proven to produce some amazing results also.
Here is the link: http://www.sureelectronics.net/goods.php?id=676
BTW: I have written an article about this 6432 board and the sign/clock projects for Nuts and Volts magazine that has been approved to be released in the upcomming months (Hopefully by Christmas). Yes, PJ Allen was also given credit in the article for his share in·a large·portion·of the software development.
Here is what I stated in the article for PJ Allen:
The heart of the software is the ‘chopomatic’ subroutine and associated routines linked to it. It’s creator, PJ Allen as known on the Parallax forums originally worked on this project with me as a joint creation to get the software and hardware to work together. After this occurred, the AZKY Alliance[noparse][[/noparse]1] was formed to promote design use of this board.
Later it was revised to provide additional credit to PJ Allen:
This project ended up as a joint effort of the AZKY Alliance[noparse][[/noparse]1] comprised of PJ Allen and Tim Gilmore.
·
PJ stood up to the plate and offered his assistance to help Tim with the software and hardware development.
PJ Allen stated that he has also been able to integrate 10 characters from it’s current 8 across each of the 4 rows into the display.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
[noparse][[/noparse]1]· The AZKY Alliance was formed (PJ Allen resides in Arizona-AZ and I (T&E Engineer) reside in Kentucky-KY) on the Parallax forum to welcome any new forum user ideas and projects for this 6432 display board. The link is as follows: http://forums.parallax.com/showthread.php?p=739950 .
Post Edited (T&E Engineer) : 8/29/2008 5:00:42 PM GMT
or at your local Fry's Electronics (none arround me).
http://www.sureelectronics.net/goods.php?id=718
Remember this demo board uses a 12vdc 2A-3A power supply that regulates the voltage to 5vdc (3A max) supply for the display.
http://www.sureelectronics.net/goods.php?id=676
·
The eBay products are higher priced, but the shipping is free. When purchasing from their Web Site, the shipping increases dramatically with each item you add to the cart.
I bought several of the 16x32 boards (3mm and 5mm) as well as a bunch of their other dot matrix and 7 segment boards. Cool stuff these guys have!
They've been marked as one of my Favorite sellers for quite some time but I never bought anything from them until I came across these threads. I've been burned too many times by some of these Chinese sellers who suddenly can't speak English when you have a problem or insist they mailed your stuff when they didn't, or what happens most of the time, their stuff is just plain Smile. I've got thousands of hi brightness LED's where 3 out of 5 will go bad after about 30 days of use. Chinese junk.
But, Sure electronics answers their mail (with good English) so that's a good start. We'll see what the quality is like when my items arrive.
Thanks for the great write-ups. Looking forward to more.
Kenny
BTW: I just saw the 6432 boards on Ebay at ~$20 higher priced then on their site which explains the free shipping on Ebay. Everything evens out at the end.
Thanks for the good word.
Post Edited (T&E Engineer) : 10/9/2008 11:44:55 AM GMT
Thanks for sharing!!!
I'm sure taht i will order 5mm LED Display soon is possible...6432Disp_HTv1.SXB alredy downloaded
By the way is some vids with scrolling text on YouTube?
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Think deep......Dive shallow !!!
·
You will see this project in Nuts and Volts magazine in the upcomming couple of months or so. Probably with not much more information than what is already presented already in this forum.
I have not done much more with this project since my last post. I have my 3 mm version (in the case) on my entertainment center·with the clock version. I really love how the colors are bright and contrast each other well. ·However, I would like to transfer it to the 5 mm larger display sometime next spring and hang it on the wall of my basement. That would be a site at almost 4 times larger in size than the 3 mm version.
I haven't worked on scrolling but PJ may have. I'm not sure. Others like Bamse have developed this board for the Propeller chip and even done a PONG game which is very nice! Do a search on the Propeller forum for that if you like.
Good luck with your 6432 board!
Refreshing
Only one row at a time can be refreshed, and for maximum observed brightness the pixels need to be on for as long as possible. The maximum allowable active time is:
Maximum Active Period = 1 / (Refresh Frequency * Rows)
This time cannot be exceeded or the refresh rate will have to drop, which may result in flicker. Activating a row for less time will result in all pixels on that row appearing dimmer.
Traditional PWM
Since the displayed data is latched, it is possible to shift in new data while displaying old data.
The brightness of pixels can be varied by Pulse Width Modulation: keeping the active period the same, but changing the data during that period.
A pixel with an N bit brightness level will require:
Brightness Data Cycles = 2N - 1
To display a brightness level of B, the pixel will have to be ON for B data cycles and off for 2N - 1 - B cycles. This of course means the data rate needs to be 2N - 1 times higher.
For example, for a 3 bit brightness of level 5:
Data cycle 1: ON
Data cycle 2: ON
Data cycle 3: ON
Data cycle 4: ON
Data cycle 5: ON
Data cycle 6: OFF
Data cycle 7: OFF
Advanced PWM
PWM flicker can be reduced by scattering the ON cycles over all the data cycles. WARNING: Methods of doing this are Patented / Patent Pending and will not be detailed here.
For example, for a 3 bit brightness of level 5:
Data cycle 1: ON
Data cycle 2: OFF
Data cycle 3: ON
Data cycle 4: ON
Data cycle 5: ON
Data cycle 6: OFF
Data cycle 7: ON
Flicker can further be reduced by increasing the data rate with a subsequent increase in the number of ON data cycles required for a given brightness level. As the data rate increases, it is possible to better scatter the ON cycles, resulting in less perceived PWM flicker.
Color
Each pixel can be either red or green. Activating both makes the pixel appear yellow, with the caveat that the FET drivers can only handle driving 2 LEDs (typically 1 top half + 1 bottom half).
It is possible to drive red for half the time, then green for half the time, and letting the human brain merge them, resulting in yellow. Of course though this yellow will appear half as bright, and the perceived color may be a bit different.
Sure Electronics DP-033 Details
Refresh Frequency: 70 Hz
Rows: 32, but refreshed 2 at a time so 16 for all purposes here.
Columns: 64
EN Active Frequency:
Refresh Frequency * Rows
= 70 Hz * 16 Rows = 1.12 kHz
EN Active Period:
1 / (Refresh Frequency * Rows)
= 1 / (70 Hz * 16 Rows) = 892.857 us per Row
Shift Frequency:
EN Active Frequency * Columns * (2Brightness Bits - 1)
Brightness Bits: 8
Shift Frequency: 1.12 kHz * 64 * (28 - 1) =18.2784 MHz
Brightness Bits: 7
Shift Frequency: 1.12 kHz * 64 * (27 - 1) = 9.10336 MHz
Brightness Bits: 6
Shift Frequency: 1.12 kHz * 64 * (26 - 1) = 4.51584 MHz
Brightness Bits: 5
Shift Frequency: 1.12 kHz * 64 * (25 - 1) = 2.22208 MHz
Brightness Bits: 4
Shift Frequency: 1.12 kHz * 64 * (24 - 1) = 1.0752 MHz
Brightness Bits: 3
Shift Frequency: 1.12 kHz * 64 * (23 - 1) = 501.760 kHz
Brightness Bits: 2
Shift Frequency: 1.12 kHz * 64 * (22 - 1) = 215.04 kHz
Brightness Bits: 1
Shift Frequency: 1.12 kHz * 64 * (21 - 1) = 71.68 kHz
Reaching the higher rates isn't likely via bit-banging, and will probably require dedicated hardware (or an FPGA). I was thinking trying two channels of SPI, one master and one slave so they shared the same clock. Writing data to the slave register (red) first, then to the master register (green) which would start both transfers simultaneously.
Post Edited (Andrew E Mileski) : 11/7/2008 5:34:56 PM GMT