<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p>Synco,</p>
    <p>Still not sure how X-plane connects to the I2C devices - maybe a
      USB to I2C bridge, or are you bringing the SMB bus directly off of
      the motherboard ?</p>
    <p>-Mark</p>
    <p>-----------------<br>
    </p>
    <p>Couple of our messages have been corrupted, here is Synco's
      earlier reply to me</p>
    <p>-----------------</p>
    <p><span style="color: rgb(0, 0, 0); font-family: "Times New
        Roman"; font-size: medium; font-style: normal;
        font-variant-ligatures: normal; font-variant-caps: normal;
        font-weight: 400; letter-spacing: normal; orphans: 2;
        text-align: start; text-indent: 0px; text-transform: none;
        white-space: normal; widows: 2; word-spacing: 0px;
        -webkit-text-stroke-width: 0px; background-color: rgb(255, 255,
        255); text-decoration-style: initial; text-decoration-color:
        initial; display: inline !important; float: none;">Wed May 16
        00:33:27 2018</span> </p>
    <p>Hi Mark+,<span style="color: rgb(0, 0, 0); font-family:
        "Times New Roman"; font-size: medium; font-style:
        normal; font-variant-ligatures: normal; font-variant-caps:
        normal; font-weight: 400; letter-spacing: normal; orphans: 2;
        text-align: start; text-indent: 0px; text-transform: none;
        white-space: normal; widows: 2; word-spacing: 0px;
        -webkit-text-stroke-width: 0px; background-color: rgb(255, 255,
        255); text-decoration-style: initial; text-decoration-color:
        initial; display: inline !important; float: none;"></span><br>
      I've written a few plug-ins for X-Plane, rather than use the UDP
      protocol, yet by next meeting that'll most likely have changed and
      will be happy to share. If each panel was to be stand-alone, from
      all the different I2C port expanders out there, it's likely you
      would have spare I/O that would avoid multiplexing / scanning
      tricks. Also, if you are running Linux, and don't want to use a
      Raspberry Pi, another option is to use the I2C adapter on your
      monitor connector. I've done this in the past, (and will again),
      yet be careful to ensure voltage levels and device addresses don't
      conflict !<br>
    </p>
    <p>For example here is what it looks like on my pc:<br>
      $ sudo apt install i2c-tools<br>
      $ i2cdetect -l<br>
      i2c-3 unknown    NVIDIA i2c adapter 7 at 1:00.0  N/A<br>
      i2c-1 unknown    NVIDIA i2c adapter 4 at 1:00.0  N/A<br>
      i2c-4 unknown    NVIDIA i2c adapter 8 at 1:00.0  N/A<br>
      i2c-2 unknown    NVIDIA i2c adapter 6 at 1:00.0  N/A<br>
      i2c-0 unknown    NVIDIA i2c adapter 2 at 1:00.0  N/A<br>
      <br>
      $ sudo i2cdetect -y 0<br>
           0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f<br>
      00:          -- -- -- -- -- -- -- -- -- -- -- -- --<br>
      10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --<br>
      20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --<br>
      30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --<br>
      40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --<br>
      50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --<br>
      60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --<br>
      70: -- -- -- -- -- -- -- --<br>
      <br>
      $ sudo i2cdetect -y 4<br>
           0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f<br>
      00:          -- -- -- -- -- -- -- -- -- -- -- -- --<br>
      10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --<br>
      20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --<br>
      30: -- -- -- -- -- -- -- 37 -- -- 3a -- -- -- -- --<br>
      40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --<br>
      50: 50 51 52 53 54 55 56 57 -- -- -- -- -- -- -- --<br>
      60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --<br>
      70: -- -- -- -- -- -- -- --<br>
      <br>
      And if you run out of addresses you can always add a i2c-i2c
      bridge:
      <a class="moz-txt-link-freetext"
href="https://www.aliexpress.com/item/TCA9543A-Low-Voltage-2-Channel-I2C-Bus-Switch-Interrupt-Logic-And-Reset-Module/32763291440.html">https://www.aliexpress.com/item/TCA9543A-Low-Voltage-2-Channel-I2C-Bus-Switch-Interrupt-Logic-And-Reset-Module/32763291440.html</a><br>
      <br>
      /s<br>
      <br>
      On 15 May 2018 at 22:01, Mark Atherton <a
        class="moz-txt-link-rfc2396E" href="mailto:markaren1@xtra.co.nz"><markaren1@xtra.co.nz></a>
      wrote:<br>
      <br>
      > Hey Synco,<br>
      ><br>
      > Any chance of a quick tutorial how X-Plane processes incoming
      UDP packets, and assigns associated bytes/bit-positions to each
      function.<br>
      ><br>
      > Getting some kind of spec. from Paul (or help write one)
      would be very useful to determine cable loom lengths, number of
      inputs, types etc. For each control: Push Button, On/Off, Rotary
      (number of positions) ,or Potentiometer (and resolution), and max
      scan time.<br>
      ><br>
      > He may have been using a 4 position switch with 4 wires, when
      it may actually be an encoded 2-bit problem. Not sure if full
      size, low cost rotary binary outputs switches are readily
      available - hex coded switches are obviously too small...  There
      was mention of an R-2R ladder on the switch and an ADC - this
      seems a bit over the top (?). How about using a 1 of 4 rotary
      switch, and a small diode matrix (4 diodes + 4 pull down
      resistors) to encode to binary - there are obviously larger
      bit-savings with 8 and 10 positions switches.<br>
      ><br>
      > Not personally a fan of carrying I2C any great distance due
      to noise immunity issues (or lack thereof), but screened twin
      cable (and associated unwanted capacitance) with low clock rate
      (10kHz ?) and careful grounding may be OK though.<br>
      ><br>
      > R-PI seems over the top to convert bits into UDP, but I guess
      they are readily available, well supported, and low cost, so why
      the hell not...<br>
      <br>
    </p>
  </body>
</html>