Getting Started with the Maker Kit OLED: How To

I Struggled with getting the OLED to work and found no documentation out there. I had to piece together bits and pieces from various confusing threads. So I’ve written this all into one post that I have confirmed working in the hopes it will save someone else from having to waste time. I am a complete newb so if this is incorrect please excuse. Thanks to @ScruffR for helping out

Wiring:
Wire the Photon to the OLED as follows

Photon OLED Cable Colour
===== ==== ==========
3V3 --> VCC (Red)
GND --> GND (Black)
D5 --> RST (Orange)
D4 --> CS (Blue)
D3 --> DC (Green)
A5 --> D1 (White)
A3 --> D0 (Yellow)

Code:

  1. Open Web IDE

  2. Create New App “USE OLED”

  3. Click Libraries in bottom left

  4. Under Community Libraries search “ADAFRUIT_SSD1306”

  5. Click Include in APP. “USE OLED”

  6. Click on Included Libraries “ADAFRUIT_SD1306”

  7. Go Back to App, Copy and Paste code from “ssd1306_128x64.ino” into “USE-OLED.INO”

  8. Edit use-olde.info and modify the following two lines:

    #include “Adafruit_GFX.h”
    #include “Adafruit_SSD1306.h”

to

  #include "Adafruit_SSD1306/Adafruit_GFX.h"
  #include "Adafruit_SSD1306/Adafruit_SSD1306.h"
  1. Remove/delete these three lines:

    int random(int maxRand) {
    return rand() % maxRand;
    }

  2. Flash

  3. You should the OLED cycle through a demo of drawings

  4. Great success

8 Likes

Well done. Glad to see you got it working and shared that experience with others. I’ll drop in the details on how to do the same with an i2c display in the next few days. You should include a photo of a big “Hello World” on your display!

1 Like

Actually there is an easier way to use the library examples:

  1. Under Community Libraries search ADAFRUIT_SSD1306
  2. Click on the demo file you want (e.g. SSD1306_128x64.INO)
  3. Click the Button USE THIS EXAMPLE

after that carry on with 8. from above.

2 Likes

I tried getting this to work with a couple of different solutions on the community forums but this one finally worked. Thank you! I just couldn’t get the other code examples to compile but this one has no issues. Thanks again for the post.

It looks like the files have been updated to include the i2c version. So the demo files are now
ssd1306_128x64_spi.ino
and
ssd1306_128x64_i2c.ino.

So using the PArticle web app and starting with use ssd1306_128x64_spi.ino and changing the include path lines to:

#include "Adafruit_SSD1306/Adafruit_GFX.h"
#include "Adafruit_SSD1306/Adafruit_SSD1306.h"

I had a problem with a duplicate definition of inside the lib, but that seems to have resolved itself on a second compile:

#define pgm_read_byte(addr) (*(const unsigned char *)(addr))

I also had forgotten to delete random()

The problem now is that the display is still black. In looking at lines with a scope, I see Vcc,
A 2 sec period of high freq data on D0 & D1
High on CS and RST,
2sec period Low pulses on DC

Any thoughts - thanks?

Have you soldered the bridges on the board to change it from SPI to I2C?
The Maker Kit OLED comes set for SPI by default.

BTW: I guess the double forward slash in your include statement above is a typo, right?
(since there never was a reply nor a correction, I’ve corrected that myself)

Nice job with the documentation. I got mine setup and working in about 10 minutes following your instructions.

1 Like