Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP] QMC5883 Magnetometer Driver #11140

Merged
merged 27 commits into from
Mar 9, 2019
Merged
Show file tree
Hide file tree
Changes from 14 commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
ae88359
created hmc5883 clone as qmc5883
dlwalter Dec 27, 2018
cac4801
changed QMC5883 I2C address to match datasheet
dlwalter Dec 28, 2018
2c9b4c0
added reset function for qmc5883
dlwalter Dec 28, 2018
a6f8efd
set control registers correctly in reset
dlwalter Dec 28, 2018
77a3378
getting mag values from device
dlwalter Dec 28, 2018
e6c2a4c
fixed missing set_range in reset
dlwalter Dec 28, 2018
885c7cd
removed extraneous PX4_INFO calls
dlwalter Dec 29, 2018
8c0a200
updated copyrights
dlwalter Jan 2, 2019
f7fba49
removed Temperature option on qmc5883 start
dlwalter Jan 15, 2019
87ee1f5
reordered report to match xyz registers
dlwalter Jan 15, 2019
1cee53c
moved driver initialization to later in rc.board to aid startup
dlwalter Jan 15, 2019
d3d942c
removed set_range and measure functions
dlwalter Jan 16, 2019
6159d23
added driver start to board configs
dlwalter Jan 16, 2019
c79b237
added temperature reading and removed calibration since QMC has no se…
dlwalter Jan 16, 2019
1435fc3
removed cal command on rc.board for v4
dlwalter Jan 16, 2019
5d6b74e
added read 0x00 to probe() to solve bootup issue
dlwalter Jan 16, 2019
cee4ec6
modifed test to send info, not error
dlwalter Jan 17, 2019
969a71e
added MAGIOSELFTEST dummy function
dlwalter Jan 17, 2019
8f813ce
removed MAGIOSELFTEST since feature is removed in master
dlwalter Jan 17, 2019
fe58980
fixed merge conflicts from master
dlwalter Jan 31, 2019
807924d
added multiple tries to probe over i2c for qmc5883
dlwalter Jan 31, 2019
f4dbd67
fixed some debug message logic for qmc5883
dlwalter Jan 31, 2019
9f44fad
fixing newline at end of file
dlwalter Jan 31, 2019
8fad778
removed rc.board files from incorrect merge
dlwalter Jan 31, 2019
cbc1614
style changes
dlwalter Feb 1, 2019
a0d09d2
Merge remote-tracking branch 'px4/master' into qmc5883-devel
dagar Mar 9, 2019
c16c3b1
boards remove qmc5883 autostart for now
dagar Mar 9, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions boards/px4/fmu-v2/default.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ px4_add_board(
lights/rgbled
#magnetometer # all available magnetometer drivers
magnetometer/hmc5883
#magnetometer/qmc5883
#mkblctrl
#pca9685
#protocol_splitter
Expand Down
1 change: 1 addition & 0 deletions boards/px4/fmu-v2/init/rc.board
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ fi

# External I2C bus
hmc5883 -C -T -X start
qmc5883 -X start
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed the calibration option on this command.

lis3mdl -X start
ist8310 -C start

Expand Down
1 change: 1 addition & 0 deletions boards/px4/fmu-v2/test.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ px4_add_board(
lights/rgbled
#magnetometer # all available magnetometer drivers
magnetometer/hmc5883
magnetometer/qmc5883
#mkblctrl
#pca9685
#protocol_splitter
Expand Down
4 changes: 4 additions & 0 deletions boards/px4/fmu-v3/init/rc.board
Original file line number Diff line number Diff line change
Expand Up @@ -44,9 +44,11 @@ fi

# External I2C bus
hmc5883 -C -T -X start
qmc5883 -X start
lis3mdl -X start
ist8310 -C start


# Internal I2C bus
hmc5883 -C -T -I -R 4 start

Expand Down Expand Up @@ -139,4 +141,6 @@ fi

px4flow start &



unset BOARD_FMUV3
1 change: 1 addition & 0 deletions boards/px4/fmu-v4/init/rc.board
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ set MIXER_AUX none

# External I2C bus
hmc5883 -C -T -X start
qmc5883 -C -X start
lis3mdl -X start
ist8310 start
bmp280 -I start
Expand Down
1 change: 1 addition & 0 deletions boards/px4/fmu-v4pro/init/rc.board
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ lis3mdl -R 0 start

# Possible external compasses
hmc5883 -C -T -X start
qmc5883 -X start

# RM3100
rm3100 start
Expand Down
1 change: 1 addition & 0 deletions boards/px4/fmu-v5/init/rc.board
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ bmi055 -G -R 10 start

# Possible external compasses
hmc5883 -C -T -X start
qmc5883 -X start

# Possible external compasses
ist8310 -C -b 1 start
Expand Down
1 change: 1 addition & 0 deletions src/drivers/drv_sensor.h
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@
#define DRV_MAG_DEVTYPE_LIS3MDL 0x05
#define DRV_MAG_DEVTYPE_IST8310 0x06
#define DRV_MAG_DEVTYPE_RM3100 0x07
#define DRV_MAG_DEVTYPE_QMC5883 0x08
#define DRV_ACC_DEVTYPE_LSM303D 0x11
#define DRV_ACC_DEVTYPE_BMA180 0x12
#define DRV_ACC_DEVTYPE_MPU6000 0x13
Expand Down
1 change: 1 addition & 0 deletions src/drivers/magnetometer/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@

add_subdirectory(bmm150)
add_subdirectory(hmc5883)
add_subdirectory(qmc5883)
add_subdirectory(ist8310)
add_subdirectory(lis3mdl)
add_subdirectory(lsm303agr)
Expand Down
44 changes: 44 additions & 0 deletions src/drivers/magnetometer/qmc5883/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
############################################################################
#
# Copyright (c) 2019 PX4 Development Team. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in
# the documentation and/or other materials provided with the
# distribution.
# 3. Neither the name PX4 nor the names of its contributors may be
# used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
#
############################################################################
px4_add_module(
MODULE drivers__qmc5883
MAIN qmc5883
STACK_MAIN 1500
COMPILE_FLAGS
SRCS
qmc5883_i2c.cpp
qmc5883_spi.cpp
qmc5883.cpp
DEPENDS
)

Loading