Finally we want to do something useful with the Ledmatrix. The ultimate Project would be an Gameboy Display sized RGB thingy. But this is too complex and can’t be done with a few and cheap parts.

Lets say you go for 160×144 Pixel, so this makes 90 panel you would have to feed which data and have to be powered up. If you would take an Atmega88 to drive 2 panels, which is realistic speaking of ram and CPU power. Doing 25 frames and 16 sub-frames each for the PWM. The display driver would be really stupid and just receive data from an PC via Serial or USB. If one driver got his data to display a frame it would stop reading and just forward the data to the next display driver. So all the data processing is done on the PC side. But then you would end up daisy chaining 45 Atmega88.

This can’t be done with Serial IO or SPI anymore.The bandwidth is not high enough to feed all the data thru the chain and still have a good framerate. So bye bye mPlayer plugin and gnuboy. Maybe this can be done via USB, but you would need more than one channels. Yeah no problem just use a hub, but then you would get bad syncing problems. End of the line, can’t be done with such a simple approach.

Peaking at other projects, this could be fun but also needs a lot parts and time. Since the panels only have red and green channels it doesn’t seem worth the effort.



Today we added support to display graphics on the matrix. Used some simple and not optimal color conversion routines to display an RGB pic in the RG colorspace…doesnt look too bad.


Ported the glcd lib to the Epson based Nokia LCDs. I tried to leave the code portable so that you can switch between the Epson and the Philips controller via a #define switch.

Actually i only changed the lowlevel hw access and init functions to deal with the Epson controller. Currently native screen rotation is implemented but i didn’t work on the hardware scrolling stuff. May i’ll do this later.

pic1 pic1 pic1 pic1

download source

Got my Nokia 6100 LCD working. Long story of failures. First try was a LCD with a Epson controller from ebay for 10 Euros. But somehow someone failed to solder the smd socket proberly and it went a way 😉 ( thx max ) .

Next try was a Epson based LCD including a header board from sparkfun . But this time i wasn’t able to run some demo code which was made for the LPC2138 on my LPC2148. I think the board was to fast to talk to the display. I wasn’t able set up SPI on the LPC2148 correct. Need more investigation on that topic.

So i gave up at this point and decided to go for a atmega16. I did a devel board for that which is losy based on this schematics. The boads uses simple parport icsp and has a serial line for debugging and sending data.

Finally i threw some code together using the init commands found in this project. Added support for receiving images via uart and wrote an little python client for sending images.

Future plans are to port the glcd lib to the epson based lcd.

pic1 pic2

download source

Not me? Just did some more or less useful stuff with my STK-500 dev boad. I took 64 leds and formed a 8×8 matrix out of them, solderd them onto 2 layers of ciruit boards. The leds are connected to 2 8Bit IO-Busses of an Atmel AT90S8515. I use one bus to select a row and the other bus to write on byte into a led-row. since iam changing the rows very quick, you won’t see an flicker. actually it’s 100hz refresh rate.

Then i a wrote a litte library in C using AVR-GCC to access the matrix like an framebuffer. Also funny stuff like scroll text is included in that lib. On top of this a wrote some code to interface the Atmel to PC’s serial port. That incoming data from the SIO get’s displayed on the led matrix. So that an echo “\xFF” > /dev/ttyS0 on the linux box will light up one row of the led matrix.

Last but not least i took a XMMS template plugin. Reworte it so the level output of the vu-meter is cutted down to 8 values. These values get sent to the PC’s serial interface.that’s it.

AVR Matrix AVR Matrix

Picture 1

Picture 2

Picture 3