Альтернативная прошивка к FlySky/Turnigy/I-Max/Eurle от Thus

bobt

Так как появились новые версии от Erazz и возможно кто то перейдет на нее, пока Томас исчез и прекратил развитие своего детища, то имеет смысл при постах в этой ветке указывать от кого прошивка.

Версия Thus и Erazz :

Проблема с выключателями в микшерах решается добавлением в миксы константы MAX
в инверсном режиме. Мой часный пример описанный выше будет выглядеть так:

CH3 -100% MAX !THR
100% THR THR

Сегодня проверил. С таким микшером мотор начинает крутить ( при включенном выключателе ) точно также как вообще при отсутствии выключателя в микшере. При выключателе в 0, канал полностью вырублен. Я очень доволен. Очень крупная проблема решена даже без исправления кода.

server28

Коллеги, не пойму, в чем дело. После установки прошивки и настройки модели по монитору решил проверить на модели Easy Glider. Обнаружил очень неприятные задерждки и перемещение серв рывками. Проверил на 2-х приемниках. Даже и не знаю, что думать. такое впечатление, что сервопривод не успевает за ручкой и вместо плавного движения скачет большими ступенями. Если ручку двигать медленно, то серва идет плавно.

bobt

133 версия от томаса ? Калибровка прошла без проблем как я понимаю. Епром после оригинальной прошивки после включения отформатировало ? Просто совсем нет идей причин такого поведения и если я понял правильно с оринальной прошивкой все работало как надо ? Распечатайте ваши микшеры если не трудно.

server28

Разобрался: в прошивке Туса укороченные паузы между канальными импульсами. В заводской прошивке Турниги пауза в пакете - 400 мкс, а у Туса - 300 или чуть меньше.
Владимир, как Вы думаете, эту проблемку можно как-то поправить?

bobt:

Калибровка прошла без проблем как я понимаю.

До калибровки - дело не дошло. И микширование - ни причем.
Проверял работу серв на полностью сброшенных настройках - тоже самое.

bobt

Вот тут у него как я понимаю код PPM фрейма. Поправить то можно, вопрос надо ли.

void setupPulsesPPM()
{
//www.aerodesign.de/peter/2000/PCM/frame_ppm.gif
//22.5 ges 0.3low 8* (0.7-1.7 high 0.3low) high
//uint16_t rest=22500u*2;
uint16_t rest=22500u*2;
uint8_t j=0;
for(uint8_t i=0;i<8;i++){ //NUM_CHNOUT
int16_t v = g_chans512[i];
v = 2*v - v/21 + 1200*2; // 24/512 = 3/64 ~ 1/21
rest-=v;//chans[i];
pulses2MHz[j++]=300*2;
pulses2MHz[j++]=v;
}
pulses2MHz[j++]=300*2;
pulses2MHz[j++]=rest;
pulses2MHz[j++]=0;

}

bobt

По поводу паузы между импульсами.
code.google.com/p/th9x/issues/detail?id=4

My guess is that the “delay” timing between PPM pulses are too short for my Corona module.

Но в следующем коментарии, автор польской прошивки отвечает:

Space between signals is not critical, I use 300 ms and it is ok (I’m not remember if I check how low I can get with this).

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

server28

:)Размеры моих границ не будут иметь никакой благодарности!

Летать (планеры) все одно бессмысленно - дымка, инверсия и полный штиль, я бы и проверил сразу.

bobt

Поменял на 400 и собрал бинарник под линукс через MAKE файл от Thus. Бинарник по размеру один в один как у него, теперь точно можете пробовать. Сейчас перекину с линукс машины только прошивку. И вот еще что подумал. Я лучше код кину вам в личку.

bobt
server28:

Ща спробую, данке шён!

В личку аттачменты слать нельзя как оказалось. Выкладываю тут.

TH9X_400_linux.rar

server28

Проверил - 400 микросекунд, но не помогло. Сфотографировал осциллограммы, буду копать дальше.😦

bobt
server28:

Проверил - 400 микросекунд, но не помогло. Сфотографировал осциллограммы, буду копать дальше.😦

Отрицаиельный результат тоже результат. Значит поляк был прав, что не должно влиять.
Кидайте Томасу осцилограмму, может у Йозефа будет идея. По моему эту часть писал он, а он сейчас не в отпуске.

server28

Владимир, я проверил - не работает. Получилась действительно одинаковая пауза 400 мкс, но есть еще одно отличие, возможно я проморгал его вчера - это общая продолжительность пакета.
В прошивке Туса длительность пакета (от первого канального до первого канального) составляет 25-26 мс, а в оригинальной прошивке турниги - точно 20 мс, как того требует стандартный PPM. Попробуем?!😉


На первой - работает прошивка Туса, на второй - Турниги.
Других отличий не нашел.

bobt

Ну как скажите, установил пакет 20000 и вернул на родину 300. Давайте я вам в личку кину свой e-mail. Вы мне туда пишите и я буду в ответ вам слать версии 😉

th9x_20000.rar

server28

Владимир, мы его:) сделали! 20 милисекунд все решили - работает. Пойду микшировать. Вам - отдельное спасибо. Буду рад помочь при случае. Я в проекте открыл кейс, потом отпишу там. Вы, если будет возможность, опишите автору прошивки проблему и ее решение. Поклонники DSM2 будут благодарны.

ВитГо

для DM9 мне показалось более важным инвертированный сигнал PPM…
все остальное не сильно заметно.

server28

Виктор, Вы наверно запутались.
DSM2, DSM, DSMJ - проприетарныe форматы передачи команд радиоуправления. Используются в аппаратуре JR и Spectrum.
Spectrum DM8 - модуль для Futaba, требует инвертированного PPM.
Spectrum DM9 - модуль для аппаратуры JR. Работает от стандартного PPM. Инверсии не требует.

Что такое DSM9?

bobt

Дополнил 41 проблему и покополся в инете. Я понял почему у Томаса длинна фрейма 22.5 ms и пауза 300 микросек. Если в гугле ввести PPM Frame, то немецкие источники выдают именно такую информацию для 8 канальных передатчиков.
Вот примеры:
www.aerodesign.de/peter/2000/…/PCM_PPM_eng.html
или вот
www.mftech.de/ppm_en.htm
Однако иные источники приводят длинну фрейма 18-20 ms и паузу 250-400 микросек.
agert.homelinux.org/blog/index.php/PPM
Я вижу только один путь, если это критично. Выносить оба параметра в настройки.
В догонку. Нашел еще про Футабу и снова 22.5:
insecure.ws/…/control-rc-aircrafts-from-your-compu…

DD

ребят, это не пауза между канальными импульсами, это поидее и есть канальный импульс, а вот расстояние от начала одного канального импульса до начала другого и кодирует положение сервы. то есть так сказать импус это 0,3 паузы + 1,7 = 2 либо - 0,4 + 1,6 = 2, так что 0.4 или 0.3 это действительно ни на что не влияет. А длинна фрейма действительно на сколько я читал бывает разная и 20 и 22.5, но 25-26 не видел. Пробовал так же на обычную не цифровую серву подавать импульсы с повышенной частотой - серва действительно двигается неадекватно, наверное если период фрейма сильно увеличить будет тоже самое, но как мне кажется между 20 и 22.5 разницы нет

server28

Это вопросы терминологии, нет документа, где эти понятия определены. Главное, что мы поняли, о чем речь и проблему решили.
Про разницу - ну не с тоски ведь я все это замутил? Читайте выше - там все написано.