Hi
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-transmission-of-live-video-data/
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 :)
See you,
befinitiv.
Replies
dumb question: how do I check this?
cat /dev/zero | sudo ./tx -r 1 wlan0
Could you please also check if it supports the errored/crc fail frames? Befinitiv, how would he check this?
Tobias, can you please confirm you're using this in monitor mode?
Fantastic guys! I was looking at changing from 2.4GHz to 433Mhz due to the uncertainty of 5GHz so this will save me a good amount of $$$. Tobias, can you do a latency test as well as checking out the injection rate.
Cheers for doccumenting your effort..
Hi Tobias
Good to hear that it works on 5GHz! Could you tell us please which adapters you have used? That would be very important to many people wanting to try wifibroadcast.
A second adapter would definitely improve robustness of the transmission. You could even use different types of antennas.
By the way, how did you set the data rate of your adapters? Some accept "iwconfig wlan0 speed 54M" but many don't. That's why I had to patch the firmware of the TL-WN722.
Hi,
I used the adapter called "CSL 300Mbit" on amazon http://www.amazon.co.uk/gp/product/B00PKABAI6?psc=1&redirect=tr...
I added 'sudo iwconfig wlan0 rate 48M' to my send.sh script.
I also just tried following Tommy's advice to increase the tx power. That seems to work and has increased range a lot. I have so far only tested inside my flat. Going downstairs 2 floors through 2 concrete ceilings.
These CSL wifi adapters seem nice. Cheap and work out of the box on the pi.
Tobias,
How do you know it's in 5ghz mode? Is it due to channel choice or is there another way to choose between 2.4 and 5ghz ?
Tip: I use these commands to raise the power:
sudo iw reg set BO
sudo iwconfig wlan0 txpower 30
you can get the channel list by iwlist wlan0 channel. This will list the channel numbers with their respective frequencies. Thanks for the tip. I'll try setting txpower next. At the moment I'm just testing on ground. I'll rig up battery power for the rx pi now so I can walk around with it and see how much range I can achieve.
Ok tnx :)
I also found this link for the chipset:
https://wikidevi.com/wiki/Ralink_RT5572