EZ-Wifibroadcast, HD FPV in günstig und einfach

rodizio

Erfahrener Benutzer
#1
EZ-Wifibroadcast Version 1.2 ist fertig

Folgende Änderungen von 1.0 auf 1.2:
- Befi's und Rangarid's OSD integriert
- Raspbian Update auf Kernel 4.11 und neuere Raspberry Firmware / Userland (Pi Zero/V2 Cam)
- Anzeige der konfigurierten Frequenz/FEC-Werte in der untersten Zeile
- Ralink: Verschiedene Bitraten für Video und Telemetrie möglich
- Ralink: WLAN Bitrate lässt sich über Konfig einstellen
- Atheros: WLAN Bitrate lässt sich über Modulparameter einstellen
- Ralink: TXPower lässt sich über Modulparameter einstellen
- Unterstützt V2 Cam 1280x720 bis 75fps, 1640x922 bis 48fps
- AIFS/Backoff Parameter geändert, bei Atheros Chipsätzen je nach Bitrate etc. ca. 10-15% mehr Durchsatz, Ralink ca. 3%
- Atheros LED Verhalten geändert, blinkt nun schneller bzw. ist "empfindlicher"
- CPU/GPU/RAM übertaktet und force_turbo aktiviert für weniger bzw. stabilere Latenz und mehr Bitrate auf Pi1/Zero
- USB Ethernet Tethering Unterstützung im Kernel aktiviert
- DHCP auf Netzwerkschnittstelle aktiviert (System meldet sich mit "wifibroadcast-tx" bzw. "wifibroadcast-rx" am DHCP
- Bash-prompt zeigt nun ro/rw Status des Filesystems an, Makros ("rw","ro") hinzugefügt zum umschalten
- Sendeleistung für Atheros Chipsätze leicht reduziert (nur zur Sicherheit)
- Sendeleistung für Ralink Chipsäze defaultmässig wieder auf Standardlevel geändert
- Atheros Firmware für weitere Atheros Chipsätze gepatcht (AR9287, TPLink 822N V2 z.B.)
- TX zeigt nach dem starten Infos zur Fehlersuche
- video.c auf 240fps geändert für weniger Latenz bzw. Jitter
- fflush im rx Prozess hinzugefügt (nur zur Sicherheit)
- Systemd journal daemon de-aktiviert (verbraucht nur unnötig CPU Leistung)
- Software, tools und libs etc. mit drin gelassen, sollte den Anfang für eigene Erweiterungen etwas erleichtern
- Support für zwei Sendesticks, nur experimentell. Nicht im Konfigfile, muss manuell konfiguriert werden

Bugfixes:
- Potentiell steigende Latenz, stotterndes Bild auf Pi1/Zero in manchen Situationen: CPU/GPU/RAM übertaktet, force_turbo aktiviert, performance governoer aktiviert, Bitrate auf 4.5Mbit gesenkt, video.c gepatcht, fflush im rx Prozess hinzugefügt, debug Ausgabe von Befi's OSD deaktiviert, systemd journald und syslogd de-installiert.

- AWUSH051NH und 052NH haben als TX auf 5Ghz nicht sauber funktioniert: Sendeleistung für Ralink Chipsätze wieder reduziert



Getestete WLAN Karten:
AWUS036NH, AWUS036NHA, AWUS051NH, TL-WN722N, TL-WN822N V2, CSL 300Mbit stick

(Favoriten für 2.4Ghz sind im Moment die TL-WN722N und AWUS036NHA, für 5Ghz die AWUS051NH, die CSL Sticks mag ich irgendwie immer weniger: Kaum Sendeleistung, unsaubereres Signal, und alsRX neigen sie irgenwie zum "übersteuern", Empfangsprobleme im Nahbereich. Bei anderen WLANs auf dem gleichen Kanal gibt's auch mehr Störungen im Vergleich zu den WN722N)



Getestete Raspberry Hardware:
Pi 1 B+, Pi2 B+, Pi3 B+, Pi Zero 1.3, Odroid-W
Pi V1 Cam ("V1.3" auf der Platine), Pi V2 Cam ("V2.1" auf der Platine)



Hinweis:

TX: Raspberry Pi 1 und Pi Zero sind von der CPU Leistung mit Standard-Settings (720p, 4.5Mbit Bitrate, 8/4/1024) bereits fast voll ausgelastet. Zwei Sende-Sticks, mehr Auflösung/Bitrate, oder mehr Fehlerkorrektur bzw. kleinere Paketgrössen werden nur eingeschränkt bis gar nicht funktionieren. Auch wenn es auf den ersten Blick so aussieht als ob es funktioniert wird es in Situationen in denen die CPU-Last an die 100% geht zu plötzlich stark steigender Latenz kommen. Ich würde daher mindestens einen Pi2 empfehlen, da ist noch genügend Reserve und es ist nicht nötig ständig die CPU Last im Auge zu haben.

RX: Raspberry Pi1 und Pi Zero sind von der CPU Leistung mit den Standard-Settings nur ausreichend für max. einem WLAN Stick. Für OSD und/oder Ground-Recording ist die Leistung nicht ausreichend.




Downloadlink: http://en.file-upload.net/download-11696943/EZ-Wifibroadcast-1.2.zip.html


---------------------------------------------------------------------------------------------------------

Erste Version

Habe jetzt auch ein Image mit Befinitivs Wifibroadcast (https://befinitiv.wordpress.com/wifibroadcast-analog-like-transmission-of-live-video-data/) gebaut, dachte ich mache mal einen Thread dazu auf.

Die Idee ist, den Einstieg ein wenig zu erleichtern indem schon alles vorbereitet ist und keinerlei Berührung mit Linux notwendig ist. Konfigdatei kann einfach von Windows aus (oder dem Smartphone oder Tablet ...) bearbeitet werden. Einfach Images aufspielen, einschalten, läuft.


Features:
---------
- Basierend auf Raspbian Jessie 2016-05-13 Lite, Kernel 4.4.9
- Konfigdatei kann von Windows aus editiert werden.
- Unterstützung für alle Pi Modelle incl. Pi3, Pi Zero und Odroid-W
- Unterstützung für die neue Pi V2 cam
- 2x Transmit-Diversity
- Empfangs-Diversity mit mehreren Sticks (auch unterschiedliche, bis drei getestet)
- 2.3Ghz (nur bei Atheros), 2.4Ghz und alle 5Ghz Bänder
- Sendeleistung bei Ralink und Atheros Chipsätzen ca. 4-5db erhöht gegenüber dem Befi-Image
- Mehr vorkompilierte Atheros Firmwares für andere Datenraten
- Startzeit entwas optimiert, je nach Hardware ca. 10-15 Sekunden bis das Bild da ist
- Paar kleine Verbesserungen für mehr Zuverlässigkeit: rx Prozess startet automatisch neu, read only filesystem, logging de-aktiviert, etc.)
- Ground Recording vereinfacht, braucht keinen extra Schalter mehr zum herunterfahren
- "Poor Man's RSSI Display" hinzugefügt: Das rx_status_test tool von Befi so geändert, dass es in der oberen Bildschirmzeile Infos anzeigt (VideoBild etwas kleiner konfigurieren damit es sichtbar ist)



Installation:
-------------
- Image herunterladen und entpacken
- Image mit Win32DiskImager oder einem anderen Tool auf zwei (mindestens 1GB) SD-Karten schreiben
- Alles einschalten, nach spätestens 20s sollte ein Live Bild da sein.



Konfiguration:
--------------
- SD Karte in Windows PC oder Smartphone oder was auch immer einlegen - "wifibroadcast.txt" mit einem Editor öffnen
- Erstmal nicht rumfummeln, nur "FREQ" auf die Gewünschte Frequenz ändern
- Datei speichern
- Das war's, SD Karte jetzt wieder in den Pi einlegen



Ground Recording
----------------
- Der USB Stick muss einen Ordner namens "video" (kleingeschrieben) enthalten
- Vor dem einschalten USB stick anschliessen, Aufnahme startet automatisch
- Vor dem ausschalten alle Wifi-Sticks abziehen und kurz warten, dann wird die Aufnahme sauber geschlossen
- USB Stick abziehen, fertig.


Würde mich über eine Rückmeldung freuen, wenn das bei Euch gut funktioniert. Falls nicht, auch ;)


Dowloadlinks (zur Sicherheit zwei):
http://en.file-upload.net/download-11579182/ez-wifibroadcast-1.0.zip.html
https://www.sendspace.com/file/xvvsi5

(Sorry wegen der Free Filehoster, hab auf die schnelle nix besseres gefunden. Benutzt am besten einen Adblocker, "uBlock Origin" z.B.)
 
Zuletzt bearbeitet von einem Moderator:
#2
Sehr cool! Ich muss zuerst noch mein Kopter fertig bauen auf dem WFBC installiert wird, danach probieren ich dein Image aus und berichte.
 

Rangarid

Erfahrener Benutzer
#3
Hört sich gut an, ein paar Ideen davon hatte ich auch schon (config in der FAT Partition z.B.). Werds mal ausprobieren. Vorallem das mit der erhöten Sendeleistung hört sich interessant an und werde ich testen. Interessant wäre mal ein Vergleich mit dem RFMeter wie doll sich die Leistung dann tatsächlich unterscheidet... Bisher war die Leistung der Sticks ja immer weit unter den erlaubten 100mW was die Messungen ergeben haben...

Was genau ist Senderdiversity? Bringt das irgendwas oder ist das um z.B. unterschiedliche Frequenzen für Redundanz zu nutzen?
 
Zuletzt bearbeitet:

rodizio

Erfahrener Benutzer
#5
Rangarid:
Ja, wäre echt mal interessant die echte Sendeleistung zu wissen. Mit so einem ImmersionRC Ding z.B. ist das aber kaum vernünftig zu messen bei WLAN.

Senderdiversity ist einfach das eingebaute Diversity der Wifi-Sticks. Funktioniert mit RT5572 Sticks ohne weiteres zutun. Mit Atheros hab ich's noch nicht getestet, sollte aber auch funktionieren. Sendet auf beiden Antennen praktisch das gleiche auf der gleichen Frequenz. Klingt verrückt, geht aber bei digitaler Übertragung ;)

Sollte eine ganze Menge bringen, genau wie beim RX Diversity. Der grosse Vorteil beim TX-Diversity gegenüber dem RX-Diversity ist noch zusätzlich, dass man die Antennen so anordnen kann, dass sie nie beide durch Rahmenteile verdeckt sind oder auch so dass nie beide Top- bzw. Bottom-Nulls in Richtung RX zeigen.

Wenn man dann noch ein RX-Diversity mit mehreren Antennen weit auseinander (USB 10m Verlängerung) aufbaut, sollte man damit selbst im Wald praktisch immer ein gutes Bild haben, einfach weil es recht unwahrscheinlich wird, dass alle Antennen verdeckt sind.


DerAhnungslose:
Habe selbst mit AR9721 WN722N und RT5572 CSL 300Mbit Sticks getestet, es sollten aber alle Sticks mit diesen beiden und auch anderen ähnlichen Atheros bzw. Ralink Chipsätzen gehen.

Die hier sollten auf jedenfall gehen, wurden von diversen Leuten getestet:
- CSL 300Mbit Stick (2.4/5Ghz, Diversity, RT5572 chipset)
- Alfa AWUS036NHA (2.3/2.4Ghz, high power, Atheros AR9271 chipset)
- TPLink TL-WN722N (2.3/2.4Ghz, Atheros AR9271 chipset)
- ALFA AWUS051NH v2 (2.4Ghz/5Ghz, high power, Ralink RT3572 chipset)


Den hat glaube noch keiner getestet (?) müsste aber auch laufen, hat noch zusätzlich Diversity gegenüber dem 51NH:
- Alfa AWUS052NH (2.4Ghz/5Ghz, Diversity, high power, RT3572 chipset)
 
Zuletzt bearbeitet:

Rangarid

Erfahrener Benutzer
#6
Muss man das Sender Diversity aktivieren (z.B. beim normalen wbc image) oder ist das immer standardmäßig aktiv beim Senden? Also ist das ne Linux Einstellung oder gehst du einfach davon aus, dass die Sticks das machen?
 
Zuletzt bearbeitet:

rodizio

Erfahrener Benutzer
#7
Rangarid:
Muss man nicht extra aktivieren. Mit dem offiziellen Befi 0.4er Image habe ich die Funktionalität zwar nicht getestet, aber sollte da auch funktionieren schätze ich mal.



Ansonsten hab ich gestern endlich mal einen richtigen Test gemacht. Was soll ich sagen, läuft erstaunlich gut.

Testsetup: Odroid-W mit CSL 300MBit Stick auf einem Autodach, Antennen nicht besonders frei, eine nach unten, eine zu nah am Blech. Empfänger Standort auf einem Hügel, 2x CSL 300Mbit Stick für 4-Fach Diversity. Mitgelieferte Antennen an RX und TX Sticks, 2.4GHz Kanal 13.

Kumpel ist losgefahren, Bild war fast die ganze Zeit perfekt, paar kleine Glitches aber kein Totalausfall. Ganz hinten ca. 850m entfernt hinter einem Gebäude verdeckt wurde es dann recht schlecht, aber nie so plötzlich dass man nicht hätte umkehren können (oder als erfahrener FPVler einfach durchfliegen :D). Dafür das da praktisch immer irgendein Baum oder Gebäude halb im Weg, ein paar Firmen mit WLAN und ein riesiger Stahlkoloss direkt nebenan sind, auf jedenfall super.

Aktuelles Foto vom Empfängerstandort aus:
wifibroadcast-first-test-1.jpg

(paar Monate altes) Foto von einem Turm aus:
wifibroadcast-first-test-3.jpg

(Jahre altes) Google Maps Bild vom Gelände:
wifibroadcast-first-test-2.jpg
 
#8
Sehr Sehr Cool! Sowohl Images als auch der Testlauf!
Du hast nicht zufällig Lust den Test nochmal mit gleichem Setup auf nem 5GHz Kanal zu machen? ;_)

Images werden sobald wie möglich getestet!
 

Rangarid

Erfahrener Benutzer
#9
Hm also ich find nur Infos zum RX Diversity, TX Diversity wird nirgends erwähnt. Hast du da mal nen Link zu oder steht das irgendwo im Treiber, dass das gemacht wird?
 

Rangarid

Erfahrener Benutzer
#12
Danke für die Info. Geht also nur im n Modus. Ich nehm an, der ist automatisch ausgewählt, wenn man einen dieser MCSx Modis benutzt?

Dann lohnt sich das anlöten einer Zweiten Antenne ja eventuell doch noch bei den 722N...
 
Zuletzt bearbeitet:

rodizio

Erfahrener Benutzer
#13
Ich bin mir gerade nicht sicher, ob die Karten das nicht auch im G-Modus machen. Wenn ich mich recht entsinne hatte ich 24Mbit eingestellt als ich getestet hatte, das ist eine G Datenrate. War allerdings mit dem CSL Ralink stick, Atheros Karten mit zwei Antennenanschlüssen muss ich mir noch zulegen.

Kann man jedenfalls ganz einfach testen indem man eine Antenne abschraubt. Signal bleibt dann gleich. Antenne wieder dran und andere Antenne ab, Signal immer noch gleich.
 

rodizio

Erfahrener Benutzer
#15
Ja, das habe ich noch vor. Nutze das selbst nicht und hab auch überhaupt keine Ahnung von Telemetrie muss ich sagen, von daher muss ich mich da erstmal schlau machen.

Wie ist denn der aktuelle Stand bezüglich der ganzen OSD Geschichte? Am TX gab's doch zwei Varianten, entweder mit 2 tx Prozessen oder mit der anderen wbc branch. Bei der anderen wbc branch lief aber irgendwas nicht wenn ich das richtig verstanden habe? Also besser zwei Prozesse?

Wie ist das mit Deinem OSD, ersetzt das auch die Funktionalität von Befis OSD, oder ist das als Zusatz gedacht? Am besten scheint mir ja Dein OSD, dann würde ich gleich das nehmen. Cool wäre noch, wenn Du eine RSSI und Packetloss Anzeige wie im rx_status_test mit in das OSD einbauen könntest. Mein umgeschriebenes rx_status_test als Kopfzeile oben im Display funktioniert zwar, aber schön is anders ;)
 

Rangarid

Erfahrener Benutzer
#16
RSSI ist im OSD schon drin, aber careyer hat noch Probleme, dass sich alles irgendwann aufhängt, ka woran das genau liegt. Also starte am besten erstmal mit Befis OSD. Denke es ist sinnvoll 2 Threads zu haben, falls einer mal ausfällt geht der andere dann trotzdem weiter.

Die WN722N scheinen kein Diversity zu haben. Auch wenn eine zweite PCB-Antenne auf dem Board mit drauf ist, diese scheint ohne Wirkung zu sein. Was eigentlich komisch ist...

- PR_EEP("Ant. Diversity ctl1", pModal->antdiv_ctl1);
- PR_EEP("Ant. Diversity ctl2", pModal->antdiv_ctl2);
- PR_EEP("TX Diversity", pModal->tx_diversity);
Die 3 Zeilen, kannst du mal schauen, ob die auch in deinem Kernel drinstehen? Ist in der Datei drivers/net/wireless/ath/ath9k/htc_drv_debug.c

Hm scheint aus nem alten Treiber zu sein... ich schau mal ob ich mehr Infos finde...
 
Zuletzt bearbeitet:
#17
Hi Rodizio,

Vielen Dank für die Mühe!
Es würde mich interessieren wie du die 4-5db erhöht hast gegenüber dem Befi-Image.

Ich habe auf 5,8 GHz getestet.
Images von hier:
http://fpv-community.de/showthread.php?69856-Wifibroadcast-Ger%E4te-und-Infosammlung

Und mit je ein cls300 stick an tx und rx.
Mit je eine cloverleaf und stabantenne fliege ich zwischen 200 und 300 meter mit ziemlich gute Bild.
Allerdings je nach Umgebung.
Bin an 3 verschiedene locations geflogen.
An 2 bekomme ich im Regel 200 Meter hin bis das Bild weg ist.
An eine flog ich 310 meter.

Bei 310 Meter war kein baum breit und weit.
Bei 200 Meter waren Bäume links und rechts herum.
 
Zuletzt bearbeitet:
#18
Images gerade mal getestet, tun wirklich auf Anhieb und booten fix, hab nur auf 5GHz umgestellt.

Schnell noch ne Bodenstation zusammen gedengelt zum testen.

ez_wb_1.jpg

ez_wb_2.jpg

Kommt dann später in ein kleines Gehäuse.
TX is momentan ein Odroid-W, Zero mit Camanschluss ist aber unterwegs. Sollte dann auch schön klein und billig werden ;-)
 

rodizio

Erfahrener Benutzer
#19
Ahh, RSSI ist schon drin, cool, das ist mir entgangen. Werde mir das alles mal anschauen bei Gelegenheit.

Mit den AR9271 sticks wird kein TX Diversity gehen, die haben nur eine TX/RX Einheit. RX Diversity ist bei denen glaube auch nur durch eine Switch davor implementiert.

Finde irgendwie gerade kein Blockbild vom AR9271, beim RT5572 sieht das aber so aus, alles doppelt vorhanden:



Edit:
Ups, hab Eure Antworten in der Zwischenzeit übersehen rogi und frickler.

Das ist mal wirklich schön kompakt frickler.

Rogi: Bei Atheros so geändert, das direkt MAX_RATE_POWER (63) in die Register geschrieben wird. Bei Ralink power_ctrl auf 3 (+6db) gesetzt und die compensate_txpower Aufrufe auskommentiert. Werde bei Gelegenheit mal patches machen. Für Ralink hatte ich es schonmal im anderen Wifibroadcast Thread beschrieben.
 
Zuletzt bearbeitet:
RCLogger

FPV1

Banggood

Oben