github emuflight/EmuFlight 0.4.0
EmuFlight 0.4.0

latest releases: 0.4.3, 0.4.2, 0.3.5...
3 years ago

EmuFlight 0.4.0

This is a major feature release

  • EmuFlight is software that is open source and is available free of charge without warranty of any kind. Contributions are always welcome and encouraged via https://github.com/emuflight/

This is a re-release that fixes two minor issues

  • Angle mode is now more responsive.
  • IMUF Q default is 6000 as the new baseline for tuning from.

WARNINGS

  • DJI components bypass Configurator safety-checks. Do not attempt arming while connected to Configurator with LiPo plugged. Always remove propellers and use a smoke-stopper for extra safety.
  • Flash with full-chip erase.
  • SpeedyBee App is not yet compatible.
  • LUA Scripts are not yet updated.
  • 0.4.0 Should be re-tuned as 0.3.X tunes may fly unsatisfactory for 0.4.0.
  • It is ideally best to tune Lowpass Filters per BlackBox analysis. Do not full-send without motor temperature tests. i.e. Do not flash and "rip" or risk "R.I.P."
  • EmuFlight's Horizon mode does NOT auto-level when inverted. This is by design.

New Features in 0.4.0 since 0.3.4 (sorted by timeline)

  • Motor Output Mixer - Options for the controller's motor output. New smooth variants change how the axes are mixed with throttle. (Tyler Corleone)
  • Thrust Linearization - Compensation for inherent non-linearity of thrust and rpm of motor output.
  • Throttle Linearization
    • linear_throttle Range: OFF, ON. Default value: OFF.
  • Axis-Lock - Significantly reduces pidsum for opposing axes.
    • axis_lock_multiplier Range: 0-10. default 0 (Off).
    • axis_lock_hz Allowed Allows range: 1-50. Default 2.
  • EmuGravity - Simple implementation of anti-gravity to boost the error when changing throttle.
    • emu_gravity Range: 0-255. Default 50.
  • ABG Filters - Alpha Beta Gamma filtering on Gyro or dTerm. Used to gain cleaner or more fine-tuned filtering.
    • Off by default.
    • gyro_abg_alpha Range: 0-1000. Default 0 (OFF). Low values are heavy filtering. Higher values are less filtering. Recommended values are 400-700 +/-.
    • gyro_abg_boost Range: 0-2000. Default 275.
    • gyro_abg_half_life Range: 0-250. Default 50.
    • dterm_abg_alpha Range: 0-1000. Default 0 (OFF). Low values are heavy filtering. Higher values are less filtering. Recommended values are 400-700 +/-.
    • dterm_abg_boost Range: 0-2000. Default 275
    • dterm_abg_half_life Range: 0-250. Default 50.
    • wiki: https://github.com/emuflight/EmuFlight/wiki/Alpha-Beta-Gamma-filter
  • Yaw Direct FeedForward - FeedForward based on setpoint. The more setpoint, the higher the yaw-ff.
    • df_yaw Range 0-200. Default 15.
    • df_angle_low Range 0-200. Default 70.
    • df_angle_high Range 0-200. Default 0.
  • Smith Predictor on gyro
    • Defaults are generally good. EmuConfig only has an ON/OFF toggle.
    • smith_predict_enabled Range: OFF, ON. Default ON.
    • smith_predict_str Range: 0-100. Default 50.
    • smith_predict_delay Range: 0-120. Default 40.
    • smith_predict_filt_hz Range: 1-250. Default 5.
  • Angle-Mode 2.0
    • Nothing new to configure.
    • Advancement from LynchPin problem-solving.
  • KISS and Actual Rates (Thanks to CTSnooze & BetaFlight)
    • rates_type Range: BETAFLIGHT, RACEFLIGHT, KISS, ACTUAL. Default BETAFLIGHT.
    • does not auto-convert rates. Need proper values or use [future] EmuConfig.
  • Helio-only: PT(n) on IMUF. Requires IMUF256
  • Updated Kalman Filter (Direct from Helio IMUF problem-solving)
    • Nothing new to configure.
    • Q and W have more effect. Default Q 3000 maybe too effective, please try 6000 +/-
  • dTerm LPF2 type separate from dTerm LPF1 type.
  • PT(n) on Gyro and dTerm (PT1×n Iterations)
    • gyro_lowpass_type Range: PT1, BIQUAD, PT2, PT3, PT4. Default PT1 same as historically.
    • gyro_lowpass2_type same.
    • dterm_lowpass_type same.
    • dterm_lowpass2_type same.
  • PT(n) on RC-Smoothing
    • rc_smoothing_input_type Range: PT1, BIQUAD, PT2, PT3, PT4. Default PT2.
    • removes rc_smoothing_derivative
  • Upgraded Dynamic Gyro Notch Filters (Thanks in part to Karatebrot & BetaFlight)
    • feature dynamic_filter|feature -dynamic_filter
    • dynamic_gyro_notch_q Range 1-1000, Default 400 Helio, 350 non-Helio.
    • dynamic_gyro_notch_count Range 1-5, Default 3.
    • dynamic_gyro_notch_min_hz Range 30-1000, Default 150.
    • dynamic_gyro_notch_max_hz Range 400-1000, Default 600.
  • Dynamic D Term Notch Filters
    • dterm_dyn_notch_enable Range ON, OFF. Default OFF.
    • dterm_dyn_notch_q Range 1-1000, Default 400.
  • GPS Plus Code (Thanks to Dentex & iNav)
    • plus_code_digits Range 10-13.
    • plus_code_short Range ON, OFF.
    • osd_plus_code_pos Range 0-3071.
  • RedPine SPA RX protocol (Thanks to Pashky and BetaFlight)

Changelog

  • All features listed above. Motor-Output Mixers, Smith-Predictor, and upgraded Dynamic-Filters are most notable.
  • Removed Smart DTerm Smoothing
  • Removed WitchCraft
  • New targets and fixed targets
  • Various Fixes and Improvements to existing code/features.

Tips:

  • Defaults are possibly over-filtered. Tune filters as needed and with respect to other filters/filtering-methods. Pilots should not apply more filtering just to use a feature.
  • Most all tuning options can be set using the OSD!
  • Save a dump all from any existing Flight Controller configurations. Reference it for resources, OSD, serial, etc.
  • Reference firmware release notes, and EmuFlight wiki and EmuConfigurator wiki for additional information.
  • Join Discord for help: https://discord.gg/gdP9CwE
  • Pilots are welcome to submit tested, community-acceptable "Presets" using the template-formats provided here: https://github.com/emuflight/emuflight-presets/wiki

Filter Orders

  • Gyro: Kalman, Static-Notch, LPF1, LPF2, Dynamic-Notch, ABG
  • D-Term: LPF1, LPF2, Dynamic-Notch, ABG

Agenda:

  • Long-term: Work toward a full 1.0.0 release.
  • Long-term: New GUI Configurator forked from Pegasus, renamed Nemesis. For 1.0.0 compatibility only.

Immeasurable thanks to:

  • Dev-team, Contributors, Testers and more: QuickFlash, AndreySemjonov, Loutwice, Kaiowarez, MadChiller, nerdCoper, Risko, tylerCorleone, Igorshp(Armon), JulioCesarMatias, gretel, DzikuVx(Paweł Spychalski), Shikijo, pleasuretek, mbilozub, Marinus, NFE, Pierre Meunier, Skylion, PJC, 3dracingman, Denovich, NiceCrash, ehitaja, Filthrillz, kumokraft, CrashFPV, TintFPV, MrNoizeFPV, Vitales, WhiteHat(Binary)FPV, teklust5401, ill bro, Vanadio, Kore, Gaétan, Mike P, Mainbrain, OGL, t0t0, hakintosh, Inva, gcc.quader, Dogsock, Juelz, DrSchnickistein, Alka, BrandonsBakedBeans, CesiumSalami, JoshG, krunked, knoopx, sweebee, BrockLeeFPV, dentex, teckel12, sfonkter, dnlkrnwnm, Beau Brewski, @flickFPV, and countless Discordians that assist each other, and especially third-party github contributors.
  • If you contributed and was inadvertently missed, apologies and please notify a dev for inclusion.
  • Thanks to other projects, teams and vendors: BaseFlight, CleanFlight, BetaFlight, ButterFlight, SilverWare, Project Mocking Bird, iNav, RaceFlight, HelioRC, NewBeeDrone, HGLRC, Diatone, APCProps, Trappy/TBS, KarateBrot, CTSnooze, fgiudice98, Asizon. Each of which have been valuable for resources and communications.
  • Thanks to BetaFlight and iNav for target resources.
  • Without the help of all these contributors, EmuFlight would not be what it is today! Big round of applause to all who were and are a part of this adventure! For the glory of Emu!

Please report Configurator-specific bugs to

Please report Firmware-specific bugs to

--

Don't miss a new EmuFlight release

NewReleases is sending notifications on new releases.