Picture of ssd1309


Published November 4, 2020

Rust has a constantly growing ecosystem of drivers for embedded peripherals. For displays in particular, embedded-graphics makes it super easy for developers to write UI code once and have it work across lots of different hardware.

I picked up a few different SPI OLED displays to build some prototypes, and noticed that there was no Rust driver for the SSD1309 yet. Luckily, most disply hardware is already well-supported by the C/C++ U8g2 library. The SSD1309 display is also quite similar to the SH1106, which already has an excellent Rust driver implementation. Using those two libraries as references, along with a datasheet I found online, I got to work.

The result is ssd1309, a Rust embedded driver for SSD1309 OLED displays. It supports I2C and SPI interfaces, and exposes an embedded-graphics-compatible API.