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.
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.
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
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