# Adafruit 128x64 OLED FeatherWing 

## Overview

![](https://cdn-learn.adafruit.com/assets/assets/000/094/563/medium800thumb/adafruit_products_FW_OLED_128x64_AHT_demo.jpg?1599080058)

A Feather board without ambition is a Feather board without FeatherWings! This is the&nbsp; **FeatherWing 128x64 OLED** : it adds a gorgeous 128x64 monochrome OLED plus 3 user buttons to&nbsp;_any_&nbsp;Feather main board. Using our&nbsp;[Feather Stacking Headers](https://www.adafruit.com/products/2830)&nbsp;or&nbsp;[Feather Female Headers](http://www.adafruit.com/products/2886)&nbsp;you can connect a FeatherWing on top of your Feather board and let the board take flight!

![](https://cdn-learn.adafruit.com/assets/assets/000/094/564/medium800/adafruit_products_FW_OLED_128x64_top_angle.jpg?1599080076)

These displays are small, only about 1.3" diagonal, but very readable due to the high contrast of an OLED display. This screen is made of 128x64 individual white OLED pixels and because the display makes its own light, no backlight is required. This reduces the power required to run the OLED and is why the display has such high contrast; we really like this miniature display for its crispness! We also toss on a reset button and three mini tactile buttons called A B and C, so you can add a mini user interface to your Feather. [If you've used our 128x32 OLED FeatherWing](https://www.adafruit.com/product/2900), you'll be happy to know that this FeatherWing is pin compatible for a quick and easy upgrade.

![](https://cdn-learn.adafruit.com/assets/assets/000/094/565/medium800/adafruit_products_FW_OLED_128x64_AHT_demo.jpg?1599080095)

The display uses only I2C so you can easily connect it up with just two pins used (plus power and ground!).&nbsp; There's an auto-reset circuit and a reset button on the top. We've even included a&nbsp;[SparkFun qwiic](https://www.sparkfun.com/qwiic)-compatible**&nbsp;[STEMMA QT](https://learn.adafruit.com/introducing-adafruit-stemma-qt)**&nbsp;connector&nbsp;for the I2C bus so you can plug and play _any_ of our STEMMA QT, qwiic or [Grove I2C sensors](https://www.adafruit.com/product/4528) and devices!

![](https://cdn-learn.adafruit.com/assets/assets/000/094/562/medium800/adafruit_products_FW_OLED_128x64_STEMMA_side.jpg?1599079505)

Tested working with&nbsp; **all Feather boards.** &nbsp;The OLED uses only the two I2C pins on the Feather, and you can pretty much stack it with any other FeatherWing, even ones that use I2C since that is a shared bus.

![](https://cdn-learn.adafruit.com/assets/assets/000/094/561/medium800/adafruit_products_FW_OLED_128x64_top_headers.jpg?1599079492)

Comes with a set of 0.1" headers that are unattached, you'll need to solder them in to plug into your Feather board. [Check out our range of&nbsp;Feather boards here.](https://www.adafruit.com/feather)

![](https://cdn-learn.adafruit.com/assets/assets/000/094/560/medium800/adafruit_products_FW_OLED_128x64_top_angle_assembled.jpg?1599079485)

# Adafruit 128x64 OLED FeatherWing 

## Assembly

## Prepare the header strip:

Cut the strip to length if necessary. It will be easier to solder if you insert it into a breadboard - **long pins down**

![feather_1-solder-1.jpg](https://cdn-learn.adafruit.com/assets/assets/000/033/764/medium640/feather_1-solder-1.jpg?1468419364)

## Add the FeatherWing:

Place the featherwing over the pins so that the short pins poke through the two rows of breakout pads

![feather_1-solder-2.jpg](https://cdn-learn.adafruit.com/assets/assets/000/033/766/medium640/feather_1-solder-2.jpg?1468420017)

## And Solder!

Be sure to solder all pins for reliable electrical contact.  
  
_(For tips on soldering, be sure to check out our&nbsp;_[_Guide to Excellent Soldering_](http://learn.adafruit.com/adafruit-guide-excellent-soldering)_)._

&nbsp;

Start by soldering the first row of header

![feather_1-solder-3.jpg](https://cdn-learn.adafruit.com/assets/assets/000/033/767/medium640/feather_1-solder-3.jpg?1468420059)

![feather_1-solder-4.jpg](https://cdn-learn.adafruit.com/assets/assets/000/033/768/medium640/feather_1-solder-4.jpg?1468420132)

![feather_1-solder-5.jpg](https://cdn-learn.adafruit.com/assets/assets/000/033/769/medium640/feather_1-solder-5.jpg?1468420200)

Now flip around and solder the other row completely

![feather_2-solder-1.jpg](https://cdn-learn.adafruit.com/assets/assets/000/033/770/medium640/feather_2-solder-1.jpg?1468420297)

![feather_2-solder-2.jpg](https://cdn-learn.adafruit.com/assets/assets/000/033/771/medium640/feather_2-solder-2.jpg?1468420345)

![feather_2-solder-3.jpg](https://cdn-learn.adafruit.com/assets/assets/000/033/772/medium640/feather_2-solder-3.jpg?1468420367)

![feather_2-solder-5.jpg](https://cdn-learn.adafruit.com/assets/assets/000/033/773/medium640/feather_2-solder-5.jpg?1468420419)

You're done with the two header strips.

&nbsp;

Check your solder joints visually and continue onto the next steps

![feather_2-solder-6.jpg](https://cdn-learn.adafruit.com/assets/assets/000/033/774/medium640/feather_2-solder-6.jpg?1468420473)

OK You're done! You can now plug your FeatherWing into your Feather and get your OLED on!&nbsp;

![feather_3-final-2.jpg](https://cdn-learn.adafruit.com/assets/assets/000/033/775/medium640/feather_3-final-2.jpg?1468420604)

# Adafruit 128x64 OLED FeatherWing 

## CircuitPython

![](https://cdn-learn.adafruit.com/assets/assets/000/095/396/medium800/adafruit_products_FW_OLED_128x64_adafruit_logo_crop.jpg?1602013793)

It's easy to use the Adafruit 128x64 OLED FeatherWing with CircuitPython and the [Adafruit CircuitPython DisplayIO SH1107](https://github.com/adafruit/Adafruit_CircuitPython_DisplayIO_SH1107) module.&nbsp; This module allows you to easily write CircuitPython code to control the display.

Info: 

# CircuitPython Wiring

Connecting up the FeatherWing to a Feather is super simple!

- **Solder the Feather with female headers on top or stacking headers.**
- **Attach the OLED FeatherWing using the stacking method.**

![adafruit_products_128x64OLED_FeatherM4_bb.jpg](https://cdn-learn.adafruit.com/assets/assets/000/095/397/medium640/adafruit_products_128x64OLED_FeatherM4_bb.jpg?1602013847)

# CircuitPython Installation of DisplayIO SH1107 Library

To use the 128x64 OLED FeatherWing with your Adafruit CircuitPython Feather board you'll need to install the&nbsp;[Adafruit CircuitPython DisplayIO SH1107](https://github.com/adafruit/Adafruit_CircuitPython_DisplayIO_SH1107) module on your board.

you'll need to install the necessary libraries&nbsp;to use the hardware--carefully follow the steps to find and install these libraries from&nbsp;[Adafruit's CircuitPython library bundle](https://circuitpython.org/libraries).&nbsp; Our CircuitPython starter guide has [a great page on how to install the library bundle](https://learn.adafruit.com/welcome-to-circuitpython/circuitpython-libraries).

Install the following libraries individually on your board:

- **adafruit\_displayio\_sh1107**
- **adafruit\_bus\_device**

To work through the code example below, you'll also need the following library:

- **adafruit\_display\_text**

![adafruit_products_SH1107_lib_folder.png](https://cdn-learn.adafruit.com/assets/assets/000/095/400/medium640/adafruit_products_SH1107_lib_folder.png?1602018355)

Before continuing make sure your board's lib folder or root filesystem has the **adafruit\_displayio\_sh1107****.mpy, **** adafruit\_bus\_device&nbsp; **and&nbsp;** adafruit\_display\_text **files and folders** &nbsp;**copied over.

# CircuitPython Usage

Save the following to your Feather as **code.py** :

https://github.com/adafruit/Adafruit_CircuitPython_DisplayIO_SH1107/blob/main/examples/displayio_sh1107_simpletest.py

![](https://cdn-learn.adafruit.com/assets/assets/000/095/402/medium800/adafruit_products_SH1107_CircuitPython_simpletest.jpg?1602018766)

That's all there is to using CircuitPython with your 128x64 OLED FeatherWing!

# Adafruit 128x64 OLED FeatherWing 

## Python Docs

# Adafruit 128x64 OLED FeatherWing 

## Arduino Code

![](https://cdn-learn.adafruit.com/assets/assets/000/094/574/medium800/adafruit_products_FW_OLED_128x64_adafruit_logo_crop.jpg?1599083692)

The OLED display we use is well supported and works for all Feathers, all you need is a little library support and you will be drawing in no time!

# Install Arduino Libraries

Using the OLED FeatherWing with Arduino sketches requires that two libraries be installed: **Adafruit\_SH110x** , which handles the low-level communication with the hardware, and **Adafruit\_GFX** , which builds atop this to add graphics functions like lines, circles and text.

Open up the library manager:

![](https://cdn-learn.adafruit.com/assets/assets/000/094/575/medium800/adafruit_products_Arduino_Library_Manager.png?1599153666)

Search for the **Adafruit SH110x** library and install it

![](https://cdn-learn.adafruit.com/assets/assets/000/094/576/medium800/adafruit_products_FW_OLED_Arduino_Lib_install.png?1599153827)

Search for the **Adafruit GFX&nbsp;** library and install it

![](https://cdn-learn.adafruit.com/assets/assets/000/094/583/medium800/adafruit_products_Arduino_gfx_lib_install.png?1599243365)

If using an earlier version of the Arduino IDE (prior to 1.8.10), also locate and install **Adafruit\_BusIO** (newer versions will install this dependency automatically).

We also have a great tutorial on Arduino library installation here:  
[http://learn.adafruit.com/adafruit-all-about-arduino-libraries-install-use](http://learn.adafruit.com/adafruit-all-about-arduino-libraries-install-use "Link: http://learn.adafruit.com/adafruit-all-about-arduino-libraries-install-use")

# Run Example Code

We have a basic demo that works with all Feathers, so compile/upload this sketch:

https://github.com/adafruit/Adafruit_SH110x/blob/master/examples/OLED_featherwing/OLED_featherwing.ino

You should see the OLED display a splash screen then spit out some text (it’s a make-believe WiFi connection status screen…this doesn’t actually do anything, just showing how typical project might look). If you press the **A B** or **C** buttons it will also print those out.

# Do more!

You can use any of the Adafruit GFX library commands to draw onto your OLED, that means that you get all sorts of shapes, fonts, lines, etc available. [Check out GFX for all the underlying graphics support functions and how they work](https://learn.adafruit.com/adafruit-gfx-graphics-library)

**Remember you need to call display() after drawing to refresh the screen!**

# Adafruit 128x64 OLED FeatherWing 

## Wiring to other Microcontrollers

Danger: 

While wiring to a non-Feather board is not recommended, it is still possible. This page will show you how to do that. At a minimum, you must connect the **RST** pin in addition to **3V, GND, SCL and SDA** , so **using just a Stemma QT cable by itself is not possible**. This page will show you how to wire the OLED FeatherWing up to a Metro M4 using just wires as well as the Metro ESP32-S2, which has a built-in STEMMA QT Port. Other boards may vary a bit.

## Minimal Wiring Example

To get the 128x64 OLED FeatherWing working with minimal wiring, wire it up exactly as shown below. Here's an example of wiring a Metro ESP32-S2 to the FeatherWing with I2C using one of the handy&nbsp;[**STEMMA QT**](https://learn.adafruit.com/introducing-adafruit-stemma-qt)&nbsp;connectors and only 1 additional wire:

- **Board STEMMA QT** &nbsp;to&nbsp; **FeatherWing STEMMA QT**
- **Board RST** &nbsp;to **FeatherWing** **Reset (white wire)**

![adafruit_products_Minimal_with_StemmaQT_bb.jpg](https://cdn-learn.adafruit.com/assets/assets/000/115/745/medium640/adafruit_products_Minimal_with_StemmaQT_bb.jpg?1665163184)

If you'd like to wire the board more fully and not use the STEMMA QT, here's an example of wiring a Metro M4 to the FeatherWing:

- **Board 3V** to **FeatherWing** **3V (red wire)**
- **Board GND** &nbsp;to **FeatherWing**** &nbsp;GND (black wire)**
- **Board SCL** &nbsp;to **FeatherWing**** &nbsp;SCL (yellow wire)**
- **Board SDA** &nbsp;to **FeatherWing**** &nbsp;SDA (blue wire)**
- **Board RST** &nbsp;to&nbsp; **FeatherWing**** &nbsp;Reset (white wire)**

![adafruit_products_Minimal_with_Wires_bb.jpg](https://cdn-learn.adafruit.com/assets/assets/000/115/746/medium640/adafruit_products_Minimal_with_Wires_bb.jpg?1665163368)

You can also use a [STEMMA QT adapter with male headers](https://www.adafruit.com/product/4209) and wire it up with a combination of the 2 boards to replace one side of the 3V, GND, SCL, and SDA lines, but the reset wire will still need to be connected.

## Full Wiring Example

If you would also like to use the buttons on the FeatherWing, here are some examples to add those. These wiring examples use pins 5, 6, and 9 like the Feather M4, but feel free to wire them to different GPIOs if it suits your needs better.

Here's the STEMMA QT example above, but with 3 additional wires for the buttons:

- **Board STEMMA QT** &nbsp;to&nbsp; **FeatherWing STEMMA QT**
- **Board RST** &nbsp;to **FeatherWing** **Reset (white wire)**
- **Board GPIO 9** &nbsp;to&nbsp; **FeatherWing** **Button A (purple wire)**
- **Board GPIO 6** &nbsp;to&nbsp; **FeatherWing** **Button B (green wire)**
- **Board GPIO 5** &nbsp;to&nbsp; **FeatherWing** **Button C&nbsp;(orange wire)**

![adafruit_products_Full_with_StemmaQT_bb.jpg](https://cdn-learn.adafruit.com/assets/assets/000/115/747/medium640/adafruit_products_Full_with_StemmaQT_bb.jpg?1665163810)

Here's the fully wired Metro M4 example above, but with 3 additional wires for the buttons:

- **Board 3V** &nbsp;to&nbsp; **FeatherWing**** &nbsp;3V (red wire)**
- **Board GND** &nbsp;to&nbsp; **FeatherWing**** &nbsp;GND (black wire)**
- **Board SCL** &nbsp;to&nbsp; **FeatherWing**** &nbsp;SCL (yellow wire)**
- **Board SDA** &nbsp;to&nbsp; **FeatherWing**** &nbsp;SDA (blue wire)**
- **Board RST** &nbsp;to&nbsp; **FeatherWing**** &nbsp;Reset (white wire)**
- **Board GPIO 9** &nbsp;to&nbsp; **FeatherWing**** &nbsp;Button A (purple wire)**
- **Board GPIO 6** &nbsp;to&nbsp; **FeatherWing**** &nbsp;Button B (green wire)**
- **Board GPIO 5** &nbsp;to&nbsp; **FeatherWing**** &nbsp;Button C&nbsp;(orange wire)**

![adafruit_products_Full_with_Wires_bb.jpg](https://cdn-learn.adafruit.com/assets/assets/000/115/748/medium640/adafruit_products_Full_with_Wires_bb.jpg?1665164030)

With these wiring examples, you should be able to run example code in other sections. Depending on your exact wiring, the examples may require some minimal changes.

# Adafruit 128x64 OLED FeatherWing 

## Downloads

## Files

- [SH1107 Datasheet](https://cdn-learn.adafruit.com/assets/assets/000/094/580/original/SH1107_datasheet.pdf?1599165309)
- [PCB Files in EagleCAD format](https://github.com/adafruit/Adafruit-OLED-FeatherWing-PCB)
- [3D models on GitHub](https://github.com/adafruit/Adafruit_CAD_Parts/tree/main/4650%20OLED%20FeatherWing)
- [Fritzing object available in the Adafruit Fritzing Library](https://github.com/adafruit/Fritzing-Library/blob/master/parts/Adafruit%20128x64%20OLED%20FeatherWing.fzpz)

# Schematic
![](https://cdn-learn.adafruit.com/assets/assets/000/094/578/medium800/adafruit_products_FW_OLED_128x64_sch.png?1599155002)

# Fab Print
![](https://cdn-learn.adafruit.com/assets/assets/000/094/579/medium800/adafruit_products_FW_OLED_128x64_fab_print.png?1599155053)

![](https://cdn-learn.adafruit.com/assets/assets/000/115/892/medium800/adafruit_products_PCB-Component.jpg?1665773890)


## Primary Products

### Adafruit FeatherWing OLED - 128x64 OLED Add-on For Feather

[Adafruit FeatherWing OLED - 128x64 OLED Add-on For Feather](https://www.adafruit.com/product/4650)
A Feather board without ambition is a Feather board without FeatherWings! This is the&nbsp; **FeatherWing 128x64 OLED** : it adds a gorgeous 128x64 monochrome OLED plus 3 user buttons to&nbsp;_any_&nbsp;Feather main board. Using our&nbsp;<a...></a...>

In Stock
[Buy Now](https://www.adafruit.com/product/4650)
[Related Guides to the Product](https://learn.adafruit.com/products/4650/guides)
### Assembled Adafruit FeatherWing OLED - 128x64 OLED Add-on

[Assembled Adafruit FeatherWing OLED - 128x64 OLED Add-on](https://www.adafruit.com/product/6313)
A Feather board without ambition is a Feather board without FeatherWings! This is the&nbsp; **FeatherWing 128x64 OLED** : it adds a gorgeous 128x64 monochrome OLED plus 3 user buttons to&nbsp;_any_&nbsp;Feather main board.&nbsp;Comes fully assembled so you can connect the...

In Stock
[Buy Now](https://www.adafruit.com/product/6313)
[Related Guides to the Product](https://learn.adafruit.com/products/6313/guides)

## Featured Products

### STEMMA QT / Qwiic JST SH 4-pin Cable - 100mm Long

[STEMMA QT / Qwiic JST SH 4-pin Cable - 100mm Long](https://www.adafruit.com/product/4210)
This 4-wire cable is a little over 100mm / 4" long and fitted with JST-SH female 4-pin connectors on both ends. Compared with the chunkier JST-PH these are 1mm pitch instead of 2mm, but still have a nice latching feel, while being easy to insert and remove.

<a...></a...>

Out of Stock
[Buy Now](https://www.adafruit.com/product/4210)
[Related Guides to the Product](https://learn.adafruit.com/products/4210/guides)
### STEMMA QT / Qwiic JST SH 4-Pin Cable - 50mm Long

[STEMMA QT / Qwiic JST SH 4-Pin Cable - 50mm Long](https://www.adafruit.com/product/4399)
This 4-wire cable is&nbsp;50mm / 1.9" long and fitted with JST SH female 4-pin connectors on both ends. Compared with the chunkier JST PH these are 1mm pitch instead of 2mm, but still have a nice latching feel, while being easy to insert and remove.

<a...></a...>

Out of Stock
[Buy Now](https://www.adafruit.com/product/4399)
[Related Guides to the Product](https://learn.adafruit.com/products/4399/guides)
### STEMMA QT / Qwiic JST SH 4-Pin Cable - 200mm Long

[STEMMA QT / Qwiic JST SH 4-Pin Cable - 200mm Long](https://www.adafruit.com/product/4401)
This 4-wire cable is a little over 200mm / 7.8" long and fitted with JST-SH female 4-pin connectors on both ends. Compared with the chunkier JST-PH these are 1mm pitch instead of 2mm, but still have a nice latching feel, while being easy to insert and remove.

<a...></a...>

Out of Stock
[Buy Now](https://www.adafruit.com/product/4401)
[Related Guides to the Product](https://learn.adafruit.com/products/4401/guides)

## Related Guides

- [STEMMA Lego base plates](https://learn.adafruit.com/stemma-lego-base-plates.md)
- [Desk Calculator with CircuitPython](https://learn.adafruit.com/desk-calculator-with-circuitpython.md)
- [CircuitPython USB VID/PID Reporter](https://learn.adafruit.com/circuitpython-usb-vid-pid-reporter.md)
- [Adafruit ISO1540 Bidirectional I2C Isolator](https://learn.adafruit.com/adafruit-iso1540-bidirectional-i2c-isolator.md)
- [Adafruit INA219 Current Sensor Breakout](https://learn.adafruit.com/adafruit-ina219-current-sensor-breakout.md)
- [Adafruit Universal USB / DC / Solar Lithium Ion/Polymer charger - BQ24074](https://learn.adafruit.com/adafruit-bq24074-universal-usb-dc-solar-charger-breakout.md)
- [PyRuler Video Conference Panic Buttons](https://learn.adafruit.com/pyrulervideopanic.md)
- [Reindeer Mask with Animated Eyes](https://learn.adafruit.com/reindeer-mask-with-animated-eyes.md)
- [Adafruit ENS161 MOX Gas Sensor](https://learn.adafruit.com/adafruit-ens161-mox-gas-sensor.md)
- [Glowing Hair Flowers with n00ds](https://learn.adafruit.com/glowing-hair-flowers-with-n00ds.md)
- [Adafruit RP2350 22-pin FPC HSTX to DVI Adapter](https://learn.adafruit.com/adafruit-rp2350-22-pin-fpc-hstx-to-dvi-adapter.md)
- [Arcade Fightstick](https://learn.adafruit.com/arcade-fightstick.md)
- [Adafruit PiTFT - 2.8" Touchscreen Display for Raspberry Pi](https://learn.adafruit.com/adafruit-pitft-28-inch-resistive-touchscreen-display-raspberry-pi.md)
- [Adafruit Infrared IR Remote Receiver](https://learn.adafruit.com/adafruit-infrared-ir-remote-receiver.md)
- [Adafruit 9-DOF Orientation IMU Fusion Breakout - BNO085](https://learn.adafruit.com/adafruit-9-dof-orientation-imu-fusion-breakout-bno085.md)
