Commit Graph

33449 Commits

Author SHA1 Message Date
Andy Piper c057cc5485 AP_HAL_ChibiOS: add get_output_mode() and use it to print correct banner for iomcu
add support for undef of STM32 lines and DMA_NOMAP
add support for F103 running at 24Mhz
add f103 variants of iofirmware
reduce memory usage in iomcu for new model
correct pwm output reporting
split iofirmware into config + mcu to allow f103 definition
don't enable non-existant timers on F103
2023-08-15 06:53:48 +10:00
Andy Piper 7b96f66413 AP_IOMCU: add support for getting output mode and mcuid
give an appropriate MCUID on F103
2023-08-15 06:53:48 +10:00
Andy Piper 2dd4f3f581 AP_BoardConfig: control dshot availability with HAL_WITH_IO_MCU_DSHOT
correct parameter id for BRD_IO_DSHOT
2023-08-15 06:53:48 +10:00
Andy Piper c631b79dde AP_HAL: add get_output_mode() and HAL_WITH_IO_MCU_DSHOT 2023-08-15 06:53:48 +10:00
Andy Piper 83fddd0d61 AP_HAL_ChibiOS: enable iomcu-dshot on CubeBlack 2023-08-15 06:53:48 +10:00
Andy Piper bb730e8e24 AP_IOMCU: inverted locking model 2 2023-08-15 06:53:48 +10:00
Andy Piper ec1edea1da AP_IOMCU: add support for shared DMA to iomcu-dshot
new event-based update() loop for iomcu to allow for DMA channel sharing
spin event loop at 2Khz to give dshot thread ample access to DMA channels
correct transmission complete callbacks
ensure peripheral is re-enabled on DMA resumption
ensure DMA transactions do not get clobbered by locking
restructure callbacks for shared and non-shared DMA cases
ensure RC updates happen at 1Khz
increase expected delay at startup
2023-08-15 06:53:48 +10:00
Andy Piper 10a612566a AP_HAL_ChibiOS: ensure shared DMA works in IOMCU
enable TIM4 in shared mode on IOMCU for dshot
stop the PWM peripheral in rcout DMA swapping on IOMCU to prevent UART corruption
provide debugging options on iomcu dshot
support unshared DMA with iomcu dshot
optimize rcout on iomcu
tune iomcu stack for 8 channels
2023-08-15 06:53:48 +10:00
Andy Piper 3c42f1b7d9 AP_HAL_ChibiOS: disable stack checking on iomcu 2023-08-15 06:53:48 +10:00
Andy Piper 9611baf148 AP_Vehicle: soft reboot iomcu on soft reboot 2023-08-15 06:53:48 +10:00
Andy Piper 837c81af5e AP_HAL_ChibiOS: fix sending of dshot commands to all channels 2023-08-15 06:53:48 +10:00
Andy Piper e6e0543b8a AP_IOMCU: propagate dshot rates through to IOMCU
implement dshot ESC telemetry
add support for channel enablement/disablement
add stack checks and reporting for MSP stack
wait correct timeout in tickless mode
ensure that dshot sees all pwm updates as the occur in order to maintain periodicity
ensure dshot options are propagated on reset
implement dshot commands
ensure oneshot/125 and mode are setup correctly
add instrumentation for process stack
prevent illegal recursive locks
ignore requests for dshot 600
add support for soft reboot of iomcu
2023-08-15 06:53:48 +10:00
bugobliterator 9a21297cd1 AP_HAL_ChibiOS: add support for DShot on IOMCU
set timer counter size to be a byte wide
use HAL_DSHOT_ENABLED instead of DISABLE_DSHOT
build iomcu-dshot from existing iomcu
correct defines for DMAR size on iomcu
allow iomcu dshot rate to be configured from FMU
correct DMA allocation for dshot on iomcu
allow debug builds on iofirmware
ensure dshot is enabled on iomcu dshot
support proper iomcu dshot output thread triggered by FMU
allow selective disablement of serial LEDs and passthrough
disable serial LEDs and passthrough on iomcu-dshot
propagate ESC telemetry to iomcu
dshot_send_groups() for iomcu
remove use of ICU on iomcu for dshot. only allocate possible DMA channels
rename serial passthrough and dshot defines
update dshot docs
resize dshot iomcu main stack to minimum
correct dshot prescaler usage and bit_width_mul calculation
use ChibiOS in tickless mode on iomcu-dshot so that virtual timers can be used
propagate dshot commands to iomcu
passthrough oneshot125 to iomcu
2023-08-15 06:53:48 +10:00
Andy Piper f233a65580 AP_HAL_ChibiOS: add global interrupt handlers for TIM15 and TIM17 on F1 2023-08-15 06:53:48 +10:00
Andy Piper 9642343e8e AP_BLHeli: normalize motor index correctly for iomcu running dshot 2023-08-15 06:53:48 +10:00
Andy Piper 0b4838475d AP_SerialLED: configure serial LED feature based on hal availability 2023-08-15 06:53:48 +10:00
Andy Piper 4c8b346512 AP_BoardConfig: check IOMCU is enabled when checking dshot 2023-08-15 06:53:48 +10:00
Andy Piper 1b210f8ea9 AP_HAL: support accessors for dshot_period_us
add support for selectively disabling serial LEDs and passthrough
provide mutator to allow iomcu to set dshot rate
support HAL_SERIAL_ESC_COMM_ENABLED and DISABLE_SERIAL_ESC_COMM
update dshot docs
make default serial led enablement dependent on dshot
2023-08-15 06:53:48 +10:00
Andy Piper eacc29e81e AP_Math: do not use internal_error() on iofirmware 2023-08-15 06:53:48 +10:00
bugobliterator 4ce32c74de AP_HAL: add default DISABLE_DSHOT as false
use HAL_ENABLE_DSHOT instead of DISABLE_DSHOT
2023-08-15 06:53:48 +10:00
bugobliterator b8af6da623 AP_BoardConfig: add ability to change dshot firmware 2023-08-15 06:53:48 +10:00
bugobliterator ad428ac060 AP_IOMCU: add support for sending DShot function command
add support for dshot on iomcu
add support for updating to dshot iofirmware
2023-08-15 06:53:48 +10:00
Peter Barker 771f8855b7 AP_Logger: correct use of nullptr in SITL structure sanity checks
A developer might be able to craft a fault such that s could be nullptr here.  They would need to work at it, but we can do better.
2023-08-14 22:25:50 +10:00
Andrew Tridgell 0d97b308b2 GCS_MAVLink: fixed corruption of FTP reply component ID
this led to not being able to do FTP transfers with
support.ardupilot.org unless MissionPlanner used the same component ID
as the support engineer GCS
2023-08-14 22:25:23 +10:00
alexklimaj 738a4c638a hwdef: arkv6x default to no IO MCU 2023-08-14 12:06:25 +10:00
Peter Barker 90929205e9 SRV_Channel: correct RC channel failsafe mask
this is a 32-bit parameter.
2023-08-14 11:21:06 +10:00
Andrew Tridgell 484312df93 AP_NavEKF3: fixed race condition in updateFilterStatus()
filter status was initially set to zero then updated. This interacts
with the IMU filtering code which checks filter status from a
different thread to determine active_EKF_type(). When the race
condition is hit then the IMU we are running notch filters on changes
for a single sample, causing a notch filter glitch
2023-08-12 17:47:56 +10:00
Andy Piper 205e6bebc7 AP_HAL_ChibiOS: fix incorrect removal of HAL_I2C_INTERNAL_MASK undef in SkystarsH743HD 2023-08-12 14:00:11 +10:00
Michelle Rossouw e4d44c1006 SITL: Make SIM_Aircraft use double precision to stop SITL's short-range teleporting 2023-08-12 10:49:02 +10:00
Tom Pittenger 2b30fbcfb2 AP_HAL_ChibiOS: disable RPM by default on Periph 2023-08-11 13:31:45 -07:00
Tom Pittenger 0de754bff3 AP_RPM: prepare for AP_Periph 2023-08-11 13:31:45 -07:00
Tom Pittenger 41024b7f02 AP_TemperatureSensor: add Source Pitot_tube 2023-08-11 13:20:51 -07:00
olliw42 2f58d082f0 GCS_Common: brackets missing in switch case 2023-08-11 12:11:43 -07:00
arshPratap 47efaf9c62 AP_DDS: Added ROS 2 service support 2023-08-11 13:35:49 +10:00
arshPratap 5f17e33b39 AP_Arming: Added DDS Method for Arming/Disarming 2023-08-11 13:35:49 +10:00
Peter Barker 7f8df080f8 SITL: correct compilation for CubeOrange-SimOnHardware
../../libraries/SITL/SIM_GPS.cpp: In member function 'void SITL::GPS::send_gsof(const uint8_t*, uint16_t)':
../../libraries/SITL/SIM_GPS.cpp:1292:24: error: 'AP_InternalError' has not been declared
 1292 |         INTERNAL_ERROR(AP_InternalError::error_t::flow_of_control);
2023-08-11 12:40:59 +10:00
Ryan Friedman 5b21834827 AP_GPS: Switch to sparse endian to make it portable
* Instead of custom algorithm to reduce flash and code maintenance

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
2023-08-11 11:21:41 +10:00
Peter Barker e638925ee0 AP_HAL_ChibiOS: chibios_hwdef.py: fix minor bugs
also mark as flake8-clean
2023-08-11 10:41:02 +10:00
Peter Barker 536f3ac922 chibios_hwdef.py: minor flake8 fixes
whitespace, long lines, ambiguous variables etc
2023-08-11 10:41:02 +10:00
Peter Barker 65cc16c51d SITL: add descriptions for simulated IMU scale factors 2023-08-11 10:34:02 +10:00
Andrew Tridgell 44c5754e36 AP_Airspeed: increased timeout on DroneCAN airspeed data
the data is sent at 20Hz, which means a single lost packet with 10Hz
reading resulted in an unhealthy sensor
2023-08-11 10:33:36 +10:00
Andrew Tridgell faa4d28851 AP_Airspeed: fixed handling of unhealthy airspeed
this fixes a bug introduced in
https://github.com/ArduPilot/ardupilot/pull/22416 which results in
using bad airspeed data on timeout. The prev_health variable is
updated by the get_pressure call
2023-08-11 10:33:36 +10:00
Peter Barker cbd2b199eb SITL: factor simulated GPS 2023-08-11 10:01:56 +10:00
olliw42 e2599252a1 AP_Mount: use backend instead of _backends[instance] 2023-08-11 07:55:05 +09:00
Andrew Tridgell 8ff37bc79c AP_Networking: fixed duplicate parameters in wiki
defining two parameter tables in one file causes duplicates
2023-08-10 13:34:14 -07:00
Andy Piper f787e940b3 AP_HAL_ChibiOS: change incorrect I2C internal mask from SkystarsH7HD bdshot 2023-08-10 16:16:16 +10:00
davidsastresas 767710340a AP_Mount: Viewpro sends gimbal_device_id in camera_information 2023-08-10 14:37:30 +09:00
davidsastresas 25e8bd1f42 AP_Mount: Xacti sends gimbal_device_id in camera_information 2023-08-10 14:37:30 +09:00
davidsastresas d242a968f3 AP_Mount: Siyi sends gimbal_device_id in camera_information 2023-08-10 14:37:30 +09:00
davidsastresas 55aa1b5a32 AP_Mount: Backend sends gimbal_device_id in device_attitude_status_send 2023-08-10 14:37:30 +09:00