disclaimer / info:
DISCLAIMER:
THIS IS EXPERIMENTAL SOFTWARE AND HARDWARE. USE AT YOUR OWN RISK. THE MAINTAINER(S) OF THESE PAGES AND THE DEVELOPER(S) OF SOFTWARE AND HARDWARE PRESENTED ON THESE PAGES CAN NOT BE HELD LIABLE UNDER ANY CIRCUMSTANCES FOR DAMAGE TO HARDWARE OR SOFTWARE, LOST DATA, OR OTHER DIRECT OR INDIRECT DAMAGE RESULTING FROM THE USE OF THIS SOFTWARE OR HARDWARE. IF YOU DO NOT AGREE TO THESE CONDITIONS, YOU ARE NOT PERMITTED TO USE OR FURTHER DISTRIBUTE THIS SOFTWARE OR TO USE ANY TEMPLATES FOR BUILDING HARDWARE PRESENTED HERE.
- this page deals with connecting a nokia 7110 display (or generally: sed1565-based display) to a parallel port and drive it using
serdisplib
- i'm not responsible for the content of external web pages
- external web pages will generally open in separate browser windows or tabs
- english is not my native language. please keep that in mind (corrections of english grammar and formulations are very welcome!)
- email: mrwastl at users.sourceforge.net
nokia 7110 displays:
description
nokia 7110 displays are controlled using an on-glass controller sed1565.
with some technical skills, an independant, small display with background light can be gained out of these
phones at hardly any costs.
specifications | |
---|---|
resolution | 96x65 |
colours | monochrome |
controller | sed1565 |
backlight | yes (4 LEDs, green, included in display module) |
adjustable contrast | yes, programmable |
dimensions | module: 48 x 63 mm, display area: 34 x 29 mm (measured) |
name in serdisplib |
NOKIA7110 (example: serdisp_init(sdcd, "NOKIA7110", ""); ) |
pinout, assembling
pinout for nokia 7110 display1 temp sensor 47k (at 25C) 2 /CS chip select (low active) 3 speaker + 4 D/_C command/data switch 5 SCLK serial clock line of LCD 6 speaker - 7 on/off switch 8 LED- LED cathode 9 LED+ LED anode 10 GND ground for printer port and VDD 11 GND == pin 10 12 VDD +V (Chip power supply, some value around 3V) 13 SDATA serial data input of LCD 14 /RES low active Reset input annotations
|
at first i wanted to solder flexcables directly onto the pins, but this didn't work as expected, so i decided to build 'contact pads' which also did a good job in my pcd8544-project:
|
front and back view of ready assembled nokia 7110 display |
some images
nokia 7110 display showing a test image | nokia 7110 display with output generated by graphlcd |
nokia 7110 display in red (replaced green leds with red ones) warning: readability suffers when using red backlight |
top ^
connecting a nokia 7110 display to the parallel port:
intro
the wiring is based on the wiring of optrex 323 and pcd8544-based displays to the parallel port.
as i didn't know of any other projects like this (with nokia 7110 displays connected to the parallel port) i had to chose a wiring-'standard' for myself.
wiring
signals:
+------------------+ | 7 1 | | # # # # # # # | | # # # # # # # | | 8 14 | +--======================--+ | == == == == | <-- background LEDs | ############## | <-- on-glass controller +--======================--+ | | | | | rear view | | connector is visible | | | | nokia 7110 | | | +--------------------------+ Signal name PC LCD Signal name --------------------------------------------------------- Data 0 2 13 SDATA (SI) serial data input of LCD Data 1 3 5 SCLK serial clock line of LCD Data 2 4 4 D/_C command/data switch Data 4 6 2 /CS chip select (low active) Data 5 7 14 /RES low active Reset input Data 7 9 8, 9 backlight (switched using a transistor) Ground 18 10,11 GND ground for printer port and VDD -- 12 VDD +V (Chip power supply, some value around 3V)
circuit:
part list:
Part# Type Value Annotation --------------------------------------------------------------------------------------- R1-R6 Resistor 1 kOhm R7 Var.Resistor eg. 100 Ohm or higher value if needed; or simply a resistor with fixed value T1 Transistor eg. BC547 D1 Diode eg. 1N4148 IC1 Var. Voltage Reg. LM317 (or similar) Vout should result in some value at 3V R8 Resistor eg. 220 Ohm R9 Resistor eg. 330 Ohm C1, C2 Capacitor some uF not mandatory, for smoothing input voltage
remarks:
R6, R7, T1, D1 are needed in combination with LED background light only!
R8 and R9 affect Vout of IC1 and are calculated using the following formula:
Vout = 1.25 * (1 + (R9 / R8))
usually (according to the data sheet of LM317) R8 should be 240 Ohm. i chose 220 Ohm.
together with R9 = 330 Ohm i get Vout = 3.15 V.
i also tested a PJ 1084 (smd lowdrop adj. voltage reg.) as a replacement for the LM317 and it worked fine.
attention: different order of pins!
addressing
anomaly of nokia 7110
sed1565 supports a max. resolution of 132x65, but nokia 7110 displays only use 96x65. unlike one might expect, the first column is not 0, but 18. so every column address has to be shifted by 18.
pages vs. rows:
the display is organised in colums and pages: 8 pixel-rows are combined to a so called page.
as only whole bytes can be transferred to the display, a single pixel cannot be changed without knowing its 7 'neighbour' pixels.
so a display buffer was introduced in the library. pixel changes are all done in this buffer and in a separate step only changed 'page bytes' are transferred (using an optimising algorithm) to the display.as sed1565 supports 65 lines, 9 pages are used. but only the first bit row is used from the last page.
top ^
passing options through serdisp_init():
intro
using the third parameter of
common information about passing options and customisable wiring can be found in a separate document.
serdisp_init()
, driver specific options and custom wiring can be set.common information about passing options and customisable wiring can be found in a separate document.
examples: serdisp_init(sdcd, "NOKIA7110", "ROTATE=90;INVERT=YES;BACKLIGH=OFF");
options
identifier | short | remark | default |
---|---|---|---|
ROTATE | ROT | rotate display (1 == 180 degrees) | 0 |
INVERT | INV | invert display | 0 |
DELAY | delay after each write/read operation.0 .. no delay 1 .. one call of gettimeofday() >1 .. delay at least x nanoseconds | 0 | |
CONTRAST | set display contrast | 5 | |
BACKLIGHT | BG | switch background light on or off | 1 |
WIRING | WIRE | pre-defined or customisable wiring | 0 |
ranges, aliases
identifier | range | aliases |
---|---|---|
ROTATE | 0, 1, 90, 180, 270 | YES=180, NO=0, TRUE=180, FALSE=0 |
INVERT | 0, 1 | YES=1, NO=0, TRUE=1, FALSE=0 |
DELAY | >= 0 | NONE=0 |
CONTRAST | [0, 10] | |
BACKLIGHT | 0, 1 | YES=1, NO=0, TRUE=1, FALSE=0, ON=1, OFF=0 |
pre-defined wiring definitions
identifier | numeric id | protocol | description |
---|---|---|---|
SerDTSerdisp | 0 | PAR | SerDisp wiring, serial data transfer |
display signals
identifier | description | mandatory |
---|---|---|
SI | serial data input | * |
SCL | serial clock | * |
DC | data or command | * |
ICS | chip select input, active low | * |
RESET | reset signal, active low; optional if wired to a hardware reset circuit | |
BACKLIGHT | backlight, optional |
annotations
- serdisplib driver sed156x supports two different types of displays:
- nokia 7110 uses serial data transfer in opposite to nec 21a display module which uses parallel data transfer. nec 21a uses
WIRING=1
which is NOT applicable for nokia 7110 displays!
top ^
links:
data sheets | |||
---|---|---|---|
sed1565 controller | data sheet for SED 1565 | (english) | sed1565.pdf |
links to other projects | |||
---|---|---|---|
Berty's Home Page | pinouts, projects, ... for different LCDs. important source for my project | (english) | http://sandiding.tripod.com/Bertys.html |
Nokia 7110 | nokia 7110 pinouts (at berty's page) | (english) | http://sandiding.tripod.com/nokialcd7110.html |
driving library for Nokia 7110 | How to interface a Nokia 7110 lcd with a PIC16F84A microcontroller | (english) | http://sandiding.tripod.com/n7110.html |
top ^
thanks:
special thanks go to | |
---|---|
donating a nokia 7110 phone |
* Renè Hofer * Andreas Fierlinger * Christian Pühringer |
top ^
history:
2005-05-08 | adapted page for new css added section 'passing options' |
2004-08-29 | added picture of nokia 7110 display hack using red background light |
2004-04-03 | added dimensions for display module and display area |
2004-03-28 | first final release |
2004-03-25 | first pre release |
top ^