The SkyController USA IP address on RNDIS

Hi,

I am writing to ask about how to get the IP address on RNDIS of the SkyController USA. I connected this latter to an Ubuntu machine using a USB-C cable and I checked that it was detected successfully using the lsusb command. However, when I ran ip addr, I could not see the IP address of the SkyController USA as explained in this link https://developer.parrot.com/docs/webserver-api/overview.html?utm_source=chatgpt.com#skycontroller-3-and-skycontroller-4. I am writing to ask if the SkyController USA has this configuration or it exists only in the SkyController 3/4? If so, how can I get the IP address in question?

Thank you for your time.

Hello @Ali1,

Could you share the output of ip addr show?

Thanks,
Hugo

Hi @Hugo ,

This is the resulto of the “ip addr show” command.

**1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp0s31f6: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
link/ether 08:92:04:15:39:90 brd ff:ff:ff:ff:ff:ff
3: wlp146s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
3: wlp146s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
inet 192.168.1.151/24 brd 192.168.1.255 scope global dynamic noprefixroute wlp146s0
valid_lft 53346sec preferred_lft 53346sec
inet6 2001:861:4281:3840:be67:d45a:ed65:a7a2/64 scope global temporary dynamic
valid_lft 86318sec preferred_lft 14318sec
inet6 2001:861:4281:3840:6dc5:7ffe:de4c:ee5d/64 scope global dynamic mngtmpaddr noprefixroute
valid_lft 86318sec preferred_lft 14318sec
inet6 fe80::6a3a:4c0c:7f6d:dd81/64 scope link noprefixroute
valid_lft forever preferred_lft forever
4: gpd0: <POINTOPOINT,MULTICAST,NOARP> mtu 1500 qdisc noop state DOWN group default qlen 500
link/none
5: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
link/ether c6:eb:af:5e:83:05 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
**

Besides, what I have noticed was that the SkyController USA, which is a Samsung Galaxy Tab A 2019, does not have the Tethering Mode. I think this what prevents it to share its IP address on RNDIS.

Thank you for your reply. I really appreciate it.
Ali.

Hi,

After checking, the SkyController USA needs to be connected via its Ethernet port to retrieve RNDIS.

Let me know if that works for you.

Best regards,
Hugo

Hi,

Yes, the solution that you’ve said worked! Thank you very much for your help. I can see the IP address when using the ‘ip addr’ command and I can ping it too. However, the port that is used to reach the drone, which is 4321, is not reachable. When i do nc -vz 192.168.53.1 4321, I see that nc: connect to 192.168.53.1 port 4321 (tcp) failed: Connection refused. Could you help me in this one, please?

Thank you.
Ali

Hello,

Could you clarify what you’re trying to do?
This will help us better understand how we can assist you.

Thanks,
Hugo

Hi,

Ok, here is the thing that I have been trying to do.

I want to use ROS2 to control the Anafi USA drone. I have found this repo https://github.com/andriyukr/anafi_ros which says that we can connect to the drone either directly using its WiFi or through the SkyController using its IP address on RNDIS. The solution that the authors provided makes use of the SkyController 3 or 4 and nothing was mentionned about the SkyController USA Tablet. My first concern in this discussion was how to get the IP address of the Tablet. Now that this problem was solved, I tried to check if the drone connection was established successfully by running a simple code like in https://developer.parrot.com/docs/olympe/userguide/advanced/physical_drone.html#connect-to-a-drone-through-a-skycontroller, but I ran into other the issue of the unreachable port 4321:
2025-07-29 15:02:04,293 [INFO] olympe.backend - _create_pomp_loop - Creating pomp loop
2025-07-29 15:02:04,294 [INFO] olympe.backend - _do_create - device callbacks have been added to arsdk_ctrl
2025-07-29 15:02:04,294 [INFO] olympe.scheduler - _create_pomp_loop - Creating pomp loop
2025-07-29 15:02:04,298 [INFO] olympe.media - _create_pomp_loop - Creating pomp loop
2025-07-29 15:02:04,298 [INFO] olympe.cellular - _create_pomp_loop - Creating pomp loop
2025-07-29 15:02:06,299 [INFO] olympe.backend - _retry_connect - CtrlBackendMuxIp failed to connect to 192.168.53.1
2025-07-29 15:02:09,300 [ERROR] olympe.backend - aconnect - Failed to connect to 192.168.53.1:4321: -16
2025-07-29 15:02:09,301 [INFO] olympe.backend - _retry_connect - CtrlBackendMuxIp failed to connect to 192.168.53.1
2025-07-29 15:02:10,299 [ERROR] olympe.drone - connect - ‘192.168.53.1 connection timed out
2025-07-29 15:02:10,300 [ERROR] olympe.drone - _do_connect - ‘192.168.53.1 connection retries failed
2025-07-29 15:02:10,301 [INFO] olympe.drone - disconnect - Disconnection with the device OK. IP: b’192.168.53.1’
2025-07-29 15:02:10,302 [INFO] olympe.drone - disconnect - Disconnection with the device OK. IP: b’192.168.53.1’
2025-07-29 15:02:10,304 [INFO] olympe.drone - _on_device_removed - <olympe.arsdkng.cmd_itf.DisconnectedEvent object at 0x7f88301936d0>
2025-07-29 15:02:10,306 [INFO] olympe.scheduler - _destroy_pomp_loop - Pomp loop has been destroyed: subscribers_thread
2025-07-29 15:02:10,415 [INFO] olympe.cellular - _destroy_pomp_loop - Pomp loop has been destroyed: Thread-4
2025-07-29 15:02:10,506 [INFO] olympe.media - _destroy_pomp_loop - Pomp loop has been destroyed: Thread-3
2025-07-29 15:02:10,519 [INFO] olympe.backend - _destroy_pomp_loop - Pomp loop has been destroyed: Thread-2

I hope I have been clearer when explaining the problem.
Thank you again.
Ali.

Hi Ali,

Just to confirm: are you using olympe.SkyController("192.168.53.1") ?

Best,
Hugo

Hey Hugo,

Yes, absolutely. Just like discussed before, such IP address can be got using either a USB-C cable for SkyController 3 or 4 or a RJ45 cable.

Best regards,
Ali

Hello,

Can you share your Olympe script with us?

Thanks,
Hugo

Hello,

Okay, here is the minimal code:

import olympe
from olympe.messages.skyctrl.CoPiloting import setPilotingSource

if __name__ == "__main__":
    skyctrl = olympe.SkyController("192.168.53.1")
    skyctrl.connect()
    skyctrl(setPilotingSource(source="Controller")).wait()
    skyctrl.disconnect()

Thank you,
Ali

Hey Ali!

Could you please tell me if while testing your script, the skycontroller is already connected to something else?

Hello Meryl!

Yes, the Skycontroller was paired with the Anafi Usa drone. I could see the video streaming on the Tablet screen.

Thank you!
Ali