What is a computer without an user interface? And which user interface is better than just LEDs? Well, LCD! Man, it can talk and show pictures.
I have been reading since long about interfacing a Nokia 3310 LCD to many different microcontrollers. There are many libraries available for these different microcontrollers that make programming these devices trivial. But where to get these devices? Luckily for us Indians, it is ridiculously easy to procure one of them. I just went to Chennai’s Ritchie street and got myself one. Not only did I get a monochrome 3310 LCD, I also got a 4K colour LCD that comes with the Nokia 6610!
The shop was in the dingiest of places. You could never suspect that civilization could exist there. But there it was, teaming with activity. Here you could get virtually any replacement for cell phone spares. What’s more, I saw cell phone repair manuals, with complete schematics! I wonder if these came from China, there was markings in a foreign tongue resembling the Chinese language. Every major Indian city must have one of these shops.
I first asked for a Nokia 3310 display. The shopkeeper promptly asked me if I wanted “O.G” or duplicate. The “O.G” meant original. Beware, these are really not the original spares themselves, just two different qualities of the counterfeit spares available in the market, as I later found out. The 6610 colour display came as a separate package, just the LCD, but the 3310 LCD came with a frame, it also had the ear piece. For some wierd reason, the shopkeeper warned me not to remove the earpiece. I ignored him since I needed space to shove in a capacitor. Things are fine. The “original” and the “duplicate” items had a difference of Rs. 25 among them. The “originals” for the 3310 and the 6610 cost me 150 and 350 respectively.
The 3310 is very simple to interface. It can talk to the SPI port of the AVR or any other microcontroller. It uses a Philips PCD 8455 controller that is simple to understand. But why reinvent the wheel for regular tasks? There is a wonderful library written by our friend, Louis Frigon. You can see that here. So I went about making myself a simple AVR programmer as described by Pramode in his wonderful article here. I was previously running off a breadboard. This time around I bought a ZIF socket for easy installation and removal of the chip being programmed. This can save a lot of time and it is also gentle on the chip.
Then came the part of soldering the 8 wires on the Nokia LCD. Well you don’t need 8, but 7, since pin number 7 is connected to a capacitor that is grounded. I normally use a 10W soldering iron that is available usually for Rs. 20, but this time I knew the old guy was not a match for the precision required for the job. So I got myself a relatively expensive one from Goot that came with a sharp tip.
With this iron, it was easy to solder the wires. I also managed to solder the 4.7 uF electrolytic capacitor on the pad itself. But I guess I pulled the wires a little bit, some pads then became loosely connected, internally, as I would later find out. If your soldering is bad, don’t even try it! Get someone who can do it for you. If you are too used to the breadboard, you may find this a tad difficult. Connecting these many flimsy wires to a breadboard can be a pain. So, I decided to use a general purpose PCB.
The LCD requires a 3.3 V power supply. I’m sure that a 3V power supply will work. Some sites also hint this. But I wanted to try out 3.3V, since I have never used components for that before. I called up my hardware wizard friend, Selva, my ex-colleague from Novatium. He suggested either LM317 or LM1086. There are fixed and adjustable versions of these useful chips. I suggest that using the 317 with 2 resistors is a simple way to avoid using the pricey LM1086 that costs Rs. 250. The LM317 costs a mere Rs. 15.
When I connected power and switched on, nothing! Well I rechecked and powered on, nothing again. I got this very familiar feeling of frustration. On closely examining the LCD soldering I saw that I had pulled the wires hard and the pads were not in their natural shape. I pressed the pads down with one finger and then powered on. And there I saw the words “God is Great”. With a line I had drawn from (1,1) to (30,30) just to check out the line routine.
LcdStr(FONT_1X,"God is Great");
Now is time for something more interesting.
The Colour LCD
Well, working with the monochromatic 3310 LCD was easy and just a few hours work. The colour LCD will be challenging both in terms of hardware(the pads are microscopic) and software. There is no library available.