We are using the M5 Stack with ESP-IDF. We have a CoreS3, Battery module and a CatM module.
After running in the field for a while. some device are not coming online anymore.
We tried resetting the device on location without success.
The only way to properly reset the functionality is to unmount the battery and remount is (Making sure no power is going to the M5Stack.)
We can also not fix the device be rewriting firmware.
It turns out the power chip (Axp2101) isn't responding properly anymore. When we send command to it, it doesn't seem to work. (Sending 0x01 to 0x10 should power off the device, this doesn't happen).
It's not a I2C problem, we can succesfully contact the RTC and the IMU on the same bus.
We can write new firmware and flash it and the problem still occusrs, i can run some tests to get to the bottom of it.
We've compared registers in the AXP2101 from a good sample and a bad sample.
register |
good sample |
bad sample |
0x00 |
0x38 |
0x30 |
0x01 |
0x32 |
0x4E |
0x03 |
0x4A |
0x0C |
0x04 |
0x00 |
0x78 |
0x05 |
0x00 |
0x7E |
0x06 |
0x00 |
0xED |
0x07 |
0x00 |
0xF9 |
0x10 |
0x30 |
0x64 |
0x12 |
0x00 |
0x8D |
0x13 |
0x03 |
0x73 |
0x14 |
0x65 |
0x7E |
0x15 |
0x06 |
0x95 |
0x16 |
0x04 |
0xE3 |
0x17 |
0x00 |
0x0E |
0x18 |
0x0A |
0x70 |
0x19 |
0x06 |
0xF4 |
0x1A |
0xA1 |
0x00 |
0x20 |
0x04 |
0x00 |
0x21 |
0x20 |
0x00 |
0x23 |
0x3F |
0x00 |
0x24 |
0x00 |
0x00 |
0x25 |
0x18 |
0x00 |
0x26 |
0x08 |
0x00 |
0x27 |
0x00 |
0x00 |
0x28 |
0x00 |
0x00 |
0x29 |
0x00 |
0x00 |
0x2A |
0x00 |
0x00 |
0x2B |
0x00 |
0x00 |
0x30 |
0x0F |
0x00 |
0x34 |
0x0C |
0x00 |
0x35 |
0xD8 |
0x00 |
0x36 |
0x81 |
0x00 |
0x37 |
0xF8 |
0x00 |
0x38 |
0x13 |
0x00 |
0x39 |
0x62 |
0x00 |
0x3A |
0x0E |
0x00 |
0x3B |
0x80 |
0x00 |
0x3C |
0x00 |
0x00 |
0x3D |
0x00 |
0x00 |
0x40 |
0xFF |
0x00 |
0x41 |
0xFC |
0x00 |
0x42 |
0x5F |
0x00 |
0x48 |
0x50 |
0x00 |
0x49 |
0xA3 |
0x00 |
0x4A |
0x28 |
0x00 |
0x50 |
0x1A |
0x00 |
0x52 |
0x02 |
0x00 |
0x53 |
0x01 |
0x00 |
0x54 |
0x29 |
0x00 |
0x55 |
0x58 |
0x00 |
0x56 |
0x3E |
0x00 |
0x57 |
0x4C |
0x00 |
0x58 |
0x00 |
0x00 |
0x59 |
0x14 |
0x00 |
0x5A |
0x37 |
0x00 |
0x5B |
0x1E |
0x00 |
0x61 |
0x05 |
0x00 |
0x62 |
0x08 |
0x00 |
0x63 |
0x15 |
0x00 |
0x64 |
0x03 |
0x00 |
0x65 |
0x02 |
0x00 |
0x67 |
0xE6 |
0x00 |
0x68 |
0x01 |
0x00 |
0x69 |
0x11 |
0x00 |
0x6A |
0x03 |
0x00 |
0x80 |
0x05 |
0x00 |
0x81 |
0x00 |
0x00 |
0x82 |
0x12 |
0x00 |
0x83 |
0x46 |
0x00 |
0x84 |
0x69 |
0x00 |
0x85 |
0x64 |
0x00 |
0x86 |
0x00 |
0x00 |
0x90 |
0xBF |
0x00 |
0x91 |
0x00 |
0x00 |
0x92 |
0x0D |
0x00 |
0x93 |
0x1C |
0x00 |
0x94 |
0x1C |
0x00 |
0x95 |
0x1C |
0x00 |
0x96 |
0x00 |
0x00 |
0x97 |
0x00 |
0x00 |
0x98 |
0x0E |
0x00 |
0x99 |
0x18 |
0x00 |
0x9A |
0x00 |
0x00 |
0xA1 |
0xFA |
0x00 |
0xA2 |
0x00 |
0x00 |
0xA3 |
0x32 |
0x00 |
What could cause this behaviour?
How can it be resolved (using software preferably)