← AXS-023

Circuit review & bench-test guide

AXS-023 — VL53L1X time-of-flight ranger PMOD module

Design-stage — board not yet fabricated

Document purpose#

Component-level explanation and bench-test plan for axs-023-vl53l1x, from generate_design.py, the module README.md, and the ST VL53L1X datasheet. Never fabricated; values are verification targets.

1. What the board does#

A laser time-of-flight distance sensor (to ~4 m) on I2C, with an interrupt (GPIO1) and shutdown (XSHUT) line brought to the PMOD. It teaches a rich I2C register model plus interrupt-driven ranging, and XSHUT enables address reassignment for multi-sensor buses.

PMOD J1  SCL/SDA (3/4, JP1/JP2 pull-ups) ─> U1 VL53L1X
         XSHUT (2, 10k PU) ; GPIO1 INT (1, 10k PU + 100R)

2. Safety and scope boundaries#

4. Interfaces#

5. Component-by-component review#

6. Datasheet summary (VL53L1X)#

7. Expected values before bench testing#

8. Manual review checklist#

9. Ordered bench-test procedure#

A. Unpowered: verify pull-ups, XSHUT/INT networks, reservoir cap; no rail short.

B. Power, idle: 3.3 V (~40 mA). Bus idle-high; XSHUT reads high (enabled).

C. Alive check: I2C scan → ACK 0x29; read model-ID reg 0x010F → 0xEACC. If this fails, stop and recheck power/XSHUT.

D. XSHUT: drive XSHUT low; confirm the device drops off the bus (no ACK); release; confirm it returns. This is the multi-sensor address-reassignment primitive.

E. First ranging: load config, set short distance mode, start ranging; present a flat target at a measured 100/200/500 mm; confirm reported distance within a few % and that GPIO1 asserts per measurement, releasing after the interrupt-clear.

F. Range envelope: sweep to ~1–2 m; note degradation with a dark/oblique target and under bright ambient light (expected physics).

10. Troubleshooting map#

11. Bench record template#

Board: axs-023  ACK 0x29: [ ]  Model ID: 0x____ (exp EACC)
XSHUT drop/return: [ ]
Distance @100/200/500mm: ____/____/____ mm
GPIO1 asserts + clears: [ ]
Notes:

12. Review conclusion#

The 0x010F→0xEACC read is the fast go/no-go. The two module-specific hardware details worth confirming are the VCSEL reservoir (or readings get noisy) and the XSHUT drop/return behavior (the basis for multi-sensor address assignment). Keep the optical window clear — it's the one thing layout can ruin.