<div dir="ltr"><div>Hi Dave:</div><div><br></div><div>The I2C interface needs to run at the 100k rate for 100 feet,   400k is too fast. <br></div><div>First thing I might check is the value of the +5 VDC voltage present at the remote end.</div><div>It needs to be great enough that the +3.3V regulator is capable of working. <br></div><div><br></div><div>-- Tom, N5EG</div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Feb 28, 2020 at 11:18 AM David Witten via TangerineSDR <<a href="mailto:tangerinesdr@lists.tapr.org">tangerinesdr@lists.tapr.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">It looks like the verdict is in on using full magnetometer support boards with a single span of CAT 6a shielded twisted pair cable - for now.  The 30 m (100foot) cable does not seem to work satisfactorily.  <div><br></div><div>It seems clear to me that it works 'a little', I2cdetect reports devices at 0x18  (MCP9808), 0x19 (MCP9808), and 0x20 (the RM3100 module) most of the time. Since I am doing this testing from the NVIDIA Xavier the bus used is /dev/i2c-8.  I have no idea what that is at 0x74. <div><br></div><div>From code written in C the device setup and verifies  the revision id of the RM3100 most of the time.  But then errors seem to accumulate and timeouts occur.</div><div><br></div><div>I'm not even certain at the moment which I2C signalling rate is in use here.  It is just the default, perhaps 100 k.  I'll look into mechanisms for lowering the rate used. I think that I saw an ioctl() call that may help.  </div><div><br></div><div>So for now 50' seems rock solid, 100' is too flaky to use.  I'll try to find a way to connect a 50' with a 25 cable to see where that gets us.</div><div><br></div><div>The cable used is Amazon's pride off-the-shelf overnight stuff.  The package says (in very small type):<br></div><div><br></div><div>100' Cat 5a</div><div>550 MHz</div><div>Snagless Shielded (SSTP/SFTP)</div><div>Gigabit Ethernet Patch Cable - Black.</div><div><br></div><div>I do not know the wire gauge used.</div><div><br></div><div>Results on Xavier (same on Odroid-N2):</div><div><br></div><div>dave@rio:~/projects/SWx/Software/SWx-C/i2c-c$ sudo i2cdetect -y -r 8 <br>     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f<br>00:          -- -- -- -- -- -- -- -- -- -- -- -- -- <br>10: -- -- -- -- -- -- -- -- 18 19 -- -- -- -- -- -- <br>20: 20 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- <br>30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- <br>40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- <br>50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- <br>60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- <br>70: -- -- -- -- 74 -- -- --                         <br>dave@rio:~/projects/SWx/Software/SWx-C/i2c-c$ sudo ./simplei2c<br>i2c_init OK!<br>RM3100 Detected Properly: REVID: 22.<br>Polling I2C device: 20.<br><br>readRegister set register: Remote I/O error<br>readRegister set register: Remote I/O error<br>readRegister read value: Resource temporarily unavailable<br>readRegister set register: Connection timed out<br>readRegister read value: Connection timed out<br>readRegister set register: Connection timed out<br>readRegister read value: Connection timed out<br>readRegister set register: Resource temporarily unavailable<br>readRegister read value: Remote I/O error<br>readRegister set register: Remote I/O error<br>readRegister read value: Resource temporarily unavailable<br>readRegister set register: Remote I/O error<br>readRegister read value: Remote I/O error<br>readRegister set register: Remote I/O error<br>readRegister read value: Input/output error<br>readRegister set register: Resource temporarily unavailable<br>readRegister read value: Remote I/O error<br>readRegister set register: Remote I/O error<br>readRegister read value: Remote I/O error<br>readRegister set register: Input/output error<br>readRegister read value: Remote I/O error<br>readRegister set register: Input/output error<br>readRegister read value: Remote I/O error<br>readRegister set register: Remote I/O error<br>readRegister read value: Input/output error<br>readRegister set register: Connection timed out<br>readRegister read value: Connection timed out<br></div></div><div>...</div><div>etc.</div><div><br></div><div>Dave Witten, KD0EAG</div><div><br></div><div><br></div></div>
-- <br>
TangerineSDR mailing list<br>
<a href="mailto:TangerineSDR@lists.tapr.org" target="_blank">TangerineSDR@lists.tapr.org</a><br>
<a href="http://lists.tapr.org/mailman/listinfo/tangerinesdr_lists.tapr.org" rel="noreferrer" target="_blank">http://lists.tapr.org/mailman/listinfo/tangerinesdr_lists.tapr.org</a><br>
</blockquote></div>