-->
Page 1 of 2

ESP12-E and I2C not working correctly.

PostPosted: Sat Aug 04, 2018 8:29 am
by DCRaiDaN
Hi everyone,

I'm using an ESP12-E module with an I2C device (H3LIS331DL). I hooked everything up and used the I2C scanner code, which you can see here:
Code: Select all#include <Wire.h>
 
void setup()
{
  Wire.begin(19,20);
  Serial.begin(9600);
  Serial.println("\nI2C Scanner");
}
 
 
void loop()
{
  byte error, address;
  int nDevices;
 
  Serial.println("Scanning...");
 
  nDevices = 0;
  for(address = 1; address < 127; address++ )
  {
 
    Wire.beginTransmission(address);
    error = Wire.endTransmission();
 
    if (error == 0)
    {
      Serial.print("I2C device found at address 0x");
      if (address<16)
        Serial.print("0");
      Serial.print(address,HEX);
      Serial.println("  !");
 
      nDevices++;
    }
    else if (error==4)
    {
      Serial.print("Unknow error at address 0x");
      if (address<16)
        Serial.print("0");
      Serial.println(address,HEX);
    }   
  }
  if (nDevices == 0)
    Serial.println("No I2C devices found\n");
  else
    Serial.println("done\n");
 
  delay(5000);           // wait 5 seconds for next scan
}


It basically just scans for I2C devices in your lane and if it found something you'll get a message. Anyway when I upload it onto my board I get this error instead.
Error.PNG


The reason I used
Code: Select allWire.begin(19,20);
is because according to the datasheet of the ESP12-E
https://www.kloppenborg.net/images/blog/esp8266/esp8266-esp12e-specs.pdf the pins on SDA and SCL are 19 and 20. If I leave it blank it wont work. I actually get the message "No I2C device found" on the serial monitor.
I also tried to solder a wire bridge from GPIO 4 to GPIO 2 and GPIO 5 to GPIO 14 and changed the arguments of Wire.begin accordingly. Because the datasheet on page 12 said that its using that I2C lane. Unfortunately that didnt help either. I get the same error as in
Code: Select allWire.begin(19,20);


I also attached a picture of how I wired everything up.
I2C Lane2.PNG


I also checked that the Wire.h library supports ESP8266 boards.

These are my Arduino IDE settings:
  • Windows 10 64bit
  • Arduino IDE 1.8.5
  • NodeMCU1.0(ESP12-E)
  • Flash Size: 4M
  • CPU Frequency: 80Mhz
  • Upload Speed: 115200

I also tried changing upload speed and choosing another ESP8266 board. But I keep getting the same error.
At this point I dont know if it's a hardware issue or a software issue.
I hope I didnt forget to mention anything important.

Any help would be appreciated :-)

Thanks in advance. :-)

Re: ESP12-E and I2C not working correctly.

PostPosted: Thu Aug 09, 2018 3:45 am
by DCRaiDaN
Damn my post took 4 days to approve xD

Anyway. I figured it out.

It was just a setting in the Arduino IDE I had to change.

Re: ESP12-E and I2C not working correctly.

PostPosted: Thu Aug 09, 2018 5:23 am
by schufti
you can't use physical pin# by default.
The numbers expected are the gpio"X" numbers.
Depending on the board setting, they default to 0,2 or 4,5.
And be also aware that for NodeMcu boards the printed numbers are not the gpio!

Re: ESP12-E and I2C not working correctly.

PostPosted: Tue Sep 04, 2018 1:46 pm
by lumberingwit
@DCRaiDaN
What setting in the Arduino IDE did you need to change?

Thanks