OLED Displays are SLOW!

David Such
9 min readNov 16, 2022

We have been prototyping an Arduino based Electronic Speed Controller and planned to include a 0.96" OLED display. Tests on an Arduino UNO, clocked at 16 MHz, have shown that this display could best be described as sluggish! Even using SPI, printing out 3 lines of text results in a loop cycle time of 15 Hz. Quelle horreur! This prompted us to investigate further to understand the bottlenecks, SPI vs I2C speed, and whether there were any work arounds.

Figure 1. 0.96" DFR0650 OLED Display

1.0 0.96" 128 x 64 Pixel OLED Display

The OLED display that we are testing is the monochrome 0.96” OLED display from DFRobot called the DFR0650 (Figure 1). This module uses the SSD1306 driver chip, has 128 x 64 self-illuminating white pixels, and can communicate with the MCU using I2C or SPI. The module can be powered from 5V or 3.3V and the I2C address is 0x3C. There are many other similar displays in the market and this is not a DFRobot design issue.

2.0 I2C Vs SPI

I2C is the default communication protocol for the display and only requires connecting two pins (SCL and SDA) in…

--

--

David Such

Reefwing Software · Embedded Systems Engineer · iOS & AI Development · Robotics · Drones · Arduino · Raspberry Pi · Flight Control