I2C master controller

Summary

Simchair MKIII I2C master controller is the main “brain” of the set: it detects connected devices automatically and then loads device-specific configuration. Unlike the previous analog version, it uses an Arduino Leonardo board. There are several cool things about it:

  • we can use device-specific configuration
  • we can use external I2C ADCs
  • we can use filtering when needed without slowing the master controller down
  • we can extend our controller more than we’ll ever need
  • unified interface for everything, buttons or axes
  • Leo board allows us to use an epic Joystick library by MHeironymus, which simplifies things like ten times; no more pain with USB descriptors

I don’t think there’s any point in using an old analog version anymore, as there are now controllers with buttons (an old UNO – based analog controller only supported six axes as it had to do some massive filtering because of a noisy 10 bit built-in ADC)

Components

1 * Arduino Leonardo
4 * M3x50 screws
4 * M3x12 screws
6 * M3 nuts

Assembly

 

 

 

 

 

To assemble the controller, print its parts, fix the Leo board in the enclosure, use some glue (hot glue or superglue will do nicely) to attach TJ8-8P8 non-shielded ethernet sockets to the cover part. If you only have shielded, strip the shield off of them for better adhesion. Solder 4 wires to each of the sockets. Let’s use this connection scheme for all of our devices:

SOCKET PIN 1 – VCC
SOCKET PIN 2 – GND
SOCKET PIN 3 – SCL
SOCKET PIN 4 – SDA

Before we begin to solder, we have to determine where PIN 1 is. It is crucial as it can save us a lot of time 😉 Let’s take an ordinary ethernet cable and plug it into our socket.

 

 

 

 

 

 

PIN 1 is on the side where the orange-white wire is. Depending on the socket model, pin positions may differ, but most likely PIN 2 is in the other row, check it with a multimeter. Now, when we know where all of our pins are, we need to solder all the wires, and then twist them together (PIN1 wires from all sockets, PIN2 from all sockets, etc.). After that, the only thing left will be to solder these joints to headers according to the connection scheme above. You can solder wires directly to the Leo board or use header pins, and pieces cut off of a breakout board to make things cleaner. Either way, we need 5V, GND, SCL and SDA joints to be connected to the corresponding pins of the Leo board.

Then, it’s finally time to flash it with its software and test it by connecting something to it!

Download links

hc625ma.org

thingiverse.com

Simchair MKIII I2C latest software on GitHub

 

 

3 Replies to “I2C master controller”

  1. Hi Alex,

    I’ve spent most of today familiarizing myself with your work and researching the bits I don’t know. I’ve gone through all of Peter’s work and whatever documentation of yours I can find, but I still have a few questions. First, I understand there’s a box which contains the main leonardo board, but where are the pro mini boards located for each peripheral? it looks like there’s a pro board fitted inside the collective head, so is the collective mini board located in the base of the gimbal? Lastly, how are the ADS1115 i2c busses connected? I’ve used an arduino for my printer before, but most of this is going to take some work to understand on my part.

    Thank you!

  2. Every peripheral is a separate device, it has its own Arduino pro mini (except for cyclic gimbal and pedals which have ADS1115 boards inside (they are connected directly to the master controller via I2C because of how i2c library works) and a 412 head that has 2 pro mini’s in it). Everything is connected together through I2C, with ethernet cables. First 4 wires of the cable are used, white-orange for 5v, orange for GND, white-green for SCL, blue for SDA.

    ADS1115 are used for a higher resolution of axes in most critical parts (you can only have 4 of them connected simultaneously because of address limitations). Basically, you either put boards into correspondingly shaped slots or just stuff everything in and screw together (collective heads). In “scale” stuff like the B8 stick grip and the Huey collective head, you have to do some cable management for wires to fit in a tight enough space =)

    Devices with axes require some initial mechanical and software calibration after assembling (takes around 5 minutes), collective heads and a cyclic grip are pretty much “flash and fly”.

    Cheers!

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.