Для ввода AT-команд на модемах Huawei требуется доступ к диагностическому интерфейсу через виртуальный COM-порт, который устройство создает при подключении к компьютеру. Большинство современных USB-модемов и роутеров этой марки используют стандартный набор команд Hayes, расширенный проприетарными инструкциями для управления сетями LTE, USSD-запросами и прошивкой. Без корректной установки драйверов и определения номера порта терминал не сможет установить связь с модемным процессором.
Процесс взаимодействия строится на текстовом протоколе: вы отправляете строку, заканчивающуюся символами перевода строки, и получаете ответ OK или ERROR. Критически важно отключить в настройках терминала эхо-символы и управление потоком (Flow Control), иначе длинные ответы (например, список базовых станций) обрежутся посередине. Для стабильной работы рекомендуется использовать кабели с качественной экранировкой и питанием от USB 2.0/3.0 портов материнской платы, а не через неисправные хабы.
Подготовка драйверов и определение порта в системе
Первым делом установите пакет Huawei Data Card Driver или универсальный Mobile Partner, который содержит необходимые виртуальные последовательные порты. После подключения модема откройте «Диспетчер устройств» в Windows и разверните раздел «Порты (COM и LPT)». Ищите устройства с названиями Huawei Mobile Connect — 3G PC UI Interface или Huawei Diagnostics Interface — именно через них проходит AT-трафик. На Linux и macOS порты обычно определяются как /dev/ttyUSB0, /dev/ttyUSB1 или /dev/ttyACM0.
Если порты не появляются, проверьте режим работы устройства. Модемы со стандартной прошивкой (Stick/Non-HiLink) выдают порты сразу. Устройства на платформе HiLink по умолчанию работают как сетевые адаптеры (RNDIS/ECM) и скрывают AT-интерфейс. Для доступа к консоли их нужно перевести в режим Project V (Download Mode) или зашить Stick-прошивку. Номер COM-порта может меняться при переподключении, поэтому фиксируйте его перед каждой сессией.
☑️ Чек-лист перед началом работы
⚠️ Внимание: Использование диагностического порта (FC/PCUI) на работающем модеме HiLink без перевода в специальный режим может привести к зависанию веб-интерфейса 192.168.8.1 и потере связи до перезагрузки питания.
Выбор и настройка терминальной программы
Классическим инструментом остается PuTTY (Connection type: Serial), но он не поддерживает вставку текста из буфера обмена в серийный режим, что неудобно для длинных команд. Более функциональны Termite, HTerm или Serial Port Monitor — они позволяют логировать сессию, отправлять файлы скриптами и корректно отображать кириллицу в USSD-ответах. На Linux стандарт де-факто — screen /dev/ttyUSB0 115200 или minicom -D /dev/ttyUSB0.
Настройки порта едины для всех программ: скорость 115200 бод (иногда 9600 для старых E173/E352), 8 бит данных, нет контроля четности (None), 1 стоп-бит (8N1). Аппаратное управление потоком (RTS/CTS) — Off, программное (XON/XOFF) — Off. Включите локальное эхо (Local Echo), чтобы видеть вводимые символы, и принудительный возврат каретки (CR -> CR+LF) для корректного отображения ответов.
Базовый набор команд для диагностики и управления
Начинайте сессию с проверки связи командой AT — модем должен ответить OK. Запросите идентификацию: ATI (полная информация), AT+CGMI (производитель), AT+CGMM (модель), AT+CGMR (версия прошивки). Для проверки SIM-карты используйте AT+CPIN? — ответ READY означает, что PIN не требуется или введен верно. Уровень сигнала и качество: AT+CSQ (RSSI/BER) и расширенная AT^CSNR (RSRP/RSRQ/SINR для LTE).
Управление регистрацией в сети: AT+CREG? (2G/3G), AT+CEREG? (LTE), AT+COPS? — текущий оператор. Для ручного выбора сети: AT+COPS=1,2,\"25001\" (MCC+MNC МТС). Включение/выключение радио: AT+CFUN=1 / AT+CFUN=4 (режим полета). USSD-запросы баланса: AT+CUSD=1,\"*100#\",15 (кодировка UCS2). Все команды вводятся заглавными буквами, завершаются Enter.
AT+CSQ
AT^CSNR
AT+CUSD=1,"*100#",15
AT+COPS=0
AT+CFUN=1,1
Таблица кодов ошибок CME/CMS
+CME ERROR: 3 — недопустимая операция (часто при закрытом RF)|+CME ERROR: 10 — SIM не вставлена|+CME ERROR: 13 — SIM failure|+CMS ERROR: 38 — сеть недоступна|+CMS ERROR: 50 — неизвестная ошибка
⚠️ Внимание: КомандаAT+CFUN=1,1выполняет полную перезагрузку модемного процессора. Все несохраненные настройки профилей APN и телефонной книги на SIM будут потеряны, если их не зафиксировать командойAT&Wзаранее.
Работа с прошивками: Stick vs HiLink, разблокировка и flashing
Ключевое различие: Stick-прошивки (обычные модемы) держат AT-порты открытыми постоянно. HiLink-устройства (E3372h, E5576, B315 и др.) требуют перехода в режим FC/Download Mode для разблокировки, смены IMEI или записи полной прошивки. Вход в режим: короткое замыкание тестовых точек на плате (TP1/TP2) или отправка AT^RESET / AT^DLOAD если порт доступен. В этом режиме устройство определяется как Huawei USB Download Gadget (VID 12d1 PID 1038/1039/14db).
Для разблокировки (unlock) по коду NCK используется команда AT^NCK=\"CODE\" или AT^SIMLOCK=\"CODE\" в зависимости от поколения чипсета (Balong V7R11 vs V7R16+). После ввода кода проверяйте статус: AT^SIMLOCK? — ответ 0 означает успешную разблокировку. Прошивка через Huawei Update Writer (Windows) или balong_usbdload (Linux) требует отключенных антивирусов и стабильного питания. Никогда не прерывайте процесс записи прошивки — это гарантированно превратит модем в «кирпич», восстанавливаемый только программатором.
Перед прошивкой всегда сделайте бэкап раздела NV (Non-Volatile) командой AT^NVBACKUP или через DC-Unlocker. В нем хранятся калибровки RF, IMEI, серийный номер и ключи SIMLOCK. Потеря NV без бэкапа делает восстановление практически невозможным.
Специфические команды для балансировки и фиксации частот
Операторы часто используют агрегацию несущих (CA). Принудительная фиксация на конкретную полосу (Band) повышает стабильность на границе зоны покрытия. Команда AT^SYSCFGEX=\"00\",3FFFFFFF,1,2,800C5,, — автоматический режим (все бэнды). Для фиксации только Band 3 (1800 MHz): AT^SYSCFGEX=\"03\",3FFFFFFF,1,2,800C5,,. Маска бэндов считается в hex: B1=1, B3=4, B7=40, B20=80000, B38=80000000. Суммируйте нужные значения. Параметр 800C5 отвечает за режим сети (LTE only = 0x800C5, Auto = 0x3FFFFFFF).
Проверка активных несущих: AT^CAINFO? показывает PCC (Primary) и SCC (Secondary) с их PCI, EARFCN и уровнем сигнала. Отключение агрегации: AT^CACTRL=0. Для инженерного меню на роутерах (B525, B535, B818) часто работает скрытый API по адресу http://192.168.8.1/html/switchProjectMode.html, который включает дополнительные AT-порты без разборки корпуса.
| Команда | Назначение | Пример ответа |
|---|---|---|
AT+CSQ | Уровень сигнала RSSI (0-31, 99=нет) | +CSQ: 22,0 |
AT^CSNR | RSRP/RSRQ/SINR для LTE | ^CSNR: -95,-7,15 |
AT^SYSCFGEX | Настройка бэндов и режима сети | OK |
AT^CAINFO? | Информация об агрегации несущих | ^CAINFO: 1,100,50,-85... |
AT^NCK= | Ввод кода разблокировки (NCK) | OK / ^NCK: 1 |
Типичные проблемы: порт занят, нет ответа, кодировка
Если терминал открывается, но команды не эхом не отображаются и нет ответа OK — порт занят другой программой (диспетчер соединений, Mobile Partner, модемный менеджер ModemManager в Linux). Закройте все фоновые приложения, работающие с модемом. В Linux выполните sudo systemctl stop ModemManager или добавьте устройство в игнор-лист udev. На Windows проверьте «Диспетчер задач» на наличие процессов MobilePartner.exe, HiLinkService.exe.
Проблема с кодировкой USSD (кракозябры вместо русского текста) решается установкой кодировки терминала в UTF-8 и командой AT+CSCS=\"UCS2\" перед запросом. Тогда ответ придет в hex (например, 041104300431...), который легко декодировать. Если модем отвечает ERROR на валидные команды — проверьте версию прошивки, некоторые операторы (Мегафон, Йота) кастрируют AT-интерфейс в брендированных прошивках, требуя перепрошивку на версию «Generic» или «Universal».
⚠️ Внимание: На модемках с чипсетами Balong V7R16 и новее (E3372h-320, E5785, B525) команда AT^DATALOCK защищает критические разделы. Попытка записи в них без авторизации (OEM unlock) вызовет безвозвратный бан модемного процессора (Brick Mode), снимаемый только JTAG-программатором.
Главный вывод: стабильная работа с AT-командами на Huawei возможна только на Stick-прошивках или в режиме Project V. HiLink в штатном режиме закрыт для прямого управления модемом.
Автоматизация и скриптинг для пакетной обработки
Для массовой настройки парка модемов (например, смена APN на сотне устройств) ручной ввод нереален. Используйте скрипты на Python с библиотекой pyserial или ATCommand. Пример логики: открыть порт → отправить AT → ждать OK → слать цепочку команд с таймаутами → парсить ответы regex → логировать в CSV. Обязательно реализуйте retry-логику (3 попытки) и проверку контрольных сумм прошивки перед flashing.
Готовые фреймворки: huawei-lte-api (работает через веб-API HiLink, но требует включенного API), dc-unlocker CLI (проприетарный, закрытый код), balongflash (Open Source для Linux). Для интеграции в CI/CD пайплайны контейнеризируйте окружение с проброшенным USB-устройством (docker run --device=/dev/ttyUSB0). Храните коды разблокировки и прошивки в защищенном хранилище секретов (HashiCorp Vault, GitLab CI Variables), а не в репозитории.
Пример Python-сниппета для отправки AT-команды
import serial, time\nser = serial.Serial('/dev/ttyUSB0', 115200, timeout=1)\nser.write(b'AT+CSQ\\r')\ntime.sleep(0.5)\nprint(ser.read_all().decode('utf-8', errors='ignore'))\nser.close()
FAQ: Частые вопросы по AT-командам Huawei
Почему модем не отвечает на AT команды?
Причины: 1) Не установлены или повреждены драйверы (нет COM-портов в системе). 2) Порт занят другой программой (Mobile Partner, ModemManager, браузер с открытым 192.168.8.1). 3) Неверные настройки порта (скорость, Flow Control). 4) Модем в режиме HiLink без перевода в Project V. 5) Физический дефект USB-кабеля или порта.
Как войти в инженерное меню роутера Huawei B525/B535/B818?
В браузере перейдите по адресу http://192.168.8.1/html/switchProjectMode.html (или html/projectmode.html). Нажмите кнопку «Switch to Project Mode». Устройство перезагрузится, появится новый COM-порт «Huawei Diagnostics Interface», через который доступен полный AT-интерфейс. Для возврата в HiLink — та же страница, кнопка «Switch to Normal Mode».
Какая команда фиксирует только 4G (LTE) и запрещает 3G/2G?
Используйте AT^SYSCFGEX=\"03\",3FFFFFFF,1,2,800C5,, где 03 — маска бэндов (подставьте свои), а 800C5 — код режима «LTE Only». Для возврата в авто: AT^SYSCFGEX=\"00\",3FFFFFFF,1,2,3FFFFFFF,,.
Что делать, если после ввода кода NCK модем пишет ^NCK: 1 (ошибка)?
Код неверен или исчерпан лимит попыток (обычно 10). Проверьте IMEI командой AT+CGSN=1 — код генерируется именно под этот IMEI. Если попытки кончились, разблокировка возможна только аппаратной (JTAG/EDL) или сменой IMEI (нелегально в РФ). На новых прошивках (после 2019 г.) код NCK часто не работает — нужен код SIMLOCK/UNLOCK для конкретной версии прошивки.
Можно ли отправлять AT-команды через веб-интерфейс HiLink без COM-порта?
Штатных средств нет. Существуют сторонние скрипты (например, hilink-api на Python/Go), которые эмулируют запросы веб-интерфейса к /api/device/signal, /api/net/net-mode и т.д. Это не AT-команды, а REST-API. Функционал ограничен: нельзя разблокировать, прошить, поменять IMEI, зафиксировать конкретную базовую станцию (Cell Lock).
Для быстрой проверки работоспособности AT-интерфейса без установки программ используйте онлайн-терминал в браузере (Web Serial API) на сайте serial.huhn.me — работает в Chrome/Edge на Windows/macOS/Linux/ChromeOS, требует только разрешение на доступ к порту.
Итог: успешная работа с AT-командами Huawei строится на трех столпах — правильные драйверы (видим порт), подходящая прошивка (Stick или Project V) и надежный терминал с отключенным Flow Control. Остальное — вопрос знания синтаксиса конкретной модели.