Andrew Tridgell
0ebf9e7af5
AP_InertialSensor: pre-fetch instances for use in filter setup
...
we use the instance numbers during filter configuration to check if
fast sampling is enabled. We need to ensure these instance numbers
have been setup before the filtering functions get called
2023-10-25 19:23:11 +11:00
David Buzz
a896ab9e71
AP_InertialSensor: quieten imu's on esp32
...
less noisy
ins debug
imu
2023-05-02 14:38:03 +10:00
Wu
0f1253b393
AP_InertialSensor: the accel fast-sampling rate of MPU6500 is 4k,not 1k
2023-04-12 15:24:41 +10:00
Andrew Tridgell
645240cc2b
AP_InertialSensor: cleanup NAMED_VALUE_FLOAT for fifo error
2023-01-19 15:44:13 +11:00
Andrew Tridgell
786ae7c67f
AP_InertialSensor: fixed flood of log with fast fifo reset
2023-01-19 15:44:13 +11:00
bugobliterator
5096023eef
AP_InertialSensor: add fast reset for ICM20602 instead of full reset on bad temp sample
2022-11-01 10:53:09 +11:00
Andrew Tridgell
9fa3a433f5
Revert "AP_InertialSensor: disable temperature based fifo check on ICM20602"
...
This reverts commit 05f8e3c18d
.
this leads to bad IMU data on ICM20602
2022-10-22 13:01:39 +11:00
bugobliterator
05f8e3c18d
AP_InertialSensor: disable temperature based fifo check on ICM20602
2022-10-13 10:14:59 +11:00
Andy Piper
6cacdd1b34
AP_InertialSensor: properly reset MPU6000 signal path at startup
...
failure to reset the signal path as per the register spec leads to
very poor temperature response early on in startup.
2022-06-08 17:44:17 +10:00
Andrew Tridgell
19063a46a0
AP_InertialSensor: fixed build with logging disabled
...
fixes CubeOrange-periph build
2022-06-06 14:50:40 +10:00
murata
324f5e3ac9
AP_InertialSensor: Console output can be disabled
2022-05-17 09:53:06 +10:00
murata
efe8427279
AP_InertialSensor: Change from division to multiplication
2022-03-16 18:41:52 +11:00
Andy Piper
c7a43f2a90
AP_InertialSensor: put some functions in fast ram
...
precisely split backend/frontend on Invensense for RAMFUNC allocation
allow building with no IMUs
2022-02-09 12:47:55 +00:00
Andy Piper
6e3b502110
AP_InertialSensor: inline vector ops for backends and temp cal
2021-12-22 18:23:33 +11:00
QioTek
e5a8695640
AP_InertialSensor: added support for ICM-20608-D sensor
2021-12-17 07:58:48 +11:00
Andrew Tridgell
12c10dce32
AP_InertialSensor: fixed comments on IMU types supported
2021-11-09 08:05:03 +11:00
nkruzan
f4c18e0f9c
AP_InertialSensor_Invensense: set reset count to 1 if 10s has passed since last reset
2021-05-25 10:46:38 +10:00
Andrew Tridgell
b3ed4f4b12
AP_InertialSensor: fixed handling of more than 3 accel/gyro instances
...
allows for first 3 to work without a panic
2021-04-13 09:36:52 +10:00
Andrew Tridgell
dcf6bcea6e
AP_InertialSensor: removed assert calls
...
these waste flash space and do not do us any good
2021-03-25 14:03:40 +11:00
Andrew Tridgell
bf999f701f
AP_InertialSensor: fixed ICM-20602 y offset bug
...
this works around a bug in the ICM-20602 that can cause the Y facttory
offset register to change unexpectedly. We don't know what triggers
this.
The fix is to save the factory offset at boot and restore it if it
changes. We log a message describing the change, but don't mark the
IMU unhealthy as this happens too often and we don't want to fallback
to a 2nd less good quality IMU (eg. MPU6000 on MatekH743)
2021-02-24 18:18:37 +11:00
Andrew Tridgell
4cddf37984
AP_InertialSensor: log unexpected register changes
...
when the register checking code finds an error we will log what
register changed and to what value
2021-02-24 18:18:37 +11:00
Andrew Tridgell
85ef6b7ac6
AP_InertialSensor: added optional logging of register changes
2021-02-24 18:18:37 +11:00
Andy Piper
3db6203fb6
AP_InertialSensor: reduce FIFO buffer size to avoid DMA contention
2020-12-23 18:03:12 +11:00
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