OSError: I2C bus error(19)



  • Today suddenly stoped working I2C devices on port A.
    After coding session (Wave file playing from SD, developed on c++), I flashed (M5Burner updated to 2.3.0) the UIFlow 1.7.5core2 with well debuged UI application with ENV2 and SGP30 sensors connected through GROVE HUB. At first I got "ENV2 unit not found" while it was connected. Reconnection and cable exchange gave nothing. Core2 did not see ENV2 sensor plugged in PortA through GROVE Hub or Directly.
    Could somebody give any suggestions?



  • I measured voltage on 5V line on I2C PortA and found that it is 0. Is it possible to turn it off\on programmatically on it is a DCDC malfunction? (It is strange, Core 2 only 3 months old)



  • Hello @xxxa0c

    yes, it is possible to turn it on/off programmatically.

    UIFlow: Hardwares - Power - Set bus power mode Disable/Enable M-Bus 5V output

    Arduino: last parameter of M5.begin()

    void begin(bool LCDEnable = true, bool SDEnable = true, bool SerialEnable = true, bool I2CEnable = false, mbus_mode_t mode = kMBusModeOutput);
    

    Thanks
    Felix

    P.S. I believe it should be on by default though.



  • GREAT THANKS, Felix! Obviously I turned I2C off during I2S programming session. After I had included the UIblock, that you specified, my sensors and I2C returned to life.



  • Hello @xxxa0c

    you are welcome. Glad to hear you got it working again. And thank you for reporting back.

    Cheers
    Felix