Commit Graph

37425 Commits

Author SHA1 Message Date
Ryan Friedman
26abfc542d AP_DDS: Add infinite initialization wait
Signed-off-by: Ryan Friedman <25047695+Ryanf55@users.noreply.github.com>
2025-02-17 20:27:41 +09:00
Andy Piper
e8b9588015 AP_HAL_ChibiOS: fix docs for BETAFPV-F405-I2C 2025-02-17 20:27:41 +09:00
Andy Piper
0bcda03e01 AP_HAL_ChibiOS: add all BETAFPV F405 variants and re-enable baro-less operation 2025-02-17 20:27:41 +09:00
Andy Piper
448e05ad4f bootloaders: BETAFPV-F405-I2C 2025-02-17 20:27:41 +09:00
Andy Piper
c93299a8aa AP_HAL_ChibiOS: BETAFPV-F405-I2C 2025-02-17 20:27:41 +09:00
Andy Piper
cdf7746657 AP_HAL_ChibiOS: BARO update for BETAFPV F405
add UART6 and VBUS to BETAFPV F405
add alt config to BETAFPV-F405 to support RELAY2 instead of UART6_TX as per betaflight
enable SBUS input on BETAFPV-F405 on UART5_RX
enable IMU temperature calibration for BETAFPV-F405
correct current scale on BETAFPV-F405.
BETAFPV-F405 SPL06 Baro
correct baro SPI read rate on BETAFPV-F405
use SPL06 with background updates on BETAFPV-F405
2025-02-17 20:27:41 +09:00
Andrew Tridgell
976006bd29 AP_Scripting: added UltraMotion servo driver 2025-02-17 20:27:41 +09:00
Andrew Tridgell
8870b6f624 AP_Scripting: added UltraMotion servo driver
see https://www.ultramotion.com/servo-cylinder/
2025-02-17 20:27:41 +09:00
Andrew Tridgell
ebf9122eb6 AP_Scripting: added get_output_pwm_chan 2025-02-17 20:27:41 +09:00
Andrew Tridgell
84cddb7341 SRV_Channel: added get_output_pwm_chan() for scripting
allows for servo drivers to be written in lua
2025-02-17 20:27:41 +09:00
nicholas-inocencio
c904dab38e AP_ADSB: Style fixes 2025-02-17 20:27:41 +09:00
nicholas-inocencio
35bc9b9b96 AP_ADSB: Bugfixes and improvements to ping200X integration
AP_ADSB: uAvionix Transponder Status V3

+ Current version of ping200X sends the v1 status message periodically and the v3 status message in response to the transponder control message, so ardupilot needs to handle both gracefully; version 1 and version 3 are very different in structure and naively assuming one version over another will cause errors.

AP_ADSB: Process additional xpdr status v3 fields

AP_ADSB: Send GCS xpdr status at least every 10s

AP_ADSB: Send ping200X estimated HPL

+ When AP sends the ping200X the GPS data GDL90 message, it needs to provide a valid HPL for the ping200X to report a valid NIC.

AP_ADSB: Don't send unsolicited transponder status

AP_ADSB: Better initialization of xpdr id/config

AP_ADSB: Better initialization of frontend status

AP_ADSB: Suggestions from review
2025-02-17 20:27:41 +09:00
Randy Mackay
e6a73c7812 AP_Mount: CADDX RC rate control fix 2025-02-17 20:27:41 +09:00
Henry Wurzburg
5fc34ddf01 AP_Mount: add CADDX gimbal support
Co-authored-by: Randy Mackay <rmackay9@yahoo.com>
2025-02-17 10:39:41 +09:00
bugobliterator
f7b57b43a4 AP_HAL_ChibiOS: disable mcast bridging in bootloader 2025-02-17 08:43:30 +09:00
bugobliterator
1e067622d2 AP_Networking: make can multicast an endpoint by default
also add option to enable multicast with bridging to CAN bus in application
and disabled in bootloader
2025-02-17 08:43:30 +09:00
bugobliterator
fcff2e6f57 AP_CANManager: use updated frame callback types
also change to IsForwardedFrame from IsMAVCAN
2025-02-17 08:43:30 +09:00
bugobliterator
ed1dd41b46 AP_HAL: change IsMavCAN to IsForwardedFrame 2025-02-17 08:43:30 +09:00
Randy Mackay
7d13752ec8 AP_SerialManager: add i-BUS Telemetry protocol param desc 2025-02-15 09:35:28 +09:00
Thomas Watson
b832dbaedd AP_Scripting: mavlink: clearer error messages 2025-02-13 19:35:51 +09:00
Thomas Watson
6776074580 AP_Scripting: mavlink: remove redundant Lua buffer usage 2025-02-13 19:35:51 +09:00
Thomas Watson
c0573b8efd AP_Scripting: mavlink: fix RX init locking
If there is an error, the semaphore will never be released. Fix by only
calling functions which could cause errors after it's released.
2025-02-13 19:35:51 +09:00
Thomas Watson
9f0cbd881d AP_Filesystem: ROMFS: fix open race conditions
Lua opens scripts to load them into memory, then the logger opens them
after to stream them into the dataflash log. When loading multiple large
Lua scripts from ROMFS, decompression takes a significant amount of
time. This creates the opportunity for the Lua interpreter and logging
threads to both be inside `AP_Filesystem_ROMFS::open()` decompressing a
file.

If this happens, the function can return the same `fd` for two different
calls as the `fd` is chosen before decompression starts, but only marked
as being used after that finishes. The read pointers then stomp on each
other, so Lua loads garbled scripts (usually resulting in a syntax
error) and the logger dumps garbled data.

Fix the issue by locking before searching for a free record (or marking
a record as free). Apply the same fix to directories as well. This
doesn't protect against using the same `fd`/`dirp` from multiple
threads, but that behavior is to be discouraged anyway and is not the
root cause here.
2025-02-13 19:34:53 +09:00
snktshrma
cff3f81e0c AP_Vehicle: Added method to takeoff for use by external control 2025-01-27 08:49:31 +09:00
snktshrma
e49c65d38e AP_DDS: Added takeoff DDS service 2025-01-27 08:49:31 +09:00
Tiziano Fiorenzani
4242692c98 AP_DDS: pre-arm check service 2025-01-27 08:49:31 +09:00
Andy Piper
9329872cb1 AP_Camera: use get_stick_gesture_pos() for RunCam menus 2025-01-27 08:49:31 +09:00
Andy Piper
01a6676e4b AP_OSD: use get_stick_gesture_pos() for OSD menus 2025-01-27 08:49:31 +09:00
Andy Piper
16f0f5ecfd RC_Channel: add get_stick_gesture_pos() for OSD menus 2025-01-27 08:49:31 +09:00
Andy Piper
57ecc12329 AP_HAL_ChibiOS: TBS LUCID PRO/Freestyle 2025-01-27 08:49:31 +09:00
Andy Piper
cd09c3df46 AP_Logger: support GD25Q16E flash 2025-01-27 08:49:31 +09:00
Ryan Friedman
d28175be4e AP_L1_Control: Remove incorrect default in param desc
Signed-off-by: Ryan Friedman <25047695+Ryanf55@users.noreply.github.com>
2025-01-27 08:49:31 +09:00
Andy Piper
9d8e47e0fc AP_BLHeli: use native motor numbering 2025-01-27 08:49:31 +09:00
Andy Piper
c557ba38e5 AP_BLHeli: normalize ESC index correctly with iomcu 2025-01-27 08:49:31 +09:00
Peter Barker
6f6e4d458a AP_BattMonitor: document BATTn_OPTIONS bit 8 (internal-use-only) 2025-01-27 08:49:31 +09:00
Thomas Watson
73e5c2b4a8 AP_HAL_ESP32: ensure malloc is wrapped to zero memory
The relevant linker flag needed to be put in the CMake script.
2025-01-27 08:49:31 +09:00
Rhys Mainwaring
f7d5f0f8f1 AP_MultiHeap: initialize only if heap allocation succeeded
Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
2025-01-27 08:49:31 +09:00
Randy Mackay
df24d3a61d AP_Mount: Topotek pitch rate direction fix 2025-01-27 08:49:31 +09:00
Bill Geyer
dc43fa0a76 AC_AutoTune_Heli: fix rate and accel limiting 2025-01-27 08:49:31 +09:00
Peter Barker
10c1e05f89 AP_Proximity: add sample data from LD06 sensor 2025-01-27 08:49:31 +09:00
Peter Barker
02830ab3df SITL: add LD06 simulator 2025-01-27 08:49:31 +09:00
Peter Barker
a077a99783 AP_HAL_SITL: add LD06 simulator 2025-01-27 08:49:31 +09:00
Peter Barker
54a36170e4 AP_Proximity: correct length sanity check
the length field is actually the count of 3-byte data elements
2025-01-27 08:49:31 +09:00
Marco Walther
3639fa6d17 AP_Proximity: LD06: correct data collection
incorrect distances+angles being returned
2025-01-27 08:49:31 +09:00
Andrew Tridgell
e723664b00 AP_Scripting: added QUIK_ANGLE_MAX for lua quicktune
this brings the same protection to the lua script as was added for the
C++ implementation
2025-01-27 08:49:31 +09:00
Andrew Tridgell
1a43a4840f AP_Scripting: added get_att_error_angle_deg binding for AC_AttitudeControl 2025-01-27 08:49:31 +09:00
Peter Barker
54b0085f09 AP_Proximity: prevent buffer overflow in LD06 driver
We're using a value off the wire before it has been validated.  That value is used to limit indexing into a buffer, and that buffer isn't big enough to handle all possible "bad" values that index could take on.  Note that "read" here returns int16_t....
2025-01-27 08:49:31 +09:00
Siddharth Purohit
cd08d30e8f AP_InertialSensor: do not read FIFO faster than requested rate for ICM45686 2025-01-27 08:49:31 +09:00
Andy Piper
10661c41a4 AP_HAL_ChibiOS: ICM42688 for OrqaF405Pro 2025-01-27 08:49:31 +09:00
Andrew Tridgell
b59b2138b8 AP_CANManager: fixed critical race in log_text()
the AP_CANManager::log_text() gets called from debug logging in
AP_DroneCAN. It is a method on a common AP_CANManager object which is
shared by multiple AP_DroneCAN threads.

if two threads call the debug log messages at the same time then we
can end up with _log_pos greater than LOG_BUFFER_SIZE (1024) and
overwrite past the end of the buffer

in the crash_dump we have for this case the next piece of memory was
hal.can[0], and the overwrite of the buffer had corrupted the
MessageRam_ structurre in the ChibiOS CAN interface code. That led to
a hardfault on receive of a CAN message

Note that this issue only happens if CAN_LOGLEVEL is set to greater
than zero, and the default is zero. So users can avoid the bug by
checking they have not changed CAN_LOGLEVEL.

Also, this is likely an issue that only happens on startup, as once
the two AP_DroneCAN threads are fully running they have the same
thread priority so can't pre-empt each other. During startup some
messages are sent from the main thread which has a different priority
to the AP_DroneCAN threads, and can thus trigger this issue
2025-01-27 08:49:31 +09:00