Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of spk_oled_ssd1305 by
Homepage
OLED driver and demo for Univision oled display 128x64.¶
Modified Toby Harris' code to run page mode addressing in 4 wire SPI on the Univision UG-2864HSWEG01 128X64 unit - often found for sale on ebay. That's where I got mine anyhow.
Wiring this was fairly straightforward but you really do have to ground all the unused pins EXCEPT for number 8 to get it to work.
Here's the layout - I made a little carrier using a 2x8 connector and a couple of headers mounted on a small piece of stripboard. You can see all the wire links that are used to ground the unused pins. It was pretty awkward setting the display to run in 4 wire spi - had to desolder and resolder three smd o ohm links on the back o fhte pcb - ended up using a microscope to see them.
Here is the output of the demo code.
In page mode the display is effectively divided up into 8 horizontal strips, each 8 pixels high so lends itself nicley to displaying text in a 5x7 font. I've included the 5x7 lcd font in the code below.
Code¶
Import programunivision_oled
driver demo for univision oled dispaly
#include "mbed.h" #include "4spi_oled_ssd1305.h" /* re writtten to cope with teh ssd1306 driven oled UG-2864HSWEG01 from univision wiring for test circuit OLED pins -FUNCTION-------MBED PINns 1 ----3.3V--- Vout (p40) 2 ----0.0V--- GND (p1) 3 ----------- GND (p1) 4 ----------- GND (p1) 5 ----------- GND (p1) 6 ----------- GND (p1) 7 ----------- GND (p1) 8 ----------- N/C 9 ----D1---- mosi (p5) 10 ---D0------sck(p7) 11 ----------- GND (p1) 12 ----------- GND (p1) 13 ---DC------ p10 14 ---RES----- p9 15 ---CS------ p8 */ DigitalOut myled(LED1); // Create object and load font //SPKDisplay( mosiPin, clkPin, csPin, dcPin, resPin, Serial *debugSerial) SPKDisplay screen(p5, p7, p8, p10, p9); int main() { char msg[22]; sprintf(msg," "); // 01234567890abcdefghij int i=0; while(1==1) { myled=1; // nice logo output screen.welcome(); wait(3); wait(2); for(i=0; i<5; i++) { myled=0; screen.inverse(); wait(1); screen.normal(); myled=1; wait(1); } screen.fontdemo(); myled=0; wait(5); screen.clearBuffer(); screen.sendBuffer(); myled=1; wait(0.5); myled=0; wait(0.5); for(i=0; i<8; i++) { sprintf(msg,"HELLO WORLD %d",i); screen.textToBuffer(msg, i); screen.sendBuffer(); screen.clearBuffer(); myled=1; wait(1); } } }