Commit Graph
82 Commits
Author SHA1 Message Date
Lorenz Meier 808d8520b5 L3GD20 driver: Add delta angle support 2015-08-19 10:18:53 +02:00
Mark Charlebois a589d15c52 Refactored debug() and log() in CDev
These functions used vprintf which is not available on all platforms.
They also do not enable line and file debug output.

Changed to macros that preserve the output format.  Uses new macro that
can be used to implement per object, runtime selectable logging

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-08-11 12:07:06 -07:00
Lorenz Meier 50ba1f7365 merged release_v1.0.0 into master 2015-06-30 15:30:45 +02:00
Lorenz Meier 51055a16fc L3GD20: Set max offset for gyro to 25 degrees per second based on comment from mailing list about datasheet ratings. 2015-06-26 07:08:54 +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 21dfd0243d drivers: use new ringbuffer namespace everywhere 2015-05-24 10:04:38 +01:00
Lorenz Meier d906fb8f31 Merged master into linux 2015-05-19 21:00:02 +02:00
Randy Mackay a90caf7b7b l3gd20: faster gyro interrupts 2015-05-19 13:25:42 +09: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 db8dd000e3 l3gd20: follow same pattern as lsm303d for duplicate rejection 2015-05-07 15:16:34 +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 f36f43db6f L3GD20(H): driver: Rotate before applying offsets. 2015-03-15 17:25:35 +01:00
Lorenz Meier 56bc843011 L3GD20: Return argument in correct format 2015-02-15 10:17:01 +01:00
Andrew Tridgell 0801dbda38 l3gd20: checking status only makes sense if we have DRDY
it makes no sense on the external SPI bus
2015-02-11 12:48:59 +01:00
Andrew Tridgell e0ac0c4a4b l3gd20: fixed "l3gd20 test"
don't reset after test, and leave us in correct polling mode
2015-02-11 12:48:52 +01:00
Lorenz Meier 8b6ce797b4 L3GD20: Move to 0 based index 2015-02-09 22:56:22 +01:00
Thomas Gubler a7126cc61d l3gd20: fix if style 2015-02-03 18:20:21 +01:00
Thomas Gubler 90b29efebf l3gd20: 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
Andrew Tridgell 7864958f1c l3gd20: fixed build warning 2015-01-01 10:04:07 +11:00
Andrew Tridgell 5c1da70d0c l3gd20: fixed reporting of error count 2015-01-01 08:51:42 +11:00
Andrew Tridgell 1bb3974c84 l3gd20: check DRDY after check_registers() is called
this allows us to recover from an error that disables data ready
2015-01-01 08:51:40 +11:00
Andrew Tridgell 8db2066151 l3gd20: removed printf in interrupt context
this is not safe
2015-01-01 08:51:37 +11:00
Andrew Tridgell 353ea9beac l3gd20: added testerror command
useful for testing error handling
2015-01-01 08:51:34 +11:00
Andrew Tridgell a8cea3a4da l3gd20: use the I2C disable bit on l3gd20H
this seems to prevent a mpu6000 reset from causing an issue on the
l3gd20H
2014-12-30 20:55:57 +01:00
Andrew Tridgell b455d647b2 l3gd20: added "l3gd20 regdump" command 2014-12-30 20:55:57 +01:00
Andrew Tridgell ca47952281 l3gd20: added register checking
this checks at runtime that key registers have correct values
2014-12-30 20:55:57 +01:00
Lorenz Meier c600a7fbd2 L3GD20: Fix typo 2014-11-03 15:37:24 +01:00
Lorenz Meier 06df0f23a3 L3GD20: Output gyro temperature in report 2014-11-03 12:56:35 +01:00
Lorenz Meier c5e4f33bb3 Merge sensor_startup_cleanup 2014-07-16 15:26:22 +02:00
Lorenz Meier 5baa3690e0 L3GD20: Ensure init and constructors 2014-07-16 08:48:10 +02:00
Lorenz Meier c2f97e628c L3GD20 driver: stack size adjustments of start handler and start return review / comments 2014-07-16 07:51:47 +02:00
Lorenz Meier 65367f7a99 L3GD20: Support for up to three gyros 2014-07-15 23:16:04 +02:00
Lorenz Meier e696ed5509 Merged master 2014-07-15 22:07:03 +02:00
Lorenz Meier 812d326912 L3GD20: Fix usage function call to fit existing structure. 2014-07-08 13:52:42 +02:00
Andrew Tridgell 4271634585 l3gd20: fixed a build warning 2014-07-08 12:03:09 +02:00
Andrew Tridgell a049f0841d Merged L3GD20 orientation flag while keeping original bus speed 2014-07-08 11:56:45 +02:00
Andrew Tridgell e7360f4016 l3gd20: added -X switch for external bus 2014-07-08 11:44:06 +02:00
Lorenz Meier c35a25e70a L3GD20: Add support for multi uORB topics 2014-06-10 15:08:21 +02:00
Ash Charles cbc559b6d6 [l3gd20] Make gyro orientation board-overridable
As discussed [1], provide a default SENSOR_BOARD_ROTATION
(270 degrees as this seems most common) and let boards override it
as necessary.

[1] https://github.com/gumstix/m4-firmware/commit/7d0850a710b3ac9e9e165beb36389577d0e5adcb#commitcomment-6315550

Signed-off-by: Ash Charles <ashcharles@gmail.com>
2014-05-14 09:19:30 -07:00
Ash Charles 7d0850a710 [l3gd20] Style fixes for l3g4200d integration
As requested here [1], this fixes some of the style errors
introduced with the addition of l3g4200d support to the l3gd20
driver.  Gyro orientation is set conditionally for the aerocore
board.

[1] https://github.com/PX4/Firmware/pull/937

Signed-off-by: Ash Charles <ashcharles@gmail.com>
2014-05-13 14:00:44 -07:00
Ash Charles 3b72e31e83 [l3gd20] Add support for L3G4200D chip
The L3G4200D chip is very similar to the L3GD20[H] parts and can use
the same driver with minor adjustments.  There are four differences:
 * WHO_AM_I register is 0xD3 (not 0xD4 or 0xD7):
   - added an extra case to the driver probe
 * Sampling rates are marginally different:
   - setting sampling rate now depends on the detected chip
 * I2C address range is different:
   - no changes as the driver doesn't support i2c access
 * the L3G4200D has a self-test function:
   - no changes---chose not to implement feature in driver

Signed-off-by: Ash Charles <ashcharles@gmail.com>
2014-05-13 10:01:17 -07:00
Lorenz Meier d199710651 Fixed up init sequence of all sensors - we can publish in interrupt context, but not advertise! All advertisements now contain valid data 2014-01-14 15:40:46 +01:00
Lorenz Meier 3c7766db6c Support for publication blocking: L3GD20(H) 2014-01-12 11:54:10 +01:00
Lorenz Meier f4ac204f46 Cranking up bus speeds for all sensors to achievable 10.4 MHz, will cut the bus lock time to half 2013-12-15 18:32:46 +01:00
Andrew Tridgell 8f90efa312 l3gd20: print more perf counters and make DRDY usage clearer 2013-12-13 11:19:18 +01:00
Andrew Tridgell 17502cbde4 l3gd20: fixed a warning 2013-12-13 11:18:59 +01:00
Andrew Tridgell 893d66d961 l3gd20: added rescheduling and error checking 2013-12-10 11:40:06 +01:00