Commit Graph

35 Commits

Author SHA1 Message Date
Andrew Tridgell 0f08b47322 AP_Compass: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
Thomas Watson b8d50b112a AP_Compass: fix C++ One Definition Rule violations
Two structs with the same name must have exactly the same definition, no
matter where they occur in the program, otherwise the program is undefined.

Move each sample register struct definition into the associated class
definition so they are in a different namespace and no longer
identically named, thus fixing this issue.
2023-11-21 13:21:03 +11:00
Hayden b237fd9fa4 AP_Compass: fix AK09916 hangup issue 2023-10-20 07:56:56 +11:00
Peter Barker ee6b44113d AP_Compass: add and use AP_COMPASS_ICM20948_ENABLED 2023-02-22 19:40:13 +11:00
Peter Barker ad9521c1c4 AP_Compass: add and use AP_COMPASS_AK09916_ENABLED 2023-02-22 19:40:13 +11:00
Peter Barker c0d9201740 AP_Compass: rename HAL_INS_ENABLED to AP_INERTIALSENSOR_ENABLED 2023-01-03 10:28:42 +11:00
Andrew Tridgell b6bcd6346d AP_Compass: switch to a general method of heater compensation
this allows any board to easily setup heater compensation for an
internal compass. The offsets are in body frame (previously in sensor
frame) and are sensor specific using bus device IDs
2022-08-02 17:26:46 +10:00
Andrew Tridgell e48f405c08 AP_Compass: removed "AK09916 Wrong id" message
we don't need this on every board that doesn't have an I2C AK09916
2022-06-23 12:37:24 +10:00
murata a19d4b65fc AP_Compass: Console output can be disabled 2022-05-17 09:53:06 +10:00
Andrew Tridgell 45bfc75e4b AP_Compass: added register checking for AK09916 mode
this allows AK09916 on I2C to recover from a power outage in flight
2021-12-28 16:04:36 +11:00
Patrick José Pereira 91ea129be3 AP_Compass: Add support to AK09915
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2021-11-10 18:11:34 -03:00
Buzz 8d9f161b40 AP_Compass: add support for ICM20948 I2C variant and rename existing one as SPI variant
Author: Charles Villard <charlesvillard10@gmail.com>
Author: Buzz <davidbuzz@gmail.com>
2021-11-01 17:40:31 +11:00
Andrew Tridgell 613f970870 AP_Compass: added AK09918 support
minor update over AK09916
2021-10-06 18:16:00 +11:00
Tom Pittenger d45526ff42 AP_Compass: fix periph-heavy compile errors with different things enabled 2021-09-24 10:47:13 -05:00
Andrew Tridgell 0f5dd40052 AP_Compass: removed assert calls
these waste flash space and do not do us any good
2021-03-25 14:03:40 +11:00
Andrew Tridgell a90b54ba6e AP_Compass: allow for AK09916 correction by heater duty cycle 2021-02-09 11:32:19 +11:00
Siddharth Purohit 8d227d401a AP_Compass: modify compass driver to support consistent ordering and hotplugging 2020-02-19 13:59:53 +09:00
Andrew Tridgell 521cf4d6a1 AP_Compass: removed annoying startup messages
these happen due to sensor probing for older configs
2020-02-06 15:25:46 -07:00
Andrew Tridgell 4ee6fb9cdf AP_Compass: 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
Andrew Tridgell 1fe146c409 AP_Compass: remove expected error
this happens with AK09916 probing on invensense sensor
2019-10-30 15:21:07 +11:00
Vlad-Andrei Dorobantu 83c641c76f AP_Compass: corrected the cause of SIGSEGV signal when running AP_Compass_test 2019-10-19 09:58:42 +11:00
Andrew Tridgell f4576ec8f3 AP_Compass: reduce firmware size for AP_Periph 2019-08-27 10:29:56 +10:00
Siddharth Purohit 6ff8f52957 AP_Compass: add support for AK09916 connected over fourth IMU over I2C 2019-03-06 20:47:10 +11:00
Siddharth Purohit 104c433081 AP_Compass: AK09916 fix sample register structure 2019-03-06 20:47:10 +11:00
Siddharth Purohit cff8bf14b7 AP_Compass: add support for AK09916 via invensensev2 aux bus 2019-03-06 20:47:10 +11:00
Lucas De Marchi 565df5ec94 AP_Compass: AK09916: use common method to accumulate samples 2018-10-15 14:41:09 -07:00
Lucas De Marchi 4039b51810 AP_Compass: stop passing frontend pointer
Let AP_Compass_Backend call AP::compass() *once* instead of passing
the frontend pointer over and over.
2018-09-06 08:23:02 +10:00
Andrew Tridgell 3c0ed01fd0 AP_Compass: prevent use of null dev_icm device in ICM20948 driver 2018-07-14 17:51:50 +10:00
Andrew Tridgell b225868711 AP_Compass: detect conflict between AK09916 and ICM20948
this detects if we have both a AK09916 and an ICM20948 on the same i2c
bus. If that is found then the ICM20948 is disabled as it otherwise we
will have two devices on the same i2c address
2018-06-12 09:04:43 +10:00
Michael du Breuil fb77d0739e AP_Compass: Remove unused time calls, stash the time in the read loop 2017-09-07 19:53:14 +01:00
Randy Mackay 1ce2a7fcee AP_Compass: resolve AK09916 driver compiler warning 2017-06-07 20:38:12 +09:00
Andrew Tridgell d946d5da6f AP_Compass: enable AK09916 inside a ICM20948
the ICM20948 has an AK09916 which can be accessed via I2C bypass
2017-06-07 17:39:45 +10:00
murata bc7b2144e7 AP_Compass: Change from magic number 0 to definition name. 2017-02-18 14:12:36 +00: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
Andrew Tridgell 62805f59fa AP_Compass: added AK09916 driver
yet another magnetometer!
2016-11-25 17:50:24 +11:00