Hooking Into Segmented LCD Display to Read Displayed Values - Page 1
Forum section: electronics / projects

author: jaxbird
author_rank: Frequent Contributor
timestamp: August 11, 2013, 08:05:46 am
content: Just want to share a bit of experience I've gained this weekend from using a micro to hook into a device's LCD display.Sometimes you just want to get what is on the display to use it for various purposes without disturbing the signals directly. In my case some very high impedance stuff with calibration.Anyway, my case is a custom display with 15 active pins.Here a few measurements from some of the pins:

author: jaxbird
author_rank: Frequent Contributor
timestamp: August 11, 2013, 08:06:33 am
content: More pins: (not going to post all of them, just a few samples)Hard to make any sense of it at first glance. But with a bit of closer study it all starts making sense.

author: jaxbird
author_rank: Frequent Contributor
timestamp: August 11, 2013, 08:14:09 am
content: Initially it's slightly confusing that there are 3 levels above 0, but considering these are multiplexed with rows and columns, plus they are differential AC signals, it becomes more obvious.First thing to identify is which are the rows and which are columns in the multiplexing.I found this display uses 11 columns and 4 rows.The rows all look like this:They are offset by 1/4 of the repeating signal and removing the AC/modulation they go like this 1000 0100 0010 0001.. at a frequency of ~100Hz.

author: jaxbird
author_rank: Frequent Contributor
timestamp: August 11, 2013, 08:19:48 am
content: So to read the data from the column lines I used one analog input (to be able to determine all the levels) on my micro to sample the first row line and work out the timing for when to sample all the column lines.It goes like this: (showing the 1st row line (red) and a pulse (yellow) to indicate when I sample the column lines)

author: jaxbird
author_rank: Frequent Contributor
timestamp: August 11, 2013, 08:31:35 am
content: The tough part is determining which row and column combination goes to what segment. If in any way possible, it would save a lot of work, to check if the connections are visible under magnification.Anyway, mine wasn't so I had to do it the hard way. It's hardest to work out the first ones, then it becomes easier as there is likely some system in how the segments are connected together. In my case I made the micro send all the values to my laptop, then I wrote a small piece of software to easily detect changes between 2 frames, to to comparing the difference between one digit changing from e.g. 8 to 9,Quick and dirty, but does the job:I added the 7 Seg readout later, just to confirm.Initial recording and guessing was like this:So took me most of a day, learned a lot about LCDs, but interesting challenge and success in the end. Hope this proves helpful to others, sure would have helped me

author: jaxbird
author_rank: Frequent Contributor
timestamp: August 11, 2013, 09:03:19 am
content: Just one thing to add, when reading the columns, it's the difference between the row and column value that counts, so ~0V means value 1.Hope that makes sense.

author: digsys
author_rank: Unknown
timestamp: August 11, 2013, 02:22:09 pm
content: Great work .. been a long time since I've had to do things the "hard way". It's a great sense of accomplishment.Just be warned you may be called up for cryptanalysis in the next war :-)

author: jaxbird
author_rank: Frequent Contributor
timestamp: August 11, 2013, 03:33:53 pm
content: Quote from: digsys on August 11, 2013, 02:22:09 pmThanksIt is indeed a good feeling when success is achievedLots of uncertainty in the beginning, everything based on assumptions and no results to verify. But it kind of turns into a challenge.