Skip to content

IMUF 230

Compare
Choose a tag to compare
@Quick-Flash Quick-Flash released this 18 May 05:25
· 8 commits to master since this release
acc7392

IMUF 230 binary for Helio/Strix hardware is compatible only with 0.3.0 exclusively. Do not use for older 0.1.0 or 0.2.0.

IMUF 225 and IMUF 230 add the new Sharpness parameter to the IMUF filter. This changes how the dynamic biquad filter within the IMUF acts. Essentially a higher sharpness makes the dynamic biquad more dynamic based on error. Your IMUF_LPF value is the base value for the dynamic filter. Low values can be used if desired, a high sharpness is then required.

What makes IMUF 225 and IMUF 230 different? IMUF 225 uses cross axis data to help determine the Kalman filter. IMUF 230 uses no cross axis data to determine the kalman filter (how it is done in 0.3.0 for normal fc). IMUF 230 is recommended but you are free to fly what you like.

Users are still welcome to use RC209b (aka RC9b), RC211 (aka RC11), RC213, or 224.

The Windows® based tool is still required for flashing. Please keep the "Original Helio Firmware" UN-checked. If for some reason you flash wrongly, just plug usb, and wait 5 full minutes for the DFU to connect.

Imperative:

  • Do not use 225 & 230 on EmuFlight older than 0.2.32
  • Save your diff all and dump all prior to flashing IMUF.
  • Flashing may possibly cause invalid data in your settings, especially LPF's that could cause fly-away. This is seldom; however, be sure to validate your LPF and other values because the CLI command defaults may not reset them properly. The best option is [re]flash EmuFlight 0.3.0 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.
    #For safety, ONLY IF your data is corrupted: reset default dTerm LPF's (OR set your own tuned preference)
    set dterm_lowpass_hz_roll = 100
    set dterm_lowpass_hz_pitch = 100
    set dterm_lowpass_hz_yaw = 100
    set dterm_lowpass2_hz_roll = 250
    set dterm_lowpass2_hz_pitch = 250
    set dterm_lowpass2_hz_yaw = 250
    

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