(Updated at 12/01/2022)
Screen drivers generally do not send data directly when a pixel is modified. It would take too much time each time. All pixels of the screen are sent at once. To do this, a buffer contains the state of all the pixels on the screen: it is an array of bits of type
Our Python program will modify the state of the pixels in the buffer. Then this buffer will be sent periodically to the screen to update the “physical” pixels, possibly in the background by the driver. The Python library’s driver communicates with the screen via an I2C bus, SPI.
FrameBuffer is only an abstraction layer that proposes a generic buffer. The data format will be configured according to the type of pixels on the screen (monochrome, RGB).
We can also have several small
FrameBuffer for the same screen, with a size smaller than the screen dimensions. This will be very useful for moving small images on the screen.
In this article, we use the SS1306 monochrome screen for more simplicity