MultiWii

jekmv
Flutter:

Я бы искал помехи. Или от камеры, или от видео ТХ, или наведенные от силовых проводов и регулей.

камера не стоит, видео rx тоже, голый квадр, арминг даже не делаю, провода видно, что далеко от платы. кондеры пробовал вещать, напряжение в беке не просаживается, бек менял

jekmv
omegapraim:

а вы уверены что сервы совместимы))))?

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

omegapraim

Кстати кто нибудь пробовал уже заливать релиз кандидат мультиви 2.1 у меня чет не компилится(((( чет там в коде баро они изменили, ну это то что я заметил из интересного мне, а так опять много много плюшек добавили.

Flutter

А подробнее, как подключен PPMSum, правильная ли последовательность каналов, куда подключена серва, как это отражено в скетче? А то информация слишком общая.

kolaa

Подскажите пожалуйста, в какую сторону мне рыть. Голову сломал и уже несколько пар пропеллеров.
Включен акселерометр, настроил пиды, коптер взлетает ровно, в воздухе держится без осциляций, вроде все ок. Но то-ли после поворота, толи после определенного промежутка времени он как-будто сходит с ума, слышен резкий рев мотора, пирует и жесткая посадка. Иногда просто, как-будто теряет управление, падает и все. Тестировал на земле - с аппаратурой вроде все в порядке, даже после дительных мучений никаких признаков потери связи и зависаний, вообще никаких замеченных глюков. Может такое быть из-за датчиков или неоткалиброванного гироскопа? Или все-таки аппаратура (использую кстати ppmsum на frsky)

photocanon
jekmv:

пробовал штук 5 разных

Вся собака зарыта в ппм сумм!

1 выложите полную схему этого сумматора если делали его сами!

Если не сами делали то могу рассказать что надо сделать в той схеме что дали мне тут пару страниц назад:
1 вместо 1n4148 использовать MBR0530 или MBR340
у кремния падение 0.6-0.7 у шоттки от 0.25 до 0.45 вольта
И поставить подтягивающий резистор на 10к, либо переменник на 10к чтоб найти оптимальное сопротивление когда дребезг не будет влиять на каналы.
2 Сделать два раздельных питания имею ввиду точек +5вольт с танталами 470мкф со стороны приемника и “мультивия” для серв любых сделать аналогично либо на 7805 либо на MAX34063 второй вариант лучше в плане токовой нагрузки и потерь на нагрев.

Физика теперь: Приемник 2.4ггц питается если даже и от 5 вольт то внутри стоит LDO на 3.3вольта так как любые трансиверы диаппазона 2.4ггц питаются именно этим напряжением, соответственно на выходе Всегда будет импульт амплитудой 3вольта. 3вольта потому что на выходе в МК приемника стоят полевички КМОП.
если у вас стоят обычные диоды 1н4148 то получаем что на выходе сумматора в зависимости от примененного резистора будет 2 вольта что находится очень близко к неопределенной области в ATMEGA.
остюда и получаем нашу нестабильность так как серва при повороте дает большой импульс в сеть питания… вы второй канал или просто осцилограф свой повесьте на цепи питания приемника и мультивия… и посмотрите что творится с ними…

Считаю что подбор резистора либо переход на шоттки решит проблему с простым сумматором диоды+резистор. С транзисторами схему не советовал бы из-за наличия Емкостей перехода в транзисторе и фронты в сигналах могут не пройти.

Простой тест можете сделать берете резистор 1кОм ставите в разрыв сигнала и повесьте плюс сервы на батарейку 4,8 вольт соединив только минусы(землю) с основной схемой.

zvuk_Irkutsk
kolaa:

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

Скорее всего проблема в регуляторах. Кстати кто они?
Минусы на тонких проводах от регулятора все заведены на общий минус платы? (Не путать с минусом силовых проводов)

Musgravehill
kedrikov:

Думаю прикупить баро MS5611 и тупо на соплях припаять вместо BMP085 . Будетли он работать?

Да. Подтверждаю своей практикой. Только заранее посмотрите адреса i2c и поставьте перемычку на плате с MS5611. У меня старый all-in-one + на проводках летает на Мультивии. Только указываю в конфиге all-in-one и в define.h правлю: if (all-in-one) => init_bmp085 на init_MS5611, чтобы отключить старый датчик, включить новый и сохранить оси IMU9.

photocanon:

Вся собака зарыта в ппм сумм!

Если выбран PPMsum и на D2 идет каша или пин в воздухе висит, у меня контроллер виснет. Cycle-time дикий, запаздывание по осям несколько секунд.

photocanon

Кстати насчет каши и неадеквата в воздухе, народ а ведь еще возможно такое что потоком воздуха коптер накапливает атмосферную статику! и мегу так как бы мягенько “подфитонивает” статикой…

kolaa
zvuk_Irkutsk:

Скорее всего проблема в регуляторах. Кстати кто они?
Минусы на тонких проводах от регулятора все заведены на общий минус платы? (Не путать с минусом силовых проводов)

Регуляторы mystery blue series esc 30a, минус общий. Один регуль правда ощутимо грелся (м.б. это 7805, который питает аппаратуру, не знаю) .
Буду регули под лупой рассматривать, может действительно земля где-то отлетела после очередного падения…

photocanon
kolaa:

Один регуль правда ощутимо грелся (м.б. это 7805, который питает аппаратуру, не знаю) .

Советую отдельно использовать питание схемы в обход регуляторов… плюс отсоединяем оставляем минус общий.

jekmv
Flutter:

А подробнее, как подключен PPMSum, правильная ли последовательность каналов, куда подключена серва, как это отражено в скетче? А то информация слишком общая.

ппм идет с 8шо канала приемника фрискай (прошивка с оф сайта под мой приемник для сумм ппм), последовательность каналов по скетчу, каждый канал отчетливо отображается в гуи без всяких глякой без сервы. все четко и ясно, все каналы с пределами 1000-2000. без серв все работает прекрасно. серва включается либо в А0, либо в А1, без разницы на платку вия и начинаются глюки (соответственно раскаменчено управление подвесом в скетче, управление им же идет по 3 и 4 ауксу изначально)
то есть все по книжке подключено и настроено, без серв все идеально

photocanon:

Вся собака зарыта в ппм сумм!

1 выложите полную схему этого сумматора если делали его сами!

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

photocanon:

Вся собака зарыта в ппм сумм!
вы второй канал или просто осцилограф свой повесьте на цепи питания приемника и мультивия… и посмотрите что творится с ними…

вешал, смотрел, менял бэки - ничего там от сервы не просаживается, с одним бэком стабильные 4,9 вольт, с другим - 5,5. в общем, по питанию то порядок

вообще как бы да, коллекторный двигатель создает помехи, никто не спорит, поэтому стандартные 100n повесил - ноль эффекта.

mahowik

Что будет нового и какие изменения были проделаны на пути к 2.1:

Some things everyone should be aware before upgrading to this version.

WMP and NUNCHUCK are no longer auto recognized.
You must explicitly declare them (or just WMP) in config.h

Pullups are now undefined by default
(think about activating it if you use a WMP only conf)
LCD is not activated by default

Failsafe is not activated by default

There is no more .pde files
You must use Arduino 1.0 or greater to compile the sketch (and open Multiwii.ino)

If the GUI does not work on your setup,
try to deactivate hardware acceleration for your display board
or use an alternative GUI like WinGUI

MultiWii is not a product, nor a plug and play solution.
Don’t expect to buy a compatible board and run it without a minimum knowledge.

Receiver part
OpenLRS Multi board support done
This is a board including an OpenLRS receiver where the atmel
is used also to run multiwii code.
more info here: www.multiwii.com/forum/viewtopic.php?f=8&t=1438

Multiwii Serial Protocol
It’s a new protocol to communicate with the FC
It was introduced by me and tuned by Tommie
It’s a huge change, but it should ensure a generic way to communicate with the FC,
which is less dependant to version evolutions.
more info here: www.multiwii.com/forum/viewtopic.php?f=8&t=1516

Now, there is no mod to the multiwii if we want to add a GUI/OSD/conf tool/…

Compatible GUI:
open source code, compatible with the new serial protocol
WinGUI from EOSBandi, which is fully equivalent with the original one,
with a better look
more info here: www.multiwii.com/forum/viewtopic.php?f=8&t=1229
mwGui from kos
more info here: www.multiwii.com/forum/viewtopic.php?f=8&t=1791
Android ones via serial bluetooth:

Compatible OSD:
open source code, compatible with the new serial protocol
Rushduino:
more info here: www.multiwii.com/forum/viewtopic.php?f=8&t=922
mobiDrone:
more info here: www.multiwii.com/forum/viewtopic.php?f=8&t=1498

LCD config
OLED display
thanks to contributions of howardhb and Hamburger
more info here: www.multiwii.com/forum/viewtopic.php?f=7&t=1350

VT100 terminal type addition
thanks to contribution of Hamburger
more info here: www.multiwii.com/forum/viewtopic.php?f=7&t=1096

A multiline option is added to allow the configuration on more than 2 lines
useful for displays like OLED or VT100

We have now a lot of possibilities regarding LCD:
SERIAL3W : original 2x16 line from Sparkfun
TEXTSTAR : Cat’s Whisker LCD_TEXTSTAR Module CW-LCD-02
VT100 : vt100 compatible terminal
ETPP : Eagle Tree Power Panel LCD
LCD03 : an i2c LCD
OLED_I2C_128x64

New proc: ATmega32U4
Thanks to the work from ronco.
This proc can be found in the Arduino pro micro board, or Teensy 2.0
The Pro Micro is similar to the Pro Mini except with an ATmega32U4 on board.
The USB transceiver inside the 32U4 allows us to add USB connectivity on-board.
ronco also designed a custom board named nanowii.
One of the smallest 6DOF Multiwii board with usb, which can be now purchased.
more info here: www.multiwii.com/forum/viewtopic.php?f=6&t=1337

Servo:
Higher refresh rate:
Some servo (mostly digital ones) can work with a higher frequency than 50Hz.
The consequence is a sharper response.
ronco adapted the code to make this frequency configurable
more info here: www.multiwii.com/forum/viewtopic.php?f=8&t=1644
Hardware PWM output:
On MEGA boards, it’s now possible to drive the gimbal servos with
a 11-bit PWM servo resolution. Thanks to ronco.
The hardware PWM output ensures a jitter free response.

LED flasher
A way to set a flash LED sequence from Tommie
more info here: www.multiwii.com/forum/viewtopic.php?f=8&t=1505

Throttle expo
There is now another curve in the GUI to configure the Throttle expo.
It’s a way to smooth the throttle stick response around the hover point.
In order to help the setting, there is a small cursor in the graph to show
where is the current throttle input.

ACC LEVEL improvement
The LEVE mode is improved since 2.0 thanks to new choice of
new complementary filter coefficients and a floating point low pass filter

Headfree checkbox:
It’s possible to reset the headfree direction while flying via a checkbox.
thanks to Tommie

Sensor:
MPU6050: there was a bug which prevents using the gyro LPF. correted now.
SONAR: I2C sonar SRF0x code was added but is not currently used.
many new boards was also added in config.h file

Internal code:
The Serial part uses now less RAM (thanks to Tommie first mod)
RX/TX buffers are smaller than before.
EEPROM parameters are stored in a struct, and are written in the
EEPROM in a single step.
MAG declination was added by EOSBandi, to have more accurate orientation.
In some countries, it’s really mandatory to set this variable right,
otherwise it’s impossible to use GPS.
Flag var was introduced for global boolean type variables.
Hamburger introduced some “copter exemple” in order to check
if compilation is ok. (should be a way to remove some trivial bugs)

GUI:
thanks to Danal, there is now the PIN number and the propeller direction
drawed in the graph representation
thanks to kos, we can now load and save parameters into a file
there is now a reset button to set all parameters to default

GPS code:
Thanks to the work of EOSBandi, we have now a working GPS code !
The navigational routines are based on the works of Jason Short
and the Arducopter team (another great open source project).
EOSBandi adapted it to multiwii.
basically, there are 2 main options for GPS: SERIAL option and I2C option.

  • If you have a spare serial port AND an AtMega1280 or 2560 microcontroller
    based FC, you can connect your GPS to that port and enable the serial GPS
    code in the code.
    Patrick introduced a way to switch automaticly because GUI message parsing
    or NMEA message parsing on the same Serial port
    (useful for promini because you can use the same port for GUI and GPS
    in an exclusive mode)

  • You can use an I2C_GPS board, which contains a secondary AtMega328 processor
    with a serial GPS and runs the GPS parsing and navigational computations.
    This board communicates with the FC via the I2C bus.

more info here: code.google.com/p/i2c-gps-nav/downloads/list
and here in this huge post: www.multiwii.com/forum/viewtopic.php?f=8&t=649

There is also a specific GPS_FROM_OSD option:
it’s a way to use the GPS device of OSD to feed Multiwii with GPS data
MIS OSD uses this functionality

ESC calibration
experimental
It’s a special #define which allows to calibrate all ESCs with exaclty
the same signal.
more info here: www.multiwii.com/forum/viewtopic.php?f=13&t=1517

AIRPLANE mode
experimental, more info here:
www.multiwii.com/forum/viewtopic.php?f=8&t=364
code.google.com/p/multiwii/wiki/MWiiAirplane

HELICOPTER mode
experimental
more info here: www.multiwii.com/forum/viewtopic.php?f=8&t=1562

Dual & Single copter
experimental
more info here: www.multiwii.com/forum/viewtopic.php?f=8&t=1882

An attempt to improve the documentation via wiki
wiki from googlecode:
code.google.com/p/multiwii/w/list
wiki from multiwii.com
www.multiwii.com/wiki/index.php?title=Main_Page
We all know the overall documentation is still to improve.

cylllka

Не знаю как будет летать 2.1, но по прошлым прошивкам хочу немного отписать собственных наблюдений:

Когда зимой пришел с goodluckbuy мой первый Мультивий Криус Лайт, сразу залил в него прошивку 1.9. ПИДы не крутил, плата приклеена на несколько слоев 2х стороннего скотча.
Установил на коптер вместо КУКа, одел валенок на гипс и поехал на полетухи. Взлет - ровно, стабильно, плавно. Когда налетался в акро, решили попробовать диковинку - акселерометр.
Лечу вперед в акро, щелкаю тумблер - коптер резко выравнивается и останавливается слегка друйфуя по ветру. Пробуем все сильнее наклонять коптер, щелкаем тумблер - снова зависаем в горизонте. Дальше натянув шлотнее шапку делаю мертвую петлю, в положении вверхтормашками снова щелкаю тумблер - резкий взззжжыы и коптер меньше чем за секунду зависает в горизонтальном положении. Повторяю это несколько раз, все в шоке и восторге от работы мультивия…
И тут появляется 2.0, заливаем, настраиваем. В Акро - висит, ниче так вроде висит. Включаем аксель - и коптер куда то убегает. Ну думаю сбилсь калибровка акселя. А так как пузырьковый уровень не взял, выключил его и забыл. Через время на полетушках решил повторить флип с включением акселя - коптер вяло выполняет непонятный пируэт и кидается на дерево, к счастью не застрял там, минус 2 пропа. Сергей mx400 на своей “коровке” тоже пытается повторить этот трюк - коптер кидает в планету. Дальнейшие настройки ПИДов не дали никаких положительных результатов. Если задирали Р или уменьшали D, то начинались осциляции. Но шустрой стабилизации небыло. Сложилось мнение, что прошивку заточили лишь для висения над подушкой и полета блинчиком. Сильные порывы ветра и коптер кидает куда попало.
Дальше тестим прошивку 2.0 а0 от mahowik. Стабильность значительн о лучше чем у стоковой 2.0, аксель работает адекватнее, но все равно коптер очень вяло реагирует на аксель. При порывах ветра колбасит и при этом коптер очень набирает высоту.

Поставил сегодня снова 1.9, пока проверил в ГУИ и без пропов. Отзыв на отклонение от горизонта значительо выше. Моторы противоположные газующим довольно сильно сбрасывают обороты, видимо из за коптер не набирает высоту при покачивании. На днях попробую снова облетать.

DVE

А что такого принципиального было изменено в 2.0 по сравнению с 1.9?

Я начал сразу с 2, 1.9 даже не тестировал, но вроде ничего криминального не было, вполне плавно летало. Хотя новая 2.0 dev-версия летала действительно получше.

cylllka

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

mahowik
cylllka:

Не знаю как будет летать 2.1, но по прошлым прошивкам хочу немного отписать собственных наблюдений:

DVE:

А что такого принципиального было изменено в 2.0 по сравнению с 1.9?

DVE:

Хотя новая 2.0 dev-версия летала действительно получше.

Практика оч. часто НЕ подтверждает теорию 😃

Посмотрел 1.9 и 2.0 стоковые, если ты говоришь именно про стоковую 1.9 и если коротко, то магия там в том что Z акселя исключается из расчета на углах меньше 25 град (при отключенном TRUSTED_ACCZ)… но это скорее подпорка, чем полноценный фикс (была проблема с проседанием оси Z от вибраций), т.к. получается не линейный расчет угла из акселя. Выражаться будет так - при наклонах от 0-ля до 25-ти (если меедленно наклонять), будет недокручивать и показывать от 0-ля до ~10-15 град, а потом резкий переход на 25 (по идее) с уже последующим линейным отображением угла…
В 2.0 нашли решение от проседания оси Z (соот-но включили TRUSTED_ACCZ по умолчанию) увеличив диапазон акселя на 8-16g, но при этом получили больше шумов с акселя, что я задавил флоат фильтром и увеличил вес гиры (уже в последние dev включили)… На скорость в IMU (скорость вычисления угла) это не повлияло т.к. вес гиры был увеличен, соот-но и IMU стал мене зависим от акселя, а это большой плюс, т.к. гира меньше шумит и меньше видит вибрации… точнее IMU даже быстрей и точней стал за счет всеса гиры…

Попробуй закоментить в 2.0, возможно получишь любимый 1.9 😉
//#define TRUSTED_ACCZ

Если не поможет, то не исключено что это касется изменения разрядности pwm на моторы… тут я не шарю уже…

cylllka
mahowik:

Попробуй закоментить в 2.0, возможно получишь любимый 1.9 😉

Спасибо, попробуем.

mahowik
cylllka:

попробуем

а да, также для чистоты эксперимента в 2.0 Sensors.pde поменяй:

i2c_writeReg(ADXL345_ADDRESS,0x2C,0x09); //  register: BW_RATE     -- value: rate=50hz, bw=20hz

на строчку из 1.9

i2c_writeReg(ADXL345_ADDRESS,0x2C,8+2+1); // register: BW_RATE     -- value: 200Hz sampling (see table 5 of the spec)
SovGVD

имхо основное отличие в 2.0 было с изменением кода для работы регулей, после чего у меня через раз пепелацы стали летать, но так и не удалось нормально сделать - всегда то дрейфует куда то, то колбасит непойми как (трешка и гекса), при этом квадрик на 1.9 висел как прибитый на стоковых пидах
потом прошил для гексы регули и на 2.0 стало летать очень не плохо, потом залил мегапират 2.0.49 - вот это был идеал стабильности, по ощущением, как будто ла не в воздухе, а стоит на полочке (в новых версиях мегапирата такого не наблюдалось к сожалению)