Commit Graph
100 Commits
Author SHA1 Message Date
Daniel Agar 588195f46c boards: px4/fmu-v4pro cleanup rc.board_sensors
- board has either an icm20602 or icm20608g, not both
 - probe all typical externally compasses
2020-04-13 15:52:45 -04:00
Daniel Agar aad2856872 tests: microbench uorb add sensor_gyro_fifo copy
- gives an idea of the cost of copying a large message
2020-04-13 14:49:39 -04:00
Daniel Agar 6c1e9c60ed tests: microbenchmarks reduce iterations and sleep inbetween 2020-04-13 14:49:39 -04:00
Daniel Agar 60836eabd5 Jenkins HIL remove px4_fmu-v4_optimized
- this was interesting to monitor, but slows down the entire build with only one pixracer on the test rack
2020-04-13 13:48:28 -04:00
Daniel Agar 66eacd24bc px4_fmu-v5_stackcheck: update stack sizes and add to Jenkins
- increase stack sizes to run cleanly under stackcheck
     - this is likely overkill for most boards, but using stackcheck to set our minimum ensures we have a very safe margin on regular builds and it's something we can currently afford
 - remove holybro_durandal-v1_stackcheck from test rack (there's only one unit)
2020-04-11 21:16:10 -04:00
Daniel Agar 7b4f6b6918 sensors/vehicle_angular_velocity: check filter based on time threshold instead of samples
- fixes #14303
2020-04-11 16:07:11 -04:00
Daniel Agar 276b2cad5a boards: fmu was renamed pwm_out 2020-04-11 14:18:55 -04:00
Daniel Agar 751b3497a0 icm20608g/icm20689: force FIFO count check sooner
The InvenSense icm20608g and icm20689 don't have a FIFO watermark interrupt, but they do have a data ready interrupt and the ability to get the current FIFO count in the same large transfer as the actual FIFO data. So instead of manually checking the FIFO count before every transfer (costs ~ 1-3% cpu) we trust the data ready counts, verify things are in sync after the large transfer (fifo count + fifo contents), and force a manual check before the next transfer if necessary.

As a precaution this change lowers the threshold for forcing a manual FIFO count check before the large transfer. Forcing the check if out of sync by 2 (or more) samples makes sense because we always do transfers in multiples of 2 (gyro samples per accel).

The other small cosmetic changes are keeping the icm20608g and icm20689 in sync (they're nearly identical).
2020-04-11 12:17:40 -04:00
Daniel Agar 322671ea27 mc_pos_control: align updates with ekf2 2020-04-10 13:04:06 -04:00
Daniel AgarandPX4 BuildBot ed0c25a562 Update submodule mavlink v2.0 to latest Thu Apr 9 20:22:33 UTC 2020
- mavlink v2.0 in PX4/Firmware (bad9b64ca281d2e8c0863738263c75888da63e38): https://github.com/mavlink/c_library_v2/commit/4b493591c4c8125c3592d406197b3b0efbe311af
    - mavlink v2.0 current upstream: https://github.com/mavlink/c_library_v2/commit/0f9e4218df24b9fa0e922307cad68e2d0e18f286
    - Changes: https://github.com/mavlink/c_library_v2/compare/4b493591c4c8125c3592d406197b3b0efbe311af...0f9e4218df24b9fa0e922307cad68e2d0e18f286

    0f9e4218 2020-04-09 PX4BuildBot - autogenerated headers for rev https://github.com/mavlink/mavlink/tree/d3d37b6ebc02ff434279864a7e146b5cd365a083

Co-authored-by: PX4 BuildBot <bot@px4.io>
2020-04-09 17:19:14 -04:00
Daniel Agar b64a5783bb Update submodule NuttX-apps to latest Thu Apr 9 20:22:38 UTC 2020
- NuttX-apps in PX4/Firmware (cf2b0a47ce64ea50e9539689b1b704cd536b9558): https://github.com/PX4/NuttX-apps/commit/91b6ad6a0d00ac107088b18588cd54d40e3cb796
    - NuttX-apps current upstream: https://github.com/PX4/NuttX-apps/commit/95e105548a2037f42bf2f13b214ae083b921ff03
    - Changes: https://github.com/PX4/NuttX-apps/compare/91b6ad6a0d00ac107088b18588cd54d40e3cb796...95e105548a2037f42bf2f13b214ae083b921ff03

95e10554 2020-03-30 Peter van der Perk - [Backport] Add CONFIG_NET_CAN support to netinit.c
e17eeb31 2020-03-28 Peter van der Perk - [Backport] netutils SocketCAN suport & candump, cansend tool
2020-04-09 17:18:33 -04:00
Daniel Agar 55fc0cbdc7 boards/px4/fmu-v4: fix internal hmc5883 start 2020-04-09 15:54:10 -04:00
Daniel Agar 74e99faedf imu/invensense: minor cleanup
- remove leftover Start()
 - remove "reset" from command line (stop + start is sufficient)
2020-04-09 09:47:30 -04:00
Daniel Agar 746b3124ab Update submodule matrix to latest Wed Apr 8 12:39:43 UTC 2020
- matrix in PX4/Firmware (222e0636c4b53ea18013f2bf0d35a798fab6ae76): https://github.com/PX4/Matrix/commit/a32892926c69ea0bad031fd9d7bfc915cc5e9b68
    - matrix current upstream: https://github.com/PX4/Matrix/commit/d613055462bcbeacfd188cbd53de56c1dbc7b94d
    - Changes: https://github.com/PX4/Matrix/compare/a32892926c69ea0bad031fd9d7bfc915cc5e9b68...d613055462bcbeacfd188cbd53de56c1dbc7b94d

d613055 2020-04-06 kamilritz - Add more assignment operators for slices
976ada4 2020-03-21 Matthias Grob - Matrix: min max comments and test style
fa7153e 2020-03-21 Matthias Grob - Matrix: omit min max nan case with same result
2020-04-08 16:25:00 -04:00
Daniel Agar a89bba470a boards: STM32F76xxx/STM32F77xxx linker add ITCM RAM and .ramfuncs handling
- this doesn't currently change anything, but gets us ready to start
experimenting with using the small amount of instruction tightly memory
on STM32F7
 - the .ramfuncs section works with NuttX CONFIG_ARCH_RAMFUNCS
2020-04-08 13:20:54 -04:00
Daniel Agar cf37be8c44 ekf2 handle accelerometer clipping
- track clipping per IMU axis and pass through to ecl/EKF
 - update ecl/EKF to include delta velocity clipping changes (PX4/ecl#663)
2020-04-07 20:11:08 -04:00
Daniel Agar 7aa7f0ed95 switch remaining boards to new InvenSense IMU drivers 2020-04-07 09:59:12 -04:00
Daniel Agar a67847aef1 Update submodule mavlink v2.0 to latest Tue Apr 7 03:32:57 UTC 2020
- mavlink v2.0 in PX4/Firmware (8eaf36226f125d8b577a1a9c4d6c6f6985a95210): https://github.com/mavlink/c_library_v2/commit/11589a51bec0e96ffe80366c387997f7c44cffa3
    - mavlink v2.0 current upstream: https://github.com/mavlink/c_library_v2/commit/4b493591c4c8125c3592d406197b3b0efbe311af
    - Changes: https://github.com/mavlink/c_library_v2/compare/11589a51bec0e96ffe80366c387997f7c44cffa3...4b493591c4c8125c3592d406197b3b0efbe311af
2020-04-07 00:12:36 -04:00
Daniel Agar ff74a2a48b new mpu6000/mpu6500/mpu9250 always schedule backup cycle if using data ready 2020-04-06 23:32:04 -04:00
Daniel Agar 0860a61fa6 new InvenSense IMU drivers review temperature sensitivities and offsets 2020-04-06 22:53:16 -04:00
Daniel Agar da383064c6 NuttX update with STM32H7 SPI DMA support
- holybro durdandal enable SPI DMA
2020-04-06 22:08:45 -04:00
Daniel Agar ad559a66a1 examples: add simple work_item example module 2020-04-06 09:43:55 -04:00
Daniel Agar 1d164c0dbd px4_work_queue: sem_wait add loop as the wait may be interrupted by a signal 2020-04-06 10:30:35 +02:00
Daniel Agar 40b1043e12 NuttX boards minor lpwork and init stack increases 2020-04-02 23:39:17 -04:00
Daniel Agar 15332a7e56 boards: reduce CONFIG_NFILE_DESCRIPTORS 20 -> 15 2020-04-01 16:17:14 -04:00
Daniel Agar aa2f3a6624 sensors: complete move to uORB::Subscription 2020-04-01 16:17:14 -04:00
Daniel Agar 7c8ab49eb9 boards: mro_ctrl-zero-f7 fix i2c
- STM32_HSI_FREQUENCY 24 MHz -> 16 MHz (required for NuttX stm32f7 i2c)
2020-04-01 14:27:33 -04:00
Daniel Agar 02f4ad61ec I2C/SPI require device type in constructor 2020-04-01 12:24:22 -04:00
Daniel Agar 04bf9afd1b CDev delete unused pub_blocked 2020-04-01 11:23:26 -04:00
Daniel Agar b3fe235129 drv_mag: delete unused MAGIOCSRANGE, MAGIOCCALIBRATE, MAGIOCEXSTRAP, MAGIOCSTEMPCOMP 2020-04-01 10:07:08 -04:00
Daniel Agar cfc087c6ad rm3100: move to PX4Magnetometer and cleanup 2020-04-01 10:07:08 -04:00
Daniel Agar a59aa865da qmc5883: move to PX4Magnetometer and cleanup 2020-04-01 10:07:08 -04:00
Daniel Agar ade52d612b lsm9ds1_mag: minor cleanup 2020-04-01 10:07:08 -04:00
Daniel Agar c9c08d00c3 lsm303agr: move to PX4Magnetometer and cleanup 2020-04-01 10:07:08 -04:00
Daniel Agar 5f6f1c554b lis3mdl: move to PX4Magnetometer and cleanup 2020-04-01 10:07:08 -04:00
Daniel Agar cf12969a29 ist8310: move to PX4Magnetometer and cleanup 2020-04-01 10:07:08 -04:00
Daniel Agar 1c333cb664 isentek/ist8308: minor cleanup 2020-04-01 10:07:08 -04:00
Daniel Agar 7e173048bb ak09916: minor cleanup 2020-04-01 10:07:08 -04:00
Daniel Agar 613168b598 hmc5883: move to PX4Magnetometer and cleanup 2020-04-01 10:07:08 -04:00
Daniel Agar 9899748d12 bmm150: move to PX4Magnetometer and cleanup 2020-04-01 10:07:08 -04:00
Daniel Agar 09ba9d62eb PX4Magnetometer: add external() getter and default temperature to NAN 2020-04-01 10:07:08 -04:00
Daniel Agar 1cc8e4dc1a distance_sensor/vl53l0x: move to PX4Rangefinder and cleanup 2020-04-01 10:06:08 -04:00
Daniel Agar baa50a1985 boards: omnibus/f4sd add board_dma_map.h 2020-04-01 10:42:09 +02:00
Daniel Agar 2e2b9a97d3 pwm_out: delete fake() test command
- we have better motor test facilities these days
2020-03-31 19:12:31 -04:00
Daniel Agar ca81175b07 rename drivers/px4fmu -> drivers/pwm_out
- split out header
2020-03-31 19:12:31 -04:00
Daniel Agar 39b47e63b5 boards: airmind mindpx-v2 switch to new mpu6000 and mpu6500 drivers 2020-03-31 16:28:45 -04:00
Daniel Agar 2b82b471c1 sensor_accel_fifo increase to 32 samples 2020-03-31 13:26:50 -04:00
Daniel Agar 59a7262c31 FW use lpos 2020-03-31 15:03:23 +03:00
Daniel Agar a38d4192ab boards: airmind mindpx-v2 fix L3GD20 DRDY pin 2020-03-30 09:21:00 -04:00
Daniel Agar 28dc225015 add SENS_EN_PAW3902 to start paw3902 optical flow sensor 2020-03-26 13:08:59 -04:00
Daniel Agar 44bec269b0 boards: update all NuttX configs CONFIG_NSH_MAXARGUMENTS 12 -> 15 2020-03-25 17:59:22 -04:00
Daniel Agar efceccd91d posix: micro_hal.h add empty px4_arch_gpiosetevent to build new Invensense drivers on linux 2020-03-25 01:05:38 -04:00
Daniel Agar 404e781cd9 px4_work_queue: increase SPI stack uniformly to silence warnings 2020-03-25 01:05:38 -04:00
Daniel Agar f4e2cd36d4 add new invensense/mpu6500 driver for airmind mindpx 2020-03-25 01:05:38 -04:00
Daniel Agar 75370ebf42 invensense/mpu9250 add ak8963 support and other minor improvements
- mag enabled with -M when starting
 - always check FIFO count before transfer
 - interupt pin set active low and latch
 - relax retry timeout if configure failed
 - improve configured empty rate (sample rate) rounding
 - fix RegisterCheck
 - check FIFO count as part of full transfer and reset or adjust timing if necessary
 - rename DRV_MAG_DEVTYPE_MPU9250 -> DRV_MAG_DEVTYPE_AK8963
2020-03-25 01:05:38 -04:00
Daniel Agar d55c3d80f3 invensense/mpu6000 refactor to be consistent with new icm20602, icm20608g, etc
- always check FIFO count before transfer even with data ready
 - interupt pin set active low and latch
 - relax retry timeout if configure failed
 - improve configured empty rate (sample rate) rounding
 - check FIFO count as part of full transfer and reset or adjust timing if necessary
2020-03-25 01:05:38 -04:00
Daniel Agar 279d06ee50 invensense/icm42688p driver minor improvements
- change default FIFO empty rate to 1 kHz (consistent with other drivers)
 - relax retry timeout if configure failed
 - improve configured empty rate (sample rate) rounding
 - check interupt status and FIFO count as part of full transfer and reset or adjust timing if necessary
2020-03-25 01:05:38 -04:00
Daniel Agar 669d2ec10b invensense/icm40609d driver minor improvements
- change default FIFO empty rate to 1 kHz (consistent with other drivers)
 - relax retry timeout if configure failed
 - improve configured empty rate (sample rate) rounding
 - check interupt status and FIFO count as part of full transfer and reset or adjust timing if necessary
2020-03-25 01:05:38 -04:00
Daniel Agar c6825aa177 invensense/icm20689 driver minor improvements
- interupt pin set active low and latch
 - relax retry timeout if configure failed
 - improve configured empty rate (sample rate) rounding
 - fix RegisterCheck
 - check FIFO count as part of full transfer and reset or adjust timing if necessary
2020-03-25 01:05:38 -04:00
Daniel Agar f5fe50f839 invensense/icm20608g driver minor improvements
- interupt pin set active low and latch
 - relax retry timeout if configure failed
 - improve configured empty rate (sample rate) rounding
 - fix RegisterCheck
 - check FIFO count as part of full transfer and reset or adjust timing if necessary
 - rename DRV_IMU_DEVTYPE_ICM20608 -> DRV_IMU_DEVTYPE_ICM20608G
2020-03-25 01:05:38 -04:00
Daniel Agar c4fbea32c1 invensense/icm20602 driver minor improvements
- interupt pin set active low and latch
 - relax retry timeout if configure failed
 - improve configured empty rate (sample rate) rounding
 - fix RegisterCheck
2020-03-25 01:05:38 -04:00
Daniel Agar a13e8e573e boards: fmu-v2/v3 rc.board_sensors remove obsolete hmc5883 argument
- try to keep fmu-v2/v3 mostly in sync
2020-03-24 09:46:20 -04:00
Daniel Agar 6fd027c4dd refactor icm40609d: use driver base class 2020-03-24 09:46:20 -04:00
Daniel Agar 6e9bc50bec refactor icm42688p: use driver base class 2020-03-24 09:46:20 -04:00
Daniel Agar 974cb30b6d nxp_rddrone-uavcan146 ignore i2c for now (platform support is incomplete) 2020-03-24 09:46:20 -04:00
Daniel Agar 532ccd18ad refactor qmc5883: use driver base class 2020-03-24 09:46:20 -04:00
Daniel Agar 8738c26426 boards: enable NuttX SPI DMA buffers
- update to NuttX with stm32f4 and stm32f7 SPI DMA internal buffers
 - remove explicit DMA buffer allocations from new IMU drivers
 - restore original BOARD_DMA_ALLOC_POOL_SIZE
 - decrease SPI DMA thresholds based on fmu-v2/v3/v4/v5 bench testing
2020-03-22 19:24:26 -04:00
Daniel Agar b73ec18abb boards: add px4_fmu-v4 and px4_fmu-v5 optimized (-O3) build variants 2020-03-22 17:50:17 -04:00
Daniel Agar 1be959cba8 InvenSense ICM-40609-D IMU driver
This is another new InvenSense sensor with max output data rate of 32 kHz (both accel & gyro), on board anti-aliasing filter, and accel range 32G. Overall quite similar to the ICM-42688-P added in #14420, but with doubled accel range and without the optional high resolution output or clock sync.
2020-03-20 13:02:13 -04:00
Daniel Agar 46e5364580 InvenSense ICM-42688-P IMU driver
This is a new InvenSense sensor with max output data rate of 32 kHz (both accel & gyro), on board anti-aliasing filter, optional higher resolution output (18 bit accel, 19 bit gyro), and clock sync.
2020-03-20 13:01:02 -04:00
Daniel AgarandPX4 BuildBot fb27d96ca1 Update submodule mavlink v2.0 to latest Fri Mar 20 00:38:07 UTC 2020
- mavlink v2.0 in PX4/Firmware (0213fd662a): https://github.com/mavlink/c_library_v2/commit/82bef70f12492a4fb17456534a3ce068f4647502
    - mavlink v2.0 current upstream: https://github.com/mavlink/c_library_v2/commit/11589a51bec0e96ffe80366c387997f7c44cffa3
    - Changes: https://github.com/mavlink/c_library_v2/compare/82bef70f12492a4fb17456534a3ce068f4647502...11589a51bec0e96ffe80366c387997f7c44cffa3

    11589a51 2020-03-19 PX4BuildBot - autogenerated headers for rev https://github.com/mavlink/mavlink/tree/5a18bf9101863e020ddb18617b2d210258c9069f

Co-authored-by: PX4 BuildBot <bot@px4.io>
2020-03-19 21:21:08 -04:00
Daniel AgarandPX4 BuildBot 6c513cf29d Update submodule GPS devices to latest Fri Mar 20 00:38:17 UTC 2020 (#14432)
- GPS devices in PX4/Firmware (daf8a9fb12097b09fa1291b16cfe88f10a53b193): https://github.com/PX4/GpsDrivers/commit/c25a8f22c43e22b7c23106470b08fb17678042ef
    - GPS devices current upstream: https://github.com/PX4/GpsDrivers/commit/0cd890ac60dbf6e535ccd966f98b85a33eddcc72
    - Changes: https://github.com/PX4/GpsDrivers/compare/c25a8f22c43e22b7c23106470b08fb17678042ef...0cd890ac60dbf6e535ccd966f98b85a33eddcc72

    0cd890a 2020-03-19 Daniel Agar - ubx: fix whitespace

Co-authored-by: PX4 BuildBot <bot@px4.io>
2020-03-19 21:20:38 -04:00
Daniel Agar e5d30c4413 Mavlink: split ESTIMATOR_STATUS and VIBRATION streams 2020-03-19 11:17:31 -04:00
Daniel AgarandPX4 BuildBot b703ffa188 Update submodule mavlink v2.0 to latest Wed Mar 18 12:38:27 UTC 2020
- mavlink v2.0 in PX4/Firmware (d6bb5b3b9e): https://github.com/mavlink/c_library_v2/commit/e8bdbcfbacccd79fc678f5c6755c8fb680021199
    - mavlink v2.0 current upstream: https://github.com/mavlink/c_library_v2/commit/82bef70f12492a4fb17456534a3ce068f4647502
    - Changes: https://github.com/mavlink/c_library_v2/compare/e8bdbcfbacccd79fc678f5c6755c8fb680021199...82bef70f12492a4fb17456534a3ce068f4647502

Co-authored-by: PX4 BuildBot <bot@px4.io>
2020-03-18 12:06:25 -04:00
Daniel Agar 0da7040cf5 beaglebone blue add empty px4_spi_buses 2020-03-18 11:55:11 -04:00
Daniel Agar df5fe85cf6 github actions add linux builds 2020-03-18 11:55:11 -04:00
Daniel Agar 1a9452e411 fw_att_control: move ecl/attitude_fw into fw_att_control module
- ecl/attitude_fw was never maintained as a standalone library
 - moving ecl/attitude_fw library into the fw_att_control module to ease further development
2020-03-15 14:14:59 -04:00
Daniel Agar 4e4fb2232e CI move NuttX bloaty checks from Jenkins to Github Actions 2020-03-15 14:06:05 -04:00
Daniel Agar 422e89b1c0 iSentek IST8308 magnetometer driver 2020-03-15 12:27:01 -04:00
Daniel Agar 64c7b4d489 parameters: handle MC_DTERM_CUTOFF -> IMU_DGYRO_CUTOFF migration 2020-03-15 09:31:45 +01:00
Daniel Agar 5fcd7932e9 mavlink: replace MavlinkOrbSubscription with uORB::Subscription
* uORB orb_stat() and update(uint64_t *time, void *dst) are now obsolete and have been deleted
 * mavlink messages add more advertised checks in streams get_size() check to improve data rate calculation across different scenarios
2020-03-14 12:52:46 -04:00
Daniel Agar 0eca583ecf sensors: move baro aggregation to new sensors/vehicle_air_data 2020-03-12 19:06:34 -04:00
Daniel Agar 093e9ba1ce mc_rate_control: use vehicle_angular_acceleration topic instead of differentiating
* mc_rate_control: use vehicle_angular_acceleration topic
* IMU_DGYRO_CUTOFF change default to 30 Hz
* improve IMU_DGYRO_CUTOFF param documentation (updated from MC_DTERM_CUTOFF)
2020-03-12 15:07:03 -04:00
Daniel Agar 2b03aa3d1b px4_fmu-v2: disable vtol_att_control to save flash 2020-03-12 14:10:39 -04:00
Daniel Agar a89b69b0ea vehicle_global_position: remove velocity fields (duplicates of local vx, vy, vz)
* attitude_estimator_q: get velocity from local position (if available)
2020-03-11 23:57:43 -04:00
Daniel Agar 5d33b9e999 delete Outback Challenge (OBC) AUTO_RTGS (datalink loss) and AUTO_RCRECOVER (rc loss) 2020-03-11 22:45:55 -04:00
Daniel Agar 0ce9e113ff boards: stm32f4/f7 enable SPI_DMATHRESHOLD=32 2020-03-11 22:08:37 -04:00
Daniel Agar aeff85322d px4_fmu-v2: leave SPI DMA disabled for now (flash space) 2020-03-11 22:08:37 -04:00
Daniel Agar c8509892a6 intel_aerofc-v1: add board_dma_map.h and enable SPI1 DMA 2020-03-11 22:08:37 -04:00
Daniel Agar 8c2ba5f39f mro_x21-777: add board_dma_map.h and enable SPI1 DMA 2020-03-11 22:08:37 -04:00
Daniel Agar 38a10fc7fc mro_x21: add board_dma_map.h and enable SPI1 DMA 2020-03-11 22:08:37 -04:00
Daniel Agar f309e3a5ba mro_ctrl-zero-f7: add board_dma_map.h and enable SPI1/SPI5 DMA 2020-03-11 22:08:37 -04:00
Daniel Agar 5660ea0fd2 av_x-v1: add board_dma_map.h and enable SPI1/SPI2 DMA 2020-03-11 22:08:37 -04:00
Daniel Agar 98108bc4da airmind_mindpx-v2: add board_dma_map.h and enable SPI1 DMA 2020-03-11 22:08:37 -04:00
Daniel Agar e24fcee214 modalai_fc-v1: add board_dma_map.h and enable SPI1/SPI2 DMA 2020-03-11 22:08:37 -04:00
Daniel Agar 01b90fefaf uvify_core: add board_dma_map.h and enable SPI1 DMA
- synced with px4_fmu-v4
2020-03-11 22:08:37 -04:00
Daniel Agar 772ddd7f5e px4_fmu-v2/v3: add board_dma_map.h and enable SPI1/SPI4 DMA 2020-03-11 22:08:37 -04:00
Daniel Agar bd16c2b4f6 px4_fmu-v5x: add board_dma_map.h and enable SPI{1,2,3} DMA 2020-03-11 22:08:37 -04:00
Daniel Agar 6ed4b6978e px4_fmu-v5: add board_dma_map.h and enable SPI1 DMA 2020-03-11 22:08:37 -04:00
Daniel Agar 6834f089cc px4_fmu-v4pro: cleanup board_dma_map.h 2020-03-11 22:08:37 -04:00