MultiWii

alexmos
dROb:

В общем оказалось что дело всё же не в PPM выводе. Проверил - действительно есть баг со всеми каналами, выкрученными в максимум, но это ситуация редко достижимая. Мой случай, как оказалось - выражается вот в чём. При наличии некоей комбинации каналов, близких к максимальным значениям, а в особенности, если почему-то в этом списке оказывается канал газа - наблюдается подзависание платы так же, как и в баге с PPM-выходом. То есть стабильно воспроизводимо если ГАЗ+Pitch более 90%, или с некоей вероятностью срабатывает когда ГАЗ+другой канал > 90%. Пробовал на другой платке, - такой проблемы нет. Прошивал платку свою другой, стабильной прошивкой - проблема не уходит. Похоже что это проблема железа, хотя ума не приложу как такое может быть.
Дальше разбираться не буду - оттриммировал все каналы на максимальные значения в 85%…

Речь идёт о плате - MultiWii Lite V1.0 Flight Controller w/FTDI

Сегодня столкнулся с похожей проблемой: летал в небольшой ветер, приемник HK-T6A c SUM PPM, Multiwii 2.0 на Crius SE 0.1. Примерно через 2-4 минуты полета, коптер полностью терял контроль. Запоминались последние переданные с пульта позиции стиков, и больше ни на что не реагировал (даже на выключение или перезагрузку пульта). Проблема повторялась три раза, в третий раз чуть не улетел с единственным экземпляром моего нового контроллера подвеса 😃 Версия 2.0 модифицированная, но в код чтения ресивера я не лез - а проблема похоже в нем. Летаю чуть меньше года на этой прошивке и этом железе, и ни разу не было такого. Судя по видео - основной цикл работал, стабилизация была в норме, а завис только цикл приема или сам приемник.

mahowik
alexmos:

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

думаю что всеже приемник подзавис, т.к. если бы в прошивке дело было, то глюк поймал бы раньше чем через год… может новое обрудование (подвес), внесло свои коррективы, тем более если все на одной батарее висит и основной контролер питается от бека регуля или самого акб… т.е. мот по питанию что то поплыло и помехи прут…
А я сегодня опять раму раздолбил, висел в позишн холд + альт холд при ветре 15-18км/ч, потом коптер понесло в сторону с набором скорости за пределы стадиона… все что успел, сбросил газ… потом вспомнил, что на этом поле нужно магнетометр перекалибровывать. т.е. домашняя калибровка не катит… в итоге обрубки карбоновых лучей уже укорачивать некуда 😃 закрываю сезон короче 😃

Sevick

Проблема в ppm (который ppm-sum).
У меня проявляется просто при газ + еще один канал >2000, по-моему. Остальное можно и не трогать. Управление замирает на довольно длительное время - проблему хорошо видно в WinGui

Mwii - crius от rctimer с 2.1
Ресивер - FrSKY V8R7-SP

dROb
Sevick:

Проблема в ppm (который ppm-sum).

Я проверял - у меня проблема не в PPM-SUM. У меня то же самое, и в случае по-канальной передаче сигнала… Зависает кстати на 1-1.5 секунды…

Sevick
dROb:

Я проверял - у меня проблема не в PPM-SUM. У меня то же самое, и в случае по-канальной передаче сигнала… Зависает кстати на 1-1.5 секунды…

Маленькая поправка. При двух каналах >1900 (а не >2000)

В коде особых граблей не видно. Сейчас буду проверять своей ppm-читалкой и ppm-генерилкой…

HATUUL

Народ чего вы гадаете?Поставте уже себе на фриску прошивку с увеличеным PPM кадром с 18 до 27 милисек.
Я лично зашил на свой D8R-II прошивку от D8R-XP и всё отлично работает.При замыкании 3 и 4 каналов на первом канале появляется 27мс РРМ,а на втором рсси.Без перемычки приёмник работает в обычном режиме.

Вот адрес прошивки.
frsky-rc.com/DownloadItem.asp

А вот сылка на прошивку.
frsky-rc.com/uploadfile/…/20121010020017621.zip

Sevick
HATUUL:

Народ чего вы гадаете?Поставте уже себе на фриску прошивку с увеличеным PPM кадром с 18 до 27 милисек.
Я лично зашил на свой D8R-II прошивку от D8R-XP и всё отлично работает.При замыкании 3 и 4 каналов на первом канале появляется 27мс РРМ,а на втором рсси.Без перемычки приёмник работает в обычном режиме.

Вот адрес прошивки.
frsky-rc.com/DownloadItem.asp

А вот сылка на прошивку.
frsky-rc.com/uploadfile/…/20121010020017621.zip

Для моего ресивера update’а нету, да и сомневаюсь что в этом дело. Не любые два канала >1900, а именно при thr>1900 + еще один канал. В коде mwii тротл (но не ппм) также используется для отсечки по failsafe…

И вот еще - зависание - это зависание mwii, а не ресивера. При зависании WinGui начинает показывать отрицательный loop time (видимо переполняясь)

alexmos
Sevick:

Маленькая поправка. При двух каналах >1900 (а не >2000) В коде особых граблей не видно. Сейчас буду проверять своей ppm-читалкой и ppm-генерилкой…

А какая прошивка у вас? Какое доп. оборудование или режимы включены?
Я провел небольшое исследование - приемник не при чем, после зависания я перетыкаю приемник, и ничего не меняется. Зависает совершенно спонтанно, иногда даже просто оставляю приемник в покое в центральных положениях стиков, через 5 минут смотрю - завис цикл чтения. Все остальное работает в GUI. Очень похоже, что проблема только в моей модифицированной прошивке, т.к. раньше ничего подобного не было. Но что я там менял в последний раз - не помню 😦

Sevick

Бага в коде.

Комментируем в MultiWii_2_1.ino строчки с

----------------
// end of failsave routine - next change is made with RcOptions setting
if (rcData[THROTTLE] < MINCHECK) {
----------------

(у меня это ~626 строка) и до

----------------
#if defined(INFLIGHT_ACC_CALIBRATION)
if (AccInflightCalibrationArmed && f.ARMED && rcData[THROTTLE] > MINCHECK && !rcOptions[BOXARM] ){ // Copter is airborne and you are turning it off via boxarm : start measurement
InflightcalibratingA = 50;
AccInflightCalibrationArmed = 0;
}
if (rcOptions[BOXPASSTHRU]) { // Use the Passthru Option to activate : Passthru = TRUE Meausrement started, Land and passtrhu = 0 measurement stored
if (!AccInflightCalibrationActive && !AccInflightCalibrationMeasurementDone){
InflightcalibratingA = 50;
}
}else if(AccInflightCalibrationMeasurementDone && !f.ARMED){
AccInflightCalibrationMeasurementDone = 0;
AccInflightCalibrationSavetoEEProm = 1;
}
#endif
----------------

(у меня это 775 строка). Включительно.

После чего проблемы в WinGui не наблюдается. Очевидно, проблема все-таки не в ppm-sum frsky, а в коде Mwii…
Летать не пробовал - надо смотреть внимательно код - я мог и что лишнее закомментить -)

ps. hatuul - проверьте, пожалуйста, что у вас проблема при выкрученном thr действительно отсутствует

alexmos:

А какая прошивка у вас? Какое доп. оборудование или режимы включены?
Я провел небольшое исследование - приемник не при чем, после зависания я перетыкаю приемник, и ничего не меняется. Зависает совершенно спонтанно, иногда даже просто оставляю приемник в покое в центральных положениях стиков, через 5 минут смотрю - завис цикл чтения. Все остальное работает в GUI. Очень похоже, что проблема только в моей модифицированной прошивке, т.к. раньше ничего подобного не было. Но что я там менял в последний раз - не помню 😦

2.1- #TRI
тестюсь на самой простой - без gps, баро, магнита
последовательно вырубил все что можно - не помогало

pps. у меня при этом залипании он начинает мигать синим диодиком. Ощущение что пытается в какую-нибудь настройку зайти…

Sevick

Ложная тревога -)

Зависание имеет место быть только в disarm состоянии - действительно настройки. В Arm - все ок, не виснет

erohin

Вечер добрый, подскажите как в прошивке MultiWii_2_1_b3 переназначить сумарный PPM с входа RX на THROTTLE, плата контроллера crius ALL IN ONE PRO v1.0 на меге 2560

mahowik
HATUUL:

При замыкании 3 и 4 каналов на первом канале появляется 27мс РРМ,а на втором рсси.

О! свежак (10/10/2012)!
ты кстати RSSI (PWM) не пробовал мобидрону кормить? или ему только аналоговый RSSI подойдет, которого в D8R-II(XP) нет похоже… хотя из ШИМ-а в аналог не трудно перегнать… не гугля по идее обычный RC фильтр прокатит…

erohin:

Вечер добрый, подскажите как в прошивке MultiWii_2_1_b3 переназначить сумарный PPM с входа RX на THROTTLE, плата контроллера crius ALL IN ONE PRO v1.0 на меге 2560

поищите тут… вроде было…

upd: rcopen.com/forum/f123/topic283798/128

HATUUL
mahowik:

мобидрону кормить

Уже третий месяц кормиться посмотри на мои видео.Кстати рсси почти аналоговый (ШИМ) мобидрон их хорошо принимает через резюк и кандёр запитаный на землю.Силу сигнала отображает почти такую-же как на пульте ±10%.

mahowik
HATUUL:

мобидрон их хорошо принимает через резюк и кандёр запитаный на землю.

mahowik:

не гугля по идее обычный RC фильтр прокатит…

так про то и писал 😃
подскажи плз. параметры фильтра, т.е. какой кондер и резюк?

HATUUL

Уже не помну,брал,что под руку попалось.
Если не ошибаюсь кандер 10 нФ запаралелен с резюком 1к.
В обрыв кажетса 100 или 50 ом ставил.

erohin
erohin:

Вечер добрый, подскажите как в прошивке MultiWii_2_1_b3 переназначить сумарный PPM с входа RX на THROTTLE, плата контроллера crius ALL IN ONE PRO v1.0 на меге 2560

отвечу на свой вопрос, разобрался такая возможность появилась в MultiWii dev version r1143 (2012/09/27)
необходимо отредактировать в
RX.ino после
/**************************************************************************************/
/*************** PPM SUM RX Pin reading ********************/
/**************************************************************************************/
// attachInterrupt fix for promicro
#if defined(PROMICRO) && defined(SERIAL_SUM_PPM)
ISR(INT6_vect){rxInt();}
#endif

вписать

#if defined(PPM_ON_THROTTLE) && defined(MEGA) && defined(SERIAL_SUM_PPM)
ISR(PCINT2_vect) { if(PINK & (1<<0)) rxInt(); }
#endif

затем в def.h в
/************************** all the Mega types ***********************************/
найти #define PPM_PIN_INTERRUPT attachInterrupt(4, rxInt, RISING); //PIN 19, also used for Spektrum satellite option
и заменить на
#if defined(PPM_ON_THROTTLE)
//configure THROTTLE PIN (A8 pin) as input witch pullup and enabled PCINT interrupt
#define PPM_PIN_INTERRUPT DDRK &= ~(1<<0); PORTK |= (1<<0); PCMSK2 |= (1<<0); PCICR |= (1<<2);
#else
#define PPM_PIN_INTERRUPT attachInterrupt(4, rxInt, RISING); //PIN 19, also used for Spektrum satellite option
#endif

и последнее в config.h после раскоменченного желаемого PPM дописать #define PPM_ON_THROTTLE

например так

/**************************************************************************************/
/******** special receiver types ********************/
/**************************************************************************************/
/**************************** PPM Sum Reciver ***********************************/
/* The following lines apply only for specific receiver with only one PPM sum signal, on digital PIN 2
Select the right line depending on your radio brand. Feel free to modify the order in your PPM order is different */
//#define SERIAL_SUM_PPM PITCH,YAW,THROTTLE,ROLL,AUX1,AUX2,AUX3,AUX4 //For Graupner/Spektrum
//#define SERIAL_SUM_PPM ROLL,PITCH,THROTTLE,YAW,AUX1,AUX2,AUX3,AUX4 //For Robe/Hitec/Futaba
#define SERIAL_SUM_PPM PITCH,ROLL,THROTTLE,YAW,AUX1,AUX2,AUX3,AUX4 //For some Hitec/Sanwa/Others
#define PPM_ON_THROTTLE

проверил работает.
ну както так…

HATUUL

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

PPM Frame Length для нашего случая лучше 27?
РРМ пауза-это пауза между пакетами?
😵

gorbln

Столкнулся с такой фигнёй:
Если включить управление подвесом - то каналы AUX3 и AUX4 - автоматом мапятся на поворот камеры по питчу и роллу соответственно. (вообще, на AIOP есть специальные пины под это дело, но они походу не используются). У меня на AUX3 висит переключение режимов. Соответственно, при щелчке переключателем камера поворачивается хрен-те-куда.
Мне это не понравилось, сделал вот такое решение, может быть кому-то окажется полезно:
config.h

  /*  Camstab pitch control only by one channel, uncomment only one option. Roll control is disabled.
        E.g. CAM_STAB_AUX4_ONLY means that signal from AUX4 used to control pitch of the gimbal and AUX3 is ignored.
        === affects Output.ino - Cam stabilize Sevos section === */
  //  #define CAM_STAB_AUX3_ONLY
    #define CAM_STAB_AUX4_ONLY

output.ino
сначала надо удалить кусок

S_PITCH = TILT_PITCH_MIDDLE + rcData[AUX3]-1500;
    S_ROLL  = TILT_ROLL_MIDDLE  + rcData[AUX4]-1500;

и потом добавить

 #if defined(CAM_STAB_AUX3_ONLY)
     S_PITCH = TILT_PITCH_MIDDLE + rcData[AUX3]-1500;
     S_ROLL  = TILT_ROLL_MIDDLE;
   #endif
   #if defined(CAM_STAB_AUX4_ONLY)
     S_PITCH = TILT_PITCH_MIDDLE + rcData[AUX4]-1500;
     S_ROLL  = TILT_ROLL_MIDDLE;
   #endif
   #if !defined(CAM_STAB_AUX3_ONLY) && !defined(CAM_STAB_AUX4_ONLY)
    S_PITCH = TILT_PITCH_MIDDLE + rcData[AUX3]-1500;
    S_ROLL  = TILT_ROLL_MIDDLE  + rcData[AUX4]-1500;
   #endif
dROb

Подскажите - подключил тут BUZZER - так вот он непрерывно пищит. Что это за фигня?
P.S. Алярм по батарейке (VBAT) отключен.

mahowik

какая прошивка? какой контроллер? на какой пин повесили?
и где купили пищалку? мне ссылку так толком и не дал ни кто… 😃