If the first publisher publishes multiple commands right after each other
(e.g. on 'commander takeoff'), mavlink would miss the first and print an
error like 'vehicle_command lost, generation 0 -> 2'.
This is due to a recent uORB behavior change.
benefits:
- read & validate product name
- sensor configuration with the output we want (raw distance data)
- get signal quality
Protocol description: http://support.lightware.co.za/sf20/#/commands
Other Lightware sensors can easily be moved over to that as well.
px4_add_library adds uorb dependencies, which since cf26f24387 added libm.
This in turn led to build failures for px4_io-v2 in the form of:
__aeabi_f2d' wf_sqrt.c:(.text.sqrtf+0x54): undefined reference to
__aeabi_ddiv'
Behavior of the 'param import' command:
- if no file provided, parameters are marked as saved (differs from before)
- if a file is provided: parameters are not marked as saved
BOARD_INDICATE_ARMED_STATE was only set during arming, so an external
component might have reset the board during param save, leading to param
loss.
This extends the API to trigger the arming state also while the shutdown
lock is taken.
So that clang 12 does not complain:
loop variable 'child' is always a copy because the range of type 'List<ModuleParams *>' does not return a reference
- simplifies creation of an airframe config
- could be done from QGC, but it only knows if a param is non-default from
metadata, which can be incorrect/missing information
- for the list of exceptions we could look at '@category', but we don't have
that info in the build
- there might be some more exceptions to be added
- moves process airframe deps to the tar generation, to ensure whenever
airframes are processed, the tar is extracted first.
This is required, because if the airframe processing is done on pruned
ROMFS, it's missing the tags.
- avoid using init.d/rcS in dependencies, use a separate file instead.
This is because pruning modifies the rcS, and the next rebuild was
seeing a changed rcS, resulting in unnecessary regeneration.
* [WIP] i2c_spi_buses: add '-q' for quiet startup flag
And enable for optional board sensors.
* ROMFS: rc.sensors try starting all optional I2C sensors quietly
Co-authored-by: Daniel Agar <daniel@agar.ca>
It is not playing nice with other devices on the same bus.
In particular with the FreeFly RTK GPS: once the reset is sent, the whole
bus is blocked and becomes unusable.
Current understanding is that this device contains another chip on the bus
(apart from the mag+baro+led).
I don't see much use for it either, as we configure everything there is to
configure (just the mode).
_num_outputs is set according to the mode_pwmX call, which is required
for camera triggering.
This fixes camera triggering via PWM, as it avoids overwriting the channel.
If some bits are set but no topic was added, _subscriptions was null but
later accessed.
During normal use this only happens when switching between different
firmware versions with different SDLOG_PROFILE definition (with custom
config).
- avoids the need for ekf2_timestamp publications by q and lpe
- adds logger to the lockstep cycle and makes it poll on ekf2_timestamps
or vehicle_attitude. This avoids dropped samples (required for replay).
Minimum requirement to use: set IMU_GYRO_RATEMAX to 400.
Logging rate of a single topic: ~85 KB/s. If multiple should be logged,
a really good SD card has to be used.
Greatly improves the noise on the d-term on a Kopis 2. Apparently the order
of filtering vs differentiating matters.
Also disables the DGYRO filter by default, as the D-term now already has
a default filter of 30Hz applied.
It cause bad transfers on a Kopis 2, though not on a bench KakuteF7 unit.
Not sure if this is a single case.
nsh> icm20689 status
INFO [SPI_I2C] Running on SPI Bus 4
INFO [icm20689] FIFO empty interval: 1000 us (1000.000 Hz)
icm20689: transfer: 46375 events, 6790549us elapsed, 146.43us avg, min 54us max 1709us 81.564us rms
icm20689: bad register: 0 events
icm20689: bad transfer: 4284 events
icm20689: FIFO empty: 0 events
icm20689: FIFO overflow: 1 events
icm20689: FIFO reset: 2 events
icm20689: DRDY interval: 375585 events, 124.93us avg, min 99us max 250us 2.322us rms
INFO [drivers_accelerometer] /dev/accel device instance: 0
INFO [drivers_accelerometer] calibration scale: 1.02174 0.99918 0.98338
INFO [drivers_accelerometer] calibration offset: 0.76124 -0.00725 -0.16437
INFO [drivers_gyroscope] /dev/gyro device instance: 0
INFO [drivers_gyroscope] calibration offset: -0.08153 0.02432 0.00050
In particular this together with the previous commit reduces timesync
round-trip time spikes by more than 10ms, and makes it generally more
stable.
Other streams are reordered according to onboard priority.