IMUF 231
IMUF 231
IMPORTANT NOTES
Changleog:
- Covariance math improvement.
Notes:
- Identical to 230 except with backported Paweł Spychalski's cavarience math fix from EmuFlight source-code.
- Pilots are welcome to use any IMUF versions liked best. New IMUF releases are not requirements.
Compatibility
- IMUF 231 binary for Helio/Strix hardware is compatible only with 0.3.X exclusively. Do not use for older 0.1.0 or 0.2.0.
- Pilots are still welcome to use any IMUF version based on their personal preferences, but only 225 and above make use of the sharpness feature which require newer EmuFlight (0.2.32+, 0.3.0+).
The Windows® based tool is still required for flashing. Keep the "Original Helio Firmware" UN-checked, or you are really going to have a bad time. If for some reason you flash wrongly, just plug usb, and wait 5 full minutes for the DFU to connect.
Imperative:
- Compatible only with 0.2.32+, 0.3.0+
- Save your
diff all
anddump all
prior to flashing IMUF. - Flashing may possibly cause invalid data in your settings, especially very-large LPF values that could cause fly-away. This is seldom; however, be sure to validate your LPF and other values. The CLI command
defaults
may not reset them properly, so set them manually if you see a problem. - The best option is to [re]flash EmuFlight 0.3.X firmware (with full-chip erase) after flashing the IMUF binary.
- If your LPF values are in a normal range, then there is no issue to fix.
Thanks to
- Paweł Spychalski for improved covariance math.
Additional information:
- Sharpness math in this IMUF is as follows:
src/filter/filter.c:83: sharpness = (float)filterConfig.sharpness / 250.0f;
src/filter/filter.c:110: float errorMultiplierX = ABS(setPoint.x - filteredData->rateData.x) * sharpness;
src/filter/filter.c:111: float errorMultiplierY = ABS(setPoint.y - filteredData->rateData.y) * sharpness;
src/filter/filter.c:112: float errorMultiplierZ = ABS(setPoint.z - filteredData->rateData.z) * sharpness;
- Therefore, for no affect
set sharpness = 250