Пост

Настройка LTE-модема Air780E на Raspberry Pi. Полное руководство

Данное руководство описывает процесс подключения и настройки LTE-модема Air780E (на чипе BYD EigenComm) к Raspberry Pi Zero через интерфейс pogo-pin. Модем подключается через USB-порт OTG и работает в режиме хоста по умолчанию. Инструкция включает идентификацию устройства, работу с AT-командами, настройку APN для различных операторов, автоматизацию подключения и решение типичных проблем.

Настройка LTE-модема Air780E на Raspberry Pi: полное руководство

Описание/Введение

Данное руководство описывает процесс подключения и настройки LTE-модема Air780E (на чипе BYD EigenComm) к Raspberry Pi Zero через интерфейс pogo-pin. Модем подключается через USB-порт OTG и работает в режиме хоста по умолчанию. Инструкция включает идентификацию устройства, работу с AT-командами, настройку APN для различных операторов, автоматизацию подключения и решение типичных проблем.

spotpear Расширительная плата для Raspberry Pi Zero LTE

Рекомендации

Перед началом настройки убедитесь, что используете блок питания мощностью не менее 2.5A, так как LTE-модем и Raspberry Pi Zero вместе потребляют значительный ток. SIM-карта должна быть активна, иметь положительный баланс и отключенный запрос PIN-кода. Для работы с AT-командами рекомендуется использовать утилиту screen как более простую альтернативу minicom.

Аппаратное подключение

Raspberry Pi Zero имеет два Micro-USB порта: порт PWR IN предназначен только для питания, порт USB (OTG) по умолчанию работает в режиме хоста и используется для подключения модема. Вставьте SIM-карту в слот модема чипом вверх (ориентация может отличаться в зависимости от конкретной платы), подключите модем через pogo-pin к порту USB, при наличии подключите внешнюю антенну и подайте питание на Raspberry Pi.

spotpear Расширительная плата для Raspberry Pi Zero LTE

Проверка обнаружения модема

После загрузки системы выполните команду для просмотра USB-устройств:

1
lsusb

В выводе должна появиться строка с идентификатором 19d1:0001 BYD EigenComm Compo. Затем проверьте созданные последовательные порты:

1
ls -la /dev/ttyA*

Модем должен создать порты /dev/ttyACM0 (основной AT-порт) и /dev/ttyACM2 (дополнительный). Проверьте появление сетевого интерфейса:

1
ip a

Должен появиться интерфейс eth1 или usb0. Для просмотра системных сообщений о подключении выполните:

1
dmesg | grep -i "ttyACM\|modem" | tail -20

Установка ModemManager

ModemManager обеспечивает высокоуровневое управление модемом. Установите его командой:

1
2
sudo apt update && sudo apt install modemmanager -y
sudo systemctl enable ModemManager && sudo systemctl start ModemManager

Проверьте обнаружение модема:

1
sudo mmcli -L

При успешном обнаружении вы увидите путь к модему, например /org/freedesktop/ModemManager1/Modem/0 [BYD] EigenComm Compo. Для получения подробной информации выполните:

1
sudo mmcli -m 0

spotpear Расширительная плата для Raspberry Pi Zero LTE

Работа с AT-командами через screen

Для прямого общения с модемом используйте утилиту screen. Установите её при необходимости:

1
sudo apt install screen -y

Подключитесь к AT-порту:

1
sudo screen /dev/ttyACM0 115200

Проблема: Вводимые команды не отображаются на экране. Решение: Это нормальное поведение для многих терминальных программ при работе с модемами. Для включения отображения вводимых символов нажмите Ctrl+A, затем E (переключение локального эха). Если комбинация Ctrl+A не срабатывает, попробуйте нажать её дважды быстро или использовать Ctrl+Z / Ctrl+Q. Альтернативный способ — включить эхо через конфигурационный файл перед запуском screen. Создайте файл настроек:

1
echo 'pu localecho Yes' | sudo tee ~/.minirc.dfl

После этого используйте minicom вместо screen:

1
sudo minicom -D /dev/ttyACM0

Для выхода из screen нажмите Ctrl+A, затем K (латинскую), затем подтвердите y. Для выхода из minicom нажмите Ctrl+A, затем Z, затем Q или X.

Основные AT-команды

После подключения к порту введите следующие команды (помните, что символы могут не отображаться до включения эха):

  • AT — проверка связи с модемом, ожидаемый ответ: OK
  • ATE1 — включение эха команд, ожидаемый ответ: OK
  • AT+CPIN? — проверка статуса SIM-карты, ожидаемый ответ: +CPIN: READY
  • AT+CSQ — проверка уровня сигнала, ожидаемый ответ: +CSQ: XX,0 (где XX от 0 до 31, значение 10 и выше считается нормальным)
  • AT+CREG? — проверка регистрации в GSM сети, ожидаемый ответ: +CREG: 0,1 (зарегистрирован в домашней сети) или 0,5 (роуминг)
  • AT+CEREG? — проверка регистрации в LTE, ожидаемый ответ: +CEREG: 0,1 или 0,5
  • AT+COPS? — определение текущего оператора
  • AT+CCID — получение уникального идентификатора SIM-карты
  • AT+CGATT=1 — прикрепление к GPRS сети, ожидаемый ответ: OK
  • AT+CIFSR — получение IP-адреса после активации соединения

spotpear Расширительная плата для Raspberry Pi Zero LTE

Настройка APN для различных операторов

APN (Access Point Name) — это точка доступа, которая должна соответствовать вашему оператору. Установите APN командой в формате AT+CSTT="APN","логин","пароль":

Для Tele2:

1
AT+CSTT="internet.tele2.ru","",""

Для МТС:

1
AT+CSTT="internet.mts.ru","",""

Для Билайн:

1
AT+CSTT="internet.beeline.ru","beeline","beeline"

Для МегаФон:

1
AT+CSTT="internet","",""

Для Yota:

1
AT+CSTT="internet.yota","",""

Для Ростелеком:

1
AT+CSTT="internet.rt.ru","",""

spotpear Расширительная плата для Raspberry Pi Zero LTE

Подключение к интернету через AT-команды

Последовательно выполните следующие команды в screen или minicom:

1
2
3
4
5
6
7
8
AT+CPIN?
AT+CSQ
AT+CREG?
AT+CEREG?
AT+CGATT=1
AT+CSTT="internet.tele2.ru","",""
AT+CIICR
AT+CIFSR

Команда AT+CIICR активирует сеть, процесс может занимать 5-10 секунд. После получения IP-адреса от оператора выйдите из терминальной программы. Затем настройте сетевой интерфейс в Linux. Рекомендуемый способ — использование DHCP:

1
2
3
sudo dhclient eth1
ip addr show eth1
ping 8.8.8.8

Если DHCP не работает, назначьте IP-адрес вручную (замените 10.xxx.xxx.xxx на IP, полученный от AT+CIFSR):

1
2
3
4
sudo ip addr add 10.xxx.xxx.xxx/32 dev eth1
sudo ip link set eth1 up
sudo ip route add default dev eth1
ping 8.8.8.8

Если 8.8.8.8 пингуется, но доменные имена не резолвятся, настройте DNS:

1
2
echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf
ping google.com

Автоматизация подключения

Для автоматического подключения при загрузке системы создайте скрипт. Откройте файл для редактирования:

1
sudo nano /usr/local/bin/lte-connect.sh

Вставьте следующее содержимое, заменив APN при необходимости:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/bin/bash
APN="internet.tele2.ru"
USER=""
PASS=""
PORT="/dev/ttyACM0"
LOG_FILE="/var/log/lte-connect.log"
log() {
    echo "$(date): $1" >> $LOG_FILE
}
log "Запуск подключения LTE"
{
    sleep 1
    echo "AT+CPIN?"
    sleep 1
    echo "AT+CSQ"
    sleep 1
    echo "AT+CGATT=1"
    sleep 2
    echo "AT+CSTT=\"$APN\",\"$USER\",\"$PASS\""
    sleep 2
    echo "AT+CIICR"
    sleep 8
    echo "AT+CIFSR"
    sleep 2
} > $PORT
sleep 3
sudo dhclient eth1
log "Готово"

Сделайте скрипт исполняемым:

1
sudo chmod +x /usr/local/bin/lte-connect.sh

Добавьте скрипт в автозагрузку через crontab:

1
(crontab -l 2>/dev/null; echo "@reboot sleep 30 && /usr/local/bin/lte-connect.sh") | sudo crontab -

Альтернативный способ — создание systemd сервиса. Создайте файл сервиса:

1
sudo nano /etc/systemd/system/lte-connect.service

Содержимое файла:

1
2
3
4
5
6
7
8
9
[Unit]
Description=LTE Modem Connection
After=network.target
[Service]
Type=oneshot
ExecStart=/usr/local/bin/lte-connect.sh
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target

Активируйте сервис:

1
2
3
sudo systemctl daemon-reload
sudo systemctl enable lte-connect.service
sudo systemctl start lte-connect.service

Типичные проблемы и решения

Проблема: После выполнения lsusb модем не отображается. Решение: Убедитесь, что модем правильно подключен к порту USB (OTG), а не к PWR IN. Перезагрузите Raspberry Pi с уже подключенным модемом. Проверьте питание — используйте блок питания не менее 2.5A.

Проблема: Команда AT+CPIN? возвращает +CME ERROR: 4 или +CME ERROR: 10. Решение: Ошибка 4 означает, что SIM-карта требует ввода PIN-кода. Ошибка 10 означает, что SIM-карта не обнаружена физически. Для отключения PIN-кода вставьте SIM-карту в обычный смартфон, зайдите в настройки безопасности и отключите запрос PIN-кода. После этого верните SIM в модем и выполните полную перезагрузку Raspberry Pi. Для проверки физического контакта протрите золотистые контакты SIM-карты сухой мягкой тканью.

Проблема: Вводимые команды не отображаются в minicom или screen. Решение: Это нормальное поведение. В minicom нажмите Ctrl+A, затем E для включения локального эха. В screen эхо можно включить командой ATE1, отправленной вслепую. Для автоматического включения эха создайте файл ~/.minirc.dfl с содержимым pu localecho Yes.

Проблема: AT+CIICR возвращает ERROR. Решение: Проверьте правильность APN для вашего оператора. Убедитесь, что AT+CREG? возвращает 0,1 или 0,5 (регистрация в сети есть). Проверьте уровень сигнала командой AT+CSQ — значение должно быть не менее 10. Убедитесь, что на SIM-карте положительный баланс и она активна. Попробуйте вставить SIM в телефон для проверки работоспособности.

Проблема: После AT+CIFSR получен IP, но ping 8.8.8.8 не работает. Решение: Проверьте, появился ли IP на интерфейсе eth1 командой ip addr show eth1. Если IP не назначен автоматически, выполните sudo dhclient eth1 или назначьте IP вручную командой sudo ip addr add <полученный_IP>/32 dev eth1. Затем добавьте маршрут по умолчанию: sudo ip route add default dev eth1.

Проблема: ping 8.8.8.8 работает, но ping google.com не работает. Решение: Проблема в DNS. Временно добавьте DNS-сервер Google: echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf. Для постоянной настройки отредактируйте файл /etc/dhcpcd.conf и добавьте строку static domain_name_servers=8.8.8.8 8.8.4.4.

Проблема: Модем периодически отключается или теряет соединение. Решение: Проверьте питание — используйте качественный блок питания на 2.5A с хорошим кабелем. Возможно, требуется внешнее охлаждение, так как модем может перегреваться при длительной работе. Убедитесь, что антенна надежно подключена и находится в зоне уверенного приема.

Проблема: После перезагрузки Raspberry Pi модем не определяется. Решение: Это особенность модемов Air780E — SIM-карта опрашивается только при включении питания. Убедитесь, что SIM-карта уже вставлена в модем до подачи питания. Выполните полное выключение, вставьте SIM (если ещё не вставлена), затем включите питание.

Проверка работоспособности

Для быстрой диагностики состояния модема выполните последовательность команд без входа в интерактивный режим:

1
2
3
echo -e "AT+CPIN?\r" | sudo tee /dev/ttyACM0 && sleep 1 && sudo cat /dev/ttyACM0
echo -e "AT+CSQ\r" | sudo tee /dev/ttyACM0 && sleep 1 && sudo cat /dev/ttyACM0
echo -e "AT+CREG?\r" | sudo tee /dev/ttyACM0 && sleep 1 && sudo cat /dev/ttyACM0

Если AT+CPIN? возвращает READY, AT+CSQ показывает значение 10-31, а AT+CREG? возвращает 0,1 или 0,5, модем готов к работе. Финальная проверка интернета выполняется командой ping -c 4 8.8.8.8.

После выполнения всех шагов ваш LTE-модем Air780E должен стабильно работать на Raspberry Pi. При возникновении проблем рекомендуется последовательно проверить каждый пункт из раздела “Типичные проблемы и решения” и убедиться, что SIM-карта активна, имеет положительный баланс и отключенный запрос PIN-кода. Для большинства российских операторов APN имеет значение internet.название_оператора.ru (кроме МегаФона, у которого APN = internet). При использовании модема в качестве основного канала выхода в интернет рекомендуется настроить автоматическое подключение через systemd сервис или crontab, как описано в разделе “Автоматизация подключения”.

Авторский пост защищен лицензией CC BY 4.0 .

© evdokimoff. Некоторые права защищены.

Использует тему Chirpy для Jekyll