MJoy version 1.2
This build enhances original MJoy version 1.1.
Change Notes
Schematics remain the same so it is fully compatible with original build 1 hardware.
Additional features and improvements:

- Added Autocalibration feature. Read more in Autocalibration section.
- Changed layout of HID descriptor
- Rudder and Throttle changed to 10 bit axis
- Dial and Slider IDs in HID descriptor changed to Z and Rx for better support in games
- Optimized partially non-blocking ADC reading
- Optimized HatSwitch Code
- Changed Vendor ID to 0000h so MJoy will always appear as first game controller device

Autocalibration
With new autocalibration feature you don't need to do the calibration manually in Windows.
It detects the center position of X, Y and Rudder axis every time when the controller is powered on.
This is when you plug in the joystick to USB or when you switch on your computer.
NB: Be sure you leave joystick handle and rudder in it's center position when power on the
computer or plug the joystick into USB!
If the center is not detected correctly simply replug the joystick into the USB port while leaving
all it's controlls in center position .
The minimum and maximum ranges of axis motion are detected during normal joystick operation.
You may want to move the joystick handle and all the controls to full extents when you first plug
in your joystick to speed up the range detection process.
When biggest range extent is detected and it does not change for 15 seconds it is stored to EEPROM
nonvolatile memory. In this way the joystick remembers the ranges the next time you power on the
controller and you don't have to worry about training joystick for the ranges anymore.
If for some reason you want to reset the ranges and redect them again you have to press and hold
any of the joysticks buttons while plugging it into the USB. Then it will redetect the ranges
as described above.
Changed Dial and Slider axis IDs
You will have to reassign them again in your game.
Enjoy this new version!
Yours,
Mindaugas aka MeanDog