December 22, 2024

Hacking Nokia 2760 caller ID LCD with MSP430

      For quite a long time, I had my Mom’s Nokia 2760 lying idle. So, when I thought of putting it into a good use, the LCDs caught my attention.Nokia 2760 caller ID screen is a 96×65 Monochrome LCD with a blue backlight. Here, I have written the driver code omitting graphic options like drawing line, chars, shapes etc. Just the pixel level access of the display is implemented in MSP430 microcontroller. A PC side program written in C++ is used to stream a 96×65 Monochrome bitmap image to the display through UART.


STREAMING IMAGES FROM PC:

   Any monochrome image of size 96×65 can be streamed from PC through serial port to the msp430. The source image processing in host side is done using OpenCV library. The pixels are offset,concatenated and mapped to LCD’s byte. Then the bytes are transferred through COM port at Baudrate of 9600. The following diagram shows the architecture of host side application.

MICROCONTROLLER :

    Since the MSP430 Launchpad supports a maximum baud rate of 9600bps, the data stream is received by MSP430 microcontroller at the maximum baudrate (9600) and is packetized. The column wise bits(since each pixel is monochrome) are extracted and are bit banged to the LCD using software SPI. The firmware layout of MSP430 is shown below.

BLOCK DIAGRAM:

   The host side application when combined with microcontroller side firmware through the serial interface, we can stream any monochrome image from pc using C++ application and view it on the tiny NOKIA LCD. The overall functional diagram is shown below.


LCD DETAILS:

    The schematic of the caller ID LCD of nokia 2760 is shown below.


PIXEL ADDRESSING:

        Here a depiction of pixel addressing of LCD is shown : (click on the images to view with full clarity)
      Now let us take a look at the zoomed version of the first region. ie. Column=0x10, Row=0xB0 (Shown with 16 sub regions 0x00 to 0x0F)
        
   To display the above simple pattern, the access command sequences will be:


                   Spicmd(0xB0); // Select Row 0xB0
                   Spicmd(0x10); //Select Column 0x10
                   Spicmd(0x07) ; //Select sub-Column 0x07
                   Spidata(0x00); // All 8 pixels black
   So any pattern can be drawn by modifying the addresses and data to be written in the above mentioned command sequences.The LCD’s initialisation command sequence is obtained from rossum’s webpage on nokia lcds.

FINAL OUTPUT:

   A troll image is streamed from PC to NOKIA LCD through COM port. This firmware for MSP430 can be ported to any platform by tweaking the macros and minimal modification of functions.

Author Profile

Bharathi