After playing around with an SSD1351 for a little while a few weeks ago, I decided to port Paul's optimisations for the ILI9351 display to SSD1351 OLED displays to try and understand some low-level things about the teensy as well as the display itself. It's not finished, I've removed some bits like rotation and font support for now because I wanted to make this work first.
The fastest frame rate achievable is about 80fps, using no buffering and low colour mode, writing a solid colour to the screen.
In most cases, the buffered version is faster than the non-buffered version, going up to significantly faster when doing lots of random access pixel manipulation. Filling the whole display with drawPixel goes up to ~60fps with buffering, ~11 without. Additionally, single buffering means no flickering.
The API is pretty much the same as the normal Adafruit GFX library, with the addition of having to call updateDisplay() to send data to the screen once per frame for the buffered modes.
My next step is bit-packing the HighColor mode to reduce the RAM usage from 50kb (128x128 x 3 bytes) to 36kb (128x128 x 2.2bytes), then adding a 256 color indexed mode and finally hopefully double buffering.
You can find the library here: https://github.com/kirberich/teensy_ssd1351
Some gotchas:
Here's a quick example video of it in action: https://www.youtube.com/watch?v=unFFJBnWf4U
The fastest frame rate achievable is about 80fps, using no buffering and low colour mode, writing a solid colour to the screen.
In most cases, the buffered version is faster than the non-buffered version, going up to significantly faster when doing lots of random access pixel manipulation. Filling the whole display with drawPixel goes up to ~60fps with buffering, ~11 without. Additionally, single buffering means no flickering.
The API is pretty much the same as the normal Adafruit GFX library, with the addition of having to call updateDisplay() to send data to the screen once per frame for the buffered modes.
My next step is bit-packing the HighColor mode to reduce the RAM usage from 50kb (128x128 x 3 bytes) to 36kb (128x128 x 2.2bytes), then adding a 256 color indexed mode and finally hopefully double buffering.
You can find the library here: https://github.com/kirberich/teensy_ssd1351
Some gotchas:
- Currently doesn't run when overclocking the teensy
- I've only tried this on the Adafruit 128x96 version of the SSD1351
Here's a quick example video of it in action: https://www.youtube.com/watch?v=unFFJBnWf4U