[Solved]M5Stick and VL53L1X



  • Hi all,

    I'm trying VL53L1X sensor on M5Stick through grove connection

    VL53L1X---------------------M5Stick
    VIN-------------------------------5v grove
    GRD-------------------------------grd grove
    SDA--------------------------------G21 grove
    SCL---------------------------------G22 grove

    uploading this sketch

    /*
      This example shows how to take simple range measurements with the VL53L1X. The
      range readings are in units of mm.
    */
    
    #include <Wire.h>
    #include <VL53L1X.h>
    
    VL53L1X sensor;
    
    void setup()
    {
    
      Serial.begin(115200);
      Wire.begin();
      Wire.setClock(400000); // use 400 kHz I2C
    
      sensor.setTimeout(500);
      if (!sensor.init())
      {
        Serial.println("Failed to detect and initialize sensor!");
        while (1);
      }
    
      // Use long distance mode and allow up to 50000 us (50 ms) for a measurement.
      // You can change these settings to adjust the performance of the sensor, but
      // the minimum timing budget is 20 ms for short distance mode and 33 ms for
      // medium and long distance modes. See the VL53L1X datasheet for more
      // information on range and timing limits.
      sensor.setDistanceMode(VL53L1X::Long);
      sensor.setMeasurementTimingBudget(50000);
    
      // Start continuous readings at a rate of one measurement every 50 ms (the
      // inter-measurement period). This period should be at least as long as the
      // timing budget.
      sensor.startContinuous(50);
    }
    
    void loop()
    {
      Serial.print(sensor.read());
      if (sensor.timeoutOccurred()) {
        Serial.print(" TIMEOUT");
      }
    
      Serial.println();
    }
    

    this is the serial monitor output...

    rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
    configsip: 0, SPIWP:0xee
    clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
    mode:DIO, clock div:1
    load:0x3fff0018,len:4
    load:0x3fff001c,len:1100
    load:0x40078000,len:9220
    load:0x40080400,len:6300
    entry 0x400806a4
    Failed to detect and initialize sensor!
    
    

    whats wrong??



  • M5Stick GROVE Interface SCL: GPIO13, SDA: GPIO25. Look at M5Stick doc


  • M5Stack

    Yes, The grove pins on M5Stick are difference with M5Core.
    0_1552530776691_微信截图_20190314103152.png



  • Hi, tnks for answering...

    I'm using this setup.

    in the code there isn't setup for pins....



  • I cant remember the exact code but you need to add
    Wire1.begin(); Note the 1!

    its something like Wire1.begin(13, 25);
    that you need to add after Wire.begin();

    Sorry, I lost my source so cant remember how I solved it.


  • M5Stack

    Thanks for your reply. @ajb2k3

    @cepics As @ajb2k3 said, you need use Wire.begin(13, 25); for Grove port IIC initialization for assigning gpio13 and gpio25 to IIC function pins.



  • Tnks a lot guys!!!!

    I will try asaic....



  • /*
    This example shows how to take simple range measurements with the VL53L1X. The
    range readings are in units of mm.
    */
    
    #include <Wire.h>
    #include <VL53L1X.h>
    
    VL53L1X sensor;
    
    void setup()
    {
      Serial.begin(115200);
      //Wire.begin();
        Wire.begin(25, 13); // (SDA, SCL) grove stick
      //Wire.begin(21, 22); // (SDA, SCL) grove stack
      Wire.setClock(400000); // use 400 kHz I2C
    
      sensor.setTimeout(500);
      if (!sensor.init())
      {
        Serial.println("Failed to detect and initialize sensor!");
        while (1);
      }
      
      // Use long distance mode and allow up to 50000 us (50 ms) for a measurement.
      // You can change these settings to adjust the performance of the sensor, but
      // the minimum timing budget is 20 ms for short distance mode and 33 ms for
      // medium and long distance modes. See the VL53L1X datasheet for more
      // information on range and timing limits.
      sensor.setDistanceMode(VL53L1X::Long);
      sensor.setMeasurementTimingBudget(50000);
    
      // Start continuous readings at a rate of one measurement every 50 ms (the
      // inter-measurement period). This period should be at least as long as the
      // timing budget.
      sensor.startContinuous(50);
    }
    
    void loop()
    {
      //Serial.print(sensor.read()); //MM
      Serial.print(sensor.read()/10); //CM
      if (sensor.timeoutOccurred()) { Serial.print(" TIMEOUT"); }
    
      Serial.println();
    }
    

    it works!!!



  • @cepics said in [Solved]M5Stick and VL53L1X:

    /*
    This example shows how to take simple range measurements with the VL53L1X. The
    range readings are in units of mm.
    */
    
    #include <Wire.h>
    #include <VL53L1X.h>
    
    VL53L1X sensor;
    
    void setup()
    {
      Serial.begin(115200);
      //Wire.begin();
        Wire.begin(25, 13); // (SDA, SCL) grove stick
      //Wire.begin(21, 22); // (SDA, SCL) grove stack
      Wire.setClock(400000); // use 400 kHz I2C
    
      sensor.setTimeout(500);
      if (!sensor.init())
      {
        Serial.println("Failed to detect and initialize sensor!");
        while (1);
      }
      
      // Use long distance mode and allow up to 50000 us (50 ms) for a measurement.
      // You can change these settings to adjust the performance of the sensor, but
      // the minimum timing budget is 20 ms for short distance mode and 33 ms for
      // medium and long distance modes. See the VL53L1X datasheet for more
      // information on range and timing limits.
      sensor.setDistanceMode(VL53L1X::Long);
      sensor.setMeasurementTimingBudget(50000);
    
      // Start continuous readings at a rate of one measurement every 50 ms (the
      // inter-measurement period). This period should be at least as long as the
      // timing budget.
      sensor.startContinuous(50);
    }
    
    void loop()
    {
      //Serial.print(sensor.read()); //MM
      Serial.print(sensor.read()/10); //CM
      if (sensor.timeoutOccurred()) { Serial.print(" TIMEOUT"); }
    
      Serial.println();
    }
    

    it works!!!

    Glad it works and sorry for posting the pins the wrong way around.


Log in to reply
 

Looks like your connection to M5Stack Community was lost, please wait while we try to reconnect.