Commit Graph
100 Commits
Author SHA1 Message Date
Andrew Tridgell 9817922bf9 FMUv2: switch debug console and 2nd GPS
this allows a normal GPS cable to be used for the 2nd GPS, making
dual-GPS setups easier
2014-03-04 19:33:16 +01:00
Andrew Tridgell a7012a5418 tests: added "tests file2" filesystem test
this is useful for testing for filesystem corruption on cluster
boundaries
2014-03-04 09:01:30 +01:00
Andrew Tridgell b0c60296f5 FMUv2: fixed UART3 flow control pins 2014-02-10 10:08:50 +01:00
Andrew Tridgell 0dc7f223ea FMUv2: fixed UART3 flow control pins 2014-02-10 10:08:19 +01:00
Andrew Tridgell e7e3e132ad FMUv2: push SPI2 GPIO speed up to 50MHz as well 2014-01-29 13:17:37 +01:00
Andrew Tridgell 6b709e21d3 FMUv2: set SPI GPIO pins on bus 1 to 50MHz
this solves the ms5611 issue related to temperature. We now need to
test if it is OK with all sensors
2014-01-29 13:17:24 +01:00
Andrew Tridgell d8c1131f1e px4io: improved reliability of forceupdate re-starting px4io
this adds a 0.1s delay after update to give px4io time to boot. It
removes the need for the user to reboot after an IO update
2014-01-24 12:35:19 +01:00
Andrew Tridgell 4524fe3e48 px4fmu: added PWM_SERVO_SET_COUNT API
this allows the balance between PWM channels and GPIOs to be changed
after the main flight code has started, which makes it possible to
change the balance with a parameter in APM
2014-01-23 21:41:07 +01:00
Andrew Tridgell dda50c62bf hmc5883: much faster calibration code with bug fixes
this fixes two bugs in "hmc5883 calibrate" and also makes it much
faster, so it can be run on every boot. It now uses the correct 2.5Ga
range when calibrating, and fixes the expected values for X/Y/Z axes

The basic calibration approach is similar to the APM2 driver, waiting
for 10 good samples after discarding some initial samples. That allows
the calibration to run fast enough that it can be done on every boot
without causing too much boot delay.
2014-01-23 21:40:29 +01:00
Andrew Tridgell e5ad3c31e0 mtd: added "mtd readtest" and "mtd rwtest"
this allows for verification of MTD operation on startup
2014-01-16 07:58:45 +01:00
Andrew Tridgell ff59aa9a0f mtd: use new MTDIOC_SETSPEED ioctl
set SPI speed to 10MHz
2014-01-16 07:57:32 +01:00
Andrew Tridgell 778cbcb5cc mtd: fixed creation and erase of a single partition 2014-01-15 09:33:58 +01:00
Andrew Tridgell f30ae8c9f3 Added MTD erase command 2014-01-14 07:32:34 +01:00
Andrew Tridgell 94b539dfdd px4io: enable power on Spektrum connector on init 2014-01-07 09:36:33 +01:00
Andrew Tridgell d6088efd34 ms5611: report P and T in ms5611 info 2014-01-07 09:34:32 +01:00
Andrew Tridgell 3be1a5182d FMUv1: use larger CDCACM buffer size for faster log transfer on FMUv1 2014-01-07 09:33:39 +01:00
Andrew Tridgell 1f564a95ee meas_airspeed: avoid trivial dependency on math lib
including the math lib adds a huge amount to flash usage
2014-01-07 09:33:10 +01:00
Andrew Tridgell d4d2571161 FMUv2: enable RXDMA on 2nd GPS port and debug console
This should reduce the chance of lost data on these ports due to high
interrupt latency
2014-01-07 09:32:49 +01:00
Andrew Tridgell c4fc730aca FMUv2: make all UARTs use 512 byte buffer, 2048 for CDCACM output
this is important when using UARTs for things like secondary GPS
modules, which may produce large enough transfers that 128 bytes is
not enough.

The 2048 buffer for CDCACM transmit makes mavlink log and parameter
transfer faster
2014-01-07 09:32:23 +01:00
Andrew Tridgell 1a13e66aab px4iofirmware: make forceupdate more reliable
this schedules a reboot rather than rebooting immediately, which means
the FMU gets an ACK for its reboot operation, preventing it from
timing out waiting for the ACK. That makes the timing of the reboot
more consistent, which makes it more reliable for forceupdate
2014-01-07 09:30:56 +01:00
Andrew Tridgell bccf65cc28 mpu6000: disable interrupts during initial reset
this seems to avoid a problem where the mpu6000 doesn't startup
correctly if other devices are transferring at the same time.
2013-12-16 15:06:45 +01:00
Andrew Tridgell c46bd8b041 Enabled DMA on both telemetry ports and GPS 2013-12-13 11:26:16 +01:00
Andrew Tridgell 5b7d1af5d8 Merged crccheck command 2013-12-13 11:22:14 +01:00
Andrew Tridgell 6016fbe55d Merged PX4IO crc checks and force update 2013-12-13 11:21:00 +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 e808e015dd LowPassFilter: allow for filtering to be disabled
using bandwidth of 0 gives no filtering
2013-12-13 11:19:08 +01:00
Andrew Tridgell 17502cbde4 l3gd20: fixed a warning 2013-12-13 11:18:59 +01:00
Andrew Tridgell cf78440ee6 drv_hrt: added note on why an uninitialised hrt_call is safe 2013-12-10 12:07:03 +01:00
Andrew Tridgell d43e3394b0 l3gd20: added rescheduling and error checking 2013-12-10 12:06:56 +01:00
Andrew Tridgell 91870953d9 mpu6000: treat all zero data from mpu6k as bad 2013-12-10 12:06:48 +01:00
Andrew Tridgell 96881d8810 ms5611: check for all zero in the prom
when SPI CLK fails we get all zero data
2013-12-10 12:06:41 +01:00
Andrew Tridgell f0d84d4826 mpu6000: close fds before exit 2013-12-10 12:06:34 +01:00
Andrew Tridgell acd0a70dca lsm303d: close fds before exit 2013-12-10 12:06:25 +01:00
Andrew Tridgell 09ece4306e l3gd20: close fds before exit 2013-12-10 12:06:18 +01:00
Andrew Tridgell 1fc122562c mpu6000: use register_class_devname() 2013-12-10 12:06:11 +01:00
Andrew Tridgell 02e7f7fa85 lsm303d: use register_class_devname() 2013-12-10 12:06:02 +01:00
Andrew Tridgell 1d5f0a1433 l3gd20: use register_class_devname() 2013-12-10 12:05:55 +01:00
Andrew Tridgell c5097a6561 hmc5883: use register_class_devname() 2013-12-10 12:05:42 +01:00
Andrew Tridgell 6145e69fc6 device: added register_class_devname() API
this allows drivers to register generic device names for a device
class, with automatic class instance handling
2013-12-10 12:05:36 +01:00
Andrew Tridgell f24479c27a lsm303d: dump I2C control registers in regdump 2013-12-10 12:05:29 +01:00
Andrew Tridgell 0456ee2364 ms5611: give cleaner SPI traces
this makes logic traces cleaner by zeroing extra bytes written
2013-12-10 12:05:07 +01:00
Andrew Tridgell bc6ddb971f ms5611: removed unused variable 2013-12-10 12:05:00 +01:00
Andrew Tridgell 7e30941475 ms5611: change bus speed to 5MHz
this gives 5MHz SPI bus speed (by asking for 6MHz due to timer
granularity).

Tests with a logic analyser show that the ms5611 is actually more
reliable at 5MHz than lower speeds
2013-12-10 12:04:52 +01:00
Andrew Tridgell 30ff61fa90 lsm303d: use DRDY pins to automatically reschedule measurements
this prevents double reads of sensor data, and missing samples from
the accel
2013-12-10 12:04:46 +01:00
Andrew Tridgell 0e97c288bb px4fmu2: enable SPI sensor DRDY pins 2013-12-10 12:04:39 +01:00
Andrew Tridgell 4956feffdf drv_hrt: added hrt_call_init() and hrt_call_delay() APIs
hrt_call_init() can be used to initialise (zero) a hrt_call structure
to ensure safe usage. The hrt_call_every() interface calls this
automatically.

hrt_call_delay() can be used to delay a current callout by the given
number of microseconds
2013-12-10 12:04:26 +01:00
Andrew Tridgell 513d014f03 l3gd20: added retries to disable_i2c() 2013-12-10 12:04:20 +01:00
Andrew Tridgell 24a243843e lsm303d/l3gd20: change filters to 50Hz analog on-chip filters
after discussion with Leonard these analog on-chip filters should be
at 50Hz
2013-12-10 12:04:13 +01:00
Andrew Tridgell 0a83772c0d l3gd20: use highest possible on-chip filter bandwidth
this allows the software filter to do its job properly
2013-12-10 12:04:05 +01:00
Andrew Tridgell f0e50fc87a lsm303d: init filter to 773 Hz 2013-12-10 12:03:58 +01:00
Andrew Tridgell 2de588e861 lsm303d: changed tones for accel fail to 3 tones
distinct tones for init fail, post-boot fail and recovery
2013-12-10 12:00:55 +01:00
Andrew Tridgell c46ab017e1 lsm303d: make log distinctive with i2c disable included 2013-12-10 12:00:46 +01:00
Andrew Tridgell 51a1ad48c5 FMUv2: don't config ADC pins that are now used for MPU6k CS and other uses 2013-12-10 12:00:36 +01:00
Andrew Tridgell aeba9e5c1e FMUv2: change CS pins to 2MHz
this gives cleaner traces
2013-12-10 12:00:27 +01:00
Andrew Tridgell 032c450d15 lsm303d: cleanup logic traces by pre-zeroing all transfers 2013-12-10 12:00:17 +01:00
Andrew Tridgell a2b31118cb lsm303d: get cleaner logic traces by gathering all regs more regularly 2013-12-10 12:00:08 +01:00
Andrew Tridgell 7c9d92a5d6 lsm303d: added I2C disable based on method from ST engineering support 2013-12-10 12:00:02 +01:00
Andrew Tridgell 9a169d8ef4 l3gd20: added I2C disable based on method from ST engineering support 2013-12-10 11:59:54 +01:00
Andrew Tridgell 44b2543d2d FMUv2: set MPU6000 CS as initially de-selected 2013-12-10 11:59:48 +01:00
Andrew Tridgell 3ce14497a1 FMUv2: added define for MPU DRDY pin 2013-12-10 11:59:29 +01:00
Andrew Tridgell b927974a97 FMUv2: added support for MPU6000 on v2.4 board 2013-12-10 11:59:23 +01:00
Andrew Tridgell fe4b95f9d5 lsm303d: zero-fill register reads 2013-12-10 11:59:13 +01:00
Andrew Tridgell ea33a19c8f lsm303d: show regs at both high and low bus speed on error 2013-12-10 11:59:06 +01:00
Andrew Tridgell 4ce4b8a174 lsm303d: always log first ARB and REG values 2013-12-10 11:59:00 +01:00
Andrew Tridgell 5ef91d694b lsm303d: log mag regs too 2013-12-10 11:58:53 +01:00
Andrew Tridgell 671447ce2c lsm303d: fixed TEMP_H register define 2013-12-10 11:58:45 +01:00
Andrew Tridgell cdaafff6e4 lsm303d: added detailed logging of accels on extremes
this will log accel values and registers to /fs/microsd/lsm303d.log if
any extreme values are seen
2013-12-10 11:58:39 +01:00
Andrew Tridgell 50d5241985 px4io: moved blue heartbeat LED to main loop
this allows us to tell if the main loop is running by looking for a
blinking blue LED
2013-12-10 11:58:29 +01:00
Andrew Tridgell 97af3d2204 mpu6000: change bus speed based on registers being accessed
this ensures we follow the datasheet requirement of 1MHz for general
registers and up to 20MHz for sensor and int status registers
2013-12-10 11:58:21 +01:00
Andrew Tridgell 8df4d636ab SPI: added set_frequency() API
this allows the bus speed to be changed on the fly by device
drivers. This is needed for the MPU6000
2013-12-10 11:58:15 +01:00
Andrew Tridgell 415417196b lsm303d: print more registers in "lsm303d regdump" 2013-12-10 11:58:08 +01:00
Andrew Tridgell af049f7cf8 lsm303d: define some more register addresses 2013-12-10 11:58:01 +01:00
Andrew Tridgell 93f3398dfe lsm303d: added 'lsm303d regdump' command
useful for diagnosing issues
2013-12-10 11:57:54 +01:00
Andrew Tridgell 1b1aa0edea lsm303d: use DRDY pins to automatically reschedule measurements
this prevents double reads of sensor data, and missing samples from
the accel
2013-12-10 11:48:44 +01:00
Andrew Tridgell b3f4b0a240 drv_hrt: added note on why an uninitialised hrt_call is safe 2013-12-10 11:40:51 +01:00
Andrew Tridgell 893d66d961 l3gd20: added rescheduling and error checking 2013-12-10 11:40:06 +01:00
Andrew Tridgell 2b491a7954 mpu6000: treat all zero data from mpu6k as bad 2013-12-10 11:39:50 +01:00
Andrew Tridgell 8744aa7536 ms5611: check for all zero in the prom
when SPI CLK fails we get all zero data
2013-12-10 11:39:28 +01:00
Andrew Tridgell 39b40e41c2 mpu6000: close fds before exit 2013-12-10 11:39:20 +01:00
Andrew Tridgell 038ec194ae lsm303d: close fds before exit 2013-12-10 11:39:14 +01:00
Andrew Tridgell 1bac7e7f8b l3gd20: close fds before exit 2013-12-10 11:39:07 +01:00
Andrew Tridgell b55403c551 mpu6000: use register_class_devname() 2013-12-10 11:38:30 +01:00
Andrew Tridgell e334377e6c lsm303d: use register_class_devname() 2013-12-10 11:38:23 +01:00
Andrew Tridgell 5a88dc02a7 l3gd20: use register_class_devname() 2013-12-10 11:38:10 +01:00
Andrew Tridgell 5ee41bc083 hmc5883: use register_class_devname() 2013-12-10 11:37:59 +01:00
Andrew Tridgell b2b9665e44 device: added register_class_devname() API
this allows drivers to register generic device names for a device
class, with automatic class instance handling
2013-12-10 11:31:04 +01:00
Andrew Tridgell 895dc3a2bb lsm303d: dump I2C control registers in regdump 2013-12-10 11:30:53 +01:00
Andrew Tridgell 0349937a82 lsm303d: added detailed logging of accels on extremes
this will log accel values and registers to /fs/microsd/lsm303d.log if
any extreme values are seen
2013-12-10 11:30:01 +01:00
Andrew Tridgell 70e56a3d54 px4fmu2: enable SPI sensor DRDY pins 2013-12-10 11:03:43 +01:00
Andrew Tridgell 53f2dc8296 drv_hrt: added hrt_call_init() and hrt_call_delay() APIs
hrt_call_init() can be used to initialise (zero) a hrt_call structure
to ensure safe usage. The hrt_call_every() interface calls this
automatically.

hrt_call_delay() can be used to delay a current callout by the given
number of microseconds
2013-12-10 11:03:31 +01:00
Andrew Tridgell 86ec1c37fa l3gd20: added retries to disable_i2c() 2013-12-10 11:03:12 +01:00
Andrew Tridgell 476070510e lsm303d/l3gd20: change filters to 50Hz analog on-chip filters
after discussion with Leonard these analog on-chip filters should be
at 50Hz
2013-12-10 11:02:49 +01:00
Andrew Tridgell b0bb5a3450 ms5611: change bus speed to 5MHz
this gives 5MHz SPI bus speed (by asking for 6MHz due to timer
granularity).

Tests with a logic analyser show that the ms5611 is actually more
reliable at 5MHz than lower speeds
2013-12-10 11:01:53 +01:00
Andrew Tridgell a52e70ca93 ms5611: removed unused variable 2013-12-10 11:01:33 +01:00
Andrew Tridgell 3f0f34a4c7 ms5611: give cleaner SPI traces
this makes logic traces cleaner by zeroing extra bytes written
2013-12-10 11:01:20 +01:00
Andrew Tridgell edc5b68499 l3gd20: use highest possible on-chip filter bandwidth
this allows the software filter to do its job properly
2013-12-04 07:08:23 +01:00
Andrew Tridgell b2119839bd lsm303d: init filter to 773 Hz 2013-12-04 07:08:05 +01:00
Andrew Tridgell ba8399780a init.d: added 3dr_skywalker airframe config
params not tuned yet, but servos in the right direction
2013-12-01 07:57:22 +11:00
Andrew Tridgell bdb462379a FMUv2: don't config ADC pins that are now used for MPU6k CS and other uses 2013-11-30 20:21:51 +11:00
Andrew Tridgell 19853f87a2 FMUv2: change CS pins to 2MHz
this gives cleaner traces
2013-11-30 20:21:44 +11:00