CME ERROR 3: что означает ошибка и как её устранить

Ошибка CME ERROR 3 возникает при отправке AT-команды GSM/GPRS-модему и означает «operation not allowed» — операция не разрешена в текущем состоянии устройства. Модем физически исправен и связь с ним есть, но конкретное действие — отправка SMS, установка соединения, смена настроек — в данный момент заблокировано. Чаще всего причина кроется в состоянии SIM-карты, PIN-коде или регистрации в сети, а не в самой команде.

Такой ответ возвращают модемы Simcom, Quectel, Huawei, Telit и другие модули, работающие по стандарту 3GPP TS 27.007. Ошибка относится к группе +CME ERROR, которая сообщает о сбоях оборудования и сети, в отличие от +CMS ERROR, отвечающей за проблемы SMS-сервиса. Ниже разберём, как диагностировать источник проблемы и устранить её без риска для оборудования.

Что означает код CME ERROR 3

Код 3 в спецификации AT-команд соответствует ситуации, когда модем понял команду синтаксически, но не может её выполнить из-за текущего режима работы. Это принципиально отличается от ошибки ERROR без кода — та означает, что команда не распознана вовсе, например из-за опечатки.

Конкретная трактовка зависит от контекста. Одна и та же команда AT+CMGS для отправки SMS вернёт CME ERROR 3, если SIM-карта не разблокирована PIN-кодом, модем не зарегистрирован в сети или оператор запретил исходящие сообщения на данном тарифе. Поэтому диагностику стоит начинать с проверки состояния, а не с переписывания команды.

Основные причины появления ошибки

Практика работы с GSM-модулями показывает, что круг причин ограничен и хорошо известен:

  • 🔐 SIM-карта ожидает ввода PIN-кода — модем загрузился, но функции связи заблокированы до ввода AT+CPIN.
  • 📶 Нет регистрации в сети — модем не подключился к оператору, поэтому звонки, SMS и передача данных недоступны.
  • 💳 Ограничения тарифа или блокировка SIM — исчерпан баланс, услуга SMS не подключена, SIM заблокирована оператором.
  • 📵 Режим полёта или отключённый радиомодуль — функциональность снижена командой AT+CFUN=0 или AT+CFUN=4.
  • 🧩 Команда не поддерживается в текущем режиме — например, попытка работы с SMS в текстовом режиме, когда модем настроен на PDU, или наоборот.

Отдельно стоит сказать о несовместимости SIM-карты и модема. Старые модули 2G не работают в сетях, где оператор отключил GSM, а некоторые SIM формата «только данные» не поддерживают голос и SMS. Если модем раньше работал с другой картой, а с новой выдаёт CME ERROR 3 — проверьте поддержку нужных услуг у оператора.

📊 Где вы столкнулись с CME ERROR 3?
При отправке SMS через модем
При подключении к интернету (PPP/данные)
В Arduino/микроконтроллерном проекте
В программе для SMS-рассылок

Быстрая диагностика: проверка PIN и регистрации

Первый шаг — опросить модем о его состоянии. Подключитесь к COM-порту через терминал (например, PuTTY, HTerm или монитор порта Arduino IDE) и выполните базовые команды. Скорость порта и параметры подключения зависят от модели модема — сверьтесь с документацией производителя.

AT

AT+CPIN?

AT+CREG?

AT+CFUN?

AT+COPS?

Команда AT должна вернуть OK — это подтверждает, что связь с модемом есть. Ответ AT+CPIN? покажет состояние SIM: READY означает, что PIN введён или не требуется, а SIM PIN — что модем ждёт код. Регистрацию в сети проверяет AT+CREG?: ответ вида +CREG: 0,1 или +CREG: 0,5 означает регистрацию в домашней сети или роуминге соответственно.

Если AT+CFUN? возвращает 0 или 4, модем работает в ограниченном режиме. Верните полную функциональность командой AT+CFUN=1, дождитесь перезагрузки радиомодуля и повторите проверку регистрации.

⚠️ Внимание: при вводе PIN-кода через AT+CPIN="0000" действует стандартное ограничение SIM-карты на число попыток. После нескольких неверных вводов карта потребует PUK-код, а при исчерпании и его попыток — заблокируется окончательно. Убедитесь, что знаете правильный PIN, прежде чем отправлять команду.

☑️ Диагностика CME ERROR 3

Выполнено: 0 / 5

Устранение ошибки при отправке SMS

Наиболее частый сценарий — CME ERROR 3 при выполнении AT+CMGS. Здесь помимо PIN и регистрации важен режим SMS. Проверьте текущий режим командой AT+CMGF?: значение 1 — текстовый режим, 0 — PDU. Если вы отправляете обычный текст, а модем в PDU-режиме, команда будет отклонена или выполнена некорректно.

Установите нужный режим явно: AT+CMGF=1 для текстового. Затем проверьте номер SMS-центра командой AT+CSCA?. Пустой или неверный номер SMSC — одна из скрытых причин отказа отправки, при этом модем может отвечать именно CME ERROR 3, а не более информативным кодом. Корректный номер центра сообщений уточняется у оператора и обычно подтягивается с SIM автоматически.

Порядок действий при отправке SMS:

  • 📝 Убедитесь, что AT+CPIN? возвращает READY.
  • 📡 Дождитесь регистрации: AT+CREG? должен дать статус 1 или 5.
  • ✉️ Установите режим AT+CMGF=1 и проверьте AT+CSCA?.
  • 📤 Отправьте AT+CMGS="+7XXXXXXXXXX", затем текст и завершите символом Ctrl+Z (код 0x1A).

Ошибка при передаче данных и в проектах на микроконтроллерах

При установке соединения передачи данных (команды семейства ATD, AT+CGATT, настройка APN через AT+CGDCONT) CME ERROR 3 обычно указывает на то, что модем не прикреплён к пакетной сети. Проверьте AT+CGATT? — ответ 1 означает подключение к GPRS/LTE-сервису. Если возвращается 0, выполните AT+CGATT=1 и подождите несколько секунд.

В проектах на Arduino, ESP32 и STM32 добавляется классическая проблема таймингов: скетч отправляет команду сразу после подачи питания, когда модем ещё не завершил загрузку и регистрацию. Модуль отвечает CME ERROR 3, потому что сеть ещё не найдена. Решение — перед отправкой рабочих команд циклически опрашивать AT+CREG? и переходить к основной логике только после успешной регистрации.

Также проверьте уровни сигналов и питание модуля. Просадки питания в момент передачи могут сбрасывать радиочасть, и модем теряет регистрацию — внешне это выглядит как периодический CME ERROR 3 без видимой закономерности. Требования к питанию указаны в datasheet конкретного модуля.

Почему ошибка появляется «через раз»

Нестабильная регистрация в сети — слабый сигнал, перегруженная базовая станция или просадки питания — приводит к тому, что одна и та же команда то выполняется, то отклоняется. Проверьте уровень сигнала командой AT+CSQ: первое число ответа показывает RSSI, значение 99 означает «сигнал неизвестен». Устойчиво низкие значения — повод проверить антенну и её подключение.

Таблица: состояния модема и типичные действия

Команда проверкиНормальный ответЧто делать при отклонении
AT+CPIN?READYВвести PIN: AT+CPIN="код"
AT+CREG?+CREG: 0,1 или 0,5Проверить антенну, SIM, покрытие оператора
AT+CFUN?+CFUN: 1Выполнить AT+CFUN=1
AT+CSCA?Номер SMSC оператораЗадать номер через AT+CSCA
AT+CGATT?+CGATT: 1Выполнить AT+CGATT=1, проверить APN
⚠️ Внимание: точный синтаксис команд и набор поддерживаемых статусов зависят от модели модема и версии прошивки. Перед настройкой сверьтесь с официальным AT Command Manual производителя вашего модуля — расширенные команды у Simcom, Quectel и Huawei различаются.

Когда ошибка не устраняется программно

Если все проверки пройдены, а CME ERROR 3 сохраняется, круг подозреваемых сужается. Вставьте SIM-карту в обычный телефон: если и там услуга недоступна — проблема на стороне оператора или самой карты, и решать её нужно через поддержку оператора или замену SIM.

Обратный тест — другая SIM в том же модеме. Если с ней всё работает, причина в карте или её тарифе; если нет — возможен аппаратный дефект модуля или проблема прошивки. Перепрошивка модема — рискованная операция, выполнять её стоит только по официальной инструкции производителя и при наличии подтверждённой необходимости.

Частые вопросы о CME ERROR 3

Чем CME ERROR 3 отличается от CMS ERROR?

+CME ERROR — ошибки оборудования и сетевых функций модема по стандарту 3GPP 27.007. +CMS ERROR — ошибки именно SMS-сервиса (3GPP 27.005). Код 3 в группе CME означает «операция не разрешена», тогда как проблемы доставки сообщения обычно возвращаются как CMS.

Может ли CME ERROR 3 появиться из-за баланса SIM-карты?

Да, это возможная причина: при нулевом балансе или блокировке оператор не пускает исходящие вызовы и SMS, и модем может вернуть CME ERROR 3. Проверьте баланс через USSD с этой SIM в телефоне или личный кабинет оператора.

Команда введена верно, но модем отвечает CME ERROR 3. Почему?

Синтаксическая правильность не гарантирует выполнение. Код 3 означает, что действие запрещено в текущем состоянии: не введён PIN, нет регистрации в сети, включён ограниченный режим AT+CFUN или услуга не поддерживается SIM. Начните с диагностических команд из этой статьи.

Помогает ли перезагрузка модема?

Иногда — если ошибка вызвана временным сбоем регистрации или зависшим состоянием радиомодуля. Но если причина в PIN-коде, тарифе или настройках (SMSC, APN), после перезагрузки ошибка вернётся. Перезагрузка — шаг диагностики, а не решение.

Где найти расшифровку других кодов CME ERROR?

Полный перечень кодов приведён в спецификации 3GPP TS 27.007 и в документации AT-команд конкретного модема. Производители могут добавлять собственные расширенные коды, поэтому для модулей Simcom, Quectel и других ориентируйтесь на официальный мануал модели.