import ssd1306
The ssd1306 module controls 128 x 64 monochrome OLED displays over I2C or SPI. Use ``ssd1306.Display(...)`` to create an independent display object. Each object owns its own framebuffer, so two displays can be drawn and flushed separately.
Quick example
import ssd1306
oled = ssd1306.Display("i2c", 21, 22, 0x3c)
oled.clear()
oled.text(0, 0, "MojoScale", 1)
oled.rect(0, 14, 128, 18)
oled.text(4, 18, "READY", 2)
oled.end_frame()
left = ssd1306.Display("i2c", 21, 22, 0x3c)
right = ssd1306.Display("i2c", 21, 22, 0x3d)
left.text(0, 0, "LEFT", 1)
right.text(0, 0, "RIGHT", 1)
left.end_frame()
right.end_frame()
spi_oled = ssd1306.Display("spi", 23, 18, 5, 16, 17)
importssd1306
SSD1306 monochrome OLED display module.
The ssd1306 module controls 128 x 64 monochrome OLED displays over I2C or SPI. Use ``ssd1306.Display(...)`` to create an independent display object. Each object owns its own framebuffer, so two displays can be drawn and flushed separately.
ssd1306.Display(mode: int, sda_or_mosi: int, scl_or_sclk: int, address_or_cs: int = None, dc: int = None, rst: int = None) -> ssd1306_display
ssd1306.Display(mode: int, sda_or_mosi: int, scl_or_sclk: int, address_or_cs: int = None, dc: int = None, rst: int = None) -> ssd1306_displayCreate an independent SSD1306 display object.
Constructor forms: ``ssd1306.Display("i2c", sda, scl, address)`` ``ssd1306.Display("spi", mosi, sclk, cs, dc, rst)``
| Name | Type | Pass as | Required | Description |
|---|---|---|---|---|
mode |
int |
positional | Yes | Positional string. Use "i2c" or "spi". |
sda_or_mosi |
int |
positional | Yes | Positional integer. I2C SDA pin, or SPI MOSI pin. |
scl_or_sclk |
int |
positional | Yes | Positional integer. I2C SCL pin, or SPI SCLK pin. |
address_or_cs |
int |
positional or keyword | No | Positional integer. I2C address such as 0x3c, or SPI CS pin. |
dc |
int |
positional or keyword | No | Positional integer. SPI data/command pin. Required for SPI. |
rst |
int |
positional or keyword | No | Positional integer. SPI reset pin. Use -1 when reset is not connected. |
ssd1306_display ssd1306_display object with drawing and display-control methods. Notes: Multiple I2C displays can share the same SDA/SCL pins when each display has a different I2C address.
ssd1306.begin(mode: int, sda_or_mosi: int, scl_or_sclk: int, address_or_cs: int = None, dc: int = None, rst: int = None) -> None
ssd1306.begin(mode: int, sda_or_mosi: int, scl_or_sclk: int, address_or_cs: int = None, dc: int = None, rst: int = None) -> NoneLegacy: initialize one module-level default SSD1306 display.
Prefer ``oled = ssd1306.Display(...)`` for new code. The legacy default display exists for older scripts that call drawing methods on the module.
| Name | Type | Pass as | Required | Description |
|---|---|---|---|---|
mode |
int |
positional | Yes | Positional string. Use "i2c" or "spi". |
sda_or_mosi |
int |
positional | Yes | Positional integer. I2C SDA pin, or SPI MOSI pin. |
scl_or_sclk |
int |
positional | Yes | Positional integer. I2C SCL pin, or SPI SCLK pin. |
address_or_cs |
int |
positional or keyword | No | Positional integer. I2C address such as 0x3c, or SPI CS pin. |
dc |
int |
positional or keyword | No | Positional integer. SPI data/command pin. Required for SPI. |
rst |
int |
positional or keyword | No | Positional integer. SPI reset pin. Use -1 when reset is not connected. |
None None.
ssd1306.width() -> int
ssd1306.width() -> intLegacy: return the default display width.
int int. Width in pixels.
ssd1306.height() -> int
ssd1306.height() -> intLegacy: return the default display height.
int int. Height in pixels.
ssd1306.begin_frame() -> None
ssd1306.begin_frame() -> NoneLegacy: start a drawing frame on the default display.
None None.
ssd1306.end_frame() -> None
ssd1306.end_frame() -> NoneLegacy: flush the default display framebuffer.
None None.
ssd1306.clear(color: any = None) -> None
ssd1306.clear(color: any = None) -> NoneLegacy: clear the default display framebuffer.
| Name | Type | Pass as | Required | Description |
|---|---|---|---|---|
color |
any |
positional or keyword | No | Optional keyword integer. Pixel value used to clear. Defaults to 0. |
None None.
ssd1306.pixel(x: int, y: int, color: any) -> None
ssd1306.pixel(x: int, y: int, color: any) -> NoneLegacy: draw one pixel on the default display.
| Name | Type | Pass as | Required | Description |
|---|---|---|---|---|
x |
int |
positional or keyword | Yes | Positional or keyword integer. Pixel x coordinate. |
y |
int |
positional or keyword | Yes | Positional or keyword integer. Pixel y coordinate. |
color |
any |
positional or keyword | Yes | Positional or keyword integer. Pixel value, usually 0 or 1. |
None None.
ssd1306.line(x1: any, y1: any, x2: any, y2: any, color: any = None) -> None
ssd1306.line(x1: any, y1: any, x2: any, y2: any, color: any = None) -> NoneLegacy: draw a straight line on the default display.
| Name | Type | Pass as | Required | Description |
|---|---|---|---|---|
x1 |
any |
positional or keyword | Yes | Positional or keyword integer. Start pixel x coordinate. |
y1 |
any |
positional or keyword | Yes | Positional or keyword integer. Start pixel y coordinate. |
x2 |
any |
positional or keyword | Yes | Positional or keyword integer. End pixel x coordinate. |
y2 |
any |
positional or keyword | Yes | Positional or keyword integer. End pixel y coordinate. |
color |
any |
positional or keyword | No | Optional keyword integer. Pixel value, usually 0 or 1. Defaults to 1. |
None None.
ssd1306.rect(x: int, y: int, width: int, height: int, color: any = None) -> None
ssd1306.rect(x: int, y: int, width: int, height: int, color: any = None) -> NoneLegacy: draw a rectangle outline on the default display.
| Name | Type | Pass as | Required | Description |
|---|---|---|---|---|
x |
int |
positional or keyword | Yes | Positional or keyword integer. Left pixel coordinate. |
y |
int |
positional or keyword | Yes | Positional or keyword integer. Top pixel coordinate. |
width |
int |
positional or keyword | Yes | Positional or keyword integer. Rectangle width in pixels. |
height |
int |
positional or keyword | Yes | Positional or keyword integer. Rectangle height in pixels. |
color |
any |
positional or keyword | No | Optional keyword integer. Pixel value, usually 0 or 1. Defaults to 1. |
None None.
ssd1306.fill_rect(x: int, y: int, width: int, height: int, color: any = None) -> None
ssd1306.fill_rect(x: int, y: int, width: int, height: int, color: any = None) -> NoneLegacy: fill a rectangle on the default display.
| Name | Type | Pass as | Required | Description |
|---|---|---|---|---|
x |
int |
positional or keyword | Yes | Positional or keyword integer. Left pixel coordinate. |
y |
int |
positional or keyword | Yes | Positional or keyword integer. Top pixel coordinate. |
width |
int |
positional or keyword | Yes | Positional or keyword integer. Rectangle width in pixels. |
height |
int |
positional or keyword | Yes | Positional or keyword integer. Rectangle height in pixels. |
color |
any |
positional or keyword | No | Optional keyword integer. Pixel value, usually 0 or 1. Defaults to 1. |
None None.
ssd1306.text(x: int, y: int, text: str, size: any = None, color: any = None) -> None
ssd1306.text(x: int, y: int, text: str, size: any = None, color: any = None) -> NoneLegacy: draw text on the default display.
Text is drawn into the framebuffer. Call ``end_frame()`` to show it on the OLED.
| Name | Type | Pass as | Required | Description |
|---|---|---|---|---|
x |
int |
positional or keyword | Yes | Positional or keyword integer. Left pixel coordinate. |
y |
int |
positional or keyword | Yes | Positional or keyword integer. Top pixel coordinate. |
text |
str |
positional or keyword | Yes | Positional or keyword string. ASCII text to draw. |
size |
any |
positional or keyword | No | Optional keyword integer. Font scale. Defaults to 1. |
color |
any |
positional or keyword | No | Optional keyword integer. Pixel value, usually 0 or 1. Defaults to 1. |
None None.
ssd1306.text_width(text: str, size: any = None) -> int
ssd1306.text_width(text: str, size: any = None) -> intLegacy: measure text width for the default display font.
| Name | Type | Pass as | Required | Description |
|---|---|---|---|---|
text |
str |
positional or keyword | Yes | Positional or keyword string. Text to measure. |
size |
any |
positional or keyword | No | Optional keyword integer. Font scale. Defaults to 1. |
int int. Width in pixels.
ssd1306.bitmap(x: int, y: int, data: any, width: int, height: int, color: any = None) -> None
ssd1306.bitmap(x: int, y: int, data: any, width: int, height: int, color: any = None) -> NoneLegacy: draw a monochrome bitmap on the default display.
The data payload is row-major, one bit per pixel, MSB first in each byte. Set bits are drawn with ``color``; unset bits are transparent.
| Name | Type | Pass as | Required | Description |
|---|---|---|---|---|
x |
int |
positional or keyword | Yes | Positional or keyword integer. Left pixel coordinate. |
y |
int |
positional or keyword | Yes | Positional or keyword integer. Top pixel coordinate. |
data |
any |
positional or keyword | Yes | Positional or keyword bytes. Bitmap bit payload. |
width |
int |
positional or keyword | Yes | Positional or keyword integer. Bitmap width in pixels. |
height |
int |
positional or keyword | Yes | Positional or keyword integer. Bitmap height in pixels. |
color |
any |
positional or keyword | No | Optional keyword integer. Pixel value, usually 0 or 1. Defaults to 1. |
None None.
ssd1306.invert(enabled: bool = None) -> None
ssd1306.invert(enabled: bool = None) -> NoneLegacy: invert or restore the default physical OLED output.
| Name | Type | Pass as | Required | Description |
|---|---|---|---|---|
enabled |
bool |
positional or keyword | No | Optional keyword bool. True inverts output; False restores normal output. |
None None.
ssd1306.contrast(value: any) -> None
ssd1306.contrast(value: any) -> NoneLegacy: set contrast on the default display.
| Name | Type | Pass as | Required | Description |
|---|---|---|---|---|
value |
any |
positional or keyword | Yes | Positional or keyword integer. Contrast value from 0 to 255. |
None None.
ssd1306.power(enabled: bool) -> None
ssd1306.power(enabled: bool) -> NoneLegacy: turn the default OLED panel on or off.
| Name | Type | Pass as | Required | Description |
|---|---|---|---|---|
enabled |
bool |
positional or keyword | Yes | Positional or keyword bool. True turns the panel on; False turns it off. |
None None.
ssd1306.caps() -> int
ssd1306.caps() -> intLegacy: return default display capability flags.
int int. Native capability bitmask.