Optimizing ESP32 OLED Driver: Speed vs. Font Support

2025-04-14
Optimizing ESP32 OLED Driver: Speed vs. Font Support

The author experimented with several drivers for an SSD1306 OLED display on an ESP32, ultimately settling on a modified, deprecated driver. Initially, an Espressif driver was used, but it only supported a single font. Subsequent attempts with LVGL and U8G2 suffered from low refresh rates. The author returned to the deprecated driver, adapting its I2C API calls for compatibility with the latest ESP-IDF, achieving a 40Hz refresh rate. To add font support, the nvbdflib library was integrated, directly parsing BDF fonts and drawing to the framebuffer, resulting in high-speed refresh and custom font capabilities.

Development