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 Pictiva 96x64x16 OLED 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
Pictiva 96x64x16:
description
Osram Pictiva 96x64x16 is a full-colour OLED display with 1" screen diagonal.
specifications | |
---|---|
resolution | 96x64 |
colours | 256, 64k |
controller | SSD1332 |
backlight | not needed (OLED -> self emitting) |
adjustable contrast | yes |
dimensions | module size: 27.2 x 21.5 mm; display area: 20.1 x 13.4 mm (datasheet) |
name in serdisplib |
"OLED96X64X16" (example: serdisp_init(sdcd, "OLED96X64X16", ""); ) |
some images
output generated by testserdisp |
some test output rendered by multidisplay |
test output generated by multidisplay on a solaris 10 box |
|
remarkdisplay content looks much better in reality. it is not easy to photograph an OLED because of its high contrast. thus the images shown here are far away from the real impression. |
top ^
configuration notes
configuration notes for graphlcd
the default colour in graphlcd is set to black. current versions of graphlcd only draw information (when background and foreground colour are set to default) when using the foreground colour.
when using OLEDs (and depth > 1) the problem now is that information is only visible if the drawing colour is NOT black (because the background of the whole display is black). because of this the foreground colour has to be set to something else (usually white (
when using OLEDs (and depth > 1) the problem now is that information is only visible if the drawing colour is NOT black (because the background of the whole display is black). because of this the foreground colour has to be set to something else (usually white (
0xFFFFFF
)).
example configuration in graphlcd[serdisp] Driver=serdisp Device=/dev/parport0 Controller=OLED96X64X16 FGColour=0xFFFFFF
top ^
connecting a Pictiva 96x64x16 OLED display to the parallel port:
pinout
1 (nc) not connected 2 VCC OLED power supply 3 VCOMH common (row) high voltage 4 VSS GND 5 D7 parallel data 7 / serial mode: nc 6 D6 parallel data 6 / serial mode: nc 7 D5 parallel data 5 / serial mode: nc 8 D4 parallel data 4 / serial mode: nc 9 D3 parallel data 3 / serial mode: nc 10 D2 parallel data 2 / serial mode: nc 11 D1 parallel data 1 / serial mode: SDA 12 D0 parallel data 0 / serial mode: SCLK 13 /RD 8080 mode: RD strobe / 6800 mode: E clock 14 /WR 8080 mode: write strobe / 6800 mode: read/write 15 D/C HIGH: data / LOW: command 16 /RES active low reset 17 /CS active low chip select 18 IREF segment (column) current reference 19 BS2 interface selection pin 2 (see table below) 20 BS1 interface selection pin 1 21 VDD logic supply voltage 22 (nc) not connected 23 (nc) not connected 24 (nc) not connected 25 VSS GND 26 (nc) not connected 6800 parallel 8080 parallel SPI serial --- ------------- ------------- ---------- BS1 0 1 0 BS2 1 1 0 |
leftmost: pin 1, rightmost: pin 26 |
wiring
circuit:
connecting a Pictiva 96x64x16 OLED display to the parallel port
part list:
Part# Type Value Annotation --------------------------------------------------------------------------------------- R1-R12 Resistor 1 kOhm R13 Resistor 10 kOhm R14 Resistor 920 kOhm or 1 MOhm C1-C2 Capacitor 4.7 uF C3 Capacitor 10 uF
annotations:
- according to the datasheet, VCC (OLED power supply) is 11V, but 12V seems to be fine, too
- VDD (logic power) needs to be 2.4V - 3.5V. thus 3.3V is fine because it can be gained directly from the ATX power supply
- pin 4 (VSS) can be left unconnected if pin 25 (VSS) is connected to GND
- the circuit is hard-wired to parallel bus data-transer
- interface mode: 8080 (BS1 and BS2 wired to VDD)
- hardware reset is used
- LCD/D0 (pin 12) must be connected to PARPORT/D0 (pin 2), LCD/D1 (pin 11) must be connected to PARPORT/D1 (pin 3), and so on
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, "OLED96X64X16", "CONTRAST=5;INVERT=YES"); serdisp_init(sdcd, "OLED96X64X16", "DEPTH=8;INTERFACE=6800");
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 | |
DEPTH | COLS, COLOURS | colour depth | 16 |
INTERFACE | MODE | interface mode (0 .. 8080, 1 .. 6800, 2 .. SPI) | 0 |
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] | |
DEPTH | 8, 16 | 65536=16,64k=16,256=8 |
INTERFACE | 0, 1, 2 | 8080=0,6800=1,SPI=2,SERIAL=2 |
pre-defined wiring definitions
identifier | numeric id | protocol | description |
---|---|---|---|
Original | 0 | PAR | Original wiring |
OriginalSWRes | 1 | PAR | Original wiring w/ software reset |
SPI | 3 | PAR | simple SPI wiring |
display signals
identifier | description | mandatory |
---|---|---|
parallel modes (8080, 6800) | ||
D0 - D7 | 8 bit wide data bus | * |
CS | chip select input, active low | * |
DC | data or command | * |
WR | write signal, active low | * |
RD | read signal, active low | |
RESET | reset signal, active low; optional if wired to a hardware reset circuit | |
serial mode (SPI) | ||
SDA | serial data | * |
SCLK | serial clock | * |
CS | chip select input, active low | * |
DC | data or command | * |
RESET | reset signal, active low; optional |
top ^
links:
data sheets, technical informations | |||
---|---|---|---|
display datasheet | local copy of Pictiva 96x64x14 display datasheet | (english) | OLED_96X64_Color.pdf |
technical reference | local copy of SSD1332 controller technical reference | (english) | Treiber_IC-SSD1332_OLED_96x64_COLOR.pdf |
top ^
history:
2008-01-11 | added configuration notes |
2007-12-23 | corrected a bug in the circuit (IREF resistor was wrongly wired to /REF. needs to be wired to GND instead) |
2007-08-26 | first release |
top ^