Skip to content

Displays

foonerd edited this page Oct 16, 2026 · 5 revisions

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.

Telling them apart

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.

Which entry for my module

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_128x64 entry; 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.

Clone this wiki locally