I’ve been using Nokia 5110 LCD screens for a while now they’re 84x48px have a built-in back-light and are really easy to use and quite cheap. Recently though whilst working on my drum machine I found myself wishing for a few more pixels. I want to show a “pattern view” of 16 tracks with 16 steps plus some additional information and 84×48 was getting too tight.
As luck would have it I stumbled upon a thread in the dangerous prototypes forum all about another cheap B/W LCD of a similar type from another Nokia phone (the 1202) which looked quite interesting.
They have 96×68 pixels and also have a built-in back light and need no external support components. 96×68 pixels may not sound like much more than 84×48 but it’s more than enough to make a difference.
Two other important differences other than the number of pixels.
Firstly the 1202 uses a 9bit SPI packet rather than the more “normal” 8bit packet plus discrete data/command (D/C) signal that the 5110 uses. The first bit of the 9bit packet indicates if the packet is a command or data byte. unfortunately Microchip PICs only support 8,16 & 32 bit SPI modes in hardware so this means modifying my code to use a software 9bit SPI mode. However a bonus is that we only need three GPIO to interface with the LCD (SCLK, MOSI, /CS) rather than 4 on the 5110.
Note: It’s actually quite easy to implement a hybrid SPI mode for 9bit. For each transfer you disable the SPI hardware module and manually toggle the clock and data lines for the 1st bit. Then re-enable the SPI module and send the remaining 8 bits with hardware by loading the SPI buffer. It sounds like a lot of work but it’s surprisingly easy and fast. It does mean though that you probably couldn’t use DMA transfers as they’re set up around multiples of 8 bits – not that I was using DMA anyway…
The second difference is that whilst they are cheap, they only seem to be available as a bare LCD meant as a replacement for the phone. They don’t have any mounting holes, brackets etc. and are connected via a short length of flexible PCB material ending in a series of 12 pads with a very small pitch (0.6mm) intended to be soldered directly to the phone PCB. Note: Of the 12 pads the two outer ones (1 & 12) are not electrically connected, I guess they are for additional mechanical strength only.
No one seems to sell them in breakout format unlike the 5110 which you can get from load of places like Sparkfun.
Side note about Nokia 5110 breakouts;
There appears to be two pin-outs schemes for Nokia 5110 LCD breakouts out there on the web. I’m using what I’m calling the Sparkfun layout. See https://dlnmh9ip6v2uc.cloudfront.net//images/products/1/0/1/6/8/10168-03.jpg
The other popular arrangement is the Adafruit layout. See http://www.adafruit.com/images/medium/nokia5110back_MED.jpg
Both are electrically compatible just with different pin-outs.
Just so you know…
Any way, back to the Nokia 1202 screen.
So the solution to that is to make my own breakout. I’ve been using the Sparkfun Nokia 5110 breakouts in my projects so I wanted something that would drop right into the same footprint. This means making a bit of a compromise and having an un-used pin but it’s worth it not to have to revise my existing hardware (At least not for the moment).
There’s lots of more techincal information about the LCD and its driver chip here, it’s in a mix of Russian and English but not that hard to work out. They have also very helpfully offered an Eagle library for the LCD and flex connector pads that I used as a starting point for my own breakout.
The circuit diagram is really simple. The only components on the board are optional. C1 is just for decoupling and the two “grey boxes” are different ways to control the backlight. The first option (R1) is just a simple resistor on the cathode of the backlight. The second option (R2,R3,Q1) allows for a transistor to switch the backlight if for some reason you wanted to.
The circuit layout is simple too. The arrangement of pins follows the same format as the Sparkfun 5110 breakout with pin 5 being unconnected as we don’t need a D/C signal. The mounting holes are the same too for maximum compatibility. The only thing significant that isn’t the same is the lack of a duplicate row of pins at the top of the board. There wasn’t enough space.
I toyed with the idea of passing the LCD flex connector through a slot in the board to pads on the back side of the board. That would save space, but would require some very careful measuring and in this instance I wanted the simplest solution that I could be sure would work first time so I went for the connector on the top.
The layout fits easily within the 5x5cm service offered by Seeedstudios Fusion PCB service. I had it made up on 1mm FRC as it was no extra cost and I wanted to make the thing nice and small and light. It came out perfectly!
Soldering the flex connector to the board was actually pretty straight forward. I snipped about 1mm off the end of the flex to make sure that the tracks were exposed at the edge of the flex material. I pre-tinned the pads on both the PCB and the flex with a little dab of solder and a lot of flux. Then I positioned the LCD on the board and glued it with a couple of dabs of superglue. One in place and dry I dolloped some more flux in between the PCB and the flex then gently applied pressure with a pencil to each pad at a time whilst heating it very briefly with my soldering iron.
Here it is in place in my drum machine. Now I just have to make use of those extra pixels… That’s another story.
If you’re interested in making your own breakout you can download my files from here on github