VL6180X range problem for Arduino

Hi, I tried to use the VL6180X module and a board "Arduino Uno" to measure the distance I used the following code to set up the board.
I connected pin ُِSDA to A4 and pin SCL to A5 on the board. But my circuit doesn't show less than 120mm and show zero for 120mm then on it starts showing values ​1mm and mm2 and .... for mor than 120mm.
And also "Lux" always is 0.0 !
How can I solve my problem?
Code is same as sample in IDE

#include <Wire.h>
#include "Adafruit_VL6180X.h"

Adafruit_VL6180X vl = Adafruit_VL6180X();

void setup() {
  Serial.begin(115200);

  // wait for serial port to open on native usb devices
  while (!Serial) {
    delay(1);
  }
  
  Serial.println("Adafruit VL6180x test!");
  if (! vl.begin()) {
    Serial.println("Failed to find sensor");
    while (1);
  }
  Serial.println("Sensor found!");
}

void loop() {
  float lux = vl.readLux(VL6180X_ALS_GAIN_5);

  Serial.print("Lux: "); Serial.println(lux);
  
  uint8_t range = vl.readRange();
  uint8_t status = vl.readRangeStatus();

  if (status == VL6180X_ERROR_NONE) {
    Serial.print("Range: "); Serial.println(range);
  }

  // Some error occurred, print it out!
  
  if  ((status >= VL6180X_ERROR_SYSERR_1) && (status <= VL6180X_ERROR_SYSERR_5)) {
    Serial.println("System error");
  }
  else if (status == VL6180X_ERROR_ECEFAIL) {
    Serial.println("ECE failure");
  }
  else if (status == VL6180X_ERROR_NOCONVERGE) {
    Serial.println("No convergence");
  }
  else if (status == VL6180X_ERROR_RANGEIGNORE) {
    Serial.println("Ignoring range");
  }
  else if (status == VL6180X_ERROR_SNR) {
    Serial.println("Signal/Noise error");
  }
  else if (status == VL6180X_ERROR_RAWUFLOW) {
    Serial.println("Raw reading underflow");
  }
  else if (status == VL6180X_ERROR_RAWOFLOW) {
    Serial.println("Raw reading overflow");
  }
  else if (status == VL6180X_ERROR_RANGEUFLOW) {
    Serial.println("Range reading underflow");
  }
  else if (status == VL6180X_ERROR_RANGEOFLOW) {
    Serial.println("Range reading overflow");
  }
  delay(50);
}

And how far it can measure?
Are you sure the chip is VL6180X?

Hi , yes of course it is VL6180X, It start from about 120mm and show it 1mm until 200mm. before 120 return VL6180X_ERROR_RANGEUFLOW , and more than 200mm(200+120) return VL6180X_ERROR_RAWOFLOW.

Do you have some "brand" module or generic unknown?
Did you try with another library?
Like this:

for the VL6180X I used the Pololu library referenced by @kmin in post 4
running the InterleavedContinuous example code I get results

5cm	54
5cm	52
5cm	53
10cm	102
10cm	101
10cm	103
15cm	150
15cm	149
15cm	152

number on left is distance to target measured by a ruler number on right is the VL6180X output

Well, i'm having the EXACT same issue (even the same range offset)... I'm using an ESP8266 and tried the same example from ADAfruit. I also tried Pololu's library and the readings are the same.

I can't seem to find anything about this problem, and this post is exactly what i was looking for... sadly it hadn't been solved yet, but still. If anyone have any news i'm up to it.

Maybe hardware?