Проект FlyBeeper FANET

Крайний в линейке подключаемых блютус устройств, расширяющих возможности обычного смартфона. Напомню: PS1 — датчик давления, RC4 — беспроводные кнопки и теперь FANET. Но это не обычный FANET трекер. Концепция моих устройств — минимализм и максимальная производительность. Все устройства в линейке FlyBeeper могут одновременно вместе работать со смартфоном, т.к. большинство приложений уже поддерживают мультиподключения. При этом каждое устройство эффективно выполняет свою функцию. При отказе одного устройства вы потеряете лишь одну функцию.

Как это работает

FlyBeeper FANET — это радио на батарейках, настроенное на канал передачи данных FANET. Чтобы получить доступ к радио-пакетам достаточно подключиться к устройству по блютус и подписаться на изменения соответсвующей характеристики. А чтобы передать в эфир свое местоположение или обнаруженный термик или свое имя — нужно просто записать правильно составленный пакет данных в эту самую характеристику блютус. Естественно, обычный пользователь ничего этого делать не будет. За него всё должен сделать полетный компьютер.

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

Так как любой смартфон уже имеет внутри GPS, то в моем устройстве его нет. Внешний GPS будет потреблять много энергии. Без интернета, а значит без AGPS он будет работать хуже чем большинство встроенных в смартфон GPS. Те решения, которые предлагают недорогие компактные вариометры, часто страдают маленькими низкоэффективными антенами и слабыми чипами. Однако, нужно понимать, что данное устройство работает только в связке со смартфоном. Само по себе устройство не является трекером. Это только рация.

Что получает пользователь

Функционал всецело зависит от приложения. Как минимум приложение должно уметь читать и отображать данные обо всех FANET устройствах в зоне обнаружения. Вы должны видеть других пилотов без интернет соединения. Во-вторых, приложение должно уметь кодировать свое текущее местоположение и отправлять на устройство, которое будет излучать эти радио-пакеты в эфир. В результате другие пилоты также будут видеть ваше местоположение. Приложение можно научить отправлять имя пилота. Если приложение умеет определять силу и направление ветра в термической спирали, силу самого термика, то оно может сформировать соответствующий радио-пакет. Другие пилоты получат эту информацию и смогут увидеть её на дисплее. Также информацию о ветре можно получать с погодных станций. Это всё базовая функциональность FANET.

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

Как это выглядит

Устройство похоже на маленький вариометр с антеной. Оно имеет аккумуляторную батарею 900 мАч, солнечную батарею, разъем зарядки USB Type-C и кнопку сброса. Размеры 98x34x16 мм. Вес около 40 гр. Время работы от батареи без подзярядки от солнечной батареи около 20 часов.

Статус

  • 07.05.2024 — первый рабочий прототип. Слушает эфир FANET и ретранслирует все принятые пакеты по блютус. Если записать пакет в характеристику, то он отправит его в сеть FANET. Можно прочитать rssi и snr последнего принятого пакета, а также уровень батареи. Есть обновление прошивки OTA DFU.
  • 20.06.2024 — третий прототип. Настроена антенна 868, антена BLE смещена, корпус стал более компактным. Снижена емкость батареи. В прошивку добавлена поддержка текстовых протоколов FNNGB, FBFAN, FNF. Разработчики xcTrack и LK8000 начали реализацию поддержки.

Developers

Прибор подключается по блютус без сопряжения и авторизации. Рекламные пакеты для обнаружения рассылаются каждые 5 секунд. Сразу после сброса или после разрыва соединения рекламные пакеты рассылаются каждые 100 мс в течение 5 минут для ускорения процедуры поиска и переподключения. Рекламный пакет содержит имя FBFANET. Напоминаю, что все устройства FlyBeeper содержат префикс FB в названии.

Чтение пакетов FANET

Для чтения пакетов необходимо подписаться на характеристику fec81438-cb89-4c37-93d0-badfced4376e в стандартном сервисе LNS 0x1819. Каждое уведомление отправляет байтовый массив, содержащий полный пакет FANET. Длина пакета ограничена 40 байтами. Пакеты большего размера отбрасываются. Устройство не выполняет никаких проверок на соответствие пакета стандартам FANET. После получения уведомления можно прочитать значение RSSI и SNR последнего принятого пакета из соответствующих характеристик 1d242a85-6e0a-4d10-9d6a-a3e76dfa75c6 (RSSI Int16) и 6d1a7208-10b5-4244-8f45-c1d0d4ebe5c9 (SNR Int8).

Отправка пакетов FANET

Для отправки пакета данных FANET в радиоэфир необходимо записать предварительно подготовленный байтовый массив в характеристику fec81438-cb89-4c37-93d0-badfced4376e в стандартном сервисе LNS 0x1819. Длина пакета не должна превышать 40 байт. Пакеты большего размера не будут отправлены.

Подробное описание протокола можно прочитать тут. Пример данных: 0x42061728536B794E65743A204B7265646172696361
Напоминаю, что создание уникального ID в заголовке пакета — это обязанность разработчика приложения.

Настройка радио

Так как в разных частях света используются разные настройки радиоканала, то необходимые настройки можно изменять через сервис 904baf04-5814-11ee-8c99-0242ac120000. По-умолчанию, настройки соотвествуют зоне EU 868.2 МГц.

НазваниеРазмерUUID характеристикиЗначения
frequencyUINT328d8e8809-4697-41fc-8ee2-ca0b999354ec868200000* — EU
920800000 — US
866200000 — IN
923200000 — KR
bandwidthINT8f19422e2-982a-4954-9a75-b38927236a590 — 125 kHz
1* — 250 kHz
2 — 500 kHz
datarateINT8108b855f-11cd-4bc5-adee-eafce49bc77a6 — SF_6,
7* — SF_7
8 — SF_8
9 — SF_9
10 — SF_10
11 — SF_11
12 — SF_12
coding_rateINT817a95752-3c12-438f-9244-4f4612a1ab491* — 4/5,
2 — 4/6
3 — 4/7
4 — 4/8
tx_powerINT88ef0c42e-adb6-4897-b9c9-6fe93143faf4-9 — min -9 dBm
14* — +14 dBm
22 — max +22 dBm
* — значения по-умолчанию

Так как устройство поддерживает изменение настроек радио канала, оно способно отправлять не только FANET пакеты, но и любые другие по желанию разработчика приложения, в том числе ADS-L.

TODO

Прибор будет продаваться по цене около 100 евро. Однако использовать его можно будет только после того, как разработчики летного ПО научатся с ним работать. Запросы на поддержку отправлены разработчикам xcTrack (взято в работу) и SeeYou Navigator (реализовано в альфа версии), LK8000 (готовы попробовать).

Кроме базовой характеристики fec81438-cb89-4c37-93d0-badfced4376e в стандартном сервисе LNS 0x1819, которая отправляет/принимает пакеты в соответствии с характеристиками из настроек, будет добавлены отдельные характеристики на каждый стандартный набор настроек. Например, отдельная характеристика, работающая с настройками FANET EU 868.2 МГц, другая характеристика с настройками для FANET US 920.8 МГц и т.д. Если внешнее приложение подписывается на одну из них, то ему не нужно отдельно настраивать радио-канал в настройках. Однако одновременно можно подписаться лишь на одну характеристику, т.к. используемый в устройстве чип одноканальный.

Последнее обновление 08.07.2024 в 14:34