Simchair MKIII I2C latest software on GitHub
Simchair MKIII uses the I2C bus for communication between the master controller and peripherals. That means that every controls piece contains a separate Arduino inside. Why is that necessary?
- we can use a device-specific configuration: a lot of nice features are already there
- we can use external I2C ADCs that provide MUCH more precision
- we can have more than six analog axes and all the buttons we need
- we can use filtering when it is necessary without slowing the master controller down
- we can extend our controller’s ports more than we’ll ever need
- unified interface for everything, buttons or axes
- Leonardo board allows us to use a nice Joystick library by MHeironimus, which simplifies things like ten times; no more pain with USB descriptors
- easy flashing; need to change sensitivity setting for an aircraft? turn the AP on and flash the controller in flight!
Arduino Pro mini is used for all peripherals. It doesn’t have a USB port on it, so you will need a USB- UART converter to flash them. Why use a board with no USB? They are small and cheap, and the converter costs literally nothing. I use a PL2303 based converter:
You can opt for using another Arduino board, like nano, everywhere except the B8 stick grip (probably not 412 head as well) at the moment. Basically, all you need to do is flash all the boards with their corresponding software and wire everything as written in manuals of the peripherals. Note that the master controller software is frequently updated, so remember to check GitHub for updates. Software for peripherals is only updated when there are some severe bugs in it, or some major upgrade is needed to adopt new functionality (I understand no one wants to disassemble stuff to upgrade it). With this in mind, you will only need to change something in peripherals’ software if you wired stuff differently.
Download simchair_i2c repo from GitHub.
At the moment, the master controller sketch uses two libraries:
You will need to install them to your IDE to compile the software.
The sketch is split into multiple files for better readability and easier navigation. Every peripheral device has its own file, and all stuff you need to calibrate it is in there (if there are any, steps that are needed to be done for calibration are described in peripheral’s assembly manual). When you open one of the files with Arduino firmware, it opens the whole project, and all the files are opened as tabs. When you compile it, these files are concatenated in alphabetical order.
All configurable parameters are under “configuration” tab (a_configuration.ino file), it’s documented right there in comments. ( lines, starting with // )
To install Lua script that adds collective head switches support key bindings to X-Plane 11 controls menu, please look at this post.