arendst / Tasmota

Alternative firmware for ESP8266 and ESP32 based devices with easy configuration using webUI, OTA updates, automation using timers or rules, expandability and entirely local control over MQTT, HTTP, Serial or KNX. Full documentation at
https://tasmota.github.io/docs
GNU General Public License v3.0
22.26k stars 4.81k forks source link

Exception and reboot when using a VL53L1X #14082

Closed dbochicchio closed 2 years ago

dbochicchio commented 2 years ago

PROBLEM DESCRIPTION

I'm using a VL53L1X with the latest version. When I set SDA/SCL, the NodeMCU makes two reboots and reset its configuration.

REQUESTED INFORMATION

Make sure your have performed every step and checked the applicable boxes before submitting your issue. Thank you!

- [ ] If using rules, provide the output of this command: `Backlog Rule1; Rule2; Rule3`:
```lua
  Rules output here:

17:35:42.031 RSL: STATUS = {"Status":{"Module":18,"DeviceName":"Tasmota","FriendlyName":["Tasmota"],"Topic":"tasmota_5FB010","ButtonTopic":"0","Power":0,"PowerOnState":3,"LedState":1,"LedMask":"FFFF","SaveData":1,"SaveState":1,"SwitchTopic":"0","SwitchMode":[0,0,0,0,0,0,0,0],"ButtonRetain":0,"SwitchRetain":0,"SensorRetain":0,"PowerRetain":0,"InfoRetain":0,"StateRetain":0}} 17:35:42.057 RSL: STATUS1 = {"StatusPRM":{"Baudrate":115200,"SerialConfig":"8N1","GroupTopic":"tasmotas","OtaUrl":"http://ota.tasmota.com/tasmota/tasmota-sensors.bin","RestartReason":"Software Watchdog","Uptime":"0T00:03:47","StartupUTC":"2021-12-17T16:31:55","Sleep":50,"CfgHolder":4617,"BootCount":74,"BCResetTime":"2020-10-11T17:05:52","SaveCount":208,"SaveAddress":"FA000"}} 17:35:42.089 RSL: STATUS2 = {"StatusFWR":{"Version":"10.1.0.1(sensors)","BuildDateTime":"2021-12-17T10:32:25","Boot":31,"Core":"2_7_4_9","SDK":"2.2.2-dev(38a443e)","CpuFrequency":80,"Hardware":"ESP8266EX","CR":"375/699"}} 17:35:42.109 RSL: STATUS3 = {"StatusLOG":{"SerialLog":2,"WebLog":2,"MqttLog":0,"SysLog":0,"LogHost":"","LogPort":514,"SSId":["XX",""],"TelePeriod":300,"Resolution":"558180C0","SetOption":["00008009","2805C80001000600003C5A0A000000000000","00000080","00006000","00004000"]}} 17:35:42.143 RSL: STATUS4 = {"StatusMEM":{"ProgramSize":668,"Free":332,"Heap":23,"ProgramFlashSize":1024,"FlashSize":4096,"FlashChipId":"1640EF","FlashFrequency":40,"FlashMode":3,"Features":["00000809","8FDA8787","0415A005","B7F7BFCF","05DA9BC4","64367CC7","00084052","20000000","00000020"],"Drivers":"1,2,3,4,5,6,7,8,9,10,12,14,16,17,20,21,24,29,34","Sensors":"1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,17,18,19,20,21,22,26,28,31,34,37,39,40,42,43,45,51,52,55,56,58,59,62,64,66,67,74"}} 17:35:42.179 RSL: STATUS5 = {"StatusNET":{"Hostname":"tasmota-airfresh","IPAddress":"192.168.1.196","Gateway":"192.168.1.1","Subnetmask":"255.255.255.0","DNSServer1":"192.168.1.26","DNSServer2":"192.168.1.1","Mac":"EC:FA:BC:5F:B0:10","Webserver":2,"HTTPAPI":1,"WifiConfig":4,"WifiPower":17.0}} 17:35:42.203 RSL: STATUS6 = {"StatusMQT":{"MqttHost":"","MqttPort":1883,"MqttClientMask":"DVES%06X","MqttClient":"DVES_5FB010","MqttUser":"DVES_USER","MqttCount":0,"MAX_PACKET_SIZE":1200,"KEEPALIVE":30,"SOCKET_TIMEOUT":4}} 17:35:42.225 RSL: STATUS7 = {"StatusTIM":{"UTC":"2021-12-17T16:35:42","Local":"2021-12-17T17:35:42","StartDST":"2021-03-28T02:00:00","EndDST":"2021-10-31T03:00:00","Timezone":"+01:00","Sunrise":"08:38","Sunset":"16:53"}} 17:35:42.245 RSL: STATUS10 = {"StatusSNS":{"Time":"2021-12-17T17:35:42"}} 17:35:42.251 RSL: STATUS11 = {"StatusSTS":{"Time":"2021-12-17T17:35:42","Uptime":"0T00:03:47","UptimeSec":227,"Heap":23,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":0,"Wifi":{"AP":1,"SSId":"XX,"BSSId":"XX","Channel":11,"Mode":"11n","RSSI":72,"Signal":-64,"LinkCount":1,"Downtime":"0T00:00:03"}}} 17:35:42.283 RSL: STATUS12 = {"StatusSTK":{"Exception":4,"Reason":"Software Watchdog","EPC":["401079b5","00000000","00000000"],"EXCVADDR":"00000000","DEPC":"00000000","CallChain":["40256f80","40256fdc","402571aa","402573e4","40246f7c","40246fa4","4024b5a6","4024b72a","4024bade","40204c18","4022039d","4010148e","402435cc","402222f8","4022dbaa","40256650","4010211d"]}}

- [ ] Set `weblog` to 4 and then, when you experience your issue, provide the output of the Console log:
```lua
  Console output here:

TO REPRODUCE

Steps to reproduce the behavior:

EXPECTED BEHAVIOUR

A clear and concise description of what you expected to happen.

SCREENSHOTS

If applicable, add screenshots to help explain your problem.

ADDITIONAL CONTEXT

Add any other context about the problem here.

(Please, remember to close the issue when the problem has been addressed)

ascillato commented 2 years ago

Please, can you share the output of Backlog Template; Module; GPIO 255 ?

And also the item: Set weblog to 4 and then, when you experience your issue, provide the output of the Console log

dbochicchio commented 2 years ago

I've tried to catch them, but it's impossible, since the device reboot itself and resets it configuration.

So, output of the above command is like the sensor was resetted

18:52:54.194 CMD: Backlog Template; Module; GPIO 255
18:52:54.196 SRC: WebConsole from 192.168.1.24
18:52:54.199 CMD: Grp 0, Cmnd 'BACKLOG', Idx 1, Len 26, Data 'Template; Module; GPIO 255'
18:52:54.273 SRC: Backlog
18:52:54.276 CMD: Grp 0, Cmnd 'TEMPLATE', Idx 1, Len 0, Data ''
18:52:54.283 MQT: stat/tasmota-pellet/RESULT = {"NAME":"Generic","GPIO":[1,1,1,1,1,1,1,1,1,1,1,1,1,1],"FLAG":0,"BASE":18}
18:52:54.493 SRC: Backlog
18:52:54.496 CMD: Grp 0, Cmnd 'MODULE', Idx 1, Len 0, Data ''
18:52:54.501 MQT: stat/tasmota-pellet/RESULT = {"Module":{"18":"Generic"}}
18:52:54.743 SRC: Backlog
18:52:54.745 CMD: Grp 0, Cmnd 'GPIO', Idx 1, Len 3, Data '255'
18:52:54.758 MQT: stat/tasmota-pellet/RESULT = {"GPIO0":{"0":"None"},"GPIO1":{"0":"None"},"GPIO2":{"0":"None"},"GPIO3":{"0":"None"},"GPIO4":{"0":"None"},"GPIO5":{"0":"None"},"GPIO9":{"0":"None"},"GPIO10":{"0":"None"},"GPIO12":{"0":"None"},"GPIO13":{"0":"None"},"GPIO14":{"0":"None"},"GPIO15":{"0":"None"},"GPIO16":{"0":"None"},"GPIO17":{"0":"None"}}
ascillato commented 2 years ago

Ok. So which GPIOs are you using?

barbudor commented 2 years ago

The NodeMCU provodes logs on the serial Please set SerialLog 3 and then use a serial terminal to get the detailled logs from when you configure SDA/SCL until end of reboots

dbochicchio commented 2 years ago

Ok. So which GPIOs are you using?

GPIO5 for SCL, GPIO4 for SDA. I'll try with a serial terminal later this week, since I'm out of home at the moment. Thanks.

sfromis commented 2 years ago

Just did a small test, NodeMCU and VL53L1X, I2C SCL/SDA on gpio 5/4. No resets, reboots or other problems, sensor works as expected. Used a self-compiled binary to include support for the sensor.

Looks like you used tasmota-sensors.bin, the precompiled version of this does not include USE_VL53L1X for Tasmota support of this sensor. It does however include USE_VL53L0X for the older variant, but you need the specific driver to match the sensor chip. It may be a good plan to specifically disable I2C drivers you are not using, to avoid conflicts, especially with other drivers expecting a sensor on the same I2C address 0x29.

dbochicchio commented 2 years ago

@sfromis thanks for checking in. I've created a custom build with just

#define USE_I2C
#define USE_VL53L1X

and it's still crashing. Can you please share your custom build settings? Thanks.

sfromis commented 2 years ago

It may not be a question of settings in the build, but about disabling unneeded I2C drivers, as just suggested.

In addition to using the I2CDriver command for this, driver by driver, you can also do what I'm doing when creating builds, disabling all drivers:

#define I2CDRIVERS_0_31  0x00000000
#define I2CDRIVERS_32_63 0x00000000
#define I2CDRIVERS_64_95 0x00000000

And then I enable the ones I want after first boot, using the I2CDriver command. This is not "better", but tends to be less work.

dbochicchio commented 2 years ago

Ok, no more crashing, but device is not detected after I2CScan. What's the best way to enable the device again? I'm sorry if those are very basic questions.

sfromis commented 2 years ago

If I2CScan does not detect, triple-check your wiring and connections, and maybe also test having only that one sensor connected.

dbochicchio commented 2 years ago

Wires as OK. I've just reflashed tasmota-sensors.bin and output seems OK:

{"I2CScan":"Device(s) found at 0x29"}

So it's definitely something in the way I'm preparing the build. I've read a couple of things in the doc, but it's something very subtle that I'm missing.

trlafleur commented 2 years ago

I'm also having issues with this sensor, if I add it to my build, with the sensor-enabled, I flash the code, let it run, set the I2C port in configuration, save it, it will hang the ESP32 at 2nd boot... More to follow...

codebase: 2022.01.3(tasmota)-2_0_2_1 I2C on pins 22 and 23

#undef USE_VL53L0X    // these have same addres as VL53L1
#undef USE_TSL2561
#undef USE_TSL2591

#ifndef USE_VL53L1X 
#define USE_VL53L1X 
#endif
//#undef USE_VL53L1X

//#define I2CDRIVERS_0_31  0x00000000
//#define I2CDRIVERS_32_63 0x00000000
//#define I2CDRIVERS_64_95 0x00000000
Hard Resetting...
Done! Flashing is complete!
Showing logs:
[15:03:19]
[15:03:19]00:00:00.003-214/50 HDW: ESP32-D0WDQ6 
[15:03:19]./components/esp_littlefs/src/littlefs/lfs.c:1071:error: Corrupted dir pair at {0x0, 0x1}
[15:03:19]00:00:00.173-211/50 UFS: FlashFS mounted with 312 kB free
[15:03:19]00:00:00.181-211/50 CFG: Use defaults
[15:03:19]00:00:00.334 QPC: Reset
[15:03:20]00:00:00.414 BRY: Berry initialized, RAM used=3930 bytes
[15:03:20]00:00:00.443 Project tasmota - Tasmota Version 2022.01.3(tasmota)-2_0_2_1(2022-01-25T11:23:51)
[15:03:20]00:00:00.294 WIF: Connecting to AP1 lafleur in mode 11n as tasmota-286814-2068...
[15:03:25]00:00:05.050 WIF: Connected
[15:03:25]00:00:05.310 HTP: Web server active on tasmota-286814-2068 with IP address 192.94.166.30
[15:03:26]00:03:26.275 MQT: Attempting connection...
[15:03:26]00:03:26.308 MQT: Connected
[15:03:26]00:03:26.317 MQT: tele/tasmota_286814/LWT = Online
[15:03:26]00:03:26.331 MQT: cmnd/tasmota_286814/POWER = 
[15:03:26]00:03:26.347 MQT: tele/tasmota_286814/INFO1 = {"Info1":{"Module":"ESP32-DevKit","Version":"2022.01.3(tasmota)","FallbackTopic":"cmnd/DVES_286814_fb/","GroupTopic":"cmnd/tasmotas/"}}
[15:03:26]00:03:26.369 MQT: tele/tasmota_286814/INFO2 = {"Info2":{"WebServerMode":"Admin","Hostname":"tasmota-286814-2068","IPAddress":"192.94.166.30"}}
[15:03:26]00:03:26.390 MQT: tele/tasmota_286814/INFO3 = {"Info3":{"RestartReason":"Vbat power on reset"}}
[15:03:31]00:03:31.195 MQT: tele/tasmota_286814/STATE = {"Time":"2022-01-26T00:03:31","Uptime":"0T00:00:13","UptimeSec":13,"Heap":161,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":178,"MqttCount":1,"Berry":{"HeapUsed":3,"Objects":38},"Wifi":{"AP":1,"SSId":"lafleur","BSSId":"9C:C9:EB:9A:56:C1","Channel":1,"Mode":"11n","RSSI":70,"Signal":-65,"LinkCount":1,"Downtime":"0T00:00:06"}}
[15:03:31]00:03:31.244 MQT: tele/tasmota_286814/SENSOR = {"Time":"2022-01-26T00:03:31","ESP32":{"Temperature":57.2},"TempUnit":"C"}
[15:08:30]00:08:30.655 MQT: tele/tasmota_286814/STATE = {"Time":"2022-01-26T00:08:30","Uptime":"0T00:05:12","UptimeSec":312,"Heap":158,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":1,"Berry":{"HeapUsed":3,"Objects":38},"Wifi":{"AP":1,"SSId":"lafleur","BSSId":"9C:C9:EB:9A:56:C1","Channel":1,"Mode":"11n","RSSI":58,"Signal":-71,"LinkCount":1,"Downtime":"0T00:00:06"}}
[15:08:30]00:08:30.703 MQT: tele/tasmota_286814/SENSOR = {"Time":"2022-01-26T00:08:30","ESP32":{"Temperature":58.9},"TempUnit":"C"}
[15:09:05]00:09:05.785 CMD: Set weblog to 4
[15:09:05]00:09:05.800 MQT: stat/tasmota_286814/RESULT = {"Command":"Unknown"}
[15:09:11]00:09:11.928 CMD: set
[15:09:11]00:09:11.944 MQT: stat/tasmota_286814/RESULT = {"Command":"Unknown"}
[15:09:28]00:09:28.633 CMD: weblog  4
[15:09:28]00:09:28.644 MQT: stat/tasmota_286814/RESULT = {"WebLog":4}
[15:10:03]00:10:03.841 MQT: stat/tasmota_286814/RESULT = {"Module":{"0":"ESP32-DevKit"}}
[15:10:03]00:10:03.881 MQT: stat/tasmota_286814/RESULT = {"GPIO0":{"0":"None"},"GPIO1":{"0":"None"},"GPIO2":{"0":"None"},"GPIO3":{"0":"None"},"GPIO4":{"0":"None"},"GPIO5":{"0":"None"},"GPIO9":{"0":"None"},"GPIO10":{"0":"None"},"GPIO12":{"0":"None"},"GPIO13":{"0":"None"},"GPIO14":{"0":"None"},"GPIO15":{"0":"None"},"GPIO16":{"0":"None"},"GPIO17":{"0":"None"},"GPIO18":{"0":"None"},"GPIO19":{"0":"None"},"GPIO21":{"608":"I2C SCL1"},"GPIO22":{"640":"I2C SDA1"},"GPIO23":{"0":"None"},"GPIO25":{"0":"None"},"GPIO26":{"0":"None"},"GPIO27":{"0":"None"},"GPIO32":{"0":"None"},"GPIO33":{"0":"None"},"GPIO34":{"0":"None"},"GPIO35":{"0":"None"},"GPIO36":{"0":"None"},"GPIO39":{"0":"None"}}
[15:10:05]00:10:05.446 APP: Restarting
[15:10:05]ets Jun  8 2016 00:22:57
[15:10:05]
[15:10:05]rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
[15:10:05]configsip: 0, SPIWP:0xee
[15:10:05]clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
[15:10:05]mode:DOUT, clock div:2
[15:10:05]load:0x3fff0018,len:4
[15:10:05]load:0x3fff001c,len:1044
[15:10:05]load:0x40078000,len:10124
[15:10:05]load:0x40080400,len:5828
[15:10:05]entry 0x400806a8
[15:10:06]
[15:10:06]00:00:00.003 HDW: ESP32-D0WDQ6 
[15:10:06]00:00:00.061 UFS: FlashFS mounted with 304 kB free
[15:10:06]00:00:00.162 CFG: Loaded from File, Count 6
[15:10:06]00:00:00.178 QPC: Count 1
[15:10:06]00:00:00.418 BRY: Berry initialized, RAM used=3930 bytes
[15:10:06]00:00:00.451 Project tasmota - Tasmota Version 2022.01.3(tasmota)-2_0_2_1(2022-01-25T11:23:51)
[15:10:07]00:00:01.222 WIF: Connecting to AP1 lafleur Channel 1 BSSId 9C:C9:EB:9A:56:C1 in mode 11n as tasmota-286814-2068...
[15:10:09]00:00:03.288 WIF: Connected
[15:10:10]00:00:03.500 HTP: Web server active on tasmota-286814-2068 with IP address 192.94.166.30
[15:10:11]00:10:10.410 MQT: Attempting connection...
[15:10:11]00:10:10.442 MQT: Connected
[15:10:11]00:10:10.450 MQT: tele/tasmota_286814/LWT = Online
[15:10:11]00:10:10.463 MQT: cmnd/tasmota_286814/POWER = 
[15:10:11]00:10:10.483 MQT: tele/tasmota_286814/INFO1 = {"Info1":{"Module":"ESP32-DevKit","Version":"2022.01.3(tasmota)","FallbackTopic":"cmnd/DVES_286814_fb/","GroupTopic":"cmnd/tasmotas/"}}
[15:10:11]00:10:10.504 MQT: tele/tasmota_286814/INFO2 = {"Info2":{"WebServerMode":"Admin","Hostname":"tasmota-286814-2068","IPAddress":"192.94.166.30"}}
[15:10:11]00:10:10.522 MQT: tele/tasmota_286814/INFO3 = {"Info3":{"RestartReason":"Software reset CPU"}}
[15:10:13]00:10:12.831 QPC: Reset
[15:10:15]00:10:14.846 MQT: tele/tasmota_286814/STATE = {"Time":"2022-01-26T00:10:14","Uptime":"0T00:00:09","UptimeSec":9,"Heap":159,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":20,"MqttCount":1,"Berry":{"HeapUsed":3,"Objects":39},"Wifi":{"AP":1,"SSId":"lafleur","BSSId":"9C:C9:EB:9A:56:C1","Channel":1,"Mode":"11n","RSSI":76,"Signal":-62,"LinkCount":1,"Downtime":"0T00:00:04"}}
[15:10:15]00:10:14.891 MQT: tele/tasmota_286814/SENSOR = {"Time":"2022-01-26T00:10:14","ESP32":{"Temperature":59.4},"TempUnit":"C"}
[15:11:43]00:11:43.030 CMD: i2cscan
[15:11:43]00:11:43.071 MQT: stat/tasmota_286814/RESULT = {"I2CScan":"No devices found"}
sfromis commented 2 years ago

If I2CScan finds nothing, it is usually a question of not having appropriate wiring of the sensor (assuming that it is working, of course). Your output has "GPIO21":{"608":"I2C SCL1"},"GPIO22":{"640":"I2C SDA1"} which does not match your statement about I2C on pins 22 and 23.

trlafleur commented 2 years ago

The wiring is correct, runs just fine under Arduino on the same hardware...

If I boot up, with the sensor disconnected, then re-add the sensor, do a scan, I get {"I2CScan":"Device(s) found at 0x29"} so Tasmota has access to device.... currently reviewing driver code....

sfromis commented 2 years ago

With ESP32, "GPIO21":{"640":"I2C SDA1"},"GPIO22":{"608":"I2C SCL1"} I'm getting "VL53L1X":{"Distance":23}

Sometimes, it can be useful to disable unused I2C sensor drivers. I've only got the used ones enabled, as explained earlier in this thread.

Jason2866 commented 2 years ago

Closing since the orig. issue and the later mentioned one can not be reproduced

trlafleur commented 2 years ago

Ok, I disable all the I2C drivers with #define below, I enabled the VL53L1

#define I2CDRIVERS_0_31  0x00000000
#define I2CDRIVERS_32_63 0x00000000
#define I2CDRIVERS_64_95 0x00000000

#undef USE_VL53L0X    // same address as VL53L1
#undef USE_TSL2561
#undef USE_TSL2591

#ifndef USE_VL53L1X 
#define USE_VL53L1X 
#endif

I check for the device on the bus: [07:28:22]16:28:21.987 MQT: stat/tasmota_0B9F50/RESULT = {"I2CScan":"Device(s) found at 0x29"}

Then I enable the driver: [07:28:31]16:28:30.859 CMD: i2cdriver 77 1 It rebooted... but still no driver active?? did I miss something??

[07:28:00]00:00:00.003 HDW: ESP32-D0WDQ6 
[07:28:00]00:00:00.059 UFS: FlashFS mounted with 304 kB free
[07:28:00]00:00:00.160 CFG: Loaded from File, Count 6
[07:28:00]00:00:00.176 QPC: Count 1
[07:28:01]00:00:00.408 BRY: Berry initialized, RAM used=3930 bytes
[07:28:01]00:00:00.441 Project tasmota - Tasmota Version 2022.01.3(tasmota)-2_0_2_1(2022-01-26T07:25:54)
[07:28:02]00:00:01.168 WIF: Connecting to AP1 lafleur Channel 1 BSSId 9C:C9:EB:9A:56:C1 in mode 11n as tasmota-0B9F50-8016...
[07:28:03]00:00:02.593 WIF: Connected
[07:28:04]00:00:03.248 HTP: Web server active on tasmota-0B9F50-8016 with IP address 192.94.166.30
[07:28:05]16:28:04.192 MQT: Attempting connection...
[07:28:05]16:28:04.223 MQT: Connected
[07:28:05]16:28:04.230 MQT: tele/tasmota_0B9F50/LWT = Online
[07:28:05]16:28:04.244 MQT: cmnd/tasmota_0B9F50/POWER = 
[07:28:05]16:28:04.259 MQT: tele/tasmota_0B9F50/INFO1 = {"Info1":{"Module":"ESP32-DevKit","Version":"2022.01.3(tasmota)","FallbackTopic":"cmnd/DVES_0B9F50_fb/","GroupTopic":"cmnd/tasmotas/"}}
[07:28:05]16:28:04.280 MQT: tele/tasmota_0B9F50/INFO2 = {"Info2":{"WebServerMode":"Admin","Hostname":"tasmota-0B9F50-8016","IPAddress":"192.94.166.30"}}
[07:28:05]16:28:04.298 MQT: tele/tasmota_0B9F50/INFO3 = {"Info3":{"RestartReason":"Software reset CPU"}}
[07:28:07]16:28:06.801 QPC: Reset
[07:28:09]16:28:08.813 MQT: tele/tasmota_0B9F50/STATE = {"Time":"2022-01-26T16:28:08","Uptime":"0T00:00:09","UptimeSec":9,"Heap":159,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":22,"MqttCount":1,"Berry":{"HeapUsed":3,"Objects":39},"Wifi":{"AP":1,"SSId":"lafleur","BSSId":"9C:C9:EB:9A:56:C1","Channel":1,"Mode":"11n","RSSI":72,"Signal":-64,"LinkCount":1,"Downtime":"0T00:00:04"}}
[07:28:09]16:28:08.860 MQT: tele/tasmota_0B9F50/SENSOR = {"Time":"2022-01-26T16:28:08","ESP32":{"Temperature":45.0},"TempUnit":"C"}
[07:28:22]16:28:21.954 CMD: i2cscan
[07:28:22]16:28:21.987 MQT: stat/tasmota_0B9F50/RESULT = {"I2CScan":"Device(s) found at 0x29"}
[07:28:31]16:28:30.859 CMD: i2cdriver 77 1
[07:28:31]16:28:30.874 MQT: stat/tasmota_0B9F50/RESULT = {"I2CDriver":"!7,!8,!9,!10,!11,!12,!13,!14,!15,!17,!18,!20,!24,!29,!31,!36,!41,!42,!44,!46,!48,!54,!58,!62"}
[07:28:33]16:28:32.619 APP: Restarting
[07:28:33]ets Jun  8 2016 00:22:57
[07:28:33]
[07:28:33]rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
[07:28:33]configsip: 0, SPIWP:0xee
[07:28:33]clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
[07:28:33]mode:DOUT, clock div:2
[07:28:33]load:0x3fff0018,len:4
[07:28:33]load:0x3fff001c,len:1044
[07:28:33]load:0x40078000,len:10124
[07:28:33]load:0x40080400,len:5828
[07:28:33]entry 0x400806a8
[07:28:34]
[07:28:34]00:00:00.003 HDW: ESP32-D0WDQ6 
[07:28:34]00:00:00.022 UFS: FlashFS mounted with 304 kB free
[07:28:34]00:00:00.057 CFG: Loaded from File, Count 8
[07:28:34]00:00:00.072 QPC: Count 1
[07:28:34]00:00:00.181 BRY: Berry initialized, RAM used=3930 bytes
[07:28:34]00:00:00.203 Project tasmota - Tasmota Version 2022.01.3(tasmota)-2_0_2_1(2022-01-26T07:25:54)
[07:28:35]00:00:00.963 WIF: Connecting to AP1 lafleur Channel 1 BSSId 9C:C9:EB:9A:56:C1 in mode 11n as tasmota-0B9F50-8016...
[07:28:37]00:00:02.893 WIF: Connected
[07:28:37]00:00:03.164 HTP: Web server active on tasmota-0B9F50-8016 with IP address 192.94.166.30
[07:28:38]16:28:38.139 MQT: Attempting connection...
[07:28:39]16:28:38.164 MQT: Connected
[07:28:39]16:28:38.172 MQT: tele/tasmota_0B9F50/LWT = Online
[07:28:39]16:28:38.186 MQT: cmnd/tasmota_0B9F50/POWER = 
[07:28:39]16:28:38.202 MQT: tele/tasmota_0B9F50/INFO1 = {"Info1":{"Module":"ESP32-DevKit","Version":"2022.01.3(tasmota)","FallbackTopic":"cmnd/DVES_0B9F50_fb/","GroupTopic":"cmnd/tasmotas/"}}
[07:28:39]16:28:38.225 MQT: tele/tasmota_0B9F50/INFO2 = {"Info2":{"WebServerMode":"Admin","Hostname":"tasmota-0B9F50-8016","IPAddress":"192.94.166.30"}}
[07:28:39]16:28:38.242 MQT: tele/tasmota_0B9F50/INFO3 = {"Info3":{"RestartReason":"Software reset CPU"}}
[07:28:41]16:28:40.954 QPC: Reset
[07:28:43]16:28:42.956 MQT: tele/tasmota_0B9F50/STATE = {"Time":"2022-01-26T16:28:42","Uptime":"0T00:00:09","UptimeSec":9,"Heap":159,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":1,"Berry":{"HeapUsed":3,"Objects":39},"Wifi":{"AP":1,"SSId":"lafleur","BSSId":"9C:C9:EB:9A:56:C1","Channel":1,"Mode":"11n","RSSI":50,"Signal":-75,"LinkCount":1,"Downtime":"0T00:00:04"}}
[07:28:43]16:28:43.002 MQT: tele/tasmota_0B9F50/SENSOR = {"Time":"2022-01-26T16:28:42","ESP32":{"Temperature":45.0},"TempUnit":"C"}
[07:29:13]16:29:12.964 CMD: i2cdriver77 1
[07:29:13]16:29:12.980 MQT: stat/tasmota_0B9F50/RESULT = {"I2CDriver":"!7,!8,!9,!10,!11,!12,!13,!14,!15,!17,!18,!20,!24,!29,!31,!36,!41,!42,!44,!46,!48,!54,!58,!62"}
[07:29:14]16:29:14.437 APP: Restarting
[07:29:15]ets Jun  8 2016 00:22:57
sfromis commented 2 years ago

i2cdriver 77 1 is a bad command. You should have no space before the index, and VL53L1X is not driver number 77.

barbudor commented 2 years ago

Tom, VL53L1X is I2C #54

(yes it is xsns_77 but i2c 54)

image

trlafleur commented 2 years ago

Thank you for the help. It’s all good now

On Wed, Jan 26, 2022 at 12:02 PM Barbudor @.***> wrote:

Tom, VL53L1X is I2C #54 https://github.com/arendst/Tasmota/issues/54

(yes it is xsns_77 but i2c 54)

[image: image] https://user-images.githubusercontent.com/2996042/151237825-68fb9d65-9182-41d8-b6c0-63bbb2459eff.png

— Reply to this email directly, view it on GitHub https://github.com/arendst/Tasmota/issues/14082#issuecomment-1022554734, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABC4EKZP3ATW5QQJSTNPP3DUYBHLVANCNFSM5KJH2IWA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you commented.Message ID: @.***>

--

~~ /) ~~~~ /) ~~ _/) ~~ _/) ~~

Tom Lafleur

trlafleur commented 2 years ago

yes, I tried with and without space.. I now see from the table its 54.... confusing to a beginner....

#define XSNS_77     77   
xsns_77_vl53l1x.ino - VL53L1X sensor support for Tasmota

also, this issue should stay open, as there is an issue with this driver as it's not playing well with other I2C devices... see --> dbochicchio commented on Dec 17, 2021, at top of this issue

trlafleur commented 2 years ago

Adding this to enable the driver at compile boot time.. Having some documentation on this device would be great

   #define I2CDRIVERS_0_31  0x00000000 
   #define I2CDRIVERS_32_63 0x00400000     // enable only device 54, the VL53L1X
   #define I2CDRIVERS_64_95 0x00000000
barbudor commented 2 years ago

What documentation would like to see ? There is not much to configure from Tasmota : I2C GPIO, I2CDriver command to enabe it (and disable un-used drivers). It's mostly plug'n'play (once you've right the basic configuration but that's nothing specific to this sensor 😂)

trlafleur commented 2 years ago

As a minimum, you might add a supplement to https://tasmota.github.io/docs/VL53L0x/ to show what is needed to get the VL53L1X working.. Knowing that some I2C drivers have issues on the shared I2C bus and need special attention would have been very helpful, this would have saved me lots of time...

1) how to enable the driver in the codebase --> tasmota/user_config_override.h

  #ifndef USE_VL53L1X 
  #define USE_VL53L1X 
  #endif

2) That sometimes we need to disable other I2C devices for compatibility...

   #define I2CDRIVERS_0_31  0x00000000 
   #define I2CDRIVERS_32_63 0x00400000     // enable only device 54, the VL53L1X
   #define I2CDRIVERS_64_95 0x00000000

3) How to check if the device is available using I2CScan

{"I2CScan":"Device(s) found at 0x29"}

Thank you, it was a good learning experience!...