Introduction: Salvaging Liquid Crystal Displays (LCDs)
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
Attachments
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.
Attachments
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
Attachments
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.
Attachments
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.

Finalist in the
Hardware Hacking

Participated in the
Supercharged Contest

Participated in the
Make It Glow Contest
20 People Made This Project!
- LowCountryBuzz made it!
- Josehf Murchison made it!
- DigitalPiotrek made it!
- obogdan made it!
- Josehf Murchison made it!
- Josehf Murchison made it!
- Josehf Murchison made it!
- Josehf Murchison made it!
- abdeladem made it!
See 11 More
348 Comments
Question 5 months ago on Introduction
I have a tm162b9dcwu6 LCD display which I salvaged from a DSC PK5500 control panel. Do you by any chance have the schematic diagram showing the input/output labels? I want to use the display on an Arduino project
Reply 5 months ago
I am sure I do not have the pinouts.
1 year ago
I have a 15 pin 540HC-002 display. Please send pin assingments, if possible.
Reply 1 year ago
Sorry for taking so long to answer, I was checking my files.
That sounds like a driver IC part number.
Do you have a pic of the display?
Is it a COG, Module, Graphic, or a Segmented LCD?
Question 1 year ago on Step 15
Hi Josehf,
First and mostly... WOW !!! what a job you did , thanks.
I have a couple oF Honeywell alarm Keypad with Function Buttons and I have started hacking them (Buttons, Leds, Piezo). I have questions concerning the LCD.
From photo 1 , you can see that there are words appearing.
Q1- Do you think that these words are burned in the LCD ?
From photo 2 , you can see that the LCD is without a PCB/controller but only a strip that when press on the PCB's traces, connect to the MCU directly.
Q2- Do you thing that the traces are data/control signals or simply signals that activate certain words ?
King regards,
Mario
Reply 1 year ago
That looks like a whole lot of custom circuit.
With custom circuits it is test and guess.
If the LCD is COG it should have standard pinouts they just may be in a different order.
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
Try following this Instructable
https://www.instructables.com/Live-Reverse-Enginee...
Question 1 year ago
Anyone have an idea how to connect it to the arduino, please help
Reply 1 year ago
They have the Data sheet for that IC here.
http://www.maxim4u.com/
Question 2 years ago
I cannot know the model of the chip since it is a Chip on Board and I did not have a serial number.
It looks like a copy of the 128x64 graphic LCD, but I don't know the model of the chip and I don't know if it works with the communication protocol "spi or i2c" and which of the 7 cables is for power, clock and data.
Nor if there are libraries to use that screen.
Reply 2 years ago
I'm guessing but
If Q700 and Q701 are both marked H1A they are NPN transistors cable 4 is ground, cables 5, 6, & 7 is V+
That would make cables 1, 2, & 3 clock, data, and enable.
Anything more guess try and hope you don't burn it out.
You can get data on SMDs here
http://www.s-manuals.com/smd
Question 2 years ago on Step 15
hola amigo: tengo una consulta para hacerte:
de una impresora Epson tx235 rescate un lcd muy chico con 20 pines y quisiera reutilizarla en un proyecto de arduino. te dejo las imagenes para que veas la pantalla y me digas si se puede hacer algo con ella. muchas gracias por todo.
Reply 2 years ago
Mi español es muy limitado, así que me tomó un poco traducir.
Algunos de los pines están marcados y puedo leerlos todos.
¿Es esta la misma pantalla LCD?
Reply 2 years ago
Hello Josehf,
First I would like to thank you for the knowledge you are sharing with the community.
I have the exact same LCD, but I am unable to find any referrence or schematics for this particular model. I would like to use it in my arduino project, do you think you can help me with a datasheet for it?
Regards
Reply 2 years ago
Which LCD post a pic.
Reply 2 years ago
Es muy similar.
la tuya dice: "GPM1149A2" y la que tengo yo dice: "GPM1149A0"
2 years ago
Hi Josehf,
I love to read about people with a passion for salvaging items. I have loads of components I have salvaged and even fixed a few electronic devices which is very satisfying. Most LCDs I salvage are the standard 16x2 which are fairly straightforward but I have one that I am struggling with. It was removed from an Avaya 5410 desk phone and it has a 22 pin interface with 6 buttons on the PCB.
I have powered it up to do some live reverse engineering and even made a small interface board with patch leads and unplugged them one by one and observed the behaviour. However even with the data I don't really know where to go next. Is this something you might be able to give me some pointers on? Or if it is even worth pursuing?
I have attached a csv file of my findings.
Regards,
Shane
Reply 2 years ago
It looks like you have the pins figured out.
If you look at a data sheet for an LCD it should have a binary code chart like this.
You can use a binary counter on the data inputs and record and compare to other LCDs data sheets to find a driver.
Reply 2 years ago
Update: So I dropped this project for a while but then got back to it yesterday. Long story short I ended up finding a part number from a spare parts listing as LM4068 which I now have a datasheet/pinout for. From this I found the driver is an SED1560 made by Epson.
Now that I have a pinout I might connect it to my Arduino and see what life I can get out of it.
Reply 2 years ago
Thank you for the reply Josehf and glad I am on the right track. I will check out the data pins.
Cheers!
2 years ago
Great instructable! I think the aim is to inspire others to follow idea and explore
not to find solutions for others