Commit Graph

61106 Commits

Author SHA1 Message Date
Thomas Watson 93724d9e75 Rover: remove references to legacy UART order 2023-12-19 06:53:15 +11:00
Thomas Watson f20893259d Plane: remove references to legacy UART order 2023-12-19 06:53:15 +11:00
Thomas Watson a82d051140 Tracker: remove references to legacy UART order 2023-12-19 06:53:15 +11:00
Thomas Watson de5b46e028 Tools: remove references to legacy UART order
Also delete some unused variables and update the completions.
2023-12-19 06:53:15 +11:00
Thomas Watson f6ea8201b2 SITL: remove references to legacy UART order incl. sim arguments 2023-12-19 06:53:15 +11:00
Thomas Watson 9044632315 AP_HAL_SITL: eliminate internal legacy UART ordering/references
Legacy command line arguments are kept to avoid breaking users.

The vestigial `_tcp_client_addr` variable is removed.

Serial port status messages are updated to a slightly different format
to clarify the numbering scheme being used and prompt any external
consumers to update.
2023-12-19 06:53:15 +11:00
Thomas Watson f34034584f AP_HAL_Linux: eliminate internal legacy UART ordering/references
Leave the legacy command line arguments to avoid breaking users.
2023-12-19 06:53:15 +11:00
Thomas Watson 6b79349947 AP_HAL_ESP32: eliminate legacy UART ordering/references 2023-12-19 06:53:15 +11:00
Thomas Watson 20ee5b2d37 AP_HAL_Empty: eliminate legacy UART ordering/references
Fourth serial port (SERIAL2) added purely for consistency.
2023-12-19 06:53:15 +11:00
Thomas Watson 2aa4ee8ba7 AP_HAL_ChibiOS: remove references to legacy UART order from hwdefs 2023-12-19 06:53:15 +11:00
Thomas Watson dc4438d0e3 AP_HAL_ChibiOS: eliminate legacy UART ordering/references
SERIAL_ORDER has been around for a few years now and UART_ORDER is
rejected by the hwdef script, so support for UART_ORDER and associated
processing in the hwdef script is removed, along with the order
conversion script.
2023-12-19 06:53:15 +11:00
Thomas Watson c56599e210 AP_HAL_SITL: pass UARTs to AP_HAL in SERIALn order 2023-12-19 06:53:15 +11:00
Thomas Watson 764b469e47 AP_HAL_Linux: pass UARTs to AP_HAL in SERIALn order 2023-12-19 06:53:15 +11:00
Thomas Watson 574c8016c3 AP_HAL_ESP32: pass UARTs to AP_HAL in SERIALn order 2023-12-19 06:53:15 +11:00
Thomas Watson 90c14141a0 AP_HAL_Empty: pass UARTs to AP_HAL in SERIALn order 2023-12-19 06:53:15 +11:00
Thomas Watson 507ab623b2 AP_HAL_ChibiOS: pass UARTs to AP_HAL in SERIALn order 2023-12-19 06:53:15 +11:00
Thomas Watson bcfad0d712 AP_HAL: remove references to legacy UART order 2023-12-19 06:53:15 +11:00
Thomas Watson ebbcf42236 AP_HAL: constructor now accepts UARTs in SERIALn order 2023-12-19 06:53:15 +11:00
Thomas Watson 6a6c3ce7a1 AP_HAL: inline serial accessor function
Saves a bit more flash.
2023-12-19 06:53:15 +11:00
Thomas Watson 8747ae539f AP_HAL: move serial re-mapping to driver array initialization
Saves a bit of flash and execution time.
2023-12-19 06:53:15 +11:00
Thomas Watson de45437704 AP_HAL: use array of UART drivers instead of consecutive variables
Avoids UB-inducing assumption that UART drivers are consecutive in the
serial() function.
2023-12-19 06:53:15 +11:00
Andy Piper d90224280e IO_Firmware: iofirmware for bdshot on f103. 2023-12-18 19:02:52 +11:00
Andy Piper ea76c0bd01 AP_HAL_ChibiOS: ensure dshot commands are send to all FMU channels when IOMCU is present 2023-12-18 19:02:52 +11:00
Andy Piper 1fb6205439 AP_IOMCU: always run iofirmware loop at 1Khz to avoid uart races
don't look for multiple pages on single-page packets
2023-12-18 19:02:52 +11:00
Andy Piper 5d9f9db2fe AP_IOMCU: treat register_write() as a successful interaction 2023-12-18 19:02:52 +11:00
Andy Piper d2a48148dd AP_HAL_ChibiOS: allow bdshot iomcu on non-bdshot fmu 2023-12-18 19:02:52 +11:00
Andy Piper 92ef809e3b AP_IOMCU: allow bdshot iomcu on non-bdshot fmu 2023-12-18 19:02:52 +11:00
Andy Piper 6dec0c2da5 AP_BLHeli: allow bdshot iomcu on non-bdshot fmu 2023-12-18 19:02:52 +11:00
Andy Piper a8772ef5a2 AP_HAL: allow bdshot iomcu on non-bdshot fmu 2023-12-18 19:02:52 +11:00
Andy Piper 2415c2998b AP_HAL_ChibiOS: allow dshot to be used even if bdshot was specified.
correct zero handling in bdshot decoding
2023-12-18 19:02:52 +11:00
Andy Piper 43b6fc0dba AP_IOMCU: constrain PWM channels to 8, telem channels to 4 and RC channels to 16
make ADC readings interrupt driven
turn off iomcu updates when debugging
allow for correct number of telemetry channels
cycle between vservo and vrssi when reading adc
build adc with O2
2023-12-18 19:02:52 +11:00
Andy Piper 8c03c9e4bf AP_HAL_ChibiOS: cache values of io_dshot() and io_enabled()
enabled shared_up_dma to be fully compiled out
address some minor review comments
2023-12-18 19:02:52 +11:00
Andy Piper 153c5181cb AP_IOMCU: reset erpm to zero on timeout
remove unneeded packed attribute
reset the PWM status after channels have been enabled or disabled
2023-12-18 19:02:52 +11:00
Andy Piper a5b6c3b5ef AP_HAL_ChibiOS: utility to print out bdshot encoded data 2023-12-18 19:02:52 +11:00
Andy Piper 9f30d01561 AP_HAL_ChibiOS: bdshot for f103 iofirmware
add support to tell if shared DMA channel is actually shared
avoid starting and stopping the timer peripheral with bdshot
ensure that rcout DMA allocation and deallocation happens entirely within the lock
increase rcout thread working area for bdshot
fix mode mask that is sent to the iomcu
ensure iomcu rcout thread gets timeouts for callbacks
control bdshot input and output line levels on f103
use input capture channel pairs to read rising and falling edges of telemetry on f103
reset channel pairs together on iomcu
generalize the bdshot input path to support suitable buffer sizes for iomcu
generalize DMAR reading of CCR registers to read two at a time on iomcu
enable bi-directional dshot channels on PWM1-4 on iomcu
add methods to directly access erpm values from rcout
update erpm mask and esc telemetry correctly for firmware supporting dshot
add support for propagating bdmask to iomcu
dshot commands to all channels need to be aware of iomcu
ensure esc type is propagated to iomcu
cope with iomcu channel numbering when using EDT
ensure pwm driver is reset properly for dshot commands on iomcu
correctly reset pwm for dshot commands
correctly mask off bdshot bits going to iomcu
don't reset GPIO modes on disabled lines
don't reset pwm_started when sharing DMA channels
set thread name on iomcu rcout and reduce stack size on iomcu
ensure that bdshot pulses with no response are handled correctly
correctly setup DMA for input capture on f103
deal with out of order captured bytes when decoding bdshot telemetry
ensure DMA sharing on f103 does not pull lines low
only disable the timer peripheral when switching DMA channels on iomcu
add support for waiting for _UP to finish before proceeding with dshot
re-order iomcu dshot channels to let TIM4_UP go first
ensure that a cascading event will always come when expected on rcout
allow timeouts when using cascading dshot
always rotate telemetry channel after trying to capture input
cater for both in order and out-of-order bdshot telemetry packets
cope with reversed packets when decoding bdshot telemetry
ensure UP DMA channel is fully free on iomcu before starting next dshot cycle
refactor rcout for iofirmware into separate file
2023-12-18 19:02:52 +11:00
Andy Piper e024f9fc8c AP_Notify: ensure dshot LEDs work with EDT ESCs 2023-12-18 19:02:52 +11:00
Andy Piper 2a9c2fdf14 AP_HAL: add methods to directly access erpm array from rcout 2023-12-18 19:02:52 +11:00
Andy Piper 9db7120c06 AP_BLHeli: add accessor for motor poles and telemetry rate 2023-12-18 19:02:52 +11:00
Andy Piper 6deff406e0 AP_ESC_Telem: don't set up parameters on iofirmware
add direct accessor for telemetry data to be used by iomcu
don't update telemetry data if no data
2023-12-18 19:02:52 +11:00
Andy Piper 98aeade904 AP_IOMCU: bdshot for iomcu
prevent repeated rcout mode sets
add ESC telemetry if compiled in
add infrastructure to support propagating erpm and telemetry from iomcu
add support to propagate bdmask to iomcu
add support for EDT
scale voltage and current correctly when reading EDT data
ensure that telemetry data is reset
reset ESC telemetry data to zero if stale
ESC type and bdmask must be setup before the output mode
2023-12-18 19:02:52 +11:00
Ryan Friedman dee0ca2f34 AP_ExternalARHS: Don't offer IMU by default
* Since MicroStrain won't support >400Hz yet

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
2023-12-18 16:03:35 +11:00
Peter Barker 1e644d56a5 mavlink: move forward to ardupilot/master 2023-12-17 16:01:11 +11:00
Andrew Tridgell 8732f582c3 AP_Scripting: update SkyPower driver to support new model
support SP-275 dual-cylinder ECU
2023-12-17 14:14:20 +11:00
Andrew Tridgell 8976767321 RC_Channel: use EKFType enum class 2023-12-17 09:47:30 +11:00
Andrew Tridgell 6f79c1cee2 AP_AHRS: use EKFType enum class in set_ekf_type() 2023-12-17 09:47:30 +11:00
Andrew Tridgell 757607e4f8 AP_ExternalAHRS: added InertialLabs backend 2023-12-17 09:47:30 +11:00
Andrew Tridgell 59ec0a6b56 Tools: added test for InertialLabs EAHRS 2023-12-17 09:47:30 +11:00
Andrew Tridgell 38960a3db2 HAL_SITL: added InertialLabs simulator 2023-12-17 09:47:30 +11:00
Andrew Tridgell 48ab76d06e AP_HAL: added InertialLabs simulator 2023-12-17 09:47:30 +11:00
Andrew Tridgell a17438d52c SITL: added InertialLabs simulator 2023-12-17 09:47:30 +11:00