Adafruit SSD1306 Monochrome 128×32 OLED graphic display running at over 500 hz frame rate

Adafruit SSD1306 running at over 500 hz frame rate. Greg writes –

Final driver tweeks have raised the frame rate to over 500 hz with the same graphic load. Again, a great display!  Thanks very much for your products. They are fun to incorporate into our designs.

The display is being updated at over 500 hz as can be determined by the on screen counter (it counts from o through 999 then resets) and by the oscilloscope frequency display (it is reading 553.1 hz). The driver is optimized for the display, however, it is ready to drive the 128 by 64 version of the display when it becomes available. The PIC24FJ64GB002 is running at 16mhz. The spi bit rate is 8mhz. The drivers are written in C. No assembly language was required.


Monochrome 128×32 OLED graphic display. These displays are small, only about 1″ diagonal, but very readable due to the high contrast of an OLED display. This display is made of 128×32 individual white OLED pixels, each one is turned on or off by the controller chip. 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!


The driver chip SSD1306, communicates via SPI only. 4 or 5 pins are required to communicate with the chip in the OLED display.


The OLED and driver require a 3.3V power supply and 3.3V logic levels for communication. To make it easier for our customers to use, we’ve added a 3.3v regulator and level shifter on board! This makes it compatible with any 5V microcontroller, such as the Arduino.

The power requirements depend a little on how much of the display is lit but on average the display uses about 20mA from the 3.3V supply. Built into the OLED driver is a simple switch-cap charge pump that turns 3.3v-5v into a high voltage drive for the OLEDs, making it one of the easiest ways to get an OLED into your project!

Of course, we wouldn’t leave you with a datasheet and a “good luck”: We have a detailed tutorial and example code in the form of an Arduino library for text and graphics. You’ll need a microcontroller with more than 512 bytes of RAM since the display must be buffered.

You can download our SSD1306 OLED display Arduino library from github which comes with example code. The library can print text, bitmaps, pixels, rectangles, circles and lines. It uses 512 bytes of RAM since it needs to buffer the entire display but its very fast! The code is simple to adapt to any other microcontroller.


  • PCB: 32mm x 23mm
  • Display area: 25mm x 7mm
  • Thickness: 4mm

Display details:

  • Diagonal Screen Size:0.91″
  • Number of Pixels:128 × 32
  • Color Depth:Monochrome (White)
  • Module Construction:COG
  • Module Size (mm):46.30× 11.50 × 1.45
  • Panel Size (mm):30.00 × 11.50 × 1.45
  • Active Area (mm):22.384 × 5.584
  • Pixel Pitch (mm):0.175 × 0.175
  • Pixel Size (mm):0.159 × 0.159
  • Duty:1/32
  • Brightness ( cd/m2):150 (Typ) @ 7.25V
  • Interface:4-wire SPI

In stock and shipping now!

Adafruit publishes a wide range of writing and video content, including interviews and reporting on the maker market and the wider technology world. Our standards page is intended as a guide to best practices that Adafruit uses, as well as an outline of the ethical standards Adafruit aspires to. While Adafruit is not an independent journalistic institution, Adafruit strives to be a fair, informative, and positive voice within the community – check it out here:

Join Adafruit on Mastodon

Adafruit is on Mastodon, join in!

Stop breadboarding and soldering – start making immediately! Adafruit’s Circuit Playground is jam-packed with LEDs, sensors, buttons, alligator clip pads and more. Build projects with Circuit Playground in a few minutes with the drag-and-drop MakeCode programming site, learn computer science using the CS Discoveries class on, jump into CircuitPython to learn Python and hardware together, TinyGO, or even use the Arduino IDE. Circuit Playground Express is the newest and best Circuit Playground board, with support for CircuitPython, MakeCode, and Arduino. It has a powerful processor, 10 NeoPixels, mini speaker, InfraRed receive and transmit, two buttons, a switch, 14 alligator clip pads, and lots of sensors: capacitive touch, IR proximity, temperature, light, motion and sound. A whole wide world of electronics and coding is waiting for you, and it fits in the palm of your hand.

Have an amazing project to share? The Electronics Show and Tell is every Wednesday at 7pm ET! To join, head over to YouTube and check out the show’s live chat – we’ll post the link there.

Join us every Wednesday night at 8pm ET for Ask an Engineer!

Join over 36,000+ makers on Adafruit’s Discord channels and be part of the community!

CircuitPython – The easiest way to program microcontrollers –

Maker Business — “Packaging” chips in the US

Wearables — Enclosures help fight body humidity in costumes

Electronics — Transformers: More than meets the eye!

Python for Microcontrollers — Python on Microcontrollers Newsletter: Silicon Labs introduces CircuitPython support, and more! #CircuitPython #Python #micropython @ThePSF @Raspberry_Pi

Adafruit IoT Monthly — Guardian Robot, Weather-wise Umbrella Stand, and more!

Microsoft MakeCode — MakeCode Thank You!

EYE on NPI — Maxim’s Himalaya uSLIC Step-Down Power Module #EyeOnNPI @maximintegrated @digikey

New Products – Adafruit Industries – Makers, hackers, artists, designers and engineers! — #NewProds 7/19/23 Feat. Adafruit Matrix Portal S3 CircuitPython Powered Internet Display!

Get the only spam-free daily newsletter about wearables, running a "maker business", electronic tips and more! Subscribe at !


  1. It is worth seeing the video of what this display can do because the still picture can’t communicate all of it.

    I’m also interested in any Pic wiring diagrams and programs so that I can do something with the display.

  2. I can provide the schematic diagram in ExpressSCH format. I can also provide the source code if Adafruit allows since I “borrowed” the font, line, and pixel draw from their demonstration. However, I’m not “social media” aware (56 years old), so someone needs to tell me how to post the schematic and source if Adafruit allows.

    The display is easy to drive via spi and is great for most if not all low power battery operated applications requiring a graphical display output in a small form factor. As you may be able to tell, I am very pleased with Adafruit products. Just a fan, not an employee.

    And while the display does allow an incredible frame rate, our prototype did not require high speed animation. We needed a display that allowed the PIC24FJ64GB002 to wake up, perform calculations, output them to the display as quick as possible, then return to sleep. This display allows us to perform this task better than any display I’ve found.

    To Adafruit, your team certainly provides a wide range of high performance products. We have a lot of fun with them.

  3. Would like to see some more samples and faster response times. Pls post the updated library. Thx

  4. Greg,

    I would love to see it and I would be greatfull I’m trying to learn how to get started and this is what I need.


  5. I need instructions on how to upload the schematic. If anyone could help, I would appreciate it.

    Sorry for being “upload illiterate”.

    I will upload the source code next, but need to know how to upload it also.

    Many thanks.

  6. Greg,

    I’m willing to trade email addresses with you.
    Chuck jts at verizon dot net


Sorry, the comment form is closed at this time.