Using any calibrations from Revo#1 on Revo#2 is about as bad as not doing calibrations at all. That includes thermal calibration.
Yes, I do cut out those calibrations and save them as a separate uav file, but I mark each board and mark each file to match the board it goes with.
I do the following to upgrade to newest LP version where UAVOs changed:
- export UAV file twice, to two different names (one of them will be modified, one kept for fallback) old.uav and new.uav
- use uavofix to modify new.uav so that name comes first (before value) on each line
- erase settings and export that UAV file to olddefault.uav
- use uavofix to modify olddefault.uav (not usually needed) so that name comes first (before value) on each line
- upgrade to new version
- export UAV file to newdefault.uav
- use uavofix to modify newdefault.uav (not usually needed) so that name comes first (before value) on each line
- use grep or a text editor that can quickly and easily switch between two files so you can flip back and forth between exactly the same page in olddefault.uav and newdefault.uav and the "blink test" will make changes obvious.
- where ever you find a change between olddefault.uav and newdefault.uav, understand what the change ls (insert new default value, rename variable, add extra value, etc.) and make a change in new.uav. Any change in a UAVO will change the object ID, so you will change a lot of those. Important to decide if you think that what you are doing for that line is safe.
Here is a set of 16.09 "calibrations only" for my Sparky2#1
<!DOCTYPE UAVObjects>
<uavobjects>
<settings>
<object id="0x1262B2D0" name="AccelGyroSettings">
<field name="accel_bias" values="0.0518125482,0.125044808,0.728489697"/>
<field name="accel_scale" values="1.00152528,1.00071549,0.983911216"/>
<field name="accel_temp_coeff" values="0,0,0"/>
<field name="gyro_bias" values="-0.578340948,-0.517927885,-0.588053286"/>
<field name="gyro_scale" values="1,1,1"/>
<field name="gyro_temp_coeff" values="-0.00543077243,0.000153706147,0.0181076545,-0.000194396431,0.000825154886,4.76835885e-05"/>
<field name="temp_calibrated_extent" values="-1.91499996,81.534996"/>
</object>
<object id="0xB20D3DE" name="AttitudeSettings">
<field name="BoardSteadyMaxVariance" values="5"/>
<field name="InitialZeroWhenBoardSteady" values="True"/>
</object>
<object id="0x9A5BA08" name="RevoCalibration">
<field name="mag_bias" values="-114.978195,-195.573441,-47.4925842"/>
<field name="mag_transform" values="1.7704668,0,0,0,1.73121321,0,0,0,1.77277255"/>
</object>
<object id="0xC456EB9A" name="RevoSettings">
<field name="BaroTempCorrectionPolynomial" values="-43.4937019,2.87412429,-0.0833765119,0.000425159669"/>
<field name="BaroTempCorrectionExtent" values="-4.36000013,75.0400009"/>
</object>
</settings>
</uavobjects>:
I removed some "non calibration" fields from some UAVOs
I included mag calibrations but you should really redo mag calibrations when you move the FC to a new model.
I included BoardSteadyMaxVariance and InitialZeroWhenBoardSteady. These are only modified if you are using Basic AttiEstAlgo and you have a marginal FC, but if you change them, you probably want to keep the values. This is documentation for others that may read this.
Here is the (Linux) command that I wrote to fix the name / value order; I call it uavofix:
#!/bin/bash
if (( $# != 1 )); then
echo Usage: uavofix filename.uav
exit 1
fi
if [ -f "$1" ]; then
directory="$(dirname "$1")"
original="$directory/original"
mkdir "$original" 2>/dev/null
if [ -f "$original/$(basename "$1")" ]; then
echo Backup file exists: \"original/$1\"
exit 2
fi
mv "$1" original
sed -e 's/\(values=\".*\"\) \(name=\".*\"\)/\2 \1/g' -e 's/\(id=\".*\"\) \(name=\".*\"\)/\2 \1/g' < "$original/$(basename "$1")" > "$1"
# beware that this touch makes some editors blind to the changes (they won't ask for reload)
touch -r "$original/$(basename "$1")" "$1"
else
echo File not found: \"$1\"
exit 3
fi
To do thermal calibration I connect USB cable to FC, put FC in a fairly sealed (keep moisture out) plastic bag with usb cable extended to come out of bag. Put in freezer for 10 minutes. Get it out of freezer and put it in the bottom of a small box with paper or cloth towels wadded on top to hold it against the bottom. Sit box firmly on a hot light bulb in a way where it won't move. Immediately start thermal calibration. Don't let the box move at all until thermal cal is complete. Unplug light bulb a bit before FC it gets to temperature you want. I go from 0 degrees C (I may want to fly when it is freezing) to 70 degrees C (one of my quad FC is inside a dome and it gets to 70C in mid summer when sitting in the sun and powered on). These extremes (especially the 70C hot side) may do more harm than good, both to the FC and to the polynomial which may not handle such a wide range very well.