Commit Graph

929 Commits

Author SHA1 Message Date
David Sidrane 329ed6e273 px4_fmu-v5/v5x: Re-enable TXDMA 2020-08-11 12:27:28 -04:00
Daniel Leonard Robinson fa4818e467
vehicles: add new vehicle type: Airship (#14862)
Co-authored-by: Anton Erasmus <anton@flycloudline.com>
Co-authored-by: Beat Küng <beat-kueng@gmx.net>
2020-08-10 08:52:51 +02:00
Daniel Agar fbc8e1b09e boards: mRo X2.1-777 fixes
- ardupilot bootloader compatibility (first 3 sectors)
 - clock tree fixes
 - start mavlink
 - start mpu9250 magnetometer (only onboard mag)
 - fixes https://github.com/PX4/Firmware/issues/15466
2020-08-09 14:24:49 -04:00
Daniel Agar e16c8fa345
boards: add new Holybro Pix32v5 2020-08-09 11:48:38 -04:00
Igor Mišić f5283e0da1 spracing_h7extreme: OSD enabled with added internal SPI bus flag 2020-08-04 19:07:15 -04:00
Beat Küng ca189fefb7 v5x: use board-specific camera capture pin PI0 2020-08-04 13:37:40 +02:00
Beat Küng 316085c154 camera_capture: remove board-specific ifdef 2020-08-04 13:37:40 +02:00
Daniel Agar a93052f9b2 boards/spracing/h7extreme: delete unused stackcheck build 2020-08-03 15:56:33 -04:00
Igor Mišić 7eaa48e36f
New board: SP Racing H7 Extreme
Authored-by: igor.misic <igor.misic@rimac@automobili.hr>
2020-08-03 15:32:58 -04:00
David Sidrane e67486d603 nxp:Add support for rev E HW nxp_fmuk66-e 2020-07-31 09:46:27 -04:00
David Sidrane f8b6de24c7 nxp_fmurt1062-v1:Assign board_id 2020-07-31 09:46:27 -04:00
Daniel Agar cfbf69f2a7
boards: rename Hex -> CubePilot
- hex_cube-orange_default -> cubepilot_cubeorange_default
 - hex_cube-yellow_default -> cubepilot_cubeyellow_default
2020-07-26 13:55:41 -04:00
Daniel Agar 62fe6d59cc
boards: hex cube yellow fix STM32F7 selection (STM32F765II -> STM32F777VI) 2020-07-24 12:03:25 -04:00
Mirko Denecke 7ac66bae4f hex io firmware remove double definition of GPIO_HEATER_OFF 2020-07-23 09:41:05 -04:00
Mirko Denecke b7389119b3 px4 io firmware remove double definition of GPIO_HEATER_OFF 2020-07-23 09:41:05 -04:00
Mirko Denecke 01e9599e93 HEX Cube Yellow: enable platform-specific IO firmware with inverted heater pin. 2020-07-22 10:50:47 -04:00
Mirko Denecke 44e2c326e0 HEX Cube Orange: enable platform-specific IO firmware with inverted heater pin. 2020-07-22 10:50:47 -04:00
Mirko Denecke 57968c6e27 Add platform-specific IO firmware for HEX autopilots. 2020-07-22 10:50:47 -04:00
rolandash b8f3b97bad
Enable PMW3901 on MindPX/MindRacer. (#15375)
* enable pmw3901 on MindPX/MindRacer.

* remove useless line.
2020-07-19 16:09:57 +01:00
Daniel Agar 3dd7d0c292 boards: fmu-v5 debug variant disable unnecessary modules to save flash
- partially sync with fmu-v5 stackcheck build
2020-07-18 13:41:26 -04:00
Daniel Agar e3d31a881e boards: NuttX disable posix message queues 2020-07-17 17:00:21 -04:00
Daniel Agar b277840233 boards: create px4_fmu-v5_debug build with assertions enabled 2020-07-06 11:13:15 -04:00
Beat Küng 03e51076b0 v5x: fix icm20602 sensor orientation
and reorder baro startup, so that the other one is used by default.
2020-07-06 11:02:48 +02:00
Jari van Ewijk fe7fcb101f NXP FMUK66 - Fix VDD_3V3_SENSORS_EN polarity 2020-06-29 07:45:47 -07:00
Beat Küng 157ef43e28 replay: use lockstep scheduler 2020-06-23 11:53:55 -04:00
David Sidrane df73662d66 nxp_fmuk66-v3:Add Full networking support 2020-06-22 18:43:03 -04:00
Mirko Denecke 147fb0afa4 Hex/Proficnc CubeOrange: fix default config for IMU heating 2020-06-22 13:12:08 -04:00
Mirko Denecke d9f813a443 Hex/Proficnc CubeYellow: fix default config for IMU heating 2020-06-22 13:12:08 -04:00
Daniel Agar d9102ce54c imu/invensense/icm20948: sync with other recent invensense improvements
- clenaup ak09916 with simplifed setup and health check
2020-06-22 10:11:22 -04:00
David Sidrane 28a695dce4 px4_fmu-v6x:imu/bmi088->imu/bosch/bmi088 2020-06-19 19:13:20 -04:00
JacobCrabill 62799d9aca UAVCAN: Add STM32H7 FDCAN Driver
Took the existing uavcan_stm32 driver and replaced all bxCAN code with
the equivalent for FDCAN following ST Reference Manual RM0433.

Note: There is still a bug somewhere in regards to FDCAN2 (probably
incorrect setup of the message RAM? Not sure.)  But (FD)CAN1 is fully
functional (Classic CAN only, no CAN-FD).

Also TODO: Configure CAN filters.  Right now there are no filters; all
incoming messages are accepted.
2020-06-18 18:55:21 -04:00
JacobCrabill 08d2226043 CubeOrange: Move console back to CONS (UART7) 2020-06-18 18:55:21 -04:00
Daniel Agar 0a63df25a6 create fake_magnetometer "driver" to publish magnetic field in body frame
- this can be helpful for orienting new unknown magnetometers
 - requires attitude and GPS position
2020-06-18 16:21:30 -04:00
Daniel Agar e819f99064 new Bosch BMI055 IMU driver using FIFOs and DRDY
- accel & gyro FIFOs enabled
 - FIFO watermark on data ready interrupt
 - sensor side filtering completely disabled
 - gyro now respects `IMU_GYRO_RATEMAX` (up to 2 kHz)
 - saves a few % cpu (at default rate)
2020-06-15 10:19:14 -04:00
CUAVcaijie 1c02c37955
boards/cuav/x7pro: RC03 RM3100 moved from SPI1 to SPI2 2020-06-11 21:38:55 -04:00
CUAVcaijie dee56e78aa
boards/cuav/x7pro: fix X7 LED SAFETY configuration
* keep the naming identical to the pinout
2020-06-11 21:32:53 -04:00
Daniel Agar 13e34b32e6 new Bosch BMI088 IMU driver using FIFOs and DRDY 2020-06-11 12:25:13 -04:00
CUAVcaijie b6ec00c079
boards/cuav/x7pro: Fix HIPOWER enabled state 2020-06-11 12:05:37 -04:00
CUAVcaijie 9270b26c63 IO's RGB status light is modified to PWM breathing light 2020-06-11 12:02:49 -04:00
CUAVcaijie 67554acf9e x7 add led_pwm driver 2020-06-11 12:02:49 -04:00
CUAVcaijie 37fb4dbb64 Enable safety button 2020-06-10 09:14:25 -04:00
Mirko Denecke 10afcdce2e Hex/Proficnc Cube Yellow: align firmware location in flash memory to be able to use the default bootloader 2020-06-10 09:08:11 -04:00
Daniel Agar 6f6efd60b7 boards: centralize optional external I2C sensor start
- configured with new parameter SENS_EXT_I2C_PRB
2020-06-10 09:04:13 -04:00
Beat Küng 590b65ebfb Revert "kakutef7 spi: disable IMU drdy"
This reverts commit 2069576a6e.

PR #15004 fixed the problem.
2020-06-09 09:11:51 -04:00
David Sidrane 82b87adfb3 px4_fmu-v6x:default phy is LAN8742 2020-06-09 08:14:22 +02:00
David Sidrane 0bb8d7a065 px4_fmu-v5x p4 (-06) default to suporting LAN8742Ai 2020-06-09 08:12:44 +02:00
Daniel Agar 5e7d2e830d boards: delete old board.h boilerplate 2020-06-08 19:10:33 -04:00
Daniel Agar 5507c15bdc boards: move rgbled_pwm startup to appropriate boards 2020-06-08 16:49:46 -04:00
Mirko Denecke cf02b88d51
Initial Hex/Proficnc Cube Yellow support 2020-06-08 08:22:40 -04:00
David Sidrane 626895eadc px4_fmu-v5x:Wrong Bit was being tested for mode.
@TSC21  - this will fix you build
2020-06-05 18:59:48 -04:00
Daniel Agar 31fe7af454 selectively increase optimization -Os -> -O2
- targetted at modules/libraries that benefit without drastically
increasing flash usage
 - ignored on boards with CONSTRAINED_FLASH set
2020-06-04 20:59:52 -04:00
Beat Küng 2069576a6e kakutef7 spi: disable IMU drdy
It cause bad transfers on a Kopis 2, though not on a bench KakuteF7 unit.
Not sure if this is a single case.

nsh> icm20689 status
INFO  [SPI_I2C] Running on SPI Bus 4
INFO  [icm20689] FIFO empty interval: 1000 us (1000.000 Hz)
icm20689: transfer: 46375 events, 6790549us elapsed, 146.43us avg, min 54us max 1709us 81.564us rms
icm20689: bad register: 0 events
icm20689: bad transfer: 4284 events
icm20689: FIFO empty: 0 events
icm20689: FIFO overflow: 1 events
icm20689: FIFO reset: 2 events
icm20689: DRDY interval: 375585 events, 124.93us avg, min 99us max 250us 2.322us rms
INFO  [drivers_accelerometer] /dev/accel device instance: 0
INFO  [drivers_accelerometer] calibration scale: 1.02174 0.99918 0.98338
INFO  [drivers_accelerometer] calibration offset: 0.76124 -0.00725 -0.16437
INFO  [drivers_gyroscope] /dev/gyro device instance: 0
INFO  [drivers_gyroscope] calibration offset: -0.08153 0.02432 0.00050
2020-06-04 20:58:40 -04:00
Daniel Agar d1c12ac7cf boards: mRo Control Zero fix IMU rotations 2020-06-04 11:34:31 -04:00
Mirko Denecke 4a637a5c54 Hex CubeOrange: enable DMA for SPI1 2020-06-04 10:25:52 -04:00
Mirko Denecke 61a2dd8ec6 Hex CubeOrange: limit slew rate so IMU works with DMA 2020-06-04 10:25:52 -04:00
Mirko Denecke b4e39f91a4 Hex CubeOrange: no LSE available 2020-06-03 21:09:50 -04:00
Mirko Denecke 3e4179cc88 Hex CubeOrange: fix comment calc of PLL 2020-06-03 21:09:50 -04:00
Daniel Agar 6c96748e54 boards: pixhawk mini add unused MPU9250 CS & DRDY pins 2020-06-03 04:03:27 -07:00
David Sidrane 73bb18a053 px4_fmu-v6x: Limit Slew rate So IMU works with DMA
The defualt in NuttX is OSPEED of 50Mhz. This is realy a slew
   rate control. At the default high slew rate the overshoot was
   .7 Volts. On a ICM20649 this was causing the device to output
   garbage. All 0s

   N.B. A passive scope or Logic analyser's probes load will mask
   the failure. Useed a FET probe to verify the issue.
2020-06-02 13:02:51 -04:00
David Sidrane 5d90c31632 Added PX4 FmuV6X 2020-06-02 13:02:51 -04:00
Mirko Denecke 86cd1d0802 Hex CubeOrange: fix comment for TONE_ALARM_CHANNEL pin 2020-05-29 23:44:17 +01:00
Mirko Denecke b5ff82bccc Hex CubeOrange: remove CAN Silence Silent mode pins 2020-05-29 23:44:17 +01:00
Mirko Denecke fd600d7eed Hex CubeOrange: remove LSM303D 2020-05-29 23:44:17 +01:00
Matthias Grob 88c21337fa Make all battery sensor drivers report their sample interval
To make use of the time abstraction in the leaky integrator.
2020-05-25 11:04:24 +02:00
Daniel Agar 1c0925a189
Hex/Proficnc Cube Orange support
Co-authored-by: Jacob Dahl <dahl.jakejacob@gmail.com>
Co-authored-by: Jacob Crabill <jacob@flyvoly.com>
2020-05-23 18:31:46 -04:00
Julian Kent dd9c82eb20
systemcmds/gpio: Add nsh command to manipulate/read GPIO
* Add basic GPIO test app for R/W on pins from nuttx shell
* Add gpio command to fmu-v3 and fmu-v4
* Sanitize gpio commands by pin configs, --force to override
2020-05-23 11:47:40 -04:00
David Sidrane 04db5391fc px4_fmu-v5x:Fix PG11 assignment 2020-05-23 11:46:00 -04:00
David Sidrane b2153c7f2f px4_fmu-v5x:PG6 is free GPIO 2020-05-23 11:46:00 -04:00
David Sidrane 7f84ed57dd px4_fmu-v5x:Using SE050 not A71CH 2020-05-23 11:46:00 -04:00
David Sidrane 637578b8be px4_fmu-v5x:Correct trace connector description 2020-05-23 11:46:00 -04:00
Daniel Agar 951969ba00
drivers/imu/invensense: new ICM20948 driver on SPI with AK09916 mag 2020-05-22 00:09:30 -04:00
Beat Küng 9c6f42a867 v5x defconfig: increase TELEM2 UART TX buffer size to 3000
Required for very high-rate log streaming @3MBit baudrate.
2020-05-20 09:12:50 +02:00
Daniel Agar 678c3fe8e4 boards: px4_fmu-v5_optimized don't build all mags 2020-05-07 15:21:15 -04:00
Daniel Agar 1cce549b2b boards: holybro_durandal-v1_stackcheck don't build all mags 2020-05-07 15:21:15 -04:00
Daniel Agar 04113b4d57 commander: changes when USB connected
- skip avionics rail voltage check when USB connected
 - skip forced reboot on USB disconnect if circuit breaker set
 - avionics voltage preflight check don't silently fail if system_power unavailble
     - explicitly set supply check circuit breaker (CBRK_SUPPLY_CHK)
2020-05-06 13:53:54 -04:00
Daniel Agar 746a8f5cf9 commander: reboot/shutdown usability fixes
- always check with state machine before reboot/shutdown
 - respect BOARD_HAS_POWER_CONTROL (shutdown from command, low battery, power button)
 - px4_shutdown_request add optional delay and always execute from HPWORK
 - px4_shutdown_request split out px4_reboot_request
2020-05-06 13:53:54 -04:00
Daniel Agar 28d2aca699 boards: include all procfs entries on boards that aren't flash constrained 2020-05-01 20:59:57 -04:00
Daniel Agar 8d0c92003a boards: remove all CONFIG_NXFONTS_DISABLE* 2020-05-01 20:59:57 -04:00
Daniel Agar d89b7804f7
boards: initial CUAV X7Pro support (not complete)
- this is booting and functional, but still missing a few things
 - still needs full PWM output, verification of all sensor rotations and IO, etc
2020-05-01 20:59:28 -04:00
Daniel Agar 76cfd8fa39
boards: add nxp fmuk66-v3 and rddrone-uavcan146 socketcan builds 2020-04-30 15:04:08 -04:00
Daniel Agar 3e5f85b47b
uavcannode: add distance_sensor (all possible instances) 2020-04-30 14:52:06 -04:00
Jakub Kákona dfa5ca1710
FlightGear simulator support (#14539)
- Add flightgear_bridge submodule.
- Add traget px4_sitl_nolockstep with disabled  LOCKSTEP simulation.
- Add flightgear viewer targets and startup scripts
- Add a few possible vehicles plane (rascal), autogyro (tf-g1), and rover (tf-r1))

Co-authored-by: Vit Hanousek <vithanousek@seznam.cz>
2020-04-29 08:46:59 +02:00
Beat Küng 34c75f2d36 boards: temporarily disable UART TX DMA
work-around for https://github.com/PX4/Firmware/issues/14659.
This can be reverted when fixed properly.
2020-04-27 08:47:46 -04:00
Daniel Agar 5739cf27e5 boards: delete obsolete commented config systemcmd 2020-04-26 22:34:34 -04:00
Roman Dvořák 75fe3bee8c
drivers/rpm: add simple RPM message simulator (dummy publisher) 2020-04-25 09:10:11 -04:00
Daniel Agar 06478d9997 delete obsolete SENSORIOCSPOLLRATE/SENSORIOCRESET and systemcmds/config 2020-04-15 23:33:41 -04:00
Daniel Agar 7c7ee115e3
boards: px4_io-v2 defconfig optimizations to save memory
* disable CONFIG_ARMV7M_MEMCPY to save flash
* disable CONFIG_LIB_BOARDCTL
* remove unnecessary pthread and task settings
* reduce preallocated watchdogs
* reduce console buffer size
* reduce IDLE thread stack
* reduce user main stack

Co-Authored-By: David Sidrane <David.Sidrane@Nscdg.com>
2020-04-15 23:17:44 -04:00
mcsauder 6548fde024 Whitespace cleanup to quiet new blank line at EOF git hook. 2020-04-15 23:00:39 -04:00
Daniel Agar 1ac6230758 boards: always change default IMU_GYRO_RATEMAX on px4_fmu-v2/v3 and mro_x21
- this can lower cpu usage considerably on older boards
2020-04-15 21:52:02 -04:00
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 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 276b2cad5a
boards: fmu was renamed pwm_out 2020-04-11 14:18:55 -04:00
Daniel Agar 55fc0cbdc7 boards/px4/fmu-v4: fix internal hmc5883 start 2020-04-09 15:54:10 -04:00
Beat Küng 8338f4e543 uvify/core: enable tx dma on telem2 2020-04-09 14:59:28 +02:00
Beat Küng 31937c280d px4/v4: enable tx dma on telem2 2020-04-09 14:59:28 +02:00
Beat Küng cbed023334 px4/v{2,3}: enable tx dma on telem2 2020-04-09 14:59:28 +02:00
Beat Küng 68e1172bb5 px4/v5x: enable tx dma on telem2 2020-04-09 14:59:28 +02:00
Beat Küng c713ce721e KakuteF7: enable SPI DMA for SPI 4
DMA for SPI 1 left disabled because the SD card does not work when enabling
it.
2020-04-08 15:31:51 -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 7aa7f0ed95 switch remaining boards to new InvenSense IMU drivers 2020-04-07 09:59:12 -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
Julian Oes f650b91718 battery: check source param inside battery lib
This moves the handling of the BAT%d_SOURCE param inside of the battery
library. Users of the library now pass the source instead of the flag
whether to publish. The battery library then checks if the source is
selected using the param and publishes accordingly.

Since we removed the strange system_source flag, we now need to look at
all batteries in commander.
For current estimation - I think - it makes sense to sum them up.
2020-04-06 15:56:54 +02:00
Julian Oes b01cdafcf6 boards: add esc_battery to build 2020-04-06 15:56:54 +02:00
Julian Oes 509b8b6b4b First skeleton for esc_battery module 2020-04-06 15:56:54 +02:00
Daniel Agar ad559a66a1 examples: add simple work_item example module 2020-04-06 09:43:55 -04:00
David Sidrane 025799248c holybro_durandal-v1:Ensure SDMMC power seqensing is clean 2020-04-04 09:39:53 -04: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 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 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 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
Beat Küng cc6ae7ad41 fix omnibus/f4sd: bmp280 start 2020-03-30 15:52:41 -04:00
Beat Küng fc3b497b41 omnibus/f4sd: switch over mpu6000 driver
I'm seeing 'mpu6000: FIFO empty: 49 events' increasing, but that is
epxected as there's no DRDY.
2020-03-30 15:52:41 -04:00
Daniel Agar a38d4192ab boards: airmind mindpx-v2 fix L3GD20 DRDY pin 2020-03-30 09:21:00 -04:00
Peter van der Perk 9490f41f85 rddrone-uavcan146 removed shared clock between hrt & rtc
Removed non-existing SW2 button
Fixed SW3 button pinmux
Added FlexCAN pin definition
hrt use external sirc clock
rtc use 32khz lpo clock
2020-03-28 06:31:11 -07:00
Travis Bottalico e898b7f110 - Remove RC_SERIAL_SINGLEWIRE, this broke Spektrum radio on last commit
- set FSYNC INT pins to 0 to be safe
2020-03-26 13:54:12 +01:00
baumanta 2103b8f7de fmu-v5_optimized: disable esc_calib 2020-03-26 08:00:30 +01:00
Daniel Agar 44bec269b0 boards: update all NuttX configs CONFIG_NSH_MAXARGUMENTS 12 -> 15 2020-03-25 17:59:22 -04:00
Peter van der Perk a4e6f96365
rddrone-uavcan146: HRT & RTC timer support 2020-03-25 16:37:28 -04:00
Hyon Lim 2b54e19adf Script: As recent driver refactoring checkes start argument first, we change script accordingly. 2020-03-25 16:16:45 -04:00
Hyon Lim fd0ea29fc6 Board support: UVify Core. As Core is not using SPI4 as external, SPI4 external interface related code removed.
Also, PMW3901 flow sensor is added on SPI2 bus.
2020-03-25 16:16:45 -04:00
Hyon Lim 1161dac875 Script update: PMW3901 driver argument has changed. so we change scripts and SPI interface. 2020-03-25 16:16:45 -04:00
Hyon Lim e8f0c8e239 NSH argument stack increased. Specific MAVLink configuration requires more than 12 parameters. 2020-03-25 16:16:45 -04:00
Hyon Lim afcf0960df IFO-S RGB LED app setting has been changed. 2020-03-25 16:16:45 -04:00
Hyon Lim 15f997d337 Airframe: IFO-S setup is added. 2020-03-25 16:16:45 -04:00
Daniel Agar f4e2cd36d4 add new invensense/mpu6500 driver for airmind mindpx 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 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
Beat Küng 81dc73b752 fmu-v5_optimized: disable bl_update
to reduce FLASH usage
2020-03-24 09:46:20 -04:00
Beat Küng 7ea8dff8db spi: do not deselect other chip-selects
And make sure on reset & init everything is deselected.

Reduces CPU load on a pixhawk cube by almost 1%.
2020-03-24 09:46:20 -04:00
Beat Küng 6a41c9e417 refactor fxos8701cq: use driver base class 2020-03-24 09:46:20 -04:00
Beat Küng 5fa4cd1019 refactor fxas21002c: 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
Beat Küng b156fe5787 boards: remove deprecated SPI + I2C defines from board_config.h
chip-selects are deselected in stm32_spiinitialize()
2020-03-24 09:46:20 -04:00
Beat Küng f74474dd55 fmuk66-v3: fix spi bus numbering passing to px4_spibus_initialize
Fixes an error on bootup ([boot] FAILED to initialize SPI port 0). Other
than that, everything was working.
2020-03-24 09:46:20 -04:00
Beat Küng 04cffce992 refactor aerofc_adc: use driver base class 2020-03-24 09:46:20 -04:00
Beat Küng 030ba24f53 refactor pca9685: use driver base class 2020-03-24 09:46:20 -04:00
Beat Küng 6588dd0861 refactor icm20948: use driver base class 2020-03-24 09:46:20 -04:00
Beat Küng 924f46ee28 refactor icm20608g: use driver base class 2020-03-24 09:46:20 -04:00
Beat Küng c4a19c8852 refactor icm20689: use driver base class 2020-03-24 09:46:20 -04:00
Beat Küng 609eafd4cd refactor l3gd20: use driver base class 2020-03-24 09:46:20 -04:00
Beat Küng 6cf4de9e02 refactor lsm303d: use driver base class 2020-03-24 09:46:20 -04:00
Beat Küng 3423809cd9 refactor ism330dlc: use driver base class 2020-03-24 09:46:20 -04:00
Beat Küng 00280d55c2 refactor rm3100: use driver base class 2020-03-24 09:46:20 -04:00
Beat Küng 74db018012 refactor lsm303agr: use driver base class 2020-03-24 09:46:20 -04:00
Beat Küng 4d511868e6 refactor lis3mdl: use driver base class 2020-03-24 09:46:20 -04:00
Beat Küng 54da4997ad refactor bmi088: use driver base class 2020-03-24 09:46:20 -04:00
Beat Küng 17761acd49 refactor adis16497: use driver base class 2020-03-24 09:46:20 -04:00
Beat Küng 1f152d7d43 refactor adis16477: use driver base class 2020-03-24 09:46:20 -04:00
Beat Küng 7626be0485 refactor mpu9250: use driver base class 2020-03-24 09:46:20 -04:00
Beat Küng 2f3174abb0 refactor icm20602: 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
rolandash 7d7fe9e4da Add onboard qmc5883 support for MindPX/MindRacer. 2020-03-20 13:19:53 -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 0da7040cf5 beaglebone blue add empty px4_spi_buses 2020-03-18 11:55:11 -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 47b329cc54 refactor bmm150: 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 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 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 1b1e1ba31f refactor ll40ls: use driver base class 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 d81fedfcfa refactor lps22hb: 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
Beat Küng 58f386a81c refactor pmw3910: use driver base class 2020-03-17 23:31:17 -04:00
Beat Küng f555fe309c fmu-v5: change external i2c bus ordering to match with the label 2020-03-17 23:31:17 -04:00
Beat Küng 87cd20180c i2c spi: add unittests for BusCLIArguments 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
Paul Riseborough ab92b46e69
Update ecl to add ability to recover from bad magnetic yaw
* msg: Add EKF-GSF yaw estimator logging data
* ecl: update to version with EKF-GSF yaw estimator
* ekf2: Add param control and logging for EKF-GSF yaw estimator
* logger: Add logging for EKF-GSF yaw esimtator
2020-03-15 12:57:25 -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 0ce9e113ff boards: stm32f4/f7 enable SPI_DMATHRESHOLD=32 2020-03-11 22:08:37 -04:00
Beat Küng 179c89b6bd board configs: extend board_dma_map.h with a table 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
Daniel Agar 147e37ac88 px4_fmu-v4: cleanup board_dma_map.h 2020-03-11 22:08:37 -04: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 46a09b711f boards: increase STDIO buffer size where we can afford it 2020-03-11 17:19:44 -04:00
modaltb 707c840fd9
boards/modalai/fc-v1: Maintenance Updates
* Add Drotek RM3100 mag to board_sensors
 * update to single wire
 * Fix inverted FMU outputs from 451af07472
 * digital power module update for e9890d01d9
 * board doesn't have battery monitoring through ADC or GPIO, rather through I2C only
2020-03-11 09:25:17 -04:00
Daniel Agar 505afc6063 boards: increase LPWORKSTACKSIZE 1536 -> 1600 2020-03-10 12:53:01 -04:00
Beat Küng 335623e11d SPI config: use enum to specify bus 2020-03-10 10:11:43 -04:00
Beat Küng 37846a177c omnibusf4sd: disable landing_target_estimator
to reduce FLASH size
2020-03-10 10:11:43 -04:00
Beat Küng e627fed117 fmu-v2: disable perf command and some airframes
to reduce FLASH size
2020-03-10 10:11:43 -04:00
Beat Küng b54e5a1c23 param: automatically update calibration ID params on import
This avoids the need for recalibration, and also cleans up other driver
ID's (merge separate accel/gyro).

The SPI address was previously set to a board-specific (arbitrary) value,
and is now set to 0. This will allow extending for multiple sensors of the
same type on the same 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 977b80cee9 omnibus: enable DMA on SPI2 (SD Card)
Reduces CPU load by ~10%, and allows to comfortably run the rate loop at
2kHz.
2020-03-09 12:47:43 +01:00
Julian Kent 4bf34a75db Indicate that omnibus_f4sd is constrained in flash 2020-03-09 09:51:49 +01:00
Daniel Agar 4698a09b98 delete unmaintained outback challenge (OBC) bottle drop example 2020-03-05 14:09:31 -05:00
David Sidrane 25c12d8b9e px4_fmu-v5x:Add Serial test 2020-03-05 13:40:11 -05:00
David Sidrane ee220a5086 px4_fmuv5x:Update manifest for USB not present 2020-03-02 19:59:36 -05:00
David Sidrane cad3a811d2 nxp_fmurt1062-v1:Run from OCRAM 2020-03-02 10:20:33 -08:00
David Sidrane 3ed643f3d7 fmurt1062-v1:Update imxrt_flexspi_nor_boot configurable 2020-03-02 10:20:33 -08:00
Daniel Agar 779ba0fda5
px4_fmu-v4/v4pro: switch to new InvenSense icm20602/icm20608g IMU drivers
* 8 kHz gyro, 4 kHz accel
 * DLPF disabled
 * scheduled using data ready interrupts
 * FIFO is emptied at 1 kHz by default, but can adjusted via IMU_GYRO_RATEMAX from 250 Hz - 2000 kHz.
 * On both px4_fmu-v4 and px4_fmu-v4pro the secondary IMU is an mpu9250 with the same driver
2020-02-26 01:19:12 +01:00
Beat Küng 77b854b7c3 omnibus: enable SPI dma + use new ICM-20602 driver (disabled DLPF) 2020-02-25 09:59:52 +01:00
Daniel Agar af6213e85e invensense icm20689 improvements and fixes
- refactor Run() into simple state machine
 - perform reset and configuration in sensor bus thread
 - when using data ready interrupt skip checking FIFO count
 - fix periodic temperature sampling (rate limit to 1 Hz)
2020-02-22 12:15:52 -05:00
Daniel Agar afc59f843c invensense icm20602 improvements
- refactor Run() into simple state machine
 - perform reset and configuration in sensor bus thread
 - when using data ready interrupt skip checking FIFO count
2020-02-22 12:15:52 -05: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
Daniel Agar 1d226ad2ca invensense icm20608g 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)
2020-02-18 22:48:32 -05: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
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 ccf2078c66 nxp/fmurt1062-v1: use hw description methods for timer configuration 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 b380278f02 uvify/core: use hw description methods for timer configuration 2020-02-13 03:49:16 -08:00
Beat Küng 40898ba237 px4/fmu-v5x: use hw description methods for timer configuration 2020-02-13 03:49:16 -08:00
Beat Küng a0bfb7ad8e px4/fmu-v4pro: use hw description methods for timer configuration 2020-02-13 03:49:16 -08:00
Beat Küng d53153bb9b px4/fmu-v3: use hw description methods for timer configuration 2020-02-13 03:49:16 -08:00
Beat Küng 4599c30817 px4/fmu-v2: use hw description methods for timer configuration 2020-02-13 03:49:16 -08:00
Beat Küng ba4be76bcc omnibus/f4sd: use hw description methods for timer configuration 2020-02-13 03:49:16 -08:00
Beat Küng 03210f5386 mro/x21: use hw description methods for timer configuration 2020-02-13 03:49:16 -08:00
Beat Küng bd3fe62fcf mro/x21-777: use hw description methods for timer configuration 2020-02-13 03:49:16 -08:00
Beat Küng b3fe4a6691 mro/ctrl-zero-f7: use hw description methods for timer configuration 2020-02-13 03:49:16 -08:00
Beat Küng 451af07472 modalai/fc-v1: use hw description methods for timer configuration 2020-02-13 03:49:16 -08:00
Beat Küng 93106836df intel/aerofc-v1: use hw description methods for timer configuration 2020-02-13 03:49:16 -08:00
Beat Küng d2254c2e44 holybro/kakutef7: use hw description methods for timer configuration 2020-02-13 03:49:16 -08:00
Beat Küng ebbcc01f12 av/x-v1: use hw description methods for timer configuration 2020-02-13 03:49:16 -08:00
Beat Küng 366e2b9dc9 airmind/mindpx-v2: use hw description methods for timer configuration 2020-02-13 03:49:16 -08:00
Beat Küng 2b0f7e514e io-v2: use hw description methods for timer configuration 2020-02-13 03:49:16 -08:00
Beat Küng f7637ebf8f fmu-v5: use hw description methods for timer configuration 2020-02-13 03:49:16 -08:00
Beat Küng d1e690a036 fmu-v4: use hw description methods for timer configuration 2020-02-13 03:49:16 -08:00
Beat Küng c01f6811d0 nxp/fmuk66-v3: use hw description methods for timer configuration 2020-02-13 03:49:16 -08:00
Beat Küng 5319a98fec durandal-v1: use hw description methods for timer configuration 2020-02-13 03:49:16 -08:00
Beat Küng 4fd431b5e5 crazyflie: use hw description methods for timer configuration 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