From 60da608191397485149be29846560ce449815e63 Mon Sep 17 00:00:00 2001 From: oponfil <69752190+oponfil@users.noreply.github.com> Date: Tue, 20 Jul 2021 13:19:01 +0300 Subject: [PATCH] docs: add how to use Quectel EP06 4G modem (#375) Co-authored-by: Oleg Kalachev --- docs/en/4g.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++----- docs/ru/4g.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++----- 2 files changed, 94 insertions(+), 10 deletions(-) diff --git a/docs/en/4g.md b/docs/en/4g.md index a3974648..2da52ed8 100644 --- a/docs/en/4g.md +++ b/docs/en/4g.md @@ -4,17 +4,52 @@ The fourth generation mobile communication is a convenient tool for transmitting > **Hint** To transfer any data from your drone to the ground control station (e.g., QGroundControl) and back, you need to set up your own VPN network. -## Connecting Raspberry Pi to the VPN +## Connecting 4G modem to Raspberry Pi Connect a 4G modem with SIM card to the USB port of your Raspberry Pi. -Note that when connected, the modem must be recognized in the system as a network card, without any additional settings. +When connected, some modems recognize in the system as a network card, without any additional settings. 4G modem example: *USB 4G Huawei E3372H* -> **Hint** We suggest using the UDP transfer protocol to control the drone, which provides less delay, at the cost of no guarantee of receiving the package, which is very important during the flight. +But some other popular modems, for instance *Quectel EP06*, do not start the internet connection automatic. In this case you should use utilities like `qmi-network` and `udhcpc`. To install this utilities enter the appropriate command line: + +```bash +sudo apt install libqmi-utils udhcpc +``` + +Next to start the internet connection proceed following: + +```bash +sudo ip link set wwan0 down +echo 'Y' | sudo tee /sys/class/net/wwan0/qmi/raw_ip +sudo ip link set wwan0 up +sudo qmi-network /dev/cdc-wdm0 start +sudo udhcpc -q -f -i wwan0 +``` + +Reed more about it in [this article](https://docs.sixfab.com/page/setting-up-a-data-connection-over-qmi-interface-using-libqmi). + + + +> **Hint** To check the internet connection enter the appropriate command line: +> ```bash +> ping -I wwan0 -c 5 8.8.8.8 +> ``` + + + +> **Hint** To check the speed of the internet connection you could use the `speedtest` utility: +> ```bash +> sudo apt install speedtest-cli +> speedtest +> ``` + + + +## Connecting Raspberry Pi to the VPN Create the VPN network keys to connect Raspberry Pi and the ground station. @@ -40,8 +75,14 @@ If everything is done correctly, every time the system restarts, the service cli > **Hint** Before starting work, do not forget to set up and enable VPN connection on your PC. + + +> **Hint** Alternatively we recommend to use the [ZeroTier](zerotire_vpn.md) VPN-service. + ## Copter control via QGroundControl +> **Hint** We suggest using the UDP transfer protocol to control the drone, which provides less delay, at the cost of no guarantee of receiving the package, which is very important during the flight. + Make sure your copter and ground station are connected to your network. To do this, you can use the command `ip addr`. The result will be a numbered list of the active networks enabled on your device. Note the connection with the prefix *tun* and the IP address you specify; if it is present in your list, your copter is connected to the network. @@ -82,7 +123,8 @@ The drone is ready to fly! You can stream video from almost any camera connected to your Raspberry Pi. You will need to install or [build](https://github.com/sfalexrog/gst-rtsp-launch) the *gst-rtsp-launch* package: ```bash -sudo apt-get install gst-rtsp-launch +sudo apt update +sudo apt install gst-rtsp-launch ``` To start the transfer of images, you must enter the appropriate command line: @@ -98,7 +140,7 @@ This command line contains the parameters of the video stream, such as the sourc > **Info** A Raspberry Pi camera device `/dev/video0` could be used by `clover` systemd service. In this case `gst-rtsp-launch` will not get an access to the device. For stop the `clover` run command `sudo systemctl stop clover`. > Also you could stream from a USB-camera, for this change the source video device to `/dev/video1`. -Make sure the stream by the address `rtsp://192.168.11.1:8554/video` is received and shown in QGroundControl. +Make sure the stream by the address `rtsp://192.168.11.1:8554/video` (the IP-address of your Raspberry Pi could be different) is received and shown in QGroundControl. diff --git a/docs/ru/4g.md b/docs/ru/4g.md index 0f9f64b3..6d099939 100644 --- a/docs/ru/4g.md +++ b/docs/ru/4g.md @@ -4,17 +4,52 @@ > **Hint** Для передачи каких либо данных с вашего коптера на наземную станцию(QGroundControl) и обратно, вам необходимо настроить собственную VPN сеть. -## Подключение Raspberry Pi к VPN +## Подключение 4G модема к Raspberry Pi Подключите 4G модем с сим-картой в USB порт вашей Raspberry Pi. -Обратите внимание, что при подключении, модем должен распознаваться в системе как сетевая карта, без каких либо дополнительных настроек. +Обратите внимание, что при подключении, некоторые модемы распознаются в системе как сетевая карта, без каких либо дополнительных настроек. Пример 4g модема: *USB 4G Huawei E3372H* -> **Hint** Для управления коптером предлагается использовать UDP протокол передачи, обеспечивающий меньшую задержку, ценой отсутствия гарантии получения пакета, что очень важно во время пилотирования коптера. +Однако, некоторые модемы, например, *Quectel EP06*, автоматически не стартуют соединение. В этом случае необходимо воспользоваться утилитами `qmi-network` и `udhcpc`. Установить эти утилиты можно командой: + +```bash +sudo apt install libqmi-utils udhcpc +``` + +Далее запустить соединение с интернетом следующими командами: + +```bash +sudo ip link set wwan0 down +echo 'Y' | sudo tee /sys/class/net/wwan0/qmi/raw_ip +sudo ip link set wwan0 up +sudo qmi-network /dev/cdc-wdm0 start +sudo udhcpc -q -f -i wwan0 +``` + +Более подробно прочитать про настройку сетевого подключения вы можете в [этой статье](https://docs.sixfab.com/page/setting-up-a-data-connection-over-qmi-interface-using-libqmi). + + + +> **Hint** Проверить наличие соединения с интернетом можно командой: +> ```bash +> ping -I wwan0 -c 5 8.8.8.8 +> ``` + + + +> **Hint** Проверить скорость соединения с интернетом можно утилитой `speedtest`: +> ```bash +> sudo apt install speedtest-cli +> speedtest +> ``` + + + +## Подключение Raspberry Pi к VPN Сформируйте необходимые ключи VPN сети, для подключения Raspberry Pi и наземной станции. @@ -40,8 +75,14 @@ sudo systemctl enable openvpn-client@config-name > **Hint** Перед началом работы не забудьте настроить и включить VPN подключение на вашем ПК. + + +> **Hint** В качестве удобной альтернативы вы можете воспользоваться VPN-сервисом [ZeroTier](zerotire_vpn.md). + ## Управление коптером через QGroundControl +> **Hint** Для управления коптером предлагается использовать UDP протокол передачи, обеспечивающий меньшую задержку, ценой отсутствия гарантии получения пакета, что очень важно во время пилотирования коптера. + Убедитесь, что ваш коптер и наземная станция подключены к вашей сети. Для этого можете воспользоваться командой `ip addr`. Результатом ее выхода будет пронумерованный список активных сетей включенных на вашем устройстве. Обратить внимание стоит на подключение с префиксом *tun* и указанным вами IP адресом, если оно присутствует в вашем списке, ваш коптер подключился к сети. @@ -82,7 +123,8 @@ sudo systemctl enable openvpn-client@config-name Передача видео возможна практически с любой камеры подключенной к вашей Raspberry Pi. Для этого вам потребуется установить или [собрать](https://github.com/sfalexrog/gst-rtsp-launch) пакет *gst-rtsp-launch*: ```bash -sudo apt-get install gst-rtsp-launch +sudo apt update +sudo apt install gst-rtsp-launch ``` Чтобы запустить передачу изображений, необходимо ввести соответствующую командную строку: @@ -97,7 +139,7 @@ gst-rtsp-launch "( v4l2src device=/dev/video0 ! video/x-raw,framerate=30/1,width > **Info** Камера Raspberry Pi `/dev/video0` может использоваться сервисом `clover` и тогда `gst-rtsp-launch` не сможет получить к ней доступ. Чтобы остановить сервис `clover` выполните команду `sudo systemctl stop clover`. Также можно пустить трансляцию с USB-камеры, для этого замените устройство передачи на `/dev/video1`. -В приложении QGroundControl проверьте, что по ссылке `rtsp://192.168.11.1:8554/video` начался стрим изображения. +В приложении QGroundControl проверьте, что по ссылке `rtsp://192.168.11.1:8554/video` (IP-адрес вашей Raspberry Pi может отличаться) начался стрим изображения.