ArduPilot / ArduPilot/MAVProxy
PingRX ADS-B causes MAVProxy to lose flight mode mapping
- Dominant language
- Python
- Stars
- 595
- Forks
- 773
- Avg merge
- 2d 6h
- Merged PRs (30d)
- 18
Description
Making an issue from this discuss post:
https://discuss.ardupilot.org/t/pingrx-spamming-mavlink/38472/8?u=anubis
Basically, when I have a PingRX plugged in and ADSB_ENABLED = 1, MAVProxy doesn't know what flight modes are available. I get these errors when trying to change or list flight modes:
```
LOITER> loiter
LOITER> ERROR in command: argument of type 'NoneType' is not iterable
Unknown command 'loiter'
```
```
LOITER> mode
LOITER> No mode mapping available
```
My guess is that the Ping's heartbeats are being handled as flight controller heartbeats, and fails to get a flight mode list because the MAV_AUTOPILOT parameter (or whichever is used to determine available flight modes) is 0. I suppose Mavproxy should be able to discriminate heartbeats based on their component ID or type.
Peter Barker [added a provision to pymavutil](https://github.com/ArduPilot/pymavlink/pull/270) to do this, but I'm still experiencing flight mode problems after applying this fix.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with the reported MAVProxy flight-mode commands and the pymavutil provision in pymavlink pull request 270. Reproduce with a PingRX connected and ADSB_ENABLED=1, then trace how heartbeats are classified and how the mode mapping is selected. Done means MAVProxy lists and changes flight modes without the reported errors.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- cli
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100