Skycontroller 2 - Wifi and HDMI out


#1

In addition to the USB out, does the Skycontroller 2 have it’s own WiFi access point to connect tablets or phones, like the Skycontroller 1 - i.e. SSID ‘Skycontroller_xxxx’

Does the Skycontroller 2 have HDMI out for video streaming to TV? And if so at which quality, 1080p/25?

Thank you.


#2

Hi,

No, and no.

The WiFi access point of the SkyController 1 was dropped in favor of the more reliable USB connection in order to improve the user experience (you don’t need any configuration on the phone and you should never lose the connection between the phone and the SkyController).

The HDMI output was removed because the official FPV support is now done by FreeFlight Pro, using the Parrot CockpitGlasses (or any other compatible device).

While this means that you can not connect to a SkyController 2 from a computer, you can still get the live video stream with a USB-Ethernet adapter:
If you connect your computer through ethernet to the SkyController 2, you just have to launch VLC (or any other RTP-compatible client), and open the network stream http://192.168.43.1:7711/video .
In this case, the video is sent in the original stream quality (480p or 720p, depending on the record quality set)

Regards,
Nicolas.


#3

Hi @Nicolas,

Does the USB network activate natively on Android? I’m curious to know how the SC2 proxies connections to the drone in support of ARDataTransferManager and FTP.

TIA!

Shell


#4

Hi,

When connected to a smartphone, the SkyController 2 does not use a usb-network (rndis) profile. We use a bulk usb endpoint on which we use the new libmux that we developped for the occasion. This library has an API to encapsulate TCP and FTP connections over the link.

For the FTP connections to the drone, the “API” view is pretty simple: libARDataTransfer does all the work for you.
The “back end” view is more complicated: internally, libARDataTransfer instanciate a libcurl instance which will talk to libmux over a link-local socket, libmux encapsulates the data over the USB link, then the libmux instance on the SkyController 2 side will convert back the data to an actual FTP connection to the drone … but you don’t have to deal with any of this ;). The only downside is that you can not bypass (or at least not easily) libARDataTransfer for your FTP connections to the drone.

On a side note, the SkyController 2 update channel is not FTP, it’s just a bulk upload of the update file on a libmux channel, but again, this is handled by libARUpdater ;).

Regards,
Nicolas.


#5

@Nicolas

I connected my SkyController2 with other computer (pi and Windows) through USB - Ethernet adapter. Both machine are getting auto ip address like “169.254.189.42”. I have tried setting static ip address in 192.168.43.xx subnet, but still it is not able to reach skycontroller.

I want to receive stream on my computer while controlling drone through controller. Am I missing something here?
(It works fine with freeflight)

Thanks
Alam


#6

@Nicolas @Djavan

Any suggestion will be highly appreciated.

Thanks


#7

Hi,

I had high hopes when I read @Nicolas @Djavan posts re. accessing the Skycontroller2 video stream via USB-Ethernet adapter to my computer and open the network stream http://192.168.43.1:7711/video

I did even buy a Disco with SC2 at more than e1000.

I am now struggling like @cheersalam to connect the devices to SC2, I cannot ‘see’ the controller and cannot receive any videostream in VLC or similar.

Your suggestion sounds really easy to implement, please help to enable this. or shall I return my Disco to you?

Thanks a lot!


#8

Hi,

The first thing to check is whether you have an IP address on your computer, if not, it might be an adapter issue.

What’s the brand/model of the network adapter that you’re using with the SkyController 2 ? We tried to include drivers for most USB-Ethernet devices, but we may have missed some. For reference, we use the TrendNet TU2-ET100 adapters at work, but we tested many others.

If you’re using the new 1.0.4 Version of the SkyController 2 (or newer), we changed the IP range from 192.168.43.0/24 to 192.168.53.0/24, so if your ip is in the new range, you have to use the proper address (i.e. http://192.168.53.1:7711/video)

Hope this solves your problem :wink:

Regards,
Nicolas.


#9

Hi @Nicolas thank you for your detailed reply. This has helped. I can confirm, it is not working with Gigabit Ethernet adaptor, only with 10/100 Mps like Trendnet. Thank you for clarifying.

Why the change of IP addresses? Will this change be cascading through to all Skycontrollers2 in market, with the latest firmware or will some be stuck with 43.0 and others with 53.0?

Will the Disco and Bebop2 also running on new IP addresses then? Or are they staying on 42.1

Final question: I noticed the stream can be sent only up to 720p -> Is there any way to increase this to e.g. 1080p for shorter distance higher quality streaming?


#10

Hi,

The change will be applied on all SkyController 2 when they’re updated to 1.0.4 version. We have no plan to change it again.

The change was made from internal requirements (we used 43.x for all “debug” network on our products, so it was hard to have both a Drone & a SkyController 2 in debug mode on the same computer, so we decided to shift the SkyControllers to 53.x)

Regarding the streaming resolution, you can’t increase past 720p on current firmwares :wink:

Regards,
Nicolas.


#12

Hi,

Here are some answers:

Q1: The ARStream2 protocol is basically a simplified implementation of RTP (and thus should be directly compatible with any RTP player !)

Q2: The application note documentation is quite old, but used with the latest version of the SDK, it should work fine. To use the latest version instead of the 3.9 release, change the repo init line to the following:
repo init -u https://github.com/Parrot-Developers/arsdk_manifests.git, then rebuild the SDK. By doing this, you’ll also have to add -lmux -lpomp at the end of line 5 of the BebopStreamVLC Makefile. (Hopefully, these changes will be pushed one day ;))

Q3: That’s exactly the point of the BebopStreamVLC application note!
Because the ARStream2 protocol is RTP-compatible, you can use any RTP-compatible player.
The BebopStreamVLC binary is necessary because the Drone will only Stream to an ARSDK-connected device. This program basically connects to the Drone at the libARDiscovery/libARNetwork level (lower than libARController, which does open the video socket) and send a startStream command. While this process is running, you can open the socket and read the RTP packets from any other process!

On a side note, the SkyController 2 makes this process even easier as I described in this thread: only the RTP stream is forwarded, and thus no additional software is required. The downside is that you can NOT have an ARSDK connection between a PC and a SkyController 2.

Q4: Sadly, you can’t. The protocol we use between a smartphone (iOS/Android) application and the SkyController 2 heavily depends on the possibility to create a bulk USB channel between the two devices. There is no networking involved at all, so an USB-Ethernet solution won’t work (it will work for RTP video forwarding, but not for actual ARSDK connection).

Regards,
Nicolas.


#14

Hi,

When I talk about the ARSDK connection in my previous message, think of it in term of protocol (i.e. your Python implementation of the protocols is an ARSDK connection to the drone), not in term of library used :wink:

Regarding the Streaming issues, you can check the following things:

  • Use the application note bebop.sdp file to open the stream (vlc bebop.sdp &)
  • Check that you pass the proper values to the "arstream2_client_stream_port" and "arstream2_client_control_port" keys in the discovery JSON. The values should be 55004 and 55005 respectively if you use our .sdp file.

This should ensure that the drone uses the good streaming protocol (if the json keys are missing, then the drone will use the legacy ARStream1 protocol, if available), and use the good destination ports (55004/55005, as specified in the sdp file)

Regards,
Nicolas.


#15

Hello Nicolas,

I am trying to connect the skycontroller to my computer thanks to the USB-Ethernet Essentiel B - https://www.boulanger.com/ref/8002813
Is the driver AX88772A Windows 7 Drivers included in the Skycontroller??
If not how can I include them? Thanks


#16

I continue to try various USB to Ethernet cables, the Dlink Gigabit cable does not work, https://www.dlink.com.au/home-solutions/usb-3-0-to-gigabit-ethernet-adapter
nor does the YN-8407 100 MB/s.

Maybe a better question is which USB-Ethernet are compatible? - can you publish a list please.


#17

Hi,

After a quick check, here is the status:
In the current software version (1.0.4), the usb-ethernet driver is only loaded for 2 different USB devices:

  • The trendnet one I talked about in a previous reply (usb vid 0x0b95 / pid 0x7720)
  • The D-Link DUB-E100 (usb vid 0x2001 / pid 0x3c05) … which does not seem to be the “current” DUB-E100 on the dlink website. The current one should work if (& only if) they did not change the USB vid/pid pair.

Any different device won’t work because we just don’t load the asix driver automatically.

I’ll try to push a change for the 1.0.5 version with the asix driver loaded during boot, so hopefully the 1.0.5 version will add support for most of the USB-Ethernet dongles supported by this driver. (but I can’t give a date for the release of the 1.0.5)

Thanks for reporting the issue !

Regards,
Nicolas.


#18

Okay - this makes things clearer - spent so much time trying to figure out what is wrong with all these connectors. Now it makes sense. Would be excellent to have the asix driver loaded during boot to support more usb-ethernet devices. Thanks for including it in your next release.


#19

Thanks a lot for your answers. I now have the TrendNet usb TU2-ET100 (old version) and new version but only the old version is working( don’t know why) . Finally , I succeed to execute the bebopstartstream program and obtain successful connection from Sky1 to PC Ubuntu 16.04 but I got an error "ARCOMMANDS_Decoder_DecodeBuffer () Failed. I have modified the bebop.sdp file as following:
c=IN IP4 192.168.53.1
m=video 5004 RTP/AVP 96
a=rtpmap:96 H264/90000

Is there something wrong? Or did I miss some configuration steps for Using the TrendNet USB-ETH adapter ? thanks


#20

Is it possible to get live view on an image projector via usb-vga adapter, similary to hdmi-vga adaper in case of SkyController 1?


#21

Hi @Nicolas - any projection of when you will release firmware 1.0.5 and we will have wider support for the USB-Ethernet cables? It would really help us a lot with our development efforts. Working with Skycontroller 1 is so old school :0 I would love to use my usb-ethernet adapters and work with SC2. Thanks for your continued efforts to keep all of us updated.


#22

Hi,

I can’t give you any date for the 1.0.5, but I can give more details about the USB-Ethernet compatibility:

I tested a lot of adapters ont a 1.0.5 beta version during the last few weeks, and here are the results. We use a 3.4.11 kernel (we won’t change that as it might have impact on the wifi driver), on which the asix driver (for the most common usb-eth adapters) does not support either gigabit nor usb3 adapters.
Basically, any “asix based, USB2.0 10/100 Mbps” adapter should work (like the previously mentionned trendnet one, or the apple one … with probably many others).
The best I can do after that is create a wiki post on this forum with a list of Parrot or community tested adapters :wink:

But if you can get a working usb-eth adapter for your SkyController 2, there will be more than just the video stream to enjoy on the 1.0.5 (or whatever it actually ends to be called) :wink:

Regards,
Nicolas.


SkyController 2 Questions