561 Commits

Author SHA1 Message Date
Beat Küng
a6ddf0e4b9 refactor sf1xx: 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
83b6f6456b refactor I2CSPIInstance: store running instances in a global linked list
instead of a static per-driver array.

Reduces BSS RAM usage by a couple of 100 Bytes (linear increase with num
drivers).

Downsides:
- a bit more runtime overhead
- less isolation, locking required
- a bit more complex
2020-03-17 23:31:17 -04:00
Beat Küng
e7f04109d9 i2c spi init + custom methods: use WorkItemSingleShot
Use it for custom methods as well (like reset), and run by default on the
work queue, since they typically access the bus.
2020-03-17 23:31:17 -04:00
Beat Küng
8c41025565 px4_work_queue: add WorkItemSingleShot
To run a specific method on a work queue and wait for it to return.
2020-03-17 23:31:17 -04:00
Beat Küng
134413233a i2c spi: extend BusCLIArguments to handle common driver arguments 2020-03-17 23:31:17 -04:00
Beat Küng
d1f5b23a5a module docs: add PRINT_MODULE_USAGE_PARAMS_I2C_{SPI_DRIVER,ADDRESS}
For SPI/I2C driver default options
2020-03-17 23:31:17 -04:00
Beat Küng
f851f65f8d i2c spi: add type to I2CSPIInstance
Needed to distinguish runtime instance types of the same driver (e.g.
bmi055 accel vs gyro).
2020-03-17 23:31:17 -04:00
SalimTerryLi
b70289c536 move __PX4_LINUX out of px4_impl_os.cmake 2020-03-17 13:20:32 -04:00
PX4 BuildBot
20a8a0231b Update submodule nuttx to latest Sun Mar 15 12:39:29 UTC 2020
- nuttx in PX4/Firmware (048c47d7e2cc686fdd4037cb33bb86ca0ac62c17): db7fb6b6c0
    - nuttx current upstream: befe53e7f1
    - Changes: db7fb6b6c0...befe53e7f1

    befe53e7f1 2020-03-12 Jari van Ewijk - [BACKPORT] NXP RDDRONE-UAVCAN boards (S32K1XX) - Clean up clock config (#557)
09a23ebf7f 2020-03-12 Jari van Ewijk - [BACKPORT] NXP S32K1XX EVB boards - clock config cleanup (#556)
6c95d5fc33 2020-03-12 Jari van Ewijk - [BACKPORT] NXP S32K1XX peripheral clock fixes (#555)
2020-03-15 13:42:45 -04:00
Lorenz Meier
8a6d444467 Enable Gazebo mock optical flow 2020-03-14 17:50:40 +01:00
Lorenz Meier
76b3c18625 Add dedicated survey camera plane model
This is to allow us to test triggering properly in SITL
2020-03-14 17:50:40 +01:00
Matthias Grob
2dccc0dcfc posix.h: remove duplicate stdint.h include 2020-03-12 17:49:37 +00:00
Daniel Agar
f9794e99f8
move hover_thrust_estimator to new module (mc_hover_thrust_estimator)
* MC_HTE: unitialize with hover_thrust parameter
* MC_HTE: constrain hover thrust setter between 0.1 and 0.9
* MC_HTE: integrate with land detector and velocity controller
* MCHoverThrustEstimator: Always publish an estimate even when not fusing measurements. This is required as the land detector and the position controller need to receive a hover thrust value.

* MC_HTE: use altitude agl threshold to start the estimator
local_position.z is relative to the origin of the EKF while dist_bottom
is above ground

Co-authored-by: bresch <brescianimathieu@gmail.com>
2020-03-11 21:20:54 -04:00
David Sidrane
82ab1413fc px4_fmu-v5:Add Manifest Entries for UAVCAN interfaces 2020-03-11 20:36:58 -04:00
Daniel Agar
9cd8bb4f88
sensors: move to WQ
Running the sensors module out of the same WQ thread as the estimator, position, and attitude controllers is a bit safer and prevents potential priority and starvation issues. There is a very small increase in latency (~50 us) between sensors and ekf2 execution (on average). This also saves a little bit of memory (~ 3 kB) and cpu (~1-1.5% depending on the board).
2020-03-11 11:34:04 -04:00
PX4 BuildBot
249ad0ced1 Update submodule nuttx to latest Wed Mar 11 12:38:18 UTC 2020
- nuttx in PX4/Firmware (ac11b36e74e27ef7054d6386f0fce62108b5f614): bf646dcf46
    - nuttx current upstream: db7fb6b6c0
    - Changes: bf646dcf46...db7fb6b6c0

    db7fb6b6c0 2020-03-05 Jari van Ewijk - [BACKPORT] S32K1xx boards - Remove unused files (should have been renamed)
2020-03-11 09:45:00 -04:00
Daniel Agar
9585055e9e
uORB: add bitset for faster orb_exists check and remove uORB::Subscription lazy subscribe hack/optimization
- add PX4 bitset and atomic_bitset with testing
 - add uORB::Subscription constructor to take ORB_ID enum
 - move orb test messages into msg/
2020-03-11 09:06:33 -04:00
Beat Küng
335623e11d SPI config: use enum to specify bus 2020-03-10 10:11:43 -04:00
Beat Küng
1851665fab boards: add new spi+i2c config
Chip-select and SPI initialization uses the new config, whereas the drivers
still use the existing defines.

The configuration in board_config.h can be removed after all drivers are
updated.
2020-03-10 10:11:43 -04:00
Beat Küng
06712450a7 i2c+spi: add module base class and bus iterators 2020-03-10 10:11:43 -04:00
Beat Küng
af15c7d945 i2c+spi: extend hw_description for I2C + SPI 2020-03-10 10:11:43 -04:00
Beat Küng
18bc6cf872 ScheduledWorkItem::ScheduleClear: remove item from runnable queue
The existing behavior is unexpected: if the work item is already on the
runnable queue, it will still be triggered after a call to ScheduleClear().
This can lead to race conditions.
2020-03-09 08:06:00 -04:00
Daniel Agar
fca7700746
Update submodule nuttx to latest Wed Mar 4 01:36:16 UTC 2020
- nuttx in PX4/Firmware (b7a83e23c5e50896bb137266cf89ff928dfaae42): d509b1edd7
    - nuttx current upstream: bf646dcf46
    - Changes: d509b1edd7...bf646dcf46

    bf646dcf46 2020-03-03 Daniel Agar - [BACKPORT] stm32h7: spi_exchange (no dma) available with CONFIG_STM32H7_SPI_DMATHRESHOLD
    f2a7ef0ade 2020-03-03 Daniel Agar - [BACKPORT] stm32f7: spi_exchange (no dma) available with CONFIG_STM32F7_SPI_DMATHRESHOLD
    7ffc59ba3d 2020-03-03 Daniel Agar - [BACKPORT] stm32: spi_exchange (no dma) available with CONFIG_STM32_SPI_DMATHRESHOLD
    d1c8fdb5fb 2020-03-02 Daniel Agar - [BACKPORT] arm/stm32h7 add STM32H7_SPI_DMATHRESHOLD
    fa8d636118 2020-03-02 Daniel Agar - [BACKPORT] stm32f76xx77xx_dma.h fix DMAMAP_SPI2_RX_2/DMAMAP_SPI2_TX_2
    762d80b217 2020-03-02 Daniel Agar - [BACKPORT] arm/stm32f7 add STM32F7_SPI_DMATHRESHOLD
    4f4bbbbf1c 2020-03-02 Daniel Agar - [BACKPORT] arm/stm32 add STM32_SPI_DMATHRESHOLD

Co-authored-by: PX4 Build Bot <bot@px4.io>
2020-03-03 20:56:48 -05:00
David Sidrane
ee220a5086 px4_fmuv5x:Update manifest for USB not present 2020-03-02 19:59:36 -05:00
David Sidrane
431f7c16c8 NuttX with PX4 Contrib backported imxrt:Call out to board to set up FlexRAM 2020-03-02 10:20:33 -08:00
David Sidrane
cad3a811d2 nxp_fmurt1062-v1:Run from OCRAM 2020-03-02 10:20:33 -08:00
David Sidrane
e12bce3a20 px4_add_board:Add Optional LINKER_PREFIX 2020-03-02 10:20:33 -08:00
TSC21
993755b24b bitmask.h: compile only if in POSIX/LINUX platforms 2020-02-28 10:59:50 +00:00
TSC21
f5000a9691 px4_platform_common: add bitmask.h for templated type safe bitmask operations 2020-02-28 10:59:50 +00:00
SalimTerryLi
77a9135036
ADC driver report back vref alone with sample count (#14136)
* Introduce "px4_arch_adc_reference_v"

* Revert "Introduce "px4_arch_adc_reference_v""

This reverts commit 93691fbbd55a1b8da8c190e225b318067d90399b.

* use structure to return sample count and vref at the same time

* Revert "use structure to return sample count and vref at the same time"

This reverts commit 9cfd1c173cda51495f766a3f678c2202d67725fd.

* Revert "Revert "Introduce "px4_arch_adc_reference_v"""

This reverts commit edb7f7603e4471163ffb0fc6fc62ad2e30336e91.

* fix missed reference

* remove unecessary channel specific vref

* Update src/drivers/drv_adc.h

Co-Authored-By: David Sidrane <David.Sidrane@Nscdg.com>

* Update src/drivers/drv_adc.h

Co-Authored-By: David Sidrane <David.Sidrane@Nscdg.com>

* Introduce BOARD_ADC_POS_REF_V

Co-authored-by: David Sidrane <David.Sidrane@Nscdg.com>
2020-02-21 06:52:45 -08:00
JaeyoungLim
e0d6f94318 Add boat(usv) sitl target 2020-02-21 00:30:15 -08:00
Daniel Agar
22499effb9 invensense icm20602 improvements
- checked register mechanism and simple watchdog
    - driver checks for errors gradually and can reconfigure itself
 - respect IMU_GYRO_RATEMAX at the driver level
 - fixed sensor INT16_MIN and INT16_MAX handling (y & z axis are flipped before publishing)
 - increased sensor_gyro_fifo max size (enables running the driver much slower, but still transferring all raw data)
 - PX4Accelerometer/PX4Gyroscope remove unnecessary memsets
2020-02-18 19:21:20 -05:00
Julian Oes
cf47c2155f
platforms: prevent stackoverflow for ekf2 sideslip
It turns out that ekf2 needs more stack when sideslip fusion fails.
Sideslip fusion is currently only enabled for fixedwing by default and
not executed in testing.
2020-02-18 16:42:16 -05:00
Daniel Agar
d7c3e1066a
uavcannode updates and px4_fmu-v4_cannode example
- drivers/uavcannode add baro, mag, gps publications
 - delete old px4_cannode-v1 board
 - add stripped down simple rcS for CAN nodes
2020-02-16 12:11:54 -05:00
Beat Küng
6b1ee7bbe2 io_timer_init.h: avoid using timer_channel, as imxrt does not have it 2020-02-13 03:49:16 -08:00
Beat Küng
ef36d70cb4 px4_arch imxrt: add hw description constexpr util methods 2020-02-13 03:49:16 -08:00
Beat Küng
8cd9afc19a imxrt io_timer: remove some fields from io_timers_t and split out channel indexes
IOMUX uses different enumeration from GPIO pin + port, so we cannot use
.gpio_out, and add a .gpio_portpin.
2020-02-13 03:49:16 -08:00
Beat Küng
d74d094940 nuttx configs: disable nuttx timers which are used for PWM output
These are not required, and to be consistent we enforce disabling them now.
2020-02-13 03:49:16 -08:00
Beat Küng
6cdf368776 stm32 io_timer: add support for 16 PWM outputs 2020-02-13 03:49:16 -08:00
Beat Küng
3217b539c6 px4_arch: add hw description constexpr util methods
These will be used in the board configurations.
2020-02-13 03:49:16 -08:00
Beat Küng
418262a131 px4_micro_hal: add PX4_MAKE_GPIO_INPUT and PX4_MAKE_GPIO_OUTPUT
Instead of using macros defined in the board config.
2020-02-13 03:49:16 -08:00
Beat Küng
685be9b3d1 io pins: avoid using GPIO_GPIOx_OUTPUT, use timer_io_channels instead
The whole system now uses timer_io_channels, which will allow the redundant
GPIO_GPIOx_OUTPUT definitions to be removed.
2020-02-13 03:49:16 -08:00
Beat Küng
62b4f3487a io timer: remove some fields from io_timers_t and split out channel indexes
- reduces amount of board configuration required
- removes the cyclic dependency between io_timers_t and timer_io_channels_t

Fixes a bug in the fmuk66-v3 config: the 2. timer has 3 channels associated
not 2.
Fixes a bug in the modelai config: the 2. timer has 4 channels associated.
2020-02-13 03:49:16 -08:00
David Sidrane
80ac80b5e4 s32k1xx:Add stubbed out chip and arch 2020-02-12 10:29:27 -05:00
Daniel Agar
0d36e5094b px4_io-v2 add to vscode variants and fix SVD file find 2020-02-10 09:40:39 +01:00
Daniel Agar
8cdbc4c593 px4iofirmware: add PX4IO_PERF define to completely disable perf counters 2020-02-10 09:40:39 +01:00
Daniel Agar
e6d7612997 cmake jlink add path hints for macos 2020-02-09 23:24:44 -05:00
PX4 BuildBot
c6c7f963ac Update submodule nuttx to latest Sat Feb 8 12:38:09 UTC 2020
- nuttx in PX4/Firmware (4b356c91f2be41dfdadb38270fab01ddb337d3c7): 7b36108b54
    - nuttx current upstream: fdf1837077
    - Changes: 7b36108b54...fdf1837077

    fdf1837077 2020-02-07 Peter van der Perk - [BACKPORT] S32K add support for Nxp drone boards (#224)
f479b26c98 2020-02-07 Peter van der Perk - [BACKPORT] imxrt added missing i2c prescale mask
26dd187034 2020-02-07 Peter van der Perk - [BACKPORT] Kinetis renamed TJA1100 to TJA110X registers
2020-02-08 13:59:26 -05:00
Daniel Duecker
36f836be79
add support for unmanned underwater vehicles (#14079)
* add support for unmanned underwater vehicles:
* airframe uuv_generic + uuv_hippocammpus including mav_type = 12 for submarines
* mixer for UUVs with X-shaped thruster setup similar to quadcopter
* add module  uuv_att_control for underwater robot attitude control
* add rc.uuv_defaults/apps for autostarting e.g. ekf2 and uuv_att_control app
2020-02-04 23:24:37 -05:00