<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Using the VL53L0X Range Sensor with Omega (proprietary i2c protocol)?]]></title><description><![CDATA[<p dir="auto">Hi all,</p>
<p dir="auto">I recently picked up a VL53L0X "Time of Flight Range Sensor" (<a href="https://www.adafruit.com/product/3317" rel="nofollow">Adafruit</a>, <a href="https://www.st.com/en/imaging-and-photonics-solutions/vl53l0x.html" rel="nofollow">datasheets</a>) to use with my OmegaBot and other projects, ideally with Python.</p>
<p dir="auto">It was only $15, but I was still dismayed to learn that, while it uses i2c, the registers aren't public and they have a proprietary protocol to talk to it.   It does work though, it shows up in i2cdetect.   There are precompiled libraries for Raspberry Pi etc, which obviously won't work on the Omega as-is.  (I did try, there's a couple in the openwrt Python package library but they just crash on install)</p>
<p dir="auto">So I'm wondering what the shortest path would be to get this running?  There's a few readily available C libraries that would have to be re-compiled as a python module, but I have no idea how difficult that is for the Omega.</p>
<p dir="auto">Adafruit library: <a href="https://github.com/adafruit/Adafruit_VL53L0X" rel="nofollow">https://github.com/adafruit/Adafruit_VL53L0X</a><br />
Pimoroni python library:  <a href="https://github.com/pimoroni/VL53L0X-python" rel="nofollow">https://github.com/pimoroni/VL53L0X-python</a><br />
Python library for Raspberry Pi:  <a href="https://github.com/johnbryanmoore/VL53L0X_rasp_python" rel="nofollow">https://github.com/johnbryanmoore/VL53L0X_rasp_python</a></p>
<p dir="auto">etc, etc.</p>
<p dir="auto">Any advice?</p>
]]></description><link>http://community.onion.io/topic/4134/using-the-vl53l0x-range-sensor-with-omega-proprietary-i2c-protocol</link><generator>RSS for Node</generator><lastBuildDate>Fri, 10 Jul 2026 20:03:53 GMT</lastBuildDate><atom:link href="http://community.onion.io/topic/4134.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 15 May 2020 01:21:21 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Using the VL53L0X Range Sensor with Omega (proprietary i2c protocol)? on Fri, 15 May 2020 01:21:35 GMT]]></title><description><![CDATA[<p dir="auto">Hi all,</p>
<p dir="auto">I recently picked up a VL53L0X "Time of Flight Range Sensor" (<a href="https://www.adafruit.com/product/3317" rel="nofollow">Adafruit</a>, <a href="https://www.st.com/en/imaging-and-photonics-solutions/vl53l0x.html" rel="nofollow">datasheets</a>) to use with my OmegaBot and other projects, ideally with Python.</p>
<p dir="auto">It was only $15, but I was still dismayed to learn that, while it uses i2c, the registers aren't public and they have a proprietary protocol to talk to it.   It does work though, it shows up in i2cdetect.   There are precompiled libraries for Raspberry Pi etc, which obviously won't work on the Omega as-is.  (I did try, there's a couple in the openwrt Python package library but they just crash on install)</p>
<p dir="auto">So I'm wondering what the shortest path would be to get this running?  There's a few readily available C libraries that would have to be re-compiled as a python module, but I have no idea how difficult that is for the Omega.</p>
<p dir="auto">Adafruit library: <a href="https://github.com/adafruit/Adafruit_VL53L0X" rel="nofollow">https://github.com/adafruit/Adafruit_VL53L0X</a><br />
Pimoroni python library:  <a href="https://github.com/pimoroni/VL53L0X-python" rel="nofollow">https://github.com/pimoroni/VL53L0X-python</a><br />
Python library for Raspberry Pi:  <a href="https://github.com/johnbryanmoore/VL53L0X_rasp_python" rel="nofollow">https://github.com/johnbryanmoore/VL53L0X_rasp_python</a></p>
<p dir="auto">etc, etc.</p>
<p dir="auto">Any advice?</p>
]]></description><link>http://community.onion.io/post/21663</link><guid isPermaLink="true">http://community.onion.io/post/21663</guid><dc:creator><![CDATA[Leif Bloomquist]]></dc:creator><pubDate>Fri, 15 May 2020 01:21:35 GMT</pubDate></item><item><title><![CDATA[Reply to Using the VL53L0X Range Sensor with Omega (proprietary i2c protocol)? on Sat, 16 May 2020 07:59:46 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="http://community.onion.io/uid/1489">@Leif-Bloomquist</a> said in <a href="/post/21663">Using the VL53L0X Range Sensor with Omega (proprietary i2c protocol)?</a>:</p>
<blockquote>
<p dir="auto">It was only $15, but I was still dismayed to learn that, while it uses i2c, the registers aren't public and they have a proprietary protocol to talk to it.   It does work though, it shows up in i2cdetect.</p>
</blockquote>
<p dir="auto">According to the datasheet VL53L0X is an absolutely normal I2C device. You can use the usual I2C protocol for device control and data transfer.<br />
The default device (slave) address is 0x29, it has 8 bit register address (<strong>index</strong> in ST terminology) and the registers contain 8,16 or 32-bit data.</p>
<p dir="auto">I don't have such device. Try these commands and let us know their outputs please.<br />
<code>i2cdetect -y 0</code> --&gt; 0x29<br />
<code>i2cget -y 0 0x29 0x8a</code> --&gt; 0x29<br />
<code>i2cget -y 0 0x29 0xc0</code> --&gt; 0xee<br />
<code>i2cget -y 0 0x29 0xc1</code> --&gt; 0xaa<br />
<code>i2cget -y 0 0x29 0xc2</code> --&gt; 0x10</p>
]]></description><link>http://community.onion.io/post/21666</link><guid isPermaLink="true">http://community.onion.io/post/21666</guid><dc:creator><![CDATA[György Farkas]]></dc:creator><pubDate>Sat, 16 May 2020 07:59:46 GMT</pubDate></item><item><title><![CDATA[Reply to Using the VL53L0X Range Sensor with Omega (proprietary i2c protocol)? on Mon, 18 May 2020 17:35:12 GMT]]></title><description><![CDATA[<p dir="auto">Yes, those work perfectly and are used to determine the device is there.</p>
<p dir="auto">But there is no way to read the actual range data without a lot of i2c back-and-forth with their custom protocol.</p>
<p dir="auto">There are python libraries to handle this, but none of them work on the Omega (yet)</p>
]]></description><link>http://community.onion.io/post/21674</link><guid isPermaLink="true">http://community.onion.io/post/21674</guid><dc:creator><![CDATA[Leif Bloomquist]]></dc:creator><pubDate>Mon, 18 May 2020 17:35:12 GMT</pubDate></item></channel></rss>