[SOLVED] How to charge M5StickC and M5StickC Plus (beyond 3.7V)?

  • Hey folks,

    I'm having a bit of an issue here. I have both a M5StickC and a M5StickC Plus and I wrote a simple little Arduino program that displays both the battery voltage and also the percentage charged.
    My problem: they don't charge to more than 3.7V. I would like them to be topped off at 4.2V

    I tried:

    • charging with my PC (5V/0.5A) / charging with my phone charger (5V/3A)
    • charging while turned off / charging while turned on
      Nothing seems to do anything.

    In all the above cases, I'm charging it via USB-C. If I'm supposed to charge it via the pins, let me know, haven't tried that yet

    Any help appreciated,

    EDIT: The problem was that I didn't read the voltage correctly. I was using M5.Axp.GetVbatData() / 1000.0 and that's off by a factor 1.1. The correct way to read the battery voltage is M5.Axp.GetBatVoltage().

  • Hello @sloflo

    charging the battery via USB-C is the preferred way.

    When you say they are stuck at 3.7 V, is that the value your Arduino program displays or is that the value you measured between GND and BAT pin?


  • Danke @felmue ,

    Your answer pointed me in the right direction.
    The voltage between GND and BAT pins was indeed 4.0V+, so I went back to check my code.

    I noticed that the official documentation for the AXP on the M5StickC only mentions M5.Axp.GetVbatData() (which is what I used and what gave me weird readings) but the AXP code example uses M5.Axp.GetBatVoltage() and the latter actually gives me the correct number.

    What's the difference between these two? Is it just the *1.1/1000?