Commit Graph

34751 Commits

Author SHA1 Message Date
Randy Mackay 5aeabc5779 AC_Avoidance: path planner accepts next destination 2023-12-28 08:45:23 +09:00
Randy Mackay 82984577d2 AC_Avoidance: path planner avoids timeout when first activated 2023-12-28 08:45:23 +09:00
Randy Mackay 6fed0dbc7a AC_WPNav: OA supports fast waypoints with dijkstras 2023-12-28 08:45:23 +09:00
Randy Mackay 0c8f427d42 AC_WPNav: OA handles failure to set wp on deactivation
This may never happen in practice but just in case
2023-12-28 08:45:23 +09:00
Randy Mackay 8546dfaf4d AC_WPNav: add force_stop_at_next_wp 2023-12-28 08:45:23 +09:00
Randy Mackay bf2b0f890f AC_WPNav: record next destination
This allows AC_WPNav_OA to completely restore the path on deactivation
2023-12-28 08:45:23 +09:00
Randy Mackay d01a330588 AC_Avoidance: constify get_shortest_path_point 2023-12-28 08:45:23 +09:00
Andrew Tridgell 1e626a70cb hwdef: added MatekL431-Serial 2023-12-27 05:13:14 -07:00
Andrew Tridgell 6c2a7b8cfd AP_SerialManager: expose HAVE_SERIAL_xxx in config 2023-12-27 05:13:14 -07:00
Andrew Tridgell 46171a7c79 hwdef: give a more useful error message on no bootloader 2023-12-27 21:45:13 +11:00
Henry Wurzburg ea3dc78a96 AP_Relay:correct function param metadata
Co-authored-by: Peter Hall <33176108+IamPete1@users.noreply.github.com>
2023-12-26 22:28:37 -07:00
Tom Pittenger 47fdf2295c AP_Scripting: add bindings for ahrs.wind_alignment and ahrs.head_wind 2023-12-26 10:20:23 +11:00
Tom Pittenger 39e7209e33 AP_AHRS: move wind helper functions from AP_Landing 2023-12-26 10:20:23 +11:00
Tom Pittenger 7a9c6eea9c AP_Landing: move wind helper functions to AP_AHRS 2023-12-26 10:20:23 +11:00
Tom Pittenger 813c732a83 AP_Baro: slow down Baro offset slew 2023-12-26 10:17:56 +11:00
Andrew Tridgell 74c2855be3 HAL_SITL: implement begin(0) on UARTs
the begin(0) is used to claim a uart for the current thread in
ChibiOS, we need to ignore it on SITL and not change baudrate
2023-12-26 06:21:42 +11:00
Andrew Tridgell 2842166b06 AP_ExternalAHRS: avoid uart owner issue
ensure we own uart before read
2023-12-26 06:21:42 +11:00
Andy Piper 57ac86edd9 AP_IOMCU: fix occasional startup internal errors with mixing
allow DIRECT_PWM pages to be smaller than max channels
correct some over-eager register clearing in the global interrupt handler (NFC)
only sent TX events when using shared DMA (NFC)
zero out rx packet code and size to prevent errors with spurious callbacks
add a comment and check for offsets that are codes
2023-12-24 14:39:05 +11:00
Andrew Tridgell d2d2067f1c HAL_ChibiOS: fixed micros and millis on boards without 1MHz clock 2023-12-24 10:10:14 +11:00
Henry Wurzburg 5c1ed968b1 AP_Motors:expand heli tail param metadata 2023-12-20 17:50:38 -05:00
Andrew Tridgell f3303c9272 HAL_SITL: use uint64_div1000()
match ChibiOS
2023-12-21 09:09:11 +11:00
Andrew Tridgell 4a59097b5e HAL_ChibiOS: use C implemention of div1000 2023-12-21 09:09:11 +11:00
Andrew Tridgell 49c3536ca7 AP_Math: added uint64_div1000()
and test suite
2023-12-21 09:09:11 +11:00
bugobliterator cf481a8952 AP_HAL_ChibiOS: allow option to enable scripting on CubeRedSecondary 2023-12-21 07:30:25 +11:00
Andrew Tridgell 65cae116a2 hwdef: fixed build of CarbonixL496 2023-12-20 20:07:35 +11:00
Andrew Tridgell a94484d770 HAL_ChibiOS: fixed SPI build on F1xx
F1 does not have palReadLineMode()
2023-12-20 19:33:12 +11:00
Iampete1 46dd402a1a AP_Relay: add ICE_STARTER function 2023-12-20 19:29:50 +11:00
Iampete1 86a199c1bf AP_ICEngine: add support for starter relay 2023-12-20 19:29:50 +11:00
Ryan Friedman faa8ac0085 AP_Vehicle: Set position target depends on ext control
* Used to depend on scripting but now it's used in AP_ExternalControl

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
2023-12-20 02:37:01 +00:00
Ryan Friedman 76861eaa9b AP_Common: Define units for locatoin data members
Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
2023-12-20 02:37:01 +00:00
Ryan Friedman c22a3439d4 AP_ExternalControl: add REP-147 Global Position Control
Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
2023-12-20 02:37:01 +00:00
Ryan Friedman da976300d1 AP_DDS: add REP-147 Global Position Control
Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
2023-12-20 02:37:01 +00:00
Andrew Tridgell 6dbc3b6a70 HAL_ChibiOS: speed up millis(), micros64() etc
these use faster primitives and an assembly division by 1000 to get
between 2x and 3x speedup on these critical calls
2023-12-19 11:47:24 +11:00
Iampete1 1bcf69e0c7 AP_Motors: Heli: add helper to convert from AP_Motors::SpoolState to AP_MotorsHeli_RSC::RotorControlState 2023-12-19 10:38:49 +11:00
Iampete1 287e9726d7 AP_Motors: Heli: RotorControlState to enum class 2023-12-19 10:38:49 +11:00
Iampete1 a77faaf125 AP_Relay: move from using AP_RELAY_NUM_RELAYS to ARRAY_SIZE(_params) 2023-12-19 10:01:01 +11:00
Iampete1 c917480cde AP_Relay: capitalize function enum 2023-12-19 10:01:01 +11:00
Iampete1 f907694c6e AP_Relay: add rover motor reverse functions 2023-12-19 10:01:01 +11:00
Iampete1 a0eb3396f8 AR_Motors: Move to new relay functions 2023-12-19 10:01:01 +11:00
Iampete1 abcbc66c5c AP_Relay: param conversion from ICE, chute and camera 2023-12-19 10:01:01 +11:00
Iampete1 5a5ee0c44c AP_Parachute: move to new relay functions 2023-12-19 10:01:01 +11:00
Iampete1 8ab6f01942 AP_Relay: add enabled method by function 2023-12-19 10:01:01 +11:00
Iampete1 8ce490d985 AP_ICEngine: move to new relay functions 2023-12-19 10:01:01 +11:00
Iampete1 8292c6ea9f AP_Camera: move to new relay functions 2023-12-19 10:01:01 +11:00
Iampete1 f26ff3ee5a AP_LandingGear: remove unneeded relay include 2023-12-19 10:01:01 +11:00
Michael du Breuil 368ec28ab6 AP_Relay: Refactor to support RELAYx_FUNCTION 2023-12-19 10:01:01 +11:00
Ryan Friedman 1d805555f5 AP_ExternalAHRS: Fix typos in configuration for microstrain7
Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
2023-12-19 09:32:55 +11:00
Thomas Watson e460a19b17 AP_HAL_Linux: deprecate and warn on legacy --uartX option use 2023-12-19 06:53:15 +11:00
Thomas Watson 14180b5b93 AP_HAL_SITL: deprecate and warn on legacy --uartX option use 2023-12-19 06:53:15 +11:00
Thomas Watson cc5b095d59 AP_SerialManager: clarify comment regarding legacy UART order 2023-12-19 06:53:15 +11:00
Thomas Watson ae7170501d AP_FETtecOneWire: remove references to legacy UART order 2023-12-19 06:53:15 +11:00
Thomas Watson f0a92889fa AP_DDS: remove references to legacy UART order 2023-12-19 06:53:15 +11:00
Thomas Watson 8ee9dd13be AP_Scripting: remove references to legacy UART order 2023-12-19 06:53:15 +11:00
Thomas Watson 94888822be GCS_MAVLink: correct comment about stream array 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 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
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 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
Andrew Tridgell 54ffdc57f2 AP_Airspeed: support external AHRS airspeed sensor 2023-12-17 09:47:30 +11:00
Andrew Tridgell 7102205be3 AP_Math: added crc_sum_of_bytes_16() 2023-12-17 09:47:30 +11:00
patrick.wiltshire956@gmail.com bdab1054d6 AP_AHRS: added set_ekf_type() and DCM logging 2023-12-17 09:47:30 +11:00