Deviation - альтернативная прошивка для Walkera DEVO

Ustas69
RW9UAO:

в режиме дсм2 будет работать только телеметрия спектрума. конкретно ТМ1000, ТМ1100.

Это информация откуда-то или Вы или кто-то лично пробовали? Это еще интереснее, чем телеметрия Вальки, так как дешевле и приемники есть. То есть, если взять ТМ1000, телеметрия на Вальке 12S будет работать с приемником АР7000?

VladislavVY

Я пробовал много раз с модулем ТМ1000. Пока это реализовано только в тестовых релизах, да и то не до конца. Реально пробовали получать только напряжение приемника, напряжение с батареи и датчик температуры, для остального не было датчиков. В моих тестах это работало с протоколом DSM2, с протоколом DSMX работает как-то кривенько и только с количеством каналов 8 и 9 (индикатор на модуле ТМ1000 быстро мерцает, но телеметрия все же идет). Пока дальнейшее развитие телеметрии для DSM2/DSMX замерло.

RW9UAO

по порядку. какой режим включен (дсм2, дсмХ, дево) в том режиме и идет обмен между приемником, блоком телеметрии и передатчиком.
то что на сегодня “девиация” глючит с телеметрией спектрума есть и мой косяк. там код на основе моих наработок. получу в руки дево7Е буду заниматься телеметрией конкретно под этот проект. РВ реализовал только то, что отдает блок ТМ1000. на спектруме ДХ8 я вижу кроме этих параметров еще и остальные, типа ГПС, токов, повербокса и акселерометров. передаю самодельным блоком.
то что телеметрия в режиме дсмХ дурит - тоже на базе моих недоработок. потерпите, я трачу на это время.

RW9UAO

играюсь с эмулятором дево7Е. в основное меню влезло всего 4 пункта. в экран высотой в 64 пикселя можно больше упихать, даже со шрифтом 8х8. вот думаю, получу в руки аппарат, попробую красивости повыпилить в угоду помещаемости. или там совсем мелкий экран и надо будет оптикой вооружаться? на турниге с er9x вроде не жалуются на мелкоту буковок в меню.

VladislavVY

С Devo 7E со шрифтами еще можно поиграться, там используется только латиница, а вот с остальными это будет не так просто, UNICODE шрифт с х.з. сколькими символами для нескольких языков.

Ustas69
RW9UAO:

РВ реализовал только то, что отдает блок ТМ1000. на спектруме ДХ8 я вижу кроме этих параметров еще и остальные, типа ГПС, токов, повербокса и акселерометров. передаю самодельным блоком.
потерпите, я трачу на это время.

Это здорово, самодельный блок можно будет повторить? Где о нем можно почитать? Сенсоры, я знаю, тоже делали самодельные?

RW9UAO

самодельный блок вы пока не повторите. да и тесноват он. я собираюсь перенести программу на оранжевый дсм2/х ВЧ модуль для турниги. там процессор потолще да и мощность 100 мвт.

со шрифтом высотой 8 пикс прийдется поплясать. еще непривычны рамочки вокруг пунктов меню =) ну это я придираюсь

RW9UAO

побаловался со шрифтами, в config.ini включил везде шрифт 5x7.fon, теперь надо подвигать менюшки для большей влезабельности, ибо они заточены под шрифт высотой 12 пикс. попробую настрелять скриншотов до и после модификации.

RW9UAO

все вроде по людски сделано, в файле PhracturedBlue-deviation-e46cf32e4c1e\src\pages\128x64x1\pages.h правим

#define ITEM_HEIGHT 7
#define ITEM_SPACE 8
#define PREVIOUS_ITEM -1
#define PAGE_ITEM_MAX 6

все собирается, показывает основное окно и одно меню, на остальных программа крашится. надо копать. картинки:

Smolett

Мелковато будет, люди с плохим зрением накидают помидоров 😃 Там на 7Е экран-то не как в турниге 9, а меньше почти вдвое, его реальный размер 2,2х4,6 см.

RW9UAO

кромсал по живому, ибо крашится при отрисовке. не могу найти где. пока получается так:

7 days later
Parez

Подскажите, можно подключить (припаять, вместо модуля WLToys V911) модуль
FrSky (FrSky DHT 8ch DIY Telemetry Compatible Transmitter Module) и будет ли он
работать с этой прошивкой?

тигромух
Parez:

Подскажите, можно подключить (припаять, вместо модуля WLToys V911) модуль
FrSky (FrSky DHT 8ch DIY Telemetry Compatible Transmitter Module) и будет ли он
работать с этой прошивкой?

Там же PPM. Ничего паять не нужно. Включайте в тренерский порт и все.

RW9UAO

фриска работает с er9x через УАРТ и получает телеметрию через него. если придумаете как прикрутить к свободному УАРТу в “девиации” - напишите на форуме сообщение для РВ или FDR.

Babay

Кто-нить пробовал приспособить отличный от поставляемых в прошивке шрифтов? Хочется моношининный, без засечек. Пробовал сконверировать Terminus - не получается, эмулятор с ним валится.

RW9UAO

Владислав рисовал. если получится, то опишите, что и как делали.

VladislavVY

p.s.2 Влад, я не понял, чего происходит?

В том то и дело, что ничего не происходит. Сергей, можешь посмотреть код dsm2.c в Deviation? Мне кажется, что там реализация DSMX имеет какую-то особенность или погрешность, которая в частности сказывается на работе телеметрии. С протоколом DSM2 телеметрия с блоком TM1000 вроде работает нормально, а с протоколом DSMX через пень-колоду, при количестве каналов < 8 блок TM1000 вообще не привязывается, а при 8 и 9 каналах работает через Ж… Хотя при этом приемники DSMX вроде работают нормально. Еше, насколько я помню, PB писал, что пакеты телеметрии нормально принимаются только через один пакет, один принимается, а следующий нет.

В частности, зачем в буфер передачи в третью позицию через раз записывается 0x80? В коде PB я такого не вижу. Или у него это реализовано как-то по другому?

RW9UAO

c телеметрией есть косяк при каналах меньше 8. это связано с тем, что изменяется межпакетная пауза. если каналов 7, то передается два пакета, а если больше, то передается четыре пакета. в течении одного таймслота в 22 мсек. на пальцах объяснить не могу, а код пока в отладке.
пакеты от телеметрии в дсмХ идут каждые 22 мсек, это норма, вот скриншот.

канал 1 - прерывание CYRF. двойные - это прерывание по приему 8 и 16 байт. одинарное - конец передачи. канал 2 - включение усилителя мощности.
в процедуре static void build_data_packet(u8 upper) в строке
value = (upper && i == 0 ? 0x8000 : 0) | (chmap[upper * 7 + i] << bits) | value;
устанавливается старший бит канала 0, это признак повтора пакета. т.е. сначала передается пакет с данными, потом он дублируется на другом канале.

VladislavVY

Попробую по другому спросить. В протоколе DSMX пакеты передаются по такому же алгоритму как в DSM2, или иначе? То есть:

  1. 7 каналов - пакет с данными 7 каналов на первом канале, через 4 мс дубликат на втором канале. Следующие данные передаются через 22 мс.
  2. 7 каналов - пакет с данными 7 каналов на первом канале, через 4 мс дубликат на втором канале, через 11 мс пакет с данными 8-14 каналов (с единицей в старшем бите первого передаваемого канала) на первом канале, через 15 мс дубликат на втором канале. Следующие данные передаются через 22 мс.
    3) Пакеты с телеметрией принимаются после второго и четвертого пакетов, на втором канале (вне зависимости от наличия 3 и 4 пакетов).

Или в DSMX всегда передается 4 пакета за 22 мс (вне зависимости от количества каналов)? Тогда что именно передается в 3 и 4 пакетах в случае 7 каналов? Дубликат первых двух пакетов?

RW9UAO
    • все так. только в дублирующем пакете в канале 0 выставляется старший бит |= 0x8000.
    • все так, в каналах 8-14 бит 0х8000 не выставляется.
      телеметрия идет в конце таймслота 22 мсек.
      как эти сволочи передают 8 каналов в режиме 11 мсек я не понял.
VladislavVY

Насколько я понял из других источников, в протоколе DSM2 этот старший бит является признаком передачи 8-14 каналов. Не понимаю, для чего он используется в протоколе DSMX?

in 11msec mode, the DX8 works like the DX7se I guess.

The DX8 sends 0xB2 (for DSMX) and 0x12 for DSM2 (always in 11bit mode regardless of whether it is 22msec or 11msec mode)

In 11msec mode, it sends channels 1,5, 2 every 11msec, and channels 3,6,7,4, 0 every 22msec