Commit Graph
109 Commits
Author SHA1 Message Date
Lorenz Meier faa80a51e8 Strip unused header 2015-10-24 20:33:10 +02:00
Lorenz Meier 19e3da7169 LSM303D: Fixed code style 2015-10-19 13:18:47 +02:00
Lorenz Meier fa5071b3c5 Remove module.mk files to prevent confusion of adopters upgrading 2015-10-06 11:23:20 +02:00
Lorenz Meier 6ef94e0dfb Merged master into cmake-2 2015-09-20 10:33:39 +02:00
James Goppert 1d6b31d196 Switch to cmake build system. 2015-09-07 20:37:45 -04:00
Lorenz Meier 0693e186d9 LSM303D: Add option for 16g range 2015-08-19 10:28:02 +02:00
Lorenz Meier c66517bcd6 LSM303D driver: Add delta angle support 2015-08-19 10:18:53 +02:00
Mark Charlebois 1ca05aaa64 orb_advert_t changed to void * and checks changed to nullptr
The existing orb_advert_t use thoughout the code sometimes tries
to treat it as a file descriptor and there are checks for < 0
and ::close calls on orb_advert_t types which is an invalid use
of an object pointer, which is what orb_advert_t really is.

Initially I had changed the -1 initializations to 0 but it was
suggested that this should be nullptr. That was a good recommendation
but the definition of orb_advert_t had to change to void * because
you cannot initialize a uintptr_t as nullptr.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-05-27 14:42:49 -07:00
Mark Charlebois a734fc96d1 extensive orb_advert_t fixes
The calls to orb_advertise were being mishandled throughout the code.
There were ::close() calls on memory pointers, there were checks
against < 0 when it is a pointer to a object and values larger than
0x7ffffffff are valid. Some places orb_advert_t variables were
being initialized as 0 other places as -1.

The orb_advert_t type was changed to uintptr_t so the pointer value
would not be wrapped as a negative number. This was causing a failure
on ARM.

Tests for < 0 were changed to == 0 since a null pointer is the valid
representation for error, or uninitialized.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-05-27 14:41:33 -07:00
Ban Siesta 362fc205b3 drivers: various whitespace 2015-05-24 10:05:42 +01:00
Ban Siesta 21dfd0243d drivers: use new ringbuffer namespace everywhere 2015-05-24 10:04:38 +01:00
Mark Charlebois 36f5d47ed9 Merge remote-tracking branch 'upstream/master' into linux
Signed-off-by: Mark Charlebois <charlebm@gmail.com>

Conflicts:
	src/modules/commander/gyro_calibration.cpp
	src/modules/mavlink/mavlink_ftp.cpp
2015-05-16 15:04:38 -07:00
Andrew Tridgell 3ac95fb581 lsm303d: run sampling 200usec faster to avoid aliasing
this runs the sampling of the accelerometer 200usec faster than
requested and then throw away duplicates using the accelerometer
status register data ready bit. This avoids aliasing due to drift in
the stm32 clock compared to the lsm303d clock
2015-05-07 15:16:29 +10:00
Mark Charlebois 9758112e31 Use px4_config.h instead of nuttx/config.h
Modified code to use OS independent header file for config settings.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-04-20 10:55:41 -07:00
Lorenz Meier b3c45e7178 LSM303D: Temp support 2015-03-25 22:57:32 -07:00
Andrew Tridgell 374c50cab8 lsm303d: support temperature readings in lsm303d
these are read at the same rate as the mag
2015-03-17 13:44:51 +11:00
Lorenz Meier 3436f08976 LSM303D driver: Rotate before applying offsets. 2015-03-15 17:25:55 +01:00
Lorenz Meier 08aa1ebf17 LSM303D: Update comment why we report as internal always 2015-02-15 19:52:02 +01:00
Lorenz Meier a74c7c8009 LSM303D: Return argument in right format 2015-02-15 10:17:01 +01:00
Johan Jansen c7d0cb6bd7 lsm303d: Fix memory initialization and error_count not set 2015-02-10 17:46:56 +01:00
Lorenz Meier 1c2e39bc75 LSM303D: move to 0 based index 2015-02-09 22:56:23 +01:00
Thomas Gubler 8ac05dc8b0 lsm303d: fix if style 2015-02-03 18:20:43 +01:00
Thomas Gubler dedba4307d lsm303d: check for default sample rate 2015-02-03 18:13:01 +01:00
hauptmech 0b784c20c8 Save and check device id for acc and gyro calibration parameters.
Fix config utility to work with all devices of each type.
Accel, gyro and mag devices correctly set their device_id devtype.
Combo devices (mpu6000 lsm303d) now correctly return their devtype.
config util shows device id for all sensor types.
Add, save during calibration and check during preflight ID parameters for accelerometer and gyro
2015-01-31 15:53:34 +01:00
Lorenz Meier d851a630d8 Move all drivers to multi pub/sub API 2015-01-29 16:33:53 +01:00
Lorenz Meier 114465aba4 Move LSM303D mag to new multi-pub interface 2015-01-29 16:33:52 +01:00
Andrew Tridgell 500ac1443b lsm303d: detect large fixed values and report an error
we have logs where the lsm303d gets large fixed values for long
periods. This will detect that error case and raise error_count so the
higher level sensor integration code can choose another sensor
2015-01-02 16:47:48 +11:00
Andrew Tridgell 8470105f9e lsm303d: fixed build warning 2015-01-01 10:04:09 +11:00
Andrew Tridgell b5f6fedfa8 lsm303d: show all perf counters in "info" 2015-01-01 08:51:54 +11:00
Andrew Tridgell 083d9e3e69 lsm303d: check DRDY after check_registers()
this allows recovery from a state where DRDY is not set
2015-01-01 08:51:52 +11:00
Andrew Tridgell 1de7fab974 lsm303d: removed unsafe printf in interrupt context 2015-01-01 08:51:49 +11:00
Andrew Tridgell e4318345f3 lsm303d: added two more checked registers
these are key for DRDY behaviour
2015-01-01 08:51:47 +11:00
Andrew Tridgell 2ac3a6fcf4 l3m303d: added testerror command
useful for testing error handling
2015-01-01 08:51:44 +11:00
Andrew Tridgell 03c40d5d91 lsm303d: replace old register checking with new check_registers() method
this uses the same method as is now used in the MPU6000 to check that
the sensor retains its correct values

Conflicts:
	src/drivers/lsm303d/lsm303d.cpp
2014-12-30 20:55:57 +01:00
Lorenz Meier 54f296ce9d Sensor drivers: Optimize for size 2014-11-15 13:54:01 +01:00
Andrew Tridgell 94574f1a58 lsm303d: don't use DRDY when not on internal SPI bus
external SPI bus does not have accel DRDY connected

Conflicts:
	mavlink/include/mavlink/v1.0
2014-10-08 10:38:27 +02:00
Lorenz Meier c5e4f33bb3 Merge sensor_startup_cleanup 2014-07-16 15:26:22 +02:00
Lorenz Meier f162a3e8d4 LSM303D: Ensure init and constructors 2014-07-16 08:47:49 +02:00
Lorenz Meier fa6f69581e LSM303D: start handler fix and start routine review 2014-07-16 07:52:18 +02:00
Lorenz Meier 43bc2c3ef2 LSM303D: Support for tertiary sensors 2014-07-15 23:32:03 +02:00
Lorenz Meier e696ed5509 Merged master 2014-07-15 22:07:03 +02:00
Andrew Tridgell c6b0dc1ee8 lsm303d: setup device type 2014-07-12 16:26:12 +02:00
Lorenz Meier 7d15e999f1 LSM303: Fix usage function call to fit existing structure. 2014-07-08 13:52:10 +02:00
Lorenz Meier 92426c5cfc LSM303D: deal with missing external bus 2014-07-08 13:51:33 +02:00
Andrew Tridgell 1dfc7bad7b Merged lsm303d update, keeping default frequency 2014-07-08 11:51:46 +02:00
Andrew Tridgell e0dbc82d84 lsm303d: added -X option for external bus 2014-07-08 11:44:13 +02:00
Andrew Tridgell db304480d9 lsm303d: disable check_extremes code
this could trigger with a bungee launch, and could cause higher
latency due to SD card writes
2014-07-08 11:43:01 +02:00
Lorenz Meier 795f3693f2 LSM303D: Add support for multi-uORB devices 2014-06-10 15:07:42 +02:00
Liio Chen bb6b442ca6 Magnetometer data is not update
Magnetometer is not updated during a read operation, because the function "lsm303d_mag::measure" is not called.

”!!!JUST A GUESS!!!“
2014-05-29 17:42:05 +08:00
Ash Charles e5508a1aa0 Add Gumstix AeroCore device
Based on the work of Andrew Smith [1], add board configuration and device
drivers to support the Gumstix AeroCore (previously Aerodroid) board [2]. The
AeroCore is an autopilot board based on a STM32F427 similar to the FMUv2.

[1] https://github.com/smithandrewc/Firmware
[2] https://store.gumstix.com/index.php/products/585/

Signed-off-by: Ash Charles <ashcharles@gmail.com>
2014-05-13 09:41:41 -07:00