SSD1306 OLED Display over I²C

The ssd1306_i2c display platform allows you to use SSD1306 (datasheet, Adafruit) and SH1106 (datasheet, electrodragon) displays with esphomelib. Note that this component is for displays that are connected via the I²C Bus. If your SSD1306 or SH1106 is connected via the 4-Wire SPI bus, see SSD1306 OLED Display over SPI.


SSD1306 OLED Display

Connect D0 to the SCL pin you chose for the I²C Bus, and connect D1 to the SDA pin. For power, connect VCC to 3.3V and GND to GND. Optionally you can also connect the RESET pin to a pin on the ESP which may improve reliability.

# Example configuration entry
  sda: D1
  scl: D2

  - platform: ssd1306_i2c
    model: "SSD1306 128x64"
    reset_pin: D0
    address: 0x3C
    lambda: |-
      it.print(0, 0, id(font), "Hello World!");

Configuration variables:

  • model (Required): The model of the display. Options are:
    • SSD1306 128x32 (SSD1306 with 128 columns and 32 rows)
    • SSD1306 128x64
    • SSD1306 96x16
    • SSD1306 64x48
    • SH1106 128x32
    • SH1106 128x64
    • SH1106 96x16
    • SH1106 64x48
  • reset_pin (Optional, Pin Schema): The RESET pin. Defaults to not connected.
  • address (Optional, int): Manually specify the I²C address of the display. Defaults to 0x3C.
  • rotation (Optional): Set the rotation of the display. Everything you draw in lambda: will be rotated by this option. One of (default), 90°, 180°, 270°.
  • external_vcc (Optional, boolean): Set this to true if you have the VCC pin connected to an external power supply. Defaults to false.
  • lambda (Optional, lambda): The lambda to use for rendering the content on the display. See Display Rendering Engine for more information.
  • update_interval (Optional, Time): The interval to re-draw the screen. Defaults to 5s.
  • id (Optional, ID): Manually specify the ID used for code generation.