AX.25 Модем с Bluetooth из Arduino

APRS Bluetooth

Возникла необходимость в небольшом портативном пакетном модеме в основном для APRS, также хотелось минимум проводов (на сколько это возможно).

Поиск в интернете дал несколько вариантов, но я решил остановиться на решении от M1GEO и прошивке от KI4MCW. 

схема

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

Я бы разнёс аудио выход и PTT раздельно. Но всё таки и в таком варианте, это достойно работает.

Печатная плата

Расположение компонентов

И так с сайта автора были взяты gerber-файлы печатной платы и по ним фрезеровалась\сверлилась плата. На фото результат

Плата после фрезеровки

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

  1. Добавить резисторный делитель по линии TX (UART) Arduino-ы т.к. HC-06 работает с уровнями 3.3в, а Arduino — 5в. (добавленный делитель обведён красным прямоугольником)
  2. PIN Status у модуля HC-06 находится на 32м месте, а на печатке он 24й. Пришлось резать дорожку и делать перемычку. (красный крестик это рез по дорожке, а жёлтый провод перемычка к PIN STATUS)
Доработки под HC-06

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

Причиной этому является обязательное наличие байтов префикса и окончания в каждом пакете который передаётся в SPP (Bluetooth Serial Port). То есть каждый пакет отсылаемый в модем должен быть следующего формата

0xC0 0x00 <Данные> 0xC0

иначе модем просто игнорирует пакеты.

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

Либо подбирать приложения в которых можно в макросы добавить данные байты.

Добавлено R2AKT — проблема с данными байтиками, это не проблема, это особенность, работы данного модема в режиме KISS, т.е. выбираете KISS режим и будет всё работать.

APRS Bluetooth
В собранном виде

Все файлы необходимые для сборки собраны в архиве — https://yadi.sk/d/augZYkJncAE8SQ

2 комментария

  1. Это модем работающий в режиме KISS, поэтому ему необходимо выдавать данный в соответствующем формате, а не особенности работы SPP. Большинство программ имеют такой режим работы.

    1. Спасибо большое за подсказку, так не догадался, пошёл по сложному пути,
      отдебажил и в пакетах разницу заметил только. 🙂

Добавить комментарий для R2AKT Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *