SSD1306 Connection troubles

Posted on
  • I bought a generic SSD1306 from ebay. Connected it as described in the SSD1306 Module and tried the example.
    Nothing happened..
    I tried connecting the 4.7K resistors and nothing happened. I looked on the back of the PCB and it says "Address Selected 0x78" . How do i ensure this is correct address in the called in the SSD1306 example?
    Or can can anyone suggest something else that may be the problem


    1 Attachment

    • SSD1306.JPG
  • @JackHoward, just a quick thing you could try. In the code, modify OLED_ADDRESS and see if that makes it work.

  • Yup. You can use the Projects feature to specify a local directory to pull modules from, and put your modified version there (give it a different name to prevent confusion, speaking from experience)

  • Looks like it's already at the correct address - '0x3C' (in the module) is half '0x78' - there's usually a bit of confusion about I2C addresses (whether they're between 0 and 127, or 0 and 254 - and always even).

    Do you get any errors displayed? If you don't have the correct address then there should be errors displayed on the console. Otherwise either:

    • The data is going into the display, but for some reason (power supply, or maybe the initialisation code is different for your display) it's not being displayed.
    • The code isn't being executed at all - it might be worth adding console.log("Hello") right by g.flip() to make sure it's actually executing.
  • It was a voltage issue.
    The code was executing but nothing was being displayed at 3.3V. I supplied it with 5v and it was ok.
    I know its not a issue with the espruino board but, if i try to illuminate more pixels the brightness dims a lot.

  • Thanks for letting me know... On the screen I have, the power supply looks a lot more elaborate. Perhaps on yours they cut a few corners (or maybe it needs more than 5V - you'd have to check the seller's site)

  • I just tried this and ran into the same problem (exact same module).

    It works on my Arduino Uno with 3,3V and 5V (the address is 0x3c)

    Did you supply the 5V directly or via the Espruino Bat?
    Because when I supply 5V via the Espruino it still won't work...

  • So you're not getting I2C errors - you're just not having anything displayed?

  • Nope, no errors in the console and no picture.

    I got the actual (probably higher quality) module from the tutorial today (Crius C0-16) and that one works.

  • Well, at least one of them works.

    You should get 4.7v out of Espruino's Bat pin when on USB. That really should be enough, so it could be the module itself is dead - although not dead enough not to respond on I2C... It's probably a power supply issue.

  • The strange thing is that the heltec module (the one OP uses) works on my Arduino UNO on 5V and 3,3V. I also thought it was dead but then I tried it on the Arduino. So the voltage from the Bat pin on the Espruino should be more than enough.

    The Crius C0-16, which is also being used on the tutorial/module site here works with the Espruino as inteded.

    It's really strange.

  • Ok I think I figured out the problem.
    Most likely the Cruis module, as well as the Adafruit module have pull-up resistors built in (the Adafruit has them).
    And the "cheap" heltec module doesn't. So adding 4,7k Ohm resistors to the i2c pins will fire up the display.

  • Ahh, that's great! It's strange because if I2C wasn't working I'd have expected that you'd have got some errors reported. Maybe it was working just enough to signal it was responding, but not enough to actually receive the data.

  • I think the heltec module is just a bit wonky.
    I've now tried it with a Spark Core and it works there just like with the Arduino out of the box.
    Someone on the Spark forums only got theirs only to work by adding the pull-up resistors.

  • It could also be related to I2C interface speed? By default Espruino uses quite a low speed just to make it more likely for things to work. You could try specifying bitrate:100000 in I2c.setup?

  • It won't budge on the Espruino. I'll get more modules in a few days, then I'll check if it's only this one or the heltec modules in general.

  • @stozk thanks! Do have some project in mind that you're planning to use them on?

  • I have just connected a bunch of sensors (e.g. MPU6050, DHT22, BMP085, RFID, CC3000 Wifi) and wanted to see how much information I can display at once in 'realtime'.
    I'm also sending the sensordata via MQTT to collect it.
    I don't have a specific project in mind, I'm just looking for viable IoT solutions.

    One idea would be a smart heatbed module for 3D printers which will automatically pre-heat and regulate the heat based on the MES information and the order management.

  • Post a reply
    • Bold
    • Italics
    • Link
    • Image
    • List
    • Quote
    • code
    • Preview
About

SSD1306 Connection troubles

Posted by Avatar for JackJamesHoward @JackJamesHoward

Actions