Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
100 commits
Select commit Hold shift + click to select a range
012d195
Add quaternion based orientation hold for fixed wing (inverted / knif…
swissembedded Jul 5, 2026
45f939b
Replace swing-twist heading removal with reduced attitude error
swissembedded Jul 5, 2026
f7d1b47
Add switchable altitude floor with automatic upright+climb recovery
swissembedded Jul 5, 2026
b295621
Add thrust vectoring servo mixer inputs with inverse thrust compensation
swissembedded Jul 5, 2026
7d61bec
Add per-attitude pitch trim to the orientation hold targets
swissembedded Jul 5, 2026
313d54a
Split knife edge pitch trim per side
swissembedded Jul 5, 2026
dad18db
Add figure sequencer with altitude assist (roll / loop / 4-point roll)
swissembedded Jul 6, 2026
740af30
Add programmable figure sequences with precondition gates
swissembedded Jul 6, 2026
e91487c
Reset rate-loop I-term on orientation hold target switches
swissembedded Jul 6, 2026
0788417
Add 3D LOCK mode: attitude lock on stick release
swissembedded Jul 6, 2026
ef5d3dd
Add MSP2_INAV_ORIENTATION_HOLD_TEST level-1 injection command
swissembedded Jul 6, 2026
92d4e61
Add hover throttle: altitude hold in the prop hang (doc section 5)
swissembedded Jul 6, 2026
b0a7031
Add IMPULSE (post-stall entry) and WAIT_POS (containment) segments
swissembedded Jul 7, 2026
c859383
Fix MSP_BOXNAMES overflow: shorter box names + SITL MSP out-buffer
swissembedded Jul 7, 2026
0950436
Keep pidOrientationHold out of ITCM (NOINLINE)
swissembedded Jul 8, 2026
5a43dca
docs: regenerate Settings.md (update_cli_docs.py)
swissembedded Jul 8, 2026
ffebe99
Orientation holds: active altitude assist (shared with figure sequencer)
swissembedded Jul 10, 2026
90b4918
Orientation holds: engage the altitude assist only once the attitude …
swissembedded Jul 10, 2026
44b7a4d
Orientation holds: roll like a pilot into near-antipodal targets
swissembedded Jul 10, 2026
9317423
Orientation holds: continuous axis blend instead of hard antipodal th…
swissembedded Jul 11, 2026
599575c
Orientation holds: persistent slewed target quaternion (v2 core)
swissembedded Jul 11, 2026
3e0c204
Prop hang: configurable hover throttle floor (ohold_hover_thr_min)
swissembedded Jul 11, 2026
44e2bac
Prop hang: hover throttle floor covers thrust vectoring too (doc)
swissembedded Jul 11, 2026
fb54d18
Prop hang: learn the damping reserve instead of hand-tuning a hover gain
swissembedded Jul 11, 2026
4b92db1
Prop hang: widen the limit-cycle detector band to 8 Hz
swissembedded Jul 11, 2026
3c5993e
Prop hang: persist the learned hover gain (ohold_hover_gain)
swissembedded Jul 11, 2026
d713856
docs: regenerate Settings.md (update_cli_docs.py)
swissembedded Jul 11, 2026
f675a23
TVC: raise the tvc_gain ceiling to 400 percent
swissembedded Jul 11, 2026
c9e40f9
Orientation holds: error leash with target pullback (qacro pattern)
swissembedded Jul 11, 2026
d5409f7
Orientation holds: own slew rate for preset entries (ohold_entry_rate)
swissembedded Jul 11, 2026
e7e863e
Orientation holds: stick deflection carves the target (ANGLE semantics)
swissembedded Jul 11, 2026
211fe8c
Orientation holds: the altitude assist yields to a deliberate pitch i…
swissembedded Jul 11, 2026
cab0e73
SITL: --lockstep, simulated time advances 1 ms per MSP_SIMULATOR frame
swissembedded Jul 11, 2026
73d6812
SITL lockstep: widen the frozen-clock window while RX bytes wait
swissembedded Jul 11, 2026
4bad112
SITL lockstep: anchor the creep window on every byte arrival
swissembedded Jul 11, 2026
5171d4a
SITL lockstep: mutex the clock state, the anchors were torn
swissembedded Jul 11, 2026
1052ad4
SITL lockstep: keep the creep window open while RX bytes wait unparsed
swissembedded Jul 11, 2026
c3a9594
SITL lockstep: absolute tick grid, never inherit the high-water mark
swissembedded Jul 12, 2026
83714d2
Flat spin: FLAT SPIN flight mode plus a SPIN figure segment
swissembedded Jul 12, 2026
4a68cfe
Prop hang: the learned gain applies only inside the hover regime
swissembedded Jul 12, 2026
e9d46ea
Prop hang: hover throttle defaults from the rig sweep (P 85, D 100)
swissembedded Jul 12, 2026
3b6974a
Orientation hold: exit handover slew toward ANGLE
swissembedded Jul 12, 2026
d2d2947
Knife/inverted throttle assist: criterion vz -> 0 (ohold_assist_thr_p/i)
swissembedded Jul 12, 2026
ca09277
Figure line-hold: earth-anchored trajectories, full attitude error
swissembedded Jul 12, 2026
3712ea1
Hover throttle: pilot corrects via climb-rate command, not override
swissembedded Jul 12, 2026
032649f
docs: regenerate Settings.md (ohold_assist_thr_p/i)
swissembedded Jul 12, 2026
edf4844
Hover regime: raise the baro position weight (ohold_hover_baro_weight)
swissembedded Jul 12, 2026
b079fbc
FLAT SPIN generalized: spin about the earth vertical in any held atti…
swissembedded Jul 12, 2026
d4a7f4f
Spin stick sense: aircraft-referenced, not earth-referenced
swissembedded Jul 12, 2026
f229856
Learned damping reserve generalized: one scale per regime
swissembedded Jul 12, 2026
28f75ff
Altitude ownership follows the attitude, not the selected box
swissembedded Jul 12, 2026
9c483b3
Knife edge speed feedforward (ohold_knife_speed_ff)
swissembedded Jul 12, 2026
322338b
Knife/inverted assist: keep the chosen speed as the forward component
swissembedded Jul 12, 2026
431f5b1
Stall reserve monitor: control effort is the EARLY speed-raise criterion
swissembedded Jul 12, 2026
a4613c5
Crash detection: impact followed by stillness stops the motor
swissembedded Jul 12, 2026
d27c673
GPS altitude requires a solid constellation (lock-quality Z gate)
swissembedded Jul 12, 2026
5169bbb
Crash detection: motor cut with re-allow gesture instead of disarm
swissembedded Jul 12, 2026
d3defc1
crash detection: baro-referenced stillness + GPS ground-speed gate
swissembedded Jul 13, 2026
bfaeda9
altitude floor: the recovery climb gets its own energy
swissembedded Jul 13, 2026
d962e18
altitude floor: pilot takeover releases the recovery
swissembedded Jul 13, 2026
9078bc3
sitl: no CPU-load arming gate in a SITL build
swissembedded Jul 13, 2026
cf607ac
sitl: skip the CPU-load arming gate only under --lockstep
swissembedded Jul 13, 2026
a8696c1
docs: OrientationHold feature guide (wiki-ready)
swissembedded Jul 13, 2026
b94b5f7
crash detection: standalone USE_CRASH_DETECTION feature
swissembedded Jul 13, 2026
1fed1dc
target: gate the orientation-hold suite to > 512 KB flash
swissembedded Jul 13, 2026
4a04a1b
docs: OrientationHold operate-and-tune guide
swissembedded Jul 13, 2026
bc4dc24
crash detection: works on any flying platform, motor cut holds a copt…
swissembedded Jul 13, 2026
d253f2a
Derive instead of ask: load governor, derived gains, platform gating
swissembedded Jul 15, 2026
f7646cd
crash detection: fix no-baro builds (-Werror unused)
swissembedded Jul 15, 2026
59638db
smix: widen the speed limit to uint16 - declare a real servo's ceiling
swissembedded Jul 15, 2026
c27620e
Revert "smix: widen the speed limit to uint16 - declare a real servo'…
swissembedded Jul 16, 2026
c3b9411
ROTOR GUARD: autogyro tip-over catch (box, altitude-floor pattern)
swissembedded Jul 17, 2026
38f4223
ROTOR GUARD: three fixes from the bench proof flights
swissembedded Jul 17, 2026
c8a034e
SITL: safety-state word in debug slot 7; guard tuning documented
swissembedded Jul 17, 2026
53acaa7
floor: engage on breaking THROUGH the line, drop the prediction
swissembedded Jul 17, 2026
3acf282
AHRS: attitude gate for GPS aiding on airplanes
swissembedded Jul 18, 2026
09b647b
floor: document the pilot-override contract (Daniel's call)
swissembedded Jul 18, 2026
16b7112
rotor guard: an idle throttle stick means landing - stand down
swissembedded Jul 18, 2026
41a6287
SITL: effective acc weight in debug slot 6
swissembedded Jul 18, 2026
4b2f58c
FW_AEROBATICS: one runtime feature, default off (FW_LAUNCH pattern)
swissembedded Jul 18, 2026
e594229
review fixes: three real defects
swissembedded Jul 18, 2026
3d8c34a
review hygiene: gated debug writes, folded defines, honest comments
swissembedded Jul 18, 2026
fc3a6ce
floor: a catch latches the interrupted mode; the recovery ends in an …
swissembedded Jul 18, 2026
5ed62ab
AHRS: escape and re-seed the magnetic antipode
swissembedded Jul 18, 2026
b4c8a20
floor: defend the line against a held stick; expose the orbit form
swissembedded Jul 18, 2026
9cc7bed
refactor: the aerobatics suite is called, not inlined (hook diet)
swissembedded Jul 18, 2026
90c0bdb
AHRS: gate the magnetic-antipode reseed behind FW_AEROBATICS
swissembedded Jul 19, 2026
744f5bb
crash detection: own FEATURE_CRASH_DETECTION bit, decoupled from aero…
swissembedded Jul 19, 2026
10ac092
soaring: thermal soaring module (net vario + wind-shifted centering)
swissembedded Jul 19, 2026
72aaffc
nav: generalise the wandering forced-poshold anchor; soaring drives it
swissembedded Jul 19, 2026
61050d9
soaring: default soar_sink_level from the measured easyglider polar
swissembedded Jul 19, 2026
13400a1
docs: regenerate Settings.md
swissembedded Jul 19, 2026
37eaf35
aerobatics: rename USE_ORIENTATION_HOLD compile flag to USE_FW_AEROBA…
swissembedded Jul 19, 2026
0357a61
crash: compare the rotation squared instead of taking a sqrt
swissembedded Jul 19, 2026
ef6fc03
msp: keep the orientation-hold test injection off flight hardware
swissembedded Jul 19, 2026
688177d
soaring: idle the motor while thermalling so it soars on the lift
swissembedded Jul 19, 2026
4e399d6
aerobatics: hide 11 tuning settings behind clean fixed inits
swissembedded Jul 19, 2026
7b8d567
docs: frame the altitude floor as the panic net; drop the stale look-…
swissembedded Jul 20, 2026
481e959
fw(aerobatics): hold the floor latch through the un-requested state
swissembedded Jul 20, 2026
ea480cc
docs: floor latch is universal (any figure) and re-engages only on a …
swissembedded Jul 20, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
342 changes: 342 additions & 0 deletions docs/OrientationHold.md

Large diffs are not rendered by default.

260 changes: 260 additions & 0 deletions docs/Settings.md
Original file line number Diff line number Diff line change
Expand Up @@ -392,6 +392,36 @@ Optical flow module alignment (default CW0_DEG_FLIP)

---

### alt_floor_altitude

Altitude floor [m above home]. With the ALT FLOOR mode active and armed (climbed above floor + margin once), SINKING THROUGH the floor engages an automatic upright + climb recovery - no prediction, the crossing is the trigger. Set the floor high enough that the recovery fits below it (a dive recovery consumes roughly 15-25 m). Back at the floor the aircraft ORBITS the breach point on the fixed-wing loiter (nav_fw_loiter_radius) and waits - GPS-anchored while the position estimate is healthy (level flight restores the antenna's sky view), a constant-bank circle otherwise; the pilot gets time to collect themselves, there is no automatic hand-back. SET nav_fw_loiter_radius TO MATCH YOUR SPEED: the circle must be physically flyable, radius >= v^2 / (9.81 * tan(bank)) - an aerobatic airframe at 25 m/s needs roughly 150 m; too small a radius makes the loiter hunt at full bank. THE PILOT OVERRIDES THE AUTOPILOT: held sticks keep steering (a full held rudder drives a spin straight through the floor) - release the sticks and the floor catches; centering the sticks once and then deflecting roll/pitch takes over and releases the orbit. A catch that interrupts ANY active aerobatic mode (every hold, every figure, the sequencer) LATCHES that mode out until the pilot switches it away. Switch the ALT FLOOR mode off to land.

| Default | Min | Max |
| --- | --- | --- |
| 30 | 5 | 500 |

---

### alt_floor_climb_pitch

Nose up pitch target [deg] flown during altitude floor recovery

| Default | Min | Max |
| --- | --- | --- |
| 15 | 5 | 45 |

---

### alt_floor_margin

Margin above the altitude floor [m]: the floor arms after climbing above floor + margin once, and the recovery climb ends there - back above floor + margin and climbing, control returns to the pilot. A roll/pitch input after the catch (sticks centered once first) releases the recovery immediately.

| Default | Min | Max |
| --- | --- | --- |
| 10 | 2 | 100 |

---

### alt_hold_deadband

Defines the deadband of throttle during alt_hold [r/c points]
Expand Down Expand Up @@ -1162,6 +1192,66 @@ If failsafe activated when throttle is low for this much time - bypass failsafe

---

### fig_assist_max

Cap [deg] on the altitude assist nose-up offset

| Default | Min | Max |
| --- | --- | --- |
| 12 | 0 | 30 |

---

### fig_assist_vz_gain

Altitude assist: nose-up offset [deg per m/s] of sink rate during figures. Keep low: the climb rate estimate lags and a strong damping term fights fast figures

| Default | Min | Max |
| --- | --- | --- |
| 1 | 0 | 20 |

---

### fig_assist_z_gain

Altitude assist: nose-up offset [deg per 10 m] of altitude error during figures. The controller distributes the offset to elevator and rudder as the roll phase demands

| Default | Min | Max |
| --- | --- | --- |
| 20 | 0 | 100 |

---

### fig_loop_rate

Pitch rate [deg/s] flown by the FIGURE LOOP mode

| Default | Min | Max |
| --- | --- | --- |
| 90 | 30 | 360 |

---

### fig_point_dwell

Dwell time [ms] on each point of the FIGURE 4PT ROLL

| Default | Min | Max |
| --- | --- | --- |
| 500 | 100 | 2000 |

---

### fig_roll_rate

Roll rate [deg/s] flown by the FIGURE ROLL and FIGURE 4PT ROLL modes

| Default | Min | Max |
| --- | --- | --- |
| 90 | 30 | 360 |

---

### fixed_wing_auto_arm

Auto-arm fixed wing aircraft on throttle above min_check, and disarming with stick commands are disabled, so power cycle is required to disarm. Requires enabled motorstop and no arm switch configured.
Expand Down Expand Up @@ -4462,6 +4552,46 @@ Waypoint radius [cm]. Waypoint would be considered reached if machine is within

---

### ohold_entry_rate

Target slew rate [deg/s] for entering an orientation hold preset (INVERTED, KNIFE EDGE, PROP HANG). The entry rolls the hold target from the current attitude to the preset at this rate; figures keep their own fig_roll_rate / fig_loop_rate

| Default | Min | Max |
| --- | --- | --- |
| 180 | 30 | 720 |

---

### ohold_load_limit

Load budget [g x 10] the governor holds figures and spins to - a fact about the airframe (what it may pull), not a tuning knob. Load is speed times rotation rate, so at a given speed the budget is simultaneously the fastest rotation and the tightest radius (r = v^2/a): the governor slows the commanded rotation and the target slew with the measured overload, and bleeds throttle while a figure or spin flies (a governed rotation at full power just converts into speed, the load would stay). Plain holds at 1 g are untouched. 0 disables the governor.

| Default | Min | Max |
| --- | --- | --- |
| 40 | 0 | 160 |

---

### ohold_stick_angle

Body-frame target offset [deg] at full roll/pitch stick while an orientation hold preset is active: the deflection is a held angle offset from the rotated reference (carving), centered sticks return the target at ohold_stick_return_rate. Yaw stays a rate command. 0 = sticks act as raw rate commands like before

| Default | Min | Max |
| --- | --- | --- |
| 30 | 0 | 90 |

---

### ohold_stick_return_rate

Rate [deg/s] the hold target returns to the preset after the roll/pitch sticks center

| Default | Min | Max |
| --- | --- | --- |
| 45 | 5 | 180 |

---

### opflow_hardware

Selection of OPFLOW hardware.
Expand Down Expand Up @@ -5862,6 +5992,46 @@ Defines rotation rate on ROLL axis that UAV will try to archive on max. stick de

---

### rotor_guard_bank

Autogyro tip-over guard (ROTOR GUARD mode): bank angle [deg] beyond which, while sinking, the roll excursion counts as a tip-over (rotor rpm decayed, lateral tilt authority gone). Recovery: wings level, nose slightly down, throttle floor - thrust is the only lever that restores rotor rpm. TUNE PER AIRFRAME to just above the steepest bank it flies on purpose; the default is deliberately conservative, the SITL-proven Durafly Auto-G2 value is 45.

| Default | Min | Max |
| --- | --- | --- |
| 60 | 30 | 90 |

---

### rotor_guard_pitch

Pitch target [deg] during rotor guard recovery, negative = nose down: feeds the disk (inflow -> rotor rpm -> authority)

| Default | Min | Max |
| --- | --- | --- |
| -5 | -20 | 10 |

---

### rotor_guard_sink

Minimum sink rate [cm/s] for the tip-over detection - a banked climb or a flown figure does not trip the guard

| Default | Min | Max |
| --- | --- | --- |
| 100 | 10 | 1000 |

---

### rotor_guard_throttle_add

Recovery throttle floor = cruise throttle + this [us]. More pilot throttle always wins, and an IDLE throttle stick disables the guard entirely (landing intent - the guard never spins the thrust up against a deliberate throttle-zero; pulling to idle releases a running recovery). Must be enough that the airframe LEVELS OFF at the recovery attitude - a T/W below 1 needs a fatter floor (the SITL-proven Auto-G2 value is 380; the default merely arrests the roll, not the sink).

| Default | Min | Max |
| --- | --- | --- |
| 250 | 0 | 800 |

---

### rpm_gyro_filter_enabled

Enables gyro RPM filtere. Set to `ON` only when ESC telemetry is working and rotation speed of the motors is correctly reported to INAV
Expand Down Expand Up @@ -6242,6 +6412,76 @@ The strength factor of a Smith Predictor of PID measurement. In percents

---

### soar_alt_max

Leave the thermal once this altitude [m] is reached.

| Default | Min | Max |
| --- | --- | --- |
| 500 | 0 | 5000 |

---

### soar_alt_min

Do not enter a thermal below this altitude [m] - a safety floor for autonomous soaring.

| Default | Min | Max |
| --- | --- | --- |
| 50 | 0 | 3000 |

---

### soar_bank

Bank angle [deg] flown while circling a thermal.

| Default | Min | Max |
| --- | --- | --- |
| 35 | 15 | 50 |

---

### soar_centre_gain

Gain [%] on the thermal-centering gradient shift. Higher centres faster but chases turbulence; the wind-drift shift is always applied at full wind speed regardless.

| Default | Min | Max |
| --- | --- | --- |
| 100 | 0 | 300 |

---

### soar_sink_level

Level-flight sink rate [cm/s] at the tuning airspeed, used to compensate the aircraft's own sink out of the net vario. Raise it if the vario reads high in still air, lower it if it reads low. Default ~60 is a 1.8 m motor glider (measured min sink 0.6 m/s); a clean sailplane is lower.

| Default | Min | Max |
| --- | --- | --- |
| 60 | 0 | 500 |

---

### soar_vario_exit

Net climb rate [cm/s] below which circling stops and the aircraft returns to cruise (the thermal was flown through or died).

| Default | Min | Max |
| --- | --- | --- |
| 0 | 0 | 1000 |

---

### soar_vario_trigger

Net (total-energy) climb rate [cm/s] above which the SOARING mode stops cruising and starts circling a thermal. Requires a pitot - the net vario is meaningless without airspeed.

| Default | Min | Max |
| --- | --- | --- |
| 50 | 0 | 1000 |

---

### spektrum_sat_bind

0 = disabled. Used to bind the spektrum satellite to RX
Expand Down Expand Up @@ -6522,6 +6762,26 @@ Turtle mode power factor

---

### tvc_gain

Overall thrust vectoring deflection gain [%] at full thrust, applied to the TVC servo mixer input sources. Values above 100 use more of the mechanical vectoring travel per stabilized unit (the output stays clamped at full deflection); hover-heavy setups typically need 200 or more.

| Default | Min | Max |
| --- | --- | --- |
| 100 | 0 | 400 |

---

### tvc_thrust_comp

Inverse thrust compensation [%] for the TVC inputs: vane/tilt authority scales with thrust, 100 compensates fully (deflection ~ 1/thrust, capped at low thrust), 0 disables

| Default | Min | Max |
| --- | --- | --- |
| 100 | 0 | 100 |

---

### tz_automatic_dst

Automatically add Daylight Saving Time to the GPS time when needed or simply ignore it. Includes presets for EU and the USA - if you live outside these areas it is suggested to manage DST manually via `tz_offset`.
Expand Down
16 changes: 16 additions & 0 deletions src/main/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -323,6 +323,8 @@ main_sources(COMMON_SRC

flight/failsafe.c
flight/failsafe.h
flight/figure_sequencer.c
flight/figure_sequencer.h
flight/imu.c
flight/imu.h
flight/kalman.c
Expand All @@ -331,15 +333,29 @@ main_sources(COMMON_SRC
flight/smith_predictor.h
flight/rate_dynamics.c
flight/rate_dynamics.h
flight/altitude_floor.c
flight/altitude_floor.h
flight/rotor_guard.c
flight/rotor_guard.h
flight/soaring.c
flight/soaring.h
flight/crash_detection.c
flight/crash_detection.h
flight/hover_throttle.c
flight/hover_throttle.h
flight/mixer.c
flight/mixer.h
flight/orientation_hold.c
flight/orientation_hold.h
flight/pid.c
flight/pid.h
flight/pid_autotune.c
flight/power_limits.c
flight/power_limits.h
flight/rth_estimator.c
flight/rth_estimator.h
flight/thrust_vectoring.c
flight/thrust_vectoring.h
flight/servos.c
flight/servos.h
flight/mixer_profile.c
Expand Down
1 change: 1 addition & 0 deletions src/main/build/debug.h
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@ typedef enum {
DEBUG_GPS,
DEBUG_LULU,
DEBUG_SBUS2,
DEBUG_FW_AEROBATICS, // 0-3: learned regime gain scale [%] hover/inverted/knife/figure
DEBUG_COUNT // also update debugModeNames in cli.c
} debugType_e;

Expand Down
11 changes: 10 additions & 1 deletion src/main/config/parameter_group_ids.h
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,16 @@
#define PG_GEOZONE_CONFIG 1042
#define PG_GEOZONES 1043
#define PG_GEOZONE_VERTICES 1044
#define PG_INAV_END PG_GEOZONE_VERTICES
#define PG_ALTITUDE_FLOOR_CONFIG 1045
#define PG_THRUST_VECTORING_CONFIG 1046
#define PG_ORIENTATION_HOLD_CONFIG 1047
#define PG_FIGURE_SEQUENCER_CONFIG 1048
#define PG_FIGURE_SEQUENCE 1049
#define PG_HOVER_THROTTLE_CONFIG 1050
#define PG_CRASH_DETECTION_CONFIG 1051
#define PG_ROTOR_GUARD_CONFIG 1052
#define PG_SOARING_CONFIG 1053
#define PG_INAV_END PG_SOARING_CONFIG

// OSD configuration (subject to change)
//#define PG_OSD_FONT_CONFIG 2047
Expand Down
4 changes: 3 additions & 1 deletion src/main/drivers/accgyro/accgyro_fake.c
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,9 @@ static int16_t fakeAccData[XYZ_AXIS_COUNT];

static void fakeAccInit(accDev_t *acc)
{
acc->acc_1G = 9806;
acc->acc_1G = 2048; // 16 G scale, matching a real IMU (HITL injects
// acc.accADCf directly in g, so this only sets the
// full-scale the crash detector reads back)
}

void fakeAccSet(int16_t x, int16_t y, int16_t z)
Expand Down
Loading