Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Software i2c #93

Open
GigiG62 opened this issue Jul 12, 2022 · 4 comments
Open

Software i2c #93

GigiG62 opened this issue Jul 12, 2022 · 4 comments

Comments

@GigiG62
Copy link

GigiG62 commented Jul 12, 2022

Hi, is it possible to initiate the oled.begin on pins different from the hardware i2c pins? I'm trying to use the library on a ESP32-Cam

@greiman
Copy link
Owner

greiman commented Jul 12, 2022

Looks like the default I2C pins are used internally on ESP32-Cam. You can select alternate pins with bool begin(int sda=-1, int scl=-1, uint32_t frequency=0); .

Try changing this:

SSD1306AsciiWire oled;

void setup() {
  Wire.begin();
  Wire.setClock(400000L);

To:

SSD1306AsciiWire oled;

// select your pin choice here
#define I2C_SDA 14
#define I2C_SCL 15

void setup() {
  Wire.begin(I2C_SDA , I2C_SCL , 400000L);

The ESP32 has two I2C ports.

You can use the second port like this

SSD1306AsciiWire oled(Wire1);

// select your pin choice here
#define I2C_SDA 14
#define I2C_SCL 15

void setup() {
  Wire1.begin(I2C_SDA , I2C_SCL , 400000L);

I compiled the above but didn't test them on an ESP32. Let me know if this works. Its been years since I used an alternate port.

@GigiG62
Copy link
Author

GigiG62 commented Jul 13, 2022

It works just fine! Thanks Bill. For my project, the ESP32-Cam pins are all used (Camera, SD and two external sensors) so I set the only two remaining free pins, RX and TX (1 and 3 on ESP32), as SDA and SCL. After uploading the firmware to the board, they can be used as I2C pins. Thanks again.

@GigiG62
Copy link
Author

GigiG62 commented Jul 16, 2022

Is it possible to use a 128x128 OLED like this?

@greiman
Copy link
Owner

greiman commented Jul 16, 2022

No the SD1306 controller only supports up to 128x64.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants