Sensor modules
AXS-023 — VL53L1X time-of-flight ranger PMOD module
Catalog #23, level L3 (I2C, interrupt-driven).
Circuit review & bench-test guide →
Components#
Every placed component, with the reason it is on the board. Extracted directly from the schematic, so this cannot drift from the design.
| Ref | Value | What it does on this board | Part number | Footprint |
|---|---|---|---|---|
C1 |
100nF 16V X7R | AVDD decoupling | GRM188R71C104KA01DMurata |
C_0603_1608Metric |
C2 |
4.7uF 10V X5R | VCSEL pulse-current reservoir | GRM21BR61A475KA73LMurata |
C_0805_2012Metric |
J1 |
PMOD PLUG 2x6 | PMOD peripheral plug (Digilent spec 1.2) | not selected generic |
PinHeader_2x06_P2.54mm_Horizontal |
JP1 |
SDA PULL-UP | Cut to remove the SDA pull-up when chaining modules | — | SolderJumper-2_P1.3mm_Bridged_RoundedPad1.0x1.5mm |
JP2 |
SCL PULL-UP | Cut to remove the SCL pull-up when chaining modules | — | SolderJumper-2_P1.3mm_Bridged_RoundedPad1.0x1.5mm |
R1 |
4.7k | I2C SDA pull-up | RC0603FR-074K7LYageo Datasheet ↗ |
R_0603_1608Metric |
R2 |
4.7k | I2C SCL pull-up | RC0603FR-074K7LYageo Datasheet ↗ |
R_0603_1608Metric |
R3 |
10k | XSHUT pull-up: sensor enabled unless the host drives it low | RC0603FR-0710KLYageo Datasheet ↗ |
R_0603_1608Metric |
R4 |
10k | GPIO1 open-drain interrupt pull-up | RC0603FR-0710KLYageo Datasheet ↗ |
R_0603_1608Metric |
R5 |
100R | Series protection on the sensor-driven interrupt line | RC0603FR-07100RLYageo Datasheet ↗ |
R_0603_1608Metric |
U1 |
VL53L1CXV0FY1 | Time-of-flight ranging sensor, 4 m, 940 nm VCSEL | VL53L1CXV0FY/1STMicroelectronics Datasheet ↗ |
ST_VL53L1x |
Signals#
Net labels used in the schematic, which are also the names the HDL top level should use.
3V3 GND SCL SCL_PU SDA SDA_PU TOF_INT TOF_INT_RAW XSHUT
Production status#
| Schematic ERC | 0 violations |
|---|---|
| PCB layout | complete |
| DRC | 0 violations |
| Fab package | exported (24 gerbers + drill + CPL + BOM) |
| Fabricated | no — design stage only |
Source: boards/sensor-modules/axs-023-vl53l1x
Catalog #23 (../README.md), level L3 (I2C, interrupt-driven).
Status: schematic generated, ERC clean (0/0), netlist reviewed. PCB layout not started. Not released.
What it teaches#
A rich I2C register model (timing budgets, ROI, distance modes) plus interrupt-driven design: program a threshold, wait for GPIO1 instead of polling. XSHUT enables address reassignment for multi-sensor buses.
Design#
- ST VL53L1X run at 3.3 V (rated 2.6–3.5 V), address 0x29.
- GPIO1 is open-drain: 10 kΩ pull-up on-module, 100 Ω series to PMOD 1.
- XSHUT on PMOD 2 with a 10 kΩ pull-up (sensor enabled by default).
- 4.7 µF reservoir for VCSEL current pulses next to 100 nF decoupling.
- PMOD Type 6 extended: 1 INT, 2 XSHUT, 3 SCL, 4 SDA, 9/10 bus repeat.
Regenerate / remaining#
python3 generate_design.py — then PCB layout (keep the optical aperture clear), HDL, BOM check, review checklist.