Commit Graph

5499 Commits

Author SHA1 Message Date
Beat Küng 5378d1468f lockstep_scheduler: add generic lockstep component API
allows components to register and ensure the lockstep cycle waits for
all components to be updated.
2020-06-23 11:53:55 -04:00
Beat Küng bb36b4a63f {dshot,pwm_out}: allow mode_pwm4 for boards with 5 outputs
Required on durandal if camera triggering is enabled.
2020-06-23 09:32:13 -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 4bcee8e13f magnetometers/akm: new standalone AKM AK8963 & AK09916 drivers 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
JacobCrabill 78650bdbab UAVCAN: Fix STM32H7 message RAM for FDCAN2 2020-06-18 18:55:21 -04:00
JacobCrabill 62799d9aca UAVCAN: Add STM32H7 FDCAN Driver
Took the existing uavcan_stm32 driver and replaced all bxCAN code with
the equivalent for FDCAN following ST Reference Manual RM0433.

Note: There is still a bug somewhere in regards to FDCAN2 (probably
incorrect setup of the message RAM? Not sure.)  But (FD)CAN1 is fully
functional (Classic CAN only, no CAN-FD).

Also TODO: Configure CAN filters.  Right now there are no filters; all
incoming messages are accepted.
2020-06-18 18:55:21 -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
Matthias Grob c165327c9f INA226: revise read() and collect() error handling
to allow negative currents and simplify unnecessary redundancy.
2020-06-15 10:26:10 +02:00
Matthias Grob da9feeb699 INA226: refactor spacing and return codes 2020-06-15 10:26:10 +02:00
dino d98cf2f719 Fixe for wrong perf counter increment in ina226 driver 2020-06-15 10:26:10 +02: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
Ricardo Marques a4927606ed Fix SENS_EN_SF1XX max value
Signed-off-by: Ricardo Marques <marques.ricardo17@gmail.com>
2020-06-10 14:37:23 -04:00
Daniel Agar 5507c15bdc boards: move rgbled_pwm startup to appropriate boards 2020-06-08 16:49:46 -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
David Sidrane 920355e851 bmi088 remove dump of registers that causes driver to fail 2020-06-03 21:09:08 -04:00
Daniel Agar b36845330e ms5611: prevent starting as ms5607 type on ms5611 hardware
- an ms5611 using the ms5607 calculations will return impossibly high barometric pressure (~2000 mbar)
2020-06-01 11:31:55 -04:00
Daniel Agar e34bdb4be9 move IMU integration out of drivers to sensors hub to handle accel/gyro sync
- IMU integration move from drivers (PX4Accelerometer/PX4Gyroscope) to sensors/vehicle_imu 
 - sensors: voted_sensors_update now consumes vehicle_imu
 - delete sensor_accel_integrated, sensor_gyro_integrated
 - merge sensor_accel_status/sensor_gyro_status into vehicle_imu_status
 - sensors status output minor improvements (ordering, whitespace, show selected sensor device id and instance)
2020-05-30 11:07:54 -04:00
Beat Küng 43279f18ba bmp388: fix variable shadowing warning 2020-05-29 09:54:18 -04:00
Beat Küng 07b39ec7c0 bmp388: some cleanup
- avoid unnecessary sensor readout cycle during init
- check status register for data ready
2020-05-28 08:34:38 -04:00
Matthias Grob 88c21337fa Make all battery sensor drivers report their sample interval
To make use of the time abstraction in the leaky integrator.
2020-05-25 11:04:24 +02:00
Daniel Agar 1c0925a189 Hex/Proficnc Cube Orange support
Co-authored-by: Jacob Dahl <dahl.jakejacob@gmail.com>
Co-authored-by: Jacob Crabill <jacob@flyvoly.com>
2020-05-23 18:31:46 -04:00
Daniel Agar e577c3b610 fxos8701cq: sample at nyquist rate, drop duplicates, throttle temperature updates 2020-05-23 13:23:03 -04:00
Daniel Agar e73380f726 fxas21002c: sample at nyquist rate, drop duplicates, throttle temperature updates 2020-05-23 13:23:03 -04:00
David Sidrane 0139acacfd adc:Restore ADC test's usefulness 2020-05-23 11:43:04 -04:00
Daniel Agar 951969ba00 drivers/imu/invensense: new ICM20948 driver on SPI with AK09916 mag 2020-05-22 00:09:30 -04:00
Julian Oes f2e2ac5def gps: workaround spurious GCC 10.1 warning
This is a workaround for a warning in GCC 10.1:
src/drivers/gps/devices/src/ubx.cpp:520:8: error: writing 4 bytes into a
region of size 0 [-Werror=stringop-overflow=]

Also see:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91707
2020-05-19 10:10:19 -04:00
JacobCrabill 328477f0be UavcanNode: Add sensor_type to range_sensor pub. 2020-05-15 16:45:52 +01:00
Daniel Agar 05886e053f mavlink_log_info: always print to console and merge with mavlink_and_console_log_info 2020-05-12 08:53:51 +02:00
Daniel Agar b461066ac5 bmi055/bmi088: remove TIMER_REDUCTION, sample at Nyquist rate 2020-05-11 12:59:34 -04:00
Daniel Agar 19b2d7fe9a bmi088: fix accel schedule interval 2020-05-11 12:59:34 -04:00
Daniel Agar 08d65280f1 bmi055: fix accel schedule interval 2020-05-11 12:59:34 -04:00
Daniel Agar 56211864b8 bmi088: accel & gyro don't publish duplicated reads 2020-05-11 12:59:34 -04:00
Daniel Agar e0fc404f91 bmi055: gyro don't publish duplicates 2020-05-11 12:59:34 -04:00
Daniel Agar da186877c9 gps: only use injected data if copy successful 2020-05-09 11:46:39 -04:00
Daniel Agar 8d48e49ef9 cmake build lis2mdl with all magnetometers 2020-05-07 15:21:15 -04:00
Beat Küng 7c4b5a03f6 drivers: add lis2mdl mag driver 2020-05-07 15:21:15 -04:00
Daniel Agar 6d846143dc pwm_out: update pwm outputs up to twice as fast as actual pwm frequency
- this is done to minimize real end-to-end latency
 - actual pulse width only updated for next period regardless of output module
 - add cycle interval perf counter
2020-05-07 13:18:09 -04:00
Daniel Agar 746a8f5cf9 commander: reboot/shutdown usability fixes
- always check with state machine before reboot/shutdown
 - respect BOARD_HAS_POWER_CONTROL (shutdown from command, low battery, power button)
 - px4_shutdown_request add optional delay and always execute from HPWORK
 - px4_shutdown_request split out px4_reboot_request
2020-05-06 13:53:54 -04:00
Beat Küng 8d722ac74b bmm150: add self-test 2020-05-06 09:37:56 -04:00