Commit Graph
369 Commits
Author SHA1 Message Date
Igor Mišić 296b1704c5 invensense/icm42688p: add additional state FIFO_RESET
This state is added to give extra time between  FIFO flush command. Some icm42688p IMUs need more time between config -> FIFO reset -> FIFO read. More about the issue  #20181
2022-09-09 16:19:10 -04:00
Daniel AgarandKabir Mohammed 1c72f86761 Update src/drivers/imu/analog_devices/adis16470/ADIS16470.cpp
Co-authored-by: Kabir Mohammed  <kabir@corvus-robotics.com>
2022-08-16 08:40:43 -04:00
Daniel Agar 49d87f1907 adis16470: fix accel and gyro scaling 2022-08-16 08:40:43 -04:00
Daniel Agar 7f2fea1cca mpu9250: try all I2C addresses if not manually specified 2022-08-09 13:06:40 -04:00
Daniel Agar 0bce1ef573 drivers/imu: new TDK IIM-42652 IMU support 2022-08-08 13:51:39 -04:00
Hamish Willee e6eed43648 Spelling errors (#19935) 2022-07-27 14:33:16 +10:00
Beat Küng f22dc80ecc system: add missing includes (added indirectly via visibility.h for normal builds) 2022-07-20 01:14:04 -04:00
Daniel Agar c71cc5b815 drivers/imu/bosch: new BMI085 driver
- very similar to the BMI088 with minor differences in accel range
2022-07-14 18:20:13 -04:00
Daniel Agar d25a784a3a icm42688p: only check configured registers periodically (as intended) 2022-05-23 14:58:23 -04:00
Daniel Agar ff16131874 icm42670p run at full speed 2022-05-17 08:14:22 -07:00
Daniel Agar 83daf648ef drivers/imu/invensense/icm42670p: cleanup and small fixes 2022-05-17 08:14:22 -07:00
Daniel Agar 8df3932d6a icm20948: disable debug output (_debug_enabled=true) 2022-04-24 15:45:51 -04:00
mcsauder fef47513f5 Add gyro and accel range register values to the icm42688p driver. 2022-04-22 21:03:01 -04:00
Daniel Agar 0c31f63896 sensors: add baro calibration and cleanup
- sensor_baro.msg use SI (pressure in Pascals)
 - update all barometer drivers to publish directly and remove PX4Barometer helper
 - introduce baro cal (offset) mainly as a mechanism to adjust
relative priority
 - commander: add simple baro cal that sets baro offsets to align with
GPS altitude (if available)
 - create new sensors_status.msg to generalize sensor reporting
2022-03-26 16:08:41 -04:00
Daniel Agar b66dd5ffa6 adis16470: fix gyro scaling 2022-03-09 23:00:54 -05:00
ShiauweiZhao 8549fadb6c add icm42670p driver kconfig 2022-02-25 12:21:06 -05:00
Viktor Vladic f4d02a2937 MatekH743 board_id, usb vid/pid changes, and MPU6000 delay before transfer - not after (#18733)
* Make board_id compatible with ardupilot
 * Initialize outputs for CAM1/CAM2 and Vsw pad
 * Correct board type 1013 in bootloader to match AP
 * Change usb vendor string to "Matek"
 * Change cdcacm pid to 1013
 * Comment out FLASH_BASED_PARAMS because of #15331
2022-02-07 19:55:49 -05:00
Daniel Agar e731fcdbc0 sensors (accel/gyro/mag) determine if external with device id 2022-01-10 10:31:07 -05:00
Daniel Agar a5f58d321e boards: emlid_navio_default fix missing drivers/modules 2021-12-23 15:57:11 -05:00
Matthias Grob 68e2940f58 math: support max of three values additional to min and use it everywhere 2021-12-07 21:06:51 +01:00
Daniel Agar 9ab633c18f drivers/imu/invensense: check register bank during probe if necessary
- the WHO_AM_I is only accessible in register bank 0, which might not
be currently selected if the sensor didn't have a clean reset
2021-12-06 10:22:54 -05:00
Viktor Vladic 02709fcfab Fixes for MPU6000 and MatekH743-slim board
- MPU6000: Added 10us delay for R/W of slow registers
 - Board: Fixed DRDY pin from PB1 to PB2
2021-11-11 08:40:41 -05:00
Daniel Agar 67437396f1 mpu6000: add USER_CTRL I2C_MST_EN bit to checked registers 2021-11-04 21:22:14 -04:00
Daniel Agar 8fbb241c2e mpu6000: add gyro/accel self test bits to checked registers 2021-11-04 21:22:14 -04:00
Daniel Agar 12c7056ae5 drivers/imu: icm20602/icm20649/icm20948 remove timestamp_sample adjustments 2021-10-14 16:37:11 -04:00
Daniel Agar 4559230de6 drivers/imu/invensense: adjust icm20602/icm20649/icm20948 rescheduling logic
- this handles the case where the driver might be more than one full
transfer cycle behind
2021-10-14 09:17:11 -04:00
Peter van der Perk 0571932e7c [Kconfig] Backport rebase config changes 2021-10-07 10:09:01 -04:00
Peter van der Perk f7803fb686 [Kconfig] Bloaty 2nd pass 2021-10-07 10:09:01 -04:00
Peter van der Perk 815617e670 Added common options for sensor drivers
uavcan_board_identity check for existance
Added kconfig for compiler definitions
2021-10-07 10:09:01 -04:00
Peter van der Perk b7f03cec5e [Kconfig] Add FMU-V5 and PX4-IOv2 px4board config 2021-10-07 10:09:01 -04:00
Peter van der Perk 4e4aabc03f Update Kconfig after rebasing 03-05-21 2021-10-07 10:09:01 -04:00
Peter van der Perk d5e3e9a7bc [Kconfig] Decompose Kconfig, now each module has its own Kconfig
Which is better for versioning and decomposability
2021-10-07 10:09:01 -04:00
Peter van der Perk 4044fbd4a0 Initial Kconfig implementation in CMake
Used fmuk66-v3 as test case
2021-10-07 10:09:01 -04:00
Daniel Agar b5d401b20c drivers/imu: ensure timestamp_sample adjustment isn't done as float (continued) 2021-10-06 10:19:01 -04:00
Daniel Agar dc1b423721 drivers/imu: ensure timestamp_sample adjustment isn't done as float
- larger HRT timestamps can't be represented exactly when cast to float
2021-10-06 09:26:26 -04:00
Daniel Agar e6552370ab imu/invensense: adjust scheduling dynamically if not using data ready interrupt 2021-09-12 17:34:35 -04:00
ShiauweiZhaoandzhaoxiaowei 686bcff8a7 new TDK ICM42670p IMU driver support (#18141)
Co-authored-by: zhaoxiaowei <zhaoxiaowei@efy-tech.com>
2021-09-08 10:24:22 -04:00
Daniel Agar 5c7882b787 icm42688p: properly disable anti-aliasing and notch filter 2021-09-08 10:20:57 -04:00
Daniel Agar a397004bf8 adis16448: add additional delay after transfer in case of back to back transcations
- add verified register read method
2021-08-08 06:25:16 -07:00
Daniel Agar b1eb762753 drivers/imu: set sample timestamp from interrupt (if available)
- minor scheduling improvements
   - if expected number of samples larger than expected adjust timestamp sample and save sample for next iteration
   - when scheduling via data ready interrupt (with no FIFO watermark) count continuously without clearing
2021-07-21 02:19:11 -04:00
Daniel Agar 883624d915 lib/geo: move from ecl 2021-07-15 10:38:24 -04:00
Beat Küng e644036325 drivers: use updated I2C SPI driver interface 2021-07-08 12:59:35 -04:00
Jaeyoung-Lim e45b862f1d Specify orientaiton of ADIS16448 IMU from rc.sensors
Specify orientaiton of ADIS16448 IMU for from the rc.sensors

WIP: Currently only handling one orientation
2021-06-30 09:34:12 -04:00
Daniel Agar 7ddcb7fe3c adis16470: disable debug 2021-06-30 01:01:07 -04:00
Daniel Agar 3fcd323f6a drivers/imu/invensense: store offset registers on configure, trigger reset on any change
- this can catch subtle failures that occur after self hours of continuous operation on some units
2021-06-29 10:33:03 -04:00
Roman Dvořák ab0e3b6001 icm20948_i2c_passthrough: allow to configure i2c address 2021-06-25 07:50:31 +02:00
David Sidrane 84dd8839a2 i2c_spi_buses:Track NuttX change to getopts avoid name collision
NuttX #defined optarg and getopt to move to TLS. This fixes the
  name collision.
2021-06-16 17:07:47 +02:00
Daniel Agar e18b1c0355 mpu9250: tolerate missing/mismatching FIFO samples if I2C slave mag active
- when the mpu9250 mag is active it disrupts IMU sampling
 - this change modifies the simple mpu9250 FIFO integrity checks (comparing duplicate accel samples) to tolerate these samples that don't match if the mag is active
 - fixes #17615
2021-05-24 11:22:13 -04:00
Daniel Agar 820a442fe3 drivers/imu/analog_devices/adis16448: minor fixes and compatibility with older model
- increase SPI stall time slightly
 - tolerate mag self test failure (could be due to local magnetic field)
 - register configuration compatible with older ADIS16448AMLZ
 - don't publish duplicate accel/gyro
 - only allocate CRC perf counter if using CRC
2021-05-18 12:44:37 -04:00
Beat Küng 1a89f165fd fix bmi088: set correct accel scale
This affected the clipping limit, which was set too low
2021-04-27 10:27:57 -04:00