ArduCopter Mega: порт на обычную Arduino (тестим)

Sir_Alex
Олег24:

После замены загрузчика в плате все льется и летает отменно …

В общем, проблема действительно оказалась в загрузчике! Некоторые платы поставляются со старым Ардуиновским загрузчиком, в котором есть бага. Из за этой баги, если в тексте прошивки втречается три восклицательных знака, то бутлоадер переходит в интерактивный режим (командная строка).
В итоге, если в прошивке встретится !!! - капец, она не загружается. Я просто фшоке!

Сомневающиеся, могут попробовать залить вот такой скетч:


void setup(void)
{
  Serial.println("!!!");
}

void loop(void)
{
;
}

Теперь вернемся к своим слонам MPNG. При компиляции, в конце прошивки, какраз появляются те самые !!!, но фишка в том, что в коде нет такой последовательности символов (как в примере), ее генерит компилятор (видимо какие то команды у него так получаются). В итоге прошивка и не заливается.

Теперь, что делать:

  1. Заменить бутлодырь с помощью AVR-ISP программатора - Это самый правильный путь, но конечно для тех у кого есть программатор.
  2. Достаточно внести небольшие изменения в код прошивки, что бы у компилятора не получились три вопроса подряд. Я сейчас делаю версию R2 где можно будет это просто сделать.
  3. Еще есть вариант, перезалить бутлодырь средствами avrdude, но это надо манипулировать фьюзами, что бы разрешить запись в область памяти бутлодыря - в общем, путь небезопасный.
ReM:

3D navigation controller follows straight lines in all dimensions between waypoints

Вроде как в 3.x версии собирались сделать алгоритм облета точек - L1. Видимо это и есть оно. Во всяком случае, библиотека для L1 в арде появилась, но я не знаю, задействована она или нет.
По идее, она дает более правильный алгоритм облета точек.

rstzero
Sir_Alex:

В общем, проблема действительно оказалась в загрузчике! Некоторые платы поставляются со старым Ардуиновским загрузчиком, в котором есть бага. …

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

SovGVD
Sir_Alex:

RC10, RC11 соответственно.

да, вроде работает =)
Подлетнул на гексе в комнате (размер гексы увеличился, а в комнате стало побольше мебели, летать не возможно уже):

  • в планере все отлично калибруется: аксель, компас (в прошлый разы всегда врал чуток, сейчас четко показывает) и даже FS тестируется отлично
  • на дефолтных пидах гекса (20-22L, 11", рама ATG 700-AL) не дергалась и показалось что вернулась старая резвость и четкость удержания горизонта, но надо на улице смотреть
  • прошивку собирал и заливал в Ubuntu на crius aiop v1 без перешития бутлодера (кстати можно сделать сервис сбора прошивки и какой нибудь GUI для avdude написать, будет дружелюбнее)

Если погода не подведет, пойду в поле вечерком.

@SirAlex, можешь эту строчку пояснить: Warning #4: loiter turns does not maintain altitude. This bug will be fixed in AC-3.0.2. - никак не осознаю чего с высотой в лоитере.

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

SovGVD
UserM:

Дык, вроде как есть.

много кнопок и полей для ввода, дружелюбно это когда выбрал параметры своего коптера (в данном случае тип платы, тип рамы и тип с распиновкой приемника) и нажал одну кнопку

UserM

Вас не верно понял, я о GUI программаторе, а Вы о GUI конфигуратре )).

SovGVD
Sir_Alex:

В конфиге планера можно принудительно отключить OpenGL и оставить только GDI+.

не помогло, видимо дело в архитектуре (малоли там чего x86 зависимое), придется старенький нетбук доставать, для настройки в поле должно хватить =)

ReM

Сегодня заметил одну проблему. Установил 15 в Circle radius, и 8 в Circle rate. Включил Circle, а он развернулся и медленно полетел неизвестно куда. Думал что в Китай. 😃 Но оказалось, что ближе… 😃
Когда проверил, что записанно в Circle radius, оказалось что 1081. Попробовал ещё раз записать 15. Но когда проверил - опять там бред какой то. Тоже самое и с Circle rate. С третьего раза записалось нормально. Попробовал в полёте - всё нормально.
Я уже вчера заметил что некоторые значения записываются правильно не с первого раза. Не знаю, это проблема Arducopter или Megapirate?

SergDoc
Sir_Alex:

Еще есть вариант, перезалить бутлодырь средствами avrdude, но это надо манипулировать фьюзами, что бы разрешить запись в область памяти бутлодыря - в общем, путь небезопасный.

Алексей, фьюзы трогать незачем, лодырь шьётся в начало флеши, не больше не меньше, любым программатором и любой программулиной через spi - стираем флеш и перезаливаем лодырь, его область ничем не защищена, просто прошивка льётся уже начиная со следующего сектора или страници - уже запамятовал как в авр флеш разбирать 😃

Alexey_1811
SergDoc:

Алексей, фьюзы трогать незачем, лодырь шьётся в начало флеши,

Все же наверное в конец флеша.

Sir_Alex
SergDoc:

Алексей, фьюзы трогать незачем, лодырь шьётся в начало флеши, не больше не меньше, любым программатором и любой программулиной через spi - стираем флеш и перезаливаем лодырь, его область ничем не защищена, просто прошивка льётся уже начиная со следующего сектора или страници - уже запамятовал как в авр флеш разбирать

Я говорил про то, как залить не используя программатор. Просто через USB. Я правда не пробовал, за что купил за то и продал )) Вот тут описан метод и собственно расписан баг с бутлодырем:
www.ualberta.ca/~jhoover/…/HJH-Notes.txt

ReM:

Я уже вчера заметил что некоторые значения записываются правильно не с первого раза. Не знаю, это проблема Arducopter или Megapirate?

Наврядли мерапирата, весь код не связанный с датчиками, остался 100% неизменным от Ардукоптера.

SergDoc

что значи - не используя программатор, там аглицким по белому написано stk500, а это явно по spi 😃

Alexey_1811:

Все же наверное в конец флеша.

неа

select boot size BOOTSZ1 = 0
    select boot size BOOTSZ0 = 0
        4096 words, 8192 bytes
        application 0x0000 to 0x6fff, boot 0x7000 to 0x7fff
    select reset vector BOOTRST = 1
        jump to boot loader

постраничная адресация…

Sir_Alex
SergDoc:

что значи - не используя программатор, там аглицким по белому написано stk500, а это явно по spi

Arduino когда заливает по USB, то же делает это через avrdude и указывает STK500v2

SergDoc

ну тогда понятно зачем танцы, перезалить самой себе флеш да ещё загрузочную…

2fast2real

Парни скажите какая-нибудь прошивка может управляться в режиме althold как наза? Что бы нормально реагировала на стик газа.

Mark_Kharkov
2fast2real:

Парни скажите какая-нибудь прошивка может управляться в режиме althold как наза? Что бы нормально реагировала на стик газа.

А что Вы подразумеваете под “нормальным реагированием на стик газа”? Нежелание коптера спускаться вниз? 😃)))

SovGVD
2fast2real:

Что бы нормально реагировала на стик газа.

смотря что подразумевается под нормально… например если в пирате стик газа вверх вниз от центра водить, то будет плано подниматься/опускаться (правда хз работает это в althold или нет, но в loiter точно работает, заодно и коптер по gps держил)
Выбрался я наконец то в чисто поле =) Хотел PIDы покрутить, но решил сперва полетать как есть, потом захотелось loiter/rtl потестить, а потом аккумы сели (zippy 5ah кажется на выброс, 3.5…3.7Ah заливается только и летает соотвественно минут 5 всего и разброс по банкам 3.4/3.7/3.6).
стаб - обычный стаб
loiter - 1 раз непонятно глюканул (из примерно 10), врубил этот режим и коптер понесся на запад, переключился в стаб, вернул на место, включил снова и дальше не глючило, высотой рулится, хз про что вообще было предупреждение, про багу в 3.0.1
rtl - ±1 метр ошибка при возврате, но то же 1 раз (из 5) глюканул и не туда полетел
принципиальных отличий в полете не замечено, но всетаки показалось что стаб стал жесче, как было года 2 назад, еще со старой платкой allinone + mega1280

kren-DEL
SovGVD:

стаб стал жесче

подтверждаю, пробовал RateD прибавлять - не очень помогает. Только-что упал оттого, что не сработал FS, хотя в планере вроде всё установлено и настроено 😦

2013-08-28 19-08 2.rar

2fast2real

Что бы реагировала нормально на газ в альтхолде, а то достлало уже его ловить не хочет нормально висеть и все. Над землей с пары метров так вообще постоянно снижается до 10 см и потом висит, мож че там еще надо поткрутить на блэк вортексе? Althold P и все тротл PID крутил, добился только плавности и пулей в небо не стреляет после включения альта, или может быть на блэк вортексе баро отстойный? И еще с какой высоты начинает работать сонар? В исходнике r300 стояло max range 400, это сколько значит?

SovGVD
2fast2real:

мож че там еще надо поткрутить на блэк вортексе?

надо… поменять его на crius aiop с ms5611 барометром, который в назе стоит и не забыть паралончиком всё это добро прикрыть, чтобы ветер от винтов не задувал

2fast2real

А да и последний вопрос, у всех периодически горизонт уплывает?

Дак я же могу его припоять к вортексу и все, тогда норм будет?

Все прикрыто )))