I have managed to salvage the LCD screen from an old Tom-Tom (the model number of the screen is LTE430WQ-F0B-0BS). It comes with a driver for the screen on the back, but it doesn't look humanly possible to solder/interface with it in any way. However, this driver connects to 4 wires going into the LCD, which look easy to solder. I was wondering whether it'd be possible to skip the driver already there, and simply connect the 4 wires to the GPIO of an Arduino or something similar. I have looked for some time for this solution, but only found data sheets which referenced the on-screen driver.
Interfacing with an LCD screen
i2clcdspi
Related Solutions
The problem with using a microcontroller to drive an LCD is that an LCD requires constant attention. This can be mitigated with a CPLD driven over SPI (using DMA, of course), but then you run into the other problem: Color LCDs require a lot of data. 320x240 in black and white is marginal at 9.6KB, but make it 24 bit color and suddenly you need to deliver 230KB of data in 1/60th of a second. (Don't forget, though, that you can get 4-bit, 16-color control just by tieing the low 20 bits to one setting). A 24-bit frame buffer no longer fits in onboard RAM on most microcontrollers, and you probably don't have time to read from an external RAM chip, clock the data out, and still do other processing. Trying to do this with a CPLD (or an FPGA) and a RAM chip gets you well over the $2 price that caused you to balk in your question.
The traditional solution to interfacing a microcontroller with a color LCD is a display controller like an SSD1963. Here's a very simple block diagram:
Parallel input to a big RAM frame buffer (Translation: More than $2) interfaced with a register-configurable parallel LCD interface. The parallel input is usually compatible with a memory bus interface.
The color LCD market is not always easy to find on the web, usually being the domain of OEMs only, with the rest buying displays from companies who integrate the controller with the display. The best resource I've found has been Crystal Fontz, specifically this page on choosing graphic LCDs. Scroll to the bottom for the controllers, which include the following options (note: Not all are color controllers):
- Epson S1D13521B01 E Ink Broadsheet (1 module)
- Epson S1D13700 (11 modules)
- Epson SED1520 Compatible (8 modules)
- Himax HX8345 Compatible (1 module)
- ILITek ILI9325 Compatible (3 modules)
- KS0107/KS0108 Compatible (26 modules)
- Novatek NT7534 (14 modules)
- Orise Technology OTM2201A (1 module)
- Orise Technology SPFD5420A (1 module)
- RAiO RA8835 (1 module)
- Sanyo LC7981 (13 modules)
- Sino Wealth SH1101A (2 modules)
- Sitronix ST7920 (29 modules)
- Solomon SSD1303 (1 module)
- Solomon SSD1305 (9 modules)
- Solomon SSD1325 (2 modules)
- Solomon SSD1332 (1 module)
- Solomon SSD2119 (2 modules)
- ST STV8105 (1 module)
- Toshiba T6963 (23 modules)
The Renesas R61581 is an intelligent display controller that handles all of the high bandwidth tasks needed to refresh the display. The control interface allows a microcontroller to send commands and data to load the in-built video RAM. It is an ideal choice to drive with a medium scale microcontroller.
The datasheet can be downloaded here.
Much of the datasheet refers to connecting the controller to the LCD glass, which you won't need to worry about. The controller has a multitude of host (microcontroller) interface options, but the simplest and easiest way to start is probably by configuring it for 8-bit parallel data access (so long as the display gives you access to the IM pins to set this up, otherwise use what's provided by the display interface). The datasheet includes a comprehensive command reference.
When you can initialise the controller and write a few pixels, then you're up and running and can develop your graphics code incrementally.
Have fun!
Best Answer
Those 4 wires do not go to the LCD, but to the touchscreen. It is most likely a 4-wire resistive touchscreen.