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

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.

Comments

author
obogdan made it! (author)2017-07-17

I've managed to use an LCD recovered from an old printer thanks to this. Thank you.

IMG_20170717_230657.jpg
author
Josehf Murchison made it! (author)Josehf Murchison2017-07-18

Nice job

author
towalite made it! (author)2017-06-30

Hello,
This LCD screen backlit never worked since i bought this rack (second hand buy) and I fixed it yesterday this way :

I just put 5v from an arduino board to the 2 unplugs pins 15 and 16 on the pics above (red squared),
I applied the 5v for just 1sec, this enlightened the LCD, then the LCD backlit was fixed !

I assume that these 2 pins are pins 15 and 16 = backlight LEDs, but these pins were not connected, because the LCD screen use the (old) other way to enlighten the screen : the backlit.

In conclusion : to put 5v to the pins 15 / 16 somehow reactivated the backlit system of the LCD that was broken.

anyway thanks for your help

author
towalite made it! (author)2017-06-23

Hello Josehf,

I try to repair the backlight of a LCD screen of a 1997's EMU synth rack.

The LCD has no more backlight, and the text has low contrast.

The synth is a rompler : an EMU "Planet Phatt" (similar to the EMU "Orbit")

I can't find any datasheet for this LCD Screen or any informations

I add here some pics of the front and back of the LCD. it is written on the LCD screen : P16036A ORION KOREA and 7902GG and i can't find anything on the datesheet website you provided.

how could i repair the backlight, or maybe should i change the LCD Screen block ?

Thanks for your help

EMU PHATT rack inside.pngEMU PHATT LCD back.pngEMU PHATT LCD front.png
author
towalite made it! (author)towalite2017-06-23

i just add a pic of the LCD pins: 2 pins are not used is it normal ?

(this rack should be backlighted by default)

EMU PHATT LCD front pins not used.png
author
towalite made it! (author)towalite2017-06-26

Hello,

i have another question : according to the Displaytech 162D Series 16x2.pdf i see that the pins of the LCD are :

- Left side of the LCD : 1 - 2 at the top .. and 13 - 14 at the botton

- Right side of the LCD : 15 - 16 (not used)

(cf picture attached.)

But on my LCD all the pins are at the same left side, and the unused PINS are left side on the top (cf my previous picture red square)

So my question : does it mean on my LCD the pins are :

- Lef side :

15 - 16 (top)

13 - 14

...

3 - 4

1 - 2 (bottom)

Thanks

lcd HD44780 part.png
author
Josehf Murchison made it! (author)Josehf Murchison2017-06-26

From your pic and the Displaytech datasheet it should plug and play as long as you match pin one with pin one.

author
towalite made it! (author)towalite2017-06-27

Thanks,

(i am sorry if it's obvious) but i ll just need one précision :

- Does that means the pins are like what i wrote on the pics attached ?

(i have assumed the non connected pins on the top are the pins 15 and 16)

And then: i assume that i can i plug any 16x2 LCD with a HD44780 even if the pins are : 1 row pins on top as the one on the second pics attached ?

F6RV4KOJ48PV8DO.LARGE.jpg1078862940.jpg
author
Josehf Murchison made it! (author)Josehf Murchison2017-06-27

Yes just remember on some LCD modules pin 1 is pin 14.

So pin 1 can be Vdd or pin 14 can be Vdd but the order should be the same.

Anser.bmp
author
Josehf Murchison made it! (author)Josehf Murchison2017-06-23

That looks like a standard 2 x 16 LCD module with a HD44780 driver, you can see the one IC is marked with HD44780 all the other stuff is useless.

You can get the datasheet here:

http://www.maxim4u.com/

Quite often the backlight LEDs are not connected.

In the one pic of the display I can see a light weird pattern in the display so the display may be damaged.

You should be able to replace that display with just about any 2 x 16 display that uses a HD44780 driver.

It should be like this display.

Displaytech 162D Series 16x2.pdf
author
towalite made it! (author)towalite2017-06-25

Thanks a lot !

author
OwenT12 made it! (author)2017-05-29

Hi, I got a 20x2 10-pin LCD a little bit ago and could not find a datasheet or anything for it. I know which pin is ground, and that is about it. I tried wiring it up to your 10-pin solution and when I turn the pot to one side, the top section turns on, and when I turn it to the other side, it turns off. I was not able to get the cursor or any text to show up. I think that it has an imitation hitachi driver on it, but I'm not sure. I have attached images below.

IMG_0381[1].JPGIMG_0382[1].JPGIMG_0384[1].JPG
author
Josehf Murchison made it! (author)Josehf Murchison2017-05-29

You can get the datasheets on the ICs here

http://www.maxim4u.com/

Then use reverse engineering to confirm the pin outs

https://www.instructables.com/id/Reverse-Engineeri...

https://www.instructables.com/id/Live-Reverse-Engi...

https://www.instructables.com/id/Reverse-Engineeri...

But I think you have a loose wire, the contrast works to a point.

author
HenrikL15 made it! (author)2017-05-26

Hi, Very nice article about LCDs. I found it quite inspiring. Thanks.

I salvaged a Dell 3010 CN laser printer some years ago and found lots of good stuff inside. One part was an LCD, my guess is a 16x2 COG. At least I found a chip glued on the glass under some tape. The display module has a 10 pin interface. Today I found your article. So it occurred to me, maybe I can use this display for one of my Arduino projects.

The diagram and the picture shows the display so text on it would be upside down.

Could you from my diagram decode what LCD driver this is, and possibly indicate how to hook this up.

I'm not completely sure about the NC pin. Also the pin connected to the 6 pin DIL, and I'm not sure about the details around the DIL either.

Dell_3010_Laser_Control_Panel_Display_16x2_COG.pngDisplayModule.jpg
author
Josehf Murchison made it! (author)Josehf Murchison2017-05-26

Well it looks like a New Haven Display NHDC0216CZ

If the standard HD44780 LCD driver doesn't work, the library U8glib in Arduino should have a NHD driver that will work.

NHD-C0216CZ.pdf
author
JESUSARIUS REX made it! (author)2017-04-26

Hello, i have an 8 pin lcd. how do i hook it to the arduino and test?

author
Josehf Murchison made it! (author)Josehf Murchison2017-04-27

Is it a Module, a COG, or segmented?

Without much more information it could be this, the wiring is in the Datasheet.

NHD-C0216CIZ-FN.pdf
author
JESUSARIUS REX made it! (author)JESUSARIUS REX2017-04-27

Thanks for your reply. It is COG, sorry. I was looking at the 8 pin out you gave above, but i didn't understand how to interface those 8 pins with the arduino. This is a picture of the LCD: http://imgur.com/a/ZZ0iu

author
Josehf Murchison made it! (author)Josehf Murchison2017-04-28

The pinouts are in this Instructable.

https://www.instructables.com/id/Live-Reverse-Engi...

However I am still looking for the right LCD driver.

author
JESUSARIUS REX made it! (author)JESUSARIUS REX2017-04-27

It is from a Uniden Cordless phone model #TXC400. I couldn't find any info though.

author
abdeladem made it! (author)2017-04-15

Hi Josehf

Verry cool project I recently salvaged a VHX1601 14 pin LCD screen from an old sf-330 Fax and this what i get with "Hello world" sketch.

any help thank you

IMG_20170415_163515.jpg
author
Josehf Murchison made it! (author)Josehf Murchison2017-04-15

I think you have the pins right or at least very close; if they are right, it is definitely the wrong driver. I take it you used the standard 16 pin minus the back light LED.

Try the drivers in the Arduino graphics library U8glib. one of the 60 x 32 drivers.

author
abdeladem made it! (author)abdeladem2017-04-22

NOw it's working , special thanks to you Jesehf :)

IMG_20170422_152759.jpg
author
Josehf Murchison made it! (author)Josehf Murchison2017-04-22

Nice remember to do an Instructable on how you got it up and running.

author
jwilfongAZ made it! (author)2017-03-13

Hi Josehf, I recently salvaged an LCD screen from an RCA 4-Line phone. Can you help identify how to communicate with it? I have attached a photo of the screen and the pin outs on the board it plugged in to. What is \LCS-CS, L-B, L-V, VLED, and VCPU-S and how do they translate to common pin outs in arduino sketches?

IMG_3121.JPGIMG_3123.JPG
author
Josehf Murchison made it! (author)Josehf Murchison2017-03-14

I would guess

Data

Data out

Clock

Reset / Enable

Data

Data

VLED is back light +

VCPU is CPU + should be 3.5 V

GND – or 0 volts

author
smokey125 made it! (author)2017-03-05

I have a very similar LCD to Bele76. All bar the two left connections go to the black blob. Going to see if I can clean off the black blob but if that doesn't show anything do you have any suggestions?

IMG_0676.JPGIMG_0677.JPG
author
Josehf Murchison made it! (author)Josehf Murchison2017-03-05

That is a lot different than Bele76 LCD.

The resin coated IC is the LCD driver on the one.

What does the other side of the circuit board look like?

author
smokey125 made it! (author)smokey1252017-03-05

Nothing other than battery connection and button pads.

Still trying to clear the resin off!

IMG_0678.JPG
author
Josehf Murchison made it! (author)Josehf Murchison2017-03-05

There is a lot more information then you might think.

The resin coated IC is a one time programmable in board graphic LCD driver.

You will need a general purpose graphic LCD driver with that LCD to use it with Arduino.

author
smokey125 made it! (author)smokey1252017-03-06

Thanks Josehf, I'll get a driver for it and have a try.

Regards Doug

author
Bele76 made it! (author)2017-02-22

Hi Josehf,

I bought this digital thermomether:

http://www.ebay.com/itm/DIGITAL-LCD-DISPLAY-AUTO-C...

I took it apart and now I am wondering, if there is any option to control it directly from my Arduino. Display is not conected by any wires, but there is some kind of foam, which lies on PCB. Can you give me some advice how to connect it to Arduino and what controller should I use? Thanks

WP_20170222_21_20_02_Pro.jpgWP_20170222_21_20_38_Pro.jpgWP_20170222_21_21_29_Pro.jpg
author
Josehf Murchison made it! (author)Josehf Murchison2017-02-22

OK you need that foam, it is the wires to connect the circuit board.

The black resin thing is a custom IC and LCD driver.

Now if you scrub everything off the circuit board but this in the red box, and connect it up like a 3 digit LED display, it should work.

I would guess top 3 wires are digit 1, 2, 3.

And the bottom wires are A, B, C, D, E, F, G, and DP; but not necessarily in that order.

If you can figure it out the order it will work on Arduino just like a 3 digit LED display.

Answer 147.jpg
author
Bele76 made it! (author)Bele762017-02-26

Thank you for response. I will try to make it work and post the result back.

author
knoke made it! (author)2017-02-07

Josehf,

Your Instructable has been very helpful to me in learning how to pinout salvaged lcd's. Recently I have hit a few stumbling blocks with some tft lcd displays. Specifically, Wintek displays. My research has led me to find out it is a privately owned company in Vietnam. Their website does not list contact information (just an address) and does not offer support for their products. I am looking for a data sheet for displays: WD-F3224YA FPC-1 (touch screen tft 78x60 mm) and WD-F9624VB FPC-1 (62x48 mm). I have spent hours googling for datasheets and have yet to find one for either of these displays. Any help would be greatly appreciated (I have also searched on the two sites you reference in your Instructable and have had no luck.).

author
Josehf Murchison made it! (author)Josehf Murchison2017-02-07

There are a few manufactures like that.

Look for a seller many sellers have datasheets you can download or the pinouts in the product description or product details.

author
RolandC31 made it! (author)2017-01-05

Hello Josehf,

I just got an Arduino starter kit for Christmas and see old electronic parts with different eyes now. I have followed your intstructable - which is just awesome BTW - in order to recycle a 16x1 10pin LCD that I salvaged from a CRICUT electronic cutting machine.

The display appears to be a generic unit with UM1601-A1 printed on the back side. The pins are just labeled 1-10. No success googling any Data sheet or other info.

It took me a while to figure out the Pin assignments:

1 GND

2 VCC 5V

3 Contrast VO

4 RS Arduino Pin 12

5 E Arduino Pin 11

6-9 DATA Arduino Pins 10-7

10 Background light

No R/W pin. That is what I conclude.

About pins 4-9 I am not 100% confident, but that is my best guess.

I used your Arduino code for the 10pin LCD but had to modify it a little bit in order to get something happening. (I use Pins 12 - 7 on my Arduino)

But all I got so far is the cursor blinking.

The lcd.print commands are not doing anything.

No "Hello World" and no individual characters that I programmed into certain slots.

I can set the cursor to a certain digit, have it blink there and move on to the next.

The Clear command works too.

Of interest might be, that during my exploration of the pins, I had all kinds of weird characters displayed. Question marks, Japanese signs, distorted letters, individual jumping bits and lines.

Also worth noting is, that I have tried an older version of the liquidChrystal library after I read about 4bit and 8bit moving. But I was never really sure, which version was actually used by the Arduino, because all versions use the same name. This is all still new to me.

When I pull out one of the 4 Data pins, the Cursor disappears. Blank display.

The blinking cursor always has a solid line on the bottom.

Any idea what I am doing wrong? Why "Hello World" is not displayed?

I add a picture of my test setup.

Thanks in advance.

Regards

Roland

LCD Ardu setup.jpg
author
Josehf Murchison made it! (author)Josehf Murchison2017-01-05

Which Arduino; that looks like a Arduino Mega, mine is a Arduino Uno so the code might be a little different.

I cannot tell for sure from the pic but that looks like a 16x2 display so the code in step 6 should be the code you use.

I think you have the pin outs close, the pin outs should be:

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

Let me know if this helps.

Joe

author
RolandC31 made it! (author)RolandC312017-01-06

Josehf, thanks a lot for your quick response,

you are right, the board is a Mega. But I just received an UNO in the mail and switched the boards.

Also I changed the code to pins 2-5 and 11,12.

Now everything is exactly as on your instructable.

The LCD is definitely a 16x1 10 Pin unit. I upload a closeup picture for you.

I can tell it to set the cursor and to have it blinking.

I can set the cursor to both sides on any spot, turn on blinking, clear the display, turn display on and off. So, the communication between the Arduino and the LCD obviously works.

But I can not have any characters written with the "Print" or "Write" command.

I use the Liquid Chrystal library 1.4

Roland

LCD back.jpgLCD front.JPG
author
Josehf Murchison made it! (author)Josehf Murchison2017-01-06

Nice picks

Resin coated ICs can drive you nuts, can't tell if that is a HD44780 IC.

The Hello World program in Arduino is made for the Hitachi HD44780 IC.

You can download the datasheet for the HD44780 IC here:

http://www.maxim4u.com/

The only thing I can suggest is try another LCD driver.

author
RolandC31 made it! (author)RolandC312017-01-11

Josehf,

Thanks for your response. What kind of "other LCD driver" do you have in mind? A different library for the Arduino?

I am still not able to figure out the correct pin assignments.

I believe now, that there is no (VO Contrast Adjustment)-Pin. The display turns on with a good contrast setting, when I just connect pin 1 (GND) and Pin 2 (+5V).

In the previous wiring setup (as described above) the display changed its cursor and character behavior, when I changed the Pot-setting on PIN 3, not the display contrast. So, that PIN must have a different purpose. (RS maybe?)

Right now I am using a kind of a "probe" setup, where I put power to the LCD pins 1 and 2 and then read the digital output of PINs 3-9 with the Arduino. I am hoping to be able to identify some PIN by their output behavior.

I use a PULLUP on PIN 3-9 before I apply power to the LCD.

All PINS indicate HIGH, except for PIN7, which indicates LOW, no matter what time delay after the Power-Up is set to. I have tried time delays for the readout from 100 to 700 milliseconds.

Do you have any idea if that could hint towards a special purpose of that PIN. R/W maybe?

Or is there a chance that this is a I2C display and I am heading into the completely wrong direction?

Thanks for any help in advance,

Roland

author
Josehf Murchison made it! (author)Josehf Murchison2017-01-11

You may need to hack the code to find out witch driver or library.

Too much switching of the leads can damage the LCDs driver so tread carefully.

If you look at the datasheet of the HD44780 IC where the code 01010000 is a capital P. You feed that code to the LCD and see what it shows you, then compare it to drivers datasheets until you get the right one.

author
RolandC31 made it! (author)RolandC312017-01-12

Josehf,

I didi it.

The LCD works. I had looked over your instructable again, and swapped some wires again. And magically it showed "Hello World!". Here is the Pinout and how it is connected to the ARDUINO:

1. Ground Arduino GND

2. VCC (+5V) Arduino +5V

3. Register Select (RS) Arduino Pin12

4. Read/Write (R/W). Arduino GND

5. Clock (Enable). Arduino Pin11

6. Bit 0 Arduino Pin5

7. Bit 1 Arduino Pin4

8. Bit 2 Arduino Pin3

9. Bit 3 Arduino Pin2

10.Backlight Anode (+4V) Arduino GND via 100 Ohm Resistor

Here is a picture of the working LCD.

Josehf, thanks for your instructables and thanks for your replies.

I am really happy about this and will salvage many more good working devices from going into the landfill.

Regards

Roland

Hello World.jpg
author
Josehf Murchison made it! (author)Josehf Murchison2017-01-13

Good

author
RolandC31 made it! (author)RolandC312017-01-11

Josehf,

I read your instructable about reverse engineering and came up with a brilliant idea (at least I think it is :)

I connected the LCD to the original logic board, where it originally was attached to. It works! It came out of a CriCut digital cutting machine. Kind of a little CNC machine. I just have to circumnavigate a bad 18V power relay which caused the pre-mature death of that CriCut machine and can power up the board.

Would it be helpful to measure the output pins from that board GOING to the LCD in order to find out what function each pin might have?

It starts up with a fixed display routine when it initializes that logic board.

It comes up with a serial number or so, a software version number, the name of the machine, and so on.

Could I read the values of those pins when I connect the board GND to ARDUINO GND in order to have a common GND?

Then read all pins either digital or analog.

Either with or without the LCD connected I would get values, right?

I would write a sketch, which runs in the loop and reads each PIN value every 10ms or so during the startup sequence.

Would that be a way to go?

I don´t want to fry any of those pieces, so I might need some guidance, that I don´t accidentally put 2x 5V in series and create an over voltage on any of those pins. I am dealing with 2 power supplies now. The CriCut board has a USD port. Could I use that to link the ARDUINO to that board in order to get the same electrical potential and still have a connection to my computer? Maybe via a USB hub?

Any thoughts welcome.

Thanks,

Roland

author
antoinettejcitizen made it! (author)2016-12-09

Thanks for the great instructable! I am after a tiny LCD screen to make a clock projector. I have salvaged a 10mm one from this type of clock: https://www.amazon.com/gp/product/B01ARVM6U8/ref=s...

It is not the main screen but the internal used for projecting on the ceiling. I have attached some pictures. It doesn't have an accessible driver circuit. The flat flex cable has 12 connections. Wondering if I remove this from the PCB if there could be a way of driving it? It is a segmented display rather than character/graphic.

Any help would be appreciated!

2016-12-10 15.14.47.jpg2016-12-10 15.15.18.jpg2016-12-10 15.15.27.jpg
author
Josehf Murchison made it! (author)Josehf Murchison2016-12-09

In the center pic 3 to the left are most likely mode and the 9 to the right are most likely segments like a 7 segment display.

If you can figure them out finding a 7 segment display driver is easy enough.

author
antoinettejcitizen made it! (author)antoinettejcitizen2016-12-10

Thanks will give it a go!

author
Heathen187 made it! (author)2016-11-23

hi there I've been wanting to use liquid crystal thermo ink to apply as a paint on an item. I was curious if it was possible to extract the substance from items like lcd screens and if it would even be possible or Worth it?

author
Josehf Murchison made it! (author)Josehf Murchison2016-11-23

Only one way to know for sure try it.

Were you thinking of a mug or a shirt.

That would be neat on a mug, you see nothing until you put hot water in the mug, then it say's, "Warning Hot Liquid".

About This Instructable

461,932views

2,545favorites

License:

Bio: 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 ... More »
More by Josehf Murchison:Cream of Morel SoupProgramming Arduino With a Sainsmart UNO Testing a Graphic LCD Module
Add instructable to: