Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
With the latest Ardupilot firmware(Copter3.3 and Plane3.4) running on Flight Control. If we Connect the FC to GCS, and FC with OSD plug on. The arm-status and flight-mode will flicker from the output of OSD. Randy(developer of Ardupilot) explains that "in Copter-3.3 we do mavlink forwarding across the telemetry ports meaning messages from the GCS are probably reaching the OSD". I made a pitch for PlayUAVOSD. This issue also should happen on MinimOSD board, because most codes of PlayUAVOSD are borrowed from MinimOSD.
The modifications base on the suggestion of Randy:
"I think the OSD is getting confused by the heartbeat being received from the ground station (aka GCS). In Copter-3.3 we do mavlink forwarding across the telemetry ports meaning messages from the GCS are probably reaching the OSD. The way to resolve it is for the OSD to filter out the messages that are not coming from the vehicle. I think for the heartbeat that could be done using the MAV_TYPE. You'll probably find the mission planner sets the MAV_TYPE to "6" (MAV_TYPE_GCS)
Another option would be to filter by SYSID. Each MAVLink message will have a SYSID and a component ID. The vehicle is normally "1" while the GCSs are high numbers (like 255). The SYSID can be set by the user though so the perfectly correct way to do it would be for the OSD to maintain a little map of SYSID to MAV_TYPE using data collected from the heartbeats and then each time a message arrives, check if the SYSID maps to a vehicle or a GCS and throw away all the GCS ones."