diff --git a/README.md b/README.md index 13c26cf..ae5a237 100644 --- a/README.md +++ b/README.md @@ -59,6 +59,7 @@ OpenIPC Wiki - [An Orange Pi 5 minimal VRX for Goggles](en/fpv-orange-pi-5-groundstation.md) - [A selection of OpenIPC videos on YouTube](en/fpv-youtube.md) - [RunCam WiFiLink based on OpenIPC](en/fpv-runcam-wifilink-openipc.md) +- [Radxa based groundstation](en/fpv-radxa.md) ### Troubleshooting @@ -117,6 +118,10 @@ OpenIPC Wiki - [List of Software for Recording Video](en/software-video-recording.md) +### Packages + +- [Vtun](en/package-vtun.md) + ### Subprojects - [coupler](https://openipc.org/coupler) diff --git a/en/fpv-radxa.md b/en/fpv-radxa.md new file mode 100644 index 0000000..6f3c944 --- /dev/null +++ b/en/fpv-radxa.md @@ -0,0 +1,62 @@ +# OpenIPC Wiki +[Table of Content](../README.md) + +OpenIPC FPV ground station +-------------------------- + +

+ Logo +

+ +Here is a good [getting started](https://wiki.radxa.com/Zero/getting_started) if you are not familiar with Radza. + +### Flashing + +* SDCard +[Link](https://github.com/OpenIPC/sbc-groundstations/releases) to latest + +* EMMC +[How to flash the image to your onboard emmc](https://github.com/OpenIPC/sbc-groundstations/blob/master/radxa_pi_zero_3w/flashing_to_the_onboard_memory.md) + + +### Wifi + +You can [setup the onboard wifi](https://github.com/OpenIPC/sbc-groundstations/blob/master/radxa_pi_zero_3w/headless_setup.md#setup-of-autoconnect-on-boot) for SSH connectivity. (udev rules and networkmanager are already configured in this image, you only need to execute the nmcli commands) + +Note: for RubyFPV you will either need a USB Network Dongle like the one below + + ![Picture](../images/fpv-radxa-usbc-lan.png) + +or access serial console, please check [here](https://wiki.radxa.com/Zero/dev/serial-console) on how to do that. + +### DVR with FPV firmware + +DVR functionality; It requires a push button to be installed to the gpio header between physical pins 25 and 27 like so: + + +![image](../images/fpv-radxa-gpio.png) + +To record DVR, push the button once. The stream will start and DVR will begin recording. When finished, push the button once to stop the recording and save the file. + +DVR is saved to the Videos folder in your home directory. DVR can be accessed either at /home/radxa/Videos or via a media server. Connect your groundstation to your home network and it can be accessed via a web browser at x.x.x.x:8080 -- replace x.x.x.x with your groundstation's local ip address. + +Connect Led long lead to +5v, Led short lead via a 1k resistor to GPIOAO_2 (The other BLUE pin on Radxa), + +```bash +sudo gpioset gpiochip4 11=0 # turn LED on +sudo gpioset gpiochip4 11=1 # turn LED off (actually it is very # simply lit because i guess logic level 0 is not 0 volts) +``` + +Circuit wiring: +5v —> +Led- —-> 1k resistor —> pin 28 on Radxa z3w (aka the other blue pin) + +
+ +A note about the DVR recording in this image. To ease the strain on the processor, we record to to a ts file rather than mp4 or mkv. As a result, there is no "smear" effect recorded, the uncaptured frames are simply dropped. You may notice jumps in your recording where there was no frame information. + +### Links to some helpful tools + +* [Windows Tools](https://dl.radxa.com/zero/tools/windows/) +* [Other, All OS](https://dl.radxa.com/tools/) + +### RubyFPV +see [RubyFPV Hardware](https://rubyfpv.com/hardware.php) \ No newline at end of file diff --git a/en/package-vtun.md b/en/package-vtun.md new file mode 100644 index 0000000..cb2a2da --- /dev/null +++ b/en/package-vtun.md @@ -0,0 +1,143 @@ +# OpenIPC Wiki +[Table of Content](../README.md) + +Package Vtun +------------ + +### Introduction + +This package is designed to organize a Vtun-based L2 tunnel between IP cameras and a server. +In order to reduce the space occupied on the NOR flash, reduce RAM consumption, and increase the tunnel throughput, encryption and compression are completely disabled. + +### Client part + +The client part is always present in all official OpenIPC firmware. +To connect to the server, go to the extensions tab, specify the IP address or domain of the server and save the settings + +### Server part + +- create a bridge interface, for example br-openipc +- in the vtund.conf config add all camera connections to the bridge +- raise any DHCP server on the br-openipc interface +- bind the IP addresses of the connecting devices by MAC + +### Example of vtun compilation for server + +Installing components and dependencies for Debian/Ubuntu + +``` +apt install -y bison bridge-utils build-essential curl flex +``` + +### Automatic compilation script + +``` +#!/bin/bash +# +# OpenIPC.org | v.20240824 +# + +LANG=C + +vtun_version="3.0.2" +vtun_download="http://prdownloads.sourceforge.net/vtun/vtun-${vtun_version}.tar.gz" + +prepare() { + curl -L -o vtun-${vtun_version}.tar.gz ${vtun_download} + tar xvfz vtun-${vtun_version}.tar.gz + rm vtun-${vtun_version}.tar.gz + cd vtun-${vtun_version} +} + +compile() { + ./configure --build=x86_64-linux-gnu --disable-lzo --disable-zlib --disable-ssl --prefix='' + make && strip vtund +} + +install() { + mkdir -p ../_binary + mv -v vtund ../_binary/vtund_i386 + cd - + rm -rf vtun-${vtun_version} +} + +prepare && compile && install +``` + +### Example of /etc/network/interfaces.d/br-openipc for server + +``` +# Bridge OpenIPC +# +auto br-openipc +iface br-openipc inet static + address 192.168.11.1 + netmask 255.255.255.0 + bridge_ports zero + up mkdir -p /var/lock/vtund /var/log/vtund + up iptables -A FORWARD -j ACCEPT -i br-openipc -o br-openipc + #up iptables -A FORWARD -t mangle -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu + #up iptables -A POSTROUTING -t mangle -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu + #up iptables -A POSTROUTING -t nat -s 192.168.11.0/24 -j MASQUERADE + #up iptables -A FORWARD -j ACCEPT -i ens2 -o br-openipc -d 192.168.11.0/24 + #up iptables -A FORWARD -j ACCEPT -o ens2 -i br-openipc -s 192.168.11.0/24 + #up iptables -A PREROUTING -t nat -j DNAT -p TCP -i ens2 --dport 10180 --to-destination 192.168.11.101:80 + #up iptables -A POSTROUTING -t nat -j SNAT -p TCP -o br-openipc -d 192.168.11.101 --to-source 192.168.11.1 + +``` + +### Example of /etc/vtund.conf for server + +``` +options { + syslog daemon; + timeout 60; + ip /bin/ip; +} +default { + type tun; + proto tcp; + persist yes; + keepalive yes; + timeout 60; + compress no; + encrypt no; + speed 512:512; + multi killold; +} +# +### Cam-1 +# +E60BFB000001 { + type ether; + speed 0:0; + password bla-bla-pass; + device v-E60BFB000001; + up { + ip "link set %% up multicast off mtu 1500"; + program "brctl addif br-openipc %%"; + }; + down { + program "brctl delif br-openipc %%"; + ip "link set %% down"; + }; +} +# +### Cam-2 +# +729051000001 { + type ether; + speed 0:0; + password bla-bla-pass; + device v-729051000001; + up { + ip "link set %% up multicast off mtu 1500"; + program "brctl addif br-openipc %%"; + }; + down { + program "brctl delif br-openipc %%"; + ip "link set %% down"; + }; +} +# +``` diff --git a/images/fpv-radxa-gpio.png b/images/fpv-radxa-gpio.png new file mode 100644 index 0000000..3109c59 Binary files /dev/null and b/images/fpv-radxa-gpio.png differ diff --git a/images/fpv-radxa-usbc-lan.png b/images/fpv-radxa-usbc-lan.png new file mode 100644 index 0000000..e27c60f Binary files /dev/null and b/images/fpv-radxa-usbc-lan.png differ