Library to handle the X-NUCLEO-6180XA1 Proximity and ambient light sensor expansion board based on VL6180X.


Dependents:   HelloWorld_6180XA1 SunTracker_BLE Servo_6180XA1 BLE_HR_Light ... more

Fork of X_NUCLEO_6180XA1 by ST Expansion SW Team

X-NUCLEO-6180XA1 Proximity and Ambient Light Sensor Expansion Board Firmware Package


This firmware package includes Components Device Drivers and Board Support Package for STMicroelectronics' X-NUCLEO-6180XA1 Proximity and ambient light sensor expansion board based on VL6180X.

Firmware Library

Class X_NUCLEO_6180XA1 is intended to represent the Proximity and ambient light sensor expansion board with the same name.

The expansion board is providing the support of the following components:

  1. on-board VL6180X proximity and ambient light sensor,
  2. up to three additional VL6180X Satellites,
  3. on-board 4-digit display

It is intentionally implemented as a singleton because only one X-NUCLEO-VL6180XA1 at a time might be deployed in a HW component stack. In order to get the singleton instance you have to call class method `Instance()`, e.g.:

// Sensors expansion board singleton instance
static X_NUCLEO_6180XA1 *6180X_expansion_board = X_NUCLEO_6180XA1::Instance();

Arduino Connector Compatibility Warning

Using the X-NUCLEO-6180XA1 expansion board with the NUCLEO-F429ZI requires adopting the following patch:

  • to remove R46 resistor connected to A3 pin;
  • to solder R47 resistor connected to A5 pin.

Alternatively, you can route the Nucleo board’s A5 pin directly to the expansion board’s A3 pin with a wire. In case you patch your expansion board or route the pin, the interrupt signal for the front sensor will be driven on A5 pin rather than on A3 pin.

Example Applications


RevisionDateWhoCommit message
58:1e9a3a46f814 2017-08-21 nikapov Make compatible with non-copyable version of I2C. default tip
57:fa4c622b04a7 2017-03-13 Davidroid Aligned to ARM mbed coding style.
56:37d1736bd896 2017-03-13 Aligning to ARM mbed coding style.
55:a37f407230ca 2017-03-03 Davidroid Some modifications to fit mbed coding style.
54:17f3bb228b13 2016-11-30 mapellil Aligned GetLux and GetDistance API with ST_INTERFACES, added isSensorxxPresentAPI, other minor fix.
53:663a22f7c44d 2016-09-27 Davidroid ST_INTERFACES added.
52:fca21e149934 2016-09-27 Davidroid ST_INTERFACES added.
51:229ea522cff8 2016-09-12 mapellil Disabled INT generation on 6180 GPIO1 pin in case of als or range single shot polling measures.
50:18e064bfb156 2016-09-09 mapellil Added the GetDistance and GetLux API doing respectively a synchronous range_single_shot_polling and als_single_shot_polling measure in blocking mode
49:f0dd44dd59c5 2016-06-15 mapellil Removed board destructor (because of singleton object)
48:e799ad44dab7 2016-06-07 Fixed I2C address in component descriptor to default val after component PowerOn/Off.
47:2fc173b227d4 2016-05-23 mapellil Aligned Component/Interface/Component_class.h to automatic conversion script output generating Component class instead of GenericSensor class.
46:116dadbc80f1 2016-05-19 mapellil Fixed /Components/Interfaces/GenericSensor.h model and its vl6180xa1 inheritors classes.
45:70e4abd970a9 2016-03-15 mapellil functions VL6180x_I2Cxx are now called passing dev rather than Device as a function argument
44:36d12d319078 2016-03-15 mapellil fixed vl6180x destructor
43:8120a1ff3055 2016-03-14 mapellil Removed not initialized PinName variable
42:692c6223dc24 2016-03-11 fabiombed Now you can use NC as InterruptIn
41:2e00362bdb8e 2016-03-03 mapellil Check if 6180 InterruptIn pin is NC do not register call back function.
40:b4d20279e312 2016-02-24 mapellil Fixed VL6180X::VL6180x_UpdateByte passing dangling pointer to I2cWrite
39:3cce4ba37695 2016-01-18 mapellil Fixed array init gcc compilation issue in Display.h
38:18abb7f7dcb2 2015-12-03 mapellil Fixed compilation warnings
37:837cffa6b530 2015-11-27 mapellil Renamed GPIOs using Arduino names for multi vendor compatibility
36:f6278b3e7c82 2015-11-24 mapellil Exposed GPIOs on constructor, code cleanup, doxy comment
35:407b0b127eb8 2015-11-18 mapellil Removed vl6180x_api.h, added doxy comments to API
34:5bcffb4c5b47 2015-11-17 Added DisplayDigit function to Display class
33:1573db91352c 2015-11-17 Added Switch class, added self contained Display class, added STMPE1600 component
32:ef97c377d27b 2015-11-10 mapellil Extended Doxy doc
31:f99c53a51917 2015-11-09 mapellil Added Doxygen doc
30:75bf50276881 2015-11-09 mapellil fixed some doxygen comments
29:6d6b67e2e212 2015-11-06 gallonm Updated AlsSetThresholds function
28:7c9031e96c22 2015-11-05 gallonm Settled AlsSetThresholds function that takes the parameters in lux.
27:22c6f69967d9 2015-11-04 gallonm Updated printed messages.
26:db0cdc5ecc0a 2015-11-04 gallonm Settled AlsSetThresholds and AlsGetThresholds.
25:126b760a3f55 2015-11-02 gallonm Included X_NUCLEO_COMMON library
24:025afc3fe30f 2015-11-02 gallonm Modified file cfg.h by introducing #define EXTENDED_RANGE_50CM.
23:dfb5ccc7b780 2015-10-30 gallonm Updated Display_class.h
22:1a6327e9a7e6 2015-10-28 gallonm Updated destructor of x_nucleo_6180xa1.h; Fixed VL6180x_cfg.h
21:5fb360508b6e 2015-10-28 gallonm Updated VL6180x_class.h
20:dd8390d615bf 2015-10-28 gallonm Removed PollDelay and introduced simply wait_ms function.; Updated file platform.h.; Fixed all FIXME.; Fixed error printing.; Updated x_nucleo_6180xa1.cpp file.
19:39ea6bab0e5b 2015-10-28 mapellil Removed some undefined funct preventing the lib to be self contained. Added Serial pc global variable.
18:c98aa73dc4a5 2015-10-27 gallonm Update all files
17:922c88827e4d 2015-10-27 gallonm Updated display
16:0d4776564733 2015-10-27 gallonm Added display class.
15:454710d17358 2015-10-20 gallonm Fixed the function StartMeasurement
14:0effa0bbf192 2015-10-19 gallonm Fixed the function Prepare() (disabled gpio interrupt by default)
13:6736a00a0aa9 2015-10-13 gallonm Deleted a comment in x_nucleo_6180xa1.h
12:71d589e6fd2c 2015-10-13 gallonm Introduced virtual functions GetRange and GetLight of the sensor classes.
11:88541229403e 2015-10-06 gallonm Update vl6180x_class.h (SetI2cAddress function)
10:4954b09b72d8 2015-10-06 gallonm Fitted all api files (reinserted original api files)
9:9cbc1736f148 2015-09-29 Fixed i2c wr
8:f943a1fca15f 2015-09-29 fixed i2c functions and code cleanup
7:2dc81120c917 2015-09-25 gallonm update files
6:6a09fe77ad3c 2015-09-18 mapellil added STMPE1600 GpioExp empty files
5:40d1bdb706e0 2015-09-17 gallonm Delete some files
4:a5abf7757947 2015-09-17 gallonm First compile of Init function and ReadID function
3:454541a079f4 2015-09-11 gallonm init function, readID function
2:7684e0b4e40e 2015-09-10 gallonm add file .cpp
1:1de1ea2994d9 2015-09-09 gallonm Added some files
0:1fb1f010ac84 2015-09-08 gallonm 1 commit