* fix(drivers/ak09940a): fix probe retry, devtype collision, and register naming
* fix(drivers/neopixel): check init return value and fix module name typo
* fix(boards/3dr/ctrl-n1): correct magnetometer i2c bus, LED indexing, chip variant for bootloader, and TIM3 conflict with srgbled_dma
* fix(boards/3dr/ctrl-n1): update bootloader for STM32H743VI
* fix(simulation): correct apparent wind sign and fixed-wing pitot model in SIH
* fix(simulation): simplify pitot model to always use body-x airspeed
---------
Co-authored-by: 0xDI <0xDI@users.noreply.github.com>
Add SENS_AFBR_ROT as the single source of truth for the AFBR-S50
mounting orientation and drop the -r CLI flag.
The -r flag was already non-functional: the getopt string declared
it without a trailing ':', so the case body called atoi(nullptr).
Removing it is harmless and avoids ambiguity between "user did not
pass -r" and "user explicitly passed -r 25".
The driver now reads orientation from SENS_AFBR_ROT in the
constructor. distance_sensor_s::ROTATION_* is a discontinuous enum
(0-7, 24, 25), and the param schema can't express that natively, so
the driver validates at start and falls back to ROTATION_DOWNWARD_FACING
on out-of-set values.
* fix(drivers/distance_sensor/vl53l1x): added median filtering and hysteresis based quality
* fix(drivers/distance_sensor/vl53l1x): revert back to 100/0 quality
Vendor-specific airframes (Holybro, UVify, ATL, COEX, Bitcraze,
ThunderFly, Applied Aeronautics) are not relevant on the ARK FMU
boards and only consume flash. Add an rc.board_airframes whitelist
to ark_fmu-v6x and ark_fmu-v6s that keeps only the generic
multirotor, fixed-wing, VTOL, and rover frame types.
Flash savings (default variant):
ark_fmu-v6x: 1965708 -> 1957772 B (-7936 B, free 372 -> 8308 B)
ark_fmu-v6s: 1960212 -> 1945748 B (-14464 B, free 8108 -> 22572 B)
Signed-off-by: Jacob Dahl <dahl.jakejacob@gmail.com>
* navigator: check geofence dataman update failures
* navigator: fix geofence import state handling
- Move the import success log after the dataman state write succeeds
- Store the active fence dataman id in the stats entry
- Add error logs before geofence import failure exits
Place firmware .bin files at the SD card root or staging directory
(/fs/microsd/ufw_staging/); on boot the UAVCAN server migrates them
to /fs/microsd/ufw/ and updates FW.db, then flashes any connected
node whose firmware version mismatches.
- Add firmware migration from SD root and staging dir into /fs/microsd/ufw/
- Maintain FW.db flat-file database mapping board IDs to original filenames
- Use cache-aligned DMA-safe read/write buffers (required on STM32H7)
- Add Tools/auterion/remote_update_fmu.sh for SSH-based FMU+canio updates
The current preflight check works by sending individual actuator
commands over mavlink. This can only be done sequentially, so the
surfaces do not move in a coordinated way, instilling little confidence.
To alleviate, this adds a control surface preflight check which causes
the allocator to command torque in the given direction, so the control
surfaces move as they would in flight.
Triggered by `{MAV,VEHICLE}_CMD_ACTUATOR_GROUP_TEST`. Only runs when
pre-armed (control surfaces, tilts) or armed (thrust). Test runs for 0.5
seconds -- for longer duration, send repeatedly from the GS.
Check is rejected in flight and cancelled when nav_state changes.
- Expose overrideCollectiveTilt in ActuatorEffectiveness, empty base, only overridden for Tiltrotor
- Allow giving collective tilt that is used in updateSetpoint in place
of command from tiltrotor_extra_controls
- Needs to be called with do_override = false to clear override
- add comment explaining technical debt