M5Stack Paper I2C Doesn't work
-
@ispybadguys What external devices have you tried connecting?
-
Hello @ispybadguys
are you saying that simply calling
M5.begin()
insetup()
, e.g.#include <M5EPD.h> void setup() { M5.begin(); } void loop() { }
produces
M5EPD initializing...OK
over and over again?Thanks
Felix -
Hello @ispybadguys
please find the I2C internal and all port scanner (which works for me) here.
Thanks
Felix -
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
-
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 -
Hello @ispybadguys
that is very weird - I am stumped.
Have you tried to only scan the ports by commenting these two lines:
// Serial.println("I2C Scan - internal"); // scanI2C(i2cBus_Internal.wire, i2cBus_Internal.sda, i2cBus_Internal.scl);
BTW: I also get a 4 seconds delay before
OK
is printed out - so that should be fine.Thanks
Felix -
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
-
Hello @ispybadguys
the debug output suggests that as soon as the I2C port scan starts (first dot) your M5Paper seems to reboot.
- Have you tried a different / shorter USB cable? Maybe the issue is power related?
- Does the touch example (requires internal I2C) work?
Thanks
Felix -
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.
-
I'm having exactly the same issue. Have you figured out what causes it?
-
@Koiru I have not found a solution but I have found a workaround.
The culprit creating the constant reboots are the touchscreen, if I call the begin function without enabling the touchscreen I can get the unit to work instead of doing constant reboots.
To initialize the unit without touchscreen, use the following arguments:
M5.begin(false, true, true, true, true);