You'll need the following parts to follow this guide:

CircuitPython board.  This guide focuses on the ESP8266 and Feather M0/SAMD21-based boards, but any CircuitPython board that supports I2C should work.


If your board doesn't come with CircuitPython running on it already then check out your board's guide for how to load CircuitPython firmware.  For example the Feather M0 express guide is a good reference.

VL6180X time-of-flight distance sensor.  This is a handy sensor that uses a laser to detect the distance of an object in front of it (up to a few inches away).  For this guide you'll see how to take code written for Arduino to talk to this sensor and convert it to a module for CircuitPython.

Breadboard and jumper wires.  These are useful to prototype and connect the sensor to your board. 

Soldering tools.  You'll need to solder headers to the boards  Check out the guide to excellent soldering if you're new to soldering.

Before you get started you'll want to follow the VL6180X product guide to assemble the board (just solder on a row of headers).  In addition it's highly recommended to follow the guide and test the board with its Arduino-based examples.  This will help you confirm the board is assembled correctly and able to communicate with your board.  It's much easier to troubleshoot issues with communication in isolation like this before you get deep into porting the code!


Like the VL6180X guide mentions you'll want to wire it to your board using a standard I2C connection with a clock, data, power, and ground connection:

  • VL6180X SCL to board SCL / I2C clock.
  • VL6180X SDA to board SDA / I2C data.
  • VL6180X VIN to board 3.3V power.
  • VL6180X ground/GND to board ground/GND.

Once you have the hardware assembled and wired up, continue on to learn how to read the datasheet and start interacting with registers on the device.

Last updated on 2017-10-16 at 05.31.13 PM Published on 2017-10-16 at 05.31.56 PM