Repository navigation
Displays
Every panel the daemon knows, as just-oled --list prints it. The panel setting stores the first column. Status says what stands behind an entry: verified has drawn on a module in hand; described is transcribed from the controller's data sheet and reference drivers and awaits a module; not yet driven is catalogued but has no sequence in the binary yet, and the settings page does not offer it. The bench turns entries over one module at a time; the first, the Waveshare 1.5" RGB module, is in.
| Panel | Controller | Pixels | Format | Bus | I2C address | Status | Modules |
|---|---|---|---|---|---|---|---|
ssd1306_128x64 |
SSD1306 | 128x64 | 1 bpp | I2C, SPI | 0x3C, 0x3D | described | 0.96" and 1.3" modules: Waveshare 0.96inch OLED (A)/(B), Adafruit 326 and 938, DFRobot DFR0486 and DFR0650, the generic four-pin I2C board; also the panel in most Pi cases (Argon, Pironman). |
ssd1306_128x32 |
SSD1306 | 128x32 | 1 bpp | I2C, SPI | 0x3C, 0x3D | described | 0.91" modules: Waveshare 0.91inch OLED Module, Adafruit 4440 and 661, SparkFun Qwiic 0.91", DFRobot DFR0647/0648, 52Pi and UCTRONICS rack panels. |
ssd1306_64x48 |
SSD1306 | 64x48 | 1 bpp | I2C, SPI | 0x3C, 0x3D | described | 0.66" modules: SparkFun Micro OLED, Grove OLED 0.66", the Wemos shield. A window of the 128x64 RAM, columns 32 to 95 and rows 16 to 63. |
ssd1306_72x40 |
SSD1306 | 72x40 | 1 bpp | I2C | 0x3C | described | 0.42" modules. A window of the 128x64 RAM with a column offset; the offset is proven on a module, not assumed. |
ssd1306_64x32 |
SSD1306 | 64x32 | 1 bpp | I2C | 0x3C | described | 0.49" modules such as Waveshare's (SSD1315): the first half of the 128x64 buffer. |
ssd1306_96x16 |
SSD1306 | 96x16 | 1 bpp | I2C | 0x3C | described | 0.69" and 0.71" modules. |
ssd1315_128x64 |
SSD1315 | 128x64 | 1 bpp | I2C, SPI | 0x3C, 0x3D | described | Waveshare 0.96inch OLED Module (C)/(D)/(E), Grove OLED 0.96" (SSD1315) and Yellow&Blue, Waveshare OLED/LCD HAT (A). Driven with the SSD1306 command set. |
ssd1309_128x64 |
SSD1309 | 128x64 | 1 bpp | I2C, SPI | 0x3C, 0x3D | verified | 2.42" and 1.54" modules and the transparent 1.51": Waveshare 2.42inch OLED Module, 1.54inch OLED Module, 1.51inch Transparent OLED, DFRobot DFR0934, HiLetgo 2.42". No charge pump; the reset line must be driven. Verified on a 2.42" module over SPI and over I2C at 0x3C. |
ssd1305_128x32 |
SSD1305 | 128x32 | 1 bpp | I2C, SPI | 0x3C, 0x3D | described | 2.23" modules: Waveshare 2.23inch OLED HAT and Pico-OLED-2.23, Adafruit 2675. The RAM is 132 columns wide; the column offset is per glass. |
sh1106_128x64 |
SH1106 | 128x64 | 1 bpp | I2C, SPI | 0x3C, 0x3D | described | 1.3" modules: Waveshare 1.3inch OLED (A)/(B) and 1.3inch OLED HAT, the generic 1.3" four-pin I2C board. Written a page at a time; two columns of offset in the 132-wide RAM. |
sh1107_128x128 |
SH1107 | 128x128 | 1 bpp | I2C, SPI | 0x3C, 0x3D | described | 1.12" and 1.5" modules: Adafruit 5297, Pimoroni 1.12", Grove OLED 1.12" V2/V3, Waveshare 1.5inch OLED Module (B). Pages run along the long axis. |
sh1107_64x128 |
SH1107 | 64x128 | 1 bpp | I2C, SPI | 0x3C, 0x3D | described | Waveshare 1.3inch OLED Module (C) and Pico-OLED-1.3. Half of the 128x128 RAM; some want SPI mode 3. |
sh1107_128x64 |
SH1107 | 128x64 | 1 bpp | I2C | 0x3C, 0x3D | not yet driven | Adafruit 128x64 OLED FeatherWing (4650). |
ssd1327_128x128 |
SSD1327 | 128x128 | 4 bpp grey | I2C, SPI | 0x3C, 0x3D | described | 1.5" greyscale modules: Waveshare 1.5inch OLED Module, Adafruit 4741. Sixteen grey levels. |
ssd1327_128x96 |
SSD1327 | 128x96 | 4 bpp grey | I2C, SPI | 0x3C, 0x3D | described | Waveshare 1.32inch OLED Module. |
ssd1327_96x96 |
SSD1327 | 96x96 | 4 bpp grey | I2C | 0x3C, 0x3D | described | Grove OLED 1.12" V1.0. |
ssd1322_256x64 |
SSD1322 | 256x64 | 4 bpp grey | SPI | described | 2.08", 2.7", 2.8" and 3.12" 256x64 greyscale modules: Newhaven NHD-3.12-25664 and NHD-2.8-25664, the EastRising ER-OLEDM032 family, the panel mpd_oled builds favour. Column addresses count four pixels; the 256-wide glass starts at column 0x1C. | |
ssd1325_128x64 |
SSD1325 | 128x64 | 4 bpp grey | SPI | described | Adafruit 2.7" 128x64 module kit (2674), Newhaven NHD-2.7-12864. | |
sh1122_256x64 |
SH1122 | 256x64 | 4 bpp grey | I2C, SPI | 0x3C, 0x3D | described | 2.08" 256x64 greyscale modules. |
ssd1362_256x64 |
SSD1362 | 256x64 | 4 bpp grey | I2C, SPI | 0x3C, 0x3D | described | 3.12" 256x64 greyscale modules of the newer kind. |
ch1120_128x128 |
CH1120 | 128x128 | 1 bpp | I2C, SPI | 0x3C, 0x3D | not yet driven | SparkFun Qwiic OLED 1.5" 128x128 (LCD-29530), Winstar WEO128128HWAP3N00000. |
ssd1331_96x64 |
SSD1331 | 96x64 | RGB565 | SPI | described | 0.95" and 0.96" colour modules: Waveshare 0.95inch RGB OLED (A)/(B), Adafruit 684. | |
ssd1351_128x128 |
SSD1351 | 128x128 | RGB565 | SPI | verified | 1.5" colour modules: Waveshare 1.5inch RGB OLED Module (on the bench), Adafruit 1431, Newhaven NHD-1.5-128128UGC3. | |
ssd1351_128x96 |
SSD1351 | 128x96 | RGB565 | SPI | described | 1.27" colour modules: Waveshare 1.27inch RGB OLED Module, Adafruit 1673, Newhaven NHD-1.27-12896UGC3. Rows 0 to 95 of the 128x128 RAM. | |
ssd1357_64x128 |
SSD1357 | 64x128 | RGB565 | SPI | not yet driven | Waveshare 0.96inch RGB OLED Module. A 64-column window of the 128x128 RAM. |
What the plugin can and cannot find out for you:
| Bus | Found by Detect | Not knowable from the wire | What settles it |
|---|---|---|---|
| I2C | Which buses exist and which addresses answer (0x3C, 0x3D). | The controller behind the address, in nearly every case; the panel's pixel size; whether an SSD1306 board is really an SSD1309 or SSD1315 (same commands, so it does not matter). | The panel setting, and Test display. A picture that is 128 wide but shows only the top half is a 128x32 entry on a 128x64 panel, and the other way round; two blank columns at one edge on a 1.3" module means SSD1306 was chosen for an SH1106. |
| SPI | Whether /dev/spidevB.C and the GPIO lines exist. |
Everything about the module: SPI OLED controllers do not talk back. | The panel setting, and Test display. |
Look for the controller on the module's own page or silkscreen; the Modules column above names the common boards. Three families look alike and are told apart only by trying:
-
SSD1306, SSD1309, SSD1315 at 128x64: the same commands. A module sold as one of these works on the
ssd1306_128x64entry; the others exist for the few bytes they differ in (charge pump, reset) and to say what the board is. - SH1106 against SSD1306 at 1.3": both are sold as "1.3 inch 128x64". The SH1106 entry writes page by page with a two-column offset; an SSD1306 driven as SH1106 shows a picture shifted two columns, an SH1106 driven as SSD1306 shows two blank columns and a wrapped edge.
- SH1107 128x128 against SSD1327 128x128: the SH1107 is monochrome, the SSD1327 has sixteen greys; the module's page says which.
Something not in the table: open an issue with the module's name and page, the controller if it is printed anywhere, and a photo of the header. Entries are added from the data sheet and marked described until a user confirms.
Just OLED is free and open source, designed, built and maintained by one developer in his own time. If it has earned a place on your player:
Provided as-is under the MIT licence; sponsorship is a thank-you, not a purchase: it buys no priority, no features and no support agreement.