Andrew Tridgell
cfc59497f6
AP_InertialSensor: trigger internal error on persistent IMU reset
...
this will give users a warning when they are getting the Invensense
IMU FIFO reset issue
2020-09-02 06:42:44 +10:00
Andy Piper
e53a43461b
AP_InertialSensor: remove ICM gyro pre-filter
2020-08-04 09:24:16 +10:00
Andy Piper
d4ba821297
AP_InertialSensor: make the backend fast gyro rate configurable and independent from the accel rate
...
allow fast sampling of gyros on MPU6000 and MPU6500
2020-07-28 20:47:16 +10:00
Andy Piper
faf9bbbf3a
AP_InertialSensor: make the backend fast gyro rate configurable
...
raise gyro rate default on F7 and H7
clean up gyro rate docs and output startup banner
2020-07-10 16:45:29 +10:00
Andrew Tridgell
d8b33bcac9
AP_InertialSensor: suppress expected errors from invensense IMUs
2020-03-11 16:30:06 +11:00
Andrew Tridgell
b89c241329
AP_InertialSensor: use take_blocking instead of HAL_SEMAPHORE_BLOCK_FOREVER
...
this makes for cleaner and smaller code as the failure case is not
needed
2020-01-19 20:19:30 +11:00
Peter Barker
ef860db558
AP_InertialSensor: add floating point constant designators
2019-04-05 23:04:17 -07:00
na
494a3f86ad
AP_IntertialSensor: support ICM20601 IMU
2019-03-28 09:15:27 +11:00
Siddharth Purohit
8c2d3945de
AP_IneertialSensor: add support for custom accel scale
...
adds support for 30g measurement on ICM20649
2019-03-21 18:54:32 +11:00
Andrew Tridgell
81cd103073
AP_InertialSensor: probe for new v2 invensense IMUs
...
also suppress LSM9DS0 whoami warnings, as these will now be common
with new IMUs
and make 20602 show up as a new devtype so we can distinguish it
2019-03-11 12:40:21 +11:00
Andrew Tridgell
2b285089e9
AP_InertialSensor: widen allowable temp gap on invensense IMUs
...
some sensors have more temperature noise
2019-02-26 16:18:26 +11:00
Lucas De Marchi
49d08ba72a
Global: remove minlure
...
Minlure is a port of ArduPilot to Minnow Board connected to daughter
board. Very few of those were produced and nobody is flying with it.
It served its purpose and all the the improvements to ArduPilot remain
regardless of it not being supported anymore. Now it's just adding
maintenance work with no clear benefit, so pull the plug.
2018-06-26 07:32:08 -07:00
Peter Barker
1a640e3405
AP_InertialSensor: parameterise sensor-rate logging, generalise it
...
AP_InertialSensor: add parameters for push-to-log interval and count
AP_InertialSensor: rename BAT_RAW to BAT_OPT
This becomes a bitmask of options for the BatchSampler
AP_InertialSensor: rename 'fast sample' to 'sensorrate sample'
AP_InertialSensor: const sensor-rate filter method
AP_InertialSampler: remove hard-coding of sample rate multiplier
AP_InertialSensor: use parameter to enable/disable sensor-rate logging
AP_InertialSensor: use a parameter to control sensor-rate logging
AP_InertialSensor: allow backends to override sensor data multiplier
e.g. some accelerometers are sensitive over wider ranges than the default 16G
AP_Inertialsensor: correct sample rate multiplier
2018-05-01 09:35:29 +10:00
Andrew Tridgell
44131202cd
AP_InertialSensor: 4kHz batch sampling
2018-05-01 09:35:29 +10:00
Andrew Tridgell
ca9d1a55fe
AP_InertialSensor: support ICM-20689 IMU
...
like the 20789, but without the baro
2018-04-24 08:03:46 +10:00
Andrew Tridgell
f788cde5c7
AP_InertialSensor: use multiply for fifo scale factors
...
this fixes issue from #8118 too
2018-04-10 14:17:16 +10:00
Andrew Tridgell
53b76efbd2
AP_InerialSensor: setup INT_PIN_CFG correctly
...
this restores the behavior lost with the 20789 driver change
2018-03-08 21:25:14 -08:00
Andrew Tridgell
b380143349
AP_InertialSensor: improved handling of I2C invensense sensor
...
on I2C the lower bus bandwidth changes the tradeoffs
2018-02-08 17:36:33 +11:00
Andrew Tridgell
b33c815e96
AP_InertialSensor: added whoami for prototype 20789
2018-02-08 17:36:33 +11:00
Peter Barker
71cf3941a7
AP_InertialSensor: move Invensense register defines into separate file
2018-02-08 17:36:33 +11:00
Peter Barker
3ee112843c
AP_InertialSensor: configure bypass for 20789 like we do for AK8963
2018-02-08 17:36:33 +11:00
Peter Barker
5d94172ada
AP_InertialSensor: remove clearing of BIT_USER_CTRL_I2C_MST_EN bit in user_ctrl
...
This bit should never be set on 20789
2018-02-08 17:36:33 +11:00
Andrew Tridgell
5a4f0fed2d
AP_InertialSensor: added ICM-20789 support
2018-02-08 17:36:33 +11:00
Andrew Tridgell
f4521772c1
AP_InertialSensor: don't try fast sampling on a MPU6500
...
it can't do it
2018-02-07 20:33:45 +11:00
Andrew Tridgell
d575d676b6
AP_InertialSensor: fixed another transfer without bus semaphore
2018-02-07 20:33:45 +11:00
Andrew Tridgell
2ffb8d1583
AP_InertialSensor: fixed a bug where bus semaphore not held
...
during init of the invensense driver we could do a transfer without
the bus semaphore held. That violates the locking rules for the bus
2018-02-07 20:33:45 +11:00
Andrew Tridgell
24c424ae5d
AP_InertialSensor: support over 1kHz IMUs
...
this allows for invensense IMUs to run above 1kHz by adjusting the
downsampling rate
2018-01-20 10:36:22 +11:00
Andrew Tridgell
9416165fe3
AP_InertialSensor: improved invensense debugging on ChibiOS
2018-01-20 10:36:22 +11:00
bugobliterator
1c6beaa7c4
AP_InertialSensor: use new API for DMA safe allocation
2018-01-15 11:46:02 +11:00
Lucas De Marchi
caa4e3ee89
AP_InertialSensor: remove raspilot
2017-09-12 15:06:19 -07:00
Lucas De Marchi
06fe5ce8ba
AP_InertialSensor: implement periodic thread for AuxiliaryBus
2017-09-11 09:52:41 -07:00
Andrew Tridgell
bfd8d151c8
AP_InertialSensor: lower slave rate with fast sampling
...
On an invensense IMU with fast sampling we need to lower the slave
sample rate for slave sensors such as the built-in AK8963 compass on a
MPU9250.
The slave rate is set as a multiple of the main rate, so it needs to be
much lower for fast sampling. If we leave it high then it greatly
impacts on IMU sample rate.
Without this change a MPU9250 with fast sampling and a compass enabled
will give a gyro rate of around 7200Hz. With this change it gets 7760Hz
2017-05-02 12:11:08 +10:00
Andrew Tridgell
519a293af9
AP_InertialSensor: fixed instance usage in set_gyro_oversampling()
...
thanks Francisco!
2017-05-02 08:27:11 +10:00
Andrew Tridgell
db25b6e966
AP_InertialSensor: estimate and log sensor rates for all IMUs
...
this adds IMU.GHz and IMU.AHz log fields so we can see the actual
observed sensor rates of each IMU
2017-05-01 15:06:46 +10:00
Andrew Tridgell
49cc0965c0
AP_InertialSensor: separate handling of FIFO and non-FIFO sensors
...
FIFO sensors produce data at a well known rate, but samples come in
bunches, so we can't use the system clock to calculate deltaT.
non-FIFO sensors produce data when we sample them, but that rate is
less regular due to timing jitter.
For FIFO sensors this changes makes us use a learned sample rate,
which allows for different clock speeds on sensor and system board.
For non-FIFO sensors we use the system clock to measure deltaT
the overall effect is a fix for sensors that produce samples at other
than the claimed datasheet rate.
2017-05-01 15:06:46 +10:00
Andrew Tridgell
c952e58edb
AP_InertialSensor: fixed invensense driver temp reading
...
different parts have quite different zero offsets in temperature
2017-04-03 10:06:27 +10:00
Andrew Tridgell
875274e761
AP_InertialSensor: added support for ICM-20602
...
treat the same as a 20608
2017-03-02 14:21:36 +11:00
Lucas De Marchi
2d50eb312c
AP_InertialSensor: add support to MPU6500
...
Just like and MPU9250 without mag and with different WHOAMI register.
2017-02-26 13:37:13 +11:00
murata
a3f5b4f319
AP_InertialSensor: Change from magic number 0 to definition name.
2017-02-18 14:12:36 +00:00
murata
2643e7e906
AP_InertialSensor: Unify from print or println to printf.
2017-01-27 18:20:22 +11:00
Lucas De Marchi
5472bc4de1
Global: change Device::PeriodicCb signature
...
Remove bool return as it's never being used and not supported on PX4.
2017-01-14 10:03:54 +11:00
mirkix
62fabca19d
AP_InertialSensor: Enable I2C bypass for MPU9250 conntected via I2C to access internal AK8963
2017-01-11 21:44:24 -08:00
Randy Mackay
946d30476a
AP_InertialSensor: fix whoami for MPU6k
2017-01-05 10:29:51 +09:00
Lucas De Marchi
9569ed94a9
AP_InertialSensor: Invensense: use capital letters for define
2016-12-20 09:23:30 +09:00
Andrew Tridgell
65b9b86099
AP_InertialSensor: unify MPU6000 and MPU9250 drivers
...
make a single AP_InertialSensor_Invensense driver. This avoids a lot
of duplication and will save time as new varients are added
2016-12-16 12:31:34 +11:00