Hi everyone! I'm currently developing a project for my university that allows me to control an eletrical moka remotely.
For a case study I took an Alicia De Longhi Plus (http://www.lucaelettronica.it/catalogo/ ... EMKE21.jpg) that has 5 buttons and a lcd display.
The display has no name or code or something that allows me to understand the model and find out a datasheet or at least how the pins have to be driven.
It's a 4 digit display with 12 pins in a row (not 6 on a side and 6 on the opposite side).
To be more specific there is a colon between the first 2 digits and the other 2 digits, in this way -> 12:11. There are no decimal points.
Can someone help me to understand how pins are driven? I found nothing on internet!
Thank you so much in advance,
Diego
Reverse engineering a 12 pin display
Moderators: adafruit_support_bill, adafruit
Please be positive and constructive with your questions and comments.
- adafruit_support_mike
- Posts: 67446
- Joined: Thu Feb 11, 2010 2:51 pm
Re: Reverse engineering a 12 pin display
To reverse-engineer an LCD you need something like a logic analyzer. The signals that control them don't make much sense until you combine them the right way.
Without getting too far into details, LCDs need to be driven with AC signals. Applying DC voltage to an LCD segment will eventually cause the liquid crystal to plate onto the glass. Either you want them neutral, or you want to balance every positive signal with a negative one of the same strength. In theory that isn't too hard, but the most obvious way to handle the wiring uses a separate input line for every segment of every character. Your 4-character display would need at least 30 pins.
To save pins, displays are arranged so the segments are multiplexed. Each pin at the edge of your display probably connects to at least three segments of some number. Explaining it in any more detail requires diagrams, and rather than draw them myself I'll point you to this datasheet from Atmel which describes driving simple LCDs directly from a microcontroller: http://www.atmel.com/Images/doc2530.pdf
Without getting too far into details, LCDs need to be driven with AC signals. Applying DC voltage to an LCD segment will eventually cause the liquid crystal to plate onto the glass. Either you want them neutral, or you want to balance every positive signal with a negative one of the same strength. In theory that isn't too hard, but the most obvious way to handle the wiring uses a separate input line for every segment of every character. Your 4-character display would need at least 30 pins.
To save pins, displays are arranged so the segments are multiplexed. Each pin at the edge of your display probably connects to at least three segments of some number. Explaining it in any more detail requires diagrams, and rather than draw them myself I'll point you to this datasheet from Atmel which describes driving simple LCDs directly from a microcontroller: http://www.atmel.com/Images/doc2530.pdf
- cstratton
- Posts: 294
- Joined: Wed Sep 29, 2010 3:52 pm
Re: Reverse engineering a 12 pin display
When I reverse engineered an LCD, I just used a scope.
Most of the time I only used one channel, as I was able to differentiate the column lines from the segment lines by a difference in their waveforms - the columns have a neutral time, during which the other columns get to drive (it wasn't perfectly neutral though, there was some parasitic effect from the others). To confirm I understood what was going on, I may have briefly used a second probe to look at the phase / anti-phase relationship between the column and segment lines used to activate or not active a segment.
Once I knew which lines where columns and which were segments, I hooked them up to a microcontroller with a serial interface which I used to manually command the activation of one logical segment at a time, while visually observing the effect on the display and recording the effected segment. As it was a numeric display there was no ambiguity in judging which segment was on, and if I recall I soon recognized a pattern to their assignment.
Most of the time I only used one channel, as I was able to differentiate the column lines from the segment lines by a difference in their waveforms - the columns have a neutral time, during which the other columns get to drive (it wasn't perfectly neutral though, there was some parasitic effect from the others). To confirm I understood what was going on, I may have briefly used a second probe to look at the phase / anti-phase relationship between the column and segment lines used to activate or not active a segment.
Once I knew which lines where columns and which were segments, I hooked them up to a microcontroller with a serial interface which I used to manually command the activation of one logical segment at a time, while visually observing the effect on the display and recording the effected segment. As it was a numeric display there was no ambiguity in judging which segment was on, and if I recall I soon recognized a pattern to their assignment.
Please be positive and constructive with your questions and comments.