SatRod is a project aiming to create a custom Joystick using an Arduino Leonardo. It includes easily customizable software for the Arduino, supporting up to three rotary encoders, momentary buttons and non-momentary switches. 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.
The first version of the SatRod has just been released. It includes an Arduino project that can be flashed onto an Arduino Leonardo. It handles all inputs and registers itself with your PC as a regular Joystick. All you need to do is to configure it for the particular buttons and/or analog axis you want to hook up. A list of the needed Arduino libraries can be found in the readme file of the GitHub repository.
Apart from the software there are also 3D models for a particular custom Joystick aimed at the game Elite Dangerous. Models for this include both Fusion 360 files for modification and STL files ready for slicing and 3D printing.
The project is not finished yet though. There are still some future goals I want to achieve with this project.
Firstly I want to make this project easy to use even for people who have never programmed before. I will make video tutorials for the entire software side of the process. Meaning you start with a freshly installed windows PC and I will walk you through everything you need to install, show you how to configure the software project and flash it to your Arduino. There will even be videos on how I assemble and wire up my particular custom Joystick. Tutorials on 3D modelling and 3D printing are not planned at this stage, depending on demand I may do that as well though. Or someone else can help me out with this.
Secondly I want this project to become a general repository for custom Joysticks. If you design your own custom Joystick using this project, it would be amazing if you were to share your config and 3D files with the community. I would love it if this becomes a repository of custom Joysticks where people that are unable to 3D design their own can just choose from a vast repository of existing Joysticks.
Thirdly but not lastly I am sure there is room for improvement on the software side. I have tested the software but you can never be sure you've squashed all the bugs. So there will be bugfixes should anything turn up. Also new features are surely going to come at some point. I want this to be as versatile as possible (concerning Joysticks of course).
If you want to contribute just go over to the GitHub repository and open issues if you have any, open pull-requests if you fixed something or want to add some 3D files. However there will also be a call for contribution after I have prepared the repository some more for contributions, i. e. have added the appropriate templates and so on.
Please let me know what you think! If you are unfamiliar with GitHub you can also comment here if you have any questions/problems or suggestions.
All resources shown have been created by myself.