<?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[I2C Detect Slave Method?]]></title><description><![CDATA[<p dir="auto">Good Day,</p>
<p dir="auto">I am looking at using the i2c functionality of the Onion 2+ to be able to "detect" connect i2c slaves. unfortunately my tests with both python i2c library and c library both show that the omega returns "success" when reading and writing to an i2c slave that is not even there.</p>
<p dir="auto">Does anyone know how to use i2c to detect if a slave is valid or not? i.e. If I try to "address" i2c slave "0x21" which is definitely not connected, how can I get some sort of error?</p>
<p dir="auto">Thanks,</p>
]]></description><link>http://community.onion.io/topic/2312/i2c-detect-slave-method</link><generator>RSS for Node</generator><lastBuildDate>Sat, 16 May 2026 11:16:16 GMT</lastBuildDate><atom:link href="http://community.onion.io/topic/2312.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 22 Aug 2017 20:30:44 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to I2C Detect Slave Method? on Tue, 22 Aug 2017 20:31:59 GMT]]></title><description><![CDATA[<p dir="auto">Good Day,</p>
<p dir="auto">I am looking at using the i2c functionality of the Onion 2+ to be able to "detect" connect i2c slaves. unfortunately my tests with both python i2c library and c library both show that the omega returns "success" when reading and writing to an i2c slave that is not even there.</p>
<p dir="auto">Does anyone know how to use i2c to detect if a slave is valid or not? i.e. If I try to "address" i2c slave "0x21" which is definitely not connected, how can I get some sort of error?</p>
<p dir="auto">Thanks,</p>
]]></description><link>http://community.onion.io/post/14239</link><guid isPermaLink="true">http://community.onion.io/post/14239</guid><dc:creator><![CDATA[UFD]]></dc:creator><pubDate>Tue, 22 Aug 2017 20:31:59 GMT</pubDate></item><item><title><![CDATA[Reply to I2C Detect Slave Method? on Mon, 11 Sep 2017 09:46:01 GMT]]></title><description><![CDATA[<p dir="auto">Hi,</p>
<p dir="auto">Just some feedback if you happen to stumble across this topic in desperation. So my analysis is that there must be a bug with the Onion 2 I2C implementation. With that said <a class="plugin-mentions-user plugin-mentions-a" href="http://community.onion.io/uid/2880">@t-gabor</a> had a thread that described how he managed to overcome some of the i2c limitations by moving to a "bit-banged" i2c approach.</p>
<p dir="auto">For those interested the following method was used on a Omega Onion 2+ (firmware v0.1.10-b160):</p>
<ol>
<li>Install the relevant kernal modules (Thanks <a class="plugin-mentions-user plugin-mentions-a" href="http://community.onion.io/uid/2880">@t-gabor</a> for compiling):</li>
</ol>
<ul>
<li><a href="http://www.umardockrat.co.za/download/kmod-i2c-gpio-custom_4.4.46-2_mipsel_24kc.ipk" rel="nofollow">kmod-i2c-gpio-custom_4.4.46-2_mipsel_24kc.ipk</a></li>
<li><a href="http://www.umardockrat.co.za/download/kmod-i2c-gpio_4.4.46-1_mipsel_24kc.ipk" rel="nofollow">kmod-i2c-gpio_4.4.46-1_mipsel_24kc.ipk</a></li>
<li><a href="http://www.umardockrat.co.za/download/kmod-i2c-algo-bit_4.4.46-1_mipsel_24kc.ipk" rel="nofollow">kmod-i2c-algo-bit_4.4.46-1_mipsel_24kc.ipk</a></li>
</ul>
<p dir="auto">This is done by downloading the above packages locally and running them in:<br />
opkg install --force-depends kmod-i2c-algo-bit_4.4.46-1_mipsel_24kc.ipk<br />
opkg install --force-depends kmod-i2c-gpio_4.4.46-1_mipsel_24kc.ipk<br />
opkg install --force-depends kmod-i2c-gpio-custom_4.4.46-2_mipsel_24kc.ipk</p>
<p dir="auto">the --force-depends is required as the onion thinks the kernel is at a too low version. if you are interested you can run:</p>
<pre><code>root@Omega-XXXX:~# opkg list-installed | grep kernel
kernel - 4.4.46-1-611bddde2031bc44b7d050f62495d772
</code></pre>
<p dir="auto">In order to get the current kernel version, which you will find the last section of numbers are lower that the expected value for the compiled packages above.</p>
<p dir="auto">Anyhow what confused me for a good few hours was that the opkg install will show errors at the end even though it was successful (i.e. notice the "Installing" and "Configuring" sections):</p>
<pre><code>root@Omega-XXXX:~/ipk# opkg install --force-depends kmod-i2c-algo-bit_4.4.46-1_mipsel_24kc.ipk
Installing kmod-i2c-algo-bit (4.4.46-1) to root...
Configuring kmod-i2c-algo-bit.
Collected errors:
 * satisfy_dependencies_for: Cannot satisfy the following dependencies for kmod-i2c-algo-bit:
 *      kernel (= 4.4.46-1-d0a487fc7d1c9f083b7de0fb8c2a7c07) *
</code></pre>
<p dir="auto">Once these modules are installed we need to load them using the following commands:</p>
<pre><code>omega2-ctrl gpiomux set i2c gpio
insmod i2c-algo-bit
insmod i2c-gpio
insmod i2c-gpio-custom bus0=1,5,4
</code></pre>
<p dir="auto">with that you can now try the newly created /dev/i2c-1 device:</p>
<pre><code>i2cdetect -y 1
</code></pre>
<p dir="auto">And vola:</p>
<pre><code>root@Omega-XXXX:~# i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: 20 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
</code></pre>
<p dir="auto">Anyhow to wrap things up you can do this setup automatically at bootup with the following init.d script. create using vi in /etc/init.d/I2Cbb</p>
<pre><code>#!/bin/sh /etc/rc.common
# Creates bit-banged i2c-device /dev/i2c-1 on pins 5,4.
# NOTE: This hides /dev/i2c-0!

START=98
STOP=97

start() {
        omega2-ctrl gpiomux set i2c gpio
        insmod i2c-algo-bit
        insmod i2c-gpio
        insmod i2c-gpio-custom bus0=1,5,4
}

stop() {
        rmmod i2c-gpio-custom
        rmmod i2c-gpio
        rmmod i2c-algo-bit
        omega2-ctrl gpiomux set i2c i2c
}

restart()
{
    stop
    start
}
</code></pre>
<p dir="auto">And another hour or so of frustration and rebooting reminded me again of missing the basics, do not forget to enable and make executable the script!</p>
<pre><code>chmod 755 /etc/init.d/I2Cbb
/etc/init.d/I2Cbb enable
</code></pre>
<p dir="auto">*** EDIT ***<br />
On an final note, using bitbanged I2C allows you to set the Onion I2C bus clock speed (SCL). To do this add the extra parameter to the the init.d script</p>
<pre><code>insmod i2c-gpio-custom bus0=1,5,4,x
</code></pre>
<p dir="auto">where x is is number based on the following formula:</p>
<pre><code>I2C speed (kHz) = 500 / x 
</code></pre>
<p dir="auto">Cheers,<br />
UFD</p>
]]></description><link>http://community.onion.io/post/14305</link><guid isPermaLink="true">http://community.onion.io/post/14305</guid><dc:creator><![CDATA[UFD]]></dc:creator><pubDate>Mon, 11 Sep 2017 09:46:01 GMT</pubDate></item><item><title><![CDATA[Reply to I2C Detect Slave Method? on Fri, 08 Sep 2017 10:53:57 GMT]]></title><description><![CDATA[<p dir="auto">UFD,  congratulations and thank you for sharing.</p>
]]></description><link>http://community.onion.io/post/14414</link><guid isPermaLink="true">http://community.onion.io/post/14414</guid><dc:creator><![CDATA[Douglas Kryder]]></dc:creator><pubDate>Fri, 08 Sep 2017 10:53:57 GMT</pubDate></item><item><title><![CDATA[Reply to I2C Detect Slave Method? on Sat, 10 Mar 2018 11:06:11 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="http://community.onion.io/uid/4416">@UFD</a> Thanks for this "solution" (or more workaround). This was the only way I was able to get my Python code towards a keller pressure meter work. So I'm lifting this fabioulus post</p>
<p dir="auto">I'm still unable to fix my related problem with <strong>write a byte wait 8ms then read 5 bytes</strong> <em><strong>without specifying register.</strong></em><br />
<a href="http://community.onion.io/topic/2674/access-to-i2c-low-level-calls-through-python-onioni2c">http://community.onion.io/topic/2674/access-to-i2c-low-level-calls-through-python-onioni2c</a></p>
<p dir="auto">there seems also to still be a open drain issue<br />
<a href="https://community.onion.io/topic/2603/omega2-i2c-bus-is-not-open-drain" rel="nofollow">https://community.onion.io/topic/2603/omega2-i2c-bus-is-not-open-drain</a></p>
<p dir="auto">Why hasn't this been fixed in Omega2+?  I have scanned several posts in the forum that probably has problems that are related to this. I2C is a vital bus doing smart IoT stuff for real. So if Onion would like to be part of <strong>commercial projects</strong> I2C needs to have top priority.<br />
Could any of the staff comment?</p>
]]></description><link>http://community.onion.io/post/16244</link><guid isPermaLink="true">http://community.onion.io/post/16244</guid><dc:creator><![CDATA[Joachim Lindborg]]></dc:creator><pubDate>Sat, 10 Mar 2018 11:06:11 GMT</pubDate></item><item><title><![CDATA[Reply to I2C Detect Slave Method? on Sun, 11 Mar 2018 23:21:47 GMT]]></title><description><![CDATA[<p dir="auto">In case any body else is looking for this.</p>
<p dir="auto">If for example you wanted two I2C busses, you would do that like this.</p>
<p dir="auto">Example: using GPIO 14 for the second SDA and GPIO 16 for the 2nd SCL</p>
<pre><code>insmod i2c-gpio-custom bus0=1,5,4 bus1=2,14,16
</code></pre>
<p dir="auto">and you can then verify them with</p>
<pre><code>i2cdetect -y 1
</code></pre>
<p dir="auto">and</p>
<pre><code>i2cdetect -y 2
</code></pre>
]]></description><link>http://community.onion.io/post/16251</link><guid isPermaLink="true">http://community.onion.io/post/16251</guid><dc:creator><![CDATA[Jeff Seese]]></dc:creator><pubDate>Sun, 11 Mar 2018 23:21:47 GMT</pubDate></item><item><title><![CDATA[Reply to I2C Detect Slave Method? on Thu, 29 Mar 2018 19:14:53 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="http://community.onion.io/uid/4416">@UFD</a> Please have a look at my pull request <a href="https://github.com/openwrt/openwrt/pull/831" rel="nofollow">https://github.com/openwrt/openwrt/pull/831</a><br />
It should fix all issues with I2C. It is using real I2C hardware of the chip (no bit-banging).</p>
]]></description><link>http://community.onion.io/post/16428</link><guid isPermaLink="true">http://community.onion.io/post/16428</guid><dc:creator><![CDATA[Jan Breuer]]></dc:creator><pubDate>Thu, 29 Mar 2018 19:14:53 GMT</pubDate></item><item><title><![CDATA[Reply to I2C Detect Slave Method? on Wed, 04 Apr 2018 08:40:56 GMT]]></title><description><![CDATA[<p dir="auto">Hi,</p>
<p dir="auto">Im glad you guys found this useful!</p>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="http://community.onion.io/uid/3130">@Jeff-Seese</a> Thanks for the additional information on spinning up multiple I2C channels (useful when you have fixed I2C address based devices).</p>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="http://community.onion.io/uid/5381">@Jan-Breuer</a> I will certainly look into this. It would be amazing if "real" I2C worked on the Omega.</p>
<p dir="auto">Kind Regards,<br />
UFD</p>
]]></description><link>http://community.onion.io/post/16480</link><guid isPermaLink="true">http://community.onion.io/post/16480</guid><dc:creator><![CDATA[UFD]]></dc:creator><pubDate>Wed, 04 Apr 2018 08:40:56 GMT</pubDate></item><item><title><![CDATA[Reply to I2C Detect Slave Method? on Fri, 27 Apr 2018 09:21:01 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="http://community.onion.io/uid/4416">@UFD</a> said in <a href="/post/14305">I2C Detect Slave Method?</a>:<br />
Hello everyone!</p>
<p dir="auto">How I can use these kmod's with another version of kernel?<br />
Now I have latest firmware and the kernel version is 4.4.74.</p>
]]></description><link>http://community.onion.io/post/16703</link><guid isPermaLink="true">http://community.onion.io/post/16703</guid><dc:creator><![CDATA[Sergiy Tarasov]]></dc:creator><pubDate>Fri, 27 Apr 2018 09:21:01 GMT</pubDate></item><item><title><![CDATA[Reply to I2C Detect Slave Method? on Thu, 03 May 2018 05:56:24 GMT]]></title><description><![CDATA[<p dir="auto">Is it possible to give links to newer compiled versions of (?):</p>
<pre><code>kmod-i2c-gpio-custom_4.4.46-2_mipsel_24kc.ipk
kmod-i2c-gpio_4.4.46-1_mipsel_24kc.ipk
kmod-i2c-algo-bit_4.4.46-1_mipsel_24kc.ipk
</code></pre>
<p dir="auto">There is no longer a b160 image at: <a href="http://repo.onion.io/omega2/images/" rel="nofollow">http://repo.onion.io/omega2/images/</a> for some mysterious reason.</p>
<p dir="auto">I have tried b159, but it gives me an "unable to open mmap file" error when I run "omega2-ctrl gpiomux set i2c gpio".</p>
<p dir="auto">b175 gives me a "failed to find i2c-algo-bit" error when I run "insmod i2c-algo-bit"</p>
]]></description><link>http://community.onion.io/post/16752</link><guid isPermaLink="true">http://community.onion.io/post/16752</guid><dc:creator><![CDATA[George Gerber]]></dc:creator><pubDate>Thu, 03 May 2018 05:56:24 GMT</pubDate></item><item><title><![CDATA[Reply to I2C Detect Slave Method? on Sat, 19 May 2018 20:46:18 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="http://community.onion.io/uid/5117">@George-Gerber</a>, it is there, you may miss it because it falls under 0.1.<strong>10</strong> i.e. omega2p-v0.1.10-b160.bin</p>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="http://community.onion.io/uid/5469">@Sergiy-Tarasov</a>, I have had some success using what is most likely a hack and not recommended.</p>
<ol>
<li>Uncomment line 1 "reboot_core" in the file /etc/opkg/distfeeds.conf</li>
<li>opkg update</li>
<li>opkg --force-depends install kmod-i2c-gpio-custom<br />
Now the hack, because it was for a higher kenel version the libraries are installed to /lib/module/&lt;kenel-version&gt; so we need to copy them across to the current version, in my case:</li>
<li>cp /lib/modules/4.4.131/* /lib/4.47/</li>
</ol>
<p dir="auto">Then proceed with the insmod as before.</p>
<p dir="auto">Regards,<br />
UFD</p>
]]></description><link>http://community.onion.io/post/16865</link><guid isPermaLink="true">http://community.onion.io/post/16865</guid><dc:creator><![CDATA[UFD]]></dc:creator><pubDate>Sat, 19 May 2018 20:46:18 GMT</pubDate></item><item><title><![CDATA[Reply to I2C Detect Slave Method? on Tue, 04 Sep 2018 21:23:20 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="http://community.onion.io/uid/4416">@UFD</a> we fixed the driver for the hardware I2C controller. The main enhancements are:</p>
<ul>
<li><strong>The <code>i2cdetect</code> command is now supported</strong></li>
<li>clock stretching is supported</li>
<li>support for unlimited message length</li>
<li>support for repeated start sequences</li>
</ul>
<p dir="auto">Check out <a href="https://onion.io/2bt-i2c-firmware-update/" rel="nofollow">this blog post</a> for more details</p>
]]></description><link>http://community.onion.io/post/17601</link><guid isPermaLink="true">http://community.onion.io/post/17601</guid><dc:creator><![CDATA[Lazar Demin]]></dc:creator><pubDate>Tue, 04 Sep 2018 21:23:20 GMT</pubDate></item><item><title><![CDATA[Reply to I2C Detect Slave Method? on Wed, 12 Sep 2018 09:37:05 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="http://community.onion.io/uid/95">@Lazar-Demin</a>, Awesome news, thanks for letting me know. I will test very soon.</p>
]]></description><link>http://community.onion.io/post/17655</link><guid isPermaLink="true">http://community.onion.io/post/17655</guid><dc:creator><![CDATA[UFD]]></dc:creator><pubDate>Wed, 12 Sep 2018 09:37:05 GMT</pubDate></item><item><title><![CDATA[Reply to I2C Detect Slave Method? on Wed, 21 Nov 2018 07:40:37 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="http://community.onion.io/uid/95">@Lazar-Demin</a> Dear,<br />
Thank you for your support, but Clock stretching is not clear; i.e how to change clock for i2c, in my case it is 100 kHz and I wan to chage it<br />
what are the instructions for that,<br />
thank you in all cases.</p>
]]></description><link>http://community.onion.io/post/18202</link><guid isPermaLink="true">http://community.onion.io/post/18202</guid><dc:creator><![CDATA[Ammar Assad]]></dc:creator><pubDate>Wed, 21 Nov 2018 07:40:37 GMT</pubDate></item><item><title><![CDATA[Reply to I2C Detect Slave Method? on Wed, 21 Nov 2018 22:43:06 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="http://community.onion.io/uid/5849">@Ammar-Assad</a> the underlying driver supports clock stretching and will do so automatically, you don't have to specifically configure it.<br />
As far as I remember, the Omega2 should support all I2C devices running from 100 kHz to 400 kHz out of the box.</p>
]]></description><link>http://community.onion.io/post/18229</link><guid isPermaLink="true">http://community.onion.io/post/18229</guid><dc:creator><![CDATA[Lazar Demin]]></dc:creator><pubDate>Wed, 21 Nov 2018 22:43:06 GMT</pubDate></item><item><title><![CDATA[Reply to I2C Detect Slave Method? on Thu, 22 Nov 2018 12:31:39 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="http://community.onion.io/uid/95">@Lazar-Demin</a><br />
Acutally I have upgraded my omega for that, it is still unclear for me how to controll clock speed, it is alway 100 kHz, the device is MPU9250</p>
]]></description><link>http://community.onion.io/post/18245</link><guid isPermaLink="true">http://community.onion.io/post/18245</guid><dc:creator><![CDATA[Ammar Assad]]></dc:creator><pubDate>Thu, 22 Nov 2018 12:31:39 GMT</pubDate></item><item><title><![CDATA[Reply to I2C Detect Slave Method? on Thu, 22 Nov 2018 19:47:18 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="http://community.onion.io/uid/5849">@Ammar-Assad</a> Omega2(+)'s SCL clock frequency is 100kHz by default. According to its datasheet it's good for an MPU9250 slave.<br />
Do you want a slower (eg. 10kHz) or a faster (eg. 400kHz) bus?<br />
What is your real problem?</p>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="http://community.onion.io/uid/5849">@Ammar-Assad</a> wrote</p>
<blockquote>
<p dir="auto">it is still unclear for me how to controll clock speed, it is alway 100 kHz</p>
</blockquote>
<blockquote>
<p dir="auto">Clock stretching is not clear; i.e how to change clock for i2c, in my case it is 100 kHz and I wan to chage it</p>
</blockquote>
<p dir="auto">As you know the original I2C communication speed (I2C Standard mode) was defined with a maximum of 100 kbit per second and the SCL clock is always determined / generated by the I2C master.<br />
The clock stretching is a completely different thing.</p>
]]></description><link>http://community.onion.io/post/18254</link><guid isPermaLink="true">http://community.onion.io/post/18254</guid><dc:creator><![CDATA[György Farkas]]></dc:creator><pubDate>Thu, 22 Nov 2018 19:47:18 GMT</pubDate></item><item><title><![CDATA[Reply to I2C Detect Slave Method? on Fri, 23 Nov 2018 14:07:31 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="http://community.onion.io/uid/2619">@György-Farkas</a> Thanks for your concern, Actually I want to faster it if it is possible.</p>
]]></description><link>http://community.onion.io/post/18268</link><guid isPermaLink="true">http://community.onion.io/post/18268</guid><dc:creator><![CDATA[Ammar Assad]]></dc:creator><pubDate>Fri, 23 Nov 2018 14:07:31 GMT</pubDate></item><item><title><![CDATA[Reply to I2C Detect Slave Method? on Fri, 23 Nov 2018 14:39:01 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="http://community.onion.io/uid/5849">@Ammar-Assad</a><br />
<a href="https://labs.mediatek.com/fileMedia/download/9ef51e98-49b1-489a-b27e-391bac9f7bf3" rel="nofollow">MediaTek MT7688 Datasheet</a><br />
5.10 I2C Controller<br />
Module name: I2C Base address: (+10000900h)<br />
Address <strong>10000940</strong> SM0CFG1 SERIAL INTERFACE MASTER 0 CONFIG 1 REGISTER<br />
bit <strong>27:16</strong> SM0_CLK_DIV SIF master 0 clock divide value<br />
This is used to set the divider to generate expected SCL.</p>
<ul>
<li>Omega2(+) default 100kHz<br />
40MHz / 400 = 100kHz<br />
400 = 0x190<br />
0x8<code>190</code>800F</li>
</ul>
<pre><code>devmem 0x10000940
0x8190800F
</code></pre>
<ul>
<li>set to 400kHz<br />
40MHz / 100 = 400kHz<br />
100 = 0x64<br />
0x8<code>064</code>800F</li>
</ul>
<pre><code>devmem 0x10000940 32 0x8064800F

devmem 0x10000940
0x8064800F
</code></pre>
<p dir="auto">Good luck!</p>
]]></description><link>http://community.onion.io/post/18269</link><guid isPermaLink="true">http://community.onion.io/post/18269</guid><dc:creator><![CDATA[György Farkas]]></dc:creator><pubDate>Fri, 23 Nov 2018 14:39:01 GMT</pubDate></item><item><title><![CDATA[Reply to I2C Detect Slave Method? on Fri, 23 Nov 2018 17:21:20 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="http://community.onion.io/uid/2619">@György-Farkas</a> said in <a href="/post/18269">I2C Detect Slave Method?</a>:</p>
<blockquote>
<p dir="auto">0x10000940</p>
</blockquote>
<p dir="auto">Ooops! devmem not found unfortunately !</p>
]]></description><link>http://community.onion.io/post/18272</link><guid isPermaLink="true">http://community.onion.io/post/18272</guid><dc:creator><![CDATA[Ammar Assad]]></dc:creator><pubDate>Fri, 23 Nov 2018 17:21:20 GMT</pubDate></item><item><title><![CDATA[Reply to I2C Detect Slave Method? on Fri, 23 Nov 2018 18:22:02 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="http://community.onion.io/uid/5849">@Ammar-Assad</a> Here you are a quick 'proof-of-concept' with a "full" BusyBox.</p>
<pre><code># Omega2+
root@Omega-99A5:/# oupgrade -v
&gt; Device Firmware Version: 0.2.2 b200

root@Omega-99A5:/# cd ~
root@Omega-99A5:~# wget https://www.busybox.net/downloads/binaries/1.28.1-defconfig-multiarch/busybox-mipsel
root@Omega-99A5:~# chmod +x busybox-mipsel

root@Omega-99A5:~# ./busybox-mipsel
BusyBox v1.28.1 (2018-02-15 14:34:02 CET) multi-call binary.
BusyBox is copyrighted by many authors between 1998-2015.
Licensed under GPLv2. See source distribution for detailed
copyright notices.

Usage: busybox [function [arguments]...]
   or: busybox --list[-full]
   or: busybox --install [-s] [DIR]
   or: function [arguments]...

	BusyBox is a multi-call binary that combines many common Unix
	utilities into a single executable.  Most people will create a
	link to busybox for each function they wish to use and BusyBox
	will act like whatever it was invoked as.

Currently defined functions:
	[, &lsqb;&lsqb;, acpid, add-shell, addgroup, adduser, adjtimex, arch, arp, arping, ash, awk, base64, basename, beep, blkdiscard, blkid,
	blockdev, bootchartd, brctl, bunzip2, bzcat, bzip2, cal, cat, chat, chattr, chgrp, chmod, chown, chpasswd, chpst, chroot,
	chrt, chvt, cksum, clear, cmp, comm, conspy, cp, cpio, crond, crontab, cryptpw, cttyhack, cut, date, dc, dd, deallocvt,
	delgroup, deluser, depmod, devmem, df, dhcprelay, diff, dirname, dmesg, dnsd, dnsdomainname, dos2unix, dpkg, dpkg-deb, du,
	dumpkmap, dumpleases, echo, ed, egrep, eject, env, envdir, envuidgid, ether-wake, expand, expr, factor, fakeidentd, fallocate,
	false, fatattr, fbset, fbsplash, fdflush, fdformat, fdisk, fgconsole, fgrep, find, findfs, flock, fold, free, freeramdisk,
	fsck, fsck.minix, fsfreeze, fstrim, fsync, ftpd, ftpget, ftpput, fuser, getopt, getty, grep, groups, gunzip, gzip, halt, hd,
	hdparm, head, hexdump, hexedit, hostid, hostname, httpd, hush, hwclock, i2cdetect, i2cdump, i2cget, i2cset, id, ifconfig,
	ifdown, ifenslave, ifplugd, ifup, inetd, init, insmod, install, ionice, iostat, ip, ipaddr, ipcalc, ipcrm, ipcs, iplink,
	ipneigh, iproute, iprule, iptunnel, kbd_mode, kill, killall, killall5, klogd, last, less, link, linux32, linux64, linuxrc, ln,
	loadfont, loadkmap, logger, login, logname, logread, losetup, lpd, lpq, lpr, ls, lsattr, lsmod, lsof, lspci, lsscsi, lsusb,
	lzcat, lzma, lzop, makedevs, makemime, man, md5sum, mdev, mesg, microcom, mkdir, mkdosfs, mke2fs, mkfifo, mkfs.ext2,
	mkfs.minix, mkfs.vfat, mknod, mkpasswd, mkswap, mktemp, modinfo, modprobe, more, mount, mountpoint, mpstat, mt, mv, nameif,
	nanddump, nandwrite, nbd-client, nc, netstat, nice, nl, nmeter, nohup, nproc, nsenter, nslookup, ntpd, nuke, od, openvt,
	partprobe, passwd, paste, patch, pgrep, pidof, ping, ping6, pipe_progress, pivot_root, pkill, pmap, popmaildir, poweroff,
	powertop, printenv, printf, ps, pscan, pstree, pwd, pwdx, raidautorun, rdate, rdev, readahead, readlink, readprofile,
	realpath, reboot, reformime, remove-shell, renice, reset, resize, resume, rev, rm, rmdir, rmmod, route, rpm, rpm2cpio,
	rtcwake, run-init, run-parts, runlevel, runsv, runsvdir, rx, script, scriptreplay, sed, sendmail, seq, setarch, setconsole,
	setfattr, setfont, setkeycodes, setlogcons, setpriv, setserial, setsid, setuidgid, sh, sha1sum, sha256sum, sha3sum, sha512sum,
	showkey, shred, shuf, slattach, sleep, smemcap, softlimit, sort, split, ssl_client, start-stop-daemon, stat, strings, stty,
	su, sulogin, sum, sv, svc, svlogd, swapoff, swapon, switch_root, sync, sysctl, syslogd, tac, tail, tar, taskset, tcpsvd, tee,
	telnet, telnetd, test, tftp, tftpd, time, timeout, top, touch, tr, traceroute, traceroute6, true, truncate, tty, ttysize,
	tunctl, ubiattach, ubidetach, ubimkvol, ubirename, ubirmvol, ubirsvol, ubiupdatevol, udhcpc, udhcpd, udpsvd, uevent, umount,
	uname, unexpand, uniq, unix2dos, unlink, unlzma, unshare, unxz, unzip, uptime, users, usleep, uudecode, uuencode, vconfig, vi,
	vlock, volname, w, wall, watch, watchdog, wc, wget, which, who, whoami, whois, xargs, xxd, xz, xzcat, yes, zcat, zcip

root@Omega-99A5:~# ./busybox-mipsel devmem 0x10000940
0x818F800F

root@Omega-99A5:~# ./busybox-mipsel devmem 0x10000940 32 0x8064800F
root@Omega-99A5:~# ./busybox-mipsel devmem 0x10000940
0x8064800F
</code></pre>
<p dir="auto">FW 0.2.2 b200 - presently the divider is '0x18F = 399' instead of '0x190 = 400'.<br />
Please ask one of Onion administrators ( <a class="plugin-mentions-user plugin-mentions-a" href="http://community.onion.io/uid/2">@Zheng-Han</a>  <a class="plugin-mentions-user plugin-mentions-a" href="http://community.onion.io/uid/95">@Lazar-Demin</a> <a class="plugin-mentions-user plugin-mentions-a" href="http://community.onion.io/uid/4455">@Pavel-Metrokhin</a>) why <img src="http://community.onion.io/plugins/nodebb-plugin-emoji/emoji/android/1f609.png?v=ic093v0mjao" class="not-responsive emoji emoji-android emoji--wink" title=";-)" alt="😉" /></p>
]]></description><link>http://community.onion.io/post/18275</link><guid isPermaLink="true">http://community.onion.io/post/18275</guid><dc:creator><![CDATA[György Farkas]]></dc:creator><pubDate>Fri, 23 Nov 2018 18:22:02 GMT</pubDate></item><item><title><![CDATA[Reply to I2C Detect Slave Method? on Fri, 23 Nov 2018 18:21:40 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="http://community.onion.io/uid/2619">@György-Farkas</a> said in <a href="/post/18275">I2C Detect Slave Method?</a>:</p>
<blockquote>
<p dir="auto">./busybox-mipsel devmem 0x10000940 32 0x8064800F</p>
</blockquote>
<p dir="auto">I am very grateful to you, it worked fine ... <img src="http://community.onion.io/plugins/nodebb-plugin-emoji/emoji/android/2665.png?v=ic093v0mjao" class="not-responsive emoji emoji-android emoji--hearts" title=":hearts:" alt="♥" /></p>
]]></description><link>http://community.onion.io/post/18276</link><guid isPermaLink="true">http://community.onion.io/post/18276</guid><dc:creator><![CDATA[Ammar Assad]]></dc:creator><pubDate>Fri, 23 Nov 2018 18:21:40 GMT</pubDate></item></channel></rss>