It seems if I set the i2c rate to 100Khz this works.
ispybadguys
@ispybadguys
Posts made by ispybadguys
-
A fatal error occurred: Failed to connect to ESP32: Wrong boot mode detected (0x17)! The chip needs to be in download mode.
My M5STACK CORE started behaving like this. It seems if I hit the power button just after the Arduino IDE starts the "connecting..." dialog then it will upload. This is kind of a pain because the device is in another building and I am remoted in.
Any Ideas?
-
#defines for different M5STACK Controllers
What are the various defined values that identify the various M5STACK controllers. I would like to automatically change the SDL,SCK.
-
RE: M5Stack Paper I2C Doesn't work
Yes. That looks to be the case that it crashed after one or two Wire1 commands. Usually one period is printed but sometimes two. Also the internal I2C does not work is I call M5.begin but it does if I just call Wire.begin.
-
RE: M5Stack Paper I2C Doesn't work
Felix
Yes. I just tried that. I get the same behavior. I moved the script to a new Windows computer and installed the IDE there. I get
13:10:21.290 -> I2C Scan - Port A
13:10:21.290 -> .M5EPD initializing...OK
13:10:25.790 -> I2C Scan - Port AI can actually scan the internal ports correctly if I don't call M5.begin(); and I just do a Serial.begin() and the wire commands.
BTW the boards.txt has an error in it for the M5-Paper and you cannot upload code from the Arduino IDE. I fixed that and I can upload ok now.
Kurt
-
RE: M5Stack Paper I2C Doesn't work
Felix
Thanks for the code . For scanning the I2C. The code produces the following output:
M5EPD initializing...OK
I2C Scan - internal
.M5EPD initializing...OK
I2C Scan - internal
.M5EPD initializing...OK
I2C Scan - internal
.M5EPD initializing...OK -
RE: M5Stack Paper I2C Doesn't work
Yes. I tested the very code you have here with just to include and M5.begin() and I get M5EPD initializing... followed by a 4 second pause and then the OK
-
RE: M5Stack Paper I2C Doesn't work
If I comment out the internal I2C section so I only have the PORT-A scan I get the following:
Scanning external I2C (PortA)
..............................................................................................................................Done Scanning PortA I2CIt takes about one second for each address scanned. This is probably the default timeout.
Kurt
-
RE: M5Stack Paper I2C Doesn't work
Thanks. I'll try that. When I call M5.begin(); I get the following behavior.
M5EPD initializing...OK
M5EPD initializing...OK
M5EPD initializing...OK
M5EPD initializing...OK
M5EPD initializing...OK
M5EPD initializing...OK
M5EPD initializing...OK
M5EPD initializing...OK
M5EPD initializing...OK
M5EPD initializing...OK
M5EPD initializing...OK
M5EPD initializing...OK
M5EPD initializing...OK
M5EPD initializing...OK
M5EPD initializing...OK
M5EPD initializing...OK
M5EPD initializing...OKcontinues forever.
-
M5Stack Paper I2C Doesn't work
I am trying to use the Paper and I can't get any of the ports to work. The code I am using in below. One strange thing in this code is if I comment out M5.begin() I see the internal i2C devices but if I include it I don't see any devices.
#include <M5EPD.h>
// I2C (internal) - SDA: 21, SCL: 22
// I2C (external - Port A) - SDA: 25, SCL: 32#define PortA_SDA 25 // Port A
#define PortA_SCL 32#define PortB_SDA 26 // Port B
#define PortB_SCL 33#define PortC_SDA 18 // Port C
#define PortC_SCL 19#define INTERNAL_SDA 21
#define INTERNAL_SCL 22void setup()
{
// M5.begin();
Serial.begin(115200);Wire.begin(INTERNAL_SDA, INTERNAL_SCL);
}void loop()
{
int address;
int error;/********** Internal ********/
Serial.println("Scanning internal I2C");
for(address = 1; address < 127; address++)
{
Wire.beginTransmission(address);
error = Wire.endTransmission();
if(error == 0)
{
Serial.printf("Internal Device Found %#04x\n",address);
}
delay(10);
}
Serial.println("Done Scanning internal I2C");
delay(500);/********** PortA ********/
Serial.println("Scanning external I2C (PortA)");
Wire1.begin(PortA_SDA, PortA_SCL);
for(address = 1; address < 127; address++)
{
Wire1.beginTransmission(address);
error = Wire1.endTransmission();
if(error == 0)
{
Serial.printf("PORT-A Device Found %#04x\n",address);
} else Serial.print("."); //Serial.printf("No Device Found PORT-A %#04x\n",address);
delay(10);
}
Serial.println("Done Scanning PortA I2C");
delay(500);/********** PortB ********/
Serial.println("Scanning external I2C (PortB)");
// M5.begin();
Wire1.begin(PortB_SDA, PortB_SCL);
for(address = 1; address < 127; address++)
{
Wire1.beginTransmission(address);
error = Wire1.endTransmission();
if(error == 0)
{
Serial.printf("PORT-B Device Found %#04x\n",address);
} else Serial.print("."); //Serial.printf("No Device Found PORT-B %#04x\n",address);
delay(10);
}
Serial.println("Done Scanning PortB I2C");
delay(500);/********** PortC ********/
Serial.println("Scanning external I2C (PortC)");
// M5.begin();
Wire1.begin(PortC_SDA, PortC_SCL);
for(address = 1; address < 127; address++)
{
Wire1.beginTransmission(address);
error = Wire1.endTransmission();
if(error == 0)
{
Serial.printf("PORT-C Device Found %#04x\n",address);
} else Serial.print("."); //Serial.printf("No Device Found PORT-C %#04x\n",address);
delay(10);
}
delay(5000);
}