Can't connect UAV with GCS over TCP connection


Hi, I have successfully connected between UAV and GCS through UDP connection. But when I switch the setting to:
TELEM1="-A tcp:PC_IP_address:14550"

# Options to pass to ArduPilot
ARDUPILOT_OPTS="$TELEM1"
In the Mission Planner software I entered the IP address of the Raspberry Pi and port = 14550. But the software said it could not connect. I am using arducopter 3.6, Mission Planner 1.3.74. Will these 2 versions have TCP connection problems? I checked the firewall and found no problems. Thank you for your help.

First, why do you want to use TCP?
It adds overhead and it is connection based. This means, if the network connection goes out and comes back again, you will have to connect to the UAV again. UDP telemetry will simply be received again by the GCS.
If you still want to use TCP, change the telemetry line to:
“tcp:0.0.0.0:5760”. 0.0.0.0 will cause ardupilot to listen for incoming connections on all network devices.
5760 is just a different port to avpid confusion with UDP telemetry.

2 Likes

Thank you for the solution, I realize the main problem is that only port 5760 can be used. I want to use TCP because the link quality is better, the loss of packets is much less. I will try to compare video transmission in two ways UDP or TCP. One more time thank you very much.

Telemetry and video transmission are two different things. The telemetry settings have nothing to do with video transmission.

Well, depending on the situation I will use UDP or TCP for control or live video transmission. This is just an experiment I want to practice. Can we judge UDP or TCP link quality based on Mission planner? Something like the RSSI of a radio. I usually ping the IP address of the RPI to check the latency on the channel, but I feel this is not very accurate.

Hi Hoàng,

I’ve checked ArduPilot documentation on Mission Planner functionality and haven’t found such built-in tools. As I understand, you may use some external tools only.

I believe using ping should be enough for checking your configuration since it’s a standard tool for measuring the round-trip time of the packet.