Commit Graph

49719 Commits

Author SHA1 Message Date
Julian Oes e08064f826 feat(cubered): re-use device::Serial class in primary
Drops the duplicated ArchPX4IOSerial register-level + custom-DMA
transport in favour of device::Serial over NuttX's lower-half UART
driver (DMA-backed via CONFIG_UART7_RXDMA/TXDMA=y). Removes the
~600-line parallel transport stack that had to be kept in sync with
src/drivers/px4io/.

NuttX file descriptors aren't shared across task contexts, so the
fd opened during the bridge's init() (caller task) cannot be used
from Run() (work queue task). The interface releases the fd at the
end of init() and the work queue lazy-opens its own on first use.

Read requests now transmit PKT_SIZE bytes (header + count reg slots
of padding) so the secondary's CRC accounting matches the response
shape — the previous header-only request was rejected by the secondary's
PKT_SIZE/CRC validation.

Renames the internal class and exposed factory/release symbols and
the board macros to drop the misleading PX4IO prefix; the file header
points to the original source. Protocol-level PX4IO_* constants stay
since this driver speaks the PX4IO register protocol.

Signed-off-by: Julian Oes <julian@oes.ch>
2026-05-04 14:08:30 +12:00
Julian Oes d437188333 fix(systemcmds): remove debug uart8_test 2026-05-04 10:42:08 +12:00
Julian Oes 77f7f75536 fix(boards): newlines 2026-05-04 10:41:32 +12:00
Julian Oes 8460e533e3 feat(cubered): re-use device::Serial class in secondary 2026-05-04 10:40:10 +12:00
Julian Oes 0561e5c574 feat(cubered): support reboot command in secondary 2026-05-04 10:38:28 +12:00
Julian Oes 1a65a9d5b9 feat(boards): add CubeRed primary and secondary 2026-05-04 09:56:57 +12:00
Julian Oes c8bc2766f6 fix(px4io): use out-params for register API, clear request buffer 2026-05-04 09:56:53 +12:00
Julian Oes 81384aca8a feat(stm32h7): honour PX4IO_SERIAL_SWAPPED 2026-05-04 09:56:51 +12:00
Julian Oes 226dcd0629 feat(cmake): add upload override and external flash options 2026-05-04 09:56:50 +12:00
Julian Oes 9a6a1a8f83 feat(uploader): port extflash + move port detection to python 2026-05-04 09:56:49 +12:00
PX4BuildBot 480c4dd33e docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-05-03 21:55:15 +00:00
Hamish Willee 801362b6f5 fix(mavlink): Remove legacy mavlink message requestors (#27252) 2026-05-04 09:49:03 +12:00
G. Amponis ef1853eec9 gimbal: handle NaN pitch/yaw in DO_GIMBAL_MANAGER_PITCHYAW (#27206)
NaN signals "unset" per the MAVLink spec. Without a guard,
math::radians(NaN) propagates through the Eulerf-to-Quatf conversion
and produces q=[nan,nan,nan,nan], freezing the gimbal. Substitute 0
for any non-finite axis with PX4_ISFINITE, matching the manual-control
pattern at input_mavlink.cpp:951.

Closes #26640.
2026-05-04 09:45:54 +12:00
PX4BuildBot f63b0d6b6f docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-05-01 19:36:01 +00:00
msl-dev 0f2b666813 fix(mavlink): preserve OpenDroneID system timestamp (#27244) 2026-05-01 22:23:52 +03:00
PX4BuildBot bda25bfcc1 docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-05-01 07:36:37 +00:00
Vuk-SFL 0ffc7f0f8a feat(zenoh): add support for configuring zenoh publisher options (#27157)
* feat(zenoh): add support for configuring zenoh publisher options

Add zenoh parameters for common default options for all publishers. Options exposed are reliability, priority, congestion control and is_express
Allow override of common publisher options for specific publisher through its config: config fille supports additional row where multiple options can be specified with csv string
Expose config options through zenoh config add publisher.
Allow options per publisher to be specified for default config in zenoh/dds_topics.yaml

* fix(zenoh): Put individual zenoh publisher config override feature under config option ZENOH_PUB_OPTION_OVERRIDE

Enabled ZENOH_PUB_OPTION_OVERRIDE on targets with enough flash memory

* fix(zenoh): added publication options for default publications in dds_topics.yaml

Rare messages that are important to arive: set as reliable, enabled express and with blocking congesiton control
Fast vehcile position messages that can impact control decision making: set as best enabled express and with drop congestion control

* docs(zenoh) : added documentation for zenoh publisher options usage

* docs(docs): Link to params

---------

Co-authored-by: Hamish Willee <hamishwillee@gmail.com>
2026-05-01 09:29:17 +02:00
Matthias Grob eb06c7b7a9 refactor(commander): remove unused parameter COM_TAKEOFF_ACT (#26808)
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
Docs - Crowdin - Upload Guide sources (en) / upload-to-crowdin (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
MAVROS Tests / MAVROS Mission (push) Has been cancelled
MAVROS Tests / MAVROS Offboard (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
Sync ROS 2 messages to px4_msgs / sync_to_px4_msgs (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
2026-05-01 00:57:49 +02:00
Hamish Willee f101bf4adb docs(docs): Orbit status msg updates (#27256) 2026-05-01 08:54:38 +10:00
PX4BuildBot 8b8eded752 docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-04-30 22:46:06 +00:00
Matthias Grob 5638ac53c7 refactor(commander): Remove COM_LKDOWN_TKO (#27262)
hardcoding its default 3 second time window.
2026-05-01 00:37:55 +02:00
PX4BuildBot b8194973ff docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-04-30 22:14:30 +00:00
Matthias Grob a061b8665b fix(commander): Remove COM_ARM_SDCARD (#27259)
hardcoding the default warning and respecting boards without SD card with a define.
2026-04-30 23:49:47 +02:00
PX4BuildBot 1830c27d39 docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-04-30 21:49:29 +00:00
Matthias Grob ffef31fb06 fix(commander): Remove COM_IMB_PROP_ACT (#27260)
and hardcode the default warning. The feature can still be disabled by setting FD_IMB_PROP_THR to zero.
2026-04-30 23:40:55 +02:00
Matthias Grob 5e86be131c fix(commander): Remove COM_OBC_LOSS_T (#27261)
hardcoding the default 5 second timeout.
2026-04-30 23:40:44 +02:00
PX4BuildBot 800ebfed5c docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-04-30 08:50:07 +00:00
Balduin b5fcd649eb feat(navigator): add logging to surface reason for mission invalidity (#27254) 2026-04-30 10:30:45 +02:00
PX4BuildBot 2f60b0f2ba docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-04-30 08:26:31 +00:00
Hamish Willee 2857ad59dc fix(battery): Add invalid sentinel for BatteryStatus remaining_capacity_wh and nominal_voltage (#27236) 2026-04-30 18:19:12 +10:00
PX4BuildBot e161eb5ae7 docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-04-30 07:56:59 +00:00
Hamish Willee 0814316774 docs(infrastructure): Update dependencies (#27183)
* docs(infrastructure): Update dependencies

* docs(docs): yarn.lockfile needed by toolchain
2026-04-30 17:50:10 +10:00
PX4BuildBot 80b27d323e docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-04-30 06:54:07 +00:00
Dorten8 3cefb4aee2 docs(docs): Fix typo in Python package name in user guide (#27207) 2026-04-30 16:47:18 +10:00
PX4BuildBot 17bb8f879d docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-04-30 04:47:29 +00:00
Julian Oes d00372cc04 fix(logger): add MiB unit to SDLOG_MAX_SIZE (#27245)
This required to add MiB as a unit to the parsers.

While at it, I decided to clean up the MB log output and be correct
using MiB instead.
2026-04-30 16:40:08 +12:00
PX4BuildBot cceaab7375 docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-04-29 23:27:58 +00:00
Hamish Willee 4138ff80ab docs(update): Add OEM section (#27249) 2026-04-30 09:20:48 +10:00
Julian Oes e8d40fb843 fix(Tools): exclude PX4-OpticalFlow submodule from format checks (#27246)
It's an external submodule we don't own, same treatment as the other
third-party libs already pruned in this list.
2026-04-30 10:21:35 +12:00
PX4BuildBot 450cd50e06 docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-04-29 20:36:28 +00:00
mahima-yoga c4c68df4e4 chore(tecs): remove TECS airspeed filter parameters
These parameters are never tuned by the end-user, so we can use constants instead and immediately set the kalman gain at compile time
2026-04-29 22:28:16 +02:00
PX4BuildBot 8980657425 docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-04-29 15:25:26 +00:00
Claudio Chies 76ce06c931 feat(sih): Add thrust model for hexacopter simulation (#26587)
* Quadratic thrust for SIH hexarotor (#67)

* sih: add thrust model hexacopter model

* fix: add missing line break

* sihsim_hey airframe: add THR_MDL_FAC

to accomodate for simulated quadratic motor thrust.

* fix(sih):  fix quadratic model in simulation

The square was done in place and the low pass filter also effected the same variable, the result was that for small numbers the low pass filter gain was not enouhg with respect to the decay caused by squaring numbers close to zero. As a result even if you where trying to send 1 xcommands in simulation it would stoip around 0.008. Now the square is done in a different variable, the problem is not there anymore.

Tested in simulation
---------

Signed-off-by: Gennaro Guidone <gennaroguido2002@gmail.com>
Co-authored-by: Matthias Grob <maetugr@gmail.com>
Co-authored-by: Gennaro Guidone <gennaroguido2002@gmail.com>
2026-04-29 09:18:05 -06:00
PX4BuildBot b93978fbf9 docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-04-29 02:37:03 +00:00
Ryan Johnston 130bc7a5e0 docs(update): Large vehicle quick calibration with heading (#26003) 2026-04-29 12:29:51 +10:00
PX4BuildBot a225e6156e docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-04-29 02:02:20 +00:00
Claudio Chies f79de2b783 feat(docs): update parameter recommendations for PingRX setup (#26880) 2026-04-29 11:55:25 +10:00
Hamish Willee 95d6a3c171 docs(params): Fix up params that render badly after prettier (#27211) 2026-04-29 11:55:09 +10:00
Julian Oes 1a3d232e7b fix(bootloader): remove broken PROTO_SET_DELAY boot-delay feature (#27081)
The bootloader boot-delay feature has been mechanically broken on
every modern FMU board since the STM32F7/H7 transition. It has three
independent bugs that prevent it from ever working:

1. Offset mismatch: BOOT_DELAY_ADDRESS is hardcoded to 0x1a0, but the
   NuttX vector table is 504 B (F76x) to 664 B (H743) long. The
   linker places _bootdelay_signature at ALIGN(32) past end of
   vectors (e.g. 0x2a0 on CubeOrange), never at 0x1a0. The bootloader
   reads random exception_common pointers in place of the magic and
   never matches BOOT_DELAY_SIGNATURE1/2. Verified on CubeOrange with
   objdump of cubepilot_cubeorange_default.elf.

2. Flash cache never flushes: fc_write() stores arbitrary writes in
   cache line 1 and only flushes on a very specific condition tied
   to the sequential firmware upload flow. A standalone write during
   PROTO_SET_DELAY is cached forever. fc_read() then returns the
   cached value, so the post-write verify lies and the bootloader
   reports success. Nothing ever reaches flash.

3. H7 write granularity: the STM32H7 flash controller requires a
   full 32-byte program cycle per write. Single 32-bit writes from
   flash_func_write_word() would not be accepted by the controller
   even if they reached it.

The feature has been silently dead on every H7/F7 FMU board for
years and no one noticed, which is strong evidence nothing actually
depends on it. Rather than fix it (which would mean rewriting
PROTO_SET_DELAY, the flash cache path, and the H7 flash programming
path), remove it.

Changes:
- bl.c: PROTO_SET_DELAY case now immediately NACKs (goto cmd_bad)
  so clients that still send the command get a clear rejection
  instead of the previous silent fake-success. The opcode stays in
  the protocol enum for backwards compatibility.
- bl.h: drop BOOT_DELAY_SIGNATURE1/2 and BOOT_DELAY_MAX.
- stm/stm32_common/main.c, nxp/imxrt_common/main.c: drop the
  startup boot-delay sig check block.
- image_toc.c: decouple find_toc() from BOOT_DELAY_ADDRESS.
  BOARD_IMAGE_TOC_OFFSET is now the required define when
  BOOTLOADER_USE_TOC is enabled. The body is wrapped in #ifdef
  BOOTLOADER_USE_TOC and falls back to a stub returning false when
  the TOC is not in use (no upstream board currently enables it).
- Linker scripts: strip EXTERN(_bootdelay_signature) and the
  FILL/. += 8 block from all 142 affected .ld files across boards/.
- hw_config.h: strip the #define BOOT_DELAY_ADDRESS and its comment
  block entry from all 48 affected boards.
- Tools/px4_uploader.py, Tools/teensy_uploader.py: remove --boot-delay,
  set_boot_delay(), and SET_BOOT_DELAY client-side counterpart.

Smoke-built on cubepilot_cubeorange_default and
cubepilot_cubeorange_bootloader; no link errors, no unresolved
symbols, flash usage unchanged.

Tested:
- New BL, new FW
- Old BL, old FW
- Old BL, new FW
- New BL, old FW
2026-04-29 13:04:03 +12:00
Julian Oes 0546d1c0e7 fix(nuttx): update for NAND bad block management (#27227)
This updates the NuttX submodule to enable the W25N's bad block
management.
2026-04-29 11:14:34 +12:00