Summary
We are building a local ESP-IDF firmware for StackChan and tried to expose all documented onboard/body sensors in a local WebUI. Several components that appear to be documented for the StackChan/CoreS3 hardware do not ACK on the expected I2C bus in our unit.
Hardware / firmware context
- Device: StackChan / CoreS3 based unit
- Firmware: custom ESP-IDF firmware derived from the StackChan/XiaoZhi codebase
- I2C bus used by our firmware: GPIO11 = SCL, GPIO12 = SDA
- PY32 IO expander is detected at
0x6F and works for VM_EN/RGB related control
- BMI270/BMM150 via BMI270 AUX works and returns real IMU/magnetometer data
- Camera, IMU, touch/head touch, RGB, servos, mic, RTC, battery, Wi-Fi/BLE work in our local firmware
Devices that do not respond
The following devices never ACK or return valid data in our tests:
- LTR553 proximity / ambient light sensor at
0x23
- INA226 power monitor at
0x41
- ST25R3916 NFC reader at
0x50
What we tried
We verified the main initialization path before probing the peripherals:
- AXP2101 init runs before probing:
- register
0x90 written to 0xBF
- register
0x94 written to decimal 28 (33 - 5) for the 3.3V rail configuration used by the existing firmware
- PY32 init and VM_EN path:
- PY32 version can be read at
0x6F
- pin 0 / IO1 configured as output
- pull-up enabled
- output set HIGH through the PY32 GPIO output register
- Added staged I2C diagnostics at these points:
after_board_init_axp2101
after_py32_begin
after_py32_vm_en
peripheral_probe_start
peripheral_probe_done
- Added active register-based probes:
- PY32: read version register
0x02
- LTR553: read PART_ID register
0x86
- INA226: read config register
0x00
- ST25R3916: minimal write/ping transaction
Observed result from our diagnostics:
after_board_init_axp2101: no target devices
after_py32_begin: 0x6F only
after_py32_vm_en: 0x6F only
peripheral_probe_start: 0x6F only
peripheral_probe_done: 0x6F only
So after the PY32 is initialized and VM_EN is set, the only detected target device is still 0x6F. 0x23, 0x41, and 0x50 are not visible.
Questions
Could you confirm whether these parts are populated and accessible on all StackChan K151/K151-R hardware revisions?
Are LTR553, INA226, or ST25R3916 behind any additional power-enable line, reset line, firmware gate, mux, or alternate I2C bus/address that is not obvious from the public docs/BSP examples?
Specific questions:
- Is LTR553 actually present on the CoreS3 module shipped with StackChan, and should it respond at
0x23 after CoreS3 AXP2101 initialization?
- Does INA226 require any body-side power path beyond PY32 IO1 / VM_EN?
- Does ST25R3916 require an enable/reset sequence before it will ACK on I2C?
We would be happy to test a suggested probe sequence or provide more logs if useful.
Summary
We are building a local ESP-IDF firmware for StackChan and tried to expose all documented onboard/body sensors in a local WebUI. Several components that appear to be documented for the StackChan/CoreS3 hardware do not ACK on the expected I2C bus in our unit.
Hardware / firmware context
0x6Fand works for VM_EN/RGB related controlDevices that do not respond
The following devices never ACK or return valid data in our tests:
0x230x410x50What we tried
We verified the main initialization path before probing the peripherals:
0x90written to0xBF0x94written to decimal28(33 - 5) for the 3.3V rail configuration used by the existing firmware0x6Fafter_board_init_axp2101after_py32_beginafter_py32_vm_enperipheral_probe_startperipheral_probe_done0x020x860x00Observed result from our diagnostics:
So after the PY32 is initialized and VM_EN is set, the only detected target device is still
0x6F.0x23,0x41, and0x50are not visible.Questions
Could you confirm whether these parts are populated and accessible on all StackChan K151/K151-R hardware revisions?
Are LTR553, INA226, or ST25R3916 behind any additional power-enable line, reset line, firmware gate, mux, or alternate I2C bus/address that is not obvious from the public docs/BSP examples?
Specific questions:
0x23after CoreS3 AXP2101 initialization?We would be happy to test a suggested probe sequence or provide more logs if useful.