Commit Graph
49998 Commits
Author SHA1 Message Date
Jukka Laitinen 839b7a470f fix(CI): Prerequisites for nuttx update (#27509)
* src/drivers/cdcacm_autostart: Include posix.h for px4_close

Signed-off-by: Jukka Laitinen <jukka.laitinen@tii.ae>

* platforms/nuttx/CMakeLists.txt: Fix linking of nuttx libaries for memalign

This fixes memalign not found in linking step for some boards

Signed-off-by: Jukka Laitinen <jukka.laitinen@tii.ae>

* Add "flock" to macos.sh setup script

"flock" is not standard on macOS, and a dependency was missing from the
macOS setup path.

Signed-off-by: Jukka Laitinen <jukka.laitinen@tii.ae>

* Fix clang-tidy errors in Bitset.hpp and in src/lib/matrix

Fix the "bugprone-dynamic-static-initializers" linter errors.

Signed-off-by: Jukka Laitinen <jukka.laitinen@tii.ae>

* systemlib/hardfault_log: Fix clang-diagnostics error

Fix for
"[error] clang-diagnostic-error [error]
 use of undeclared identifier XCPTCONTEXT_REGS".

XCPTCONTEXT_REGS is defined in nuttx irq.h, so include that.

Signed-off-by: Jukka Laitinen <jukka.laitinen@tii.ae>

* uORB: Fix clang-tidy error "bugprone-dynamic-static-initializers"

Fix the clang-tidy error appearing on uORBManager _Instance variable by
adding a getter for the reference to the _Instance and using that instead.

Signed-off-by: Jukka Laitinen <jukka.laitinen@tii.ae>

* CI: Add default ubuntu mirrors as fallback

In case of specified aws mirror doesn't have the package idicated by the
metadata, a the default ubuntu mirror as a backup.

Signed-off-by: Jukka Laitinen <jukka.laitinen@tii.ae>

---------

Signed-off-by: Jukka Laitinen <jukka.laitinen@tii.ae>
2026-06-02 11:27:50 -06:00
PX4BuildBot fe077b6c58 docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-06-02 17:24:31 +00:00
Jukka Laitinen 4c7bd978c2 Localize math::expo_deadzone usage in Sticks.cpp to save flash (#27546)
math::expo_deadzone generates ~240bytes of code for 32-bit arm
platform, and it gets currently inlined several times.

Localizing the function in Sticks.cpp saves ~2KB of flash, measured
on px4_fmu-v5_default target.

Signed-off-by: Jukka Laitinen <jukka.laitinen@tii.ae>
2026-06-02 11:16:00 -06:00
Peter van der Perk db8557e96d fix(bootloader): Fix V6X-RT bootloader on GCC13 and above
GCC13 does aggresive optimizations that causes a RWW violation.
Causing the bootloader to crash while updating.
Add compiler arguements to reduce optimizations fixing the issue.
2026-06-02 17:38:06 +02:00
PX4BuildBot 5332d2b13f docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-06-02 07:46:26 +00:00
Jacob Dahl d4f39b194d fix(mavlink): add DO_REPOSITION to the command_has_location() list (#27543) 2026-06-02 19:39:24 +12:00
PX4BuildBot b1e33bc61e docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-06-02 05:32:45 +00:00
EurusandJacob Dahl 4c4d5ed1d9 fix(mavlink): validate GPS UTC timestamps (#27507)
* fix(mavlink): validate GPS UTC timestamps

Handle unavailable GPS UTC time in OpenDroneID system and uAvionix
ADSB dynamic messages. Use the protocol-defined unknown values instead
of deriving invalid timestamps.

* Apply suggestion from @dakejahl

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

* Apply suggestion from @dakejahl

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

* Apply suggestion from @dakejahl

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

---------

Co-authored-by: Jacob Dahl <37091262+dakejahl@users.noreply.github.com>
2026-06-01 23:25:59 -06:00
PX4BuildBot 4b015fbdeb docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-06-02 03:58:51 +00:00
Julian Oes cc6473bdb9 feat(mavlink): support FTP ListDirectoryWithTime (#27542)
Build all targets / Scan for Board Targets (push) Has been cancelled
Checks / Gate Checks [check_format] (push) Has been cancelled
Checks / Gate Checks [check_newlines] (push) Has been cancelled
Checks / Gate Checks [module_documentation] (push) Has been cancelled
Checks / Gate Checks [shellcheck_all] (push) Has been cancelled
Checks / Gate Checks [validate_module_configs] (push) Has been cancelled
Checks / Unit Tests (push) Has been cancelled
MacOS build / build (push) Has been cancelled
Ubuntu environment build / Build and Test (ubuntu:22.04) (push) Has been cancelled
Ubuntu environment build / Build and Test (ubuntu:24.04) (push) Has been cancelled
Container build / Set Tags and Variables (push) Has been cancelled
Docs - Orchestrator / T1: Detect Changes (push) Has been cancelled
Docs - Orchestrator / T2: Metadata Sync (push) Has been cancelled
Failsafe Simulator Build / build (failsafe_web) (push) Has been cancelled
FLASH usage analysis / Analyzing px4_fmu-v5x (push) Has been cancelled
FLASH usage analysis / Analyzing px4_fmu-v6x (push) Has been cancelled
ITCM check / Checking nxp_mr-tropic (push) Has been cancelled
ITCM check / Checking nxp_tropic-community (push) Has been cancelled
ITCM check / Checking px4_fmu-v5x (push) Has been cancelled
ITCM check / Checking px4_fmu-v6xrt (push) Has been cancelled
Python CI Checks / build (push) Has been cancelled
ROS Integration Tests / build (push) Has been cancelled
ROS Translation Node Tests / Build and test [humble] (push) Has been cancelled
ROS Translation Node Tests / Build and test [jazzy] (push) Has been cancelled
SITL Tests / Testing PX4 iris (push) Has been cancelled
Build all targets / Seed [${{ matrix.chip_family }}] (push) Has been cancelled
Build all targets / Build [${{ matrix.runner }}][${{ matrix.group }}] (push) Has been cancelled
Build all targets / Upload Artifacts (push) Has been cancelled
Container build / Build Container (amd64) (push) Has been cancelled
Container build / Build Container (arm64) (push) Has been cancelled
Container build / Deploy To Registry (push) Has been cancelled
Docs - Orchestrator / T2: PR Metadata (push) Has been cancelled
Docs - Orchestrator / T2: Link Check (push) Has been cancelled
Docs - Orchestrator / T3: Build Site (push) Has been cancelled
Docs - Orchestrator / T4: Deploy (push) Has been cancelled
FLASH usage analysis / Publish Results (push) Has been cancelled
Static Analysis / Clang-Tidy (push) Has been cancelled
Add support for the MAVLink FTP ListDirectoryWithTime command (opcode 16),
which returns directory listings with each file's last-modification time
appended as decimal seconds since the UNIX epoch (0 if unknown).

This lets a GCS retrieve file timestamps without downloading the files,
which is useful for log download. The plain ListDirectory output is
unchanged, and clients fall back to it when the server NAKs with
UnknownCommand.

Signed-off-by: Julian Oes <julian@oes.ch>
2026-06-01 21:51:47 -06:00
Julian Oes bb914860ea fix(bootloader): only handle VERIFY_SIG on secure builds (#27540)
On a non-secure bootloader the VERIFY_SIG opcode was answered explicitly
instead of falling through like an older bootloader without the opcode,
which could desync the following BOOT command and fail the upload.

Compile the case only when BOOTLOADER_USE_SECURITY is set so non-secure
builds reject it via the default unknown-command path.

Signed-off-by: Julian Oes <julian@oes.ch>
2026-06-02 13:13:54 +12:00
Julian Oes 8469dd3388 fix(dshot): derive bit width per timer at runtime (#27505)
The DSHOT bit width was selected at compile time from a single timer
clock (STM32_APB1_TIM5_CLKIN) and applied board-wide. On boards whose
timers run on different clocks (e.g. APB1 vs APB2) the non-APB1 timers
could emit DSHOT at the wrong rate; this was only flagged with a
#pragma message rather than handled.

Compute the bit width per timer from that timer's own clock_freq (which
io_timers[] already carries), using a fixed DSHOT600 reference so the
width depends only on the timer clock, not the selected DSHOT rate. The
selection rule is unchanged, so register values are identical for every
current board.

Keeping the width rate-independent is what preserves the duty cycle:
MOTOR_PWM_BIT_0/1 are absolute CCR counts calibrated for the fixed ARR,
so a rate-varying ARR would distort them.

Signed-off-by: Julian Oes <julian@oes.ch>
2026-06-01 17:53:45 -06:00
PX4BuildBot 06646d13ce docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-06-01 19:35:17 +00:00
660f4e80d6 fix(logger): bound recursive log directory removal (#27354)
* fix(logger): bound recursive directory removal

* Use lstat over stat

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

* Add and improve error message

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

---------

Co-authored-by: Julian Oes <julian@oes.ch>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-06-02 07:27:26 +12:00
Andrew Brahim d88c86e911 fixes(board): canhubk3 default RC uart swapped with telem4, move to sbus rc from monolithic rc_input (#27524)
Signed-off-by: dirksavage88 <dirksavage88@gmail.com>
2026-06-01 10:58:18 -04:00
PX4BuildBot 6d71c7bfa0 docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-06-01 13:12:41 +00:00
alexcekay 13868013d2 feat(actuators): increase servo channel count from 8 to 15
Bumps NUM_CONTROLS/MAX_ACTUATORS from 8 to 15 across all layers.

Signed-off-by: alexcekay <alexander@auterion.com>
2026-06-01 15:04:57 +02:00
PX4BuildBot 9e27a3c5e1 docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-06-01 11:50:23 +00:00
gguidone 6f9e072e4b refactor(sensor_gps_sim): drop SYS_FAILURE_EN gate from failure injector
The failure injector is SITL-only; the system-wide enable gate isn't
needed here. Gating will be revisited when extending injection to the
real GPS driver in a follow-up.
2026-06-01 13:43:19 +02:00
gguidone 4701d1bee8 feat(sensor_gps_sim): add GPS failure injection via VEHICLE_CMD_INJECT_FAILURE
Implements FAILURE_UNIT_SENSOR_GPS support in the SITL sensor_gps_sim module, mirroring the existing motor failure injection pattern in FailureInjector.

Supported failure types per GPS instance (param3=0 all, 1=GPS0, 2=GPS1):
- FAILURE_TYPE_OFF, stop publishing (simulates dead receiver)
- FAILURE_TYPE_STUCK, freeze last known position (simulates frozen fix)
- FAILURE_TYPE_WRONG, corrupt position by +1 deg (~111 km offset, triggers gpsRedundancyCheck divergence gate)
- FAILURE_TYPE_OK, recover all active failures for that instance

Requires SYS_FAILURE_EN=1. The enable gate is re-read every cycle so runtime parameter changes take effect without restarting the module.
2026-06-01 13:43:19 +02:00
PX4BuildBot 6b5cd06c57 docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-06-01 08:18:55 +00:00
Marko T e0488b19e5 fix(commander): size ArmingCheckReply queue to MAX_NUM_REGISTRATIONS
The ArmingCheckReply uORB queue was sized to 4 (ORB_QUEUE_LENGTH) while
ExternalChecks supports up to MAX_NUM_REGISTRATIONS (8) external modes,
each of which publishes a reply for every ArmingCheckRequest. With more
than 4 registered modes the replies from the 5th+ mode overwrote earlier
ones within a single request cycle, so those modes were flagged
"unresponsive" and silently failed to activate.

Increase ORB_QUEUE_LENGTH to 8 to match MAX_NUM_REGISTRATIONS, and add a
static_assert so the two limits cannot drift apart again.

Fixes #27271

Signed-off-by: Marko T <marko.tavcar@c-astral.com>
2026-06-01 10:11:20 +02:00
Jacob Dahl e17d81af21 refactor(uORB): hoist Publication advertise/publish to base (#27526)
Build all targets / Scan for Board Targets (push) Has been cancelled
Checks / Gate Checks [check_format] (push) Has been cancelled
Checks / Gate Checks [check_newlines] (push) Has been cancelled
Checks / Gate Checks [module_documentation] (push) Has been cancelled
Checks / Gate Checks [shellcheck_all] (push) Has been cancelled
Checks / Gate Checks [validate_module_configs] (push) Has been cancelled
Checks / Unit Tests (push) Has been cancelled
MacOS build / build (push) Has been cancelled
Ubuntu environment build / Build and Test (ubuntu:22.04) (push) Has been cancelled
Ubuntu environment build / Build and Test (ubuntu:24.04) (push) Has been cancelled
Container build / Set Tags and Variables (push) Has been cancelled
Failsafe Simulator Build / build (failsafe_web) (push) Has been cancelled
FLASH usage analysis / Analyzing px4_fmu-v5x (push) Has been cancelled
FLASH usage analysis / Analyzing px4_fmu-v6x (push) Has been cancelled
ITCM check / Checking nxp_mr-tropic (push) Has been cancelled
ITCM check / Checking nxp_tropic-community (push) Has been cancelled
ITCM check / Checking px4_fmu-v5x (push) Has been cancelled
ITCM check / Checking px4_fmu-v6xrt (push) Has been cancelled
Python CI Checks / build (push) Has been cancelled
ROS Integration Tests / build (push) Has been cancelled
ROS Translation Node Tests / Build and test [humble] (push) Has been cancelled
ROS Translation Node Tests / Build and test [jazzy] (push) Has been cancelled
SITL Tests / Testing PX4 iris (push) Has been cancelled
Build all targets / Seed [${{ matrix.chip_family }}] (push) Has been cancelled
Build all targets / Build [${{ matrix.runner }}][${{ matrix.group }}] (push) Has been cancelled
Build all targets / Upload Artifacts (push) Has been cancelled
Container build / Build Container (amd64) (push) Has been cancelled
Container build / Build Container (arm64) (push) Has been cancelled
Container build / Deploy To Registry (push) Has been cancelled
FLASH usage analysis / Publish Results (push) Has been cancelled
Static Analysis / Clang-Tidy (push) Has been cancelled
Signed-off-by: Jacob Dahl <dahl.jakejacob@gmail.com>
2026-05-31 16:41:49 +12:00
PX4BuildBot 0cb985291a docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-05-30 21:23:40 +00:00
Eric Katzfey e81184e49d fix(mavlink): Hardcode PX4_MAX_FILEPATH for log handler to avoid case when (#27502)
limits.h is included before the definition in some locations and not others
(which would trigger a setting of 1024) resulting in conflicting definitions.
2026-05-30 15:16:00 -06:00
PX4BuildBot 97352b5068 docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-05-30 18:44:34 +00:00
Eurus 9a2b57ca82 fix(fw_latlon): align airspeed load factor (#27519) 2026-05-30 12:36:56 -06:00
PX4BuildBot a2be9197b5 docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-05-29 21:09:42 +00:00
Eurus 71cf233a78 fix(spacecraft): remove redundant uORB copy (#27508) 2026-05-29 15:01:32 -06:00
PX4BuildBot 26de3d33ea docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-05-29 19:32:06 +00:00
Eurus a0bf58a30e fix(mavlink): leave LOITER_TO_ALT yaw unspecified (#27510) 2026-05-29 13:24:30 -06:00
PX4BuildBot bb33b984ea docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-05-29 17:01:31 +00:00
Phil-Engljaehringer 1952562310 fix: track message timeout and reconfigure module when unhealthy 2026-05-29 18:53:20 +02:00
Marin Doetterer 8ddbedf868 backport(nuttx): rtc ptc85263A: Add handling of stop_enable flag 2026-05-29 15:11:50 +02:00
PX4BuildBot ff80586b5d docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-05-29 03:00:39 +00:00
9ae1e0f04f feat(logger): append topics defined in logger_topics.txt instead of replacing all (#27462)
* feat(logger): append topics defined in logger_topics.txt instead of replacing logging profile

* docs(logger): Explain how logger_topics.txt topics are being used

* refactor(logger): squash initialize functions into a single one

* docs(docs): Subedit

---------

Co-authored-by: Hamish Willee <hamishwillee@gmail.com>
Co-authored-by: Jacob Dahl <37091262+dakejahl@users.noreply.github.com>
2026-05-28 20:53:31 -06:00
Julian Oes 1c79648e8d fix(boards): save a of flash on the KakuteF7 (#27504) 2026-05-29 14:04:40 +12:00
PX4BuildBot f3f376f8f2 docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-05-29 01:15:01 +00:00
Hamish Willee 1ac1bf3895 fix(docs): add ssr.noExternal and upgrade vp-dynamic-nav to 0.0.3 (#27503)
VitePress externalizes node_modules during SSR, causing Node.js to
try loading .vue source files directly and throw
ERR_UNKNOWN_FILE_EXTENSION. Setting ssr.noExternal ensures Vite
processes vp-dynamic-nav through its transform pipeline instead.

vp-dynamic-nav 0.0.3 exports a vpDynamicNavPlugin() helper from the
./plugin subpath for consumers who prefer the programmatic approach.

Signed-off-by: Hamish Willee <hamishwillee@gmail.com>
2026-05-29 11:07:28 +10:00
PX4BuildBot 167542f290 docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-05-28 23:13:13 +00:00
Hamish Willee 3b8019f37a fix(docs): Use vitepress plugin from NPM for dynamic nav bar (#27498)
* fix(docs): bypass VitePress router interception in DynamicNav links

VitePress installs a global click interceptor that catches same-origin
<a> clicks and routes them through Vue Router. Cross-version links
(e.g. /v1.17/en/ from /main/en/) share the origin but are separate
deployments, so Vue Router fails to resolve them and navigation is
silently swallowed. Fix by calling window.location.href directly with
@click.prevent on all nav links.

Signed-off-by: Hamish Willee <hamishwillee@gmail.com>

* refactor(docs): use VitePress internal nav components in DynamicNav

Replace the hand-rolled dropdown/link rendering with VitePress's own
VPNavBarMenuLink, VPNavBarMenuGroup, VPNavScreenMenuLink, and
VPNavScreenMenuGroup. This removes ~140 lines of custom CSS and all
manual click/flyout handling; VitePress styles and VPFlyout behaviour
are inherited for free.

The navigation bug (same-origin links swallowed by Vue Router) is also
fixed by this approach: VPLink classifies any https:// href as external
and renders a plain <a> tag, bypassing the router interceptor entirely.

Remote URL and localStorage key are now read from themeConfig
(dynamicNavUrl, dynamicNavCacheKey) so the component can be dropped
into any VitePress repo with just a config change.

Signed-off-by: Hamish Willee <hamishwillee@gmail.com>

* refactor(docs): derive DynamicNav cache key from URL by default

Use the remote URL as the localStorage key when dynamicNavCacheKey is
not set. This avoids the need to declare a key in config, keeps the
key unique per data source automatically, and means all deployed
versions of a site (same origin, different base paths) naturally share
one cache entry — which is the desired behaviour.

Signed-off-by: Hamish Willee <hamishwillee@gmail.com>

* chore(docs): remove redundant nav:[] from themeConfig

VitePress renders no menu items when nav is omitted, so the explicit
empty array adds no value now that all items come from DynamicNav.

Signed-off-by: Hamish Willee <hamishwillee@gmail.com>

* fix(docs): restore display:flex on DynamicNav bar wrapper

Removing the scoped styles during the VitePress-internal-components
refactor also removed the flex layout on the wrapper div, causing nav
items to stack vertically instead of in a row.

Signed-off-by: Hamish Willee <hamishwillee@gmail.com>

* refactor(docs): replace local DynamicNav with vp-dynamic-nav npm package

Removes the in-tree DynamicNav.vue and wires up the published
vp-dynamic-nav package instead. navbar.json is imported in config.mjs
and passed as dynamicNavInitial so it remains the single source of
truth for both the initial render and the remote fetch target.

Signed-off-by: Hamish Willee <hamishwillee@gmail.com>

---------

Signed-off-by: Hamish Willee <hamishwillee@gmail.com>
2026-05-29 09:05:11 +10:00
Jacob Dahl 1435fe2b30 ci(flash-analysis): always post PR comment regardless of diff size (#27473) 2026-05-28 16:12:58 -06:00
ZeroOne-Aero 02b41f81d9 feat(boards/zeroone): Add IIM42652 and BMP581 support for ZeroOneX6 Series V2 (#27475)
* Add TDK IIM42652 IMU and Bosch BMP581 Baro support for ZeroOneX6 Series V2 board
2026-05-28 18:03:43 -04:00
PX4BuildBot 3445a60c38 docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-05-28 20:03:45 +00:00
Hamish Willee 0b479adb26 docs(docs): Dynamically fetched navbar (#27489) 2026-05-29 05:56:21 +10:00
PX4BuildBot 28ec0e51b3 docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-05-28 16:53:47 +00:00
0xDI 66058d48b8 fix(simulation): revert SIH wind sign regression from #27376 2026-05-28 18:46:14 +02:00
PX4BuildBot be1a84440d docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-05-28 14:17:37 +00:00
Michael FritscheandMatthias Grob 322305b339 fix(failsafe): Inform user about every failsafe triggered (#27273)
* always warn about new less severe failsafes as warning

* Prevent notification of disabled failsafes

---------

Co-authored-by: Matthias Grob <maetugr@gmail.com>
2026-05-28 16:09:57 +02:00
alexcekay 7f48958769 platform(nuttx): update to newest version 2026-05-28 13:42:46 +02:00