Статья

Сканер сотовой сети 2G/3G/4G

Full House

Очень часто, при установке GSM-репитера или LTE направленной антенны, требуется знать уровень сигнала от базовых станций всех операторов, а также их местоположение. Хочется иметь устройство с одной кнопкой, при нажатии которой будет сканироваться эфир и выводиться список всех базовых станций неподалеку, упорядоченных по ухудшению сигнала. Конечно, можно с собой возить все симки от всех операторов и переставлять их по очереди в телефон, но это, как минимум, не профессионально, да и приходится постоянно следить за балансом, что зачастую накладывает свои ограничения.

Быстрый гуглинг на эту тему не принес никакого результата, я не нашел профессиональных решений, но возможно, даже если они есть, они будут стоить как крыло самолета. Поэтому было решено сделать сей девайс самому. Ну что же, приступим!  

В рамках этой статьи мы, к сожалению, не создадим то самое устройство с одной кнопкой, но сильно приблизимся к этому, и если будет спрос, то можно и создать законченное решение. 

Так как очень часто для организации LTE интернета у заказчиков мы используем связку модем E3372 от Huawei и мини-роутер GL Inet, которая к слову сказать, очень хорошо себя зарекомендовала, то в один момент наткнулся на интересную AT команду для этого модема - AT^NETSCAN. Данная команда позволяет получить список окружающих базовых станций ВСЕХ операторов, независимо от того, какая симка установлена в свисток. Более того, данная команда работает даже без симки. Единственное ограничение - это поддержка диапазонов 2G и 3G, 4G не поддерживается. Просмотрев всю линейку LTE модемов от Huawei, я нашел поддержку сканирования 4G диапазона только у модема ME909S в форм факторе Mini PCIe. 

Для подключения данного модема по USB потребуется дополнительный адаптер, которых навалом на aliexpress. Мы выберем переходник в корпусе с двумя выносными SMA-разъемами для удобного подключения к всенаправленным антеннам. По сути, на платке адаптера разведен слот под сим карту и организовано питание 3.3V для питания LTE модуля. 

В качестве головного устройства выберем все тот же мини-роутер от компании Gl Inet MT300N. Основная уникальность роутеров от этой компании заключается в предустановленной операционной системе OpenWrt, которая дает большие возможности по настройке, кастомизации и обеспечивает колоссальную стабильность в работе.

Итак, подключим LTE модем к роутеру по USB и приступим к настройке, готовая сборка выглядит следующим образом:

Как упоминалось выше, на роутере уже предустановлен OpenWrt и все пакеты для общения с модемом по USB. Зайдем на роутер по SSH, и установим пару недостающих пакетов: 

opkg update opkg install openssh-sftp-server nano minicom

Данный модем определяется как пять устройств [ttyUSB0-ttyUSB4]. ttyUSB0 используется для поднятия соединения с интернетом, а вот ttyUSB2 используется как раз для AT-команд. Подключимся с помощью minicom к порту ttyUSB2, для этого вызовем окно настроек minicom:

minicom -s

Подключившись, сразу видим отладочные сообщения о сети, которые спамят нам консоль. Отключаем их командой AT^CURC=0, в ответ должно прийти сообщение OK. Давайте для примера исполним несколько команд, чтобы понять возможности AT терминала. Запросим IMEI и информацию о текущем подключении. Для этого воспользуемся командами AT CGSN и AT^HCSQ? Если хочется поиграться, то полный список доступных AT команд с описанием доступен на сайте производителя.

Итак, для получения информации о базовых станциях служит команда AT^NETSCAN, но для ее правильного исполнения необходимо сначала указать модему, с какими типами сетей (GSM/UMTS/LTE) и диапазонами работать. Для этого используется команда AT^SYSCFGEX.

Формат команды такой: 

AT^SYSCFGEX=<net_order>,<band>,<roaming>,<srvdomain>,<lteband>,<reserve1>,<reserve2> 

<net_order>- список предпочтения типов сети. Допустимые значения:

  • 00 - все типы сетей
  • 01 - только 2G
  • 02 - только 3G
  • 03 - только 4G
  • 99 - оставить значение без изменений

Коды можно комбинировать. Например "0302" - предпочтение LTE -> 3G 

<band>- код допустимых диапазонов для сетей 2G/3G. Возможные значения:

  • 80 - GSM DCS systems
  • 100 - Extended GSM 900
  • 200 - Primary GSM 900
  • 80000 - GSM 850

  • 100000 - Railway GSM 900
  • 200000 - GSM PCS
  • 400000 - WCDMA IMT 2100
  • 800000 - WCDMA_II_PCS_1900
  • 2000000 - AWS
  • 4000000 - WCDMA_V_850
  • 8000000 - WCDMA_VI_800
  • 2000000000000 - WCDMA_VIII_900
  • 4000000000000 - WCDMA_IX_1700
  • 1000000000000000 - WCDMA_XIX_850

  • 00680380 - Automatic

  • 3FFFFFFF - все диапазоны

Каждый из кодов представляет собой шестнадцатеричное (HEX) число. Для задания комбинации диапазонов надо сложить соответствующие коды. Например, для задания диапазонов GSM 850,

WCDMA IMT 2100, WCDMA_V_850 надо вычислить 0x80000 0x400000 0x4000000=0x4480000. Это и будет результирующий код диапазона - 4480000.

<roaming> - разрешение работы модема в роуминге: 0 - запретить, 1 - разрешить.

<srvdomain> - оставить 2 (CS_PS)

<lte_band> - код допустимых диапазонов LTE, список большой, приведу лишь диапазоны, поддерживаемые модемом:

  • 1 - LTE BС1
  • 2 - LTE BC2
  • 4 - LTE BC3
  • 8 - LTE BC4
  • 10 - LTE BC5
  • 40 - LTE BC7
  • 80 - LTE BC8
  • 80000 - LTE BC20
  • 8000000 - LTE BC28
  • 2000000000 - LTE BC38

  • 4000000000 - LTE BC39

  • 8000000000 - LTE BC40
  • 10000000000 - LTE BC41

  • 7FFFFFFFFFFFFFFF- все диапазоны

Итак, разобрались, для перевода модема в 2G/3G/4G соответственно используем следующие команды:

AT^SYSCFGEX="01",3FFFFFFF,1,2,7FFFFFFFFFFFFFFF,, AT^SYSCFGEX="02",3FFFFFFF,1,2,7FFFFFFFFFFFFFFF,, AT^SYSCFGEX="03",3FFFFFFF,1,2,7FFFFFFFFFFFFFFF,,

После получения команды на смену диапазона, модем пройдет перерегистрацию в заданной сети, на что обычно уходит примерно 10-20 сек, после этого он радостно оповестит об этом, прислав OK.

Осталось разобраться с командой AT^NETSCAN, данная команда имеет следующий формат:

AT^NETSCAN=<num>,<level>,<mode>, где

<num> - число находимых БС (от 1 до 20). Если будет найдено больше БС чем задано, то станции с самым слабым сигналом будут исключены из списка.<level> - минимальный уровень сигнала БС, включаемых в список. Задается в дБ, от -110 (самый низкий уровень) до -47 (самый высокий уровень). Станции с уровнем сигнала меньше <level> в список включаться не будут.<mode> - тип БС. 0 - поиск 2G-станций, 1 - поиск 3G-станций, 3 - поиск LTE-станций.

Пример команд для сканирования 2G/3G/4G диапазонов соответственно:

AT^NETSCAN=20,-110,0 AT^NETSCAN=20,-110,1 AT^NETSCAN=20,-110,3

Довольно теории, попробуем запросить список LTE базовых станций у модема, для этого явно укажем диапазон работы LTE и выполним команду сканирования. Внимание! Перед поиском требуется убедиться, что интернет-канал отключен.

AT^SYSCFGEX="03",3FFFFFFF,1,2,7FFFFFFFFFFFFFFF,, AT^NETSCAN=20,-110,3

Подождав 20-30 сек получаем заветный лог:

^NETSCAN: 6175,,,6CC0,250,20,0,-67,BD02B51,80000,,266^NETSCAN: 3400,,,6CC0,250,20,0,-77,BD02B15,40,,171^NETSCAN: 1301,,,881,250,99,0,-88,BC3D908,4,,487^NETSCAN: 6413,,,881,250,99,0,-97,BC8A302,80000,,255^NETSCAN: 6350,,,13C1,250,02,0,-101,7AA9C03,80000,,241^NETSCAN: 1802,,,455A,250,01,0,-102,2D470D,4,,375^NETSCAN: 2850,,,13C1,250,02,0,-104,BC88202,40,,403^NETSCAN: 1602,,,13C1,250,02,0,-106,BC88205,4,,367

Немного поясню формат вывода данной команды, на примере первой найденной БС из списка:

^NETSCAN: 6175,,,6CC0,250,20,0,-67,BD02B51,80000,,2666175 - частота6СС0 - LAC станции250 - MCC (Россия)20 - MNC (В данном случае - TELE2). 01 - МТС, 02 - Мегафон, 99 - Билайн. Полный список MNC0 - код индентификации 2G БС (ДЛЯ 3G/4G всегда будет 0)-67 - уровень сигнала данной БС в дбBD02B51 - CID станции80000 - диапазон, в котором принимается сигнал БС (в данном случае LTE BC20)266 - физический ID БС в сети LTE 

По результатам данного сканирования можно сделать вывод, что наилучший сигнал LTE в данной местности у TELE2, а антенну нужно направить на БС с CID = BD02B51 и LAC = 6CC0. Координату БС можно посмотреть на сайте xinit.ru или через их телеграм бота @xinitbot.

Вот таким нехитрым образом можно узнать об окружающих нас вышках сотовых операторов и выбрать лучшего оператора в данной местности.

Спасибо всем за внимание, надеюсь данный материал окажется кому-то полезным. Прошу также написать в комментариях, кто и как решает поставленную задачу, возможно, я что-то не знаю и изобретаю велосипед)


А использовать данные от


🔹 CellMapper


🔹 OpenCelliD


🔹 Mozilla Location Services (MLS)


непрофессионально?

Я пытался пользоваться сервисами поиска БС с открытами базами данных, но у них есть большой минус - база пополняется пользователями и бывает так, что нужной БС просто нет в базе. И наоборот, БС есть в базе, а по факту сигнала с нее нет

Мой опыт подсказывает, что теле2 и бенд 20 это скорость в районе 8мб/с днем и 0,5мб/с вечером. Я вообще этот бенд на модеме E3372 отключил с сим картой теле2, уж лучше 3G.

Тоже пару раз было, что подключившись к наилучшей БС с утра со скоростью все хорошо, а вечером заказчик жалуется на низкую скорость, но я связывал это с сильной загруженностью данной БС. А как диапазон (LTE BC20) может быть связан с просадкой скорости?

Это просто мои наблюдения, замечал, что на той же вышке 3G работает быстрее, чем LTE.

@legion1581
А где можно купить Gl Inet MT300N?

Лучше всего через https://store.gl-inet.com/collections/all-wifi-devices/products/gl-mt300n-v2-mini-smart-router">сайт производителя. 3 недели где то доставка

Где-то в виде готовой конструкции девайс купить можно? А ещё лучше, одолжить на день... 

Одолжить могу без проблем, в Москве базируюсь

Одновременный speedtest на нескольких LTE-модемах

https://habr.com/ru/company/ruvds/blog/510046/">https://habr.com/ru/company/ru...

Просьба уточнить, а почему был выбран именно модем ME909S? PCI модемов достаточно много... Например, Quectel EP06-E, причём он Cat.6 и не дороже ME909S... 

Выбор был сделан на основе найденной http://download-c.huawei.com/download/downloadCenter?downloadId=100630&version=432889&siteCode=cn&view=true">документации на ME909S и наличии в ней задокументированной команды AT^NETSCAN. У остальных модемов, к сожалению, не нашел похожую команду в документации

Приветствую!
Вы сейчас так же пользуетесь модемом


ME909S для поиска сетей, или нашли уже другое решение?

Пользуюсь этим решением на данный момент. ME909s-120p - модификация для России и Европы, остальные для Азии

Константин, спасибо за подробную статью! От себя добавлю несколько наблюдений по подключению без роутера, непосредственно к ПК на Windows.


Драйверы на модем хоть и гуглятся но даже после установки устройство категорически не определяется, решил вопрос программой для установки драйверов SDI.


По подключению через putty почему то тоже не сложилось, было недоступно посылать команды, благополучно решилось через приложение My Huawei Terminal.


И последний момент с уровнем сигнала в режиме realtime, хотя в My Huawei Terminal есть этот параметр но работает он как то странно, для этого подошло приложение mdma, правда и тут без бубна не обошлось, если вдруг при запуске не находит модем, нужно запускать с параметром /port:COM16 (указать порт модема).

Ну и мне как новичку в данном вопросе оказалась полезна https://bitconnect.ru/tehnologii/chto-takoe-4g-lte.html">эта статья в которой описано соотношение бендов к реальным частотам.


Вернуться назад
Вернуться назад