I needed a display for a project of mine and was just going to use a regular HD44780 -based text LCD display, until I spotted some very neat looking TINY OLED-displays from eBay.

SSD1306 -based OLED-display

SSD1306 -based OLED-display

OLED-display showing the 5x7 font chart

OLED-display showing the 5x7 font chart

The displays are monochrome 128×32 pixel displays with a 4-wire SPI bus and they are around 30x11mm in size (the actual display area is under an inch diagonally!). The exact type of the displays is UG-2832HSWEG04. I found a datasheet for the displays and a datasheet for the actual display controller (SSD1306) and they seemed easy enough to use so I ordered a two of them for just $13.

Mounting the displays

The first big question mark was the connector for the displays because they didn’t really have one. The displays have a what is called “hot bar solderable” flex-cable (0.7mm pitch) which just has some contacts in the end of the cable and then you just solder it to your board. I was kind of worried the cable might melt or something else would go wrong.

OLED display adapter board

OLED display adapter board

Mounting the first display DID go wrong but that was because of my own carelessness. I was trying to “sandwich” the flex cable in between the adapter PCB and another small piece of PCB with two pins through the mounting holes in the flex-cable, and accidentally poked a screwdriver through the flex-cable, d’oh! Mounting the second display went just fine, with enough flux it was easy to solder. I ended up gluing the display to the other side of the board, other option would have been to make some kind of a frame for it.

Controlling the displays

OLED-display adapter board schematic

OLED-display adapter board schematic

You just basically need 5 capacitors and one resistor for the display. The display has an internal DC/DC converter that generates the higher voltage for the panel.

I wrote my own library for controlling the display with an Arduino pro mini. Controlling the display is pretty simple, only thing complicated with the display is that it requires quite a lot of configuration when the screen gets initialized. You also need to use 512 bytes of RAM to buffer the display.

For testing the display I also wrote a Python script that converts a 128×32 pixel GIF-image to data that is suitable for the display (the display is indexed 8 bits per column, in four pages).

I made a new post about the library I made for controlling these displays: Post about the library


6 Responses so far.


  1. […] a C library. In addition to that some more information on driving such display type was found at DGK Electronics. The displays looked bright and thin, the board was compact and simple, the display was controlled […]

  2. Fadi says:

    Hi
    Thanks for the information, I want to design my own board to have minimal size, adafruit.com has some nice breakout boards for these modules but my question is that you are not using a hex level shifter in your design and they are (for the same SSD1306 display module)

    are you compensating this in software?

    thanks

  3. Kris says:

    Hi. Where can I get such a fancy display?

    Best regards,
    Kris

  4. […] up a GitHub repository for the driver library for the OLED-displays I did a post about before (this). The library currently supports printing 5×7 font characters and turning single pixels on and […]

Leave a Reply