When I first started implementing the SSD1306 OLED on my prototype, I grabbed the quickest and easiest to implement driver I could find - a driver Espressif shipped as part of ESP-BSP that has since been removed. It worked great, updated the screen at about 40 hz, and was very light on resources. However, it only supports a single font, and isn't set up easily to support adding others without doing a fair amount of work to get each glyph into a specific format of C array. I wanted to add a different font, so I started looking around at other options.That driver is no longer supported, and Espressif has replaced it with a lower level driver that doesn't actually support any fonts, just direct bitmap drawing. The recommendation is now to use LVGL, a fully featured graphics stack that has widgets, buttons, all sorts of things. So I went about implementing LVGL, which - sure enough - has good support for adding your own fonts, but can't hit more than about 18 - 20 hz on the ESP32 (running at full speed I2C, 400khz). It's also set up with its own timer and draw loop, and after fiddling around for quite a while I wasn't able to get the display to update faster. In addition, the draw loop persistently uses about 5% of a core on the ESP32 regardless of how much work there is to do - it just didn't feel like the right thing for me. Additionally, and I didn't look too much into this, when I use LVGL an audible whine comes out of my SSD1306 display. Maybe that's something I could debug, but I had already planned to move on at this point.LVGL is... a bit much for my use caseU8G2 is a popular library that supports dozens of small displays, including the SSD1306. I had used it before, so figured I'd give it a shot again. It's going a ton of fonts built in and has a system for importing additional fonts into its internal format. It doesn't natively support ESP-IDF, but there's a wrapper that works pretty well. However, after getting this implemented, again I hit the issue of slow ...
First seen: 2025-04-14 18:05
Last seen: 2025-04-15 04:07