Skip to content

K151 StackChan: LTR553, INA226, and ST25R3916 do not ACK on expected I2C bus #77

@xuruiray

Description

@xuruiray

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions