AXP192 power management IC issues

I have a TTGO TBeam that quit working a couple of days ago. So I did some probing around with my voltmeter and noticed that the 5v header hole did not have 5v on it when it was connected to a USB power supply. So I thought, I wonder what would happen if I put 5V on it. Sure enough it started working but only when I apply power to the 5v header hole and GND to the GND header hole. After looking at the schematic I discovered there is an IC on the board called the AXP192 that is a PROGRAMMABLE power management IC. Has anyone ever had issues with that IC losing its memory or is there a way to reprogram it assuming the device is still intact? I also noticed when 5V is applied to the header the Power button will turn the unit on and off but ONLY when 5V is applied at the header holes. I am assuming that the power button is wired to a GPIO on the AXP192 and it controls the power to the ESP32 and LoRa device, right?
Thanks for any advice.
Kendall

Try probing both sides of the board at the 5v hole.

Check these out OLED problem on T-beam boards

@Havealoha, Thanks for sharing that other thread. The schematics reference there are useful. I don’t think this is the same issue. I believe they are talking about the I2C bus being shorted cause communication between the IC to stop. When I supply 5v to the header holes the all the devices seem to be talking on the I2C bus. In fact i connected to the serial port using putty and captured this data of the serial log.

H00:00:00 0 booted, wake cause 0 (boot count 1), reset_reason=reset
00:00:00 0 Filesystem files:
00:00:00 0 /static/app.js
00:00:00 0 /db.proto
00:00:00 0 /static/index.html
00:00:00 0 /static/app.css
00:00:00 0 /static/meshtastic.js.gz
00:00:00 0 /static/basic.js
00:00:00 0 I2C device found at address 0x34
00:00:00 0 axp192 PMU found
00:00:00 0 I2C device found at address 0x3c
00:00:00 0 ssd1306 display found
00:00:00 0 done
00:00:00 0 Meshtastic swver=1.1.50, hwver=1.0-US
00:00:00 0 Setting random seed 2220192771
00:00:00 0 Total heap: 253776
00:00:00 0 Free heap: 220876
00:00:00 0 Total PSRAM: 4194252
00:00:00 0 Free PSRAM: 4194252
00:00:00 0 NVS: UsedEntries 252, FreeEntries 378, AllEntries 630
00:00:00 0 Setting default preferences!
00:00:00 0 Expanding short PSK #1
00:00:00 0 Installing AES128 key!
00:00:00 0 Wanted region 0, using Unset
00:00:00 0 Initial packet id 140364432, numPacketId 4294967295
00:00:00 0 Loading saved preferences
00:00:00 0 Loaded saved preferences version 11
00:00:00 0 Expanding short PSK #1
00:00:00 0 Installing AES128 key!
00:00:00 0 Wanted region 1, using US
00:00:00 0 legacy_region=1.0-US, region=1, NODENUM=0x50c2a48, dbsize=2
chip id detect 0x3
Detect CHIP :AXP192
OUTPUT Register 0x5f
00:00:00 0 AXP192 Begin PASS
00:00:00 0 DCDC1: ENABLE
00:00:00 0 DCDC2: ENABLE
00:00:00 0 LDO2: ENABLE
00:00:00 0 LDO3: ENABLE
00:00:00 0 DCDC3: ENABLE
00:00:00 0 Exten: ENABLE
00:00:00 0 ----------------------------------------

This looks like the AXP192 is functional. I just don’t understand why the Tbeam wont boot up under battery power OR USB power. It only works when i apply p
ower to the header holes. I think the OLED is also on the same I2C bus and it works too.

this was also in the log
00:12:43 763 [Power] Battery: usbPower=1, isCharging=0, batMv=0, batPct=0
which i assume is a PMU status update being read by the ESP32 from the AXP192 over the I2C bus.

HI! I am facing the same issue. I desoldered de oled just in case. But it is the same situation. Looks like axp192 is unable to notice if battery is inserted or not.
In fact in other sketches, it says tha axp is already in master mode. idk if it related or not.
Thanks

Likely burned it out when desoldering the ground pin, uses the same -I2C port

The behavior is the same as when the oled was solldered. I don think it is burned.
The tbeam is working, the only thing is that it wont boot with the battery neither if i unplug usb with the battery full charged.
It is like the axp192 is bloking the battery from working.

Does it detect the axp in the serial log? The chip does all the power management.

This is the logs of one uploaded program from github but it does the same on others.
Device boots in master mode and i’m actually studying on how to change this and make it go on slave mode… Any help??

[main.cpp:24] setup(): [src/main.cpp] hzgl-lorawan-communicator is starting up
00:50:49.500 > [ 482][I][power_management.cpp:38] power_setup(): [src/power_management.cpp] setting up power manage�ent
00:50:49.633 > [ 554][I][power_management.cpp:415] power_set_cpu_freq_mhz(): [src/power_management.cpp] setting CPU frequency to 80 MHz
00:50:49.767 > [ 683][I][esp32-hal-i2c.c:75] i2cInit(): Initialising I2C Master: sda=21 scl=22 freq=400000
00:50:49.900 > [ 810][I][power_management.cpp:103] power_setup(): [src/power_management.cpp] power management is ready
00:50:50.033 > [ 893][I][lorawan.cpp:131] lorawan_setup(): [src/lorawan.cpp] setting up lorawan
00:50:50.033 > [ 1018][I][lorawan.cpp:47] lorawan_handle_message(): [src/lorawan.cpp] joined network
00:50:50.167 > [ 1073][I][lorawan.cpp:183] lorawan_reset(): [src/lorawan.cpp] finished resetting LoRaWAN
00:50:50.300 > [ 1168][I][lorawan.cpp:137] lorawan_setup(): [src/lorawan.cpp] lorawan is ready
00:50:50.300 > [ 1254][I][env_sensor.cpp:17] env_sensor_setup(): [src/env_sensor.cpp] setting up sensors
00:50:50.433 > [ 1350][W][Wire.cpp:301] begin(): Bus already started in Master Mode.
00:50:50.567 > [ 1425][W][env_sensor.cpp:22] env_sensor_setup(): [src/env_sensor.cpp] failed to initialise BME280 sensor
00:50:50.567 > [ 1537][I][env_sensor.cpp:26] env_sensor_setup(): [src/env_sensor.cpp] sensors are ready
00:50:50.700 > [ 1632][I][supervisor.cpp:39] supervisor_setup(): [src/supervisor.cpp] setting up supervisor
00:50:50.833 > [ 1731][I][supervisor.cpp:45] supervisor_setup(): [src/supervisor.cpp] wake-up reason is undefined
00:50:50.967 > [ 1840][E][Wire.cpp:499] requestFrom(): i2cWriteReadNonStop returned Error -1
00:50:50.967 > [ 1920][E][Wire.cpp:499] requestFrom(): i2cWriteReadNonStop returned Error -1
00:50:51.100 > [ 2003][E][Wire.cpp:499] requestFrom(): i2cWriteReadNonStop returned Error -1
00:50:51.233 > [ 2086][E][Wire.cpp:499] requestFrom(): i2cWriteReadNonStop returned Error -1
00:50:51.233 > [ 2170][E][Wire.cpp:499] requestFrom(): i2cWriteReadNonStop returned Error -1
00:50:51.367 > [ 2253][E][Wire.cpp:499] requestFrom(): i2cWriteReadNonStop returned Error -1
00:50:51.367 > [ 2336][E][Wire.cpp:499] requestFrom(): i2cWriteReadNonStop returned Error -1
00:50:51.500 > [ 2420][I][env_sensor.cpp:55] env_sensor_read_decode(): [src/env_sensor.cpp] just took a round of readings
00:50:51.633 > [ 2544][I][oled.cpp:377] oled_on(): [src/oled.cpp] initialising OLED
00:50:51.633 > [ 2622][I][oled.cpp:389] oled_on(): [src/oled.cpp] turning on OLED
00:50:51.767 > [ 2699][I][power_management.cpp:383] power_log_status(): [src/power_management.cpp] mode: 19905, wifi? 0, bt? 0, gps? 0, oled? 1, is_batt_charging: 0, is_usb_power_available: 1, usb_millivolt: 5006, batt_millivolt: 4504, batt_milliamp: -0.00, power_draw_milliamp: 83.62
00:50:52.033 > [ 2979][I][supervisor.cpp:109] supervisor_check_task_stack(): [src/supervisor.cpp] heap usage: free - 107KB, min.free - 107KB, capacity - 236KB, maxalloc: 83KB, min.free stack: 15KB
00:50:52.300 > [ 3191][I][supervisor.cpp:95] supervisor_setup(): [src/supervisor.cpp] supervisor has successfully started all essential tasks
00:50:52.433 > [ 3288][I][main.cpp:31] setup(): [src/main.cpp] setup completed
00:50:52.433 > [ 3190][I][gps.cpp:45] gps_on(): [src/gps.cpp] demand NMEA output: 1
00:50:52.924 > [ 4038][E][Wire.cpp:499] requestFrom(): i2cWriteReadNonStop returned Error -1
00:50:53.058 > [ 4039][E][Wire.cpp:499] requestFrom(): i2cWriteReadNonStop returned Error -1
00:50:53.191 > [ 4070][E][Wire.cpp:499] requestFrom(): i2cWriteReadNonStop returned Error -1
00:50:53.191 > [ 4154][E][Wire.cpp:499] requestFrom(): i2cWriteReadNonStop returned Error -1
00:50:53.324 > [ 4237][E][Wire.cpp:499] requestFrom(): i2cWriteReadNonStop returned Error -1
00:50:53.458 > [ 4320][E][Wire.cpp:499] requestFrom(): i2cWriteReadNonStop returned Error -1
00:50:53.458 > [ 4404][E][Wire.cpp:499] requestFrom(): i2cWriteReadNonStop returned Error -1
00:50:53.591 > [ 4506][I][env_sensor.cpp:55] env_sensor_read_decode(): [src/env_sensor.cpp] just took a round of readings
00:50:53.659 > [ 3897][I][gps.cpp:55] gps_on(): [src/gps.cpp] enable GGA: 1, enable ZDA: 1, enable RMC: 1
00:50:54.433 > [ 5547][I][lorawan.cpp:398] lorawan_transceive(): [src/lorawan.cpp] last timestamp: 0, interval sec: 60
00:50:54.567 > [ 5548][I][lorawan.cpp:262] lorawan_prepare_uplink_transmission(): [src/lorawan.cpp] going to transmit status and sensor info in 29 bytes
00:50:54.700 > [ 5674][I][lorawan.cpp:120] onEvent(): [src/lorawan.cpp] start transmitting a 29 bytes message
00:50:54.834 > [ 5772][I][lorawan.cpp:66] lorawan_handle_message(): [src/lorawan.cpp] idling before upcoming TX/RX
00:50:54.964 > [ 4773][I][gps.cpp:56] gps_on(): [src/gps.cpp] save config: 0