Commit Graph

1453 Commits

Author SHA1 Message Date
Jacob Dahl a3bb0d5b0a fix kconfig, add _REG32 2026-02-10 19:29:00 -09:00
Jacob Dahl 85dfa8c8b6 claudes first try 2026-02-10 19:22:02 -09:00
Jacob Dahl e5068e1f1d cleanup print_status, rename perf counters 2026-02-10 14:06:27 -09:00
Jacob Dahl 4cfda1feed Merge branch 'main' into dev/dshot_stuff2 2026-02-10 12:29:38 -09:00
Julian Oes 833e4536b7 nuttx: add support for NAND flash
This cherry-picks upstream commits adding NAND flash support for the
Winbond W25N specifically W25N01GV chip.

NAND flash is used together with littlefs, hence I updated that to 2.5.1
to match upstream NuttX.
2026-02-10 15:23:51 +13:00
Eric Katzfey aacb7e35dd For VOXL flight controllers, Use DSP clock directly on Posix for CLOCK_MONOTONIC 2026-02-09 15:22:36 -07:00
Eric Katzfey 1dbee4100a uORB: Added a new uorb_shutdown function that is called during normal shutdown procedures. It will only
call into a new UORB COMMUNICATOR ICHANNEL shutdown interface if it has been configured, otherwise it
does nothing. This allows ICHANNEL implementations to pass on a shutdown indication to a remote processor.
Implemented the shutdown interface in the muorb module for VOXL flight controllers.
2026-02-09 15:21:41 -07:00
Julian Oes 7b0984584f dshot: add EDT data to status 2026-02-06 16:23:42 +13:00
Julian Oes b9f6e35a43 dshot: just publish at 200 Hz
It's tricky to figure out when to publish especially if some outputs
that should be reporting stop reporting. I had some edge cases where it
would not publish due timers not fully configured, so I decided to just
publish at 200 Hz no matter what data was there to publish.
2026-02-06 16:21:07 +13:00
Eric Katzfey e37a216393 QURT/SERIAL: Undo the breaking changes from commit 17f3db9231. (#26382)
A check was added for a non-existant parameter. This commit removes those.
2026-01-29 12:03:18 -09:00
Jacob Dahl ac5fba4c28 imxrt: add up_bdshot_channel_capture_supported 2026-01-27 20:34:48 -09:00
Julian Oes 0c51b25391 dshot: support timer channels without DMA capture
Some timer channels such as timer 4 channel 4 don't support DMA, so we
can only use them to burst/update but not to capture.
2026-01-27 15:39:49 -09:00
Jacob Dahl 44f62fd764 rename perf counters, skip burst delay on last channel 2026-01-27 15:39:49 -09:00
Jacob Dahl 89f14100ab Update platforms/nuttx/src/px4/stm/stm32_common/dshot/dshot.c
Co-authored-by: Julian Oes <julian@oes.ch>
2026-01-27 15:39:49 -09:00
Jacob Dahl b1585a7f55 Update platforms/nuttx/src/px4/stm/stm32_common/dshot/dshot.c
Co-authored-by: Julian Oes <julian@oes.ch>
2026-01-27 15:39:49 -09:00
Jacob Dahl 8847c3cc83 dshot: trigger timers at the same time, with 10us delay between bursts to work around race condition 2026-01-27 15:39:49 -09:00
Jacob Dahl 6bc0e0c74e dshot: imxrt: fix unsigned to uint8_t in dshot_motor_data_set 2026-01-27 15:39:49 -09:00
Jacob Dahl 4ee3d2778e sequential dshot burst/capture timer triggering, it works! 2026-01-27 15:39:49 -09:00
Jacob Dahl bf783779b6 fix esc online mask ordering, fix bdshot channels ready check, improve dshot status formatting 2026-01-27 15:39:49 -09:00
Jacob Dahl 22587b09e5 bdshot per channel, use PWM_TIM param for BDSHOT instead of single parameter to allow per timer bdshot, clean up logic and fix minor bugs, re-init dshot in mixerChanged 2026-01-27 15:39:49 -09:00
Jacob Dahl 4b3cd1e9a2 fix names and variables and remove dead code 2026-01-27 15:39:49 -09:00
Jacob Dahl d1d54178d9 fix issues found during review, clean up 2026-01-27 15:39:49 -09:00
Jacob Dahl 46cecf61c5 multi timer, first pass 2026-01-27 15:39:49 -09:00
Jacob Dahl 3b9ea305f7 clean up naming 2026-01-27 15:39:49 -09:00
Jacob Dahl bc89140345 cleaned up 2026-01-27 15:39:49 -09:00
Jacob Dahl 316c0c187a adaptive gcr bit width tracking 2026-01-27 15:39:49 -09:00
Jacob Dahl 844b5adab2 add no_data counter 2026-01-27 15:39:49 -09:00
Jacob Dahl 74da73e37d fix frame quantization 2026-01-27 15:39:49 -09:00
Jacob Dahl b93cb96c4f rebased 2026-01-27 15:39:49 -09:00
Julian Oes 9460625c99 Tools: rewrite uploader script (#26310)
* Tools: rewrite uploader script

This adds a script called px4_uploader.py which is a complete rewrite
using Claude Code of px_uploader.py.

The main improvements over the previous px_uploader.py script are:
- Separate smaller classes instead of one big uploader class.
- Easier debugging with --verbose or --debug flags.
- Nicer progress animation.
- No more hard to debug Exception swallowing over multiple levels.
- Auto-detection and looping of devices, removing the functionality from
  cmake.
- Auto-detection of PX4 devices by USB VID/PID.
- Add noninteractive mode
- Add JSON output mode
2026-01-24 11:09:17 +13:00
Phil-Engljaehringer 3438d593a1 drivers: MCP23009 & MCP23017 shared code base (#25924)
* Implemented driver for MCP23017

* fixed compatability with mcp23009. (naming of instantiated GPIO-Devices)

* removed some comments

* removed even more comments

* commented out instatntiation of driver since it will not be used with v6x

* removed last useless comments

* re-activated gpio_mcp23009 driver, removed useless comments and empty lines

* removed empty lines at the end of mcp23017.cpp

* removed empty line

* Implemented driver for MCP23017

* fixed compatability with mcp23009. (naming of instantiated GPIO-Devices)

* removed some comments

* removed even more comments

* commented out instatntiation of driver since it will not be used with v6x

* removed last useless comments

* re-activated gpio_mcp23009 driver, removed useless comments and empty lines

* removed empty lines at the end of mcp23017.cpp

* removed empty line

* basic working implementation

* first improved driver version with shared code base for MCP23009 & MCP23017 (built as state machine with sanity checks)

* removed unused imports

* changed module name from MCP to MCP230XX

* removed debug print statements

* adjusted auto start command of driver

* removed comments

* -added seperate main functions for both derivative modules (mcp23009 and mcp23017)

* compile common functions as shared library in src/lib/drivers

* fixed cleanup of modules

* ->unclean working version with shared common library

* used make format

* working & cleaned version

* -> Added CallbackHandler to be able to use multiple reading GPIO-expanders simultaneously
-> Removed old mcap23009 calls and pin registrations
-> Adjusted GpioIn.msg to contain MAX_INSTANCES

* ->removed unused imports
->used make format

* Fix: Re-enabled platform_mcp_gpio for accton-godwit, cuav, fmu-v5x

* Fix: enabled platform_mcp_gpio in px4/fmu-v5x

* added depency to fmu-v5x

* Fix: removed new lines

* Fix: fixed linker errors

* removed unused linkage against mcp-library

* Made mcp start calls consistent for fmu-v5x and fmu-v6x

* moved logging of comm errors to read/write function directly

* added perf_count for sanity_check

* removed error message

* ensured member variables follow naming convention

* added retries to probe function

* simplyfied state-logic

* add break to terminate loop early

* ensured clean state when register_gpios() fails

* add registered-flag to pins

* used path from top dir instead of relative path in CMakeLists

* used constexpr to set parameters instead of calculating them at runtime

* style: used make format

* fix: corrected i2c_bus assignment

* style: init input of callbackhandler to 0

* fix: mark pin as registered if successful

* style: made arguments const type

---------

Co-authored-by: Alexander Lerach <alexander@auterion.com>
2025-12-17 17:48:30 +01:00
Alexander Lerach e822da74b2 io timer: fix input capture on various boards 2025-12-17 17:02:13 +01:00
Jacob Dahl b92d21bd31 serial: add txSpaceAvailable function (#26069)
* serial: add txSpaceAvailable function

* serial: txSpaceAvailable and bytesAvailable fixups
2025-12-12 09:31:33 -09:00
Tarmo Tänav f29aa182a8 Add support for NXP i.MX RT1170B 2025-11-26 09:59:51 -09:00
Alexis Guijarro 5f7e395609 NuttX: Add support for FM25V02A-DGQ 2025-11-24 10:37:45 -09:00
Peter van der Perk 921e91863a dshot: IMXRT BDSHOT baud training
AM32 bdshot doesn't do clock compensation like BLHeli32 did.
Instead we traing BDSHOT timing on known zero value to lock on
best bdshot baudrate to receive.

Reduces CRC and frame errors on AM32 a lot
2025-11-24 09:24:49 -09:00
Niklas Hauser 17f3db9231 [serial] Fix byte size, flow control, parity, stop bits configuration 2025-11-20 10:29:57 -09:00
Peter van der Perk aaf6632a22 imxrt: move teensy bootloader to normal bootloader
Best for teensy is to use the teeny as normal bl
2025-11-10 00:52:58 -05:00
Jacob Dahl 38847b1cf3 stm32: io_timer: pullup gpio during dma capture (#25850) 2025-11-06 12:33:35 -07:00
Peter van der Perk 1250563ed1 Add support for NXP MR-VMU-Tropic board (#25845)
* rt106x: Use platform SPI hal layer

* rt106x: Add romapi support and reboot to isp/bootloader

* bootloader: imxrt_common: Add rt106x support

* NXP MR-Tropic initial commit

* Add missing file for mr-tropic bootloader

* nxp-mr-tropic:Bootloader Alow Assertion debugging & Keep Ram Vectors

* nxp-mr-tropic: Firmware Boot from bootloader

* nxp-mr-tropic:Add Bootloader bin file

* mr-tropic: Update config and linker

Fixes enet issues with write-back and some code cleanup.
Furthermore increase NOR LittleFS to 256kB to reflect on linker

* Update NuttX

* mr-tropic: fix itcm apping and add mr-tropic to itcm check

---------

Co-authored-by: David Sidrane <David.Sidrane@NscDg.com>
2025-11-05 11:48:26 -05:00
Thijs Hof c44e0be18a fix bidir dshot for nxp xrt boards 2025-11-03 08:14:27 -09:00
Alexander Lerach 2e586c47b0 update nuttx (to include TX DMA fix) 2025-10-22 15:22:15 +02:00
Alexander Sherikov 6e8f61c551 various cmake fixes (#25748)
- enable building in a cmake subdirectory:
    - use consistent path to "etc" in build directory
    - add a quick fix for mavlink inclusion with
      `mavlink/<version>/mavlink.h`, presumably the problem does not
      appear normally since somewhere the build root directory is added
      to include paths.
- install gazebo config and plugins, the goal is to enable packaging of
  PX4 sitl binaries.
- fix dependency on dds_topics.h generation in uxrce_dds_client:
  *** No rule to make target 'PX4-Autopilot/src/modules/uxrce_dds_client/dds_topics.h', needed by 'PX4-Autopilot/events/px4.json'.  Stop.
  https://github.com/PX4/PX4-Autopilot/issues/21788

Co-authored-by: Jacob Dahl <37091262+dakejahl@users.noreply.github.com>
2025-10-17 11:11:00 -08:00
Peter van der Perk 2f48cb4ef2 MR-CANHUBK344 NXP B3RB Rover support (#23897)
* s32k3xx: EMIOS allow independent frequencies for each channel

* mr-canhubk3: update config

* mr-canhubk344: Fix adap board detect

* mr-canhubk344: Use LPSPI1 (Port P1A) for SD card

* airframes: Add B3RB Ackermann rover config

See https://nxp.gitbook.io/mr-b3rb for more information about the NXP
B3RB platform. PX4 Support basic control for now
2025-10-09 23:28:43 -08:00
Henry Kotzé dbd13070e5 esp32: pwm register updates correctly on change (#25653)
- removed the bug where some overflow would occur on the PWM signal when
  changing the duty cycle of the signal after power up. (PWM_MAIN_DIS,
PWM_MAIN_MIN or PWM_MAIN_MAX)

removed commented code

cleanup of previous cherry-pick

Co-authored-by: henrykotze <henry@autonosky.com>
2025-09-30 11:15:06 -08:00
Alexander Lerach 03e6f40995 nuttx submodule update (dcache fix)
* nuttx submodule update (dcache fix)
2025-09-29 18:04:26 +02:00
Alexander Lerach 0a8a5472ec nuttx submodule update (fix sem holder list) 2025-09-23 10:02:49 +02:00
Claudio Chies d3acee315a BAT: Consolidate the highest feasible number of batteries into just 3 2025-09-22 15:02:24 +02:00
Eric Katzfey e72ffa3b1f QURT: Changed the non-blocking UART write to use the blocking write with a comment that Qurt (#25573)
still needs a non-blocking write implemented.
2025-09-16 10:40:19 -08:00
Daniel Agar d3f912ad25 platforms: Serial new dedicated writeBlocking method (#25537)
* platforms: Serial new dedicated writeBlocking method

* finish writeBlocking()

* add back fsync

* updated posix, added string constant for port not open error

* format

* fix build

* remove fsync

* actually remove fsync

* remove fsync from write

* review feedback

---------

Co-authored-by: Jacob Dahl <dahl.jakejacob@gmail.com>
Co-authored-by: Jacob Dahl <37091262+dakejahl@users.noreply.github.com>
2025-09-15 15:22:49 -08:00