Commit Graph

312 Commits

Author SHA1 Message Date
Daniel Agar 6c3262c54b cmake cleanup src/drivers/imu 2021-02-23 15:58:36 -05:00
Daniel Agar 11ad41f7cb delete old imu/mpu6000 driver 2021-02-23 15:58:36 -05:00
Daniel Agar 4364e23633 delete unused imu/bmi160 2021-02-23 15:58:36 -05:00
Daniel Agar f9705c96f7 delete unused imu/bma180 2021-02-23 15:58:36 -05:00
Daniel Agar 44df0fb7a2 Analog Devices ADIS16448 rewrite
- new IMU driver structure with state machine (no sleeps in bus thread)
 - verify all configured registers and trigger reset on failure
 - detect if DIO1 or DIO2 are actually connected for data ready interrupt usage
 - don't use CRC-16 on burst transfers except for verified lots
2021-02-16 10:29:07 +01:00
TheLegendaryJedi b3d9efedfa [UPDATE] - Code clean and format 2021-01-20 19:51:45 +01:00
TheLegendaryJedi e450c5a9d9 [UPDATE] - Crazyflie parameter config 2021-01-20 19:51:45 +01:00
TheLegendaryJedi 40f971c082 [NEW] - bmi088 i2c drivers and crazyflie 2.1 conf 2021-01-20 19:51:45 +01:00
AlexKlimaj 386b56fbce drivers/imu/bosch/bmi088: Add BMI090L accel ID 2021-01-19 15:49:53 -05:00
Daniel Agar 3abe2e82d1 mpu9250: create dedicated i2c version and delete legacy driver
- update crazyflie and bbblue usage
 - eventually this should be merged with the SPI version after interface
changes are made
2021-01-17 16:11:19 -05:00
Daniel Agar a57b9f9381 delete drv_baro.h, drv_mag.h, drv_range_finder.h, drv_device.h and purge UAVCAN CDev usage 2021-01-12 22:04:52 -05:00
Beat Küng daaf8b61dc drivers: remove ism330dlc
not used anymore
2021-01-12 09:55:59 -05:00
Daniel Agar cb74cb8692 boards: enable CONFIG_ARMV7M_LAZYFPU everywhere 2021-01-12 09:04:38 +01:00
Daniel Agar 6c9072720e invensense/icm42688p: use full 20 bit data, increase ODR, disable all filters 2021-01-06 17:03:39 -05:00
Daniel Agar 68f24954cf imu/st/lsm9ds1: refactor to same form as other new IMU drivers
- register configuration captured in table and checked periodically
 - simple state machine
 - all driver sleeps removed
 - driver respects IMU_GYRO_RATEMAX
2020-11-11 19:22:12 -05:00
Daniel Agar 28d52aef1f bosch/bmi088: minor cleanup and consistency improvements
- track consecutive failures and trigger reset aggressively
 - only count missed drdy interrupts, not time
 - reset wait times consistent with other drivers
 - accel improve FIFO count check if DRDY isn't available
2020-08-29 11:01:09 -04:00
Daniel Agar a04d79b810 bosch/bmi055: minor cleanup and consistency improvements
- track consecutive failures and trigger reset aggressively
 - only count missed drdy interrupts, not time
 - reset wait times consistent with other drivers
2020-08-29 11:01:09 -04:00
Daniel Agar eb46a42400 bosch/bmi055: fix accel temperature reading
- single register output is in 2's complement
2020-08-28 16:01:08 -04:00
Daniel Agar fb149045e3 drivers/imu/invensense: new ICM42605 IMU driver 2020-08-25 13:07:59 -04:00
Daniel Agar 27f23ac290 move initial sensor priority to parameters and purge ORB_PRIORITY
- CAL_ACCx_EN -> CAL_ACCx_PRIO
 - CAL_GYROx_EN -> CAL_GYROx_PRIO
 - CAL_MAGx_EN -> CAL_MAGx_PRIO
2020-08-21 10:12:13 -04:00
Daniel Agar 971b1e4b4d sensors: move mag aggregation to new VehicleMagnetometer WorkItem
- purge all reminaing magnetometer IOCTL usage
 - mag calibration add off diagonal (soft iron) scale factors
2020-08-21 10:12:13 -04:00
Daniel Agar 33e3456de2 mpu9250: accumulated minor improvements and cleanup
- perform reset as per the datasheet (disable I2C immediately, set power mode, wait for appropriate time, etc)
 - remove interrupt perf counter and instead only count misses
 - minor style changes to stay in sync with the other Invensense drivers
2020-08-16 19:01:56 -04:00
Daniel Agar 6b4c14a15c mpu6500: accumulated minor improvements and cleanup
- perform reset as per the datasheet (disable I2C immediately, set power mode, wait for appropriate time, etc)
 - only track consecutive errors (not total) to trigger full reset if necessary
 - remove interrupt perf counter and instead only count misses
 - minor style changes to stay in sync with the other Invensense drivers
2020-08-16 19:01:56 -04:00
Daniel Agar 19adf805d4 mpu6000: accumulated minor improvements and cleanup
- perform reset as per the datasheet (disable I2C immediately, set power mode, wait for appropriate time, etc)
 - only track consecutive errors (not total) to trigger full reset if necessary
 - remove interrupt perf counter and instead only count misses
 - minor style changes to stay in sync with the other Invensense drivers
2020-08-16 19:01:56 -04:00
Daniel Agar 8adea51131 icm42688p: accumulated minor improvements and cleanup
- perform reset as per the datasheet (wakeup accel/gyro and wait before proceeding)
 - add register bank selection (not yet used)
 - track consecutive errors to trigger full reset if necessary
 - remove interrupt perf counter and instead only count misses
 - minor style changes to stay in sync with the other Invensense drivers
2020-08-16 19:01:56 -04:00
Daniel Agar a903eb7411 icm40609d: accumulated minor improvements and cleanup
- perform reset as per the datasheet (wakeup accel/gyro and wait before proceeding)
 - add register bank selection (not yet used)
 - track consecutive errors to trigger full reset if necessary
 - remove interrupt perf counter and instead only count misses
 - minor style changes to stay in sync with the other Invensense drivers
2020-08-16 19:01:56 -04:00
Daniel Agar 50228a05e1 icm20948: accumulated minor improvements and cleanup
- remove interrupt perf counter and instead only count misses
 - minor style changes to stay in sync with the other Invensense drivers
2020-08-16 19:01:56 -04:00
Daniel Agar 473b0456db icm20649: accumulated minor improvements and cleanup
- perform reset as per the datasheet (disable I2C immediately, set power mode, wait for appropriate time, etc)
 - remove interrupt perf counter and instead only count misses
 - minor style changes to stay in sync with the other Invensense drivers
2020-08-16 19:01:56 -04:00
Daniel Agar 146c8a6610 icm20689: accumulated minor improvements and cleanup
- perform reset as per the datasheet (disable I2C immediately, set power mode, wait for appropriate time, etc)
 - only track consecutive errors (not total) to trigger full reset if necessary
 - remove interrupt perf counter and instead only count misses
 - minor style changes to stay in sync with the other Invensense drivers
2020-08-16 19:01:56 -04:00
Daniel Agar 8c8677758a icm20608g: accumulated minor improvements and cleanup
- update copyright year
 - perform reset as per the datasheet (disable I2C immediately, set power mode, wait for appropriate time, etc)
 - only track consecutive errors (not total) to trigger full reset if necessary
 - remove interrupt perf counter and instead only count misses
 - minor style changes to stay in sync with the other Invensense drivers
2020-08-16 19:01:56 -04:00
Daniel Agar e3b1315df5 icm20602: accumulated minor improvements and cleanup
- perform reset as per the datasheet (disable I2C immediately, set power mode, wait for appropriate time, etc)
 - track consecutive errors and trigger full reset if necessary
 - remove interrupt perf counter and instead only count misses
 - minor style changes to stay in sync with the other Invensense drivers
 - read FIFO count along with full transfer as a sanity check
2020-08-16 19:01:56 -04:00
Daniel Agar 454433c2ef mpu9250: mag relax scheduling and checks 2020-08-09 14:24:49 -04:00
Daniel Agar e2ad1bbc91 bmi055: accel periodically read temperature 2020-07-09 18:03:29 -04:00
Daniel Agar fa8ba09f50 drivers/imu/bosch/bmi055: remove interrupt latch
- the latch would actually cause more problems if the backup schedule hit
 - this reduces the number of cycles where the FIFO is actually empty at max rate (when there's only 1 sample in the FIFO expected)
2020-07-09 10:15:33 -04:00
Daniel Agar 194029d010 drivers/imu: Invensense & Bosch remove transfer perf counters
- we already have nearly equivalent data in every sensor publication with the (publication) timestamp and timestamp_sample
2020-07-09 10:12:37 -04:00
Daniel Agar c6dd8bfcd6 imu/invensense/icm20649: minor cleanup to keep in sync with icm20948 2020-06-22 10:11:22 -04:00
Daniel Agar 8c34f47b3d imu/invensense/mpu9250: sync with other recent invensense improvements
- clenaup ak8963 with simplifed setup and health check
2020-06-22 10:11:22 -04:00
Daniel Agar 22daa26955 msgs/sensor_mag: remove unused raw, add timestamp_asmple, shrink error count
- move mpu9250 sensitivity handling back to driver (this isn't common)
2020-06-22 10:11:22 -04:00
Daniel Agar d9102ce54c imu/invensense/icm20948: sync with other recent invensense improvements
- clenaup ak09916 with simplifed setup and health check
2020-06-22 10:11:22 -04:00
Daniel Agar 3f19335f08 drivers/imu/invensense: FIFO_MAX_SAMPLES include sensor_accel_fifo in sample size limit 2020-06-18 20:49:15 -04:00
Daniel Agar 56c86e77bd replace FIFOSample -> sensor_accel_fifo/sensor_gyro_fifo 2020-06-18 20:49:15 -04:00
Daniel Agar f55ed0992c accel and gyro calibration refactor and cleanup
- remove all remaining IOCTLs for accel and gyro and handle all calibration entirely in sensors module with parameters
 - sensor_accel and sensor_gyro are now always raw sensor data
 - calibration procedures no longer need to first clear existing values before starting
 - temperature calibration (TC) remove all scale (SCL) parameters
    - gyro and baro scale are completely unused
    - regular accel calibration scale can be used (CAL_ACC*_xSCALE) instead of TC scale
2020-06-17 22:50:09 -04:00
Daniel Agar 6c78c62d9d BMI088: accel get max rate from PX4Accelerometer 2020-06-15 10:19:14 -04:00
Daniel Agar e819f99064 new Bosch BMI055 IMU driver using FIFOs and DRDY
- accel & gyro FIFOs enabled
 - FIFO watermark on data ready interrupt
 - sensor side filtering completely disabled
 - gyro now respects `IMU_GYRO_RATEMAX` (up to 2 kHz)
 - saves a few % cpu (at default rate)
2020-06-15 10:19:14 -04:00
Daniel Agar daf75e40eb drivers/imu/invensense: simplify gyro range configuration 2020-06-15 09:36:21 -04:00
Beat Küng ab060cdab0 bmi088 accel: use IMU_GYRO_RATEMAX to configure sampling rate (with 800 max)
Primarily for logging the fifo topic @400 Hz.
2020-06-11 12:25:13 -04:00
Daniel Agar 13e34b32e6 new Bosch BMI088 IMU driver using FIFOs and DRDY 2020-06-11 12:25:13 -04:00
Daniel Agar 5286ed3a11 imu/invensense/mpu6000: minor improvements
- at start perform full sensor signal path reset and wait for max time
 - issue full sensor reset on any error
 - only allocate DRDY perf counter if GPIO is available
 - allow running faster than accel ODR (safe limit of 2 kHz in place)
2020-06-05 21:28:37 -04:00
Daniel Agar 01f4486b32 imu/invensense/icm20689: minor improvements and potential fixes
- perform full sensor signal path reset and wait for max time (100 ms)
 - issue full sensor reset on any error
 - always read FIFO count before transfersj
 - only allocate drdy perf counter if GPIO is available
2020-06-05 21:28:37 -04:00
Daniel Agar ff3b040d3c imu/invensense/icm20608g: minor improvements and potential fixes
- perform full sensor signal path reset and wait for max time (100 ms)
 - issue full sensor reset on any error
 - always read FIFO count before transfersj
 - only allocate drdy perf counter if GPIO is available
2020-06-05 21:28:37 -04:00