Commit Graph

348 Commits

Author SHA1 Message Date
Beat Küng e7db0ed098 test_mixer & mixer: use memmove instead of memcpy
Both, src & dst use the same array, thus potentially overlapping.
Behavior of memcpy in that case is undefined.
2017-01-18 18:23:42 +01:00
Lorenz Meier 1155a4725b PX4IO: Fix mixer load corner case in string termination 2017-01-14 07:47:03 -08:00
Lorenz Meier 2cabc4866a PX4IO: Use mixer header for buffer length 2017-01-03 20:32:33 -05:00
Lorenz Meier d401252c9e IO firmware: Convert magic numbers to defines
This is necessary to allow more and better unit testing.
2017-01-03 20:32:33 -05:00
Lorenz Meier 89b37fd727 IO: Add missing float header 2016-12-27 21:00:51 +01:00
Andrew Tridgell d150b4b084 px4iofirmware: fixed a bug with override handling
this fixes a race condition between the DMA completion handler
updating registers in px4io and the mixer used for handling the
override state. The register set code could set r_page_servos[]
between the time when pwm_limit_calc() is called and the servos are
actually output.
2016-12-26 16:32:33 +01:00
Lorenz Meier 074e666b95 PX4IO: Robustify firmware for mixer load operation
This change makes the mixer load and reset operation closer to thread-safe. It was guarded one-way before and in only one location. This change ensures that its being locked out from both directions. The accesses to the locking variables still need work because they are non-atomic.
2016-12-26 13:41:36 +01:00
David Sidrane b7d7b567c0 Changes to px4iofirmware for Upstrem Nuttx c++ init and logging changes 2016-12-21 08:34:21 +01:00
David Sidrane d6098c8226 Adding Nuttx Build infrastructure 2016-12-21 08:34:20 +01:00
Roman d221313dfb implemented mapping between desired thrust and applied pwm in
multirotor mixer.

Signed-off-by: Roman <bapstroman@gmail.com>
2016-12-15 23:39:53 +01:00
Paul Riseborough 57a6faf8a2 px4iofirmware: remove unused defines 2016-12-13 16:14:15 +01:00
Bart Slinger a7c8d77453 Generic helicopter mixer
fix code style
2016-12-10 14:45:49 +01:00
Mark Whitehorn fc906a79b0 delete commented code 2016-12-10 12:56:39 +01:00
Mark Whitehorn f0b41a0e52 change main trims to normalized values 2016-12-10 12:56:39 +01:00
Mark Whitehorn dbc149c224 change trim units from absolute usec to normalized values 2016-12-10 12:56:39 +01:00
Mark Whitehorn a0c8a78a14 use trim values to set mixer:scaler.offset
clamp mixer output offset to [-.2,.2] ([-2000, 2000] in mixer file)

add 8 main PWM trim parameters

add long desc to parameters and bump minor parameter version
2016-12-10 12:56:39 +01:00
Bartosz Wawrzacz 619efa7b45 [PX4IO/PWM driver] Added trim values to the PWM output drivers 2016-12-10 12:56:39 +01:00
Daniel Agar 1a1b8f69ac PX4IO add page setup case for thermal 2016-12-05 10:23:46 +01:00
Lorenz Meier 9f14ace0fa IO: Allow control of the blue led state as function of a Pixhawk 2.1 heater 2016-12-05 10:23:46 +01:00
Carlo Wood 04aa2bb3a4 Add missing header files.
These headers files were missing from the header files that
I added them to; the fact that they were missing didn't
lead to compile errors because by coincidence the missing
headers are included in the source files before including
these headers. But, after the reordering of header inclusions
by Tools/fix_headers.sh, these cases will give rise to compiler
errors.
2016-11-13 19:36:27 +01:00
Benoit3 83e9e1c382 The goal of this patch is to allow compatibility with GR12/GR16/GR24 graupner receiver by :
- allowing decoding of SUMD frame with failsafe bit set
- updating stack failsafe state with the sumd failsafe info

Refer to #5817 issue
2016-11-12 14:28:57 +01:00
Julian Oes af5d2c488c st24: fix RC lost detection based on error count
The packet_count was actually an error_count, therefore we should
process RC input only when the error_count since the last packet is 0.

Also, this commit fixes the RSSI scaling for st24.
2016-10-19 09:22:57 +02:00
Roman c2a511d81d multirotor mixer slew rate limiting: naming and fixes
- avoid dividing by zero when calculating max delta output
- better comments when calculating max delta output
- better naming of functions and variables

Signed-off-by: Roman <bapstroman@gmail.com>
2016-09-30 13:55:53 +02:00
Roman 2607769470 slew rate limiting: moved logic to multirotor mixer
Signed-off-by: Roman <bapstroman@gmail.com>
2016-09-30 13:55:53 +02:00
Roman 66ddea01d1 implemented slew-rate 2016-09-30 13:55:53 +02:00
Carlo Wood 77d356d275 Target specific optimization control.
This allows one to set a semi-colon separated list of regular
expressions in the environment variable PX4_NO_OPTIMIZATION
to control which (cmake generated) targets should be compiled
without optimization.

Suppressing optimization can be necessary for debugging in
a debugger, especially when trying to step through the code
or needing to print variables that otherwise are optimized out.

EXAMPLE

export PX4_NO_OPTIMIZATION="px4;^modules__uORB;^modules__systemlib$"

will result in the following messages during cmake configuration:

[...]
-- Disabling optimization for target 'platforms__posix__px4_layer'
because it matches the regexp 'px4' in env var PX4_NO_OPTIMIZATION
-- Disabling optimization for target 'modules__systemlib' because it
matches the regexp '^modules__systemlib$' in env var PX4_NO_OPTIMIZATION
-- Disabling optimization for target 'modules__uORB' because it matches
the regexp '^modules__uORB' in env var PX4_NO_OPTIMIZATION
-- Disabling optimization for target 'examples__px4_simple_app' because
it matches the regexp 'px4' in env var PX4_NO_OPTIMIZATION
-- Disabling optimization for target 'modules__uORB__uORB_tests' because
it matches the regexp '^modules__uORB' in env var PX4_NO_OPTIMIZATION
-- Disabling optimization for target 'px4' because it matches the regexp
'px4' in env var PX4_NO_OPTIMIZATION

Note that a list of all (currently used) target names can be printed
with the following command line from within the required build directory:

find . -wholename '*/CMakeFiles/*.dir/flags.make' | xargs dirname | xargs basename -a | sort -u | sed -e 's/.dir$//'
2016-09-13 16:31:08 +02:00
James Goppert 818840b576 Path cleanup, low impact changes (#5340)
* Low impact changes from path_cleanup branch.

This is a step towards minimizing the diff with path_cleanup branch.

* Update ecl.

* Revert matrix update.

* Revert ecl and matrix.

* Update sitl gazebo.

* Revert sitl_gazebo and matrix changes.
2016-08-18 15:37:23 -04:00
Lorenz Meier 102f5b54d7 Revert "Improvements to SITL to make paths more flexible. (#5181)"
This reverts commit 699b6a2cb3.
2016-08-05 21:29:49 +02:00
James Goppert 699b6a2cb3 Improvements to SITL to make paths more flexible. (#5181) 2016-08-05 06:23:59 -04:00
Julian Oes 78a9472b25 px4iofirmware: astyle 2016-07-29 12:46:17 +02:00
Julian Oes dcb7c0e4c2 px4iofirmware: correct newline 2016-07-29 12:46:17 +02:00
Julian Oes 79a1b84b09 px4iofirmware: clean up override decision
The override checking was scattered across two places and is now unified
in controls_tick(). The part in mixer_tick only decides which mixer (or
none) to use give the override flag.
2016-07-29 12:46:17 +02:00
Julian Oes ec035b7268 px4iofirmware: no override in multirotor mode
This fixes a bug where multirotors got into override mode when the FMU
is dead/not responding.
The main bug was that the check was for FMU_OK || MANUAL_OVERRIDE_OK
in order to get further in the override checks.

Also a mixer_tick was called inside the controls_tick even though these
are called in px4io.c after each other anyway.
2016-07-29 12:46:17 +02:00
Julian Oes 57b3bbf657 px4iofirmware: don't set FMU_OK flags immediately
The FMU_OK flags are later checked anyway based on
system_state.fmu_data_received_time.
2016-07-29 12:46:17 +02:00
Julian Oes 31d5c59ab7 px4iofirmware: remove unused define 2016-07-29 12:46:17 +02:00
Andreas Antener af8cd3f880 correctly scale and trim outputs in IO 2016-07-13 09:29:13 +02:00
Roman 08bbd6dbfa px4iofirmware: added scale parameters for roll, pitch and yaw
since pure manual control for fixed wings in handled on the io side
the scale parameters for roll, pitch and yaw had to be introduced there
as well.

Signed-off-by: Roman <bapstr@ethz.ch>
2016-07-13 09:29:12 +02:00
Lucas De Marchi 18330f7ab7 Move __STDC_FORMAT_MACROS to build system
__STDC_FORMAT_MACROS changes the behavior of inttypes.h to allow
defining format macros for printf-like functions. It needs to be defined
before any include is done, otherwise due to include chains and header
guards it may not take effect.

Instead of having to define it everywhere it is used, move the define to the
build system. Also update ecl and DriverFramework submodules to deal with the
changed definitions.
2016-07-10 16:31:36 +02:00
Lorenz Meier 7398164fcc Updated PX4 use / API of low level GPIO and other hardware-centric system facilities 2016-05-28 14:56:17 +02:00
Andrew Tridgell 3f6f030fc4 px4iofirmware: allow override when RAW_PWM is active
if override is enabled then it should apply even if RAW_PWM is being
supplied by the FMU
2016-05-22 13:20:44 +02:00
Andrew Tridgell 9daf6c336b px4iofirmware: removed unused PX4IO_P_CONFIG_CONTROL_GROUP_COUNT 2016-04-18 18:44:05 +02:00
Andrew Tridgell fde635ef5a px4iofirmware: fixed display of sbus rate in px4io status 2016-04-18 11:43:24 +02:00
Andrew Tridgell f19761d278 px4iofirmware: support setting the SBUS output frame rate
this allows for helicopters and multicopters with SBUS output
2016-04-18 11:43:24 +02:00
Jonathan Challinger d5dfb17f0d px4iofirmware: return failure when FORCE_SAFETY_OFF fails 2016-04-17 21:38:16 +02:00
Andrew Tridgell 943e6ffbc9 px4iofirmware: blink blue LED more rapidly when override is active
this makes it easier for a user to test that override is working
correctly in pre-flight checks. Otherwise override is hard to
distinguish from normal manual mode
2016-04-17 19:10:23 +02:00
Lorenz Meier 2fa1673ee0 Make 800 bytes space on IO. From @tridge. 2016-03-24 10:40:29 +01:00
Andreas Antener a1f4ab21bf fixed code style 2016-03-20 14:48:47 +01:00
Andreas Antener 6782bdaf69 prevent alternate flight control group (1) throttle from being active when safety is disabled 2016-03-20 11:19:23 +01:00
Lorenz Meier daeb4a24f3 Fix code style 2016-02-23 13:17:30 +01:00
Lorenz Meier 168f955e0c IO firmware: Ensure that in case of lockdown only the lockdown code writes servo outputs 2016-02-23 13:09:06 +01:00