Shop OBEX P1 Docs P2 Docs Learn Events
LED Marquee Module for Gadget Gangster Platform (w/ video) — Parallax Forums

LED Marquee Module for Gadget Gangster Platform (w/ video)

Martin_HMartin_H Posts: 4,051
edited 2011-11-26 11:38 in Robotics
I've had this project brewing since August when I saw the NerdKits LED Marquee. Rather than use an AVR I decided to use a propeller because the multiple cogs would allow one cog to drive the LED's, another to render text into bitmaps, and a third to write user input into a buffer for rendering. This much easier than dealing with interrupts, plus I could make the marquee larger because the propeller has more pins.

So I followed the basic design, but scaled it up to 8x24. The alternate columns are charlieplexed to half the pin count and it follows this schematic:

mikeyplex.png

This results in the module use eight row pins and 12 column pins. The propeller has more pins left over and now I wished I made the module larger. But soldering 192 LED's was a chore, so I might not have finished a larger matrix.

This first spin file mines the propeller's ROM for the character set and scales it down to an 8x8 grid.

FontMaker.spin

The results were less than satisfactory and I spent about five hours hand tweaking the font to look decent. This file is the current driver software which displays the message shown over in the general forum.

LedMarquee.spin *

Still to do is to have a third cog read user input and write that to a buffer for rendering. There's also a diagnostic which displays the entire font which I will upload a video later. I'm also working on a second font which is larger, but more restricted than the general font. I also post some pictures of the module so you can see more details.

BTW Sorry prof_brainio and the other Forth guys. This project would be good to tackle in Forth, but my chops in that language aren't up to it yet.

* Updated with latest 1.1 version.

Comments

  • doggiedocdoggiedoc Posts: 2,239
    edited 2011-11-24 18:20
    Taking notes Sir! Will there be a quiz at the end?
  • Martin_HMartin_H Posts: 4,051
    edited 2011-11-25 06:50
    erco wrote: »

    The RGB modules are nice, but as near as I can tell they require 32 control lines. So additional driver chips are required. Following your link and looking for similar items lead me to a 32 by 32 RGB panel for $100! I think I already have a version 2.0 of this module brewing in my head.

    BTW not including the Propeller Platform, the budget for this project is under $10 with the LED's being most of the cost. So this is a really cheap project if you can find a source for cheap LED's.
  • Martin_HMartin_H Posts: 4,051
    edited 2011-11-25 09:28
    Here are the promised construction notes. The first picture shows the underside of the LED module next to the Propeller Platform:

    MarqueeUnderside.jpg


    This picture is a bit blurry, but gives you an idea about how the matrix is formed and attached to the row and column pins. The black electrical tape is there to prevent the PP's power LED from showing through the perf board. The next two pictures are close ups of the 12 column and 8 row pins:

    ColumnPins.jpg


    RowPins.JPG


    To construct the marquee I put in one row of LED's and folded the anodes down, and then the cathodes to the right. I soldered the anodes into a column and clipped them short as I went. I then clipped the cathodes so they would be just touch the next row. I put in the next LED row and folded the anodes to the left and solder them to the previous row's cathodes. I then folded the second row's cathodes down and soldered and clipped them. I repeated this step for all 24 rows and tested each LED, then column as I went. I dropped and lost one LED, made two polarity mistakes, and had two defective LED's out of the 192 I soldered, not bad as an error rate, and each one was corrected as I went. I also tried to align the LED's as best as possible to look neat.

    Making the row wires was next and I worked left to right and top to bottom. I took a single copper wire and removed all the insulation. I then cut the insulation into pieces just small enough to span two adjacent column wires. I then slid the insulation segments back onto the wire (not easy) and soldered the end to an anode/cathode pair. I slid the insulation segments into place and soldered the row wire to the next cathode/anode pair, and then slid the insulation into place. I repeated this until I came to the end of the row and soldered the wire to a 220 ohm resistor.

    I then glued the row (top) and column (bottom) pin headers into place and soldered the other end of the resistors to the row pin headers.

    Connecting the columns was the last construction step and the only trick is not melting the insulation of any row wires. At this point there are 24 columns, but they exist in charlieplexed pairs to 12 pins. To do this I exposed enough wire to span two columns, tinned the wire, and soldered it to the column wire. If you work quickly (or use a heat sink) the row wire insulation won't melt. Now take the free end and solder it to a column pin. The upside to the charlieplexed rows is that you can half the pin count, the downside is that you can't light adjacent columns and need to invert the logic on odd/even rows. A minor problem is that you scan rows within a column while most bitmaps are designed to scan columns, then rows. So I needed to write a program to rotate bitmaps too the correct orientation.

    The final step was testing with a 3.3v power supply to make sure all LED's in the matrix lighted as expected. At this point I was ready to begin programming.
    1024 x 753 - 66K
    911 x 576 - 64K
    899 x 578 - 58K
  • Martin_HMartin_H Posts: 4,051
    edited 2011-11-25 18:49
    Here's a video showing the entire character set. I've the ability to URL encode special characters into the text and added bidirectional scrolling. For example in the text I added a %15 to display the propeller font's square root character, and all characters 128 and below are in the font.

    Note that I updated the LedMarquee.spin file in the first note with these changes.
  • Duane DegnDuane Degn Posts: 10,588
    edited 2011-11-26 07:40
    Wow, That's the Propeller Font scaled down?! It looks really good.

    I have a 12 X 10 display I made. (You're not the only crazy one around here.) I searched the internet and found a couple of fonts I liked. I really need to follow your example and make a video of it.

    Thanks for posting this.
  • Martin_HMartin_H Posts: 4,051
    edited 2011-11-26 11:38
    Thanks Duane. I'm hoping other people reuse the scaled font to make my effort more worthwhile, as scaling it down was a bigger challenge than I thought.

    I scaled it to 16 lines tall and studied the scaled characters. I scaled it to eight lines tall some characters looked great, some needed small tweaks, and some were unrecognizable. So I went back to the 16 line font to see what important bits dropped out, and hand tweaked the eight line font until it captured the feel of the character. At the end of the five hours of font tweaking I started being able to figure out how to tweak the the characters by looking at the binary in the source. It's weird what the brain can do with enough practice.

    I want to add a simple graphics API to allow for uses other than just text display and font animation commands. I would then add a serial line control protocol, so I can control the marquee via bluetooth from a PC. Given where I want to take the project, porting the Spin to Forth may be ideal as Forth already has an interactive command line. The PC program could just send Forth words to initiate display operations. But I could also use Mike Green's FemtoBASIC as the basics an interactive parser.
Sign In or Register to comment.