Reverse engineering LCD - Page 1
Forum section: electronics / beginners

author: paul23
author_rank: Regular Contributor
timestamp: July 05, 2012, 12:23:11 pm
content: I´m trying to figure out how to control an LCD from air con remote. So far I have have figured out that the uController in the remote sends pulses to each segment (there are 16 pins on the LCD). If measure the voltage at each pin then I get 1.4V at every pin. I have captured one of the pins with the scope and it goes up in 4 steps and that is where I am stuck. I tried a 3 other pins and they look the same on the scope. I dont´understand how it can go up in 4 steps, if it pulsed hi/lo that would make sense, but 4 levels I don´t understand.This image is at 0.5V/div and 2ms/div.The LCD is from a remote like thishttp://www.gmagazine.com.au/1146/ask-g-air-conditioners-and-electricity-demandThanks for any help.

author: OndraSter
author_rank: Contributor
timestamp: July 05, 2012, 12:49:06 pm
content: That looks like regular segmented display. There will be few commons and few segments. Imagine it as (for example) 4x12 matrix of LEDs. 4 rows ("commons") and 12 columns ("segments").

author: Psi
author_rank: Super Contributor
timestamp: July 05, 2012, 01:14:14 pm
content: I don't know much about LCDs, so i could easy be wrong but the 2 middle levels could be when the pin is tri-state and the signal from other wires is feeding backwards onto this wire.That would mean that only the highest and lowest levels of the waveform are actual data on this pin.

author: paul23
author_rank: Regular Contributor
timestamp: July 05, 2012, 06:53:13 pm
content: Thanks for that I am a bit closer. I have tested every pin through the scope properly now and found out a bit more.Pins 3, 4, 5, 6, 7 and 10 pulse high and low in square wave 2ms on 2ms off, so I think that the two middle levels on the image i showed earlier is that feed back as suggested. If you ignore the highest and lowest levels from the image then that is what the square looks like on that image.All the other pins are exactly the same sort of thing as the image above, the only difference is the amount of high and low pulse, so I assume that is because not all the segments are on.So with 3,4,5,6,7 and 10 pulled high (through a resistor) and everything else low nothing happens. Then if I pulse high any Low pin I get 4 segments on. The pins that are pulled high don´t seem to make any difference.So the next question is, how do I find out which ones are the segments and which are the commons?

author: free_electron
author_rank: Super Contributor
timestamp: July 05, 2012, 07:51:03 pm
content: if you have multilevel signals it measn there is more than one backplane in this display.a pixel toggles if there is a voltage delta. they alternate the backplanes so you need to be either above or below that level.if you have a 4 step signal there are 2 back planes. a 6 step wuold be 3 and an 8 step would be 4 backplanes.if you have a 7 segment display segmentCode:AF BGE CDA and G are electrically connected.B and C are connectedF and E are connected.AFB tie to one backplaneGECD sit on the other backplaneso to turn on A the signal there needs to be antifase to the backplane for Ato prevent G from turning on at the same time the backplane of G is in phasethey alternate the backplanes in time and play with pahse/antiphase of the segment drives.This driving mechanism is hard to realize in software. you need a lcd controller to do this. besides you need to be able to make mulitlevel signals.The backplanes are not ON or OFF.The backplane is at 3/4 VCC or 1/4 VCC.so to be in phase the segment driver for switches out 3/4. to be in antiphase it switches out 4/4 or 2/4 ( you cannot keep an lcd statically driven. the resulting wave needs to be AC. ) when dealing with the information for backplane 1.when sending information for backplane 2 it switches to 1/4 to be in-phase or 2/4 and 0/4 to be antiphase.

author: paul23
author_rank: Regular Contributor
timestamp: July 05, 2012, 08:08:25 pm
content: Thanks, that makes perfect sense and explains a lot of what I was seeing. Think that is pretty much a show stopper for me then, back to the drawing board.

author: paul23
author_rank: Regular Contributor
timestamp: January 06, 2013, 10:58:29 am
content: Well, it was a show stopper, but it has been bugging me that I couldn´t do it. So after a lot of reading and Googling I figured it out.I used a an NXP PCF8566P LCD driver just connected by I2C to the arduino. The datasheet isn´t the best ever, but there decent charts in there that show the different waveforms. From that I figured out the this particular LCD had 4 back planes and 8 segments. After that it was easy just send an address (0x3E) and the then command byte and then the data you want. Each byte of data sets the first 2 segments of the LCD on each back plane.I just wanted to update this for anyone searching for information as I was, because I found it really hard to figure out at first, but once I had figured out which pins did what on the LCD it was pretty straight forward, except the ID address which is different when you use an Arduino as to what the datasheet says.