EZ-WifiBroadcast, cheap digital HD transmission made easy! - RC Groups
Thread Tools
May 15, 2016, 03:55 PM
"cheap, small, lightweight"

EZ-WifiBroadcast, cheap digital HD transmission made easy!

Well, the headline already says it, Wifibroadcast made easy.

The goal of this project is to make the usage of Befinitiv's Wifibroadcast (https://befinitiv.wordpress.com/wifi...ve-video-data/) easy for people who would be otherwise drawn away because it can become quite time consuming and frustrating setting everything up if you're not used to tinkering with linux. Just download the SD card image, put it on two SD cards, switch everything on and 15 seconds later you'll see a live HD picture.

- Supports Pi1B+, Pi2B+, Pi3B+, Pi Zero, Odroid-W, Pi V1 and V2 cam (RX Pi needs to be atleast a Pi2!)
- Does not support any Pi A model!
- For Pi Zero W support, please follow these instructions: https://github.com/bortek/EZ-WifiBro...Zero-W-support
- max. possible resolutions (depending on cam used):
1280x720p 60fps
1296x972p 42fps
1640x922p 40fps
1920x1080p 30fps
- max. possible video bitrate about 12Mbit
- Latency ~140ms with 720p 48fps default settings, minimum possible latency roughly around 110ms
- Support for 2.3/2.4/2.5Ghz bands and 5.2Ghz to 5.8Ghz bands
- 2.4Ghz on 3dbi omni antennas: ~1km range with ~70mw wifi sticks, about 2km with ~300mW high-power cards
- 5Ghz on 3dbi omni antennas: ~250m range with 25mW wifi sticks, ~1km range with ~300mW high-power cards
- Configuration can be done from Windows, no Linux knowledge required
- Supports different configuration profiles selectable on the field via jumpers or DIP switches
- Forwarding of video stream and telemetry data to 2nd display via: USB Tethering, Wifi Hotspot, Ethernet, Wifibroadcast relay mode
- Fully dynamic and automatic detection of 2nd display, just plug it in or connect via Hotspot and it'll work
- 2 wifi sticks transmit diversity on two different frequencies supported for bulletproof video link
- 3 wifi sticks receive diversity support for Atheros, 5 wifi sticks receive diversity support for Ralink
- Integrated OSD with support for Mavlink (not bi-directional), Frsky, LTM
- .AVI Ground recording and .PNG screenshots automatically saved to USB stick
- Quick startup, about 10 seconds until video is shown
- No issues as with standard wifi, no disconnection, video freeze etc.
- Live and responsive RSSI display with defective blocks and packetloss display
- Handling similar to analog gear, just switch on and fly
- Smooth and stutter-free video (thanks, mmormota)
- Video reception is very stable even in difficult multipathing environments, no constant glitching like with analog
- No expensive and large circular antennas required
- OSD overlay rendered on the receiver will stay clear and functional even if video is too bad to fly
- SD card reliability and general robustness tweaks (read-only filesystem, syslogging to SD disabled, etc.)
- Debug logs and screenshot will be saved to sdcard in case of errors
- RC over wifibroadcast via Joystick (not much tested yet)

Supported wifi cards:
See here for supported wif cards and info : https://github.com/bortek/EZ-WifiBro...s-and-doungles

See here for important info and pictures: https://github.com/bortek/EZ-WifiBroadcast/wiki/Wiring

Installation / Setup
- Download the image and unzip it
- Write it to two (minimum 2GB) SD Cards using Win32DiskImager or any other SD image write tool
(here's more info on how to do that: https://www.raspberrypi.org/document...alling-images/)
- See here for important wiring info: https://github.com/bortek/EZ-WifiBroadcast/wiki/Wiring

- Put SD Card in Windows computer or anything that has a text editor (Tablet, Smartphone) and edit wifibroadcast.txt
- For first tests, leave default settings, only change frequency!

Ground Recording
- Fly
- Plug-in USB memory stick after flight - recorded video will be shown and video/screenshots/telemetry will be saved
- Video recording time is limited to around 13mins with ramdisk temporary video storage. Longer recording times are possible with sdcard temporary storage, but this can currently cause video stuttering. Use a fast sdcard.

Video display on android device via USB tethering
- Download and install FPV_VR on your android device (link below)
- connect android device via USB and set to to USB Tethering mode

Video display on android device via Wifi Hotspot
- Download and install FPV_VR on your android device (link below)
- Enable WIFI_HOTSPOT in wifibroadcast config file
- Change channel and SSID/password in apconfig.txt
- connect to Wifi network name "EZ-Wifibroadcast" password "wifibroadcast"
- Make sure Wifi Hotspot frequency is atleast 120Mhz far away from Wifibroadcast frequency

Although ofcourse nothing is perfect, EZ-Wifibroadcast has been extensively tested with all kinds of different hardware combinations and has been left running for days without any issues. Considering that the hardware and software is exactly the same, if there are issues, it's likely these are cause by some setup problem. Generally, if you experience an issue, always re-test with default settings to see if a configuration change caused it.

If you experience any stability issues, dropouts or constant glitching, its likely that the reason is an unstable power supply or otherwise bad wiring or configuration. It's crucial for stable operation that the power supply is good and that there are no intermittent connections. 99% of problems reported are caused by a bad power supply and/or bad wiring.

See here for important wiring info: https://github.com/bortek/EZ-WifiBroadcast/wiki/Wiring

See here for instructional videos made by user dweano: https://www.youtube.com/playlist?lis...ey58Cj-iMOoFLv

TX: The CPUs on the Raspberry Pi 1 and Pi Zero are more or less maxxed out with standard settings (6Mbit bitrate, 8/4/1024 FEC). Two TX dongles, higher resolution/bitrate, or more error correction or smaller packet sizes will most likely not work. Even if it seems to be working on first look, it can happen that latency suddenly raises if the CPU is loaded to much (in situations with high bitrate fluctuations, like fast scene changes). If you are not constrained with size and weight on the aircraft, a Pi2 or 3 is recommended as it will allow for higher bitrates/resolutions and FEC settings and generally has more headroom for possible future enhancements.

RX: Raspberry Pi1 and Pi Zero are no longer supported with version 1.4. Get atleast a Pi2 for the RX.

Tested Hardware:
Wifi dongles: AWUS036NHA, AWUS051NH, AWUS052NH, TL-WN722N, TL-WN822N V2, CSL 300Mbit stick
Raspberry: Pi 1 B+, Pi2 B+, Pi3 B+, Pi Zero 1.3, Odroid-W
Cameras: official Pi V1 Cam ("V1.3" on the PCB), official Pi V2 Cam ("V2.1" on the PCB), china V1 cam with 160 wide-angle lens

Please report back if it works for you. Also if it doesn't


on Freehoster (beware of ads): https://www.file-upload.net/en/downl....6RC3.zip.html
on Google Drive: https://drive.google.com/open?id=1gc...BZtw5CV_btmbFg

on Google drive: https://drive.google.com/uc?id=0B8ke...xport=download

on Freehoster: https://en.file-upload.net/download-...16rc1.zip.html

on Google drive: https://drive.google.com/uc?id=0B8ke...xport=download

on number3's Google drive:https://drive.google.com/open?id=0Bx...k9mLWR1b0JENDg
on free file hoster: http://www.file-upload.net/download-...t-1.4.zip.html

V1.3 beta
on Bortek's Google drive: https://docs.google.com/uc?id=0B8ke2...xport=download
on free file hoster: http://en.file-upload.net/download-1...3beta.zip.html



(Sorry for the crappy filehosters, couldn't find anything better quickly. Consider using an adblocker like "uBlock Origin").

Useful links:
Wiki with more info and downloadlinks: https://github.com/bortek/EZ-WifiBroadcast/wiki
Github main page: https://github.com/bortek/EZ-WifiBroadcast

FPV_VR (Viewer for android devices connected to Pi via USB tethering):
http://fpv-community.de/showthread.p...ast-OpenSource (german)

Edit 2017-12-27: EZ-Wifibroadcast 1.6RC3 has been released.

- New feature: RSSI/packetloss graphing and logging
- New feature: integrated airodump-ng wifi scanner
- Increased wifibroadcast-1.txt GPIO config combinations from 8 to 16
- Reverted back to stty serialport initialisation to fix issue with heartbeats getting lost
- Rewritten telemetry rx: Should fix out-of-order delivery and packetloss for telemetry
- Changed manual bitrate setting to kbit/s instead of bit/s
- Measured bitrate display in video stream can be disabled in wifibroadcast-1.txt
- Added debug option to wifibroadcast-1.txt
- Removed confusing bitrate display during startup on RX
- Changed txpower for Atheros back to 58 (was 56 accidentally in 1.6RC1 and RC2)
- Changed Atheros Thresh62 parameter to 26
- Added configurable mavlink forwarder: cmavnode or mavlink-routerd
- cmavnode.conf moved to boot partition for easier access
- Display error message in case of syntax errors in osdconfig.txt
- Added various USB webcam drivers to the kernel (for experimenting)
- raspivid default intrarefresh changed to "-if both"

Edit: EZ-Wifibroadcast 1.6RC2 has been released.

- telemetry downlink fixes
- replaced cmavnode with mavlink-routerd (supports UDP and TCP)
- more debug logging
- Version on boot-up and in readme.txt updated to reflect rc status

Edit: EZ-Wifibroadcast 1.6RC1 has been released.

-Kernel, Pi firmware and Pi userland updated (Kernel 4.9.35, Raspbian 2017-07-05, Pi0W should work out-of-the-box)
-Latency lowered slightly (Kernel 4.9.35 improves scheduling and jitter, wbc rx -d 1 works again)
-Mavlink R/C support (thanks dino_de!)
-Graupner/JR SUMD R/C support
-Flysky IBUS R/C support
-Multiplex SRXL / XBUS Mode B R/C support
-Support for RTL8192CU cards added (only RX, not tested, for experimenting)
-Support for RTL8812AU cards added (only RX, not tested, for experimenting)
-Bitrate measuring on TX, simplifies FEC and bitrate settings, allows for higher bitrates
-Bitrate display on RX, shows bitrate set on TX as well as live received bitrate on RX
-New downlink and Uplink tx/rx should improve telemetry down- and uplink considerably
-Frame header format optimized for minimum overhead (makes the frame format incompatible with v1.5)
-OSD renders only (and instantly) when receiving attitude frames, artificial horizon is smoother and causes less CPU/GPU load
-More efficient tx_rawsock using raw sockets instead of libpcap injection, higher bitrates possible with Pi0/1
-CPU clock lowered to 900Mhz and overvoltage lowered to "3" for less heat and power consumption
-Atheros short preamble mode: Improves CTS protection and R/C link, allows to use 11 Mbit datarate "long-range" mode
-Atheros medium access parameter THRESH62 lowered from 28 to 24: should improves R/C link
-Atheros medium access parameters SIFS, AIFS, CWMIN, CWMAX, etc. are configurable now
-Increased max. framesize, Atheros wbc payload 1550 bytes, Ralink wbc payload 2278 bytes
-Support for 802.11b 11mbit and 5.5mbit modes added (lower quality/higher range)
-Support for CDC ACM added (for Pixhawk USB port)
-Support for BCM2385 I2C and Toshiba TC358743 added (not tested, for B101 experimenting)
-Made video UDP port configurable (for Missionplanner)
-Cosmetic fix: cat write error message removed when ramdisk full
-Cosmetic fix: socat init messages removed
-Cosmetic fix: German "O" for "Ost" in OSD compass changed to english "E" for "East"
-Cosmetic fix: OSD RC_RSSI option re-named to WBC_RC_RSSI
-Bug fix: Serial telemetry data corruption due to wrong stty settings
-Bug fix: Pi1A+ turned out not to be 100% stable at 1000MHz CPU clock
-Bug fix: serial port (for telemetry) did not work on the new Pi0W

Edit: EZ-Wifibroadcast Version 1.5 has been released

- New feature: Bi-directional Mavlink telemetry support (both over wbc and external devices e.g. 3DR dongles or LRS with telemetry) (untested!)
- New feature: Telemetry output on Rx Pi serialport for antenna tracker etc.
- New feature: RSSI forwarding to FP_VR android app
- New feature: RTP video stream forwarding to allow video display in Tower app and QGroundControl app
- New feature: R/C RSSI and lost packets display added to OSD
- New feature: CTS protection mode (only for Atheros), improves link quality in environments with wifi interference
- New feature: Telemetry logging to textfile for later review and debugging
- New feature: OSD text size can be scaled now, outlines can be disabled for better readability on low-res displays
- New feature: OSD: GPS/Baro altitude and groundspeed/airspeed can be configured (untested!)
- New feature: Transmit power for Atheros cards can be set in /etc/modprobe.d/ath9k_hw.conf now (thanks to eosbandi)
- Bugfix: Typo in OSD frsky telemetry parser
- Bugfix: Wifihotspot would not work when USB memory stick plugged during boot-up
- Bugfix: Wifihotspot 2.4GHz Channels 12 and 13 did not work
- Cleaned up OSD/telemetry configuration, no more configuring blocksize etc.
- Uplink, dual tx mode and R/C link functionality re-written and improved (untested!)
- Configuration file clean-up, less options, easier to configure
- Wifi medium access timing changed (less agressive, may behave better in environments with wifi interference, untested though)

Edit: EZ-Wifibroadcast Version 1.4 has been released

- Display of good/lost packets to OSD for easier identification of interference
- dbm display now grows/shrinks depending on signal strength
- Default wifi bitrate reduced to 18mbit for ~3db higher sensitivity
- Default video bitrate increased to 6Mbit for higher video quality
- Default transmit power for Ralink cards is increased by 1db because of 18mbit wifi bitrate
- added 802.11n and 802.11b bitrates for Atheros cards
- Selectable configuration profiles via GPIO jumpers/switches
- lots of changes to the scripts to allow for fully automatic and dynamic detection of secondary display devices
- Forwarding of video stream and telemetry data to 2nd display via: USB Tethering, Wifi Hotspot, Ethernet, Wifibroadcast relay mode
- Bugfix: Some USB memory sticks were not correctly detected
- Bugfix: Video is now saved with correct fps if not using 48fps default setting
- Bugfix: With two or three Atheros cards, one wouldn't come up or receive no packets sometimes, should work stable now for up to three cards
- Bugfix: Ralink drivers caused a badblock every 10-20 seconds with Alfa AWUS051NH/052NH and other RT3572 based cards
- Disabled LED blinking on Atheros cards to avoid potential stability issues
- Raspberry Firmware upgraded to latest Raspbian release version
- RX overtemperature and undervoltage are now displayed with meaningful symbols
- Debug logs and screenshot will be saved to sdcard in case of errors
- Long recording times possible again. Use with caution, may lead to video stuttering or freeze!
- Recorded video will be played back while saving to USB
- Cosmetic fixes and quiet mode

JJRC H31 with EZ-Wifibroadcast (5 min 38 sec)

EZ-Wifibroadcast 1.5 Test (12 min 3 sec)

EZ-Wifibroadcast 1.4 low signal strength test (0 min 58 sec)

EZ-Wifibroadcast 1.4 Test (2 min 42 sec)
Last edited by Rodizio; Jan 02, 2018 at 08:23 AM.
Sign up now
to remove ads between posts
May 16, 2016, 10:38 AM
Registered User
I have been following the other very long thread about wifi broacast for hd Fpv
Thanks a lot for having made a such good summary/tuto
I have 1 raspberry 1,
2 rasperry 2
1 raspberry 3
And soon a rasp pi 0 with csi interface
I need to complete my shopping list and will let you know :-)
May 16, 2016, 02:19 PM
Registered User
Originally Posted by tshado
And soon a rasp pi 0 with csi interface
where did you get it from?
May 16, 2016, 02:53 PM
Registered User
mmormota's Avatar
Pimoroni has kits and cable.
May 16, 2016, 03:05 PM
Registered User
mmormota's Avatar
Originally Posted by Rodizio
Well, the headline already says it, Wifibroadcast made easy.
Thank you for the great work.

Now I can build a small, practical Tx unit using the new Pi Zero.
An EzAndroid version for the Rx side could make it competitive to Lightbridge.
May 16, 2016, 03:10 PM
Registered User
May 16, 2016, 03:23 PM
"cheap, small, lightweight"
Yeah, really cool with the new Pi Zero with camera port.

Combined with such a mini spy cam for the Pi:

And a 3$ mini wifi stick:

It makes for an incredibly small and cheap HD system.
May 17, 2016, 11:09 AM
Registered User
Anyone know of a cheap 5.8Ghz wifi stick that is compatible?
May 17, 2016, 03:20 PM
Registered User
I have a couple questions:

1. I am a semi newb...should I try it?

2. Does it have live output? Or just for recording? How do you get the image on your goggles?

3. Can you use aftermarket antennas? If so...does diversity work the same way? Like you could have one omni and one directional?

4. Does using a Pi zero or a Pi 3 matter much? In terms of lag or something?

Thanks! I have browsed the other threads like this but it has always been over my head
May 17, 2016, 04:15 PM
Registered User
1. only you can answer this
2. of course it has live output. it isn't any use for fpv without that
3. you can use any antenna you want. some probably work better than others. see the other thread for known working examples.
4. you can use any pi. now that the zero has a camera input, it is probably the best choice for the tx. it is fine for the rx too if you only want to use 1 wifi adapter.
May 17, 2016, 04:16 PM
Registered User

you should put a link to the main thread in the first post.
May 18, 2016, 08:04 AM
Registered User
Trying to add OSD ..but the minimalist version of raspbian doesn't seem to have wlan scanning or the adapter on a raspberry pi 3 is somehow blocked ....just playing with the rx side first. in any event establishing a wifi link with the on board wifi facilities to get to the OSD software modules is proving difficult.

Also trying to change to an English keyboard using the raspi-config method doesn't seem to work..any ideas..my linux knowledge is poor..to say the least.

Any pointers much appreciated

regards JH
May 18, 2016, 09:48 AM
"cheap, small, lightweight"
Yes, will add a link.

1. Since wifibroadcast is still relatively new, we're more or less all newbs at it, so I guess that doesn't matter

2. Yes, of course

3. That's an interesting question WiFi digital data transmission is very different from analog video transmission. I'd say which antennas in what configuration give best results with Wifibroadcast is yet to be determined. Right now my feeling is, that expensive circular FPV antennas are not really needed as long as you don't fly acrobatics.

4. Any Pi will work, however, the Pi1 and Zeros have a lot less processing power than the Pi2/3, higher bitrates and an additional OSD can give problems. I also noticed weird image problems when shaking the cam very fast with the Pi1 as a receiver, but haven't looked into that further yet. So I'd use atleast a Pi2 to play it safe.

I've disabled all the wireless stuff and also the kernel module for the interal wireless card because I didn't want it to interfere with wifibroadcast.

If you want to connect to it remotely, you can either use ethernet and configure the network with:

"sudo ifconfig eth0 <desired IP for the Pi> up"
"sudo route add default gw <your router's IP>"

(if you don't want to do that everytime, you can also add those two lines to the ".profile" file)

Or use a serial connection (be careful not to power it via serial and micro-USB at the same time).

Regarding the keyboard config: Hmm, didn't notice that, will look into it when I have time.
May 18, 2016, 11:23 AM
Registered User
Originally Posted by Rodizio

1. Since wifibroadcast is still relatively new, we're more or less all newbs at it, so I guess that doesn't matter

2. Yes, of course

3. That's an interesting question WiFi digital data transmission is very different from analog video transmission. I'd say which antennas in what configuration give best results with Wifibroadcast is yet to be determined. Right now my feeling is, that expensive circular FPV antennas are not really needed as long as you don't fly acrobatics.

4. Any Pi will work, however, the Pi1 and Zeros have a lot less processing power than the Pi2/3, higher bitrates and an additional OSD can give problems. I also noticed weird image problems when shaking the cam very fast with the Pi1 as a receiver, but haven't looked into that further yet. So I'd use atleast a Pi2 to play it safe.
Awesome! Thanks for the reply....I might have to check this out...once I get a better pair of goggles. I guess having 720 or 1080 would be wasted on my 800x480 display. Even though I bet it would look alot better than what I have now.

Anyways...what does this mean then:

- 2x transmit diversity support
- 6x receive diversity support using 3 cards (more should also be possible, just haven't tested that yet)

-Does digital diversity just mean higher bandwidth? I think that is how some wifi routers use with all those multiple antennas.

-Has anyone used this on ground rovers before? Low resolution is weird/worse than in the air because on the ground close up details matter more (for me it seems like)

-Would a high power 2.4ghz wifi card have better range than a 5.8ghz wifi card? That is how analog would work but I have no idea about digital stuff.

-What is the max range anyone has pushed this setup?

-Would using a pi zero as a transmitter and a pi3 as a receiver still work good? Or would the advantages of the pi3 be limited by the pi zero transmission ability?
May 18, 2016, 11:31 AM
Registered User
2x tx diversity means you are using a wifi adapter with 2 antennas. 6x rx diversity means you are using 3 wifi adapters with 2 antennas each. has anyone actually shown that the wifi adapters transmit on both antennas? I'm not sure they do.

adding more wifi adapters doesn't increase the bandwidth, just the chance of improving reception. not much bw is needed to transmit the compressed video.

the tx pi does very little work which is why you can use any version. the rx does all of the work, especially if you are using multiple adapters and/or the osd. using a newer/faster pi as the tx really only reduces the boot time a little bit.

I keep meaning to stick this on my rc car but just haven't gotten around to it. I actually think it will be pretty neat, but it might be a little big for my 1/18 rc buggy.

Quick Reply

Thread Tools