Commit Graph

52660 Commits

Author SHA1 Message Date
Peter Barker d2c3c578c2 hwdef: add hwdef for CubeOrange-SimOnHardware 2022-04-05 18:10:14 +10:00
Peter Barker 582eed12bf autotest: correct extraction of fields from LogWrite messages 2022-04-05 17:57:40 +10:00
Peter Barker 934a125875 Tools: add script which tells you how Copter.ap changes over time
This is a global state object which we really want to get rid of - but
while we have it it does contain some useful state.

pbarker@bluebottle:~/rc/ardupilot(pr/du32-change)$ ./Tools/scripts/du32_change.py ~/rc/log32.bin
1648874490: Creating connection
Original armed_with_airmode_switch: 0
Original auto_armed: 0
Original compass_mot: 0
Original gps_glitching: 0
Original in_arming_delay: 1
Original initialised: 1
Original initialised_params: 1
Original land_complete: 1
Original land_complete_maybe: 1
Original land_repo_active: 0
Original logging_started: 1
Original motor_interlock_switch: 0
Original motor_test: 0
Original new_radio_frame: 1
Original pre_arm_check: 1
Original pre_arm_rc_check: 1
Original prec_land_active: 0
Original rc_receiver_present: 1
Original system_time_set_unused: 0
Original throttle_zero: 1
Original unused1: 0
Original unused2: 0
Original unused3: 0
Original unused_was_simple_mode bit1: 0
Original unused_was_simple_mode bit2: 0
Original usb_connected_unused: 0
Original using_interlock: 0
2022-04-01 08:19:27.03:  -in_arming_delay
2022-04-01 08:19:31.04:  +auto_armed -throttle_zero
2022-04-01 08:19:38.04:  -land_complete -land_complete_maybe
2022-04-01 08:20:34.29:  +throttle_zero
2022-04-01 08:20:35.29:  -auto_armed +land_complete +land_complete_maybe
pbarker@bluebottle:~/rc/ardupilot(pr/du32-change)$
2022-04-05 17:56:37 +10:00
Andrew Tridgell 392e80001f HAL_ChibiOS: fixed H7 flash storage
this fixes the flash re-init problem when flash storage fills on
H7. It was caused by rejecting writes where one or more of the 32 byte
chunks was not all 0xff but was equal to the current data. That
happens when writing to the sector header in AP_FlashStorage

it also moves the interrupt disable inside the loop to allow for
other interrupts to run between blocks
2022-04-05 17:46:52 +10:00
Andrew Tridgell 093acc1577 HAL_ChibiOS: use 16 byte lines for flash storage on H7
this halves the number of flash writes needed, and makes flash storage
twice as space efficient on H7

On H7 we need to write 32 bytes at a time to flash, which corresponds
to 30 bytes of data in AP_FlashStorage. By using a 16 byte storage
line we don't waste as much space
2022-04-05 17:46:52 +10:00
Andrew Tridgell 055ee6ba82 HAL_ChibiOS: increase monitor thread stack by 512
this is needed to ensure that the log writes of MON and WDOG don't
overflow monitor thread stack
2022-04-05 17:46:52 +10:00
Andrew Tridgell 1b6620b42f HAL_ChibiOS: added expected delays on flash writes
this prevents a long loop internal error on disarm after a large
amount of flash writes when armed on a board with flash storage
2022-04-05 17:46:52 +10:00
Andrew Tridgell a0c867bce7 HAL_ChibiOS: disable interrupts during flash operations
we have now shown that interrupts being enabled during flash
operations can cause the infamous "68ms" bug, or watchdog when using a
32 bit timer on boards using flash for storage

The issue is quite repeatable with a load of a very large waypoint
file (over 500 waypoints) using "wp ftpload" in MAVProxy. This puts a
huge load on flash storage.

Our current working theory is that while doing flash writes for
storage on dual-bank we block access to only one bank, so if another
thread uses a timeout function with a short timeout while the flash
write is happening and chVTDoTickI calls code which crosses the flash
bank boundary then it can cause chVTDoTickI to violate the assumption
that no more than CH_CFG_ST_DELTA ticks pass while it is calculating
the value to set in the system timer. In that case we get a delay of a
full timer wrap, which is 68ms on boards with 16 bit timer and 70
minutes on boards with 32 bit timer
2022-04-05 17:46:52 +10:00
Andrew Tridgell f6f6521b28 Revert "hwdef: changed MatekH743 to a 32 bit timer"
This reverts commit 7dc5911572.
2022-04-05 17:46:52 +10:00
Andrew Tridgell 5ef9c5aaa5 HAL_ChibiOS: constrain more timer timeouts 2022-04-05 17:46:52 +10:00
Andrew Tridgell 4c977eb7a0 HAL_ChibiOS: prevent long timeouts in DShot
this prevents bad calculated timeouts in DShot. The timeout would
sometimes come out as 0xFFFFFFFF, which led to an assert and could
block the thread

This fix is meant to be minimilistic to allow it to be merged easily
into 4.2. A better fix would fix all the uint32_t wrap handling in
DShot
2022-04-05 17:46:52 +10:00
Andrew Tridgell a95b429acc AP_Math: added unsigned versions of constrain functions
sometimes it really does matter that we use constrain_uint32() instead
of constrain_int32(). For example, if we have a value like 0xFFFFFFFF
then the result will be very different

we should use unsigned constrain when dealing with unsigned values
2022-04-05 17:46:52 +10:00
Henry Wurzburg 82235163a2 AP_Scripting: remove original aerobatics example to avoid confusion 2022-04-05 10:12:13 +10:00
Henry Wurzburg fa81f7813c AP_Airspeed: correct metadata for params for non-Plane vehicles 2022-04-05 09:58:10 +10:00
Lokesh Ramina 11b3eccf66 AP_Periph: Hwdef CarbonixL496 update
Modification of CarbonixL496 to add more features.
Features:
To use internal clock of MCU, Oscillator value is set to 0.
LED pin changed from PA13 to PA15
Enabled  JTAG
Add interface to GPS and ADSB.
2022-04-05 09:57:02 +10:00
Nicholas Kruzan d42a287db0 AP_HAL_ESP32: partitions.csv - increase app partition to 3M 2022-04-05 08:41:11 +10:00
Nicholas Kruzan c3e071579d AP_Filesystem: AP_Filesystem_ESP32 allow_absolute_paths in ::open() 2022-04-05 08:40:26 +10:00
Andrew Tridgell 1c5a954b24 HAL_ChibiOS: incorrect class of class in uart TX timeout
need to call chEvtGetAndClearEventsI() as we are in a system lock
state
2022-04-04 16:59:38 +10:00
Peter Barker fd666dc4f1 AP_AHRS: subtract accel bias from correct ins accel instance
In the case that you have INS_USE indicating IMUs should be used, but
EK3_IMU_MASK leaving some IMUs unused, we subtract the bias from the
wrong INS data
2022-04-03 11:41:09 +10:00
Peter Barker 2fb1bde457 autotest: add test for earth-frame-accel 2022-04-03 11:41:09 +10:00
Peter Barker 62fe90caa1 autotest: add more convenience methods for checking received data 2022-04-03 09:35:09 +10:00
Andrew Tridgell 8e37c93e7d Plane: fixed rudder control when ARMING_RUDDER != 2
when rudder disarm is disabled we should allow full yaw control
regardless of throttle level. We should also only disable left yaw
when throttle is at zero, as right yaw does not indicate pilot may be
trying to disarm
2022-04-03 09:12:03 +10:00
Henry Wurzburg 3cc75ecd38 Tools: add blimp as vehicle option in sim_vehicle 2022-04-02 14:58:53 +11:00
Henry Wurzburg 875f3f7d97 Blimp: add temporary GCS FS behavior of disarming Blimp 2022-04-02 14:57:17 +11:00
Andrew Tridgell a01ca35939 AP_Logger: increase stack of log_io thread by 256
This was seem on omnibusf4pro, it is a bit too close:

  log_io PRI= 59 sp=0x20015CC0 STACK=144/1656
2022-04-01 19:56:30 +11:00
Peter Barker 2c42c056d8 Plane: correct EnableLandResponsition->EnableLandReposition 2022-03-31 20:30:55 +11:00
Mirko Denecke c1e0e9c305 AP_HAL_ChibiOS: fix ms5611 probe for NucleoH743 2022-03-31 16:31:13 +11:00
Randy Mackay beb13d91fb Rover: 4.2.0-beta3 release notes 2022-03-30 19:55:54 +09:00
Randy Mackay 2f03e2a75f Copter: 4.2.0-beta3 release notes 2022-03-30 19:55:45 +09:00
Randy Mackay 0dd9a8028b AR_WPNav: integrate scurve snap 2022-03-30 15:34:14 +09:00
Randy Mackay c233f114bd AR_PosControl: fixup logging to record desired and target velocity and acceleration 2022-03-30 15:34:14 +09:00
Randy Mackay 74df1c0b22 AR_PosControl: reduce default I term to zero 2022-03-30 15:34:14 +09:00
Randy Mackay b6af126514 Tools: relax rover sprayer test
vehicle's speed is slightly lower when using SCurve navigation
2022-03-30 15:34:14 +09:00
Randy Mackay ea5e3a8ae0 Tools: rover autotests send position-target-global-int more slowly
SCurves do not work with very fast changes of target
2022-03-30 15:34:14 +09:00
Randy Mackay 8ff6972b7e Tools: rover autotest DriveRTL timeout increased by 10sec 2022-03-30 15:34:14 +09:00
Randy Mackay 995ff30cd6 AC_Avoid: enable slide behaviour for rover 2022-03-30 15:34:14 +09:00
Randy Mackay f7a33a8900 Rover: navigate-to-waypoint leaves simple avoidance to position controller
also navigate-to-waypoint may trigger tacking
2022-03-30 15:34:14 +09:00
Randy Mackay aea6b48d70 Rover: navigate_to_waypoint supports integrates wpnav set_nuidge_speed_max 2022-03-30 15:34:14 +09:00
Randy Mackay 5341070af4 Rover: integrate rename of AR_WPNav::set_speed_max
range checks are no longer required because they are implemented within AR_WPNav
2022-03-30 15:34:14 +09:00
Randy Mackay a5638f5699 Rover: auto, guided, rtl call wpnav.init instead of set-desired-speed
also smart-rtl
2022-03-30 15:34:14 +09:00
Randy Mackay 5d96804ef3 AR_WPNav: add protection against zero accel max 2022-03-30 15:34:14 +09:00
Randy Mackay a1b9fe5097 AR_WPNav: jerk time reduced to 0.1 sec 2022-03-30 15:34:14 +09:00
Randy Mackay c6dffb990f AR_WPNav: add set_nudge_speed_max
allows pilot to override speed_max from RC input
2022-03-30 15:34:14 +09:00
Randy Mackay 394a5fd2fc AR_WPNav: get/set_desired_speed renamed to get/set_speed_max
set_speed_max updates position controller limits and triggers recalculation of scurves
local _desired_speed member is no longer required because max speed is held in position controller
2022-03-30 15:34:14 +09:00
Randy Mackay 1996085282 AR_WPNav: init accepts speed max
also remove unused set_desired_speed_to_default
also init previous leg in set_desired_location
init accepts speed but inforces minimum
2022-03-30 15:34:14 +09:00
Randy Mackay a91025fa16 AR_WPNav: remove unused speed_min 2022-03-30 15:34:14 +09:00
Randy Mackay 537874c075 AR_WPNav: jerk_max maintained in position controller 2022-03-30 15:34:14 +09:00
Randy Mackay 54eee7d311 AR_WPNav: simplify init 2022-03-30 15:34:14 +09:00
Randy Mackay d03e801b65 AR_WPNav: remove get_accel_max, get_jerk_max 2022-03-30 15:34:14 +09:00
Randy Mackay ee317299fc Rover: sailboats enable wpnav's overspeed support 2022-03-30 15:34:14 +09:00