Hi all!
Hi all! I am having trouble configuring my daisy seed board to work with an OLED I2c ssd1306 display. I looked at the OLED seed example and changed the configuration part as follows, but I couldn’t print anything on the screen:
For the rest of the code, I left it unchanged. I also tried to change the speed to 400kHz and 1MHz but still couldn’t print anything. I also checked if the screen was broken but with an Arduino, it works perfectly.
Regarding connections:
-GND pin is connected to daisy DGND
-VCC to daisy 3V3 Digital
-SCL to daisy pin 12
-SDA to daisy pin 13
-Two 4k7 external resistors connect pin 12 and pin 13 to 3V3 Digital.
I also checked with DSO the SDA and SCL lines and I can clearly see activity there.
Do you have any idea? Thank you a lot to anyone who will answer me!
UPDATE:
I finally found the solution. I will write it here to avoid other people to experience the same situation.
The problem was that I was changing I2C_address to “0x78”, instead of leaving the default value of “0x3C”. I did that because 0x78 is the address written behind my OLED screen. I can’t understand why, but leaving the address to default 0x3C works fine.
Hey! I’ve been looking to add an OLED screen to my Daisy Seed and found this post. I can’t find much documentation on how to do this and I’m somewhat newish to all this so I was wondering if you could help point me in the right direction. There’s a lot already here that’s really helpful but is there some documentation for all of this that you could direct me to? Thanks!
Hi @sknight. There is an “OLED” example for the seed platform. As far as I understood, you have to change the line using MyOledDisplay = OledDisplay<SSD130x4WireSpi128x64Driver>; by putting the type of display you are using (SPI/I2C and pixel format). You can see the options in the “oled_display.h” file. Then, you have to change the lines disp_cfg.driver_config.transport_config.pin_config.dc = hw.GetPin(9); disp_cfg.driver_config.transport_config.pin_config.reset = hw.GetPin(30); according to the pins you wish to use (pay attention that if you want to use I2C you have to configure different pins, not dc/reset, but scl/sda).
Hope I can help you Let me know if you need further help!
VCC is connected to 3V3Digital, GND to AGND and DGND, SCL to physical pin 12 on the Daisy and SDA to physical pin 13.
When I run the code below, random pixels are lit and nothing changes when I try to output different messages in a loop as in the Seed OLED example. I have also tried adding 4k7 resistors from 12 and 13 to 3V3 though it from the Daisy Seed schematics appears that they are already there.
Am I missing something? Any help is much appreciated!
Hi @tore,
honestly your code seems fine.
The only difference I can notice with respect to my code is that you are missing the display.Update() call.
Another thing you can try is to use directly a char buffer and including “string.h” as in the OLED example, instead of std::string.
Also, try to check if the cables you are using are not broken (sometimes it can happen )
Let me know if this solves your problem.
BTW, if somebody else have the DfRobot 128x32 OLED and have trouble getting text written to 0,0 to align left, modifying the Update() method in oled_ssd130x.h as follows did the trick for me:
Can anybody confirm if this still works? I’m trying to get this working with the Adafruit 128x64 display and it powers on but the screen remains black. Same code and wiring setup as the OP (using the 0x3C address). Using Seed Rev4 board. Tested the OLED with an arduino and it works fine.
Thanks for the quick reply! Yes I’m using the 4.7k resistors. I’ve tried using the regular pins and the Stemma QT connection with the same result. Here’s a photo of the setup and the code I’m using.
Yes.
I don’t know this module myself but had some look at the documents at Adafruit. I would measure Voltage at the 3V3 pad of the module against it’s GND pad. Sometimes these breadboards give insufficient contact and solder joints can give trouble too. Perhaps it is needed to supply 5V to the VIn pad of the module.