Skip to content

SSD1306 / SSD1309 OLED

Module: arduino::driver::output::ssd1306

Small framebuffer driver for SSD1306 and SSD1309 displays connected over I2C.

Setup

c3
macro bool init(char addr, char height);
macro void clear();
macro void display();
macro void invert(bool enabled);

Drawing

c3
macro void draw_pixel(int x, int y, bool color);
macro void draw_hline(int x, int y, int w);
macro void draw_vline(int x, int y, int h);
macro void draw_line(int x0, int y0, int x1, int y1);
macro void draw_rect(int x, int y, int w, int h);
macro void fill_rect(int x, int y, int w, int h);
macro void draw_circle(int x, int y, int r);
macro void fill_circle(int x, int y, int r);
macro void draw_bitmap(int x, int y, char[] bitmap, int w, int h);

Text

c3
macro void draw_char(int x, int y, char c);
macro void draw_string(int x, int y, char[] s);
macro void draw_char_scaled(int x, int y, char c, int scale);
macro void draw_string_scaled(int x, int y, char[] s, int scale);
macro void set_cursor(int x, int y);
macro void set_text_scale(int scale);
macro void print(char[] s);

Coordinates are bounded by the 128 pixel width and the selected display height.