Skip to content

Commit 336cf87

Browse files
committed
Add VL53L8CH driver and relative examples
1 parent 213029a commit 336cf87

24 files changed

+29279
-1
lines changed
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
name: VL53L8CH Continuous Integration
2+
on:
3+
push:
4+
branches:
5+
- main
6+
paths-ignore:
7+
- '*'
8+
- '**.md'
9+
- '**.txt'
10+
pull_request:
11+
paths-ignore:
12+
- '*'
13+
- '**.md'
14+
- '**.txt'
15+
jobs:
16+
astyle_check:
17+
runs-on: ubuntu-latest
18+
name: AStyle check
19+
steps:
20+
# First of all, clone the repo using the checkout action.
21+
- name: Checkout
22+
uses: actions/checkout@main
23+
24+
- name: Astyle check
25+
id: Astyle
26+
uses: stm32duino/actions/astyle-check@main
27+
28+
# Use the output from the `Astyle` step
29+
- name: Astyle Errors
30+
if: failure()
31+
run: |
32+
cat ${{ steps.Astyle.outputs.astyle-result }}
33+
exit 1
34+
codespell:
35+
name: Check for spelling errors
36+
runs-on: ubuntu-latest
37+
steps:
38+
- name: Checkout
39+
uses: actions/checkout@main
40+
41+
# See: https://github.com/codespell-project/actions-codespell/blob/master/README.md
42+
- name: Spell check
43+
uses: codespell-project/actions-codespell@master
44+
with:
45+
check_filenames: true
46+
check_hidden: true
47+
lib_build:
48+
runs-on: ubuntu-latest
49+
name: Library compilation
50+
steps:
51+
52+
# First of all, clone the repo using the checkout action.
53+
- name: Checkout
54+
uses: actions/checkout@main
55+
56+
- name: Compilation
57+
id: compile
58+
uses: stm32duino/actions/compile-examples@main
59+
with:
60+
board-pattern: "NUCLEO_L476RG"
61+
62+
# Use the output from the `Compilation` step
63+
- name: Compilation Errors
64+
if: failure()
65+
run: |
66+
cat ${{ steps.compile.outputs.compile-result }}
67+
exit 1

README.md

Lines changed: 60 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,61 @@
11
# VL53L8CH
2-
Arduino library to support the VL53L8CH artificial intelligence enabler, high performance 8x8 multizone Time-of-Flight (ToF) sensor
2+
Arduino library to support the VL53L8CH Time-of-Flight 8x8 multizone ranging sensor with wide field view.
3+
4+
## API
5+
6+
This sensor uses I2C/SPI to communicate. And I2C/SPI instance is required to access to the sensor.
7+
The APIs provide simple distance measure and multizone detection in both polling and interrupt modes.
8+
The APIs derive from VL53LMZ ULD SDK v1.7.0.
9+
10+
## Examples
11+
12+
The examples contained in this library are based on VL53L8CH-SATEL sensor board.
13+
14+
You need to connect the VL53L8CH-SATEL sensor board directly to the Nucleo board with wires as explained below in the case of I2C communication:
15+
- pin 1 (SPI_I2C_n) of the VL53L8CH satellite connected to pin GND of the Nucleo board
16+
- pin 2 (LPn) of the VL53L8CH satellite connected to pin A3 of the Nucleo board
17+
- pin 3 (NCS) not connected
18+
- pin 4 (MISO) not connected
19+
- pin 5 (MOSI_SDA) of the VL53L8CH satellite connected to pin D14 (SDA) of the Nucleo board
20+
- pin 6 (MCLK_SCL) of the VL53L8CH satellite connected to pin D15 (SCL) of the Nucleo board
21+
- pin 7 (PWREN) of the VL53L8CH satellite connected to pin D11 of the Nucleo board
22+
- pin 8 (I0VDD) of the VL53L8CH satellite not connected
23+
- pin 9 (3V3) of the VL53L8CH satellite connected to 3V3 of the Nucleo board
24+
- pin 10 (1V8) of the VL53L8CH satellite not connected
25+
- pin 11 (5V) of the VL53L8CH satellite not connected
26+
- GPIO1 of VL53L8CH satellite connected to A2 pin of the Nucleo board (not used)
27+
- GND of the VL53L8CH satellite connected to GND of the Nucleo board
28+
29+
You need to connect the VL53L8CH-SATEL sensor board directly to the Nucleo board with wires as explained below in the case of SPI communication:
30+
- pin 1 (SPI_I2C_n) of the VL53L8CH satellite connected to 3V3 of the Nucleo board
31+
- pin 2 (LPn) of the VL53L8CH satellite connected to 3V3 of the Nucleo board
32+
- pin 3 (NCS) of the VL53L8CH satellite connected to pin D10 of the Nucleo board
33+
- pin 4 (MISO) of the VL53L8CH satellite connected to pin D5 of the Nucleo board
34+
- pin 5 (MOSI_SDA) of the VL53L8CH satellite connected to pin D4 (MOSI) of the Nucleo board
35+
- pin 6 (MCLK_SCL) of the VL53L8CH satellite connected to pin D3 (MCLK_SCL) of the Nucleo board
36+
- pin 7 (PWREN) of the VL53L8CH satellite connected to pin D11 of the Nucleo board
37+
- pin 8 (I0VDD) of the VL53L8CH satellite not connected
38+
- pin 9 (3V3) of the VL53L8CH satellite connected to 3V3 of the Nucleo board
39+
- pin 10 (1V8) of the VL53L8CH satellite not connected
40+
- pin 11 (5V) of the VL53L8CH satellite not connected
41+
- GPIO1 of VL53L8CH satellite connected to A2 pin of the Nucleo board (not used)
42+
- GND of the VL53L8CH satellite connected to GND of the Nucleo board
43+
44+
There are 3 examples with the VL53L8CH library:
45+
46+
* VL53L8CH_Sat_HelloWorld_I2C: This example code is to show how to get multizone detection and proximity
47+
values of the VL53L8CH satellite sensor in polling mode using I2C communication.
48+
49+
* VL53L8CH_Sat_HelloWorld_SPI: This example code is to show how to get multizone detection and proximity
50+
values of the VL53L8CH satellite sensor in polling mode using SPI communication.
51+
52+
* VL53L8CH_ThresholdsDetection: This example code is to show how to configure the thresholds detection of the VL53L8CH satellite sensor.
53+
54+
55+
## Documentation
56+
57+
You can find the source files at
58+
https://github.com/stm32duino/VL53L8CH
59+
60+
The VL53L8CH datasheet is available at
61+
https://www.st.com/en/imaging-and-photonics-solutions/VL53L8CH.html

0 commit comments

Comments
 (0)