rodizio1 / ez-wifibroadcast Goto Github PK
View Code? Open in Web Editor NEWAffordable Digital HD Video Transmission made easy!
License: GNU General Public License v2.0
Affordable Digital HD Video Transmission made easy!
License: GNU General Public License v2.0
as well as the main telemetry link that the osd works from, having some more transparent uarts would be very useful for people with gimbals, RTK gps, multiple telemetry links like frsky and mavlink or other devices that use serial ports, currently the only solution out there is to have multiple telemetry radios. wifibroadcast video uses so much bandwidth that 3x 115200 serial links should be barely noticeable
In theory it could also be used for transparent RC links. then you wouldn't have to worry about generating the rc output, you should just need the correct baud rate for the protocol so what comes in goes out. for failsafe you just stop the output simulating rc disconnect, most flight controllers will just see that as out of range and failsafe without having to configure anything.
sbus is 100,000
dsm and sumd is 115200
just have something in the config like:
TX
telemetry/osd port: /dev/ttyUSB0
baud1: 57600
serial2: /dev/ttyAMA0
baud2: 100000 (for sbus, 115200 for DSM, SUMD, MSP or 57600, 38400, 9600. )
serial 3 /dev/ttyUSB1
baud3 115200
Rx
telemetry/osd port: /dev/ttyUSB0
baud1: 57600
serial2: /dev/ttyS0 (or "USB" for MSP)
baud2: 100000 (for sbus, , 115200 for DSM, SUMD,MSP or 57600, 38400, 9600. )
serial 3 /dev/ttyUSB1
baud3 115200
Another idea would be to use different wifi adapters for video and telemetry, then you could have your data on 2.4ghz and video on 5ghz or just on different channels and it would avoid the problem of having to stop the video tranmitter to receive.
because each serial connection can have its inputs and outputs setup and is standardised it would be very flexable, you could have 3 telemetry links or theoretically up to 48 channels using 3 rc links, plus there is no real limit to the number of serial links apart from the number of usb ports you have and bandwidth, but if you got the data on a different adapter it would be a lot.
I'm trying to use MT7610 instead of MT7601.
because I want to use 5GHz WIFI connection.
EZ-WifiBroadcast can support this chipset?
MT7601U
2.4
bgn
1x1:1
MT7610U
2.4 / 5
abgn+ac
1x1:1
Hi,
I have some question.
I read this,
3 wifi sticks receive diversity support for Atheros
5 wifi sticks receive diversity support for Ralink
then, how about MediaTek MT7601?
Is it 5, same to Ralink?
I want to make a 2~5 WIFI diversity receiver.
but I don't want to use USB port type WIFI stick at all, because it is too bulky.
Can I compose a 2~5 WIFI diversity receiver without use of USB port connection?
I mean, can I connect 2~5 WIFI cards with RPi 3 by use only the GPIO pin?
I plan to use Pi ZERO as a transmitter, because of it's small size.
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.
had better not to use diversity function on Pi ZERO transmitter?
if TXMODE option set as 'single' on Pi ZERO transmitter side,
I also can't activate diversity receiver function on Pi 3 transmitter?
I'm wondering is can I make this kinds of system.
Is this possible?
Hi,
when I burn the 1.5 image to a SD card, everything will start up, but the camera is not detected (supported: 1 detected: 0). I verified that the camera is working with another image. I read the hint, that I had to copy the files from the directory "pi0w-firmware" to the root of the card, but then nothing happens (on HDMI or LED). Why I have to do it, when the system starts up with the original files?
And must I power the AWUS036NHA from an external power source (breakout-cable), or is the current from the micro USB connector enough under full TX load? It is recognized and seems to be working.
Thanks!
Hi,
I have connected a RTL8811AU WIFI cards to RPI 3, and made it works on 5.8GHz.
I don't know it works well with Wifi Broadcast, but connection itself is not that difficult.
Would you please support the RTL8811AU cards on the next version of Wifi Broadcast?
Q1: In the config file (line 61)
Choose between 30, 48, 59.9
FPS = XX
What if I set FPS = 35 or 45 or 50 ?
Q2: Why it's 59.9 rather than 60?
I would like to use one of my spare x86 laptops as a ground station instead of a raspi so that I don't have to lug around a monitor or suffer additional latency with forwarding. I'm wondering if there are any guides to deploy on something like this.
I see that you are putting ZIP files from google drive and linking to them on the wiki.
It might be better to tie the downloads to a git version by using "releases"/tags here on GitHub instead, and attaching the ZIPs to the release.
You can also put release notes on each version.
For example: https://github.com/phw/peek/releases
User Mr. Ombre on fpv-community reported that the Wifi Hotspot does not start if USB memory stick is connected during bootup.
Confirmed, will be fixed in the next release.
Workaround: Do not have a USB memory stick connected while booting up.
The offered binary images seem to be based on lots of GPL v2 and GPL v3 software components. Some of them (e.g. the Linux kernel) are obviously subject to source code changes by the EZ-WifiBroadcast image build process. However, this git repository does not contain all code/script/tools necessary for re-building the EZ-Wifibroadcast images by third parties. I am neither a lawyer nor a (substantial) holder of copyrights in those underlying components, but I think offering binary derived work of GPL software without fulfilling the license requirements is probably prone to legal trouble sooner or later.
Please fix these problems by clarifying the license terms of the EZ-WifiBroadcast images provided and by fulfilling the license requirements of all sub-components you are deriving from. Offering the bare patches is IMHO not adequate to ensure this.
For people who would like to try the latest changes, here are the "development" kernel sources:
https://www.file-upload.net/download-12560236/ez-wbc-dev-kernel-src.tar.bz2.html
Changes compared to the kernel included in v1.5 are:
This kernel does not have the mcs radiotap bitrate patch applied, if you want to use it with Ralink cards you need to apply the patch first!
Add dwc_otg.int_ep_interval_min=2
to /boot/cmdline.txt to enable support for 4 Atheros RX cards.
For I2C B101 support, add this to /booc/config.txt:
dtparam=i2c1=on
dtparam=i2c_arm=on
and this to /etc/modules:
i2c-bcm2708
i2c-dev
tc358743
Hi, there are duplicated symbols in the build - for example:
rx_lib.o:(.data+0x0): multiple definition of `max_block_num'
rx.o:(.data+0x10): first defined here
Please can you clarify/fix it?
And are all the changes for the 1.5 version included in this repository?
You wrote in another issue/topic that also every code change is included in the image file, but I did not find the patched kernel source - or is the kernel the only part which you build on your host? And in /root/wifibroadcast are other sources than in this repository - are these the latest and is the repo obsolete so far?
Thanks ahead
Hi. I've searched the wiki for a guide or a script to recreate the release image from scratch but haven't found any.
Would it be possible to add it?
I am currently trying to merge my own project into the wifibroadcast image. I am using the v1.5 images and was wondering how wifibroadcast gets initialized. Meaning:
/root/wifibroadcast/tx
etc.could only find a call for /root/wifibroadcast_misc/wbcconfig.sh
Great project! Hope you can give me a little hint :)
The channel 13 of the Internal Raspberry Pi 3 Wifi Card is not usable.
Very nice work!!!
Just a questíon. My pi 3 could perform more task. Could be possible access to te console for script installation? (For example for arduino communication to perform some tasks)
Thanks in avance.
I just want to start by saying that this is a fantastic project! I always hoped that this was possible, but didn't have the skills to make it happen. So a huge thank you to you for making it happen.
When I first booted up both Pi's everything worked perfectly. I ran the system a couple of times, again perfectly. Today I booted up them both and the Rx Pi came up with the "Error: setting monitor mode on failed!" (I've added a picture of the screen here, not sure why it's upside down, but it come the right way up if you click it)
The only thing I had changed was to enable the wifi hotspot and change the SSID and password. I have re-imaged the SD card with Etcher, but this error keeps happening. Any help would be greatly appreciated.
Thanks
Can we have a EZ-WFB version number written in some file on the SD cards FAT partition ( the one visible in WIndows) ? I want to be able to see which image I am working with as I often have different versions testing.
I suggest a version.txt or in existing wifibroadcast-1.txt , just add a new comment row with "Image version 1.5" or alike.
Project would probably benefit if there would be a howto about building own firmware images - this way developers may start coming to this project and helping improve it.
i am looking to run a munber of machines at the same time but i would like to change the name of the hotspot to match the machine. so im not blindly trying multiple hotspots that all have the same name and password
User jpfeifer on fpv-community requested to be able to forward the telemetry stream on RX Pi serial port for use with an external antenna tracker.
Should be easy to implement, next release ...
Hi there,
I got wifibroadcast working with the Alfa AWUS036AC (chipset RTL8812).
For now, it needs a custom compiles kernel module and I only got it work well in 5GHz. In 2.4Ghz my tx throughtput is capped to ~800kbps and I did not managed to have a good quality/fluidity/latency (is that the expected baudrate for 2.4GHz ? why don't I have more like 54Mbps with wifi n ?)
The wifi card can also transmit at 40dbm instead of 30dbm on both bands.
For the 5Ghz I tuned it to have <200ms latency, 720p 45fps.
I would like to share my method, how can I contribute ?
Could you have an image builder script like the one done by befi on the original wifibroadcast so the community can help develop this project ?
I am gonna try making compatible more common USB sticks like rtl8192 (best seller RPi wifi sticks) it could be nice to have a cheap way of adding diversity, I already got it on ubuntu for the rx, it works out of the box :) so it seems it's a matter of installing/compiling/tweaking the right drivers on the RPi
Cheers, thanks for the nice bundle \o/
Hello,
It’s great OSD/Wifibroadcast-Implementation! Wow!
As for OSD i have done something like that for my own FC (based on AVR), but in BASIC, so it's hard for me to participate directly.
I have 3 enhancements that are very easy to implement.
It would be nice if the home position (LTM protocol origin frame (O)) would constantly updated (the program does not do this, even if new home latitude and longitude values are sent via O-frame).
This would allow to use for intermediate gps-points and see the "Arrow" and "distance" current values in autonomus fly.
It would also be good to make the orientation of the Home Arrow relatively. This means to take the heading into account.
For example, if Home Arrow points to east and Compass (heading) points to west, it makes sense to point the arrow down (180°) and not to 0°. So the Pilot just folows the arrow to the next GPS-Point/Homepos...
Just bring Heading (normaly 0...359°) and Course (normaly 0...359°) in the following Coordinate System:
If Heading > 180 Then
Heading_new_coord_sys = Heading - 360
End If
If Course > 180 Then //in your Implementation should be Course=Angle_home_arrow
Course_new_coord_sys = Course - 360
End If
The relative angle of Home Arrow is then:
Relative_angle_home_arrow = Course_new_coord_sys - Heading_new_coord_sys
This should be adjustable in osdconfig.txt ... for people who don't like this(?)
Greetings
Toni
The home page says:
Insert each SD card into each Raspberry Pi and boot them up.
But they doesn't assign automatically that which one is going to be TX and which one is RX. They're both booting as RX.
How can I set the Transmitter and Receiver Pi?
Hello,
I am making some changes to the .profile and making a shell script out of it. at the end of .profile i see there is a case statement for each tty1,tty2,tty3.... etc. I can not figure out where these are being defined so the case statement know what to do. Any pointers would be greatly appreciated.
Thanks.
Hi, I am trying to get two Rpi3 to connect with two AWUS052NH V2 wifi adapters. I know a little bit about linux and raspberry pis but I can not for the life of me figure out why they wot connect. I have a screen on the receiving side. My guess is that they are both set as receivers... any ideas or help would be appreciated. thanks
Hi,
I have a question,
If I attach an amplifier on multi antenna MIMO WIFI card,
I should have to attach amplifiers on every antenna ports?
For example,
Use 2 antenna ports WIFI card => Need to attach 2 amplifiers.
Use 3 antenna ports WIFI card => Need to attach 3 amplifiers.
If not, just attach an amplifier on one of antenna ports would be ok?
RPI has only 4 usb ports.
how to install 5 WIFI sticks on RPI?
Hello,
I just tried the new instructions for Pi Zero W (replace the start_x.elf file from 2017-03-03 firmware). Pi Zero starts and works fine. But the thing is, the LTM protocoll doesn't work on Pi Zero W. If I change to the Pi 3B on TX-side (and original 1.5 Image Data on the SD-Card with same settings like Baud in wifibroadcast-1.txt) the LTM protocol works ok.
Is this problem known?
Greetings Toni
Users of Linux autopilots (such as the NAVIO) may wish to have telemetry coming from UDP forwarded to RX (e.g. from a local (TX) instance of Ardupilot). Is this possible currently? If not, how easy is it to implement it?
Thanks
Hello,
I have two RPI 3 with the latest image, the RX has the 7" LCD attached. I have a pixhawk connected and video works great and I see that in the left corner telemetry is being received and decoded but the OSD horizon , compass, etc... are very laggy or just do not respond to any changes in the pixhawk's attitude. Originally I had the baud rate at 921600 but have switched it to the default rate but still no luck. Any suggestions?
Is it possible to switch video input to also recieve video from a analog camera together with the main HD camera? Useful when you are alone and also need to control the camera on the gimbal
hello I would like to setup EZ WB in Orange pi zero single board computer but there is no clear instruction for that could you please write one for us non raspberry pi users so it could be a universal Linux project
thankk you
Just a heads up, I discovered this "bug" by accident on a separate project I am working on but originally wanted to use this "distro" as a base. I ended up not doing it but my usecase involved an adapter that defaulted to an unspeced wifi regulatory zone. I tried and tried to use channel 161 on 5ghz to broadcast a packet. It only worked if it could see something already talking on channel 161.
My suggestion would be to make the wifi regulatory zone setting part of your config file. As soon as I set it to US, I was able to use 161 reliably, otherwise the usb command wouldn't even get sent to the adapter!
Hi, i am wanting to get the internal wifi renamed back to wlan0 and get it running dhcp as default. I tried getting the network interfaces file back to default but it seems like wpa_supplicant doesnt run or is not installed? If you had a few tips i would greatly appreciate it!
Hi,
I have some questions.
I read this notes,
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,
like fast scene changes). Although many people successfully use a Pi Zero as a TX, if space and weight is no issue, consider using a Pi2 or 3 for TX.
RX: Raspberry Pi1 and Pi Zero are not supported anymore from version 1.3 on. Use a Pi2 or Pi3.
Odroid-W use same SoC BCM2835 as Raspberry Pi1,
then, I can't use Odroid-W as a RX, and better not to use it as a TX?
The file start_x.elf is the only one that needs to be rolled back to 2017-3-3
User r0ck3t identified a bug that had gone un-noticed since the beginning of wifibroadcast. The serialport options caused some characters to be replaced (CR/LF), which leads to corrupted telemetry messages if these characters happen to be in the telemetry messages.
This will be fixed in the next release. To fix this for yourself in the meantime you can login to the linux system on the TX (see the wiki on how to do that) and make a change to the .profile script.
When logged in:
Find this line:
FC_TELEMETRY_STTY_OPTIONS="-imaxbel -opost -isig -icanon -echo -echoe -ixoff -ixon"
and change it into this:
FC_TELEMETRY_STTY_OPTIONS="-icrnl -ocrnl -imaxbel -opost -isig -icanon -echo -echoe -ixoff -ixon"
It turned out that the Pi1A+ does not seem to run 100% stable with 1000MHz CPU clock. After about 12-24hours of running it crashes with a kernel panic.
Setting arm_freq=950
in config.txt fixes this, it's running stable for more than 96 hours now. Will do more testing though to make really sure.
I'd suggest setting arm_freq=900
to be on the safe side in the meantime.
from user geofrancis on Rcgroups:
on the OSD i noticed that the cell count has to be set manually, this doesnt really work when you have aircraft that use 3,4 and 6 cells.
would it be possible to have it just use the initial start up voltage to set the cell count.
6-8.9v for 2s
9-13v for 3s
13.1-16.9v for 4s
17-19.8 v for 5s
19.9-25.4v for 6s
Would it be possible to encrypt the mavlink with this pyton scipt?
https://github.com/Blastitt/mavcrypt/blob/master/mavcrypt.py
An unencrypted mavlink is really a serurity issue.
Unencrypted video only a privacy issue.
Hi when trying to make wifibroadcast-osd there is no osdconfig.h
Hello,
Does anyone can help me to be able to send telemetry from rx to tx?
I think that as for the joystick, we can send from RX serial data to TX.
Also, it could be great, to be able to have en the rx side TCP or UDP serial server.
Like this no need cables between RX and LAPTOP.
Just did a kernel build with raspbian jessie 2017-07-05 with the patches. The first time the dwg_otg patch seemed to create issues when building but since I am not using that feature I started from scratch and omitted it. When i run my script to start the tx (not much difference between the script and the .profile used in your image) the Tx-power goes from 20 to 13. The internal wifi stays at 31. I also did not have any .conf files in /etc/modprobe.d. Is this most likely a problem when I built the kernel?
I am a little confused and hope someone can help me out.
I seems like that:
In both cases the packets get sent correctly in wifibroadcast using the specified data rate.
Question: Can I send standard data frames with a Atheros chipset and specify the data rate?
Background:
I tried to send data frames with a Atheros chipset using a custom kernel (patched with wbc patches). In the radiotap header I set the data rate. Testing it I found the data rate of the sent frame was always 1Mbit regardless of my changes in the radiotap header.
Everything works fine using Ralink based wifi equipment.
In the code I found:
-d <rate> Data rate to send frames with. Currently only supported with Ralink cards. Choose 6,12,18,24,36 Mbit
If that is still the case in wbc 1.5 how does it set the correct bit rate with Atheros chips? Via iw ...
or is the Atheros driver only patched to work with beacon frames?
Thought it would be nice to have one type of frame that workes with both chips.
Recently I achieved a quite good latency, around 100ms under 1280*720 / 48FPS / 4Mbps, using v1.5 with two RPi2
Here're some snapshots with my own program, the number increased by 10 every 10ms. (This is because the response time of LCD display on my laptop and desktop is around 10ms. So with 10ms interval, I can take a clear photo to measure the latency.)
On Tx side it's RPi2 with WN722N and on Rx side there're two USB AR9271 module for diversity.
The AR9271 is really really a good choice for this purpose. It works under 2.3G~2.4G, I choose 2372MHz which is near 2.4G for antenna and also the channel is clean enough.
Secondly, the USB AR9271 module on Rx side is only $3 and you can find small module with 25dbm RF output for Tx side for only $10
Here're some tips:
This is tricky but it's true! I use SanDisk Ultra 16G Class 10 A1 on both Tx and Rx side. It's much better than Class 4 TF card.
The video is encoded by GPU on the SoC. So less latency with higher frequency on GPU.
I put GPU and RAM overlock in config.txt
gpu_freq=500
sdram_freq=500
Set the FPS 48 or 60, the higher FPS the less latency.
I use RPi Cam v2 and according to the IMX219 specs, set the "-md 6" to force sensor mode to provide high FPS output.
And someone did the test on this.
EXTRAPARAMS="-n -fl -ih -vf -pf high -md 6 -ISO 400 -ex sports"
I got seconds delay using TL-WN722N V1. and another weird thing is that it is getting better when i try to set the frequency more higher,like 2572(maybe 2s delay ) has much lower latency than 2372(maybe 5s delay).the volts are fine and temp is also good. what am i missing here?
on my ubiquiti routers you could select 5 and 10 mhz channels rather than just the usual 20 and 40mhz channels, this would give many more separate channels in the crowded 2.4ghz band but i have never seen it on any other wifi hardware so im not even sure it would be possible.
.
Hello all,
I have gone through the wiki and have prepared two separate Raspberry Pi 3's one for RX and one for TX. Although I was able to run and boot both of the RPis successfully, I can't determine which one is RX and which one is TX. In the guide, it says that the one with the camera will automatically be assigned as TX. I assume that this is only valid in the case which I connect a Raspicam to the Raspberry Pi. Is there a way to change the camera used with some sort of configuration setting, for example is it possible for me to stream the video using a webcam connected to usb, where its specific directory is /dev/video0 ?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.