Merge branch 'OpenIPC:master' into master

pull/412/head
Xuân Vượng 2024-08-25 22:11:03 +07:00 committed by GitHub
commit 38d9e2c4f2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 210 additions and 0 deletions

View File

@ -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)

62
en/fpv-radxa.md 100644
View File

@ -0,0 +1,62 @@
# OpenIPC Wiki
[Table of Content](../README.md)
OpenIPC FPV ground station
--------------------------
<p align="center">
<img src="https://github.com/OpenIPC/wiki/blob/master/images/fpv-logo.jpg?raw=true" alt="Logo"/>
</p>
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)
<hr>
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)

143
en/package-vtun.md 100644
View File

@ -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";
};
}
#
```

Binary file not shown.

After

Width:  |  Height:  |  Size: 567 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB