Baychi OpenLRS - дружелюбная ЛРС с широкими возможностями )

LaPart
LaPart:

Пока всё, я убежал, удачи

Прибежал:)

LaPart:

… компилирую.
Проверяю и радуюсь , либо, если "что-то пошло не так " слегка огорчаюсь и меняю код на исходный,

Ведь ни кто не стал проверять практически такой вариант?
Ну что ж - значит при экспериментах ни одного … экспериментатора не пострадало 😃

Нашел я еще одно место в исходниках, где обрабатывается значение длительности импульсов РРМ и как порог для обработки - вы будете смеяться, но опять “магическое” число 1976 (которое удвоенное 988 😃).
Это место в модуле rfm22b.ino:
word ppmCode(byte ch) // преобразование мкс PPM в 11 битный код
{
word pwm=PPM[ch]; // берем длительность импульса в мкс*2
if(pwm < 1976) pwm=0;
else if(pwm > 4023) pwm=2047;
else pwm=pwm-1976;
return pwm;
}
Здесь идет преобразование удвоенных микросекунд к нужным величинам, которые позже будут обработаны и отправлены в передатчик.
Что видно?
Всё, что было короче 1976 (988мкс) превращается в ноль (не напоминает ли вариант, уже попадавшийся выше, но при обнаружении файлсейва?)

LaPart:

// нет PPM - нет и передачи

Всё, что было больше 4023, обрезается до 2047 (4023-1976=2047)
Всё в диапазоне от 1976 до 4023, после вычитания 1976, займет место в диапазоне от нуля до 2047.
И в таком виде будет обрабатываться дальше.
Но если мы обрезали до нуля всё, что было меньше 1976 (988мкс), то характер изменения длительности меньше 988мкс уже потерян (присвоено значение, соответствующее нулю).
Получается, что не стоит ждать после этого импульсов, соответствующих меньшим значениям. Вернее, какой-то импульс может быть на выходе (нужно копать дальше, может исходников будет мало и придется лезть в даташит, но дальше уже не полезу, потому что прошивка работает убедительно, не нужно мешать ей работать), но он будет соответствовать любым импульсам до 988мкс. Может кривовато объяснил, извиняюсь.
Кто-то скажет: - А у меня не включен режим 11бит, а тут речь про 11 бит.
Это неважно, 11 бит будут вычислены, но если выбрано только 10 бит, то и переданы дальше будут только 10 бит из 11 (конечно будет касаться только точности).

тигромух
LaPart:

вы будете смеяться, но опять “магическое” число 1976 (которое удвоенное 988 ).
Это место в модуле rfm22b.ino:
word ppmCode(byte ch) // преобразование мкс PPM в 11 битный код

Этой функции нет с 30 ноября 2013 😃
Сейчас эта логика находится в функции mks2code(). И, повторюсь, она зависит от регистра 5. В представлении футабы, длина импульса может опускаться до 880.
Плюс, за счет расширения серводиапазона на приемнике, даже в представлении эксперта можно уйти до 900, если я правильно посчитал (см. BufToServo() в functions.ino).

LaPart:

Кто-то скажет:

Вам бы свежие исходники скачать 😃

Shuricus

Вчера мы многое поняли:
Во-первых, мишин планер можно использовать в качестве терминала для просмотра ППМ 😃
Во-вторых, действительно, значение меньше 988 в терминале является минимальным, даже в случае, если в аппаратуре установлено число меньшего значения, отсюда можно сделать вывод что мои опасения по поводу триммирования нижней границы сигнала прошивкой полностью оправдались. (Еще раз спасибо за совет, обсуждать это в теме Ардукоптера - это было проницательно!😃 )
Логика работы прошивки явно такая - все что меньше 988 = 988.
Интересно, конечно, где находится этот код.

Вывод: прошивка передатчика сразу выводит в сигнале ППМ максимальные значения каналов, и они не могут быть увеличены с помощью прошивки аппы er9x такими функциями как WEIGHT канала, или Elimits. Что вообщем-то ни хорошо, ни плохо.

Спасибо всем за помощь.

тигромух
Shuricus:

Логика работы прошивки явно такая - все что меньше 988 = 988.
Интересно, конечно, где находится этот код.

Доктор, меня все игнорируют 😉

LaPart
тигромух:

Доктор, меня все игнорируют

Кто там следующий, чего не проходите? 😃

тигромух:

Вам бы свежие исходники скачать

Спасибо за замечание:) Я ведь говорил, чего тут копаться, если прошивка замечательно работает, нечего ей мешать… Скорее всего так и получилось - в самой современной прошивке не оказалось принципиально ценных добавлений для меня к устойчиво работающей версии.

тигромух:

Этой функции нет с 30 ноября 2013.
Сейчас эта логика находится в функции mks2code().

Ты знал! Ты знал! 😃 А сказал бы раньше, я и не полез бы в механизьм 😃
Ну хоть предположительно нашли ответы, уже хорошо.

Shuricus

Сделали с дайверсити и акком для маяка.

Andrey3167
Shuricus:

действительно, значение меньше 988 в терминале является минимальным, даже в случае, если в аппаратуре установлено число меньшего значения, отсюда можно сделать вывод что мои опасения по поводу триммирования нижней границы сигнала прошивкой полностью оправдались. Логика работы прошивки явно такая - все что меньше 988 = 988. Интересно, конечно, где находится этот код.

Руководство пользователя от baychi:

диапазон изменения канальных импульсов в режиме Эксперт: 988-1500-2011 мкс;
диапазон изменения канальных импульсов в режимах 2 и 3 - Futaba: 880-1520-2159 мкс;

можно попробовать

X3_Shim
Shuricus:

Сделали с дайверсити и акком для маяка.

туда еще проц с большим объемом памяти, что бы и прошива байчи влезла и маяк тигромуха 😃

Shuricus

Они там уже на стме версию мутят! Вместе с мпу. Там и маяк и сразу полетный контроллер получается!

Интересно по дайверсити - на сколько схемотехника правильная. И чего дорого так, там один мелкий чип этим занимается, ну и фтди еще за 3$.

X3_Shim
Shuricus:

Там и маяк и сразу полетный контроллер получается!

ну наффиг. Объединять приемник с маяком есть смысл, а с полетным уже нет. Да и потребление должно быть мелкое, что бы акка резервного на сутки хватало.

Shuricus

Для мелких коптеров это хороший вариант. И только. Чтобы всякие сс3д не ставить. Только кто код интегрирует - неясно. Поэтому уже год они мутят…

А маяк - многие сказали, что нужен отдельный, когда я с подобным же предложением выступил!

max809
Shuricus:

А как вы думаете, возможно настроить фейлсейф так, что бы ничего не было на выходах в этот момент?

Если ещё актуально, то 149 строку OpenTiny_Rx.ino изменить на:
if(receiver_mode==1 && Servo_Number <= MAX_PPM_OUT && failsafe_mode == 0) {
было:
if(receiver_mode==1 && Servo_Number <= MAX_PPM_OUT) {
в режиме ФС на выходе не будет PPM.

тигромух
max809:

Если ещё актуально, то 149 строку OpenTiny_Rx.ino изменить на:

А почему не 120ю? 😃

max809
тигромух:

А почему не 120ю?

Потому что тогда теряется возможность использования PWM выходов в режиме FS.

тигромух
max809:

Потому что тогда теряется возможность использования PWM выходов в режиме FS.

Как я понял, это и требуется. Давайте спросим автора вопроса 😃

max809
тигромух:

Давайте спросим автора вопроса

Shuricus:

В ардупилоте так работает ФС.

Не думаю, что Александр использует PWM выходы для соединения с APM.
PWM и дискретные выходы удобней использовать для других целей (курсовая в центр, световые маяки, пищалки, парашют) во время FS. 😃

Shuricus

Да, Максим прав. Целиком и полностью, вдоль и поперек! 😃

А вообще замечательно, теперь даже есть выбор как настроить ФС для Ардупилота.

Olegfpv

Коллеги подскажите , какая у меня мощность выходная на Тини минимальная и максимальная установленные (R20, R22) , 400 мвт и 1000 мвт , или 600 мвт и 1000 мвт.?

ССМ=

20 регистр Минимальная 750 примерно (индивидуально для каждого модуля)
21 регистр Средняя 500 примерно (индивидуально для каждого модуля)
22 регистр Максимальная 1000 примерно (индивидуально для каждого модуля)

Olegfpv

Спасибо Сергей, а то я думал что я на 400 летаю.)))) диод примерно раз в секунду моргает. У меня на двух позиционник повешено, среднего нету, только мин и макс). Спасибо

Plohish

я так понимаю всё зависит от значений в регистрах… и говорить что “а то я думал что я на 400 летаю” не отдавая себе отчёт о цифрах регистров совершенно неправильно