I'm using the
Charlieplexing shield to generate a scrolling LED display. With a 4×5 pixel display, it's a bit rudimentary, but it does work. I've got the entire ASCII set from 32 to 127 sorted out, albeit with a few compromises for the lower case e,s and z, which look rather iffy, but are the best characters I can come up with. I'm using the PROGMEM directive to put all of the lookup table into the program memory, rather than as a simple array, which rapidly eats up the RAM.
Currently the code is rather simplistic, and poorly written, so uses up RAM, limiting the scrolling message to about 70 characters, although this should be trivially sortoutable. The scrolling, over only 4 pixels wide, is a bit clunky, so I'm trying to improve it, by in effect interpolating half pixels across the display, in an attempt to generate smoother scrolling. It's proving a little harder to debug the code for generating half lit pixels, as well and fully on and off ones, but I'm confident that will be working shortly.
I'm treating the display as five four-pixel rows, to minimise the mutiplexing brightness drop, since driving each pixel individually means that each is only lit for less than 1/20th of the time. Driving an entire row at a time means that the LEDs are on for 1/5th of the time (minus a bit of time for switchover), so much brighter.
I'll put the code up here, when I've either got the half scrolling part working, or given up on it!