Custom User Input options for SteFly Rotary Module
A big advantage of open source projects is that functions can be adapted to your own needs. For example, only basic programming knowledge is required to change the operation of the rotary module.
In gerneral there are two different files, which have effect to the user input in XCSoar:
- Arduino sketch of the USB input device: Here you can setup actions to the buttons and encoders. E.g. rotating the encoder clock-wise will trigger the right arrow key. Also long-press or double-press functions can be assigned here.
- XCI user input file in XCSoar: Here you can setup specific actions for different menus. E.g. when using the PAN menu you won´t be able to zoom in and out with the default XCI file, because the arrow keys are assigned to pan the map by default. It would be possible to use the „Fn“ and „M“ key to zoom in and out in this menu. There are some limitations of the XCI file, but in combination with a customized USB input device you have plenty of options.
Arduino sketch for the Rotary Module
All SteFly input devices are using an Arduino Leonardo compatible microcontrollers to process the key presses and converts them into a USB HID signal (Human Input Device). For a USB keyboard you don´t need to install a driver, so you can also test the Rotary Module on your desktop computer.
What is Arduino? Arduino is a open-source electronic prototyping platform enabling users to create interactive electronic objects. So it is a hard- and software project. The hardware is fix in SteFly input devices, but it´s possible to change the software on those devices
Where do you get the Arduino software? You can download Arduino IDE for free at https://www.arduino.cc/. The basic installation process should be easy and if you have any problems, you can use the instructions and tutorials available on the web. You also need to install some libraries to get the code working.
Which specific hardware settings do you need to select? Board: „Arduino Leonardo“ and select the correct COM port.
1) Standard features of SteFly Rotary Modules
This version works great in combination with the remote stick, but has limited functionality as no mouse is available. The default OpenVario input file (XCI file) does not need to be changed.
2) Rotary Module with mouse feature
Similar to the remote stick, you can change with the FN button between mouse mode and arrow button mode. In mouse mode you are able to moove the mouse pointer. There is no need to change the default OpenVario input file (XCI-file).
3) Combination of Arduino sketch and XCI input file
A great implementation from Thomas Hanika, which uses all options available with a custom Arduino sketch and a custom XCI file. Complex inputs like longpress and pressed + rotate features are implemented. Highlights are the quick access to change the volume, MC setting and also the intuitive operation of the PAN menu.
You can upload the XCI files with your OpenVario USB stick the same way as a waypoint or airspace file. Then you need to select the file in XCSoar: System Setup -> Look -> Language, Input -> Events.
If you have a custom input option for the Rotary Module and you would like to share it here, feel free to contact us and we will add it to this post. A huge thanks to the contributors of the software implementation!