• Home
  • LoRa
  • Microchip RN2483 — подключение, настройка и обновление прошивки

Microchip RN2483 первый LoRa модем, получивший в декабре 2015 года сертификат LoRa Alliance о полном соответствии протоколу LoRaWAN 1.0 — именно поэтому мы постараемся рассказать как подключить RN2483, настроить и обновить прошивку. Коротко о самом модуле: построен модуль на базе LoRa трансивера Semtech SX1276 (поддерживает модуляцию LoRa) c контроллером на борту, который содержит прошивку, включающую в себя полную реализацию стека LoRaWAN для узлов класса А.  Модуль работает на частоте 868 МГц (кроме того, модуль поддерживает связь на частоте 433МГц, модуляции FSK и GFSK), на борту 14 GPIO, RTC, 256 байт EEPROM доступной пользователю, UART для связи с управляющим контроллером или терминалом, антенный выход. Примечательно, что все 14 GPIO могут быть сконфигурированы пользователем как digital in  или digital out  а 13 из них как analog in , что может быть использовано для индикации состояния и подключения внешних сенсоров без использования ресурсов контроллера, к которому подключен модуль. Более подробно о модуле Microchip RN2483 в документации. Стоимость модуля около 10$ (при оптовых поставках от 1000 шт.). Если вам интересно дальше — добро пожаловать под кат (фото, скриншоты, описание команд и видео)

Блок-схема RN2483

Блок-схема RN2483

Блок-схема RN2483

Нам для экспериментов достался RN2483 смонтированный на Bee платформу — LoRabee модуль (по сути, это просто модуль RN2483 на плате формата XBee с антенным разъемом), этот модуль попал к нам в составе большого кита и о комплектующих из этого набора я  расскажу в следующих материалах.

rn2483

Microchip RN2483

Модули формата XBee не совсем удобны для подключения — имеют шаг контактов 2мм, но у меня в закромах оказался в наличии USB-TTL FTDI конвертер от Sparkfun для XBee с miniUSB разъемом.

Microchip RN2483 и XBee USB-TTL FTDI

Microchip RN2483 и XBee USB-TTL FTDI

Если у вас такого не окажется, то можете купить похожий на ebay, или взять плату для прототипирования где есть поле с шагом 2мм. Также всегда доступен вариант подключить просто проводками 🙂 Припаять провода прямо к модулю без переходных плат тоже вполне осуществимо, но от вас потребуется высокий скилл пайки. Для настройки нам понадобятся только RX, TX и GND (CTS и RTS не поддерживаются текущими версиями прошивок) для подключения USB-TTL и подключить питание к модулю (напряжение от 2,1v до 3,6v, ток в режиме передачи менее 40мА при 3v).

RN2483 connections

Кроме LoRabee существует достаточно много и других вариантов плат с RN2483 на борту: от Microchip RN2483 LoRa Technology Mote до различных Arduino и Raspberry Pi шилдов различных производителей, но принципы управления и настройки всех плат на базе RN2483 будут достаточно похожи. Стоимость плат с модулем RN2483 пока высока, а у китайцев на Aliexpress плат для монтажа RN2483 я не нашел, но это изменится в ближайшее время и стоимость таких плат вместе с модулем вряд ли будет превышать 20$ в розницу. Вот, например, вполне доступная breakout board. Отсутствие массового производства таких плат объясняется не только ограниченными потребностями рынка в настоящий момент (причем этот рынок очень быстрорастущий) но и необходимостью парсинга данных модуля из ASCII ответов на команды управляющего контроллера, что предъявляет высокие требования к качеству управляющей прошивки.

Определяем версию прошивки Microchip RN2483

Подключаемся к RN2483 через USB-TTL 3,3v любой терминальной программой (важно чтобы терминальная программа после каждой команды передавала <CR><LF>), скорость 57600 (это значение можно изменить) 8N1 и первым делом проверим версию прошивки модуля командой  sys get ver

rn2483 version

Скорее всего в вашем Microchip RN 2483 будет прошивка предыдущей версии 0.9.5, в которой отсутствует часть команд (надо заметить, что это не критично и вполне можно пользоваться модулем с этой прошивкой). Кроме того, все модули RN2483 выпущенные с прошивкой 0.9.5 имеют баг в загрузчике, который приводит к тому, что процесс перепрошивки может закончиться неудачей (если какая-нибудь неприятность может произойти, она обязательно случится и у меня именно так и произошло). В модулях RN2483, выпущенных с прошивкой 1.0.0 данный баг отсутствует. На нашем сайте есть две версии документации на модуль для версии 1.0.0 и для 0.9.5. Я публикую здесь список изменений в прошивках, чтобы вы могли самостоятельно принять решение о необходимости перепрошивки модуля.

Microchip RN2483 FW revision history

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

Обновление прошивки Microchip RN2483

Для обновления прошивки вам потребуется скачать LoRaDevelopmentGUI. Из архива нужно запустить LoRa.jar  и после того как программа найдет подключенный модуль, кликнуть по нему и перейти на вкладку DFU, выбрать файл прошивки (тоже находится в архиве — это RN2483_Parser.X.production.Bootloader.hex ) выбрать скорость 19200 оставив остальные параметры по умолчанию и кликнуть по кнопке Update Firmware. В архиве также есть инструкция по перепрошивке модуля, однако в ней указана скорость 57600, а на этой скорости мне не удалось осуществить прошивку (но, возможно, это произошло из-за пресловутого бага в загрузчике, а не из-за скорости)

По окончании процесса выйдите из программы, перезагрузите модуль отключением питания и снова в терминале наберите команду sys get ver . Если модуль откликается на команды и у вас теперь версия 1.0.0 значит все прошло хорошо и вы в числе тех счастливчиков, кому повезло и баг загрузчика обошел вас стороной. Если ваш модуль не отвечает на команды и превратился в кирпич, то не расстраивайтесь — его можно оживить, запустив LoRa.jar  с включенной опцией Bootloader Mode.

Процесс перепрошивки модуля RN2483 из кирпича наглядно показан в этом видео:

Управление и настройка Microchip RN2483

Все команды модуля разбиты на три группы — системные с префиксом sys , команды управления RF драйвером — radio  и команды протокола LoRaWAN — с префиксом mac .

С полным описанием всех команд (а их почти 100 в текущей версии прошивки) на 57 страницах вы можете ознакомиться в руководстве пользователя (англ). Вы можете использовать обычную терминальную программу для ввода команд в терминале вручную, либо воспользоваться снова LoRa Development Utility, которая сама отправляет нужные команды модулю в ответ на ваши действия в интерфейсе. Ручной ввод команд при этом вам остается также доступен

RN2483 LoRa Development Utility

RN2483 LoRa Development Utility

Хочу вас предупредить, что это Beta версия конфигуратора и часть ответов модуля программа парсит с ошибками, что приводит к наличию невалидных данных в полях ввода и может ввести вас в замешательство, поэтому чтобы пользоваться этой версией конфигуратора нужно постоянно смотреть в логи (в правом окне) и заменять вручную в полях ввода некорректные данные. Если уж программе на Java, разработанной производителем модуля, не всегда удается успешно парсить ответы модуля, то что уж говорить об управляющих контроллерах, которые должны управлять этим модулем.

Данный факт меня весьма огорчил и, кроме того, я являюсь сторонником терминалов в темных тонах, поэтому пришлось реализовать поддержку основных (но далеко не всех) команд модуля Microchip RN2483 в моей терминальной программе для ESP8266 — ESPlorer.

Поддержка RN2483 в ESPlorer

Поддержка RN2483 в ESPlorer

Чтобы избежать тех же граблей, что и у разработчиков Microchip, я отказался от парсинга ответов команд вообще, а редко используемые команды (которые я не стал реализовать в интерфейсе) приходится вводить вручную.

ESPlorer — это open source проект, так что если решите сделать поддержку абсолютно всех команд для RN2483 — жду ваших pull requests.

Автор: Виктор Бруцкий, 4refr0nt@gmail.com