Gimbal calibration - ExpressLRS/Handset GitHub Wiki

Ok, I'm sorry. There should be an easier way of doing the gimbal calibration, but it never quite makes it to the top of my list. One day...

For now, you have to;

Enable calibration mode by un-commenting #define STICK_CALIBRATION in the user_config.h (copy the user_config_template.txt to user_config.h if this is your first time compiling the firmware)

Recompile and flash to the handset

Turn on the handset. It may complain that the throttle isn't at min (since it isn't calibrated yet), push down on the rotary encoder to cancel the warning.

You should see a table of values for min, current and max raw ADC results for each channel. Move the sticks slowly around the limits of their travel (visit all 4 corners of each gimbal) so that he min and max get set.

Return the sticks to their centre positions so that you can read the mid values from the 'current' column.

Update user_config.h for each channel's min/centre/max raw value.

Move each stick and check how the current value changes. If necessary update the *_REVERSED settings for any channels as necessary.

Comment out #define STICK_CALIBRATION in the user_config.h

Recompile and flash to the handset. Hopefully you're now up and running with calibrated gimbals. You can confirm the full range and centering of each channel in the receiver tab of the betaflight configurator (or similar).