Commit Graph

377 Commits

Author SHA1 Message Date
Beat Küng f0ee0b5d49 MixingOutput: make scheduling configurable
And make sure fmu calls MixingOutput::updateSubscriptions on startup even
if no mixer is loaded, so that it gets scheduled.
2019-08-31 10:05:00 -04:00
Beat Küng a2ebbe9066 pwm_limit: rename to output_limit
As there is nothing pwm-specific about it.
2019-08-31 10:05:00 -04:00
Beat Küng 077b229655 MixingOutput: make mixer loading thread-safe 2019-08-31 10:05:00 -04:00
Beat Küng d3fb610fde mixer_module: create MixingOutput library and use in fmu
This should be a pure refactoring, no functional change.
2019-08-31 10:05:00 -04:00
Beat Küng 0ec6e79a0a fmu: remove unused _num_failsafe_set 2019-08-31 10:05:00 -04:00
Beat Küng 1d577802cf fmu: remove unused write() interface 2019-08-31 10:05:00 -04:00
Beat Küng 5b87b81b90 fmu: fix comments & documentation 2019-08-31 10:05:00 -04:00
Daniel Agar 78ef8aab2d STACK_MAIN increase default 1024 -> 2048 2019-08-30 19:11:51 -07:00
Beat Küng f8e0441e7b src/platforms/common: move to platforms/common
Script to update include paths:
for i in $(grep -rl 'include <px4_work_queue' src platforms); do sed -i 's/#include <px4_work_queue/#include <px4_platform_common\/px4_work_queue/' $i; done
2019-08-30 07:59:44 +02:00
Beat Küng f3fccf53f6 src/drivers/{kinetis,stm32}: move to arch-specific directories 2019-08-30 07:59:44 +02:00
Daniel Agar b1d59c8817 px4fmu split safety button into new driver 2019-08-24 17:14:17 -04:00
Julien Lecoeur 907b6ccf46 fmu: fix implicit fallthrough 2019-08-21 07:56:20 -07:00
Daniel Agar 7d248e0f45 px4fmu: move to WQ with uORB callback scheduling (#12224) 2019-08-20 20:24:12 -04:00
BazookaJoe1900 7be5d15502 px4fmu: cleanup - removed duplicate const MAX_ACTUATORS definition 2019-07-11 18:25:56 -04:00
Roman Bapst b54a43fccc UAVCAN driver: support throttle linearization (THR_MLD_FAC parameter)
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2019-07-09 15:10:54 -04:00
CarlOlsson 12fcddd288 fmu: remove unused functions 2019-07-04 22:08:00 -04:00
bresch 34fca5a552 PWM - Remove unused MIXERADDSIMPLE 2019-06-05 16:53:08 +02:00
Daniel Agar 604cdc2b60 drivers/px4fmu initialize all arrays 2019-04-03 18:50:57 -04:00
Daniel Agar 184aa2861a PX4_ISFINITE use builtin everywhere 2019-02-21 14:56:08 -05:00
DanielePettenuzzo b12b4e1222 fixes after rebase 2019-02-10 18:07:44 -05:00
DanielePettenuzzo 50f8c7349c fmu: add mode_4pwm2cap 2019-02-10 18:07:44 -05:00
David Sidrane 928e0140ee fmu:Add MODE_4PWM1CAP, MODE_5PWM, MODE_5PWM1CAP
This extends the  Capture support for FMU
   CHAN 5 and 6.
2019-02-10 18:07:44 -05:00
Beat Küng 481bfc6308 px4_module: use px4_atomic_t 2019-01-30 10:24:06 -05:00
Alessandro Simovic fc2fbf5e72 fmu: added missing include 2019-01-28 12:05:36 +01:00
Daniel Agar 60f2a92e3d replace <cfloat> with <float.h>
- <cfloat> isn't available in the NuttX c++ library
2019-01-06 19:20:57 -05:00
Beat Küng 19ccab28bb mixer: use an enum for airmode 2018-12-13 09:50:07 +01:00
bresch 7cc00f41d2 AirModeYaw - Change airmode type from bool to int 2018-12-13 09:50:07 +01:00
Daniel Agar d4e06e517a delete drv_gpio.h, modules/gpio_led, and fmu GPIO ioctls 2018-12-03 16:30:39 +01:00
David Sidrane 99294b2040 fmu:Add Range checking for PWM5 modes 2018-10-23 08:15:28 +02:00
David Sidrane d3c37e0206 fmu:fix doumantation and pwm 8 useage 2018-09-28 07:48:32 +02:00
David Sidrane c7edd9f31b fmu:Add MODE_4PWM1CAP, MODE_5PWM, MODE_5PWM1CAP
This extends the  Capture support for FMU
   CHAN 5 and 6.
2018-09-28 07:48:32 +02:00
David Sidrane 22a65f6c1d fmu:Fix Safety switch breakage from bc9c25a
The update check is on ORB_ID(safety) but the copy
   was from ORB_ID(actuator_armed).
2018-09-13 11:21:53 -07:00
David Sidrane b578419e09 Bug fix fmu hard fault on pwm info
A hardfault was happening on:
    fmu stop
    fmu mode_pwm
    pwm info

   The _mixer was null and being dereferenced to access the trim
   setting that were moved to the mixer from the fmu.

   This commit fixes that but making the getter issue a warning
   and the setter fail.
2018-09-13 08:45:36 +02:00
David Sidrane 73b9f09920 fmu:Add test mode 2018-09-13 08:45:36 +02:00
Daniel Agar 01595947e5 px4fmu cleanup unnecessary Device CDev usage 2018-08-27 13:14:15 -04:00
Beat Küng bc9c25a376 fmu: fix safety button
- use the orb topic safety to check the safety state, because the actual
  safety state can come from the IO
- fix initialization if circuit breaker is set
2018-08-02 15:48:35 +02:00
Daniel Agar 0069141ffc px4fmu increase actuator controls poll timeout 2018-07-30 10:32:56 -04:00
Daniel Agar 658237f36a px4fmu move RC input to new rc_input driver 2018-07-30 10:32:56 -04:00
Beat Küng 6e24bbbaaf fmu: add CRSF RC and Telemetry support
- Telemetry is only enabled on omnibus, since on Pixhawk it seems we cannot
  write to the RC UART due to how the board is wired
- For the Telemetry the UART needs to be opened RW
2018-07-28 15:23:09 +02:00
Beat Küng 388b963dd8 refactor fmu: fix naming convention for raw_rc_count & raw_rc_values 2018-07-28 15:23:09 +02:00
Beat Küng 3816145d59 fmu: fix init & use of _control_subs
0 is a valid file descriptor, init (all) to -1 instead
2018-07-28 15:23:09 +02:00
Kurt Kiefer 597372bec9 Gather RSSI data from Spektrum Telemetry receivers
On SPM4649T receivers with firmware versions at least 1.1RC9, the
serial data will contain an rssi value in dbm, as outlined in the
Remote Receiver Interfacing document section 8.3.1.

If the value received is greater than or equal to zero, the receiver
does not support rssi data, and the incoming value will be ignored.
However, if the value is negative, we can use the rssi value.

When we have a valid rssi, it gets mapped to a percentage from 0 to
100 as expected by mavlink. This mapping is constructed as a
logarithmic function over Spektrum's published minimum and maximum
rssi values, -92dBm to -42dBm as 0 to 100:
100 Log10[1 + (x - min) * (9 / (max - min))]

This change updates all calls to the dsm input rountes to return
the rssi value.

Note that one place this doesn't work with the px4io enabled.
There is a comment left in the absence of analog rssi that:
"we do not actually get digital RSSI regs[PX4IO_P_RAW_RC_NRSSI]".
This restriction has been left in place, as removing it exposes a
problem where the frequency of the control tick is greater than
that of valid dsm frames so the rssi isn't valid every cycle.
2018-07-22 08:42:30 +02:00
David Sidrane 45f210e544 fmu:Use Compile time & run time Safety switch control
Platforms that provide HW versioning tend to have
   more FLASH and can have a PX4IO as an option.
   (E.G.) FMUv5. This change provides run time
   decision to control the safety switch on
   platfors that have BOARD_HAS_VERSIONING.

   On platforms with no versioning and have
   BOARD_HAS_STATIC_MANIFEST defined as a 1
   The decision is compile time only. When a PX4IO
   is present the fmu control of the safety is
   not built.
2018-07-20 18:29:58 +02:00
Daniel Agar 8985403c00 FMU relocate MOT_SLEW_MAX and THR_MDL_FAC parameters centrally 2018-07-17 19:59:41 -04:00
Daniel Agar c26ca49f36 PWM parameters centralize under sensors and add aux 7&8 2018-07-17 19:59:41 -04:00
Daniel Agar 24d742ed51 FMU PWM parameters respect instance for MAIN/AUX usage 2018-07-17 19:59:41 -04:00
David Sidrane a7a1607689 fmu & px4io:Use uORB Publish Auto 2018-07-17 08:53:29 +02:00
David Sidrane 33c9459ebe fmu:Use extended board_supports_single_wire APU with UxART 2018-07-17 08:53:29 +02:00
David Sidrane f48481fcbd fmu:Use extended rc_io_invert API with UxART 2018-07-17 08:53:29 +02:00
David Sidrane c291566c3e fmu:Remove gpio config on GPIO_SBUS_INV it is done in board_init 2018-07-17 08:53:29 +02:00