Salvaging Liquid Crystal Displays (LCDs)

480,072

2,585

307

Published

Introduction: Salvaging Liquid Crystal Displays (LCDs)

About: I am a photographer, a tinker, an electronics technology engineer, and author; I write short stories and poetry for the love of writing. I started writing poetry in high school over thirty years ago where I ...

Almost all electronics have some sort of human interface, from blinking lights and beeping speakers to seven segment alphanumeric and Liquid Crystal Displays. This Instructable is about salvaging and testing Liquid Crystal Displays, and a couple tricks I know to make salvaging them more successful.

I salvage; components can get expensive, LCDs can run $10.00 and up even SCRs and mosfets can cost over $100.00 so I salvage everything of reusable value as well as recyclable. Scrap metals like copper, gold, silver, and aluminum can bring you money as well.

Liquid Crystal Displays can be found on CD players, Phones, and printers just to mention a few. In this Instructable I will be dissembling an HP combination printer, scanner, fax machine.

Step 1: Tools & Supplies

Assorted Phillips Screwdrivers
Assorted Torx Screwdrivers
Assorted Pliers
Side Cutters
Spring Loaded Tweezers
Large Soldering Iron
Small Soldering Iron
Utility Knife
Dremel Set
Arduino UNO Kit
Wires
Solder
Goop Glue

Step 2: Disassembling a HP Psc 750xi

Printers & scanners are simple to dissemble, just remove the screws and take out the parts most of the screws are under the lid, on the back, and on the bottom of the printer & scanner.

Even when the screws are removed the plastic housing panels are clipped together with tabs holding them in place. Work your way around the individual panels to find the tabs and unclip them. Plastic is recyclable and some plastic recyclers pay for the plastic so don’t just throw the plastic in the garbage.

The control module of the printer scanner contains the control buttons and the Liquid Crystal Display. It dissembles by removing the five screws on the back.

I sort the parts into two groups Electronics to be stripped for parts and gold, and mechanics like guides, gears, and stepper motors.

Remember metal is recyclable and almost all recyclers pay for scrap metal so if you don’t keep it sell it.

Although the LCD module looks different than the other TN STN FSTN LCD modules in this Instructable it is connected the same way when testing.

Step 3: Chip on Glass Liquid Crystal Displays (COG LCD)

Chip on Glass (COG) LCDs have the driver IC on the glass near the input pins or ribbon connector (The rectangle on the glass near the pins & ribbon) and they come in serial data input as well as parallel data input like TN, STN, and FSTN modules. Many of the serial data input COG LCDs have the same number of pins as the parallel data input LCDs, so with COG LCDs the datasheets are more important as the inputs purpose is not easy to see when you are just looking at the LCD.

As well as the attached datasheet here is some pin outs for COG displays, many of the data sheets have the Display in the part number such as, S161COG, 16x1 COG display, S162COG, 16x2 COG display, and 64128L 128x64 graphic LCD display.

The contrast circuit for COG LCDs is the same as the contrast circuit as TN, STN, FSTN module.

Pins Right to Left
8 Pin 16x2 Character COG LCD

PIN SYMBOL FUNCTION
1 VOUT DC/DC Converter Out
2 VC Capacitor Positive (-) side
3 VCC Capacitor Negative (+) side
4 VDD Power Supply for Logic
5 VSS 0 Volts Ground
6 SDA Serial Data Input
7 SCL Serial Clock
8 RST Reset Signal L = Active

8 Pin 16x2 Character COG LCD

PIN SYMBOL FUNCTION
1 RST Reset Signal L = Active
2 SCL Serial Clock
3 SDA Serial Data Input
4 VSS 0 Volts Ground
5 VDD Power Supply for Logic
6 VOUT DC/DC Converter Out
7 VC Capacitor Positive (-) side
8 VCC Capacitor Negative (+) side

Displaytech 14 Pin 16X2 Character COG LCD
Pins Left to Right

PIN SYMBOL FUNCTION
1 VSS 0 Volts Ground
2 VO Contrast Adjustment
3 VDD +3 or +5 Volts Power Supply
4 RS Register Select Signal L = Instruction H = Data
5 R/W Read/Write Select Signal L = Write H = Read
6 E Enable Signal
7 DB0 Data Bus
8 DB1 Data Bus
9 DB2 Data Bus
10 DB3 Data Bus
11 DB4 Data Bus
12 DB5 Data Bus
13 DB6 Data Bus
14 DB7 Data Bus

Step 4: Salvaging COG LCDs

This printer display is parallel data input to the circuit board and parallel data input to the COG LCD, I know this by reverse engineering the circuit board and checking the components datasheets.

I like to get my datasheets from these two web sites:

http://www.maxim4u.com/

http://www.alldatasheet.com/

You can just pull the LCD however finding just the right ribbon socket can be hard, so the only part I need from the circuit board to use this COG LCD else where is the ribbon socket. (Inside the yellow rectangle) I do this by placing my large soldering iron on the back of the circuit board and when the solder melts I lift off the socket.

Step 5: TN STN and FSTN Liquid Crystal Display Modules (LCD Modules)

TN STN and FSTN LCD Modules vary in appearance but most have similar pin outs, these pin outs should operate most TN STN and FSTN LCD modules.

10, 12, 14, and 16 Pin
8x1, 8x2, 10x1, 10x4, 16X1, 16X2, 16x4, 20x2, 20x4, 24x2, 40x2 LCD

PIN      SYMBOL      FUNCTION
1             VSS          0 Volts Ground
2             VDD         +3 or +5 Volts Power Supply
3              VO           Contrast Adjustment
4              RS           Register Select Signal L = Instruction H = Data
5             R/W          Read/Write Select Signal L = Write H = Read
6               E             Enable Signal
7             DB0          Data Bus
8             DB1          Data Bus
9             DB2          Data Bus
10           DB3          Data Bus
11           DB4          Data Bus
12           DB5          Data Bus
13           DB6          Data Bus
14           DB7          Data Bus
15          A/Vee        Backlight Anode +4.2 Volts
16             K             Backlight Cathode Power Ground

Step 6: Testing 16X2 TN, STN, FSTN 16 Pin LCD Modules

I use Arduino to test the modules and check the functions to make sure they work properly, this is the hookup and code for the 16x2, 16 pin LCD.

You can copy and paste the code below into sketch:

/*
  LiquidCrystal Library - Hello World

Demonstrates the use a 16x2 LCD display.  The LiquidCrystal library works with all LCD displays that are compatible with the
Hitachi HD44780 driver. There are many of them out there, and you can usually tell them by the 16-pin interface.

This sketch prints "Hello World!" to the LCD
and shows the time.

  The circuit:
* LCD RS pin to digital pin 12
* LCD Enable pin to digital pin 11
* LCD D4 pin to digital pin 5
* LCD D5 pin to digital pin 4
* LCD D6 pin to digital pin 3
* LCD D7 pin to digital pin 2
* LCD R/W pin to ground
* 10K resistor:
* ends to +5V and ground
* wiper to LCD VO pin (pin 3)

Library originally added 18 Apr 2008
by David A. Mellis
library modified 5 Jul 2009
by Limor Fried (http://www.ladyada.net)
example added 9 Jul 2009
by Tom Igoe
modified 22 Nov 2010
by Tom Igoe

This example code is in the public domain.

http://www.arduino.cc/en/Tutorial/LiquidCrystal

*/

// include the library code:
#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  // Print a message to the LCD.
  lcd.print("hello, world!");
}

void loop() {
  // set the cursor to column 0, line 1
  // (note: line 1 is the second row, since counting begins with 0):
  lcd.setCursor(0, 1);
  // print the number of seconds since reset:
  lcd.print(millis()/1000);
}

Step 7: Code for the 16x1 LCD

Using Arduino to test the 16x1 modules and check the functions; I found that the 16x2 code needed to be modified because the IC looked at the 16x1 LCD as two lines and all you see is the first eight segments of the display.

This is the code for the 16x1 14 and 16 pin LCD.

/* 

LiquidCrystal Library - Hello World

Demonstrates the use a 16x1 LCD display; the LiquidCrystal library works with all LCD displays that are compatible with the Hitachi HD44780 driver. There are many of them out there, and you can usually tell them by the 16-pin interface however these are 16x1 LCD, 14 pin interface. 

This sketch prints "Hello World!" to the 16x1 LCD.

*/

// include the library code:
#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {

// set up the LCD's number of columns and rows:
  lcd.begin(8, 2);     //is 16x1, adressed as 8x2
  lcd.setCursor(0,1);  //init right hand side
  lcd.home();          //back to start
  lcd.clear();
  // Print a message to the LCD.
  lcd.print("hello wo");  //print left side
  lcd.setCursor(0,1);     //go to right
  lcd.print("rld!");      //print right side
  //blinking cursor
  lcd.cursor();
  lcd.blink();

}

void loop() {

}

Step 8: Testing 16X1 TN, STN, FSTN 14 Pin LCD Modules

Using Arduino to test the 16x1 modules and check the functions I used this hookup and code for the 16x1 14 pin LCD.

You can copy and paste the code below into sketch:

/* 

LiquidCrystal Library - Hello World

Demonstrates the use a 16x1 LCD display; the LiquidCrystal library works with all LCD displays that are compatible with the Hitachi HD44780 driver. There are many of them out there, and you can usually tell them by the 16-pin interface however these are 16x1 LCD, 14 pin interface. 

This sketch prints "Hello World!" to the 16x1 LCD.

*/

// include the library code:
#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {

// set up the LCD's number of columns and rows:
  lcd.begin(8, 2);     //is 16x1, adressed as 8x2
  lcd.setCursor(0,1);  //init right hand side
  lcd.home();          //back to start
  lcd.clear();
  // Print a message to the LCD.
  lcd.print("hello wo");  //print left side
  lcd.setCursor(0,1);     //go to right
  lcd.print("rld!");      //print right side
  //blinking cursor
  lcd.cursor();
  lcd.blink();

}

void loop() {

}

Step 9: Testing 16X1 TN, STN, FSTN 10 Pin LCD Modules

Using Arduino to test the 16x1 10 pin modules again I found a few differences; the same code used for the 16x1 14 pin is used for the 10 pin LCD, this is the hookup and code for the 16x1 10 pin LCD.

/* 

LiquidCrystal Library - Hello World

Demonstrates the use a 16x1 LCD display; the LiquidCrystal library works with all LCD displays that are compatible with the Hitachi HD44780 driver. There are many of them out there, and you can usually tell them by the 16-pin interface however these are 16x1 LCD, 14 pin interface. 

This sketch prints "Hello World!" to the 16x1 LCD.

*/

// include the library code:
#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {

// set up the LCD's number of columns and rows:
  lcd.begin(8, 2);     //is 16x1, adressed as 8x2
  lcd.setCursor(0,1);  //init right hand side
  lcd.home();          //back to start
  lcd.clear();
  // Print a message to the LCD.
  lcd.print("hello wo");  //print left side
  lcd.setCursor(0,1);     //go to right
  lcd.print("rld!");      //print right side
  //blinking cursor
  lcd.cursor();
  lcd.blink();

}

void loop() {

}

Step 10: Salvaging Other LCDs

This graphic LCD has everything needed to reuse it in a project.

It just unplugged from the rest of the electronics.

The driver is on the circuit board.

And the hookup is function labeled.

However not all LCDs are this easy to salvage.

Step 11: Salvaging a Compact Disk Player LCD Display

This circuit board came from a compact disk player; I start by tracing out the circuitry and looking up the LCD driver IC. The IC is a PT6533 general purpose LCD driver this part is important and it makes salvaging the LCD easier, other than the backlight LEDs the driver and the LCD are separate from the push button switches. Now I know what I need to cut away from the circuit board to salvage the LCD.

Step 12: Preparing the Circuit Board

Now that I know what I want from the circuit board, I start by desoldering all the unwanted components and removing the components. I desolder by melting the soldered joint with my 35 watt soldering iron and taping the edge of the circuit board on my work bench, casting off the molten solder.

Next I mark the conductors I want by color code and remove all the unwanted circuitry by scraping the conductors with a utility knife.

White for data input
Yellow for clock
Blue for clear enable
Black for ground 0 volts
Red for 5 volts the LED backlight
Orange for 3.3 volts IC power

Step 13: Cutting Out the LCD

Be careful during this part; safety glasses and heavy leather gloves, while I was shaping this circuit board the dremel jumped and hit my hand cutting my thumb through the leather gloves causing me to get three stiches. It would have been worse had I not been wearing the gloves.

After removing the unwanted circuitry I cut the circuit board to the shape I want with my dremel leaving a tab for mounting the LCD.

Step 14: Adding the Wiring Harness

I start by selecting a six wire; wiring harness with wires color coded the same as I marked the conductors.

White for data input
Yellow for clock
Blue for clear enable
Black for ground 0 volts
Red for 5 volts the LED backlight
Orange for 3.3 volts IC power

I scrape clean the ends of the conductors and solder the white wire to the white conductor and so on until all six wires are soldered to the circuit board.

Although the wires are soldered in place with movement they can break free from the circuit board. To prevent this I glue the wires in place with Goop glue and wait 24 hours before testing.

Step 15: Testing the New LCD

Many of the members at Instructables and our visitors use Arduino and Raspberry Pi for their projects. I connected the new LCD to my Arduino UNO, the LED backlights work but I am still working on the Arduino code to run serial input LCDs.

Hardware Hacking

Finalist in the
Hardware Hacking

20 People Made This Project!

Recommendations

  • Make it Move Contest

    Make it Move Contest
  • Woodworking Contest

    Woodworking Contest
  • Microcontroller Contest

    Microcontroller Contest
user

We have a be nice policy.
Please be positive and constructive.

Tips

2 Questions

How can I make small camera using old cameras of phone ?

Hi! You have given a fabulous description.
Would be able to tell me about the Graphic LCD which needs to be replaced but discontinued but I am trying it with Atmega but failed to conect it with my synth. Actually I want to add a different display to my synth because the display been dsicontinued.

Have you ever replaced such display with the driver sed1335 ?

Thanks & Regards

Well you have the right idea, you need a display that matches the driver.
Check with Epson parts they used that driver in a number of products.

307 Comments

Hi

I have downloaded the U8glib for Aduino and Installed it , When connecting my Uno , LCD back light lit but no display images , It is using the KS0108 driver .

I follwed your 3 wire example and using Pin Out supplied by the manufacture, Kindly see atached PDF file datasheet

regards

You need to wire it as described in the KS0108 setup using 13 wires from your Arduino to your display.

KS0108_128 u8g(8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16); // 8Bit Com: D0..D7: 8,9,10,11,4,5,6,7 en=18, cs1=14, cs2=15,di=17,rw=16

I wanted to use 3 Wire Digital Pin Setup , if it is applicable to this display

Hi Josehf Murchison

I downloaded U8glib Library and install , change the code as your diagram , and also wire LCD similar, LCD light up but no text displayed . The Driver the LCD is using is KS0108 , Pinout is different a bit to your .if you supply email I will supply you with the updated Datasheet from manufacturer

This are the images of the CM12864-8

e337690e-79dd-4cb3-9fde-666eeb0695e9.jpgca305efe-1fe0-419b-9e76-fd5e4fcb8f31.jpg

I have a 33 pin LCD display from chinese phone. Internet is silent about it. Is there any hope to run it or better just get rid of it?

1 reply

Hello Josehf,

I was happy after getting this liquid crystal screen, my goal was your beautiful reverse engineering technique but the bad news came after seeing the resin on the chip :(

There is also good news (not sure All the pins are identified i do not know if i can hope for a use with Arduino Uno, the 25-pin LCD, if you have a tip or an idea to share i would be very happy Sincerely.

20180129_163527.jpg20180129_163659.jpg20180129_163718.jpg20180129_163611.jpg
1 reply

Yep resin coated ICs are next to impossible to crack, they are usually onetime programmable ICs.
That one can be removed and an IC you know can replace it.

As long as you have Vcc and Vdd on the IC and all the leads from the LCD going to the IC you have it.

A lot of LCDs don't have a Vcc or a Vdd, they are completely powered through the leads to the IC.

2 replies

The hello of France very stormy :)

I just wanted to finish the wire by informing the result, after doing the necessary to understand i finally gave up because being amateur and finding no example on the internet the most logical for me is to stop .

I thank you for your instructions and I wish you good luck, cordially.

Hello and happy new year Dear Josehf, first of all i would like to thank you for your Intructables of great qualities. Thank you for helping fans like me. I have a LCD disassemble on an alarm clock Iphone, Ipod...

Model : AJ300D

The controller chip is : LC87F7CC8A

I am amateur and i need help to know if it is possible to control the LCD with Arduino and displayed the temperature values ...?

If it's possible how ?

I easily found the features of the chip but i am too amateur to understand.

Many thanks for the help given to the new in the world of electronics, i will read and reread your Intructables to advance in the project.

Thank you for sharing, Great respect to Josehf.

20180115_215046-1.jpg20180115_215116.jpg20180115_215139-1.jpg20180115_215309.jpg20180115_215320.jpg20180115_215157.jpg
1 reply

Hello, do you know the pinout of a 16x2 LCD glass ? I have a fried module after a power supply error, and kept only the glass, frame and rubber connector. Since it was a cheap PCB with chips-on-board, I can't replace them like old modules that had TQFP HD44780 and HD44100. I can just keep it as a spare if one day I have to swap it with a broken glass on a working module, but if I had the pinout of rows and columns of dots, I could redesign a module PCB at least with these legacy chips. And optionally a microcontroller for other features.
BTW I have used a character LCD tester (Sure Electronics DE-LD007) with a PIC16F54, and rewritten test code in assembler. I can share it for anyone who has a 40x2 or 20x4 module to test, but don't know where to upload the source.

1 reply

I haven't reverse engineered the glass for that 16x2 glass.

I would save it to repair a module with broken glass.

For the LCD tester I would write an Instructable to share the information.