I received a broken Led Lamp. Broken as in: The housing was smashed beyond repair, wires were torn from the batteries and board, but i did a quick test and all leds were fine. So the very first thing i did was cut it up and test a muliplex setup:
So the multiplex setup was working in first tests, as seen above, but with the plans i have in mind for this project and board, i wanted that part to be easy.
Since wiring and coding a full multiplex setup really complicates code a lot when you want to use custom commands, text, and graphics.
So what i did was resolder all the leds in to common row anodes and common column cathodes.
2 74hc595 Shiftregisters drive the columns.The rows are sinked through transistors triggered by the MSP430.
After i updated the software of the DIY ledscreen, i started an endurance test using 2 panels, 40 leds, on 2 cheap double A batteries, that eventually ran for 3 MONTHS!!! after that it was only readable with lights off, and looking straight at it, so i pulled the plug and drank a beer.
So what i did in the software, was build a basic ascii set (32 till 126).
Each character consists of a varying number of Columns, each represented by a Hex value corresponding to lighted or dimmed leds in the column. I have an array containing the starting columns of the characters (offsets), and char length is calculated by taking the next offset minus the actual one.
Works pretty fast, and with limited codesize.
Font was made with an OpenOffice calc sheet where I could fill in ones and zeroes in a 5x5 grid (max char size), and reported the Column Hex Value below. That way I at least had some visualisation of what I was doing. Capital font is looking pretty good I think (some small changes needed), but with the small font I was just experimenting, and it shows.
The space between characters is also coded in, saving one column per char, which gives some more memory space.
For those not familiar with the MSP430 range, the chip used has 16KB flash and 512B of Ram, but i want to keep it as portable as possible, also to the lower ranges. And with me being used to developing 2d games within a framework, I had to change my coding methods quite drastically. It's still not pretty, and can be optimized A LOT still, but working on it :)Main advantage of the MSP430 is that it's ultra low power. No low power modes actively used in this context yet, since it's currently using every cycle for drawing and updating, but once i move stuff to hardware pww and such, it might make a difference. But still, it ran for 3 months on 2 AA batteries :)
After the endurance test i added the LED panel i still had ready. Soldered a connector to the board and glued/soldered the panel to the other two, and voila, extended ledpanel.
And I now have basic serial communication working. I can add characters to the main message variable using hyperterminal on my pc.
No control codes yet, like wipe, backspace, etc, but the receiving and processing part works, so should not be an issue.
Next To Do: Those controlcodes, and serial graphics!!