Commit Graph

49683 Commits

Author SHA1 Message Date
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
PX4BuildBot d4b8fd6790 docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-04-28 22:23:25 +00:00
pfilimonov eceec6c861 fix(gimbal): add YAW_IN_VEHICLE/EARTH_FRAME flags to GIMBAL_DEVICE_SET_ATTITUDE (#27198) 2026-04-29 10:16:39 +12:00
Ramon Roche 3ae123f2b5 fix(ci): set GH_REPO so labeler works without checkout
The auto-label step in pull_request_target runs without a repo
checkout, so gh pr view/edit fail with 'not a git repository'.
Setting GH_REPO points gh at the right repo without needing a
checkout step.

Signed-off-by: Ramon Roche <mrpollo@gmail.com>
2026-04-28 15:39:02 -06:00
PX4BuildBot 3d0ab3afbe docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-04-28 17:19:31 +00:00
Silvan d84f6c324a feat(fw-tecs): increase default of FW_T_HRATE_FF from 0.3 to 0.5
Signed-off-by: Silvan <silvan@auterion.com>
2026-04-28 19:10:47 +02:00
PX4BuildBot e3138353b7 docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-04-28 16:50:35 +00:00
alexcekay a433f75736 feat(drivers): add AUAV L60D support 2026-04-28 18:43:03 +02:00
Onur Özkan 182405ce67 Update .github/labeler.yml
Co-authored-by: Ramon Roche <mrpollo@gmail.com>
2026-04-28 10:29:49 -06:00
Onur Özkan b44335035a Update .github/labeler.yml
Co-authored-by: Ramon Roche <mrpollo@gmail.com>
2026-04-28 10:29:49 -06:00
Onur Özkan 43d5bb5aa1 Update .github/labeler.yml
Co-authored-by: Ramon Roche <mrpollo@gmail.com>
2026-04-28 10:29:49 -06:00
Onur Özkan 88af603c0d Update .github/labeler.yml
Co-authored-by: Ramon Roche <mrpollo@gmail.com>
2026-04-28 10:29:49 -06:00
Onur Özkan 6976ffa586 Update .github/labeler.yml
Co-authored-by: Ramon Roche <mrpollo@gmail.com>
2026-04-28 10:29:49 -06:00
Onur Özkan 6815f0fd5e Update .github/labeler.yml
Co-authored-by: Ramon Roche <mrpollo@gmail.com>
2026-04-28 10:29:49 -06:00
Onur Özkan 298746c385 add kind labels automatically
Signed-off-by: Onur Özkan <work@onurozkan.dev>
2026-04-28 10:29:49 -06:00
Onur Özkan 51262a7d5b add certain labels automatically based on the modified files
Signed-off-by: Onur Özkan <work@onurozkan.dev>
2026-04-28 10:29:49 -06:00
PX4BuildBot 73164af67f docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-04-28 14:15:05 +00:00
Marco Hauswirth 72f1c1f6f9 fix(ekf2): set cs.heading_observable to true prior to manual reset 2026-04-28 16:07:53 +02:00
PX4BuildBot 6464c1cf1d docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-04-28 08:55:09 +00:00
Ryan Johnston 622e72c26a feat(commander): accept optional heading arg for mag quick calibration (#24637)
* Update Mag quick Cal to accept heading arguments

* Fixed formatting

* Update src/modules/commander/Commander.cpp

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

* Update src/modules/commander/Commander.cpp

---------

Co-authored-by: Jacob Dahl <37091262+dakejahl@users.noreply.github.com>
2026-04-28 00:46:53 -08:00
PX4BuildBot e0a9572e1c docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-04-27 19:22:20 +00:00
Ramon Roche 64a2463441 fix(mavlink): don't write empty signing key file on shutdown (#27222)
Mavlink::request_stop() unconditionally called
_sign_control.write_key_and_timestamp() on every instance shutdown,
which created /fs/microsd/mavlink/mavlink-signing-key.bin filled with a
zero key and zero timestamp on FCs that never enabled signing.

The shutdown write is redundant: every signing state transition
(KEY_ACCEPTED, SIGNING_DISABLED) already persists synchronously inside
check_for_signing() before returning. The in-memory state is always
flushed to disk at the moment it changes.

Aggravated by mavlink_main.cpp:3334 calling request_stop() up to 1000
times in a tight loop while waiting for the thread to exit, plus the
~Mavlink() destructor path. Each call re-truncates and rewrites the
phantom file.

Reported by Jake Dahl on two separate flight controllers running
mainline.

Signed-off-by: Ramon Roche <mrpollo@gmail.com>
2026-04-27 11:14:20 -08:00
Ramon Roche 7e6ccb3eb6 ci(sbom): check out submodules recursively in PR license check
The PR-time SBOM license check was using `submodules: false`, so when
generate_sbom.py ran the new submodule directory was empty. The script
treats uninitialized submodules as `(not checked out) -> NOASSERTION
(skipped)` rather than a failure, which let PR #27184 (adding
PX4-OpticalFlow as a submodule) pass without ever inspecting the actual
repo for a LICENSE file. The monthly audit then caught it (#27217)
because it uses `submodules: recursive`.

Switch the PR-time job to `submodules: recursive` so license issues
are caught at PR time rather than on the next monthly audit. The job
only runs when .gitmodules, license-overrides.yaml, or
generate_sbom.py change, so the extra clone cost is bounded.

Signed-off-by: Ramon Roche <mrpollo@gmail.com>
2026-04-27 11:37:46 -06:00
Ramon Roche bc080e3044 chore(sbom): bump PX4-OpticalFlow to commit with LICENSE file
Bumps the submodule pointer to pick up the BSD-3-Clause LICENSE file
added in PX4/PX4-OpticalFlow#20.

Resolves the SBOM audit NOASSERTION finding without needing a manual
override entry in Tools/ci/license-overrides.yaml.

Fixes #27217

Signed-off-by: Ramon Roche <mrpollo@gmail.com>
2026-04-27 11:37:02 -06:00
Eric Katzfey ecfe44a74c feat(boards/modalai/voxl2): Add a ModalAI MPA bridge for the raw IMU samples for use by external applications 2026-04-27 08:31:38 -07:00
PX4BuildBot 212eaeebca docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-04-27 13:59:09 +00:00
mahima-yoga 86800b4fdf refactor(wind-estimator): remove unused parameters and unify coding style
Remove ASPD_SCALE_NSD, ASPD_BETA_NOISE, ASPD_TAS_GATE, ASPD_BETA_GATE as these
are never changed in practice. Keep ASPD_WIND_NSD and ASPD_TAS_NOISE tunable as
they are relevant for high-altitude (wind NSD) and high-speed (TAS noise) use cases.
2026-04-27 15:52:04 +02:00
PX4BuildBot e01e0cacb7 docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-04-27 11:54:46 +00:00
Phil-Engljaehringer 13d9f0b193 feat(adc): Add driver for ADS7128 ADC (#26471)
* feat: add driver for ADS7128 ADC

* style: used make format

* fix: only read 1 byte in adc_get()

* fix: set correct min/max/def value for VRef

* fix: print i2c address in status

* feat: add threshhold to failures before reset

* feat: add failure_threshhold_count

* style: remove unused variable definition from module.yaml

* fix: removed retry logic from poll functions

* fix: decreased sleep time in probe function

* feat: add driver for ADS7128 ADC

* style: used make format

* fix: only read 1 byte in adc_get()

* fix: changed scheduling logic

* fix: ensure no false values are published

* fix: removed unused variable definition

* style: used make format

* fix: removed merge artifact

* fix: removed some merge artifacts
2026-04-27 13:47:10 +02:00
PX4BuildBot 6c62052838 docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-04-27 07:56:35 +00:00
Marco Hauswirth 854c43dde8 fix(ekf2): dont adjust inactive height bias estimators on altitude reset 2026-04-27 09:49:24 +02:00
PX4BuildBot 242d63f437 docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
2026-04-26 22:44:22 +00:00
remi22 c224c778f0 docs(sim-x500-fov): Add information about gimbal field of view in x500_gimbal model doc (#26908) 2026-04-27 08:37:28 +10:00
PX4 Build Bot f88bc1f204 docs(i18n): PX4 guide translations (Crowdin) - ko (#27208)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2026-04-27 08:34:53 +10:00
PX4 Build Bot 92cc4db33d docs(i18n): PX4 guide translations (Crowdin) - zh-CN (#27210)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2026-04-27 08:34:40 +10:00
PX4 Build Bot 5c7d08f1d0 docs(i18n): PX4 guide translations (Crowdin) - uk (#27209)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2026-04-27 08:34:23 +10:00
Julian Oes 61295affa1 fix(boards): KakuteH7v2 needs the mklittlefs command (#27185)
This is in case the littlefs on flash NAND is in a bad state and needs
reformatting.
2026-04-27 09:07:11 +12:00