Thursday, July 17, 2008

Nokia 6100 Test utility

I haven't quite gotten to the framebuffer driver part yet, but in the meantime I came up with this user mode application that displays some graphics and a bitmap on the Nokia lcd screen.
Basically it is the combination of the two separate test apps (lcdtest & lcdimg) included in the driver, described in the previous post.
The main difference is that this program doesn't require any drivers to access the screen, it initializes and uses the pxa255 ssp controller to communicate with the screen.
By default it assumes the screen uses an Epson controller. To use with Phillips controllers, only a simple change is required: in the main() function, the first parameter of the lcdInit() call has to be changed from 1 to 0.
The program draws some simple graphics : lines, circles, text. And it also loads and display a bitmap from raw image file. Therefore it is important to transfer the cat.rgb file to the target, together with the executable.

Download : nokiatest-0.01.tar.gz

It can be seen in action below :

Now it's really time to get that framebuffer driver going ...

Thursday, May 15, 2008

Nokia 6100 Lcd Linux Driver

This is a Linux driver for the Nokia 6100 compatible LCD screen ( I got mine from Sparkfun Electronics ).
I wanted to get it working with my Viper-Lite development board, which runs Linux. Since I didn't find a driver already available, I figured a take a crack at writing one myself. ssplcd is the driver I ended up with. It is published under the GNU General Public License, without warranty or support.

The Viper-Lite uses a PXA 255 processor, and I do know about the Gumstix driver, which is for Linux and the same processor. But I wanted something more generic, that can be used by applications to access the screen.

My driver is a kernel module (tested with 2.6.24.3) also, but - after it has been loaded - it can be used by applications to access the screen as a file, send ioctl commands to it and write data to it.
It has only been tested with my devel board, using the PXA 255 processor, so I'm not sure about any other kind of hardware. But it should work ok with other PXA 255 based systems, like the Gumstix computers.

Also, my lcd has an Epson controller, so it hasn't been tested with Phillips controllers at all.
There's more information available in the README in the archive.

Download : ssplcd-0.01.tar.gz

I know that the current programming interface is a bit awkward. If I'll have enough time, I want to look into writing a different, framebuffer driver for the same device.

Update: you may also be interested in the linux framebuffer driver here.