Giter Site home page Giter Site logo

rodizio1 / ez-wifibroadcast Goto Github PK

View Code? Open in Web Editor NEW
813.0 98.0 200.0 89.87 MB

Affordable Digital HD Video Transmission made easy!

License: GNU General Public License v2.0

Makefile 0.10% C 88.47% Python 0.77% Shell 3.71% C++ 1.30% Objective-C 5.65%
wifibroadcast multirotor-uavs drones downlink video-streaming hdfpv aerial-imagery flir-cameras thermal-imaging

ez-wifibroadcast's Introduction

img

Affordable Digital HD Video Transmission made easy!

Ez-WifiBroadcast is a radically simple digital data transmission system. A bidirectional data link is established using commercial off-the-shelf hardware like WiFi modules and a pair of Raspberry Pi computers. Coupled with special software this unique system allowes transmission of low latency HD video, telemetry and control data between endpoints. In comparison to a classical wireless connection Ez-WifiBroadcast tries to imitate the famous properties of an analog link like graceful signal degradation and no association between the endpoints.

EZ-WifiBroadcast system is based on Befinitiv's Wifibroadcast project but since then has signicantly evolved and matured thanks to the active support from open source community members.

Downloads

IMPORTANT: Read and follow the wiring instructions

Main Features

  • Supports Raspberry Pi1A+, Pi1B+, Pi2B, Pi3B (Pi3A+ and Pi3B+ currently not supported!), Pi Zero, Pi Zero W, Odroid-W
  • Typical glass-to-glass talency of ~125ms. Minimum achieved latency ~110ms (FPV-VR app allows for lower latency)
  • Raspberry Pi V1 and V2 cameras supported
  • HDMI cameras supported via HDMI-CSI adapters
  • Up to 1920x1080p 30fps Resolution and up to 12Mbit video bitrate achived
  • Support for 2.3/2.4/2.5Ghz bands as well as 5.2Ghz to 5.8Ghz bands
  • Ranges of 300m to 3km can be easily achived. In some special setups range of 30km was achived
  • Bi-directional MAVLink telemetry support
  • RC Control via MAVLink, SUMD (Graupner/JR), IBUS (FlySky), SRXL (Multiplex)
  • Quick bootup/startup, up to 10 seconds until video link is up

Full list of features can be found here

For Contributors

Please use develop branch for making any changes. When code is tested and is ready to be pushed to master branch create a Pull Request and assign or invite other users to review and approve your changes. When the change is approved it can be merged to the master branch.

Afterwards a new release can be created and tagged.

Code of merit

If you are in some way contributing to the project development please read Code of merit document to familiarize yourself with the rules.

License

  • EZ-WifiBroadcast is licensed under GPLv2, you can find it's contents in this link
  • Raspbian, Linux Kernel, Drivers are licensed under GPLv2
  • Original code (if found) is licensed as stipulated in respective source files or under the GPLv2 license otherwise

Acknowledgements for contributed work

Read about it here

Logotype

Ez-WifiBroadcast logo was contributed by Richard Caseres (user @richardbmx) which we are all thankful for.

Warranty/Disclamer

This is a free software and comes with no Warranty as stated in parts 11 and 12 of GPLv2 license.

ez-wifibroadcast's People

Contributors

anemostec avatar bortek avatar careyer avatar cyrilknops avatar pilotnbr1 avatar richardbmx avatar rodizio1 avatar yes21 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ez-wifibroadcast's Issues

Build guide for deploying on targets other than raspi

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.

Second video input

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

Version number in a file

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.

My Tips on Low Latency

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.)
_20170630215034
_20170630215029
_20170630215026
_20170630215022

On Tx side it's RPi2 with WN722N and on Rx side there're two USB AR9271 module for diversity.
_20170630221401
_20170630221404

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

_20170630222151

Here're some tips:

  1. High speed TF card.

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.

  1. GPU / RAM overclock

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

  1. High FPS

Set the FPS 48 or 60, the higher FPS the less latency.

  1. Camera Sensor Mode

I use RPi Cam v2 and according to the IMX219 specs, set the "-md 6" to force sensor mode to provide high FPS output.
picam_imx219_modetable

And someone did the test on this.
picamv2_limit

EXTRAPARAMS="-n -fl -ih -vf -pf high -md 6 -ISO 400 -ex sports"

How to get internal wifi back as wlan0

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!

New device/drivers compatibility

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/

osdconfig.h

Hi when trying to make wifibroadcast-osd there is no osdconfig.h

Rx: Error setting monitor mode on failed!

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)
20170725_151636

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

Telemetry data corruption issue (and fix)

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:

  • type "rw" to make the filesystem writeable
  • type "mcedit .profile" or "nano .profile" (whichever editor you may prefer)

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"

  • Save the file and exit the editor.
  • type "halt", wait a few seconds and then power-off the Pi

Build guide for developers

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.

USART on Pi Zero W?

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

About FPS Option in Config File

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?

no clear instructions

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

connect RTL8811AU on RPi.

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?

make hotspot name and password customisable

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

wifi regulatory zone settings

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!

Network interface broadcast power

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?

Data rates, frames and drivers

I am a little confused and hope someone can help me out.
I seems like that:

  • Data frames are used with a Ralink wifi chips
  • Beacon frames are used with Atheros chips

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.

Pi zero w

The file start_x.elf is the only one that needs to be rolled back to 2017-3-3

Logitech C920 cam

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

Enhancements...

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.

  1. 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.

  2. 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:
bild

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(?)

  1. Perhaps you can also display the units [m], [km/h] also with altitude and speed values?

Greetings
Toni

Odroid-W support

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?

Insufficient wiki

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?

Camera option configuration

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 ?

Build guide/script

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?

Pi Zero W and Camera V2.1

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!

5mhz and 10mhz channels

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.

Add bidirectionnal telemetry link as for the joystick up link

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.

Please clarify license terms of the EZ-WifiBroadcast images and provide full sources.

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.

Console access

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.

OSD cell count has to be set manually

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

Huge delay using TL-WN722N V1

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?

Question about diversity WIFI compose on receiver side

Hi,
I have some question.

  1. 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?

  2. 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?

  3. 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?

  4. 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.

    • One WIFI card attached on Pi ZERO transmitter side, single mode setting.
    • Multiple WIFI cards attached on Pi 3 receiver side, multi mode setting.
    • All WIFI cards attached on Pi 3 receiver side use same frequency,
      act like a analog diversity fpv system antenna .

    Is this possible?

Important: Pi1A+ overclocking

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.

.profile TTY options

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.

Build does not work for wifibroadcast

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

OSD very laggy, sometimes non-responsive

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?

GitHub releases

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

startup order [Question]

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:

  • where do the wifi interfaces get set up
  • where is the code that determines weather it is a RX-Pi or a TX-Pi
  • where is the call for /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 :)

Allow telemetry from UDP sources on TX

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

External amplifier & MIMO WIFI card.

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?

Use MT7610 instead of MT7601

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

1.6 suggestions

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.

Beta development kernel

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:

  • CDC ACM driver added (for Pixhawk USB port)
  • BCM2385 I2C and Toshiba TC358743 driver added (for B101 testing, see call for beta testers here: https://www.raspberrypi.org/forums/viewtopic.php?f=38&t=120702&sid=675f53e3bcb61651abaca167c187ce7c&start=250)
  • RTL8192CU driver added (not much tested, works only for RX as bitrate setting doesn't seem to work)
  • Atheros medium access parameter THRESH62 lowered from 28 to 16 (should improve R/C link)
  • Atheros noise floor calibration enabled (may reduce badblocks on busy channels)
  • support for 4 Atheros RX cards and 6 Ralink RX cards (not much tested)

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.