dshot: fix motor test on CANnode
Also includes fixes for the DShot driver since stop_outputs is removed. The esc info command has been removed because it doesn't work with AM32, can only be used via command line, and complicates the driver
This fixes a number of issues with uavcan ESC control.
- Motor Testing when using a CANnode as a PWM expander now works by allowing the FunctionMotors class to perform prearm control
- The esc.RawCommand message is now always published for configured uavcan ESC outputs. Previously prior to arming the message would be published empty, which causes certain ESCs to enter an error state.
- Useless and redundant code has been removed and small name changes have been applied.
Even though all enum values fit into 13 bits, there's an error:
../../src/drivers/gnss/septentrio/sbf/messages.h:101:21: error: ‘septentrio::sbf::Header::id_number’ is too small to hold all values of ‘enum class septentrio::sbf::BlockID’ [-Werror]
This is with GCC 13.3.0 under Ubuntu 24.04
* removing logic from driver to send warnings when state-change to spoofing is detected, handled in estimatorChecks
* also remove jamming warnings from drivers, those are handled in the estimator checks as well
* add qmc5883p drivers
* format correction for qmc5883p
* make format
* remove extra newlines
---------
Co-authored-by: Jacob Dahl <dahl.jakejacob@gmail.com>
- timestamp was 0 if uavcan::BatteryInfo was received before uavcan::BatteryInfoAux
- scale was not set as unknown (-1) even though it is since it's never updated
- time_remaining was not initialized correctly and could sometimes be 0
unexpectedly which causes the drone to failsafe because there's reportedly no flight time left
_message.header.length - 4 is passed as unsigned to the CRC method, so if
_message.header.length < 4, the length wraps and causes invalid memory
access.
- Adds MSPv1 rx parsing to fetch VTX config
- Allows to inspect and change VTX channel through CLI
- Forward MSP_RC for stick commands osd
- Forward MSP_STATUS for arming status for PIT and LP mode
It turns out that we set the ADC range incorrectly leading to the
measured current being capped at a certain level as the ADC on the
sensor saturates.
Instead, we need to set the range according to the formula given in the
interface datasheet.
* adis16507: enhance driver to handle and recover from all failure modes
- Clean up driver
- Add optional hardware reset
- Fix scale and range for 125 deg/s variant
- Handle communication errors when read returns zeroes
- Improved perf counters
* change prints to PX4_DEBUG, define BURST_READ_CMD, do both soft and hard reset, use ScheduleNow instead of 1ms delay, change read/write stall period to SPI_STALL value