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 :)
very nicely done!
Thank you very much, I hope I will manage to install or maybe somebody will make ready .img
I think it is an good idea to make a few working images.
One for pi A with TL-WN722 and maybe one for the high power alfa.
Same for pi 2B . That way we can stop wasting our time trying to figure these small bugs out.
I'm pretty sure that more people are willing to pay to make such image (lets say 10-15 euro p.p.). A small indigogo / kickstarter campaign can be used to raise the money. This way the developers of this project get at least something back. A "commercial" version of this idea is selling for 490-690 euro.
These hit and miss instances cost a lot of time for users, so why not stop wasting our time and just use something that works. And in the meanwhile support the developers of the project.
Pritam, a big thank you very much. Using your commands it is now working, the image quality is not good compared to when I stream to windows but IT'S WORKING
The quality should be pretty much same unless you are using an entirely different screen/laptop. Or you may be using a higher bitrate on the pi side when working with the windows system. (the -b option).
I’ve done my first few flights using your code and wanted to say thank you! My setup is pretty stock:
Glass to glass 178ms using mplayer. My flights have all been close range, the picture has been good but I look forward to testing FEC.
I’m ham licensed and interested in the ham band capabilities of the AR9271 chipset, it seems like a legitimate use with less congestion and higher power limits - has anyone tested it with wifibroadcast?
I could not get gstreamer to work on Ubuntu – is it worth perusing or just stick with mplayer?
Thanks for this awesome project!
Could anybody help me with my setup?
I start up the transmitter but the led on wifi does not blink, just stays on.
On the receiving side I do not see any message going by after the "ethercap" message.
I'm going on vacation and hoping to get this working by Wednesday. I'm currently uploading my sd card image of the receiver and the transmitter. Willing to pay 50 bucks to get this working.
I had the same problem and it took me forever to figure out what was going wrong.
Reviewing your google docs document shows that you most likely encountered the same problem.
It is – vs -
raspivid -ih -t 0 -w 1280 -h 720 -fps 30 -b 4000000 -n -g 60 -pf high -o – | sudo ./tx -b 8 -r 4 -f
raspivid -ih -t 0 -w 1280 -h 720 -fps 30 -b 4000000 -n -g 60 -pf high -o - | sudo ./tx -b 8 -r 4 -f
and it will hopefully work.