Over the last couple of months I have been working on a project that might be of interest to you: https://befinitiv.wordpress.com/wifibroadcast-analog-like-transmiss...
Basically it is a digital transmission of video data that mimics the (advantageous) properties of an analog link. Although I use cheap WIFI dongles this is not one of the many "I took a raspberry and transmitted my video over WIFI"-projects.
The difference is that I use the cards in injection mode. This allows to send and receive arbitrary WIFI packets. What advantages does this give?
- No association: A receiver always receives data as long as he is in range
- Unidirectional data flow: Normal WIFI uses acknowledgement frames and thus requires a two-way communication channel. Using my project gives the possibility to have an asymmetrical link (->different antenna types for RX and TX)
- Error tolerant: Normal WIFI throws away erroneous frames although they could have contained usable data. My project uses every data it gets.
For FPV usage this means:
- No stalling image feeds as with the other WIFI FPV projects
- No risk of disassociation (which equals to blindness)
- Graceful degradation of camera image instead of stalling (or worse: disassociation) when you are getting out of range
The project is still beta but already usable. On the TX and RX side you can use any linux machine you like. I use on both sides Raspberrys which works just fine. I also ported the whole stack to Android. If I have bystanders I just give them my tablet for joining the FPV fun :)
Using this system I was able to archive a range of 3km without any antenna tracking stuff. At that distance there was still enough power for some more km. But my line of sight was limited to 3km...
In the end, what does it cost? Not much. You just need:
2x Raspberry A+
2x 8€ wifi dongles
1x Raspberry camera
1x Some kind of cheap display
Happy to hear your thoughts/rebuild reports :)
My images is made on Rpi 2.
I get a latency close to zero on my setup... Much better than my 4g setup using IP measured to 110ms. I will measure my exact numbers and see what i get, but i Guess around 40ms.
What's your secret sauce, how are you getting such low latency?
I measured the latency with the recursive stopwatch approach and got around 130ms delay on my laptop (https://befinitiv.files.wordpress.com/2015/03/stopwacht.jpg ). All the measurements I made suggested that the latency is comparable to the classical wifi approach. You find a thorough analysis of latency here: https://sparkyflight.wordpress.com/ . And the results with wifibroadcast very almost identical. Maybe the c920 behaves differently...
Some hints how you might archive better latency (all tailored for the raspicam):
- Try using 48fps @ 1280x720. This should have around 130ms of latency.
- Using the low h264 profile also saves some ms.
- Assure that the wifi channel you are using is not occupied. The wifi card still uses CSMA/CA so a busy channel might increase latency.
- Apply my firmware patch (very important) and for a better range also my kernel patch for the WN722N
- Decrease the retransmission block size (-b parameter of both tx and rx)
Hope that helps!
I'm finding the same thing, about 50m. With the 5ghz CSL dongles with rhcp spiral antennas I get about 80m. I got nearer 1km with the ubiquiti setup using the same antennas. Has anyone else managed to replicate this system with decent range yet?
I performed a ground test today and I could walk as far as 160m before losing contact. I think I could have gone further if I could have maintained a clear line of sight to the transmitter - there are a lot of trees in my area. I then remembered a land mark nearby and used the MP to measure the distance.
I did the test with my regular gear: 2 x RPI, 2xAlfa AWUS051NH (2.4Ghz), BlackPearl FPV monitor with HDMI input. I left the transmitter on my porch capturing and transmitting the estopwatch.net output and then I carried around the receiver gear walking as far as I could while trying to maintain a line-of-sight to the TX. I noticed that I'd lose the signal if a building or crop of trees blocked the line back to the TX.
It's probably too much detail but here's a picture of the setup.
No such thing as too much detail Randy! :P
Please let me know if you get 5GHz working on that card.
I still haven't managed to do an outside range test due to a busy work week and bad weather. Indoors I get significantly less range compared to my analog immersionrc transmitters. TX in same place, walking down two floors through with signal having to pass two concrete ceilings. I just cracked the plastic cover off the rubber duckies. Both antennas have 26mm long whips, so they are 2.4GHz antennas. Switching the antenna to a 5.8GHz with circular polarisation should help increase range. I also find that the video quality using wifibroadcast is worse compared to gstreamer on standard wifi using the same CSL dongles. That might just be down to these dongles being crap. How can I check the injection rate? Is this the console output "interface rate" of the wifibroadcast tx? It is showing values between 550.xxx and 750.xxx I've just seen befinitiv's screenshot here showing his lossrate displayed on the rx terminal around 0.001xxx The CSL dongles show lossrates of around 0.3 to 0.8 so significantly worse!! Might be time now to ditch those and try the WN722N?