Commit Graph

1268 Commits

Author SHA1 Message Date
Ramon Roche
9bbea56cf3 docs(security): add Security section to the user guide
Security content was scattered across four unrelated sidebar locations
with no entry point: hardening and signing under Development/MAVLink,
secure boot under Hardware Setup, log encryption under logging. A reader
had to already know all four pages existed to find any of them.

Add a top-level Security section with a hub page that collects them and
links out to the threat model and the reporting process. Those two live
in the repository rather than here so there is one authoritative copy
that does not fork per release or per translation. The existing pages
keep their current URLs and sidebar positions.

Cross-link the hub from the pages where the trust boundary actually
matters: companion computer and uXRCE-DDS, which sit inside the boundary
and are not covered by message signing, ROS 2 offboard control, telemetry
and data links, and the safety pages, which are the conceptual twin.

Assisted-by: Claude:claude-opus-4-8
Signed-off-by: Ramon Roche <mrpollo@gmail.com>
2026-07-23 17:22:41 -07:00
PX4BuildBot
06d0e500b7 docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-07-23 20:34:01 +00:00
Anil Kircaliali
03bf4a5e95 feat(commander): add failsafe for traffic avoidance system (#27887)
* feat(commander): add traffic avoidance system failsafe

* test(commander): add tests for traffic avoidance failsafe

* docs(parameters): add COM_ARM_TRAFF migration notes

* fix(failsafe): use a shared header instead of hard-coding enum literals

* fix(commander): clear stale traffic avoidance unhealthy flag when check disabled

* refactor(failsafe): rename failsafe_mode_params.h to failsafe_action_modes.h

* docs(adsb_flarm): fix formatting in traffic avoidance parameter table

---------

Co-authored-by: Claudio Chies <chiesc@chies.com>
2026-07-23 13:26:11 -07:00
PX4BuildBot
b14e63019b docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-07-23 17:57:02 +00:00
Ramon Roche
a2f1bb7c34 docs(contribute): add AI coding assistant policy
Adopt a policy for AI-assisted contributions modeled on the Linux
kernel's coding-assistants document: the human submitter is the author
and accountable for every line, an AI tool never appears in authorship
or Signed-off-by tags, licensing follows the LF Generative AI Policy,
and disclosure via an Assisted-by trailer is required.

Summarize the policy in CONTRIBUTING.md and add it to the docs sidebar.
The commit and pr skills keep their disclosure and sign-off rules but do
not link the policy: files loaded into every agent session are standing
context, not rules applied on demand, so pointing at the policy from
there invites agents to pull it in and biases unrelated work.

Assisted-by: Claude:claude-opus-4-8[1m]
Signed-off-by: Ramon Roche <mrpollo@gmail.com>
2026-07-23 09:44:46 -07:00
Silvan Fuhrer
8424463102 feat(fw_mode_manager): Do first-order-hold altitude ramp also for go-to (#27747)
Instead of climbing/descending with max speed first and then fly straight, fly diagonally to new waypoint.
This aligns the behavior between Mission and Hold modes.
2026-07-23 15:00:54 +02:00
PX4BuildBot
f1bedda6fe docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-07-23 03:44:06 +00:00
Anil Kircaliali
63d7551970 fix(commander): add warning-only mode to COM_PARACHUTE (#27903) 2026-07-22 20:37:34 -07:00
Hamish Willee
d5e5143090 docs(update): Logger max file size from 2 to 4 GB (#28058) 2026-07-22 20:39:17 -06:00
PX4BuildBot
4af652bcfa docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-07-22 13:28:44 +00:00
Julian Oes
afa97475f0 feat(camera_feedback): gate CAMERA_IMAGE_CAPTURED by param (#27920)
* feat(camera_feedback): gate CAMERA_IMAGE_CAPTURED by param

Some cameras implementing the MAVLink Camera Protocol (e.g. reached via
TRIG_INTERFACE=MAVLink) report CAMERA_IMAGE_CAPTURED themselves. The
autopilot's camera_feedback also emitted this message, so the ground
station saw duplicate capture messages for every shot.

Add a bool 'report' field to the camera_capture message, set from the new
CAM_CAP_REPORT parameter, and gate the CAMERA_IMAGE_CAPTURED stream on it.
When reporting is disabled the capture is still published and logged for
geotagging; only the MAVLink message to the ground station is suppressed.

CAM_CAP_REPORT applies live (no reboot); it only gates a MAVLink message,
unlike CAM_CAP_FBACK which reconfigures the capture pin.

* fix(camera_feedback): update docs
2026-07-22 20:03:50 +12:00
Roman Bapst
2829c928c4 docs(navigator): [geofence] added some more warnings about limitations (#28001)
* [docs][geofence] added some more warnings about limitations

Signed-off-by: RomanBapst <bapstroman@gmail.com>

* docs(update): Minor restructure

---------

Signed-off-by: RomanBapst <bapstroman@gmail.com>
Co-authored-by: Hamish Willee <hamishwillee@gmail.com>
2026-07-22 15:29:02 +10:00
PX4 Build Bot
dfe32bf6c0 docs(i18n): PX4 guide translations (Crowdin) - ko (#27965)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2026-07-22 15:27:20 +10:00
PX4 Build Bot
2997ab7b81 docs(i18n): PX4 guide translations (Crowdin) - uk (#27966)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2026-07-22 15:27:09 +10:00
PX4 Build Bot
00fb48a0cc docs(i18n): PX4 guide translations (Crowdin) - zh-CN (#27967)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2026-07-22 15:26:48 +10:00
PX4BuildBot
350e831823 docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-07-21 18:58:04 +00:00
elisaaferraraa
841bb40365 fix(commander): report Descend as a distinct flight mode (#27918)
Give NAVIGATION_STATE_DESCEND its own MAVLink custom_mode and advertise it so ground stations stop displaying it as Land.

---------

Signed-off-by: Elisa Ferrara <elisa.ferrara@auterion.com>
2026-07-21 14:30:07 +02:00
PX4BuildBot
d015b596b9 docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-07-21 04:22:46 +00:00
PX4BuildBot
337d14e796 docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-07-20 23:27:39 +00:00
PX4BuildBot
b66576916a docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-07-19 16:22:01 +00:00
Jacob Dahl
5ea7337a31 feat(crsf): add local altitude/vertical-speed telemetry and fix GPS frame (#27948)
* fix(crsf): correct GPS telemetry ground speed, course, and altitude offset

Ground speed was sent from the NED down-velocity component with the km/h conversion inverted, course over ground wraps negative values through the uint16 field, and the rc_input frame applied a +1 m offset where the protocol expects +1000 m.

Signed-off-by: Jacob Dahl <dahl.jakejacob@gmail.com>

* feat(crsf): send local altitude and vertical speed telemetry

Add the CRSF barometric altitude frame (0x09), fed from vehicle_local_position, to both the crsf_rc driver and the legacy rc_input telemetry. Shows up as Alt and VSpd sensors on EdgeTX/OpenTX radios, complementing the MSL altitude already sent in the GPS frame.

Signed-off-by: Jacob Dahl <dahl.jakejacob@gmail.com>

* docs(crsf): clarify local-altitude telemetry semantics and units

Note that the Alt/VSpd sensors reuse the CRSF baro-altitude frame to carry PX4's fused local altitude (above the estimator origin), not a raw barometer reading, and document the EdgeTX version requirements. Add terse unit comments on the GPS-frame fields.

Signed-off-by: Jacob Dahl <dahl.jakejacob@gmail.com>

---------

Signed-off-by: Jacob Dahl <dahl.jakejacob@gmail.com>
2026-07-19 10:16:23 -06:00
PX4BuildBot
6120aa53df docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-07-18 16:04:11 +00:00
Bartok
67b6679918 docs(zenoh): correct overridden spelling in publisher options note (#27958)
Co-authored-by: Daniel Pike <daniel@team-of-light.com>
2026-07-18 16:33:23 +01:00
PX4BuildBot
616c25b77d docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-07-17 15:57:37 +00:00
Julian Oes
eaaf6f676a test(mavsdk): leave tests backwards compatible but enable SIH
This reverts some of the changes to keep runners of classic Gazebo in
there but leave it optional, so we can still use it if required.
2026-07-17 10:51:42 -05:00
PX4BuildBot
87fdc29e34 docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-07-17 02:49:36 +00:00
Jacob Dahl
0524a374d9 fix(drivers/uavcannode): make CANNODE_NODE_ID the sole node ID policy (#27644)
* fix(drivers/uavcannode): make CANNODE_NODE_ID the sole node ID policy

The startup bootloader_app_shared_write() never reached the bootloader:
it only accepts App-signed data and invalidates the shared region on
every boot. The only consumer was uavcannode itself on a restart
without a reset (nsh stop/start), where the persisted bus_speed=0 made
the CAN driver init fail and left the node off the bus. The bootloader
learns our node ID exclusively through the firmware update handoff in
cb_beginfirmware_update, which already carries the static ID.

CANNODE_NODE_ID now overrides the bootloader handoff only when nonzero,
so the default (0) reuses the ID the bootloader already allocated
instead of running allocation a second time. The handoff is ignored
unless it carries a valid bitrate, healing regions poisoned by firmware
that wrote bus_speed=0. Max is 125 because 126/127 are reserved for
debug tools by DroneCAN convention, matching UAVCAN_NODE_ID.

Signed-off-by: Jacob Dahl <dahl.jakejacob@gmail.com>

* fix(drivers/uavcannode): harden bootloader handoff validation

Invalidate the shared region whenever it was read valid, not only when
the handoff is accepted, so stale data cannot linger on boards whose
bootloader never invalidates it. Require a plausible bitrate (the
CANNODE_BITRATE minimum) rather than nonzero: the canbootloader alt-app
update path can hand off bus_speed = CAN_UNDEFINED (999). Reword the
invalid-param error, which claimed dynamic allocation while keeping the
bootloader handoff.

Signed-off-by: Jacob Dahl <dahl.jakejacob@gmail.com>

---------

Signed-off-by: Jacob Dahl <dahl.jakejacob@gmail.com>
2026-07-16 20:43:22 -06:00
Jacob Dahl
f2e4d9d35c docs(rtk): note SPARTN on the GPS inject path (#27934)
CONFIG_GPS_SPARTN landed in #27919; call out the opt-in framing path and that keys stay on the receiver.

Signed-off-by: Jacob Dahl <dahl.jakejacob@gmail.com>
2026-07-16 18:12:26 -06:00
Bartok
69c709a431 fix: correct user-visible log/doc typos across modules (#27932)
Consolidates several small spelling fixes in user-visible strings:
- cyphal: 'succesfull' -> 'successful' (Set portID log)
- muorb apps: 'succesfully' -> 'successfully' (protobuf test logs)
- pga460: 'occured' -> 'occurred' (thermal shutdown log)
- camera_trigger: 'recieved' -> 'received' (module help + docs)

Logging/docs-only, no behavior change.
2026-07-16 14:39:27 -06:00
PX4BuildBot
7f42ae3db0 docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-07-16 20:31:13 +00:00
PX4BuildBot
1bd36e8974 docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-07-16 19:31:15 +00:00
Bartok
1ec054b3da docs(rtk_gps): fix received spelling in RTCM fragment note (#27923)
AI-assisted; human-reviewed.
2026-07-16 11:12:16 -06:00
Alexander Lerach
da60889b3c chore(uavcan): remove FW flashing database (#27930)
* feat(uavcan): remove FW.db generation

* docs(dronecan): remove FW.db section, update remote update workflow
2026-07-16 17:21:43 +02:00
Vincello
656989b1dd docs(corvon_v5): fix labels in connectors diagram (#27893)
Fix swapped TELEM1/TELEM2 labels, CAN1_H pin name, I2C3 label
and a few typos.

Signed-off-by: holydust <holydust@live.ca>
2026-07-16 18:20:46 +10:00
PX4BuildBot
4cf8622a13 docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-07-15 18:48:19 +00:00
Jacob Dahl
b11e615810 fix(zenoh): stop the build writing generated files into the source tree (#27904)
* fix(zenoh): generate the topic catalog into the build tree

Kconfig.topics is fully generated from the uORB message set, but the build
regenerated it into the source tree at configure time. Building any Zenoh
board therefore left the working tree dirty whenever the message set had
changed since the file was last committed (the catalog is board-config
dependent, so it drifts easily).

Generate the catalog into the build directory in cmake/kconfig.cmake, before
Kconfig is parsed, and source it from there via ZENOH_KCONFIG_TOPICS. It is
generated board-independently from every message so it no longer depends on
the msg-gating Kconfig symbols it is sourced alongside; the per-board factory
still gates which topics are actually compiled. Drop the committed catalog.

* chore(zenoh): bump zenoh-pico to the build-tree header fix

Moves zenoh-pico's generated config.h/zenoh-pico.h/library.json out of its
own source tree and into the build tree, so building no longer dirties the
submodule.

Gated on PX4/zenoh-pico#2: the pointer currently references the fix branch on
a fork and must be moved to the merged commit before this is ready.

* bump zenoh-pico
2026-07-15 12:12:09 -06:00
PX4BuildBot
e96159c217 docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-07-15 15:04:07 +00:00
Claudio Chies
d63f30c612 feat(failure_injection): Enable failure-injection on hardware, and through RC-switch (#27832)
* feat(failure_injection): integrate failure injection support across sensor drivers

* feat(failure_injection): enhance failure injection with RC switch support and instance bitmasking

feat(failure_injection): add disabled failure injection manager and system command support for v5x and v6x boards

* feat(failure_injection): add battery failure injection

Add a value-mutating apply-site for FAILURE_UNIT_SYSTEM_BATTERY. On an
injected OFF the outgoing battery_status is reported as a depleted pack
(zero remaining, emergency warning) so the low-battery failsafe triggers.

The apply-site lives in the shared Battery library, covering the analog
ADC, INA power monitors, ESC battery and SITL in one place, plus the
UAVCAN battery driver which publishes battery_status directly. The
previous SITL-only hack in BatterySimulator is removed in favour of this
shared path so simulation and hardware behave identically.

* fix(failure_injection): change parameter types from int32 to enum

* refactor(failure_injection): disable failure injection manager and system commands across multiple boards

* feat(failure_injection): enhance failure injection with timestamp handling and message-less support

* refactor(failure_injection): simplify has_timestamp_sample implementation and remove unused includes

* refactor(failure_injection):move conditional compilation into helper libary

* refactor(failure_injection): update CMakeLists to include failure_injection dependency across multiple drivers

---------

Co-authored-by: Claudio Chies <chiesc@chies.com>
2026-07-15 07:56:13 -07:00
PX4BuildBot
25bb4a2224 docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-07-14 13:14:34 +00:00
PX4BuildBot
5f63c0698e docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-07-13 23:15:01 +00:00
PX4BuildBot
fe71d3bec1 docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-07-13 22:23:01 +00:00
Jonas Perolini
5ea3cf8cb9 feat(navigator): extend detect and avoid module to follow regulatory standards such as ASTM F3442 (#26815)
* feat(navigator): extend detect and avoid module to follow regulatory standards such as ASTM F3442

* docs(docs): minor subedit

* refactor(navigator): reduce flash by grouping notif into same events

* docs(daa): Improve docs readability with ::: details blocks

* fix(navigator): single event when on ground with conflict

* refactor(boards): increase flash length from 4M - 128k to 5M - 128k

* rework(general): define DAA standard at build with new CONFIG_NAVIGATOR_ADSB_F3442

* clean(navigator): minor changes to clean the PR

* feat(boards): add CONFIG_NAVIGATOR_ADSB_FAKE_TRAFFIC in visionTargetEstStatic.px4board

* rework(daa): reduce amount of abstractions and minor cleaning

* refactor(boards): allyes revert flash length to 4M-128K

* refactor(boards): allyes increase flash length to 5M-128K

* rework(daa): rework event notifications to improve clarity

* docs(docs): move details inside of ::: details block

* docs(docs): run npx prettier

* refactor(daa): avoid void mutator functions

* docs(docs): Improve Python helper to decode daa unique id

* rework(daa): move encoded id handling to the adsb lib and refactor on_active

* refactor(daa): naming and zero init

* fix(daa): move dataman dep from daa level to unit test level

* refactor(daa): define common daa_input and rework process_transponder_report

* fix(daa): remove stale todo

* refactor(daa): rename crosstrack_based_daa to crosstrack_standard

* refactor(daa): rename F34_ params to DAA_

* docs(docs): revert changes to autogenerated docs

* docs(docs): Add Detect And Avoid in index.md

* refactor(daa): update message on init failed

* refactor(daa): only publish most_urgent conflict once in on_active()

* refactor(daa): move conflict buffer handling in the adsb lib

* refactor(daa): move notifications into new class ConflictNotifier and only notify once per cycle

* refactor(daa): uninit _cycle_changes to store into .bss (and save flash)

* docs(docs): remove unused image link

* refactor(daa): move automated action policy to the adsb lib

* refactor(daa): move self detection into adsb lib as DaaTrafficFilter

* refactor(daa): minor changes in unit tests

* refactor(daa): merge DaaTrafficFilter and DaaEncoding

* fix(daa): fix CI by removing navigator from the DAA deps

* refactor(daa): reduce stack size

* fix(daa): advertise _fake_traffic_pub in constructor

* refactor(daa): Comments only,  simplify and reduce comments

* fix(daa): brief comment missing end star

* Disable CONFIG_NAVIGATOR_ADSB in ark_fpv_default board

* docs(docs): General clarifications and remove the 1.18 badge

* refactor(daa): cleaning

* refactor(daa): minor cleaning

* refactor(adsb): simplify conflict tracker assuming push_back cannot fail

* build(cmake): cleaner fix to protect regex alternations

* refactor(daa): Crosstrack, remove unit test requiring finite yaw (yaw not used by standard)

* refactor(daa): minor cleaning and fix callsign to uint64

---------

Co-authored-by: jonas <jonas.perolini@rigi.tech>
Co-authored-by: Hamish Willee <hamishwillee@gmail.com>
2026-07-13 16:14:42 -06:00
PX4BuildBot
7ca74a7cc9 docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-07-13 21:44:07 +00:00
Onur Özkan
a080eef535 docs: update mavlink temperature conversion example (#27871)
Update the mavlink receiving example to match the current behavior from
"b52464059e fix(mavlink): preserve invalid battery values on receive"
patch.

Signed-off-by: Onur Özkan <work@onurozkan.dev>
2026-07-13 15:27:08 -06:00
PX4BuildBot
3835140f34 docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-07-13 16:49:43 +00:00
PX4BuildBot
7bf22ca4a0 docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-07-13 09:06:44 +00:00
PX4 Build Bot
edcbdd8b63 docs(i18n): PX4 guide translations (Crowdin) - zh-CN (#27812)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2026-07-12 15:29:58 +10:00
PX4 Build Bot
b4acc0c0db docs(i18n): PX4 guide translations (Crowdin) - ko (#27810)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2026-07-12 15:29:49 +10:00
PX4 Build Bot
bf0d1013b2 docs(i18n): PX4 guide translations (Crowdin) - uk (#27811)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2026-07-12 15:29:34 +10:00
PX4BuildBot
186ad6d691 docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-07-09 12:14:59 +00:00