component
VL53L0X
Public Unreviewedby adom
ST time-of-flight ranging sensor, LGA-12. 940 nm VCSEL, up to 2 m, I2C. True distance, ambient-immune. Datasheet-verified.
← Commit history
Publish 0.1.0
8 files changed
+751−9
README.md+53−2@@ -1,5 +1,56 @@ # VL53L0X -Time-of-flight distance sensor, I2C, up to 2m range+**STMicroelectronics** · Time-of-flight distance sensor · LGA-12 -The VL53L0X is a time-of-flight (ToF) laser-ranging sensor from STMicroelectronics. Measures distances up to 2m with I2C interface. Uses a 940nm VCSEL laser for accurate distance measurement in compact form.+A miniature time-of-flight (ToF) laser-ranging sensor in a 4.4 x 2.4 mm LGA-12, the smallest of its kind when ST introduced it. It fires an invisible 940 nm VCSEL and times the photons returning from a target, so unlike an infrared-intensity sensor it reports absolute distance (up to about 2 m) regardless of target color or reflectance, and it stays immune to ambient light. The host reads range over I2C; an XSHUT pin powers it down (and lets several share a bus by re-addressing), and a GPIO1 pin signals data-ready or threshold interrupts. It suits proximity detection, gesture, robotics obstacle sensing, and autofocus. Runs 2.6-3.5 V.++## Pinout++| Pin | Name | Type | Function |+|---|---|---|---|+| 1 | AVDDVCSEL | power_in | VCSEL supply rail. Connect to the main supply (2.6 to 3.5 V) and decouple as close as possible to the pin. Tied to AVDD in the reference application. |+| 2 | AVSSVCSEL | power_in | VCSEL ground return. Connect to the main ground plane; may be tied to the other ground pins in the application schematic. |+| 3 | GND | power_in | Module ground; connect to the main ground plane. |+| 4 | GND2 | power_in | Standard pin forced to the ground domain in the application schematic to avoid instabilities. Connect to the main ground. |+| 5 | XSHUT | input | Hardware shutdown / reset input, active low. Must always be driven to avoid leakage; a ~10 kΩ pull-up to IOVDD is recommended if the host state is unknown. XSHUT is required to enter hardware standby (no I²C activity in that state). |+| 6 | GND3 | power_in | Standard pin forced to the ground domain in the application schematic. Connect to the main ground. |+| 7 | GPIO1 | output | Programmable interrupt output, open-drain. Requires an external pull-up (recommended 10 kΩ to IOVDD). Leave unconnected if unused. |+| 8 | DNC | unconnected | Do-not-connect. Must be left floating in the application; not a general-purpose pin despite being labelled 'Digital input' in the datasheet. |+| 9 | SDA | bidirectional | I²C serial data line (fast mode, up to 400 kHz). Open-drain; requires an external pull-up (typically 1.5-2 kΩ to IOVDD at 2.8 V / 400 kHz). Default 7-bit device address is 0x52 (programmable). |+| 10 | SCL | input | I²C serial clock input (fast mode, up to 400 kHz). Requires an external pull-up to IOVDD (typically 1.5-2 kΩ). |+| 11 | AVDD | power_in | Main analog supply, 2.6 to 3.5 V. Decouple with 100 nF and 4.7 µF placed as close as possible to AVDDVCSEL and AVSSVCSEL. |+| 12 | GND4 | power_in | Standard pin forced to the ground domain in the application schematic. Connect to the main ground. |++## Key specifications++| Parameter | Value |+|---|---|+| Type | Time-of-flight distance sensor |+| Emitter | 940 nm VCSEL (invisible) |+| Range | up to ~2 m |+| Measurement | absolute distance (ambient-immune) |+| Interface | I2C + XSHUT + GPIO1 interrupt |+| Field of view | 25° |+| Supply voltage | 2.6-3.5 V |+| Package | LGA-12 (4.4 x 2.4 mm) |++## Ordering variants++- `VL53L0CXV0DH/1 (LGA-12)`+- `VL53L0X-SATEL (breakout)`++## CAD (KiCad official)++- Symbol: `Sensor_Distance:VL53L0CXV0DH1`+- Footprint: `Sensor_Distance:ST_VL53L1x`+- 3D model: ST VL53 LGA-12 (KiCad packages3D)++## Provenance++Data extracted from the manufacturer datasheet, not a distributor listing:++- **Datasheet:** [STMicroelectronics datasheet](https://www.st.com/resource/en/datasheet/vl53l0x.pdf) (38 pp, sha256 `f0ae51414474d311`, retrieved 2026-08-17, tier: manufacturer)+- **Extractor:** `ds2sf` (Claude). Every pin and dimension is cited to a datasheet page; it refuses to fabricate.+- **CAD:** KiCad official libraries (CC-BY-SA 4.0).++[Datasheet PDF](docs/vl53l0x-datasheet.pdf)
docs/hero.pngadded⋯ 1 unchanged line ⋯
docs/vl53l0x-datasheet.pdfadded⋯ 1 unchanged line ⋯
package.jsonadded+32@@ -0,0 +1,32 @@+{+ "slug": "vl53l0x",+ "version": "0.1.0",+ "type": "component",+ "description": "ST time-of-flight ranging sensor, LGA-12. 940 nm VCSEL, up to 2 m, I2C. True distance, ambient-immune. Datasheet-verified.",+ "tags": [+ "component",+ "sensor",+ "time-of-flight",+ "distance",+ "lidar",+ "i2c",+ "lga-12",+ "stmicroelectronics"+ ],+ "dependencies": {},+ "hero": {+ "type": "image",+ "path": "docs/hero.png"+ },+ "files": [+ "page.json",+ "README.md",+ "vl53l0x.kicad_sym",+ "vl53l0x.kicad_mod",+ "vl53l0x.glb",+ "docs/hero.png",+ "docs/vl53l0x-datasheet.pdf",+ "viewers/symbol.html",+ "viewers/footprint.html"+ ]+}
page.json+29−7@@ -4,8 +4,17 @@ "slug": "vl53l0x", "title": "VL53L0X", "brief": "Time-of-flight distance sensor, I2C, up to 2m range",- "version": "1.0.0",- "tags": [],+ "version": "0.1.0",+ "tags": [+ "component",+ "sensor",+ "time-of-flight",+ "distance",+ "lidar",+ "i2c",+ "lga-12",+ "stmicroelectronics"+ ], "license": "MIT", "component": { "mpn": "VL53L0X",@@ -20,18 +29,31 @@ }, "readme": "# VL53L0X\n\nTime-of-flight distance sensor, I2C, up to 2m range\n\nThe VL53L0X is a time-of-flight (ToF) laser-ranging sensor from STMicroelectronics. Measures distances up to 2m with I2C interface. Uses a 940nm VCSEL laser for accurate distance measurement in compact form.", "author": {- "id": "695820315b5f1e4db2fcf602", "name": "Kyle Bergstedt", "email": "[email protected]" },- "visibility": {- "public": true+ "visibility": "public",+ "hero": {+ "type": "image",+ "path": "docs/hero.png" },- "hero": null, "sample_prompts": [], "discovery_triggers": [], "discovery_pitch": null, "metadata": {}, "created_at": "2026-05-28T05:34:27.571Z",- "updated_at": "2026-05-28T05:34:27.571Z"+ "updated_at": "2026-05-28T05:34:27.571Z",+ "description": "ST time-of-flight ranging sensor, LGA-12. 940 nm VCSEL, up to 2 m, I2C. True distance, ambient-immune. Datasheet-verified.",+ "dependencies": {},+ "files": [+ "page.json",+ "README.md",+ "vl53l0x.kicad_sym",+ "vl53l0x.kicad_mod",+ "vl53l0x.glb",+ "docs/hero.png",+ "docs/vl53l0x-datasheet.pdf",+ "viewers/symbol.html",+ "viewers/footprint.html"+ ] }
vl53l0x.glbadded⋯ 1 unchanged line ⋯
vl53l0x.kicad_modadded+314@@ -0,0 +1,314 @@+(footprint "ST_VL53L1x"+ (version 20260206)+ (generator "pcbnew")+ (generator_version "10.0")+ (layer "F.Cu")+ (descr "VL53L1x distance sensor")+ (tags "VL53L1CXV0FY1 VL53L1x")+ (property "Reference" "REF**"+ (at 0 -2.2 0)+ (layer "F.SilkS")+ (uuid "e418f629-54af-40ea-b004-b7a811254f03")+ (effects+ (font+ (size 1 1)+ (thickness 0.15)+ )+ )+ )+ (property "Value" "ST_VL53L1x"+ (at 0 2.3 0)+ (layer "F.Fab")+ (uuid "b420be3d-d210-4d09-b41b-7bf89b8b26cd")+ (effects+ (font+ (size 1 1)+ (thickness 0.15)+ )+ )+ )+ (property "Datasheet" ""+ (at 0 0 0)+ (unlocked yes)+ (layer "F.Fab")+ (hide yes)+ (uuid "6b73dc37-91d4-4a7c-902a-898e45d5708b")+ (effects+ (font+ (size 1.27 1.27)+ (thickness 0.15)+ )+ )+ )+ (property "Description" ""+ (at 0 0 0)+ (unlocked yes)+ (layer "F.Fab")+ (hide yes)+ (uuid "6cf9d8e2-943b-4dc5-877f-bb096e39314c")+ (effects+ (font+ (size 1.27 1.27)+ (thickness 0.15)+ )+ )+ )+ (attr smd)+ (duplicate_pad_numbers_are_jumpers no)+ (fp_line+ (start -2.55 -1.05)+ (end -2.55 1.35)+ (stroke+ (width 0.12)+ (type solid)+ )+ (layer "F.SilkS")+ (uuid "503ff131-0c0d-4208-9a4f-c7e324ecb12d")+ )+ (fp_line+ (start -2.55 1.35)+ (end 2.55 1.35)+ (stroke+ (width 0.12)+ (type solid)+ )+ (layer "F.SilkS")+ (uuid "02ae78ee-e911-4cf3-a031-2bae2828b864")+ )+ (fp_line+ (start 2.55 -1.35)+ (end -2.25 -1.35)+ (stroke+ (width 0.12)+ (type solid)+ )+ (layer "F.SilkS")+ (uuid "eee06ea5-dc17-44c6-9c50-821cf34af2ed")+ )+ (fp_line+ (start 2.55 1.35)+ (end 2.55 -1.35)+ (stroke+ (width 0.12)+ (type solid)+ )+ (layer "F.SilkS")+ (uuid "8e718832-d792-4774-8c8f-93f278a8fa95")+ )+ (fp_poly+ (pts+ (xy -2.55 -1.35) (xy -2.83 -1.35) (xy -2.55 -1.63) (xy -2.55 -1.35)+ )+ (stroke+ (width 0.12)+ (type solid)+ )+ (fill yes)+ (layer "F.SilkS")+ (uuid "1a36f988-ee86-4787-add0-85983c63459f")+ )+ (fp_line+ (start -2.7 -1.5)+ (end -2.7 1.5)+ (stroke+ (width 0.05)+ (type solid)+ )+ (layer "F.CrtYd")+ (uuid "3c554e1d-bb69-4a9b-8d78-0fa80343acbe")+ )+ (fp_line+ (start -2.7 1.5)+ (end 2.7 1.5)+ (stroke+ (width 0.05)+ (type solid)+ )+ (layer "F.CrtYd")+ (uuid "492fef5c-faff-43e4-bbf1-759b1e7dd4d4")+ )+ (fp_line+ (start 2.7 -1.5)+ (end -2.7 -1.5)+ (stroke+ (width 0.05)+ (type solid)+ )+ (layer "F.CrtYd")+ (uuid "6f5c95ce-e116-4442-a54b-862e5405882d")+ )+ (fp_line+ (start 2.7 1.5)+ (end 2.7 -1.5)+ (stroke+ (width 0.05)+ (type solid)+ )+ (layer "F.CrtYd")+ (uuid "18f57afb-4316-466e-b25c-70d46052aeb6")+ )+ (fp_line+ (start -2.45 -0.75)+ (end -2.45 1.25)+ (stroke+ (width 0.1)+ (type solid)+ )+ (layer "F.Fab")+ (uuid "63833437-55ec-45b0-b7a0-7f937a0c8d16")+ )+ (fp_line+ (start -2.45 -0.75)+ (end -1.95 -1.25)+ (stroke+ (width 0.1)+ (type solid)+ )+ (layer "F.Fab")+ (uuid "17be0ac2-5f49-4ca1-99cf-9cb64c098b0f")+ )+ (fp_line+ (start -1.95 -1.25)+ (end 2.45 -1.25)+ (stroke+ (width 0.1)+ (type solid)+ )+ (layer "F.Fab")+ (uuid "ea70cf90-0c75-4145-9863-ab784383e12b")+ )+ (fp_line+ (start 2.45 -1.25)+ (end 2.45 1.25)+ (stroke+ (width 0.1)+ (type solid)+ )+ (layer "F.Fab")+ (uuid "22f002fb-35f4-401a-ad5d-22e2e520f721")+ )+ (fp_line+ (start 2.45 1.25)+ (end -2.45 1.25)+ (stroke+ (width 0.1)+ (type solid)+ )+ (layer "F.Fab")+ (uuid "283551ba-8f45-44d6-8b57-9a14bece3499")+ )+ (fp_text user "${REFERENCE}"+ (at 0 0 0)+ (layer "F.Fab")+ (uuid "0c1524fe-62e4-440b-8b34-eebb986ed431")+ (effects+ (font+ (size 1 1)+ (thickness 0.15)+ )+ )+ )+ (pad "1" smd roundrect+ (at -1.74 -0.675)+ (size 0.38 0.25)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ (uuid "54c304f8-4665-44f4-8a42-2d95a41bf9a9")+ )+ (pad "1" smd roundrect+ (at -1.6 -0.8)+ (size 0.5 0.5)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ (uuid "6d01d40f-a908-4050-bf7f-be86d516492d")+ )+ (pad "2" smd roundrect+ (at -0.8 -0.8)+ (size 0.5 0.5)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ (uuid "2295a37d-201c-4a22-966c-cf3aa89d93af")+ )+ (pad "3" smd roundrect+ (at 0 -0.8)+ (size 0.5 0.5)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ (uuid "af1aa8c8-a515-461a-8fd5-2817bd1a0afe")+ )+ (pad "4" smd roundrect+ (at 0.8 -0.8)+ (size 0.5 0.5)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ (uuid "e42439c9-e0b5-40b6-9928-e6655dd3633e")+ )+ (pad "5" smd roundrect+ (at 1.6 -0.8)+ (size 0.5 0.5)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ (uuid "f3447ff9-16cd-437e-a8d8-b427a121b153")+ )+ (pad "6" smd roundrect+ (at 1.6 0)+ (size 0.5 0.5)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ (uuid "a0b38d0d-2289-4021-8a2d-7121d72a7a85")+ )+ (pad "7" smd roundrect+ (at 1.6 0.8)+ (size 0.5 0.5)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ (uuid "5ed4d03f-a2a3-4026-8be5-a3ef86bf6e1b")+ )+ (pad "8" smd roundrect+ (at 0.8 0.8)+ (size 0.5 0.5)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ (uuid "530ab275-e1b9-4be6-bac0-bc63e5a4ec22")+ )+ (pad "9" smd roundrect+ (at 0 0.8)+ (size 0.5 0.5)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ (uuid "28f07c5f-9676-43aa-8c02-7c32e64f4bf8")+ )+ (pad "10" smd roundrect+ (at -0.8 0.8)+ (size 0.5 0.5)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ (uuid "c3119ccd-c3e9-4966-adb5-ff3cf10a3f32")+ )+ (pad "11" smd roundrect+ (at -1.6 0.8)+ (size 0.5 0.5)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ (uuid "f013454c-6399-4754-9081-c3448d280216")+ )+ (pad "12" smd roundrect+ (at -1.6 0)+ (size 0.5 0.5)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ (uuid "d2a8110f-8921-4597-b5f8-36dd0eea128c")+ )+ (embedded_fonts no)+ (model "${KICAD10_3DMODEL_DIR}/Sensor_Distance.3dshapes/ST_VL53L1x.step"+ (offset+ (xyz 0 0 0)+ )+ (scale+ (xyz 1 1 1)+ )+ (rotate+ (xyz 0 0 0)+ )+ )+)
vl53l0x.kicad_symadded+323@@ -0,0 +1,323 @@+(kicad_symbol_lib+ (version 20251024)+ (generator "kicad_symbol_editor")+ (generator_version "10.0")+(symbol "VL53L0CXV0DH1"+ (exclude_from_sim no)+ (in_bom yes)+ (on_board yes)+ (in_pos_files yes)+ (duplicate_pin_numbers_are_jumpers no)+ (property "Reference" "U"+ (at -6.35 13.97 0)+ (show_name no)+ (do_not_autoplace no)+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (property "Value" "VL53L0CXV0DH1"+ (at 12.065 13.97 0)+ (show_name no)+ (do_not_autoplace no)+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (property "Footprint" "Sensor_Distance:ST_VL53L1x"+ (at 17.145 -13.97 0)+ (show_name no)+ (do_not_autoplace no)+ (hide yes)+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (property "Datasheet" "https://www.st.com/resource/en/datasheet/vl53l1x.pdf"+ (at 2.54 0 0)+ (show_name no)+ (do_not_autoplace no)+ (hide yes)+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (property "Description" "4m distance ranging ToF sensor, Optical LGA12"+ (at 0 0 0)+ (show_name no)+ (do_not_autoplace no)+ (hide yes)+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (property "ki_keywords" "VL53L1x ToF"+ (at 0 0 0)+ (show_name no)+ (do_not_autoplace no)+ (hide yes)+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (property "ki_fp_filters" "ST*VL53L1x*"+ (at 0 0 0)+ (show_name no)+ (do_not_autoplace no)+ (hide yes)+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (symbol "VL53L0CXV0DH1_0_1"+ (rectangle+ (start -7.62 12.7)+ (end 7.62 -12.7)+ (stroke+ (width 0.254)+ (type default)+ )+ (fill+ (type background)+ )+ )+ )+ (symbol "VL53L0CXV0DH1_1_1"+ (pin power_in line+ (at 2.54 15.24 270)+ (length 2.54)+ (name "AVDDVCSEL"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "1"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin power_in line+ (at 2.54 -15.24 90)+ (length 2.54)+ (name "AVSSVCSEL"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "2"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin power_in line+ (at 0 -15.24 90)+ (length 2.54)+ (name "GND"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "3"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin passive line+ (at 0 -15.24 90)+ (length 2.54)+ (hide yes)+ (name "GND"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "4"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin input line+ (at -10.16 -7.62 0)+ (length 2.54)+ (name "XSHUT"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "5"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin passive line+ (at 0 -15.24 90)+ (length 2.54)+ (hide yes)+ (name "GND"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "6"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin open_collector line+ (at -10.16 5.08 0)+ (length 2.54)+ (name "GPIO1"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "7"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin no_connect line+ (at -7.62 7.62 0)+ (length 2.54)+ (hide yes)+ (name "DNC"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "8"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin bidirectional line+ (at -10.16 0 0)+ (length 2.54)+ (name "SDA"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "9"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin input line+ (at -10.16 -2.54 0)+ (length 2.54)+ (name "SCL"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "10"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin power_in line+ (at 0 15.24 270)+ (length 2.54)+ (name "AVDD"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "11"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin passive line+ (at 0 -15.24 90)+ (length 2.54)+ (hide yes)+ (name "GND"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "12"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ )+ (embedded_fonts no)+ )+)