M5stack basic core battery power on issue (ip5306 strange power management)
I have few M5stack basic core modules and on a couple of modules I have a crazy behaviour with power management
I power M5stack via external battery (3.7v LiPo) so connecting it on the expansion bus via GND and Battery pin (pin 1-3-5 and 30) using a custom made expansion board
If I power the core via USB C connectors it powers on regularly and the battery is charged via IP5306 chip
If I disconnect the USB C after the battery is charged the core stay ON and if I press the power button once I can do reset and reboot the core
so this gives me the idea that the battery connection via expansion bus is OK (it charges and it provides 3.7v to BAT pin of ip5306)
than if I power off with double click of the power button there is no way to power on again ! It seems like the IP5306 does not weak up and start the circuit
Notice that I have same behaviour with the origina bottom that contains the small battery so this exclude a problem with my custom board
Than suspecting some issue on my proto board bus connection I have inserted in the middle a original M5 FAN module..that is basically a passive pass trough module with FAN connected to 5V
And magically now I can power on and off regularly the core!
Just to have a final proof I keep the fan module in the middle and disconnect the fan (so reducing the overall l load) and again if I shut down the core no way to power on again
Since all the power management is done by ip5306 chip (no bootloader sw nor application SW is involved) really don't understand what is wrong and why only on few cores are affected
Could be a faulty ip5306 ?
any suggestion to recover may cores is appreciated
ajb2k3 last edited by
@arzaman This is really interesting behaviour, thanks for going through the trouble of testing, logging and sharing your findings.
I am starting to see a few faults appearing with the IP5306 but it is random, my own works fine 99% of the time.
I have the fan and official board and see if I can replicate this for my own knowledge.
What does the white label next to the cores battery connector say (the top unit)?
yes indeed lot of test and attempts...but really a crazy behaviour !
it's random inside the lot of 10 M5stack core I have but on that one is systematic
I have excluded battery (I have around 4v on the expansion bus pin 30 and GND) and same behaviour with origina bottom
I have excluded the bus connection since it happens also with fan module in the middle that i use just to have a pass trough connector
not sure what label do your refer to , here picture of the core
tomorrow I will post some video of this effect but I agree with you ip5306 is definitely not a great choice for power management and for such a nice piece of HW battery application are perfect !
ajb2k3 last edited by
The little white label I mentioned is the date stamp (2018.3)
Mine is 2017.6 and I don't have the issue but the black component between the chip and sdcard slot above the date stamp is gray on my model.
Here is a video showing the problem
when I shut down the M5stack basic core no chance to boot again
any idea so far ?
@arzaman How about BASIC Core boots only with Type-C USB cable without BASIC bottom?
@m5-docs sorry but don't understand the question
with USB Type C off course the M5 basic core boots regularly...the problem is with the battery power suppy either basic bottom or my custom expansion baord. If I shut down the M5 basic core with double clik and battery power no chance to restart
Seems like the battery enters into protection mode after power off. Could you please try to pull out the battery in the bottom and plug in back in to restart the battery and try again.
@liushasha battery has no "protection" circuit ...all is manged by IP5306
anyway removed and reconnected the LiPo battery (or the core bottom) few times and always same behaviour
and more over same battery on other M5stack basic core works perfeclty
HI, @arzaman, this IP5306 is i2c version, it can be programmed via the i2c protocol. Since the only problem is just the shutdown operation. the chance that the ic is totally broken on the hardware side is pretty rare. so could it be possible that you have accidentally modified the code? Would you please refresh the firmware by M5burner to exclude the software problem? Thanks
@liushasha maybe you refer to a different Core version (fire ??)
My M5stack BASIC core comes with IP5306 that has no I2C interface to ESP32 (should be very very useful to have and move power management to SW level)
here the schematic (or at lease what is public) of the power management...now SW no I2C
so I assume a "faulty" core (I have two in a lot of 12)
This schematic is wrong, every core is used i2c ip5306.
2 out of 12? that's pretty high rate. I thought its 1 out of ten. I from M5Stack by the way. I will help you target the problem, and handle it afterward. I apologized for the bad experience.
Hello @arzaman, In order to confirm that if the IP5306 is IIC version on all CORE you have. It's better to download the following testing code.
This schematic is wrong, every core is used i2c ip5306.
Really ? I don't know if this is a good or a very bad news...
having IP5306 with I2C and enable SW control of power management is nice but knowing that the official schematic where I have based the design of my custom HW and development of SW is not the real one really puzzle me !
this is the official schema on github
Is there an updated one ? are there other differences ??
I know that M5Stack is not "open source" but without a real schema quite difficult to mange any HW/FW development
@m5-docs Thanks for the suggestion... and you are right my core has I2C version of IP5306 ! Sorry if I miss it
The bus scan found the IP5306 at address 0x75
I upload a simple sketch to monito battery level and it works
this is good but still don't solve my problem
-if I power m5 core with USB all ok
-if I disconnect USB using core bottom battery the core stays on and I can do reset with power on again
-if I power off (double click) no change to power on again
anything now that I can modify in IP5306 register to fix the power on ?
@arzaman Really sorry about that. I do not clearly know your problem.
"-if I disconnect USB using core bottom battery the core stays on and I can do reset with power on again
-if I power off (double click) no change to power on again"
@arzaman I apologize for the misleading on schematics, it is surely our mistake, we didn't well organize all of the material. We are working on it, will have better material come out soon.
@m5-docs I think we can conclude that is and "HW failure of IP5306" no big issue I can use this core for the lab or for application with no battery
maybe if you can send me a replacement or tell me where to buy the I2C version of IP5306 I can try to replace by myself
thanks for the support anyway
@arzaman The IP5306 which is iic version is customized. The best way for you is to ask saler for a replacement or ask our saler for a new core or iic version IP5306. Sorry for the inconvenience !
@liushasha no problem...I had an old schema and did not check the note you add to the new one. Your documentation level is quite good and indeed If there is a problem I see there is quite good support on the forum and community ... in a way or another I get the info :-)
most important that now I have more understanding of power management and the fact I can control battery via SW is very important (M5stack is perfect for portable applications battery pwered)
could be VERY USEFUL a sort of translation of IP5306 Chinese data sheet
there are few register that provide info but not able to unerstand the usage !!
from various source I undertand that
0x78 provides battery level (25/50/75/100)
0x71 battery charging level (but not sure)
what about the other registers ? what about control register ??
simple table with register and functions/value will help a lot "non Chinese" speaking people
hope to see soon in the documentation !