MissionPlanner
MissionPlanner copied to clipboard
RC Calibration Wizard Improvement
Issue details
There are way too many users that end up with inputs (and consequently outputs) reversed. This stems from incorrect RC Calibration user errors. Although we say in the docs to make sure that the green bars move with the sticks, there are still far too many people that don't get it right or don't notice. It results in too many crashes, and this problem could be solved with a better step-by-step wizard and calibrating one thing at a time.
I have heard that other GCS's do it differently. I haven't used them, but I think the following procedure would make the most sense:
- Confirm the user wants to calibrate his/her radio.
- Ask user to remove any radio trims, center sticks, lower throttle, and "press any key"
- Ask user to roll right only, hold, and "press any key" like the accelerometer calibration
- Ask user to roll left only, hold, and "press any key"
- Ask user to pitch nose-up, hold, and "press any key"
- Ask user to pitch nose-down...
- Throttle up...
- Yaw right...
- Yaw left...
- Flip all of the mode switches and dials (and record like the whole procedure is recorded currently)
- Return all sticks to neutral positions
Sure, the "corners" of the stick positions may not be 100% accurately recorded for min/max, but there should be no problem if an RC input is beyond the max or min; it will still be full-value. We're more concerned here about users not getting to full value due to not calibrating.
By using each individual step, the reversals and RCmap channels can be automatically calculated. It also accomodates users who are used to a reversed stick.
Behind the scenes:
- Confirm calibration intent.
- Confirm neutral start & set trims.
- Find CH with the most change, set RCMAP_ROLL to that channel, if change is negative then reverse the channel, record RC(CH)_MAX (or MIN if reversed)
- Record RC(CH)_MIN (or MAX if reversed)
- Find CH with the most change, set RCMAP_PITCH to that channel, if change is negative then reverse the channel, record RC(CH)_MAX (or MIN if reversed)
- Record RC(CH)_MIN (or MAX if reversed)
- Find CH with the most change, set RCMAP_THROTTLE to that channel, if change is negative then reverse the channel, record RC(CH)_MAX (or MIN if reversed).
- Find CH with the most change, set RCMAP_YAW to that channel, if change is negative then reverse the channel, record RC(CH)_MAX (or MIN if reversed)
- Record RC(CH)_MIN (or MAX if reversed)
- Find all of the rest of the Min's and Max's by using the old technique
- Set RC(n)_TRIM for all channels, and RC(throttle)_MIN.
Version
All
Platform
[X] All [ ] AntennaTracker [ ] Copter [ ] Plane [ ] Rover [ ] Sub
Airframe type
ALL
Hardware type
Anything with a transmitter
Logs
N/A