Im trying to get a SSH1106 display running on I2C with the PoE ISO board.
I have it working with IDF 4 on a plain ESP32 WROOM, but with the PoE ISO board, the ethernet fails when the display is initialised.
The display is detected on the i2c bus.
#define MYSDA_PIN 3
#define MYSCL_PIN 4
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- 3c -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
conf.mode = I2C_MODE_MASTER;
conf.sda_io_num = MYSDA_PIN;
conf.scl_io_num = MYSCL_PIN;
conf.sda_pullup_en = GPIO_PULLUP_ENABLE;
conf.scl_pullup_en = GPIO_PULLUP_ENABLE;
conf.master.clk_speed = 100000;
i2c_param_config(I2C_NUM_0, &conf);
i2c_driver_install(I2C_NUM_0, I2C_MODE_MASTER, 0, 0, 0);
ESP_LOGI(TAG, "Starting display");
sh1106_128x64_i2c_init();
ssd1306_fillScreen(0x00);
ssd1306_setFixedFont(ssd1306xled_font5x7 );
The green and amber leds are on for a couple of seconds, and then they go off for a couple of seconds.
False alarm. It was an error 40. The library for the display was using fixed SDA and SCL pins, and once i overruled those, the display worked fine.