cancel
Showing results for 
Search instead for 
Did you mean: 

use X-NUCLEO-53L0A1 satellites as proximity sensor

Alessandro Capezzera
Associate II

Posted on March 29, 2017 at 08:37

Hi, I'm new with stm32 and mbed environment. I'm trying to use VL53L0X satellites as proximity/distance sensor but I have few unsolved questions:

1)

in this datasheet I can see that only first six pin of satellites are used:

<LINK NO LONGER ACTIVE>

is right?

2)

is there an easy example on how to use it like this for hcsr04 arduino sensor:

<LINK NO LONGER ACTIVE>

?? (examples given by downloading his own software are little bit difficult based to my knowledge)

3) which pins i have to connect if I don't want putting this board on the stm32 board?

Thanks for the support

5 REPLIES 5
John Alexander_O
ST Employee
Posted on March 29, 2017 at 16:06

1) Only pins 1-6 are used on the satellite board. The pin mappings are :

Pin 1 - VL53L0X Interrupt pin.

Pin 2 - I2C SCL.

Pin 3 - VL53L0X XShutdown pin.

Pin 4 - I2C SDA.

Pin 5 - +3v3 input. VDD_Sensor.

Pin 6 - GND(Ground).

Pins 7-10 are unused & unconnected.

2) There is a simple 'hello world' application (HellowWorld_53L0A1), using the central, onboard VL53L0X sensor available at :

https://developer.mbed.org/components/X-NUCLEO-53L0A1/

There will be a library update and further example programs published next week (wk14, 2017.)

3) The X_Nucleo_53L0A1 expansion board uses the following pins to connect to each sensor :

CN5 Arduino Connector

D8 (Pin 1) - GPIO1_L, left satellite VL53L0X interrupt.

GND (Pin 7) - Ground

D14(Pin 9) - I2C SDA.

D15(Pin 10) - I2C SCL.

CN6 Arduino Connector

+3v3(Pin4)

GND(Pin 6 & 7)

CN8 Arduino Connector

A2(Pin 3) - GPIO1, centre/on-board VL53L0X interrupt

CN9 Arduino Connector

D2(Pin 3) - GPIO1_R, right satellite VL53L0X interrupt.

These are defined in Tables 3 & 4 in the user manual (UM2047), available from the url link below.

XShut, XShut_L and XShut_R are not driven through the Arduino connectors. However, they are available through the STMPE1600 GPIO Expanders on the expansion board. XShut is available via GPIO15 on U19. XShut_L is available via GPIO14, and XShut_R is avialable via GPIO15, on U21. Both GPIO_Expanders are addressable via I2C. U19 is at address 0x42 (7-bit) and U22 is at address 0x43 (7-bit.)

Further information on the X-Nucleo_53L0A1 board (& VL53L0X) can be found here :

http://www.st.com/content/st_com/en/products/ecosystems/stm32-open-development-environment/stm32-nucleo-expansion-boards/stm32-ode-sense-hw/x-nucleo-53l0a1.html

I hope this helps.

John E KVAM
ST Employee
Posted on March 29, 2017 at 17:26

Alessandro - Yes, only the first 6 pins are used. The bare minimum you need is power, ground, I2C clock and I2C data. (You can connect the XSDN to power.) However in this configuration you give up the ability to get an interrupt or to reset the chip. But if you are polling, and have only one sensor it will work just fine.

I found an interesting example that seemed easy to me at:

https://learn.adafruit.com/adafruit-vl53l0x-micro-lidar-distance-sensor-breakout

Adafruit makes a version of the Satellite board and this site shows an Arduino implementation of the sensor. Perhaps that would help.


In order to give better visibility on the answered topics, please click on 'Accept as Solution' on the reply which solved your issue or answered your question. It helps the next guy.
Alessandro Capezzera
Associate II
Posted on March 29, 2017 at 18:12

thanks a lot for your time!

I was already trying the helloWorld example, it seems easy to understand but it gives me an error when I load it on my stm32 f401re: 

Sensor centre not present

Failed to init board!

So i tried using left or right sensor but it's the same. Any idea?

@john kvam that example is relative to arduino or am I wrong?

John E KVAM
ST Employee
Posted on March 31, 2017 at 16:41

Yes, Adafruit makes parts and pieces for RaspberryPi and Arduino. But the info on that site is pretty informative.

You asked 'which pins to connect if I don't want putting this board on the stm32 board?' So I thought the Adafruit example would help.

My guess (and it's only a guess) on your 'Sensor centre not present' is that you did not activate the XSDN line and thus the sensor is still in reset. (Try connecting this pin to VDD as an experiment. It's not best but it will work to debug the system.)

The software assumes an expansion board and is looking for the center, left or right sensors. But it found none.


In order to give better visibility on the answered topics, please click on 'Accept as Solution' on the reply which solved your issue or answered your question. It helps the next guy.
Posted on April 07, 2017 at 18:38

Thanks john, status error I got is -1 that is defined as VL53L0X_ERROR_CALIBRATION_WARNING. I don't understand exactly what you mean with '

Try connecting this pin to VDD as an experiment. It's not best but it will work to debug the system.'

 (I tried to connect that pin to 5V and then the error changed to -6 VL53L0X_ERROR_RANGE_ERROR)

,

I tried also the software given here: 

http://www.st.com/content/st_com/en/products/ecosystems/stm32-open-development-environment/stm32cube-expansion-software/stm32-ode-sense-sw/x-cube-53l0a1.html

 and It works but I don't know how to integrate it with my

http://developer.mbed.org

environment.

Thanks a lot for the support