As the extension capabilities are a bit limited on the Ottoky I decided to simulate the LED panel on the OLED screen. I started from the Adafruit library and added a ZoomLevel parameter in constructor to allow a "zoom" on the screen so for example the 12864 OLED in 8x zoom will behave like a 16x8 led.
The main advantage compared to drawing circles using the Adafruit library is the much lower memory footprint. 128*64 buffer is 1kb in size with Adafruit library. With the zoom version the buffer is the size of the simulated led panel, so with x8 zoom simulating Otto Eyes the buffer is only 16 bytes.
The data is only generated on the fly
The library can be found here: https://github.com/Nca78/SSD1306_Zoom
Just put in a SSD1306_Zoom directory in your Arduino library folder and you're good to go.
The idea was to make it 100% compatible with the Otto Eyes sketches but unfortunately the way it's implemented at the moment forces to use rotation. But it's still compatible with very little changes, as you can see if you test the attached arduino sketch.
I am working on something to manage faces (mouth + eyes) in one place and output on led matrix and/or OLED, it will be available in a few days.
Usage is easy, pass screen size and zoom level (can be 2,4,8) and then use it like the normal library. Width and height in the constructor are the real size of the OLED screen, but the buffer you can draw on will be divided by zoom. 8x = 16x8, 4x = 32x16, 2x = 64x32.
#include "SSD1306_Zoom.h" SSD1306_Zoom matrix = SSD1306_Zoom(128,64, SSD1306ZoomX8); //I2C OLED simulating 16x8 led matrix