I recently got myself an SSD1306 OLED display: SSD1306 OLED display

I haven't been able to successfully wire it to an Arduino (Mega 2560) however. I have been reading up on I2C and SPI and checked some libraries from Adafruit and U8G2.

However, I'm confused, since most of the Internet is talking about a similar OLED display with GND - VDD - SCL - SDA labelled pins, where mine has SCK instead of SCL.

Now, the number of pins make me believe I need to interface with I2C, but the SCK label points to SPI, right?

One person seemed to have the same problem as me, but the solution he got (pull-up resistors) didn't do the trick for me, I'm afraid.

So, my question remains: how to wire this OLED display to the Mega 2560?

Much appreciated if someone could point me to the right direction.


  • manufactures are terrible about printing the right labels on those interface pins. i've seen SPI MOSI labeled: MOSI / SPI / DO / SDI / SDA / AD / A0 and DC; some of those aren't even close! there's only 2 wires, so that's a I2C. try flipping the pins if it doesn't work; ive seen them labeled backwards too.
    – dandavis
    Nov 2, 2017 at 21:58

2 Answers 2


SCK and SCL are the same thing.

  • Serial ClocK
  • Serial CLock

They seem to be interchangeable. The fact you have SDA (Serial DAta) as opposed to separate SDI / SDO or MOSI / MISO pins means it's I2C.

Wire it like you would any other I2C device.

  • It is i2c, but these display are known for disturbing the i2c bus. They might be 3.3V i2c, or missing an acknowledge. Adafruit adds a i2c level shifter to similar oled displays. The U8g2 has an option for software i2c without acknowledge.
    – Jot
    Nov 2, 2017 at 1:18
  • 1
    thanks a lot, that works (also, for reference: the I2C address for this display is 0x3C) Nov 4, 2017 at 10:52
  • U8g2 in software I2C mode works well on the GM009605 v4. I can pretty much use any pin. Looks stable too.
    – Jerther
    Jun 1, 2020 at 0:30

I have what appears to be the same display (GM009605 v4) and while both SCL and SCK both stand for Serial Clock many development boards have different SCK and SCL pins that you'd need to interface. On a Wemos d1 mini for example I have this display plugged into SDA => D2 & SCK => D5 where as if it was SCL it would to to D1.

FWIW I use the Wire.h and SSD1306.h libraries (https://github.com/ThingPulse/esp8266-oled-ssd1306) to interface with the display using the Wemos D1 mini.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.