Zio Qwiic OLED Display (1.5inch, 128x128)

Here is the Zio Qwiic 1.5inch 128 x 128 pixels OLED display module. It can display a maximum of 16 lines of text content, and display pictures and animation on its 1.5-inch display. On the backside, there are two Qwiic connectors. With the Qwiic connect system no soldering is required to connect it to the rest of your system.

Fit for use in small embedded systems, and also suitable for any projects that require displays of any kind, this screen is a must-have for Makers to include in even as one of their wearable DIY projects.

The SparkFun Qwiic Connect System is an ecosystem of I2C sensors, actuators, shields and cables that make prototyping faster and less prone to error. All Qwiic-enabled boards use a common 1mm pitch, 4-pin JST connector. This reduces the amount of required PCB space, and polarized connections mean you can’t hook it up wrong.

  • Resolution: 128 x 128 pixels
  • Display IC: SSD1327
  • I2C address:0x78, 0x7A (Default: 0x78)
  • Display Color: White

Zio Qwiic OLED Display (1.5inch, 128x128) Product Help and Resources

Core Skill: Programming

If a board needs code or communicates somehow, you're going to need to know how to program or interface with it. The programming skill is all about communication and code.

3 Programming

Skill Level: Competent - The toolchain for programming is a bit more complex and will examples may not be explicitly provided for you. You will be required to have a fundamental knowledge of programming and be required to provide your own code. You may need to modify existing libraries or code to work with your specific hardware. Sensor and hardware interfaces will be SPI or I2C.
See all skill levels

Core Skill: Electrical Prototyping

If it requires power, you need to know how much, what all the pins do, and how to hook it up. You may need to reference datasheets, schematics, and know the ins and outs of electronics.

2 Electrical Prototyping

Skill Level: Rookie - You may be required to know a bit more about the component, such as orientation, or how to hook it up, in addition to power requirements. You will need to understand polarized components.
See all skill levels


Looking for answers to technical questions?

We welcome your comments and suggestions below. However, if you are looking for solutions to technical questions please see our Technical Assistance page.

  • Member #470229 / about 4 years ago * / 1

    I figured out where to post this on the forums.


    I am unable to post this question to the technical support board (Private Messages > "We are sorry, but you are not authorised to use this feature.") so I am posting it here.

    I bought a couple of these, and successfully hooked one up to an Redboard Artemis (https://www.sparkfun.com/products/15444). However, when I run the graphics example (File > Examples > u8g2 > pagebuffer > GraphicsTest), I had to change this line to get the first frame (that is drawn) to be visible.

    From: u8g2.drawFrame(0, 0, u8g2.getDisplayWidth(), u8g2.getDisplayHeight() );

    To: u8g2.drawFrame(0, 0, u8g2.getDisplayWidth(), 96 );

    Is this OLED really only 96 pixels high, or am I missing something?

    Many thanks for any help.

  • Member #527349 / about 4 years ago / 1

    Anyone know how much current this draws? Trying to size a power supply for it.

    • santaimpersonator / about 4 years ago / 1

      There is a comments section at the end of the hookup guide that goes directly to the manufacturer for the board.

  • tbitson / about 4 years ago / 1

    Nice looking hardware. But the library?? Over 31 MB and 103 files. Whats up with that? I'm having issues getting it to compile on an Uno in the Arduino IDE, so I started following the library #includes. I was about 4 or 5 layers deep when I gave up for the night. This is nothing like the straight-forward easy-to-read Sparkfun libraries. What a mess!

    • santaimpersonator / about 4 years ago / 1

      Hi there, it sounds like you are looking for technical assistance. Please use the link in the banner above, to get started with posting a topic in our forums. Our technical support team will do their best to assist you.

      That being said, unfortunately, we did not design the product or library. However, based on the images in the getting started guide, it looks like it works on an ATmeg328 based board. (*I don't have a screen to test, but following the instructions, the example code seems to compile and upload to my RedBoard Qwiic.)

  • Wannabe Mad Scientist. / about 3 years ago / 0

    can these oled screen modules be connected to a Raspberry pi camera? If so, how would one go about it? It seems that this website doesn't have a lot of resources for that.

Customer Reviews

3.8 out of 5

Based on 5 ratings:

Currently viewing all customer reviews.

1 of 1 found this helpful:

Convenient to use

Nice and easy to use display showing status and sensor values of my robot. As I have been not sure how big or small the text is on the display I purchased also the smaller version of the display. Maybe it would be good to show a picture with text to get a better visual impression about text size.

5 of 5 found this helpful:

Nice OLED but docs are a bit confusing

First, this OLED does everything I need it to do and setting it up was easy. I love it.

There are a few of things that you need to know:

  1. Another reviewer said that it is slow. Assuming you are using the u8g2 library to control it, you can speed it up dramatically by calling setBusClock(). I'm using u8g2.setBusClock(4000000);

  2. If you want to use two displays then you will have to solder the SA0 jumper on the back to change the address of one of your displays.

  3. The I2C addresses listed on the sparkfun product page and those listed in the datasheet are different. Scanning for addresses results in the datasheet addresses. However, when using u8g2.setI2CAddress() you will want to use the addresses listed on the product page (0x78, 0x7A). The product page addresses are just the datasheet addresses times 2.

  4. The u8g2 libraries use a lot of memory so you might not have enough memory to run all the examples or do what you want. I ended up using a teensy 4.0 and the sparkfun qwiic shield for teensy so that I would have plenty of memory and to make sure that I didn't have any problems.

Have fun!

2 of 3 found this helpful:

Greyscale display, unfortunately very SLOW

I was surprised to discover that this is a greyscale display, and not just monochrome as one of the product tag mentions. I'm using the framebuffer-based Python library (MicroPython really) with a Tinypico (ESP-32), available on GitHub under mcauser/micropython-ssd1327.

First, the positives: the Qwiic connector is always a pleasure to use, I really appreciate the solid connector without having to add headers and jump wires. The display is bright and pretty large, and the library is super easy to use.

Now for the downsides. This is not a black-and-white display, but actually supports 16 levels of greyscale. While this sounds like a great feature, it makes this display incredibly slow. You can actually see it refresh the screen in real-time and I've consistently measured the refresh time at 0.277 seconds. That's less than 4 frames per second if you intend to display any sort of animation, and be aware that each frame is not displayed all at once but line by line from the top of the display. And no, this is not due to the driver sending many commands in a row, it's framebuffer-based meaning that it writes bytes to a display buffer and then sends a single command to make the screen display this data.

If you do this:

a = time.time_ns()  
display.fill(0)  # all black  
display.show()  # effectively clear screen  
b = time.time_ns()  
display.fill(1)  # all white  
display.show()  # light up all pixels  
c = time.time_ns()  

Then the difference between a and b will be 0.277 sec and so will the difference between b and c. What you will see is the screen going black line by line from top to bottom in ~1/4 sec and then going white line by line from top to bottom in the same amount of time.

To be honest, this insanely slow refresh rate and the fact that frames aren't displayed all at once but top to bottom is really a deal-breaker for me. I was hoping to have a live graph of sensor data on this but it's just not at all possible with this display. I haven't looked through the whole 68 pages of the datasheet yet to see if it's possible to use it in black & white only and if maybe that would be faster; at least the current client library doesn't support such a mode so I'd need to add it.

Also, neither positive nor negative: just be aware that this page mentions that the I²C address is 0x78 or 0x7A, this is not the case. The address is 0x3C like several other similar displays I've used in the past like the Frienda OLEDs. Not a big deal but use the scan feature on your I²C object if it has one.

A good quality display for showing pressure reading values for my syringe pump. I thought the dimensions were a little big though so I switched to the smaller version as my project was more compact. I think the larger screen would work better for projects bigger in size so it would not be too heavy to attach.

Hard to use

The library is very hard to use. I just want to print some variables and it is the most convoluted process. Frustrating for anybody new.