Commit Graph

5338 Commits

Author SHA1 Message Date
Daniel Agar b73ec18abb boards: add px4_fmu-v4 and px4_fmu-v5 optimized (-O3) build variants 2020-03-22 17:50:17 -04:00
JacobCrabill 1e5784609f UAVCAN Sensors: Improve error handling
Also add new 'generic' device types for UAVCAN sensors

Other misc. cleanup and style changes.
2020-03-21 12:39:29 -04:00
Jacob Crabill 693a47fca3 Update src/drivers/uavcan/sensors/baro.cpp
Use absolute-zero constant instead of 273.15f

Co-Authored-By: Daniel Agar <daniel@agar.ca>
2020-03-21 12:39:29 -04:00
JacobCrabill 4c8cfa140a UAVCAN: Overhaul SensorBridge drivers
Supposedly multiple sensor callbacks were supported; in reality, this
was not the case, as the mag SensorBridge in particular can only
calibrate one compass, leading to a race condition on which compass
appears first on the bus to get published and calibrated (with no
warning to the user that the 'wrong' compass is being used).

For sensors with existing generic driver classes (baro and mag) the
sensor bridges use these classes for the driver registration, and uORB
publication, and calibration interface (ioctl) handling.
2020-03-21 12:39:29 -04:00
JacobCrabill 79dc313260 uavcan: Add device IDs to baro, flow publishers
Can now see proper UAVCAN bus and unique device ID for barometer
instances; optical flow will also have the UAVCAN node ID assigned as
sensor ID.
2020-03-21 12:39:29 -04:00
JacobCrabill 71e4a36ba4 UAVCAN: GNSS sensor bridge: Support multiple pubs
UavcanGnssBridge did not support more than 1 GNSS callback/publisher.
This has now been fixed; it works the same as the baro, mag, and flow
sensor bridges.  The EKF2 still doesn't support more than 2 GPS
publishers, however.
2020-03-21 12:39:29 -04:00
Beat Küng 336745f9f7 tfmini: reduce sampling rate from 10kHz to 143Hz
10kHz sampling seems excessive, given that the sensor is expected to output
at 100Hz.

Also don't reschedule immediately in case we have not received any data.
2020-03-21 12:00:09 -04:00
Jacob Dahl b566de2c36 uavcannode: GPS add timestamp, covariance, and corrected integer overflow on lat/lon 2020-03-21 11:43:56 -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
SalimTerryLi dc8e775d8f ADC: replace ioctl with uorb message (#14087) 2020-03-20 11:23:32 +01:00
Daniel Agar 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
bazooka joe 7b37f329f0 batt_smbus fixes
fixed wrong calculation of max_cell_voltage
adding missed max_cell_voltage_delta
some code beautify
2020-03-19 09:34:02 +01:00
PX4 BuildBot 640c245c44 Update submodule devices to latest Wed Mar 18 12:38:39 UTC 2020
- devices in PX4/Firmware (5ba8a9f62ff93843185979b3881eb7125ffc42cc): https://github.com/PX4/GpsDrivers/commit/781d4f125580d88d24add83b97017e6d771d757f
    - devices current upstream: https://github.com/PX4/GpsDrivers/commit/c25a8f22c43e22b7c23106470b08fb17678042ef
    - Changes: https://github.com/PX4/GpsDrivers/compare/781d4f125580d88d24add83b97017e6d771d757f...c25a8f22c43e22b7c23106470b08fb17678042ef

    c25a8f2 2020-03-16 Nicolas Martin - ubx: fix baud rate search
2020-03-18 12:05:16 -04:00
Beat Küng d6bb5b3b9e i2c spi buses: enforce drivers to set default SPI/I2C bus frequency
Not a lot of drivers use the global default, which is somewhat arbitrary.
2020-03-17 23:31:17 -04:00
Beat Küng 8ebde51648 refactor hmc5883: use driver base class
Removes the calibration on startup, as these values were overwritten by
the system calibration values anyway.
So the only difference is that if all calibration scales were equal to 1,
the driver startup would have failed.
2020-03-17 23:31:17 -04:00
Beat Küng 8f3ba81c4a refactor atxxxx: use driver base class
and increase update rate to 20Hz
2020-03-17 23:31:17 -04:00
Beat Küng 20db735d77 refactor ak09916: use driver base class 2020-03-17 23:31:17 -04:00
Beat Küng 47b329cc54 refactor bmm150: use driver base class 2020-03-17 23:31:17 -04:00
Beat Küng e4bf535595 refactor bst telemetry: use driver base class 2020-03-17 23:31:17 -04:00
Beat Küng fb6ce09dc4 refactor pcf8583: use driver base class 2020-03-17 23:31:17 -04:00
Beat Küng bb4ff04caf refactor irlock: use driver base class 2020-03-17 23:31:17 -04:00
Beat Küng 1710cd9648 refactor px4flow: use driver base class 2020-03-17 23:31:17 -04:00
Beat Küng b6119c71df refactor paw3902: use driver base class 2020-03-17 23:31:17 -04:00
Beat Küng 82f92b56db batt_smbus: use driver base class 2020-03-17 23:31:17 -04:00
Beat Küng ec2de33547 lights: use driver base class 2020-03-17 23:31:17 -04:00
Beat Küng 692d262e0e refactor voxlpm: use driver base class 2020-03-17 23:31:17 -04:00
Beat Küng 832ccd262e refactor ina226: use driver base class 2020-03-17 23:31:17 -04:00
Beat Küng d6b9cfa3e2 pga460: fix documentation 2020-03-17 23:31:17 -04:00
Beat Küng 68ef14002a differential_pressure drivers: allow multiple instances of each driver
- the device path needs to be removed, as startup fails if it already
  exists
- sdp3x broadcasts a reset on startup, so do it only for the first I2C
  address
2020-03-17 23:31:17 -04:00
Beat Küng 3b7b2dc871 differential_pressure sensors: use driver base class 2020-03-17 23:31:17 -04:00
Beat Küng 0924ff7fcf refactor vl53lxx: use driver base class 2020-03-17 23:31:17 -04:00
Beat Küng 83b367f000 refactor teraranger: use driver base class 2020-03-17 23:31:17 -04:00
Beat Küng 5a26f06f8a fix sf0x: check if device port is given
otherwise we risk dereferencing a null pointer
2020-03-17 23:31:17 -04:00
Beat Küng bbe15aa61a refactor srf02: use driver base class 2020-03-17 23:31:17 -04:00
Beat Küng a6ddf0e4b9 refactor sf1xx: use driver base class 2020-03-17 23:31:17 -04:00
Beat Küng f743585160 refactor mb12xx: use driver base class 2020-03-17 23:31:17 -04:00
Beat Küng 7e3f40d1c2 refactor mappydot: use driver base class 2020-03-17 23:31:17 -04:00
Beat Küng 1b1e1ba31f refactor ll40ls: use driver base class 2020-03-17 23:31:17 -04:00
Beat Küng df99555132 refactor ll40ls: split I2C and PWM into separate drivers
- there was almost nothing shared
- it will fit better into the updated I2C driver structure
2020-03-17 23:31:17 -04:00
Beat Küng 081ab729aa refactor lps25h: use driver base class 2020-03-17 23:31:17 -04:00
Beat Küng dc5ffb43a3 refactor mpl3115a2: use driver base class 2020-03-17 23:31:17 -04:00
Beat Küng d81fedfcfa refactor lps22hb: use driver base class 2020-03-17 23:31:17 -04:00
Beat Küng 83a3deb9da refactor dps310: use driver base class 2020-03-17 23:31:17 -04:00
Beat Küng 985bb2adc9 refactor bmp388: use driver base class 2020-03-17 23:31:17 -04:00
Beat Küng aeadf54a74 refactor bmp280: use driver base class 2020-03-17 23:31:17 -04:00
Beat Küng dbb53044ce refactor ms5611: use driver base class
Also: remove device type auto-detection as it will not work with
together with the new SPI board config (which specifies a specific
device type)
2020-03-17 23:31:17 -04:00
Beat Küng 22a38453ab refactor bmi055: use driver base class 2020-03-17 23:31:17 -04:00
Beat Küng 969a77f889 refactor mpu6000: use driver base class 2020-03-17 23:31:17 -04:00
Beat Küng be0a205438 refactor ist8310: use driver base class 2020-03-17 23:31:17 -04:00