Routing APM communications to Internet

3689438649?profile=original

I’ve been wondering, what would be the easiest way to route telemetry and commands from APM to Internet. Using 3G modem, would provide almost unlimited range (I know there has been some discussions about this in DiyDrones forum. Here in Finland the GSM network is very covering, but due the way the cellular towers are optimized, maximum altitude where the connection works is probably less than 200 m.)

In theory, list of required hardware is not long. One just needs to receive messages from APM and encapsulate them to UDP packets and send via 3G modem and vice versa. Unfortunately handling PPP communications is too large task for simple microcontrollers. I ended up using BeagleBoard for the sake of easy development and since I had one at hand. I realize that BeagleBoard (which essentially is full computer by itself) is an overkill, but it’s not very heavy and fits easily inside Maja’s fuselage. Basically any embedded system, capable of running linux and acting as an usb host would do. Maybe in the future I figure out some additional tasks for BeagleBoard to do.

The setup works quite nice now. Unfortunately I haven't been able to do much flight testing. Weather constantly sucks this winter here in Finland. As you can see I already installed skis, but there's not even snow, even though it's almost new year.

I wrote more detailed post to my blog, with link to sources: http://antibore.wordpress.com/2011/12/28/routing-apm-communications-to-internet/

E-mail me when people leave their comments –

You need to be a member of diydrones to add comments!

Join diydrones

Comments

  • Here it is. Just change the IP and port number to your needs :) Command is in one line of course.

    sudo -u pi vlc-wrapper -I dummy -vvv v4l2:///dev/video0 :v4l2-width=352 :v4l2-height=288 :v4l2-fps=10 :sout='#transcode{vcodec=MJPG,vb=500,fps=10,scale=1,width=352,height=288,acodec=none}:std{mux=ts,access=udp{ttl=10},dst=192.168.10.10:2000}' :sout-all :sout-keep

  • @Paul: 2013-02-09-wheezy-raspbian.img is the image to use.

  • How are you guys adding power to the USB for the dongle? I would rather not have to haul a USB Hub air side. Maybe there are good connecting points for a castle 10amp BEC?

  • Yes, the powering of RPi is very importante. Remember to use common ground all over.

    I have been trying to make a film with my setup, but i just hate to hear my own voice on the video! :D

    I will make one with text and see if i can share that :-)

  • @Paul: I guess the amount of data is too much to handle for 3g network, but the tought crossed my mind as well :)

  • Sorry, i forgot the link on my last comment :)

    http://www.blackmagicdesign.com/products/videorecorder/

  • I guess this one would be a nice one, but i don't know if it's supported by RPi OS....

  • @Jerry: I tried but i got those grey lines. I will try your modprobe setting and see if it makes things going :)

    @all: I think that the problem is the format supported by the device. When i do a --listformat, Easycap doesn't support MJPEG. Then it needs to transcode the YUYV signal to MJPEG and the Pi has not enough resources to do this. If i use my Microsoft webcam it works fine. This cam DO support MJPG in --listformats. I guess i need another capture device which supports either MJPG or H.264 so the Pi doesn't need to transcode the videostream, but relay it directly. The challenge now is to find a video capture device which support H.264/MJPG AND works with The Raspberry Pi.

  • Tommy, did you try this yet?

    I forgot the last step in my setup to solve the grey screen with stripes !
    You must to load the 'easycap' driver with 'bars=0' as options !
    To do this properly, create a file into '/etc/modprobe.d' to specify the driver's options :

    sudo sh -c "echo 'options easycap bars=0' >> /etc/modprobe.d/easycap.conf"

    And reboot your RPi ;)

    Sebastien

This reply was deleted.