RSS YouTube LinkedIn Twitter XCore IRC

Search

Projects Forum

Enter your XCore Exchange username.
Enter the password that accompanies your username.

Forgot your password?

Sign up for an account

Things to do: Search all projects, Create a project

Nokia 6100 Display driver (PCF8833 controller)

by Bianco

  • Status: Complete
  • Downloads: 640
  • Licence: Please contact author for terms
  • Last updated: 16/Dec/2009 at 05:20 PM
  • Sponsors:
  • Wiki entry: View project wiki entry

Version 1

Size: 1355.45kb

View older versions

Project Overview

Introduction
This is a driver for the Nokia 6100 (knockoff) Display with NXP PCF8833 controller.
This display has 130x130 pixels with 12bpp (4096 colors) and uses a 9 bit SPI interface.
This driver supports only 12bpp (the controller supports also 8bpp and 16bpp).

Controller compatibility
The Nokia 6100 (knockoff) display comes with two different controller which are not fully compatible with each other: NXP PCF8833 and Epson S1D15G10. A possible way to distinguish them is that displays with the NXP controller likely have a brown flexible PCB and Epson a green flexible PCB.

Where to get this display?
Sparkfun (also sells breakout boards)
Ebay (usually better pricing)

Driver functionality

  • Draw pixel
  • Draw line
  • Draw and fill rectangle
  • Draw circle (no filling!)
  • Draw character
  • Draw string
  • Draw image using a raw image buffer

Acknowledgement
Large part of the driver is based on the driver written by James P Lynch.

bmpdump
bmpdump is a utility written by me to convert a 24 bit uncompressed BMP image to other formats. It can be used for this driver to convert an image into a bitmap C array (12bpp) for the image drawing function.

License
Do whatever you want with the code.

Project awards

Verified to run on

Videos

Images and diagrams

Rate this project


5
Average: 5 (8 votes)
Your rating: None

Share this project!

Twitter Icon Share on Twitter

Twitter Icon Share on Facebook

submit to reddit Share on Reddit

Comments / Updates

Heeyy

Hey, this is nifty! You did a really good job! I'm still trying to.. uh.. get used to XMOS :D I've used the Arduino previous to getting a XK1.

This gives me hope! I've got the 6610 LCD, but it's the Epson controller.. dun dun dun! :) lol I think I may have to take a look at your code and hopefully implement the Epson code set instead.. hope you don't mind! And *if* I can accomplish this, I'll post it here as well! I'm sure I'll have quite a few questions. :)
I do have code on the Arduino that does work, but it implements software SPI and well doesn't include circles, images or anything that uber! That should give me a starting point!

But good job again, I'm really glad to see that you got it running at that speed, let alone at 12 bit color, we only had it running 9bit on the Arduino.

I purchased a VDIP2 a few weeks back.. and was only able to print some text files to it, using the TTL connection.. but seeing video played from it.. I'm jealous, lol, time to really get into the XMOS!

You sir, are a champ! Keep up the good work, and now it's time for a few all-nighters to try figure out some code!:D
EDIT:
(and I noticed you updated this on my birthday, this is a whole 'nother present in itself! :) I've started to try at some code, but already confused:D, got to love learning)

EDIT #2:
I've implemented the Epson commands, and changed some of the statements for initializing the LCD. (I haven't got anything to work yet, no pixels to show up or anything, still not able to initialize right, I'm sure it's newb errors, but any insight you could offer would be awesome!:))
http://www.xcore.com/forum/viewtopic.php?f=10&t=108

Awesome

Great project

Correction: lcd.h should be

Correction: lcd.h should be nokia6100.h.

As you can see in the upper

As you can see in the upper picture the only parts are actually an XMOS processor (in this case an XC-1 board) and the display. The tiny PCB is just a converter print to convert the tiny SMD connector to dual inline. The wires to the XC-1 are for SPI and resetting the display. The backlight needs about 7V, so i hooked up my lab PSU to it (you can see the probes).

For more detailed information see the lcd.h header file or Jamie P Lynch's document (it's included).

Ceiling cat!

I must say that made me laugh out loud. I love how we have adopted the lolcats into our community. Great photos btw.

Very nice

It would be helpful to know what resources are needed for the basic driver code.

And it would be great if there were a link to your project in the list of Examples on the Sparkfun page.

Getting the first stuff on

Getting the first stuff on the display took me 1 or two evenings because there was a bug in the initialisation routine of the display. Most of the time i spend to format the source code, adding comments, writing the bmpdump tool and making things nice. Also most of the driver routines are not written by me, that saves a lot of time.
The 3D cube demo i copied from someone else, that is why it is not included in the source package ;).

An interesting detail:
The LCD controller is specified to run at maximum 6MHz SPI, i got it running at 33.33MHz pushing out 53FPS at 12 bit. That makes it possible to do some decent video playback :).

This is too cool!

Super video! Out of interest how long did it take you to develop?

X
X