I have not touched my ESPs since a few months and I'm going back to them...
It seems that a sketch that was working some time ago does not work any more. The sketch should scan I2C and display the addresses of the sensors found (based on a well known sketch) . I am using it since years without issue, but here ...
Here are the elements
- the sketch works on an Arduino UNO with same HTU21D and ports
- I'm using Arduino IDE 1.8.19, all libraries are up to date
- I'm very comfortable with the I2C device, it is a HTU21D (i used also a BMP280) . I test it each time on an Arduino UNO (I always restart from the UNO when troubleshooting)
- same with cables
- I tried several Wemos mini D1 or Nodemcu V3 without success (it works on UNO)
- I tried to change clock
- I tried with different pins (ie : D5 D6)
- i'm using 3.3V without any resistor
Here is the code
I'm working on this since 3 days, one time it worked but retrying with same combination some hours after it was not working any more. Strange no ?
// works OK on an Arduino UNO
// does not work on Nodemcu V3 or Wemos D1 Mini
#define PINI2C_SDA D2 // pin for I2C SDA GPIO4/D2/4
#define PINI2C_SCL D1 // pin for I2C SCL GPIO5/D1/5
Serial.println(__FILE__); // when i use an ESP after a long time gives an indication of what it is
Serial.print("SDA Port :");
Serial.println(PIN_WIRE_SDA); // Just to be sure , this is a variable i found in wire.cpp
Serial.print("SCL Port :");
byte error, address;
nDevices = 0;
for(address = 1; address < 127; address++ )
// The i2c_scanner uses the return value of
// the Write.endTransmisstion to see if
// a device did acknowledge to the address.
error = Wire.endTransmission();
if (error == 0)
Serial.print("I2C device found at address 0x");
else if (error==4)
Serial.print("Unknown error at address 0x");
if (nDevices == 0)
Serial.println("No I2C devices found\n");
delay(5000); // wait 5 seconds for next scan
What i get is "No I2C devices found"
Any bright idea is more than welcome !!!