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.
- Run in a single ssh command
- Allow to update firmware when mavlink-routerd had already been
stopped
- Be resilient to another daemon interfering the communication by
reading/writting to the UART
- Print OS, BIOS nad FPGA version
- Other channels are irrelevant since they aren't physically
connected. Avoid the I2C transaction to get invalid data
- Port the driver to use only one address, as it should be
- Minor changes here and there
- Add test() method to read the latest value - helpful during
debugging.
Measure the battery voltage of Aero RTF kit will be done by FPGA
and read by AeroFC using I2C bus.
The protocol is a little bit odd, it have different I2C slave
address for each "register", in future the FPGA RTL will
have a protocol more similar to other I2C sensors.
Also Aero RTF don't have a ADC line to measure current consumption.
Steps to debug:
* Run gazebo (or any other sim) server and client viewers via the terminal: `make posix_sitl_default gazebo_none_ide`
* In your IDE select `px4_<mode>` target you want to debug (e.g. `px4_iris`)
* Start debug session directly from IDE
This approach significantly reduces the debug cycle time because simulator (e.g. gazebo) is always running in background and you only re-run px4 process which is very light.
* Loosen thresholds for gyro consistency check until temperature compensated units are the norm
* Cut down string lengths so they make it through the MAVLink transport as a whole
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.
This change makes the operation more robust as it flags the whole group invalid in the first step. This should not be confused with being thread-safe - to be thread-safe, all accesses to _first and the following linked list need to be guarded by a mutex. This should be done outside of the mixer in the driver though, as the method depends on the board architecture.
NuttX had the CRTSCTS define incorrectly set for only output flow control, which broke our flow control logic. This commit patches NuttX and puts in addition a guard in place to prevent any future issue with the non-POSIX define being incorrect.
This has been debugged and identified by @ecmnet, which was the main contribution for this patch.
This patch fixes two issues:
* It sends the message on the first call, making sure that the first update gets sent out.
* It improves the rate scheduling. In an experiment with 0.5, 50 and 250 Hz all rates were correct within 0.3% of the intended rate.
The rotor count was incorrect which meant that control surfaces like elevons were scaled incorrectly. This was the main reason for really bad SITL performance
The main changes include:
* Better attitude tuning for airframes (more realistic models, the models had previously not as much thrust as the real vehicles)
* Better waypoint and navigation default parameters which match the on-hardware parameters
* More suitable minimum and trim airspeeds for VTOL and fixed wing which prevents stalls that happened in SITL previously (the new airspeeds match the real vehicles nicely)
This hot fix essentialy revert commit 265af481209d60033f7cd4c4216048b1ce3eb435
in NuttX/nuttx. The commit STM32 serial: Make input hardware flow-control work with RX DMA.
From Jussi Kivilinna has broken the DMA on an STM32F4 in a yet TBD way.
The symptoms are lost data on RX, the DMA count decrements but
the data ia not written to memory. This looks to be introduced but the
non circular DMA settings.