User Tools

Site Tools


arduino:displays_for_classic_arduinos:tiny_oled_displays_and_classic_arduinos

Tiny OLED displays and classic Arduinos

Summary evaluation

Very small 128×64 OLED display modules offering both SPI and I2C interfaces via an SSD1306 controller IC have been around for a few years. The most popular size is 0.96", but a larger 1.3" version is also available. They are priced very reasonably, and owing to their small physical size they offer high DPI. Since they are monochrome devices, the expected data load they present to the microcontroller is, unlike TFT displays, relatively low.

The 1.3“ size in particular is an attractive alternative to the Nokia 5110 display in that it isn't surplus and offers a more modern appearance. They are also a promising alternative to 1.8" and 1.44" TFT displays, whose data requirements leaves speed wanting with the wimpy little Uno/Nano/Pro Mini.

In the tests that follow, I am striving to answer first whether the rendering updates will be fast enough for reasonable use and second whether there will be any memory left to do anything interesting.

They are certainly fast enough, but the required program storage and dynamic memory isn't trivial.

Tests

There are more libraries than the ones below available for the SSD1306 interface IC. I only used these because results for the Nokia 5110 display give us an idea regarding how various libraries might scale. Both tests were done with a 16 MHz 5V Nano using a module I ordered from an Asian source.1) I only tested the SPI interface. I2C interfaces are expected to be slower, but they might still be fast enough.

U8g2

Oli Kraus' U8g2 is intended to be a common platform for interfacing to a whole bunch of different monochrome displays. It supports the SSD1306 controller chip out of the box.

The frame update time of 76 ms with a 16 MHz processor (the inverse of the fps noted in the source code) is respectable, and character change artifacts are not objectionable. Memory use is on the order of 46% of program storage space and 28% of dynamic memory on a Nano.

The flickering seen in the video isn't present in real life.

source code

U8glib

Before there was U8g2, there was U8glib. While this version of the library is no longer maintained, it doesn't mean it doesn't have value. It's constructors are a little less bewildering than U8g2 and so may be better suited to beginners.

The frame update time of FIXME with a 16 MHz processor (the inverse of the fps noted in the source code) is respectable, and character change artifacts are not objectionable. Memory use is on the order of 56% of program storage space and 13% of dynamic memory on a Nano.

The flickering seen in the video isn't present in real life.

source code

1)
The modules are purported to be 5V tolerant, but you might want to use level shifters anyway if you're going to use a 5V board.
arduino/displays_for_classic_arduinos/tiny_oled_displays_and_classic_arduinos.txt · Last modified: 2018/01/28 06:08 by mithat