28678 Commits

Author SHA1 Message Date
Claudio Chies
24d06047bd
UAVCAN: Add device tracking and information publishing (#25617)
* uavcan: collect node info and publish every second

* UORB: Add DeviceInformation Message

Format DeviceInformation.msg with standard comment spaces

* SENS: add getter for device_id

* UAVCAN: add publishing of DeviceInformation based on publised message type, and Node Information

* LOG: add deviceInformation

* MSG:BAT: fix comment to be inline with the max_instaces

* UAVCAN: DeviceInformation, incorporated feedback

* UAVCAN: DeviceInformation, incorporated feedback

* UAVCAN: DeviceInformation, Fixed bug with Powermonitor

---------

Co-authored-by: Beat Küng <beat-kueng@gmx.net>
2025-12-16 14:53:44 -09:00
Pedro Roque
cb682006fe
fix: esc status sizing fix for gz simulation
* init: working towards dual-action ATMOS

* fix: update gz sim to latest

* fix: add motor number max fitting Actuator

* fix: revert non-necessary changes

* fix: ensure esc count does not exceed maximum number of ESCs

* fix: remove extra modules

* fix: sync submodules with remote

* fix: sync with main
2025-12-16 15:46:51 -08:00
Jacob Dahl
5632728467
lib: gnss: add RTCM parsing library (#26093)
* lib: gnss: add RTCM parsing library. Generated by Claude Code.

* lib: gnss: rtcm: use rtcm3_payload_length()

* lib: gnss: rtcm: set header year

* lib: gnss: rtcm: add units tests

* Update src/lib/gnss/rtcm.h

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update src/lib/gnss/CMakeLists.txt

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update src/lib/gnss/rtcm.h

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* remove mention of reset()

* lib: gnss: rtcm: more effecient preamble search

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-12-16 09:28:10 -09:00
Jacob Dahl
778ad160f2
msg: GpsDump: queue 8->16 and add device_id (#26091)
* msg: GpsDump: increase queue from 8 to 16 and replace instance with device_id

* gps: add back instance
2025-12-16 08:36:02 -09:00
Marco Hauswirth
8393f46100
Ekf2 add jamming to gnss checks (#26085)
* add jamming check to gnss checks

* keep original order of gnss_check params for default backwards compability
2025-12-16 10:10:37 +01:00
Brandon W. Banks
1345b3500a
Vehicle command for Prearm Safety button (#26079)
* added vehicle command and support to remotely activate/deactivate the safety system (#26078)

* added print_status support for prearm safety status

* updated safety button to map to MAV_CMD_DO_SET_SAFETY_SWITCH_STATE = '5300'

* safety switch cmd: fixed incorrect catch-all and added commanded_state variable for easier reading
2025-12-15 11:25:32 -09:00
Balduin
8604604a5b
logged_topics: clean up old commented-out topics (#26120) 2025-12-15 09:53:24 -09:00
bresch
d62f112017 ekf2: prevent false mag fault detection
A false positive could be triggered if velocity fusion started,
then stopped after takeoff and only position fusion started again
(because velocity fusion timed out and had a timestamp > time_last_on_ground).
We now also check if the fusion timeout is due to the innovation being
rejected (and not just a temporary check failure or data interruption).
2025-12-15 14:06:04 +01:00
Julian Oes
5fe82aa485
[Sponsored by CubePilot] Try to fix potential mavlink segfaults on USB disconnect (#26083)
* mavlink: fix potential use-after-free

If a mavlink instance is force stopped, the main thread might be out of
scope and the receiver thread would be doing a use-after-free.

Instead the receiver thread needs to check its own _should_exit flag.

* mavlink: protect shared data by mutex in dtor

I'm not sure if this potentially fixes any of the segfaults we have seen
on stopping mavlink instances but it potentially could matter if the
mavlink_receiver thread is killed after a timeout and tries to send any
messages as a zombie.
2025-12-12 12:24:02 -09:00
Alex Klimaj
12745baf6c
Adds configurable I2C address for PCA9685 PWM driver (#26051)
* Adds configurable I2C address for PCA9685 PWM driver

Introduces a parameter to set the I2C address for the PCA9685 PWM output driver, enhancing flexibility for hardware variations. Updates documentation and board initialization scripts to support the new configuration and streamline device startup.

* Update src/drivers/pca9685_pwm_out/module.yaml

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update src/drivers/pca9685_pwm_out/module.yaml

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Jacob Dahl <37091262+dakejahl@users.noreply.github.com>
2025-12-12 09:31:19 -09:00
Jacob Dahl
c25fcabcc6 esc_battery: fix current reporting 2025-12-12 11:17:24 -07:00
Jacob Dahl
67d62cb371 Revert "gps: fix RTCM injection to use inject-before-read pattern as before. Add RTCM parser to frame-align injection. Drain GpsInjectData uORB queue into RTCM parser buffer and then inject. Add GPS_UBX_PPK parameter to enable MSM7 output from the GPS module (rather than the default of MSM4) which is required for PPK workflows."
This reverts commit 0704580a30bb319fddc8c036675996a3e7202704.
2025-12-11 21:32:26 -09:00
Jacob Dahl
0704580a30 gps: fix RTCM injection to use inject-before-read pattern as before. Add RTCM parser to frame-align injection. Drain GpsInjectData uORB queue into RTCM parser buffer and then inject. Add GPS_UBX_PPK parameter to enable MSM7 output from the GPS module (rather than the default of MSM4) which is required for PPK workflows. 2025-12-11 20:10:22 -09:00
Kyle Fitzpatrick
3ebb47d53f TemperatureCompensationModule: fix order of temp cal args 2025-12-05 08:49:23 -09:00
mahima-yoga
18477554e0 wind-estimator: learn airspeed scale faster at beginning of flight
Multiply TAS scale process noise by 100 during the first 5 minutes
when ASPD_SCALE_n = 1.0 (default), enabling faster convergence on first flights.
2025-12-05 16:26:11 +01:00
Mahima Yoga
bcd67b7bad
ekf: enable constant position fusion during engine warm-up (#26041)
In cold weather, fuel engines need to be warmed up. Currently, this is done by switching to stabilized mode and throttle up. The issue is that when not using GNSS data, the vehicle is not detected as "at rest" due to vibrations and cannot switch into auto/takeoff modes.

If EKF2_ENGINE_WRM is enabled, and if the vehicle is armed and landed, constant position fusion is enabled.
2025-12-05 15:08:37 +01:00
mahima-yoga
ca83b8330d autotune: enable autotune in mission mode
When operating fully autonomously (i.e., without manual control or a guaranteed link to the ground station), tuning a vehicle can be difficult since the current autotune process requires either RC input or a GCS command. For these scenarios, it it useful to be able to start autotune inside a mission.
2025-12-05 14:03:10 +01:00
Farhang
a7de5d176f
Permission error gz build fix (#25921) 2025-12-04 07:52:02 -05:00
Jaeyoung Lim
5df20b8e9b
Add custom gz airspeed plugin and add wind effects (#26018)
* Add px4 custom airspeed sensor

* Format fix
2025-12-01 08:56:40 -08:00
MarkieMark
980956496b
ICE Control Module: Added option for VTOL state (FW/Transition to FW) to start engine (#25948)
* ICE Control Module: Added option to use VTOL transition state to trigger ICE on/off states

Signed-off-by: Mf-ff99 <force.j.mark@gmail.com>

* ran make format

Signed-off-by: Mf-ff99 <force.j.mark@gmail.com>

* Update src/modules/internal_combustion_engine_control/InternalCombustionEngineControl.cpp to initialize vtol_vehicle_status_s correctly

Initialize appropriately

Co-authored-by: Jacob Dahl <37091262+dakejahl@users.noreply.github.com>

* ICE Module: adjusted VTOL logic to use vehicle_status

Signed-off-by: Mf-ff99 <force.j.mark@gmail.com>

---------

Signed-off-by: Mf-ff99 <force.j.mark@gmail.com>
Co-authored-by: Jacob Dahl <37091262+dakejahl@users.noreply.github.com>
2025-12-01 16:46:51 +01:00
mahima-yoga
0985c22701 [fix] autotune: fix indentation on _state_start_time in abort logic 2025-11-28 09:31:37 +01:00
Julian Oes
0618b0b529
mavlink: GNSS_INTEGRITY and GLOBAL_POSITION are WIP (#26012)
These two messages are still work in progress, only defined in the
development.xml MAVLink dialect. Therefore, we need to ifdef them.
2025-11-28 11:41:38 +13:00
bresch
4fbff2cdd9 fw gain compression: add docs 2025-11-27 17:33:06 +01:00
bresch
3646032296 fw rate: add gain compression algorithm 2025-11-27 17:33:06 +01:00
Tarmo Tänav
ad38dba167 crsf_rc: fixed cmake directory conflict 2025-11-26 15:52:33 -09:00
Onur Özkan
8874d533bb add fast-path mavlink forwarding for single instance
Counts active mavlink instances atomically when instances
are claimed or released and uses that value to early-exit
the forwarding logic.

It means on single-instance scenarios this will skip taking
the mavlink_module_mutex lock and will not iterate over
mavlink_module_instances on every received message.

Signed-off-by: Onur Özkan <work@onurozkan.dev>
2025-11-26 10:35:40 -09:00
Matthias Grob
c8286d4bba Remove COM_RC_ARM_HYST
I've never anyone seen change that value and break the familiar user experience.
2025-11-26 09:58:19 -09:00
Nick
575fa0850b
PWM: Add servo center setting & asymetric deflection (#25897)
Add PWM_*_CENTERx for each servo.
Use a bilinear transform to map actuator_servos to PWM signals.

This solution only works for PWM based servos. Other types of servos are not affected.

* PWM: Add servo trim option

* PWM: Improve documentation of PWM trim feature

* PWM: cleaner clamping and docs typo

* update documentation & safety

* add migration formula

* rename param from trim to center

* docs with center instead of trim

* move clamping and reorder values

* improve documentation

* adress failing range check

* improve documentation

* CA: add event for setting CENTER with TRIM

Signed-off-by: Silvan <silvan@auterion.com>

---------

Signed-off-by: Silvan <silvan@auterion.com>
Co-authored-by: Silvan <silvan@auterion.com>
2025-11-26 18:12:25 +01:00
Balduin
6caf4f0942
ekf2: fuse airspeed & beta only in fronttransition and fixed wing (#25980)
This allows airspeed and sideslip fusion to start during VTOL front
transition, but not in backtransition or MC. This mitigates issues seen
due to going in and out of airspeed fusion in strong headwinds in MC.

Co-authored-by: bresch <brescianimathieu@gmail.com>
2025-11-26 16:29:19 +01:00
Niklas Hauser
0ce60fd528 Revert "[crsf_rc] Allow setting the baudrate via parameter"
This reverts commit 7a9b04c67c25e4b9eb2feef8a89a53a6c3e25b9c.
2025-11-26 15:09:00 +01:00
Nick
93d767ab51
Airspeed Filter: add filter to airspeed for scaling (#25908) 2025-11-26 12:38:17 +01:00
Michael Schaeuble
d97a8d7d3b mode: control auto set home from an external mode
The mode executor can run land mode which updates the home position to the landing location. This
can be not the desirable behavior and the home position should stay at the original location.

A flag is added to the configuration overrides to control if the home position is updated or not.
2025-11-26 10:16:54 +01:00
Michael Schaeuble
a2299b02c8 modes: make available modes user selectable with a registration option
Some modes should only be run within the context of a mode executor and the user should not be able
to select them in the GCS. With this change, the external component registration request can be
used to set if a mode is selectable or not.
2025-11-26 10:04:53 +01:00
Julian Oes
276cab8d3c mavlink: don't silently ignore mavlink dev streams
I don't think it makes sense to ignore required streams that easily.

If we do use some streams that are only in the MAVLink development.xml
dialect, then we will have to properly and explicitly ifdef them
everywhere that we use them. Otherwise, this basically means that we
will just swallow this warning on most (non mavlink-dev) platforms which
can mask issues.
2025-11-26 09:51:15 +01:00
Balduin
a6d5c78d10
Ignore max HAGL failsafe in front transition (#25982)
* mission_block: readibility improvement

* mission_block: ignore max hagl failsafe in front transition
2025-11-26 09:14:06 +01:00
mahima-yoga
7bb12b15b5 fw_att_ctrl: zero initialize all member variables 2025-11-25 21:19:36 -09:00
Hamish Willee
526c64aab7
COM_ARM_WO_GPS clarifications (#25954) 2025-11-26 15:28:33 +11:00
Marco Hauswirth
d9a66b11ac
Docs: baro-auto-calibration and gnss-fault-detection (#25796) 2025-11-26 11:52:40 +11:00
Mahima Yoga
a8c5df90ce
fw-ctrl: advertise attitude_sp_pub in attitude and FwLateralLongitudinal controller (#25983) 2025-11-25 21:25:43 +01:00
Alexander Lerach
8dd88e036d gps: add init timeout to handle larger diff after configuration 2025-11-25 11:41:50 -05:00
Alexander Lerach
c4a459838e gps: wipe FLASH config only once 2025-11-25 11:41:50 -05:00
Niklas Hauser
932abfd558 [auav] Robustify I2C transfers and enforce minimum sample time 2025-11-25 17:09:52 +01:00
Alexander Lerach
bd3b3d647f drivers: PCA9685 robustness & logging improvements
Co-authored-by: Phil-Engljaehringer <philipp.engljahringer@auterion.com>
2025-11-25 10:42:48 -05:00
Niklas Hauser
bb72088ff6 [crsf_rc] Add ability to inject buffers for development 2025-11-25 13:15:44 +01:00
Niklas Hauser
1904838043 [crsf_rc] Extend the RC packet reception timeouts to 0.5s 2025-11-25 13:15:44 +01:00
Niklas Hauser
7a9b04c67c [crsf_rc] Allow setting the baudrate via parameter 2025-11-25 13:15:44 +01:00
Niklas Hauser
a514560169 [crsf_rc] Add support for link statistic messages 2025-11-25 13:15:44 +01:00
Jacopo Panerati
6901bc6a01
VTOL Takeoff: Use VehicleCommand specified heading for VTOL transition (#24040)
* Use VehicleCommand heading for VTOL transition

* options for param2 of vehicle_cmd_nav_vtol_takeoff
2025-11-25 09:46:48 +01:00
bresch
45e8712d60 VectorNav: set global position validity 2025-11-24 12:00:55 +01:00
Phil-Engljaehringer
0cefd74fee
drivers: add perf counters and documentation to ads7953 2025-11-24 11:06:56 +01:00