The examples in this guide are no longer supported. Check out this OLED guide for CircuitPython usage:


You'll need the following parts to follow this guide:

CircuitPython board.  This guide focuses on the ESP8266 and Feather M0/SAMD21-based boards, but any CircuitPython board that supports I2C should work.


If your board doesn't come with CircuitPython running on it already then check out your board's guide for how to load CircuitPython firmware.  For example the Feather M0 express guide is a good reference.


If you're using a Feather board and FeatherWing you probably want a Feather female header set or Feather stacking female header set.

SSD1306-based OLED display.  If you're using a Feather board the FeatherWing OLED is a perfect option.

Breadboard and jumper wires.  If you aren't using a Feather and FeatherWing you'll need a breadboard and jumper wires to connect the components.


Soldering tools.  You'll need to solder headers to the boards  Check out the guide to excellent soldering if you're new to soldering.

Make sure to follow the board and OLED display product guides to assemble and verify they work before continuing.


There are two ways to wire the SSD1306 OLED to a board, either with an I2C or SPI connection.  Some displays only support one connection type so be sure to read the product page and associated guide to understand how your display works.

For a Feather and FeatherWing OLED connecting them together is as easy as sliding the FeatherWing into the headers of the Feather.  The wing will use an I2C connection to the board--nothing else is necessary to do.  Skip to the next page on setting up the software!

For an OLED with an I2C interface you'll want to wire it to the board's I2C and power pins, and the reset pin, if it's available.  For example with a Feather M0 the connections might look like:

  • Board SCL / I2C clock to display SCL.
  • Board SDA / I2C data to display SDA.
  • Board digital #5 to display RST (reset). This can be any available digital pin.
  • Board 3.3V power to display VIN / voltage input.
  • Board GND / ground to display GND / ground.

For an OLED with a SPI interface you'll need to wire it to a few more pins on the board.  For example with a Feather HUZZAH ESP8266 the connections might look like:

  • Board SCK / SPI clock to display CLK / clock.
  • Board MOSI / data out to display Data / data in.
  • Board 3.3V power to display Vin / voltage input.
  • Board ground to display ground.
  • Board digital input 15 (or any other digital IO pin) to display DC / data/command.
  • Board digital input 0 (or any other digital IO pin) to display Rst / reset.
  • Board digital input 16 (or any other digital IO pin) to display CS / chip select.

Once your board is wired to the display continue on to learn how to use a CircuitPython module to control the display!

This guide was first published on Oct 21, 2016. It was last updated on Mar 08, 2024.

This page (Hardware) was last updated on Mar 08, 2024.

Text editor powered by tinymce.