Creative Commons images are CC BY-NC-SA 3.0

Description: The SparkFun Micro OLED Breakout Board breaks out a small monochrome, blue-on-black OLED. It’s “micro”, but it still packs a punch – the OLED display is crisp, and you can fit a deceivingly large amount of graphics on there. This breakout is perfect for adding graphics to your next Arduino project, displaying diagnostic information without resorting to serial output, and teaching a little game theory while creating a fun, Arduino-based video game. Most important of all, though, is the Micro OLED is easy to control over either an SPI or I2C interface.

You may be asking yourself, “Why does this board look so familiar?” Yes, this is essentially a MicroView without the Arduino portion. We understand that sometimes you just need a breakout, an open door for you to explore the possibilities of a super small OLED screen. Speaking of, the screen on this breakout is only 64 pixels wide and 48 pixels tall, measuring 0.66" across.

In total, the Micro OLED Breakout provides access to 16 of the OLED’s pins. Fortunately, though, you’ll only need about half of them to make the display work. The top row of pins (GND-CS) breaks out everything you’d need to interface with the OLED over an SPI or I2C interface. The pins on the bottom (D7-vB) are mostly only used if you need to control the display over a parallel interface. This board operates at 3.3V with a current of 10mA (20mA max).

Features:

  • Operating Voltage: 3.3V
  • Screen Size: 64x48 pixels (0.66" Across)
  • Monochrome Blue-on-Black
  • SPI or I2C Interface

Documents:

Recommended Products

Customer Comments

  • Be careful with I²C. They really do mean slow

  • I cannot use the example code for SIMBLEE. When I download an example code on SIMBLEE, it shows an error message about an address. As far as I know, Arduino Pro, ATmega328, which is an AVR microcontroller while the SIMBLEE is an ARM Cortex-M0. What do I need to do to fix this problem?

  • When I try to call certain functions from the code in SFE_MicroOLED.h, they return something like this: undefined reference to `MicroOLED::scrollVertRight(unsigned char, unsigned char)‘ collect2: error: ld returned 1 exit status the pieces I tried to call in code was this: oled.scrollVertRight(0,48);

  • And the example code works just fine.

  • Why does this keep displaying the Sparkfun logo even though I am trying to display a rectangle, the rectangle is there, just half inside the logo.

    • You have to call oled.clear(PAGE); in order the wipe the entire buffer, not only just the display’s memory. Read void setup() in the demo sketch. I think the splash screen is immediately put in the buffer after loading the display.

  • Does this breakout include the OLED module?

  • According to SSD1306 spec, there’s a frame synchronization signal ‘FR’: (pad 51 out of 281)

    “FR O This pin outputs RAM write synchronization signal. Proper timing between MCU data writing and frame display timing can be achieved to prevent tearing effect. It should be kept NC if it is not used. Please refer to Section 8.4 for details usage. ”

    I notice its not on this breakout board as a through hole, but is it at all physically accessible at all? Im looking to drive this display at high frame rates without tearing. Thanks.

    • Unfortunately it’s not accessible. We broke out everything we could on the board, but the FR pin doesn’t look like it’s passed through on the OLED’s 28-pin ribbon connector.

  • Hi, Is there CAD for the OLED display? Thanks!

    • I didn’t happen to notice the picture of the back of the display with the part number :) before. Found more info here and am requesting CAD data.

  • For those planning to use this with the ESP8266, you can use the following library

    https://github.com/EdwinRobotics/ER_Micro_OLED_Arduino_Library

  • This is the same display as in the MicroView, right? Is it compatible with the MicroView library at all? It would be really nice to be able to use the nice widgets/gauges, the OLED library seems to be a lot more simplistic.

    • Yes, this is the same display. It should be compatible with the libraries as well, just check to make sure you have the right pins hooked up.

    • It is the same screen, and it should work with the MicroView library provided you hook up the correct pins. Either follow the MicroView schematic for hookup, or edit the pin definitions in the library’s MicroView.h file.

      • Thanks for the info, guys!

        I was able to follow the MicroView schematic for all connections except for RST and D/C (my PCB already has those pins used for other functions), but a quick review of the Arduino Port Manipulation page and an easy edit to the header file and I’m up and running with no issues!

  • FYI, if you use this over I2C you will see in the schematic that the breakout board does not have pull-ups, so make sure to add your own (10K works great).

  • Hi, I used the tutorial for i2c on the micro oled ,but when I start my arduino uno the micro just stays black.

    I’ve tripled checked the connections and they’re all good can someone please help?

  • This part works great! However, it appears that the one I purchased may have been defective. After about an hour of continuous use it shut off and refused to turn back on. I couldn’t find any traces of physical damage. Is this by chance covered under Sparkfuns replacement policy?

  • I tweaked the Adafruit SSD1306 library to work with this screen.

    With hardware SPI on my Teensy 3.1, the SparkFun library takes 935 microseconds to update the screen, but the Adafruit library can do it in 625 microseconds.

    https://github.com/Swap-File/SparkFun_OLED/

  • This breakout worked great! Now I’m hoping to get just the OLED screen for a custom application– would it be possible to get the manufacturer P/N? Thanks.

  • I think the answer may be ‘no’ after snooping through the documents, but is this screen capable of varying degrees of value per pixel or is each pixel just on/off? I’m looking in to options for displaying spectrographs for a school project, so I’m looking to be able to show different shades of gray (err…blue?) at each pixel. If this board doesn’t work, would anyone have recommendations? I don’t need anything fancy (hence looking for black/white options).

  • So, where’s the manual with all the raw command structure so I can use it with whatever micro I want?

  • Does this buffer the data itself or do you have to keep refreshing? Does it have a text mode, so you can just throw text at it, or do you have to use something like an Arduino library for it to make text (I wouldn’t be using Arduino in my application)?

    • Its my understanding the data is buffered at least. It has it own refresh rates you can set. As Jimb0 stated, no text character support.

    • Nah, it’s only set up to receive streams of bits which all correlate to single pixels on the display. If you want to send text, you’ll need an Arduino or some form of microcontroller to parse that data and convert it to the more raw data the display expects.

      • Hey thanks for the info guys. Is there one of these that is text capable? Anybody know where Nick got his T-Shirt he’s wearing in the vid?

  • How flexible is the ribbon cable and attachments between the OLED and the breakout board? Is it safe to fold it over the breakout so they take up the same footprint?

    • Yes, but if you’re using double-sided foam tape or something to hold it down, be very careful of how you push the glass into the tape! I’ve cracked the corner of a similar display with very little pressure; it’s thin glass and not meant to be mashed on. Consider laying the glass down on a table and flipping the board over it, pushing against the board rather than the glass.

    • It’s what they did on the Hookup Guide: https://learn.sparkfun.com/tutorials/micro-oled-breakout-hookup-guide

Customer Reviews

4.3 out of 5

Based on 22 ratings:

5 star
11
4 star
9
3 star
0
2 star
1
1 star
1

1 of 1 found this helpful:

Awesome display

I love this display, it’s tiny and looks great. I adapted the code on GitHub so it runs on a Spark Core (and presumably in the future Spark Photon) module:

https://github.com/liyanage/Micro_OLED_Breakout

Note that this modified version only supports SPI for now.


4 of 4 found this helpful:

Amazingly Versatile

I’m pretty new to the Arduino scene, so I’m still amazed at how much capability is baked into these little breakout boards (thanks to a lot of great library code that comes with it). This thing is so easy to use, and the refresh rate is so fast! I never thought it would be this easy to add fairly rich displays to my project, and it’s so much more satisfying than a few blinking lights or 7-segment displays. My only issue with it was trying to hook it up to a 5v board (with the 3.3v supply and level adjusters, of course). I never got it to display anything but garbage, and I suspect the SPI clock and/or data lines were not clean enough after passing through the level adjusters. I gave up on the 5v board and switched to a 3.3v Arduino Pro, got rid of the level adjusters, and then the display worked like a dream. Highly recommended!


2 of 2 found this helpful:

Really great module!!!

I had absolutely no problems running it, just connected as in hookup guide and voila! It has really good contras and I love running the cube example. Additionally it’s so thin that can be placed anywhere. Thanks to OLED tech, no extra back-light it required which is even more extraordinary! I fully encourage all who thinks about this little guy to give it a try! You will have a lot of fun with it!!!


1 of 1 found this helpful:

Works fine with 5V Arduino Uno and level shifters.

Clear and bright display. Curious as to why there are no level shifters (apart from 1K resistors on two lines) in the MicroView schematic if the ATmega328 is running at 5V.


2 of 3 found this helpful:

Specs don't match video

Haven’t turned this on yet but the video says it’s a 96x48 pixel display but the specs here say 64x48.

Either is fine for what I want to do with it and I bought it assuming that 64x48 was the real resolution. But you might want to make sure the specs match the video or vice-versa.

EDIT

As of 2015-02-17, the built in examples don’t work with Arduino DUE. This is sad considering this product has been out for a long time.


1 of 2 found this helpful:

Decent, but low quality breakout

The LCD seems to be fine for the most part, but this breakout board is really substandard. The bend radius of the FPC is too small and really awkward. I know they were trying to make it small, but the layout and size of this board was ill-conceived. I now have two because the first one stopped working intermittently. The second has begun behaving the same way and it’s definitely related to the FPC after several hours of debug effort.

As an aside, the display driver is really awful as well. It would have taken trivially more effort to make it fully object oriented, but, as it stands, you can only make a single instance of the class unless you literally copy and paste the files and then rename everything.

Sorry you are having issues with your board. We use this circuit in our Micro Views so the intended use case would have a custom enclosure to protect the screen and FPC. Looking over our records we have not seen any returns for this issue. However, if you are having trouble, please contact us at techsupport@sparkfun.com


Works good

Product works as promised by Sparkfun.


Very nice small OLED display

A bright and crisp OLED display. Despite it’s small size even 5x7-font-text is very readable. SPI transfer allows for a quite fast update rate of the whole display. Although there’s ‘only’ an Arduino library available from Sparkfun and i’m using mbed boards and IDE, it was very easy to adapt the library for use with mbed platforms. Here is the link to the SFE_MicroOLED library for mbed:

http://developer.mbed.org/users/synvox/code/SFE_MicroOLED/


Well documented and highly functional

I used this product with a 9S12 microcontroller instead of the Arduino. I used the SPI interface.

The Ardiuno libraries were accessible, and commented well enough for me to port into C myself. The documentation for the device was good enough for me to get the screen working like a charm.

Loved the resolution! I was able to get the gist of 3D shapes across on this screen which is smaller than a Quarter!

One thing to emphasize; toggling the Reset pin is critical to proper startup. The importance of this was not explicitly stated, that’s the one thing I would improve.


Don't even need a level shifter for 5v

Works fine with 5v logic, though there might be some long term effects I don’t know.


Nice little display

We built one of these into a 1" x 1" x 0.5" 3D-printed enclosure along with an Arduino 328P microcontroller, ADXL345 accelerometer, FTDI USB interface chip, battery, charger, LDO and on-off switch. There’s a picture at potomacmeso.com/display-with-accel. The combination of display and tap-sensitive accelerometer gives some interesting alternatives for 2-way communication between the user and the microcontroller. The display is easy to program, thanks to the libraries.


pretty nice little display

In need if a better library…


Pretty happy with it.

I’m fairly new to working with this kind of thing, but it was quite easy to get it up and running, and it looks great. Wish spark fun would stock some more sizes, these are great for displaying info in a small package.


Really great screen!!!

Love this oled screen. Got it soldered and running to a bluebean in no time. Gets really bright and it’s really easy to get set up.


This OLED display works great. It is an amazing little device!

Tried it out with Teensy 3.2 installed on SparkFun Teensy Arduino shield board. This OLED display works great. The Teensy 3.2 is so fast that I had to add some delay statement in order to actually see the different display patterns.


Video tearing warning

Please note that you may experience “tearing” of a video display. By tearing a mean a frame of corrupted data. ½ last image and ½ the new image. This is not a major concern unless you are doing moving images. This is not the fault of SFE. The OLED display and its controller chip do not bring out one important pin. This is the “FR” or Frame Sync pin. To not tear video, one must write you image data during the blanking period indicated by this pin. For me on a fast ARM processor updating the display over I2C at a measly 1 Hz, I get a torn image every minute or so. Also, if you are in any way taking a video of the display, you will have aliasing problems recording at 30Hz. I suspect that this is the refresh rate of the OLED.


Useful Display

This is a very easy display to code. Its very bright indoors but can be a bit difficult to see in direct sunlight (not impossible though). Only gripe concerning the build is the ribbon cable. After a fair amount of use over the past 4 months, the cable has sustained some damage due to rubbing and the display no longer works. Overall, I really enjoyed this display but I may decide to try out a larger OLED before I decide to go back to this one.


Great looking little display

Sharp color(blue only); not bad to set up and very to wire to Nano. Perfect for my little project…small yet visible.


Great addition to a project

The Micro OLED has been an excellent addition to a number of projects. It was a big hit as part of a recent BowTie project.

http://rightaresearch.com/wikinew/doku.php?id=tweet_bowtie


Bright and crisp, but small screen area for the package.

It’s everything it promises to be—it’s a bright, brilliant blue with really sharp pixels, and it’s no fuss to hook up to a board and get it working, especially with the provided drivers.

The screen is small, which I suppose is a selling point. But I really wish the acrylic casing around the screen—and especially the rear red breakout board—were smaller to match.

The driver seems well-designed, is automatically double-buffered for clean drawing, and has a good basic set of drawing primitives built in. On the limited space of, say, an Arduino Pro Mini, this library uses up a fairly large percentage of program & global memory, I actually stripped some of the code that I didn’t need out, though it probably won’t have been necessary to do so by the end of the project.


Solder Wick

This screen is awesome and the demo software is pretty sweet. Make sure you include solder wick with your order if you dont already have some. swapping those jumpers without it is difficult and potentially fatal. Otherwise this thing is awesome! Make sure not to power your Arduino until everything is connected otherwise the screen will miss the initial line of code and not work. Also, I didn’t solder headers to the parallel pads as recommended, but make sure you at least rest the otherside of the board on some while soldering. That way your headers will be square and not cocked to one side.


Related Tutorials

Micro OLED Breakout Hookup Guide

October 30, 2014

Learn how to hook up the Micro OLED breakout to an Arduino. Then draw pixels, shapes, text and bitmaps all over it!