Flysky Receiver Lib
- 3 Devlogs
- 2 Total hours
Library that returns the channel values from a Flysky i6X Controller
Library that returns the channel values from a Flysky i6X Controller
Devlog 3!
More features on the way!
After uploading v1 and creating a readme I put time into writing new methods that will further make this project easy to use!
On Flysky controllers, the switches are lettered a-d. Instead of having to find out what channel the switches are mapped to, I designed a method that lets you pass the switch’s letter and it returns the bool value without you having to deal with the channel #.
In terms of complexity I also added two new methods for more experienced programmers using this lib:
readChannelRaw: This method returns the raw data from a specified channel
readSwitchRaw: This method returns the raw uninverted state of a switch.
Next up is writing examples and making axis mode settings!
Devlog 2!
Real world testing!
After having written the most basic functions, I’ve gone to my electronics cabinet and put my code to the test!
Using a proper FlySky i6 controller I tested my library with an Arduino Mega and was able to find and troubleshoot many issues in my library code and .ino example. Overall everything worked really well, so I am now looking towards implementing more complex methods and features to both make the lib easier to use and to tailor it to the interests of more advanced users.
Cheers!
Devlog 1!
For a long time Flysky controllers have been used in personal avionics and robotics projects, interacting with many boards.
All this time there has only been one main library used to interpret the signals from these controller’s receivers: iBusBM. It’s a great library for what it’s made for, but it’s design requires the need for extra code to be written if you want to read specific channels or switches in a clean manner.
My goal with this library is to simplify the code integration of Flysky into two main easy-to-use methods:
readAxis();
readSwitch();
Each method does exactly as their name suggests!
As this project develops I plan on adding more specific methods for more advanced use cases such as getting raw inputs or setting axis modes, but next up is real world testing on different boards!
Cheers!