This fixes a problem where the pyserial write call gets stuck.
It happens on a specific Fedora 28 system with internal USB ports as
well as USB hubs.
It is not clear why the problem is resolved but it is clearly
reproducible that with a timeout of 0, the write can get stuck and with
a timeout > 0 it works every time.
The exception added as part of this commit makes sense but has never
been triggered in my testing.
Previously the rate controller disabled updating the integral below 20%
throttle. This is not ideal for several reasons:
- some racers already hover with 20% throttle.
- for acro it is important to always keep the integral enabled, it has a
noticeable effect on flight performance.
A reason for using switch arming in the first place is that you cannot
accidentally disarm in-air with the sticks during acrobatic flights.
It also adds a low-throttle arming requirement for switch arming.
This changes the arming logic such that the preflight checks don't need
to be satisfied if arming happens < 5 seconds after the last disarming.
This allows to recover from accidental in-air disarming.
if fRunPreArmChecks was set to false, there were still cases where the
preflight checks could be called. This fixes that.
arming_state_transition() with fRunPreArmChecks=false is only called
when entering & leaving preflight calibration mode.
All other places use fRunPreArmChecks=true, which means there is no change
for these.
- this matches the logic in arming_state_transition()
- if Commander::preflight_check was run in armed state and the checks
failed, disarming was not possible anymore
(because disarming checks for condition_system_sensors_initialized).
That is currently not the case, but the existing logic is way too fragile.
Alternative solution: check if armed in Preflight::preflightCheck, and
only transition to false if disarmed (but also respect the re-arming
grace period).
- nuttx in PX4/Firmware (537fe886015be0ccb6b691a8a2802fb29d17c410): 63775322bf
- nuttx current upstream: f57752b6f1
- Changes: 63775322bf...f57752b6f1
f57752b 2018-06-25 Daniel Agar - Merged in dagar/nuttx/pr-fixCompileError (pull request #660)
If the PX4FMUv2 board does not have the v5 uploader, it's not possible
to check the silicon revision to make sure it's safe to upload the
firmware which is more than 1 MB. However, if the user is sure the
silicon revision is not affected by this errata, he can upload the
firmware using px4_uploader.py with --force argument. This commit adds
`force-upload` make target to do it more convenient way.
Signed-off-by: Andrei Korigodski <akorigod@gmail.com>
* ecl: Update to version allowing use of flow sensors without gyros
* msg: Update description for optical_flow
Adds advice for publishing gyro rate integral message when no rate gyro is fitted.
The uorb subscribe logic got changed for queued topics with
https://github.com/PX4/Firmware/pull/9436, meaning an orb_subscribe will
return past messages as well now.
This lead to an error 'Command denied during calibration' for the previously
received calibration start command.