May 14, 2024

Raspberry Pi based Monochrome Video Playback in Nokia 2760 caller ID LCD

Previously, I was successful in interfacing a  Nokia caller ID LCD using MSP430 microcontroller. This time I wanted to drive it using the $35 single board computer – Raspberry Pi to display vital information like CPU temperature, IP address or any notifications. This idea then turned into something fun and better. I thought why not we try to play a simple video on the LCD driven by Raspberry Pi?
Components used :
  • Raspberry- Pi  – ARM 11 Soc based Single board comp @700MHz.
  • Nokia 2760 Caller ID LCD
  • Hirose connector for LCD
  • Connecting Wires 

PROJECT:

The first step is to display a static image on the LCD. I ported the code which I wrote for MSP430 microcontroller to Raspberry Pi in python language. The code worked well displaying a monochrome image on LCD. However, the display rate is not at all satisfactory. This was no surprise to me since python was very slow in execution and GPIO driving. Then I went back to good old C++ and ported the code and tried sending the image to LCD. The transfer was almost instantaneous and extremely satisfactory.

RASPBERRY PI:

It is a single board computer with BCM-2835, ARM-11 System on Chip running at 700Mhz with 512MB RAM and few other peripherals like USB, Ethernet jack, HDMI, RCA video out, GPIO, SD card interface etc. More details can be found at Raspberry-Pi wikipedia page.

VIDEO GENERATION:

The aim was to display video in the LCD; which means that atleast 25 images have to be displayed one after another in the LCD within one second (25 frames/second). Now that the setup and the driver code is ready, we need images to pump into the LCD.
  • Convert any video(preferrable b/w) to 96×65 resolution(LCD) using Any video converter
  • Extract image frames from this video using video- image converter software
  • Convert these images into bitmap(raw)images 
All the above could be done using OpenCv library though I didn’t use it this time.

BLOCK DIAGRAM:

LCD DRIVING:

So now that I got around 1800 bitmap images from the video, its time to burst them into LCD at 25 images per second. All the driver code is written in plain C++ so it doesn’t require other libraries to work except the Broadcom GPIO C library. 
More details of interfacing can be found in my other post here.

DEMO:

A pivot animation is being played here( it starts at 0:26) with a simple background music for fun. Enjoy!! 🙂