NET FPV: A Remote-controlled Live Stream...

by Atarix777 | March 17, 2013 | (22) Posted in Projects

Hello everyone out there!

Some weeks ago I wrote in my first little article about the fun that some of my friends and me had together while running a broadcast from the airfield and maybe you can still remember that I mentioned how great it would be to give to the virtual guests the possibility to control something via the internet on the hosts side, too.

Well, I am really very happy to let you know that my friend Wayne from the UK and me concluded just yesterday a little open source project that made this wish come true!

We know of course that there exist a lot of great working projects like this already on the internet, but our goal was mainly to find something that is simple to use and that could be combined with our existing hardware to hold the costs as low as possible.

After some research we decided to base our project on a Aduino Leonardo because it can be ordered for less then 20$ in near to every country and works with every computer that has a USB interface.

The following video will show to you how the system works in practice, interesting is also to mention that the distance between Wayne and me is just about 2000 Kilometers / 1240 Miles.

I know, my spoken english is even worst then the written one but I hope that I could made myself clear...

 

How does it work?

Basically it is very easy. The client or guest just need a gamepad and the clientsoftware. This software is sending the incoming commands over the internet (using the UDP protocol) to the receiving computer (Server) who sends it to the arduino. The arduino converts the recived commands into a PPM signal and can be connected to the trainer port of the most remotes (or directly to a TX Module as shown in the video).

To send back the video signal we just used Skype during our test out of convenience, but we even think already about a software release that could include the transmission of the video signal, too.

As you can imagine we are just at the beginning and there is still much to do, but our successful test showed that it can work out - and that even with a really low latency on a very long distance.

If you are interested to work with us on this open source project or to download the actual software version (of course it will be always 100% for free!) then please follow Wayne aka CurryKitten on his Sourceforge website.

He is preparing right now the material and will publish everything that you need during the next few days. Well, if you want to then you can order already your Aduino Leonardo in the meanwhile... ;)

Of course we are also happy about any feedback in comment section, ideas, suggestions and critic are always welcome as long as they are constructive. Thx a lot for the time that you invested to read this article.

COMMENTS

Zatoichi on March 17, 2013
Freaking Awesome Atarix777!
Raising the bar.
Log In to reply
gmyers2112 on March 17, 2013
I was reminded of the mars rover as you approached the dirt pile. Very nicely done. Next step flying. I would say that if you used an autopilot program for stabilization that it would help over come the latency issues and you could program return to home and landing sequences for safety. That's more straight forward with a multicopter than an fixed wing, but I've seen some pretty good UAV landings on YouTube, so all is possible.
Log In to reply
Atarix777 on March 18, 2013
I thought about the mars rover, too (i love that machine!) - i just wonder if the nasa guys do have the same fun driving it, as wayne and me had it with the crawler ;D

Yes, a Copter in ACC with RTH would be for sure the best solution when doing our flitetest - i guess we will do it exactly in this way.

I just cant wait anymore to give it finally a try, all this is just exciting ;D
Log In to reply
3zuli on March 17, 2013
Really interesting. How about the latency? Could this be used to control an airplane?
You could have another arduino on the client (controller) side, that would convert PPM from a hacked transmitter and send it to the internet via Ethernet shield. On the server (RC model) side you could have a wifi router and another arduino with wifi shield on the plane, that would act directly as "receiver". That way the controller would be completely computer-free.
I'm interested to see, where this goes :)
Log In to reply
CurryKitten on March 17, 2013
All possible, we started off decoding PPM straight from the 9X (no hacking required) but the idea was that we could involve non-rc people by having the client as a simple joystick. We could have a pure wifi vehicle, but would mean modding, the model, and we want to be able to very simply move between using them ourselves and having someone else use them. But feel free to use my code to create one yourself if you like :)
Log In to reply
nickatredbox on March 20, 2013
Here is some Arduino code form my project Xbee Arduino remote
http://kiwitricopter.blogspot.co.nz/2012/10/arduino-xbee-receiver-arduino-nano-v30.html
https://docs.google.com/file/d/0B8mGA5b7qZ15dFJHaEdxbmF5dTQ/edit?usp=sharing
https://docs.google.com/file/d/0B8mGA5b7qZ15b1pDOHA1SnU3cEE/edit?usp=sharing
Log In to reply
Atarix777 on March 20, 2013
That looks crazy :D

Right now i started to move to a new flat and so i am very busy during the next weeks - but when i am done i will take a closer look and see if i can learn something out of it (if my brain can handle it ^^)
Log In to reply
nickatredbox on March 20, 2013
I'm busy at work lots of coding so haven't had much time for playing with my toys, plus all the daytime coding makes you not want to do it as a hobby either.

I initially tried my Xbee remote system with Netduino which runs .NET. micro framework with some difficulty. The Arduino is way better for real-time stuff and so easy to program, If you are as old a me you probably learned to code in C too.

Really like your project, It would be cool to web cast from a space plane like David Windestål of RCExplorer fame built
Log In to reply
Atarix777 on March 20, 2013
I wish i would, but I don´t know how to program. When i was in school we learned a bit of basic+ but i forgot it all because i never had to use it. But i can understand at least a little bit when i see a simple source code. Maybe when i have a bit more time i will try to get a bit deeper into it with my mate wayne who does it for living and has a lot of experience.

Btw. the project from David was really crazy - who knows - maybe we will do something like this one day, too :)


Log In to reply
nickatredbox on March 20, 2013
Well my code is very simple really only one file I am a great believer in keeping it simple, so other people can fix it latter on when a change is required.

It sends a packet 50 times a second to the RX which catches it and rotates the servos
Log In to reply
Atarix777 on March 22, 2013
Thats a good thing, i like to keep it as simple as possible, too - especially because i like to share the ideas with others :-)


Log In to reply
nickatredbox on March 20, 2013
Nice bit of hacking
Log In to reply
apache64 on March 17, 2013
What a great mix of technology's, it's like a surgen doing an operation over the internet. I have heard of others controlling their model via GSM and thus getting a country wide coverage and long distance flights, London to John o'groats :-)
Log In to reply
Atarix777 on March 18, 2013
I was taking a look on the GSM controlled Ideas, too - but I still don´t get how they managed to get the video signal over these long distances... At least not in a legal way ;)
Log In to reply
philip monday on March 21, 2013
now that........is the definition of awesome!!!!!!!!!!
i have two UNO's and that looks like a project! great job!
i wonder if a cellular shield could be used as well???
Log In to reply
jon110334 on March 18, 2013
I logged in just to give this a thumbs up, but while I'm here I might as well ask a question. I bricked the motherboard on a turnigy 9x... could a $20 arduino interpret the (I guess they're potentiometers) of the standard 4 channel of the joysticks from my turnigy 9x and possibly output on a 3.5 mm stereo... it'd be nice if I can at least use it as a trainer.

It seems like if it can interpret a PS2 controller, it shouldn't be too much difficult to mod it so interpret the four signals from the joysticks of my 9x... but then again I am very new to the hardware side of things.
Log In to reply
Atarix777 on March 18, 2013
Hi John, thx a lot for ur nice feedback.

I am sorry but i think that you can not use ur T9X in no way until u will reflashed the rom. What does happen when u plug in a 3.5 mm stereo cable, does the display show up in a normal way or is it staying blank?

Reguarding the software + arduino. I am sure that it would be possible to use a Remote like the T9X instead of a gaming pad, we just used Gaming pads for now to make it possible for guests without any RC hardware to join our project in a easy way. But sooner or later there will be for sure a version that supports the 9X, too.
Log In to reply
nickatredbox on March 22, 2013
One thing you could try to reduce latency. In a past like I had a share in a game latency reduction proxy service. We used and SSH tunnel to route the game traffic to a server close as possible to the game server centre. This method improves the in game ping a lot, for example here in New Zealand we would get a ping of 500-1000 ms with World of Warcraft playing on the west coast of the USA servers. By using an SSH tunnel ping would be a much more stable 150 to 200 mS

Could be worth a look at http://hidemyass.com who are a general VPN proxy service see if iit does the same thing.

Alternately if you have the SSH demon running on the host which is commanding the Arduino routed out to the www you could putty listening into it directly and set the controller application to connect via sock proxy through putty on port 1080 which is simple enough. I suspect the latency would be greatly reduced as the routers on the www can't packet switch so much with the encrypted SSH stream as with normal http


Log In to reply
Atarix777 on March 24, 2013
That sounds very interesting, i will talk with wayne about that idea - maybe if we can gain some more ms out of that. But so far our latency is already very low 100-120ms and the arduino react (using udp) very fast and precise - the main thing we have to think about now is to reduce the video stream latency. But this depends also a lot on the hardware on the hosts site, i guess there is a lot of tuning to do, to get all recources free to encode as fast as possible...
Log In to reply
nickatredbox on March 24, 2013
That's my misunderstanding then, Its the video that lags, UDP is very good for the sort of small packet command data. I have sent video with no sound using HTTP at a reasonable rate perhaps a Raspberry Pi running an SSH deamon and a video capture device could do the job and mitigate the Skype latency
Log In to reply
Atarix777 on March 24, 2013
So far i never used a Raspberry PI, but its on my list :D

It would be great to create a cheap system (instead of using a notebook) making a comby out of a raspberry + arduino with all the needed software - in this way a lot more people could use this technology.

Right now i am in a house moving but as soon as this is over ill have the time to go deeper into the materies and to get a Raspberry. Wayne already got one to see what we can do with it, too :)
Log In to reply
nickatredbox on March 24, 2013
I will be tinkering with an RPi next month at work I might see if I can stream video of it. I'll share the code if you like
Log In to reply
Atarix777 on March 24, 2013
Sure, that would be great :D
Log In to reply

You need to log-in to comment on articles.


NET FPV: A Remote-controlled Live Stream...