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)
mixer_impl
Range: LEGACY, SMOOTH, 2PASS. Default 2PASS.- LEGACY - the historical mixer
- SMOOTH - avoids harsh clipping of the legacy mixer.
- 2PASS - handles yaw output and roll/pitch output separately.
mixer_laziness
Range: OFF, ON. Default OFF.- toggle for a smarter clipping-prevention strategy.
- requires Thrust Linearization configured.
mixer_yaw_throttle_comp
Range: ON, OFF. Default ON.- wiki: https://github.com/emuflight/EmuFlight/wiki/Motor-Mixers-and-Thrust-Linearization#motor-mixers-and--thrust-linearization
- Thrust Linearization - Compensation for inherent non-linearity of thrust and rpm of motor output.
linear_thrust_low_output
- value to match physical motor's thrust curve data at low rpm.linear_thrust_high_output
- value to match physical motor's thrust curve data at high rpm.- wiki: https://github.com/emuflight/EmuFlight/wiki/Motor-Mixers-and-Thrust-Linearization#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 275dterm_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
imuf_ptn_order
Range: 1-4. default 3.- IMF256: https://github.com/emuflight/imu-f/releases/tag/256
- Flasher Tool: https://github.com/emuflight/Nemesis/releases/tag/imuf-flasher-0.1.0
- 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
--