M5stack wont turn on on Battery.

  • power.ischarging() returns Ture
    power.getbatterylevel() returns 100
    Voltages (disconnected from USB, Device OFF since it wont turn on)
    GND & BAT is 4.05V
    GND & 3V3 is 0V
    GND & 5V is 0V

    When i press the on button it most of the time does not turn on. In about 1 in 50 tries it turns on but turns off when i press any button.

    FW UIflow 1.7.1-en

  • Hello @UmbraAtrox

    sorry to hear about your troubles. When you manage to turn on your unit running from battery, could you please measure the three voltages again? Maybe this gives us a hint about what's broken.


  • I think i found the issue. when the Batteryboard isn't plugged in all the way(0.5 - 1 mm gap) it works . so i assume the Mbus connector has a bad connection. This device is about 2 weeks old. Bought on aliexpress but i do not know if the seller is you since i went with the first one search returned. "EC-Buying Ali Store"

    Device Off Battery working state
    GND & BAT is 3.97V
    GND & 3V3 is 0V
    GND & 5V is 0V

    Device ON battery powered
    GND & BAT is 3.97V
    GND & 3V3 is 3.3V
    GND & 5V is 5V

  • Hello @UmbraAtrox

    the voltages look correct - thank you for posting them.

    I guess you'll need to contact the seller and ask for a replacement.


  • I think it's faster to just replace the mbus connector to a fullsize one if there is a smd version. Especially since aliexpress declined my dispute, not turning on seems to be not broken enough.

  • I had the same issue with my brand new m5 FIRE. While browsing the option in UIFlow I stumbled upon the Hardware -> Power -> setCharge() function. In UIFlow Python this is power.setCharge(). Regardless of the parameter (true or false) this badly messes up the power state of m5 FIRE. Currently I am running UIFlow v1.9.0-fire but the issue was also there in the v1.8.x series.

    After using setCharge() the m5 will not power on while on battery. It will only power on when powered over USB. Disconnecting the USB cable powers it off. Very unfortunate state to be in.

    I was finally able to restore the desired state (turn off by press power button twice, turn on again with power button) using Arduino IDE with these statements:

    M5.Power.setPowerBoostOnOff(false); //Change the power on / off method. The power does not turn off when connected via USB. true=Press and hold to turn on / off. false=Turn on / off with two short presses.
    M5.Power.setPowerBoostSet(false); //Change the power on / off method true=ON / OFF in one short press. false=same as above
    M5.Power.setPowerVin(true); //When the power supply from USB etc. is cut off, Decide whether to turn on the power again.
    M5.Power.setPowerBtnEn(true); //Set whether to accept the power button.
    M5.Power.setPowerBoostKeepOn(false); //Always output power. True= Always output power. False=not Always output power.
    M5.Power.setAutoBootOnLoad(true); //Set whether to automatically start when power consumption occurs

    Strangely enough using M5.Power.setCharge() in Arduino IDE does not cause any issues at all. It seems to me that the UIFlow setCharge() function is broken for m5 FIRE boards.