Skip to content

OLED Rocker

Application Notes for the OLED Rocker

All Rights Reserved Worldwide

NKK Switches makes no warranty for the use of these products and assumes no responsibility for any errors which may appear in this document, nor does it make a commitment to update the information contained herein. SmartDisplay is a trademark of NKK Switches.

The application notes should be used in conjunction with the OLED Rocker datasheet which has the timing diagrams for the power up and the communication.

The following is a list of the OLED Rocker part numbers and its associated hardware.

PNDescription
IS18WWC1W
AT715Cable to connect OLED Rocker to controller.
AT097Connector. PCB mount for controllers.
IS-CHPMPCharge pump. Input 2.7 to 5.5V. Output 16V.
IS-ENG-KIT-8-REngineering Development Kit.
IS18WWC1W-KOLED Rocker design kit. Includes one each of the following: IS18WWC1W, AT715, AT097, IS-CHPMP.
IS-ENG-KIT-8-R

The following are the pinouts for the OLED Rocker:

PinSymbolPin NameFunction
1VDDALogic Type Power SourcePower source for logic (2.4V to 3.5V).
2XRESResetReset the OLED module.
3XCSChip SelectSelect the OLED module. This pin should be pulled down for the duration of the command/parameter package.
4A0AddressData/command select. The pin is pulled low for transmitting the command byte. The pin is pulled high for transmitting the command parameter.
5SCLSerial ClockClock for SPI communication. Maximum 10MHZ.
6SISerial Data InputData for SPI communication.
7VSSGround
8VAHDrive Type Power SourceSupply voltage for OLED (14.5V to 15.5V)
9SW1Switch Terminal 1Top Switch
10SW2Switch Terminal 2Middle Switch
11SW3Switch Terminal 3Bottom Switch
12SW_COMSwitch Common TerminalSwitch Common

The OLED Rocker has three pushbutton switches. One side of each pushbutton switch is connected to pin 12 (SW-COM). The switches are normally open. Pressing the top of the display connects pin 9 to pin 12, pressing the middle of the display connects pin 10 to pin 12 and pressing the bottom of the display connects pin 11 to pin 12.

The switches can be scanned by connecting the SW_COM to Ground and the other pins to a micro- controller. For a matrix of switches, many different methods can be used for scanning.

It is possible to actuate both the top and middle switches by pressing halfway between the two switches. This is also true for pressing halfway between the middle and bottom switches. Accidental two switch actuation can be resolved by firmware. For example, if the top and bottom switches are used to cycle between different options, and the middle switch is used for selecting an option, either of the following firmware solutions can alleviate inadvertent actuations:

  • Have the user reconfirm the selection.
  • When scanning the switches, ignore the middle switch press if two switches are pressed at the same time.

Overview of How to Control the OLED Rocker

Section titled “Overview of How to Control the OLED Rocker”

The OLED Rocker comes with a controller onboard. The onboard controller is an intelligent controller with many features such as:

  • Memory for a single image.
  • Communication via SPI.
  • Handling the refresh of the OLED.
  • 16 levels of brightness control.

Two voltage levels are required for the OLED Rocker: logic voltage and OLED voltage. To control the OLED Rocker, the following steps must be followed:

  1. Follow the power up sequence so the onboard controller boots up properly first before the OLED voltage is supplied.
  2. Transmit commands for initialization. Many of these commands are specific to the OLED display and the connection to the onboard controller. Any changes could cause damage to the OLED display. Some of the initialization commands have user defined features and can be modified as desired.

Upon completion of the above steps, the content of the internal memory gets displayed. Any image data transmitted to the memory gets displayed until a new image is transmitted. An animation is achieved by transmitting images consequently at the desired speed.

Design considerations for OLED voltage:

  • The recommended OLED voltage is 15V.
  • Must conform to power up/down requirements. On power up, the logic level is applied before the OLED voltage is enabled. On power down, the OLED voltage is disabled with or before the logic voltage.
  • As each pixel row of the display is refreshed, the current can swing from a few micro amps up to a maximum of 13mA depending on the number of pixels ON. If the voltage fluctuates due to the current swing, it will affect the quality of the display.
  • Many manufacturers offer voltage booster IC chips specifically designed to produce OLED level voltage from logic level voltage. These voltage booster IC chips are very efficient and meet the entire power requirements for the OLED display.
  • For use in prototype stages, NKK Switches can supply a charge pump. It provides more than 20mA at 16V output from 2.4V to 5.5V input. It has a shutdown pin to activate/disable. It provides enough current for up to two OLED Rockers. The charge pump part number is IS-CHPMP, and specifications can be downloaded from our website.

Four control lines are used for communication:

The data is transmitted using clock (SCL) and data (SI). One bit of data is received on each rising of the clock signal. The normal state of the clock can be high or low. Each eight bits of data received make a byte. The first bit transmitted for each byte is received as the highest bit of the bytes.

All the commands are one byte. All the commands have a one- or two-byte parameter except the reset command and the command for writing the image data. The command parameter for writing image data has 768 bytes (based on the selected download window). All the commands and associated parameters are listed in the following sections.

When the select line (XCS) is high, clock and data are ignored. To start the communication, the OLED Rocker must be selected by setting the XCS line low. The AO line should be set low for transmitting the command byte and set high for transmitting the parameter bytes. The XCS line should be set high after command and parameter bytes are transmitted.

The onboard OLED Rocker controller memory size is 16 bytes (128 bits) x 64. The display size is 96 bits x 64 where initialization sets the memory for the image as shown in green. The additional memory area shown in blue is provided for scrolling. Scrolling will be discussed in a later section.

OLED Rocker onboard memory map

The command for writing the image data is 08H. The number of parameter bytes depends on the download window selected. The download window is selected with other commands. The initialization has selected the green part of memory as the download window (picture above), so the parameter has 768 bytes. This data is for one display image. The order of transmitting an image is described in the table below. The most significant bit of the first byte is displayed on the top left corner pixel of the display, and the least significant bit of the 768th byte is displayed on the bottom right corner pixel of the display.

ByteDescription
1–12First line of image
13–24Second line of image
745–75663rd line of image
757–76864th line of image

Sample Schematic for Multi-Rocker Controller

Section titled “Sample Schematic for Multi-Rocker Controller”

Below is a schematic to control two OLED Rockers. The charge pump produces OLED voltage. R1 is needed if upon power up it takes the microcontroller too long to disable the charge pump by setting the P1 to low.

Schematic for controlling two OLED Rockers

Additionally, please see the Engineering Kits for OLED for an example schematic on how to control one rocker.

Follow the power up sequences according to the diagram below:

Power ON/OFF Sequence

All the initialization commands are listed in the table below. The commands with remark “Note 1” already hold their proper parameter values, as stated, after power up, so the commands are not required to be transmitted. All other commands must be transmitted after power up. The commands with the remark “Note 2” must be transmitted with the stated parameter. A change to the parameter of these commands can damage the display.

The commands that have a user defined option will be discussed in section Commands.

Initialization Commands

DescriptionCommand ByteParameterRemark
Software Reset01
Dot Matrix Display OFF0200Note 1
Read/Write Operation Wetting0700Note 1
Display Direction Set Command0900Note 1
Reserved 1100FNotes 2 & 3
Reserved 21237Notes 2 & 3
Reserved 31300Note 2
Dot Matrix Display Standby ON/OFF1400
Reserved 41600Note 2
Reserved 51700Notes 1 & 2
Reserved 6180FNotes 2 & 3
Reserved 71A04Notes 1 & 2
Reserved 81C00Notes 1 & 2
Graphic Memory Writing Direction1D00Note 1
Setting Column Output Range30106FNotes 1 & 2 & 3
Setting Row Output Range32003FNotes 1 & 2
X Axis Reading/Writing Start Point3400Note 1
X Axis Reading/Writing End Point350BNote 1
Y Axis Reading/Writing Start Point3600Note 1
Y Axis Reading/Writing End Point373FNote 1
X Axis Reading Start Address3870Notes 1 & 3
Y Axis Reading Start Address3900Note 1
Reserved 94803Note 2
Screen Saver Event Timer Setting CommandC300Note 1
Screen Saver Event Timer Setting CommandC400Note 1
One Time, Repeat, or Direction Setting for Screen SaverCC00Note 1
Start/Stop Setting for Screen SaverCD00Note 1
System Clock Division Ratio SettingD080Note 2
Setting the STBY PinD200Notes 1 & 2
DACA SettingD400Notes 1 & 2
DACB SettingD500Notes 1 & 2
DACC SettingD600Notes 1 & 2
DACD SettingD700Notes 1 & 2
Reserved 10D900Notes 1 & 2
Dimmer SettingDB0FNote 1
Reserved 11DD84Notes 2 & 3
Dot Matrix Display ON0201

Upon finishing the initialization, the OLED module displays the contents of the onboard controller memory.

Deprecated Initialization Commands (Do not use after 8/21/2019)

DescriptionCommand ByteParameter
Reserved 11003
Reserved 21263
Reserved 61809
Setting Column Output Range30005F
X Axis Reading Start Address3800
Reserved 11DD88

Sending new values instead of the old ones for legacy devices will not harm the device, only cause the image to display incorrectly.

Command 08H with 768 bytes of image data can be transmitted to the memory at any time. Any image data transmitted to the memory gets displayed until a new image is transmitted. An animation is achieved by transmitting images consequently at the desired speed.

This command resets the OLED Rocker.

Command ByteParameter
01none

This is the only command that does not have a parameter. The result of this command is as follows:

  • All the commands have default values.
  • Display is OFF.
  • Oscillation for refresh stops.
  • No change to the content of the memory. The initialization commands must be transmitted after reset.

This command turns the display on or off.

Command ByteParameter
02B7B6B5B4B3B2B1B0
-------B0

B0 = 0 ===> Turn the display OFF
B0 = 1 ===> Turn the display ON

This command has no effect on the memory, and can be used at any time. It can be used for blinking the display. It is also recommended to turn off the display before power down.

This command starts or stops the internal clock oscillation.

Command ByteParameter
14B7B6B5B4B3B2B1B0
-------B0

B0 = 0 ===> Start the oscillation B0 = 1 ===> Stop the oscillation

This command has no effect on the memory. It can be used for power saving. The display must be turned off using the Display ON/OFF command first, then after a short delay, this command can be used to stop the oscillation. After using this command to start the oscillation, the Display ON/OFF command can be used to turn the display on.

This command sets the brightness level of the display.

Command ByteParameter
DB0X

This command can be used at any time. There are 16 steps for the brightness level (00H to 0FH). 0FH is the maximum brightness and 00H is the minimum brightness. The OLED Rocker life of 52,000 hours is based on 0FH brightness. The dimmer the brightness level is set, the longer the life.

Specifying the Window Size for Writing Data to Memory Commands

Section titled “Specifying the Window Size for Writing Data to Memory Commands”

These commands specify the memory window to download image data using command 08H.

FunctionCommand ByteParameter Byte
X Start Address34XX
X End Address35XX
Y Start Address36XX
Y End Address37XX

The memory is 16 bytes x 64 rows. The X addresses specify the bytes, and the range is from 00H to 0FH. The Y addresses specify the rows, and the range is from 00H to 3FH. The End addresses cannot be smaller than the Start addresses. This set up also determines how many bytes the parameter of the command 08H has.

Examples:
X start Address = 00H, X End Address = 0BH, Y start Address = 00H, Y End Address = 3FH.
Command 08H has 768 bytes as a parameter.
X start Address = 00H, X End Address = 02H, Y start Address = 00H, Y End Address =02H.
Command 08H has 9 bytes as parameter.

This command writes the data to the memory.

Command ByteParameter
08Many Bytes

The number of bytes for the parameter is determined from the window size selected for data download.

This command determines the direction that bytes are written to the memory window by the command 08H.

Command ByteParameter
1DB7B6B5B4B3B2B1B0
----MLVHD1D0

B3 determines if the data bytes are received most or least significant bit first. Please note, this only applies to the image data. B0, B1, and B2 determine the direction that the data bytes are written to the memory window by the command 08H.

OLED Rocker Writing Direction

Direction of Refreshing the OLED from Memory Command

Section titled “Direction of Refreshing the OLED from Memory Command”

This command determines the direction that the image gets refreshed from memory to the OLED display.

Command ByteParameter
09B7B6B5B4B3B2B1B0
------D1D0

Parameter values D1 and D0:

D1D0Column DirectionRow Direction
00Left to RightTop to Bottom
10Left to RightBottom to Top

Display Direction

Start Point of Refreshing the OLED from Memory (Manual Scrolling)

Section titled “Start Point of Refreshing the OLED from Memory (Manual Scrolling)”
FunctionCommand ByteParameter Byte
X Display start38XX
Y Display start39XX

X Display start range is between 0 to 127 (00H to 7FH).
Y Display Start range is between 0 to 63 (00H to 3FH).

These commands set the starting memory bit for the image to be refreshed. The refresh window in the memory will be 96 bits by 64 rows. The refresh window raps around after 127th bit of memory and raps to the top after the 63rd row. These commands can be used at any time. They go to effect on the next refresh cycle.

The onboard controller has a feature for scrolling the 128 x 64 bits of memory across the display (96x64) horizontally. There are three commands to set up the speed and the direction of scrolling. There is a command for enabling and disabling the scrolling.

FunctionCommand ByteParameter
Step timerC3B7B6B5B4B3B2B1B0
Step timer unitC4------S1S0
Left/Right scrollCC-------LR
Enable/Disable screen saverCD-------D0

Command C3H specifies the timer value. The timer range is from 00H to FFH. 00H denotes 256 count. Command C4H specifies the timer step value as follows:

S1S0Step Value
00Timer not running
011 ms step
10100 ms step
11Timer not running

Command CCH specifies the direction of scroll. LR = 0 for right scroll and LR = 1 for left scroll.
Command CDH enables/disables the scroll. D0 = 0 disables and D0 = 1 enables.
If the timer is not running (command C4H), enabling the scroll will not work. When disabling after the scroll, the original window will be displayed.

The OLED life is measured as the time it takes, while continuously ON, for brightness to reach 50% of the original brightness. This measurement is also referred to as the 100% rated life. This 100% rated life is the worst case scenario and much less than the actual useful life of the OLED products for the following reason:

  1. To display any meaningful image, many of the pixels are OFF.
  2. Different images have different pixels ON/OFF.

The actual useful life of the OLED is many times higher than the 100% rated life depending on the way it is used. Studies have shown that for the average application, the pixels are ON 30 to 40% of the time while the unit is operating 100% of the time. That is why the OLED ratings have 30 or 40% associated with them. For example, the OLED Rocker has a life rating of 15,600 hours at 100% and 52,000 hours at 30%. Software engineers can optimize the images so the useful life is much higher than 52,000 hours.

Another point to consider is the 100% life rating is based on 100% brightness. Operating the OLED at a reduced brightness will result in longer life. If the OLED is operated at 50% brightness, the rated life is approximately doubled.

Example:
An OLED Rocker is used in an application that operates 18 hours a day. The images are designed so each pixel is ON 35% of the time. The brightness level is set at 80%. How many years will the life rating be?

  • Start with 15,600 hours at 100% rated life.
  • 15,600 hours / 35% ON = 44,571 hours.
  • (44,571 hours * 24 hours per day) / 18 hours ON per day = 59,428 hours
  • 59,428 hours / 80% brightness = 74,285 hours
  • (74,285 hours * 1 year) / 8,765 = 8.4 years
  • The life rating is 8.4 years.

Is the OLED Rocker capable of displaying animations?
Yes. The OLED Rocker response time is 0.2 ms which is the best among all the display technologies. The bottle neck is normally the communication speed. Over 100 frames per second of data can be transmitted to the OLED Rocker. Most videos are 25 to 30 frames per second.

What is aging?
Aging for the OLED Rocker refers to the reduction in brightness over time. Specifically, the OLED life is defined as the time it takes for the brightness to reach half the original state. See Section 11 above on the operating lifetime of the OLED.

Does the power up/down sequence have to be followed?
Yes. The power up sequence must be observed. If VCC powers the circuit before VDD is activated, the circuit could latch and damage the OLED. For the power down sequence, VCC cannot be present after VDD is off. Simultaneous turn off is possible as long as VCC does not have too much capacitance charge after turn off.

Are subassemblies with SmartDisplays included available?
Yes. NKK Switches has engineering kits and entertains custom designs.

Is NKK Switches planning to develop other sizes of the OLED Rocker?
NKK Switches is interested in developing new OLED Rocker products if there is a large quantity requirement. Customer feedback is considered when deciding what new products to develop. Feedback and/or application requirements are much appreciated.