docs(ssd1306): a datasheet per variant, each with its own pinout

Both SSD1306 modules are real parts and both belong in the catalogue -
the mismatch was in the docs, not the parts:
 - the 8-pin Adafruit breakout was served a datasheet listing a 4-pin
   I2C pinout (VCC/GND/SCL/SDA) that is not its header at all; it now
   documents its own 9-way pinout with the I2C and SPI role of each pin;
 - the 4-pin I2C module had NO datasheet, because docs resolve by
   component id and ssd1306-i2c-4pin.md did not exist - so the part
   showed nothing. It has one now.
Each points at the other so it is obvious which one you want.
This commit is contained in:
David Montero Crespo 2026-08-20 15:03:09 +02:00
parent 2ccf7649a0
commit 2c000e3aaf
2 changed files with 40 additions and 9 deletions

View File

@ -0,0 +1,22 @@
---
brand: Solomon Systech
buy: https://www.amazon.com/s?k=SSD1306+128x64+OLED+I2C+4+pin
---
SSD1306 monochrome OLED (128×64) on the **4-pin I²C module** — the cheap
0.96" board most people have. The glass panel is bonded onto the PCB, so the
part is a single piece: no separate display to wire.
| Pin | Role |
| --- | --- |
| GND | ground |
| VCC | 3.3–5 V |
| SCL | I²C clock |
| SDA | I²C data |
- Default I²C address **0x3C** (some boards are 0x3D — check the silk).
- 128×64 pixels, ~1 KB framebuffer, self-emitting: no backlight, so an unlit
pixel is truly off.
- Drive it with Adafruit_SSD1306 (`&Wire`, reset `-1`) or U8g2.
**Tip:** need the SPI pins, or a reset line? Use the 8-pin **SSD1306 OLED
(Adafruit breakout)** part instead — same controller, more pins broken out.

View File

@ -2,17 +2,26 @@
brand: Solomon Systech
buy: https://www.amazon.com/s?k=SSD1306+128x64+OLED+display
---
SSD1306 monochrome OLED (128×64). Talks **I²C or SPI** — pick with the
`protocol` property. Drive it with Adafruit_SSD1306 or U8g2.
SSD1306 monochrome OLED (128×64) on the **Adafruit-style breakout**, which
brings the controller's full pinout out to a 9-way header. Talks **I²C or
SPI** — pick with the `protocol` property. Drive it with Adafruit_SSD1306 or
U8g2.
| Pin (I²C) | Role |
| --- | --- |
| VCC | 3.3–5 V |
| GND | ground |
| SCL | I²C clock |
| SDA | I²C data |
| Pin | I²C role | SPI role |
| --- | --- | --- |
| Vin | 3.3–5 V | 3.3–5 V |
| 3v3 | 3.3 V regulator output | 3.3 V regulator output |
| Gnd | ground | ground |
| Data | SDA (data) | MOSI |
| Clk | SCL (clock) | SCK |
| SA0 | address select (0x3C / 0x3D) | — |
| DC | — | data/command |
| CS | — | chip select |
| Rst | reset (optional) | reset (optional) |
- Default I²C address **0x3C**.
- 128×64 pixels, ~1 KB framebuffer, self-emitting (no backlight).
**Tip:** switch `protocol` to `spi` to expose the SCK / MOSI / DC / CS / RES pins.
**Tip:** switch `protocol` to `spi` to drive it over SPI. If you only need
I²C and want the plain 4-wire module, use the **SSD1306 OLED (I2C, 4-pin)**
part instead.