Are there any (generic) display drivers ports for SSD1306 using I2C?


I am searching for an port/driver adapter from LVGL v8.3 to an OLED display using the SSD1306 controller via I2C. The adapter shall support partial display updates.

With partial display updates I mean that one can update a region of the display only, and does not necessarily need to write the full buffer to the display for every modification of the screen.

What MCU/Processor/Board and compiler are you using?

Preferably I would like to use a driver which is independent from the MCU or framework (Arduino/ESP-IDF/…).

  • MCU: ESP32-S3
  • Board: ESP32-S3-DevKitC-1
  • Compiler: xtensa-esp32s3-elf-g++
  • using Arduino framework via PlatformIO

What do you want to achieve?

I am under the impression that there are many display drivers ported to LVGL already. But I can not find one which supports LVGL v8 and SSD1306 via I2C.

Preferably the driver port would not depend on a specific I2C implementation but instead provide an interface which can be adapted to different I2C HALs.

What have you tried so far?

The most promising so far seems to be an old version (based on LVGL v6?) of lv_drivers, which contains an SSD1306 driver port. But apparently this is not part of the project any more :worried:.


Before I write my own port:

  • are there any driver ports you can recommend?
  • are there other places to look at for driver ports?

For the record:

After further research I found a similar topic: “Ssd1306 for lv_port_esp32 available?” In which it is confirmed that the old SSD1306 driver has been abandoned. The result of that topic was that a SSD1306 driver has been developed for the ESP-IDF targeting ESP32. I guess, that both, the abandoned version from the new_api branch (see OP) and the ESP32 port, may be a good starting point to develop a generic SSD1306 driver (independent of the framework, IDE or I2C implementation).

give LovyanGFX a try - solid base:

here’s a decent project using LovyanGFX: GitHub - sukesh-ak/ESP32-TUX: ESP32-TUX - ESP32 / ESP32-XX Touch UX Template using LVGL to get you started