Commit Graph

1136 Commits

Author SHA1 Message Date
Andrew Tridgell 113b4cec38 AP_HAL: more changes for 32 bit servo mask 2022-05-22 12:07:37 +10:00
Iampete1 cabdd82e71 AP_HAL: enable 32 servo outs 2022-05-22 12:07:37 +10:00
Andrew Tridgell 962d92acf5 AP_HAL: use array for airspeed pin value 2022-05-17 19:34:32 +10:00
Andrew Tridgell 7dc5da1247 HAL_SITL: cleanup SITL airspeed handling
fixed handling of EAS2TAS, and fixed ratio per sensor.

Removed the wind delay code (which was never being used). We should
add a generic delay filter if we need this again
2022-05-17 19:34:32 +10:00
murata 15a39c1649 AL_HAL: Console output can be disabled 2022-05-17 09:53:06 +10:00
Peter Barker f934854a0c AP_HAL: allow backends to be compiled out 2022-05-10 09:02:51 +10:00
Andy Piper f57ac4787d AP_HAL: add Jain's estimator
notch tuning using FFT averaging
allocate scratch space for peak finding
return all detected peaks to caller
2022-05-04 17:05:51 +10:00
Mirko Denecke 853fd7f8c1 AP_HAL: fix auxiliary typo 2022-05-02 10:55:08 +10:00
Randy Mackay 1ee01577f6 AP_HAL: add GPIO::pin_to_servo_channel method 2022-04-26 15:19:28 +09:00
Andy Piper 8ccc84beab AP_HAL: add accessor for disabled channels to RCOutput 2022-04-25 15:55:54 +09:00
Andy Piper 6355934a36 AP_HAL: add bitwidth hal definitions.
revert to original bitwidths for neopixel and profiled
add proper neopixel test that observes spec'ed timings
2022-04-20 17:39:29 +10:00
Peter Barker a9b90a3b5a AP_HAL: stop libraries including AP_Logger.h in .h files
AP_Logger.h is a nexus of includes; while this is being improved over
time, there's no reason for the library headers to include AP_Logger.h
as the logger itself is access by singleton and the structures are in
LogStructure.h

This necessitated moving The PID_Info structure out of AP_Logger's
namespace.  This cleans up a pretty nasty bit - that structure is
definitely not simply used for logging, but also used to pass pid
information around to controllers!

There are a lot of patches in here because AP_Logger.h, acting as a
nexus, was providing transitive header file inclusion in many (some
unlikely!) places.
2022-04-08 19:18:38 +10:00
Andy Piper fff82bed75 AP_HAL: update prescaler tests 2022-03-30 17:11:09 +11:00
bugobliterator 7d2ded8de1 AP_HAL: add support for CANFD in SITL 2022-03-27 06:07:34 -07:00
Peter Barker fa2e841387 AP_HAL: honour HAL_SIM_GPS_ENABLED 2022-03-17 14:39:55 +11:00
Peter Barker a402dce95b AP_HAL: permit double-maths whe simulating 2022-03-17 14:39:55 +11:00
Peter Barker 650ef59be8 AP_HAL: create HAL::SIMState object to hold simulation state 2022-03-17 14:39:55 +11:00
bugobliterator 47dd964e63 AP_HAL_ChibiOS: add init method to take in separate canfd bitrate 2022-03-11 18:13:54 +11:00
bugobliterator 1f43c79bfd AP_HAL: add support for taking in canfd bitrate in caniface 2022-03-11 18:13:54 +11:00
Siddharth Purohit 5bc65bb54e AP_HAL: set CANFrame max data length based on CANFD availability 2022-03-11 18:13:54 +11:00
Siddharth Purohit e9f426f8fd AP_HAL: update CANFrame to include CANFD details 2022-03-11 18:13:54 +11:00
Siddharth Purohit 153834465b AP_HAL: add HAL_CANFD_SUPPORTED define 2022-03-11 18:13:54 +11:00
Andy Piper bb3bedb90d AP_HAL: always choose high for dshot prescaler calculation 2022-03-09 18:23:41 +11:00
Andy Piper 5a7f5844d4 AP_HAL: nuke clang warnings 2022-03-03 16:34:14 +11:00
Andrew Tridgell 56d74a352c AP_HAL: fixed vprintf for no hal.h 2022-02-22 12:13:19 +11:00
Andrew Tridgell b248fdfcbb AP_HAL: avoid including hal.h in generic code 2022-02-22 12:13:19 +11:00
Andrew Tridgell 4811544003 AP_HAL: fixed a race conditon for CAN frame callback
callback can change from another thread
2022-02-20 06:28:47 +11:00
Andrew Tridgell d9f79f42c8 AP_HAL: moved CAN_FRAME timeout handling to AP_CANManager 2022-02-19 18:24:56 +11:00
Andrew Tridgell 88e7efcf9c AP_HAL: make CANFrame data available as uint32_t
this makes the critical sections in CANFrame handling on STM32 faster
2022-02-19 18:24:56 +11:00
Andy Piper ea1af70f2b AP_HAL: add support for @SYS/timers.txt
move prescaler calculation here and add unit test
add ability to find closest matching frequency in prescaler calculation
account for bit widths in prescaler tests
2022-02-16 15:28:04 +11:00
Andrew Tridgell eb549f3e00 AP_HAL: review comments 2022-02-12 16:36:05 +11:00
Andrew Tridgell dbe17d072f AP_HAL: support mavcan message forwarding 2022-02-12 16:36:05 +11:00
Andy Piper a7ac4809b1 AP_HAL: disabled ADC3 on H750
define __FASTRAMFUNC__
2022-02-09 12:47:55 +00:00
murata 7eb231281b AP_HAL: Remove meaningless semicolons 2022-02-07 08:27:34 +09:00
Peter Barker f5526d095b AP_HAL: remove HAL_COMPASS_DEFAULT define
this doesn't actually allow you to specify a default, despite the name
and a couple of hwdefs trying to use it that way.

This would have stopped being useful when we did the
compass-prority-table stuff - or before.
2022-02-01 12:10:38 +11:00
Peter Barker 3a1340236a AP_HAL: add HAL_UART_STATS_ENABLED to disable stats gathering 2022-01-12 18:30:49 +11:00
Andrew Tridgell 3b70b3e7a7 AP_HAL: check for existing HAL_STORAGE_SIZE 2022-01-11 11:33:30 +11:00
Willian Galvani dc856f10eb AP_HAL_Linux: set internal/external i2c bus masks for Navigator
This fixes an issue where the internal Compass was being re-detected
as an external one, then as an internal but with wrong orientation
2022-01-06 14:45:42 -05:00
Willian Galvani 725765c1cb AP_HAL: fix navigator ak09915 orientation 2022-01-03 15:05:47 -03:00
Willian Galvani d3e3922776 AP_HAL: Add HAL_PROBE_EXTERNAL_I2C_COMPASSES to Navigator 2022-01-03 15:05:47 -03:00
Andy Piper d4024d9216 AP_HAL: allow configuration of maximum number of notches based on MCU type
increase notch filters in SITL
remove redundant harmonics from DSP
2021-12-22 18:13:38 +11:00
Stephen Dade 68ca18329c AP_HAL: Add UART option to not override streamrates 2021-12-15 14:14:07 +11:00
Peter Barker f50d48f005 AP_HAL: tidy set/get of hw RTC 2021-12-06 12:58:43 +11:00
bugobliterator 0c69ebc50e AP_HAL: update last_crash_dump api 2021-12-01 18:17:50 +11:00
Andrew Tridgell 8c2074907b AP_HAL: support up to 9 UARTs 2021-11-22 22:48:59 +11:00
Patrick José Pereira 176c70b5ff AP_HAL: Update Navigator board to R4
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2021-11-10 18:11:34 -03:00
bugobliterator 6d4ac999d0 AP_HAL: add get_storage_ptr method 2021-11-10 17:21:35 +11:00
Andrew Tridgell 51da1c3eff AP_HAL: added disable_rxtx() to UARTs 2021-11-07 07:00:35 +11:00
Andrew Tridgell 34ba3e4782 AP_HAL: make set_soft_armed() virtual 2021-11-05 14:30:43 +11:00
Buzz ecfdd80bc7 AP_HAL: new HAL layer for esp32
see libraries/AP_HAL_ESP32/README.md for more.

Author: Charles Villard <charlesvillard10@gmail.com>
Author: Buzz <davidbuzz@gmail.com>
2021-11-01 17:40:31 +11:00
bugobliterator f9f47cbeeb AP_HAL: add method to fetch last crash dump 2021-10-30 19:24:57 +11:00
Davis Schenkenberger 795e7e53bf AP_HAL: add helpers le64toh_ptr, be64toh_ptr, put_le64_ptr, put_be64_ptr 2021-10-17 08:55:03 +11:00
Andrew Tridgell 8157c24977 AP_HAL: added stack logging 2021-10-12 16:04:06 +11:00
Andrew Tridgell 029743e27a AP_HAL: added support for saving and restoring GPIO settings
this allows for using any pin (eg. UART TX, RX, RTS, CTS) as a GPIO,
and restoring the old mode. Initial use is for spektrum bind on RX pin
2021-10-12 15:47:51 +11:00
Willian Galvani 34b42d8252 AP_HAL: Navigator: set HAL_BARO_EXTERNAL_BUS_DEFAULT to 6
This is the bus exposed in the board for external sensors.
This is required as HAL_Linux doesn't probe all i2c buses.
2021-10-11 17:57:52 -03:00
bugobliterator e4f4b3ce1f AP_HAL: add true random number generator 2021-10-07 19:43:11 +11:00
Iampete1 3b8b90d170 AP_HAL: move is_dshot_protocol to AP_HAL 2021-10-06 18:59:57 +11:00
Iampete1 9b02baa5f0 AP_HAL: add note to output_mode enum about params using it 2021-10-06 18:59:57 +11:00
Iampete1 bb04406496 AP_HAL: AnalogSource: set_pin returns bool 2021-10-06 18:42:51 +11:00
Peter Barker 102b1c6879 AP_HAL: allow for selection of Storage backend type at runtime 2021-10-05 10:16:54 +11:00
Andrew Tridgell 1283d42fbf AP_HAL: added micros16() method
fast method for both 16 and 32 bit timers
2021-10-02 18:26:39 +10:00
Andrew Tridgell aa05629ef6 AP_HAL: added peekiovec test
fixes #18285
2021-09-30 12:46:07 +10:00
Pierre Kancir c12217eeb5 AP_HAL: use correct #pragma GCC diagnostic pop 2021-09-29 17:27:29 +10:00
Peter Barker 1976b2b859 AP_HAL: move from HAL_NO_GCS to HAL_GCS_ENABLED 2021-09-22 21:37:00 +10:00
Iampete1 ed80d91d55 AP_HAL: remove set_safety_pwm 2021-09-14 09:23:02 +10:00
Willian Galvani fe72640955 AP_HAL: remove BATT_ settings, they belong in AP_BattMonitor_Analog.h 2021-09-14 09:21:42 +10:00
Mohammad Hefny 5eb28be8e6 AP_HAL_Linux: define board features on Linux module 2021-09-10 08:17:37 +10:00
Mohammad Hefny 2cb13dcc7d AP_HAL: define board features 2021-09-10 08:17:37 +10:00
Pierre Kancir 2b44f86f9c AP_HAL: fix ringbuffer test on clang.
../../libraries/AP_HAL/utility/tests/test_ringbuffer.cpp:46:17: fatal error: variable-sized object may not be initialized
    uint8_t buf[strlen(str)+5] {};
2021-09-04 15:46:47 +10:00
Andrew Tridgell c91410f4b7 AP_HAL: added MCU status support 2021-08-25 07:11:31 +10:00
Andy Piper 09e0135ecb AP_HAL: add accessor for reversed mask
allow mask updates to be disabled
document mask types
define DSHOT_ZERO_THROTTLE
2021-08-12 19:00:51 +09:00
Andrew Tridgell 067a6547bc AP_HAL: fixed printf format errors 2021-08-05 09:43:35 +10:00
Peter Barker 2cdc4f5698 AP_HAL: add basic tests for ringbuffer 2021-07-26 15:10:01 +10:00
Andrew Tridgell 90aed6f338 AP_HAL: fixed get_size() on ObjectBuffer to be consistent with set_size() 2021-07-26 15:10:01 +10:00
Andrew Tridgell 4dcff3d900 AP_HAL: added valid_pin() GPIO API 2021-07-22 07:48:12 +10:00
bugobliterator 4b8b0f834d AP_HAL: add support for usb passthrough with baud changes 2021-07-21 17:06:41 +10:00
Michael Oborne d622aad592 AP_HAL_ChibiOS: add get_usb_baud - support for usb baudrate 2021-07-21 17:06:41 +10:00
Hwurzburg d806d8a26d AP_HAL: add Link Quality reporting to RC protocols 2021-07-16 13:27:38 +10:00
Andrew Tridgell 269c4084d2 AP_HAL: added serial option for disabling FIFO on uarts 2021-07-15 11:31:55 +10:00
Siddharth Purohit 0138266fee AP_HAL: disable cast align check while casting char* read pointer to object 2021-07-15 07:50:12 +10:00
Andrew Tridgell f60330c4ef AP_HAL: allow for double EKF build 2021-07-10 07:20:41 +10:00
Andrew Tridgell 162cecadec AP_HAL: added set_CTS_pin and set_RTS_pin 2021-07-09 13:27:57 +10:00
Peter Barker 2f7603e08e AP_HAL: generate a core file for a given PID
Similarly to dumpstack.sh, uses gdb to dump a core file
2021-07-08 15:46:07 +10:00
Siddharth Purohit 6a0c4ec3f7 AP_HAL: add Random Number Generation test 2021-07-07 18:57:25 +10:00
Siddharth Purohit 2b93b17fae AP_HAL: add support for hw random number generation 2021-07-07 18:57:25 +10:00
Siddharth Purohit 2af3864b61 AP_HAL: add support for entering XIP mode 2021-06-30 19:33:17 +10:00
Siddharth Purohit a323807644 AP_HAL: add support for QSPIDevice 2021-06-30 19:33:17 +10:00
Siddharth Purohit 69009568b2 AP_HAL: add HAL_INS_ENABLED 2021-06-30 17:06:02 +10:00
Siddharth Purohit c7185a1e7f AP_HAL: split into HAL_CANMANAGER_ENABLED and HAL_ENABLE_LIBUAVCAN_DRIVERS 2021-06-24 09:02:42 +10:00
Siddharth Purohit 5acce3055f AP_HAL: Use HAL_ENABLE_CANMANAGER instead of HAL_ENABLE_LIBUAVCAN_DRIVERS 2021-06-24 09:02:42 +10:00
Andy Piper 61f1c3c9ce AP_HAL: add 1Hz update_channel_masks() 2021-06-22 09:55:27 +10:00
Peter Barker dddd0d6a14 AP_HAL: remove HIL support 2021-06-15 09:47:31 +10:00
Tom Pittenger 806b6a63bf AP_HAL: reorganize precompiler for HAL_ENABLE_LIBUAVCAN_DRIVERS and HAL_MAX_PROTOCOL_DRIVERS 2021-06-09 18:36:18 +10:00
Andrew Tridgell 7c5c805381 AP_HAL: removed perf counters 2021-06-07 14:29:27 +10:00
Andrew Tridgell d8a6d9c5c4 AP_HAL: added uart_info() method 2021-06-05 18:52:33 +10:00
Andrew Tridgell 606c248e69 AP_HAL: fixed build on boards with no PWM
this impacts mRoNexus builds
2021-06-02 15:39:30 +10:00
bugobliterator ae80e2dd4d AP_HAL: move ToneAlarm Types to AP_Notify instead 2021-05-31 07:34:02 +10:00
Andy Piper 4f547d2acc AP_HAL: allow motor poles to be recorded
enable ESC telemetry for SITL
2021-05-12 17:01:11 +10:00
Andy Piper 4d4d3683b6 AP_HAL: add accessor for UART dma status 2021-05-05 17:50:42 +10:00
Andy Piper 3428cbf993 AP_HAL: add dshot command codes for beeps, leds and motor control
allow more than one type of ESC for dshot commands
add support for checks around active ESCs
allow dshot alarm to be disabled
allow prioritized dshot commands
2021-05-05 17:41:24 +10:00
Jacob Walser f7da853adb AP_HAL: update hardware definitions for navigator r3 2021-04-07 15:08:18 -04:00
Jacob Walser 421638453f AP_HAL: update Notify LED hardware for navigator r3 2021-04-07 15:08:18 -04:00
Andy Piper f29dba2ddd AP_HAL: add set_dshot_rate() 2021-04-06 10:24:04 +10:00
Andrew Tridgell ebc1f9acf6 AP_HAL: removed assert calls
these waste flash space and do not do us any good
2021-03-25 14:03:40 +11:00
Andrew Tridgell 7010eae9e8 AP_HAL: remember details of register check fails
this allows for logging of register resets
2021-02-24 18:18:37 +11:00
Andy Piper a07b238c7d AP_HAL: add PRIORITY_RCOUT
don't allow UART copies
add @SYS/uarts.txt
2021-02-20 14:37:11 +11:00
Patrick José Pereira 12cd138030 AP_HAL: Remove pointer check before delete
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2021-02-04 09:01:19 +11:00
Andy Piper 0eff201016 AP_HAL: add mem_info()
Co-authored-by: Andrew Tridgell <andrew@tridgell.net>
2021-02-03 23:35:44 +11:00
Patrick José Pereira 6899c0b5af AP_HAL: Add missing const in member functions
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2021-02-03 18:45:14 +11:00
Arsh 18f56fbac5 AP_HAL:examples:Printf: Improvements in the Printf example 2021-02-03 13:02:49 +11:00
Andrew Tridgell 6163659887 AP_HAL: prevent a single bad transfer causing an IMU to be marked unhealthy
This is a response to this issue:
https://discuss.ardupilot.org/t/gyro-problem-after-waypoint-log-analisys

The 2nd gyro went bad with a large offset. Then the first gyro was
marked unhealthy, forcing the EKF to switch to the 2nd gyro. That
resulted in a crash.

I think the SPI bus was getting bad transfers and the register check
code happened to get a bad transfer, thereby marking the first gyro
unhealthy

This change ensures we only fail the register check if two transfers
in a row are bad. This makes it much less likely that a noisy bus will
lead to an unhealthy gyro
2021-01-27 09:47:55 +11:00
Andrew Tridgell 1680e6e7d6 AP_HAL: expose load_persistent_params() in hal.util 2021-01-21 13:09:21 +11:00
Andrew Tridgell a9f8c9517c AP_HAL: added vnav linux target 2021-01-20 10:06:45 +11:00
Andrew Tridgell 6ca68bfba3 AP_HAL: enable 32k storage on SITL 2021-01-16 06:47:10 +11:00
Andrew Tridgell 75c789fc57 AP_Baro: added ExternalAHRS backend 2021-01-05 21:13:12 +11:00
Arsh 3d5addeee0 AP_HAL:examples:AnalogIn: Added comments in the AnalogIn example 2021-01-05 20:43:04 +11:00
Andrew Tridgell 96cbde0ee6 AP_HAL: use ExpandingString class 2021-01-05 10:52:00 +11:00
Tom Pittenger afaca30075 AP_HAL: add helpers le24toh_ptr(), be24toh_ptr(), put_le24_ptr(), put_be24_ptr() 2020-12-30 17:56:38 -08:00
Andy Piper 1c79f22ba2 AP_HAL: make erpm accessible from RCOutput
give access to erpm error rate
add bi-directional dshot mask modifier
2020-12-30 19:14:16 +11:00
Andy Piper 9e7c60178d AP_HAL: rename system_initialized() and add is_system_initialized() 2020-12-30 18:16:59 +11:00
Andy Piper c8e464ebea AP_HAL: add HAL_ENABLE_THREAD_STATISTICS to boards 2020-12-30 18:15:05 +11:00
Ari Krupnik cfb1213f43 AP_HAL: standard spelling of variant 2020-12-25 00:01:50 +11:00
Andrew Tridgell 19723e6e75 AP_HAL: make uart pointers private
this ensures they cannot be used by library or vehicle code, so we
will be able to remove them in future
2020-12-15 10:32:46 +11:00
Andrew Tridgell 195ec0316a AP_HAL: fixed example fw for SERIAL naming 2020-12-15 10:32:46 +11:00
Andrew Tridgell 95c0852b13 AP_HAL: convert to using hal.serial() instead of hal.uartX 2020-12-15 10:32:46 +11:00
Andrew Tridgell 8678759da4 AP_HAL: added hal.serial() access to uarts
this gives access to serial ports in the SERIALn_ order. It is inlined
by the compiler so using hal.uartB and hal.serial(3) generates
idential code on stm32 (tested on H7).

This is a step towards eliminating hal.uartX completely and the
horrible uartB ordering
2020-12-15 10:32:46 +11:00
Tom Pittenger 6630645915 AP_HAL: ap_periph should disable HAL_SUPPORT_RCOUT_SERIAL by default 2020-12-09 07:53:09 -08:00
Andy Piper d2e01005ee AP_HAL: add support for @SYS/dma.txt for DMA contention 2020-12-02 18:17:23 +11:00
Andrew Tridgell 68fdf033ee AP_HAL: support uartI, allowing a total of 9 uarts
this allows for OTG2 on the MatekH743 board, which makes SLCAN much
easier
2020-11-30 14:09:31 +11:00
Tom Pittenger 089f3aa349 AP_HAL: allow hwdef to define HAL_SUPPORT_RCOUT_SERIAL - must be disabled for AP_Periph 2020-11-25 14:20:53 +11:00
Andrew Tridgell 5e8380ff41 AP_HAL: allow replay on ChibiOS 2020-11-10 16:15:45 +11:00
Andrew Tridgell 2596875ceb AP_HAL: removed fs_init()
this must go via AP_Filesystem
2020-10-27 10:45:03 +11:00
Peter Barker 3cce6197a1 AP_HAL: delete copy constructors 2020-10-13 19:55:34 +11:00
Pierre Kancir 1c80b04544 AP_HAL: add virtual set_cmdline_parameters() 2020-10-13 10:31:21 +11:00
Peter Barker 9bde294112 AP_HAL: add chargen UARTDriver example 2020-10-09 19:14:59 +11:00
bugobliterator d1eb9e8aea AP_HAL: add FilteredCAN mode to tell driver to init as such 2020-10-08 09:31:35 +11:00
mhefny 1200d0e2f8 AP_HAL: add PROBE_IMU_I2C2 to linux.h 2020-10-06 09:27:26 -07:00
Andrew Tridgell c62b86e3c1 AP_HAL: added timer_tick() on GPIO 2020-10-02 09:38:24 +10:00
Siddharth Purohit 22ab426cf2 AP_HAL: make bools to use single bit in CANTxItem 2020-09-24 12:32:19 +10:00
Siddharth Purohit 0ca2f56b71 AP_HAL: add support for external buffer to be used in ByteBuffer 2020-09-24 12:32:19 +10:00
Siddharth Purohit 9aa0970eed AP_HAL: disable protocol drivers for bootloader builds 2020-09-24 12:32:19 +10:00
Siddharth Purohit c7d69e4d13 AP_HAL: disable CAN Protocol Drivers for AP_Periph 2020-09-24 12:32:19 +10:00
Andy Piper ad895c2654 AP_HAL: ringbuffer get_size cannot be const because of semaphore 2020-09-22 09:37:02 +10:00
Andrew Tridgell 4b1552eebe AP_HAL: added BUS_TYPE_MSP
for MSP sensors
2020-09-09 06:35:50 +10:00
Peter Barker 55f72c1534 AP_HAL: create and use new AP_HAL::PWMSource object 2020-09-08 16:10:50 +10:00
Michael du Breuil d905282c1e AP_HAL: Don't redefine allowing double math in SITL/Linux if already defined 2020-09-03 09:56:29 +10:00
Patrick José Pereira 11c19a2dde AP_HAL: RCOutput_Tap_Linux: Include arm/ioctls.h
Add missing include for TCGETS2 while compile with MUSL

Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2020-08-25 07:15:00 -07:00
Siddharth Purohit 15abca8ba4 AP_HAL: add native clock info methods used inside other than main thread 2020-08-19 17:31:09 +10:00
Siddharth Purohit aa893b3983 AP_HAL: add available method for locked state 2020-08-19 17:31:09 +10:00
Siddharth Purohit fa0f1e4c71 AP_HAL: add CANIface HAL, replace uavcan dependent one 2020-08-19 17:31:09 +10:00