The SSD1306 is a graphical display controller IC, that is used in a number of small size OLED displays.

This library provides a hardware driver implementation for low level work with the SSD1306 IC.

Global Type Declarations

Controller Codes

All the controller commands codes and values have been given named constant definitions.
Please see SSD1306.h file for details.

Configuration data structure

struct SSD1306 {
        struct Com_Driver                com_driver        ; //< a driver that knows how to talk to this SSD1306
        uint16_t                         address           ; //< bus address of this SSD1306
        enum SSD1306_Geometry            geometry          ; //< geometry of AMOLED screen attached to this SSD1306
        enum SSD1306_Charge_Pump_Source  charge_pump_source; //< charge pump power source configuration of this SSD1306
        bool                             flip_horizontal   ; //< flip the rows
        bool                             flip_vertical     ; //< flip the columns
};

Functions

ssd1306_init() Initialize the controller using the most basic configuration for Horizontal Addressing Mode.
ssd1306_command_sequence_write() Write a raw command sequence to the controller.
ssd1306_data_sequence_write() Write a raw data sequence to the controller.
ssd1306_display_on() Write the command sequence to switch the display ON or OFF to the controller.
ssd1306_display_update() Update the display connected to this SSD1306 with the content of the framebuffer.
This function uses differential update, unless the number of pixels changed is so large, that a complete update is more efficient.
ssd1306_display_update_all() Update the display connected to this SSD1306 with the content of the framebuffer.
Always updates the entire display.
ssd1306_display_update_differential() Update the display connected to this SSD1306 with the content of the framebuffer.
Updates only tiles that have changed since the last update.
ssd1306_set_column_range() Specify the column start and end address of the display data RAM.
ssd1306_set_page_range() Specify the page start and end address of the display data RAM.

Files in this library

SSD1306.h Global declarations for the SSD1306 library
SSD1306.c Implementation of the SSD1306 library

Notes

This library is currently implemented for the Atmel Software Foundation only.

You can get rid of this dependency by