Commit Graph

29209 Commits

Author SHA1 Message Date
Peter Barker
d2c3c578c2 hwdef: add hwdef for CubeOrange-SimOnHardware 2022-04-05 18:10:14 +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
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
Mirko Denecke
c1e0e9c305 AP_HAL_ChibiOS: fix ms5611 probe for NucleoH743 2022-03-31 16:31:13 +11: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
995ff30cd6 AC_Avoid: enable slide behaviour for rover 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
653afbeb15 AR_WPNav: enable_overspeed added to improve sailboat support 2022-03-30 15:34:14 +09:00
Randy Mackay
2f6e098f23 AR_WPNav: always use local calculation of cross track
also calc_crosstrack_error may return negative values
2022-03-30 15:34:14 +09:00
Randy Mackay
729dfee01c AR_WPNav: pivot turns stop before turning 2022-03-30 15:34:14 +09:00
Randy Mackay
e0a628bb8c AR_WPNav: add is_fast_waypoint accessor 2022-03-30 15:34:14 +09:00
Randy Mackay
0bcae12ceb AR_WPNav_OA: use wpnav's expect fast updates 2022-03-30 15:34:14 +09:00
Randy Mackay
f769a18996 AR_WPNav: add set_desired_location_expect_fast_update 2022-03-30 15:34:14 +09:00
Randy Mackay
1fd9da710d AR_WPNav: add internal error if invalid destination received 2022-03-30 15:34:14 +09:00
Randy Mackay
461c5196e7 AR_WPNav: add ACCEL and JERK params and accessors
allows users to specify a different acceleration and jerk for Auto, Guided, RTL, etc compared with manual modes (Acro, etc)
2022-03-30 15:34:14 +09:00
Randy Mackay
47ab961f42 AR_WPNav: fix application of turn-max-g 2022-03-30 15:34:14 +09:00
Randy Mackay
b1237ffe80 AR_WPNav: always pivot at corners of at least WP_PIVOT_ANGLE 2022-03-30 15:34:14 +09:00
Randy Mackay
3d048ddcc2 AR_WPNav: fix pivot activation when reversing 2022-03-30 15:34:14 +09:00
Randy Mackay
6515e71fc1 AR_WPNav: move OA path planning handling into a separate class 2022-03-30 15:34:14 +09:00
Randy Mackay
2a1013e896 AR_WPNav: set desired lat accel and crosstrack to zero when disarmed 2022-03-30 15:34:14 +09:00
Randy Mackay
a185e78271 AR_WPNav: integrate AR_PivotTurn class
moves pivot turn feature to separate class
also does not advance along scurve path while pivotin
2022-03-30 15:34:14 +09:00
Randy Mackay
7225d74777 AR_PivotTurn: pivot turn controller
also reduces default pivot speed to 60deg/sec (was 90deg/sec)
add would_active and allow activation to be forced
2022-03-30 15:34:14 +09:00
Randy Mackay
9d629f5ecd AR_WPNav: use position controller and s-curves 2022-03-30 15:34:14 +09:00
Randy Mackay
abc7bd446a AR_PosControl: rover position controller 2022-03-30 15:34:14 +09:00
Randy Mackay
8fcefb59b1 AP_Math: add Vector2f::dot 2022-03-30 15:34:14 +09:00