Driving a Nokia QVGA screen with Arduino (or any uC)

This is a Nokia 6300 screen. It’s a 320×240 display that has about 2″ of diagonal viewing area and boasts 24-bit QVGA TFT technology. It’s going to look fantastic in your next project and it won’t be hard to get up and running thanks to the hardware and software guide which [Andy Brown] put together. He chose this display because of its features, but also because it’s really easy to source and can be had for $5-7 delivered. The guide is aimed at working with the Arduino MEGA, but we’re sure you can port it for just about any microcontroller you’d like.

Much like the FPGA PSP display we just looked at, [Andy] chose to design his own PCB to host the LCD. This makes it a snap to attach the LCD — literally, since he managed to source the correct snap-in connector. The board also hosts a constant-current LED driver which takes care of the backlight, and allowed him to build in a level converter (since the screen communicates at 3.3V but Arduino uses 5V logic).

The software tutorial is lengthy but impressive. We’re surprised at the performance he gets out of the AVR chip. See the screen cycle through a set of demos after the break.

Comments

  1. atomsoft says:

    Awesome!

  2. Philippe says:

    QVGA porn… :-)

  3. Tom the Brat says:

    Philippe: Works for me ;)

  4. DarkAnt says:

    This is really great. I was unaware I could obtain a display like that for $5-7. Thanks Andy

  5. spiralbrain says:

    Amazing!

    This LCD is just $5 on ebay!

  6. Salomon says:

    Boards are sold out!

  7. Hackerspacer says:

    I would buy this is the driver works with the 1.0 IDE, doesn’t take a million pins and the driver isn’t crap.

  8. Hackerspacer says:

    but we’re sure you can port it for just about any microcontroller you’d like.

    This board is specifically made to work with megas due to the pinouts and ease of direct (fast) writing. But one could port it, sure.

    • nes says:

      Nope, he’s using the XMEM interface which is specific to higher pin count AVRs. Otherwise you’re reduced to bit banging the handshake lines which would suck so hard you might as well have just used a display with SPI instead.

      Anyone know of any cheap Nokia LCDs with SPI? I know of 1616/1661 (about $3 a piece) but the resolution is only a quarter QVGA.

  9. EschatologicalEngineer says:

    Would using an I/O expander work? MCP23S08 is what comes to mind but perhaps even a 74hc595 shift register could be used. I’m likely overlooking someting that would prevent this solution from working but I thought I would throw the idea out there.. Thanks for your time.

    • ginbot86 says:

      Unfortunately no. Bit-banging the 8-bit parallel interface is slow. Using a shift register is even worse. The reason this works so well is because it uses the high-end ATmega’s XMEM memory controller interface to directly send data to the LCD screen. Unfortunately this means that the regular Arduino MCUs (the ATmega328P, etc.) can’t use this library; it just doesn’t have the required hardware interface.

  10. Bogdan says:

    I used to use a siemens S65 (?) LCD for projects. Cheap, connector which was solderable. Then it was nowhere to be found. This is the problem with phone LCDs…. once the model is too old, you won’t be able to find it. In the graphics LCD section you can’t really find a 2×16 equivalent(something trivial, made by many, always available).
    Given the nature of the high resolution, there’s no reason to consider a small uC for it.
    I found this as a reasonable alternative, but haven’t used it yet. Anyone? http://www.soselectronic.com/?str=1098

  11. Tomsk says:

    Actually, if you dig into the code, he has implemented a GPIO version of the drivers. Can’t find documentation on how to invoke it properly, but I’m sure I’ll work it out eventually… He does point out that it is rather slower, but should be possible to get it working on more common or garden Xduino boards. And then maybe port to Raspberry pi, etc?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

Join 94,612 other followers