Jump to content
Sign in to follow this  

Simple Arduino Micro Joystick Project

Recommended Posts

Hello Guys, and Hello Sokol


I was asking dumb questions on the Kamaroffs Topic, but in order to not hijack his topic I decided to create a new one.


I am planning to make a custom high precision gimbal joystick and experimenting and learning on the fly. It is a very humble project compared with the masters like Baur and others.

For now I am able to make a most basic and simple joystick by using a Arduino Micro.


Components that I have used;

Arduino Pro Micro Clone

1x thumb joystick

1x pushbutton

1x slide potentiometer (for throttle)


For firmware: I used MHeironimus's joystick Library for starters.



It was very easy to upload the code and make the arduino act like game controller in windows. No additional tricks neeeded to bootload. Just uploaded with the arduino IDE.

Now I have my joystick with one fire button and a throttle.


At the moment I have this question. Alternatively MMJoy2 firmware looks very popular. What is the advantages and disadvantages of using MMJoy2 over MHeironimus's joystick Library.

MMJoy's firmware loading seemed to be very trick.


Share this post

Link to post
Share on other sites

Advantage of use a code" sketch - like the linked - if you are used to code, is you can customize the code accord your needs. 


This code promise "up to 16-bit precision", but ATMEGA32u4 internal ADC is 10 bits (1024) and the code show:

Default: 0 to 1023 



Advantage of use a code "firmware" - like MMjoy2 (or Easy Joy 32 One) - is you don't need deal with code for customize your joystick parameters, several options is selectable in MMJoysetup configurator GUI. You can


- Customize you new "joystick" name (up 10 characters)

- Customize VID/PID number - this allow you set the new joystick for appear for Windows/Games before or after other commercial joystick - important feature

- define use 2 to 8 axes. No used axis is not show in Windows and don't became a "antenna" picking noise

- define use 0 to 128 buttons

- use external ADC (MCP3202, 04, 08) for increase axis resolution - ATMEGA32u4 internal ADC is 10 bits

- use contactless sensor in digital mode (this allow use more long cables between sensor and controller), besides analog sensor (HALL, pot').

- set modes for buttons, e.g. pulse, timer

- set button as "shift" for other buttons

- use up to 6 Encoder

- set axis response curve in firmware (and not in 3rd part program running in games background, e.g. TARGET)

- support Shift Register m/c what make use grips from old Tm F16FLCS, F22 PRO, Cougar  "PnP, or wire 128 buttons more simple


BTW - The guy who create MMJoy2 firmware (development of the lendary Mindaugas MJoy8/16 of 2004) - MegaMOZG  - is the same behind VirPil electronics.  ;)


Load MMjoy2 Firmware is easy, but some people (as usual) mess with this. :)


Is only need install driver for COMM port before use MMJoyConfigurator for load the firmware.

Edited by Sokol1

Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Create New...