Commit Graph

327 Commits

Author SHA1 Message Date
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 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
David Sidrane cba7410e49 fmu:Use board_supports_single_wire when calling sbus_config 2018-07-17 08:53:29 +02:00
Daniel Agar e468a9bbcc move systemlib/pwm_limit to standalone lib 2018-06-12 09:06:30 +02:00
Daniel Agar 387bc81f26 move systemlib/circuit_breaker.cpp to standalone lib 2018-06-12 09:06:30 +02:00
Daniel Agar 7eeba7b8ca systemlib delete unused board_serial 2018-06-12 09:06:30 +02:00
Lorenz Meier aee05d0ac5 FMU: Increase stack space as needed (shown by instrumentation) to retain a 300 bytes buffer. 2018-06-08 08:39:14 +02:00
Beat Küng 4f1c01de7f fmu params: add MOT_ORDERING to adjust the motor ordering
Useful for 4-in-1 ESCs such as the Hobbywing XRotor Micro 40A 4in1
where the FC can be directly plugged on top.
2018-05-28 08:37:08 +02:00
nathan f754d092f8 Initial omnibusf4sd target support
Flight tested: ekf2 w/ mag and compass by @nathantsoi: https://logs.px4.io/plot_app?log=79b81031-cf1e-41f0-890b-d6cd7d559766

NOTE: external I2C devices need a pullup. I have tested with a 3.3v 2.2k pullup.

Working:
 - mpu6000, bench tested and verified via nsh
 - fmu
 - all 6 ch output bench tested w/ pwm and oneshot via nsh
 - ppm input bench tested
 - dsm input bench tested
 - bmp280, bench tested and verified via nsh
 - hmc5883, bench tested and verified via nsh, but requires an external i2c pullup
 - gps on uart6
 - startuplog, nsh, mavlink on uart4, but params are not sent for some reason. RSSI pin is TX, MOTOR 5 is RX (normal mode, 57600 baud)
 - rgbled over i2c, bench tested and workingp
 - sbus via the shared sbus/ppm pin (which includes an inverter to the mcu SBUS in pin), remove the solder bridge or jumper to the ppm pin before use

Not yet implemented:
  - ADC
  - OSD: passthrough video is untested, use at your own risk until a basic driver is implemented.
2018-05-20 11:54:17 +02:00
Daniel Agar 977ab4e7b8 improve end to end control latency measurement (#9388) 2018-05-02 03:03:32 -04:00
Daniel Agar ea3acb7121 cmake remove circular linking and reorganize
- px4_add_module now requires MAIN
 - px4_add_library doesn't automatically link
2018-04-29 21:48:54 -04:00
Beat Küng 0d9693347f fmu + px4io: fixes for MC_AIRMODE parameter
- fmu: in case of _mot_t_max==0 _airmode was not set in the mixer
- px4io: param_val is a float
2018-03-23 10:35:08 +01:00
bresch 6976232a20 Airmode - Add airmode parameter for multicopter mixer 2018-03-23 10:35:08 +01:00
Beat Küng 5a7885610d fmu: fix PPM publication if RC_SERIAL_PORT is not defined
Before, the RC channel was published as fast as the fmu was running
(around 200Hz in unarmed state).

And fix code style.
2018-03-12 11:56:59 +01:00
Roman ea8db53d15 fmu: removed obsolete _trim_pwm member and implemented proper fetching
of mixer trim values

Signed-off-by: Roman <bapstroman@gmail.com>
2018-02-23 15:28:22 +01:00
Daniel Agar 6ad9e59a7a delete unused GPIO_SET_INPUT 2017-12-31 09:47:51 -05:00
Daniel Agar b8b9f15a34 delete unused GPIO_PERIPHERAL_RAIL_RESET 2017-12-31 09:47:51 -05:00
Daniel Agar d61e0651ab delete unused GPIO_SET_OUTPUT_HIGH 2017-12-31 09:47:51 -05:00
Daniel Agar 4c041f12ea delete unused GPIO_SET_OUTPUT_LOW 2017-12-31 09:47:51 -05:00
Daniel Agar f550c8735a delete unused GPIO_SENSOR_RAIL_RESET 2017-12-31 09:47:51 -05:00
Daniel Agar c65db00914 delete unused GPIO_SET_ALT_4 2017-12-31 09:47:51 -05:00
Daniel Agar db5e932f48 delete unused GPIO_SET_ALT_3 2017-12-31 09:47:51 -05:00
Daniel Agar 17e58dc08b delete unused GPIO_SET_ALT_2 2017-12-31 09:47:51 -05:00
Daniel Agar c6760cc6fb delete unused GPIO_SET_ALT_1 2017-12-31 09:47:51 -05:00
Daniel Agar ff6928fb63 delete unused GPIO_GET 2017-12-31 09:47:51 -05:00
Julien Lecoeur 89642a9203 Move src/module/systemlib/mixer to src/lib/mixer 2017-11-15 09:56:10 +01:00
Beat Küng 0247d7bdd7 fmu: minor refactoring & fixes
- initialize rc lost with true
- refactor for simpler downstream code-plugin
- allow for the addition of different binding commands
- fix st24 RC lost logic
2017-10-12 08:55:24 +02:00
David Sidrane e11af2bc27 fmu:Add PWM6 mode for nxphlite v3.5 2017-10-04 04:49:35 -10:00
David Sidrane 58c3c8a94b fmu:Fix stack overwrite 2017-09-29 10:13:51 -04:00