minimOSD S.PORT Frsky

Musgravehill

Здравствуйте.
Прошу помощи и участия в адаптации железа minimOSD для отображения данных из S.port Frsky.

Идея: есть пульт Taranis QX7 - у него по s.port всегда бежит телеметрия. Я проверил - есть RSSI, SWR, RXbat, GPS, FLVS напряжения и т.д. все датчики!
Подключаем minimOSD к пульту и к монитору\очкам и получаем OSD на земле.

Плюсы:
0. телеметрия через 2.4ГГц надежно передается, в отличие от слабого vtx 5.8 (мощный vtx не предлагать)

  1. логи на microSD
  2. OSD имеет массу, греется с тяжелым радиатором и кушает большой ток от большого аккумулятор а на земле
  3. на модели только камера и vtx
  4. камера и vtx не имеют разрыва на OSD
  5. “говорилка” пульта громко выдаст алармы!
  6. логи с карточки можно посмотреть на Гоогл.картах.

Что сделано:

  1. декодер s.port работает, данные с датчиков получены
  2. для GPS есть расчет дистанции и направления домой
  3. OSD не сделано

С MAX7456 сложности. В сети куча кода, который то не запускается, то ссылки битые, то свежая Ардуино IDE ругается.

github.com/musgravehill/sportOSD

Заказал micro minimOSD.
Схем в интернете нет, прозвонить плату временно не могу.
Но, похоже, что используется стандартная распиновка SPI, кроме SS = d6.
Значит, можно использовать стандартную библиотеку SPI, а не software SPI с дерганьем кастомных пинов.

VSYNC идет на d2 - надо сделать прерывание и выставлять флаг, разрешающий перерисовку экрана?

Настройка самая примитивная без программ.
Позицию каждого датчика сделать через константы. Например, POSITION_VBAT_X= 30; POSITION_VBAT_Y= 48;
Это наиболее просто без EPPROM и пр.

Для домашней позиции GPS: включаем модель и ждем. OSD должно получить координаты 100 раз. Можно проверить, чтобы среднее отклонение было ± несколько последних цифр. Сохранить в GPS_HOME сотую полученную позицию или среднее по сотне полученных. На OSD показать 30 секунд “GPS HOME = lat, long”

Musgravehill

Сделал GPS Home.
500 раз считываем не-нулевую позицию и сохраняем ее в качестве домашней.

Обновление OSD сделал по прерыванию d2 VSYNC. Неясно, falling или raising надо…

Схема micro minimOSD в поиске. Пины SPI неизвестны.

Musgravehill

OSD работает.
Сложности с таблицей шрифтов. Часть букв битая.

Какой-то нехороший человек заменил в таблице шрифтов буквы ABCDEF на их всевозможные аналоги А, В(вэ), С(эс) (рус) и прочие похожие, чтобы испортить.

Musgravehill

Пришлось брать шрифты из mwOSD.

Теперь нужно делать логику и вывод данных.

Musgravehill

Стрелка на дом работает. Вращается с учетом текущей позиции и направления движения.
Осталось сделать компас.

Musgravehill

Компас работает.
TODO сглаживание и фильтрация показателей.

Musgravehill

Еще вычисление отн.высоты. Возможно, горизонт по акселю или s6r посмотреть.

Еще кол-во спутников в ток.

Musgravehill

Внимание!
Библиотека MAX7456 и FrskySPORTdecoder конфликтуют.
Декодер sport не получает информацию.
Смогу ли разобраться с этим - неизвестно.

Musgravehill

Конфликт решен!
Остается проверка всех датчиков и алгоритмов на железе.

TODO индикатор цикла на экране: зависло или тикает.

26 days later
Musgravehill

Испытал Micro MinimOSD.
Вход S.port повесил на пин CurrentSensor, который идет на А1 в Атмега.
Всё работает.
Таким образом, с подключением к micro или обычной minimOSD проблем нет.

При отсутствии видеосигнала телеметрия отображается, но подергивается.

7 days later
SteK

молодчина!
штука нужная и полезная

2 months later
Kybb

Еще бы видео с итогом работы 😒