In case people missed it (I did until Tridge pointed it out) there’s a discussion on diydrones here about a guy, befinitiv, who has made an open source wifi based FPV system using a couple of RPi2s.
http://diydrones.com/forum/topics/3-km-hd-fpv-system-using-commodity-hardware
https://befinitiv.wordpress.com/wifibroadcast-analog-like-transmission-of-live-video-data/
People may remember that Philip did something like this a year ago or so but there’s some big improvements in the method that he’s using (described on the wordpress blog post above). If people are interested in contributing in this area it might be good to try and replicate what he’s done. Who knows, maybe this could be the basis of a low-cost open source solution.
-Randy
Is the throughput of a WiFi dongle higher in comparison to a normal 2.4 Ghz radio?
--
You received this message because you are subscribed to the Google Groups "drones-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to drones-discus...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
-----END PGP SIGNATURE-----
--
You received this message because you are subscribed to the Google Groups "drones-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to drones-discus...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Pritam,
Thanks for sharing, that sounds good.
James,
Ok, I see what you’re saying about the potential illegality of the wifi broadcast method. Something we should look into!
By the way, here is the wifibroadcast code base on “Bitbucket”.
-Randy
From: drones-...@googlegroups.com [mailto:drones-...@googlegroups.com] On Behalf Of pritam....@gmail.com
Sent: 27-May-15 6:29 PM
To: drones-...@googlegroups.com
Subject: Re: [drones-discuss] Re: opensource FPV wifi discussion on diydrones
Hi Randy,
Why do you think raspberry pi cam is bad. I find it good enough. If you want slightly more flexible option, arducam.com has pi compatible c-mount capable camera modules with a lot of different lenses to choose from. Infact I ordered the arducam module for their choice of fish eye lenses. The sensor is same so raspberry pi camera software works just like the official module.
I ordered some of the supported wifi dongles also and will start experimenting when they arrive. Nice to have an excuse to actually do something with the RPi''s I have had lying around for a good while. I will start on the ground using a rover to get a more controlled environment for testing.
First order will be to use gstreamer to add some error correction robustness to the video transmission. Also the moment I think the RPI camera will become a weak link when we move forward. Anyone know of any project/hardware so that you can connect HDMI to the RPi camera bus interface?
BBB has a camera cape but I think the setup comes out expensive and I don't know how good is the camera support. Best thing about pi is "it has such matured Linux stack and everything just works most of the time"
--
C920 has an h.264 encoder built in. Not sure if that would work for this project.
I’ve done some flight tests few weeks ago on my NAVIO+ IRIS and it worked on a ground test out to 160m and a flight test out to about 250m using just a single receiver and transmitter and using the stock 5db antennas. I live in a heavily wooded area so it likely works further than that. There are a number of things that I can do to improve the range including:
1. Increasing the TX’s output to 30db
2. Use better antennas
3. Attach another receiver to use “diversity”.
I’m pretty much ready to do all the above but mostly recently I’ve been trying to reproduce Jaime’s work to use a webcam instead of the RPi camera. This is useful because the RPi camera produces a lot of interference on the GPS (although wrapping the camera and the ribbon cable in copper tape seems to help).
Latency has been measured as jumping between 115ms and 170ms but befinitiv may have found the cause just yesterday so we will likely see it get lower by 20ms and hopefully more consistent.
-Randy
--
John,
This is just streaming h.264 but it doesn’t have to be. It can broadcast anything and even allows multiple pipes for different types of data at the same time. You just need to create encoders/decoder to send/receive from each pipe and then do something with the data.
befinitiv’s site for those who haven’ seen it: https://befinitiv.wordpress.com/wifibroadcast-analog-like-transmission-of-live-video-data/
-Randy
Daniel,
Thanks for the info. I haven’t tried too swapping around the dongles yet but maybe I will now. So far I’ve been using the Alfa’s for both tx and rx.
I haven’t set the power to 30db yet. Do you have a pre-built binary for the driver to do that? Doing the build myself is a bit daunting.
I have only done two range tests so far (one ground, one air) so I haven’t tested increasing the power. BTW, Tridge suggested getting an attenuator to allow doing some of this testing from the bench but I haven’t done that yet.
Maybe you’re “Fnoop Dog” so you’ve probably already read this but I seems like befinitiv found a few software issues causing latency (but maybe not all the latency):
1. raspivid was buffering part of the last frame so that was delaying the image by one sample.
2. Converting the stream into NALU units required waiting for the start of the next frame’s start header which would also delay everything by one frame.
Discussion here: http://diydrones.com/forum/topics/3-km-hd-fpv-system-using-commodity-hardware?id=705844%3ATopic%3A1988351&page=26#comments
-Randy
#!/bin/sh
CURR_TX=$(iwconfig wlan0 | head -1 | awk '{print $5}' | cut -d '=' -f 2)
while [ 1 ]do if [ "$CURR_TX" = "30" ]; then echo "Do not change Tx power" else echo "Change Tx power to 30 dbi" /sbin/iw reg set BO sleep 0.5 /sbin/iwconfig wlan0 txpower 30 fi sleep 60done
#! /bin/sh# /etc/init.d/CheckTxPower#
WORK_DIR="/var/lib/CheckTxPower"DAEMON="/bin/sh"ARGS="/usr/local/bin/check_tx_power.sh"PIDFILE="/var/run/CheckTxPower.pid"USER="root"
. /lib/lsb/init-functions
do_start() { log_daemon_msg "Starting system $DAEMON $ARGS daemon" mkdir -p "$WORK_DIR" /sbin/start-stop-daemon --start --pidfile $PIDFILE \ --user $USER --group $USER \ -b --make-pidfile \ --chuid $USER \ --exec $DAEMON $ARGS log_end_msg $?}
do_stop() { log_daemon_msg "Stopping system $DAEMON $ARGS daemon" /sbin/start-stop-daemon --stop --pidfile $PIDFILE --verbose log_end_msg $?}
# Carry out specific functions when asked to by the systemcase "$1" in start) do_start ;; stop) do_stop ;; restart|reload|force-reload) do_stop do_start ;; status) status_of_proc "$DAEMON $ARGS" "$DAEMON $ARGS" && exit 0 || exit $? ;; *) echo "Usage: /etc/init.d/CheckTxPower {start|stop}" exit 1 ;;esac
exit 0