SatRod - OpenSource Custom Joystick

in #utopian-io5 years ago



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).


Preview of what the Fusion 360 files will contain.

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.

Post Body

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.

Series Backlinks


While this project certainly seems interesting, it's more of an idea than a project at this point. Until some development has actually happened, it is very hard to even consider evaluating it.

If you want to contribute content that is relevant to Utopian, please read our guidelines. I would also recommend reading our weekly Top Of Utopian posts to get an idea of the kind of content we particularly like.

I look forward to seeing awesome relevant content from you in the future.

Due to ineligibility, your contribution has not been evaluated.

Need help? Write a ticket on
Chat with us on Discord.

Thank you for you feedback. I have written most of the software already. I just wanted to tidy it up a bit and improve the abstraction before committing to the repository. However considering what you said I have just uploaded it to the repository. (See develop branch)

The fusion 360 models are also mostly ready however I have to check the licenses of some 3rd party models I used (mostly for the screws).

Will you reconsider the eligibility or should I write a new post later down the line?