SatRod is a project aiming to create a custom Joystick using an Arduino Leonardo. It will include easily customizable software for the Arduino, supporting up to three rotary encoders, momentary buttons and non-momentary switches (more on this later). In order to make customization as easy as possible, even for people without programming skills, there will be written and/or video tutorials on how to customize the software.
This project will also include Fusion 360 models for 3D printing for one particular Joystick, targeted at certain features of the game Elite Dangerous by Frontier Development (I am in no way affiliated or sponsored by FD).
Everything published as part of this project (be it code, tutorials or other), will be published under a common OpenSource license. It will likely be the MIT license, although this decision is not yet final.
In the course of the SatRod project ("sat" short for satisfaction as in "joy", "rod" as in "stick") the following parts will be developed/published.
Arduino software (almost) ready for flashing. It will be easily customizable, i. e. you only need to tell it which type of button or switch will be connected to which port of the Arduino. No real programming required. These button types/features will be supported.
- Momentary buttons as direct Joystick input
- Switches as direct Joystick input, i. e. the Joystick button is pressed as long as the switch is on
- Switches as simulated momentary buttons, i. e. the Joystick button is pressed and quickly released again when the switch changes its state. This is useful for games that are not designed to support inputs that behave like switches as opposed to buttons.
- IO expanders via I2C
- Inputs using internal pull-ups in the Arduino or the expander
- Inputs using external pull-downs
- Up to 8 (likely), at least 3 analog inputs such as axis
Fusion 360 models for a particular Joystick designed for Elite Dangerous, including a button panel for common features as well as a Joystick panel especially designed for the upcoming FSS feature (Full Spectrum Scanner) in Elite Dangerous. The button panel will be fairly reusable, as it has no Elite specific appearance. The FSS panel will be less reusable.
Tutorials for customization. To make customization as easy as possible there will be tutorials from start to finish, concerning the software side. Everything from installing Arduino Studio over downloading and modifying this project to flashing the Arduino will be covered. There will likely be a mix of written and video tutorials depending on what suits the explained tasks best.
Depending on feedback from the community there may also be tutorials about how to wire up the buttons to the Arduino.
Everything released as part of or for this project, including the tutorials will be released under a common OpenSource license. This license will likely be the MIT license, however considering it is a software license I will have to see how well it applies to tutorials and other peripheral material.
All resources shown have been created by myself.