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

jekmv
SovGVD:

только на коптеры

получается пока не на чем автопилот на авто сделать?

Mark_Kharkov
nikr:

Газовая горелка для плат мазохизм. Можно острым ножиком аккуратно вплотную к пластику вертикальными движениями отрезать ножки меги, удалить корпус и по одной ножке отпаять. Правда паяльник мелкий нужен. Припаять новую тоже не очень сложно. Главное правильно ее разместить и не перебарщивать с оловом. Если межножечные замыкания все же случились - капнуть безотмывочного или спиртово-канифольного флюса и пустым паяльником без олова согнать излишки олова.

Спасибо Вам!
Попробовал как Вы и написали - плата начала подавать признаки жизни.
А конкретно:

  1. При подключении к программатору (USBasp) avrdude видит “Device Signature”, что это на самом деле Atmega2560.
  2. Попробовал загрузить загрузчик через ArduinoIDE - плата еще больше начала подавать признаков жизни - при включении питания начала моргать светодиодом “А”. Собственно на сколько я помню, то новая плата так и делала при включении.
    _____________
    А вот теперь неприятное:
  3. При попытке загрузить Мегапират из Arduino IDE (подключен кабелем по microUSB, при помощи “Файл” -> “Загрузить”) ничего не получается. При этом вылазит ошибка как и была:

Размер скетча в двоичном коде: 165 452 байт (из 258 048 байт максимум)
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_getsync(): timeout communicating with programmer

Непонятно, что же может быть не так?
2) Пробовал загрузить прошивку способом “Файл” -> “Загрузить с помощью программатора” - после этого вообще плата “умерла”. Верней не моргал светодиод “А”, а IDE выдало ошибку (где-то после часа колбасни) что байты не равны бла-бла-бла.
3) Попробовал после этого оживить загрузчик на Атмеге снова через программатор - еще 1н час колбасни и без ошибок все ок. Снова мигает светодиод “А” при включении и т.д.

Что странно: когда IDE начинает прошивать плату, и посылает что-то на нее (диод “RX” возле FTDI еле заметно моргнул) - мигания светодиода “А” прекращаются. Он начинает либо гореть непрерывно, либо вообще не гореть. При следующей попытке IDE послать что-то на плату (такое же еле заметное одиночное моргание светодиодом “RX”) - состояние светодиода “А” инвертируется. Т.е. если был выключен - то включается и наоборот. И так много раз.
При этом “TX” возле FTDI даже не мигает (ну или может так быстро что не увидишь, хотя врядли).

Что может быть не так?
Может я что-то не так делаю? Кто сталкивался - подскажите пожалуйста, уж очень полетать хочется, а новый контроллер прийдет не скоро… 😦((

Zubr
Mark_Kharkov:

Что может быть не так?
Может я что-то не так делаю? Кто сталкивался - подскажите пожалуйста, уж очень полетать хочется, а новый контроллер прийдет не скоро… 😦((

Попробую внести свои 5коп в эту проблему, так как именно с таким сценарием и сам сейчас бьюсь.

Atmega2560 имеет 256K флеша и загрузчик (бутлоадер) начинается с адреса 0x3e000. Т.е. в самом конце. USBasp только с верии прошивки 2011-05-28 (www.fischl.de/usbasp/) стал поддерживать заливку флеша, больше чем 128K. Причем эта прошивка подходит только для USBasp на чипах ATmega8, ATmega88.
Если у вас USBasp на чипе ATmegа48 (как и у меня) - то прошивать Atmega2560 - бесполезное занятие.

Есть несколько вариантов:

  • проверьте/обновите версию прошивки на USBasp (если он у вас на чипе ATmega8/88)
  • достать более продвинутый програматор. Например AVRisp MKII. Я так и сделал.
  • есть хитрые решения с иcпользованием ArduinoUNO как програматора для 2560, типа вот таких:
    www.gammon.com.au/forum/?id=11635 - прошивка бутлоадера
    http://www.gammon.com.au/forum/?id=11638 - прошивка произвольных hex
    Мне удавалось залить загрузчик с помощью этих решений.
nikr
Mark_Kharkov:

Что может быть не так?

Как я понял атмегу вам перепаять удалось, а вот бутлоадер не записался.
Сообщение avrdude: stk500v2_ReceiveMessage(): timeout означает, что avrdude не дождался ответа от платы.
Для заливки загрузчика специальный программатор не обязателен. Если есть плата Arduino, только не Nano на ней нет выводов с конвертера FT232RL, можно воспользоваться статьей robocraft.ru/blog/arduino/552.html.

Vadimus_ca

Похоже, разобрался, почему у меня коптер не летает - регули настроены вкривь и вкось, некоторые вообще в Super Slow Start mode - это обороты минуту могут набираться. Какое уж тут управление…
Пробовал перепрограммировать через передатчик - видимо, не хватает у меня интеллекта, не понимаю я какой звук соответствует какой закорючке из инструкции. Нашел программатор на Ардуино - тоже не идет, говорят, нужно общую землю у батарейки и ноутбука обеспечить…

Наверное, придется перешивать симонком - вертолетная прошивка даже с правильными настройками коптеру не очень подходит.

nikr
Vadimus_ca:

Наверное, придется перешивать симонком

Это самое правильное решение, так как перешитые намного быстрей отрабатывают команды и как следствие повышается стабильность коптера.

Mark_Kharkov
Zubr:

Попробую внести свои 5коп в эту проблему, так как именно с таким сценарием и сам сейчас бьюсь.

Atmega2560 имеет 256K флеша и загрузчик (бутлоадер) начинается с адреса 0x3e000. Т.е. в самом конце. USBasp только с верии прошивки 2011-05-28 (www.fischl.de/usbasp/) стал поддерживать заливку флеша, больше чем 128K. Причем эта прошивка подходит только для USBasp на чипах ATmega8, ATmega88.
Если у вас USBasp на чипе ATmegа48 (как и у меня) - то прошивать Atmega2560 - бесполезное занятие.

Есть несколько вариантов:

  • проверьте/обновите версию прошивки на USBasp (если он у вас на чипе ATmega8/88)
  • достать более продвинутый програматор. Например AVRisp MKII. Я так и сделал.
  • есть хитрые решения с иcпользованием ArduinoUNO как програматора для 2560, типа вот таких:
    www.gammon.com.au/forum/?id=11635 - прошивка бутлоадера
    http://www.gammon.com.au/forum/?id=11638 - прошивка произвольных hex
    Мне удавалось залить загрузчик с помощью этих решений.

Вот это кстати очень интересно… Надо будет глянуть, на какой меге у меня USBAsp.

Zubr:

Например AVRisp MKII.

У меня есть. Вот такой: www.kosmodrom.com.ua/el.php?name=XMEGA-FP Держит и ATMega, и ATXMega.
Вот только проблема, он ну никак не хочет работать с avrdude. Со студией - не вопрос (пробовал, все видит). А вот с дудкой - никак. Уже когда-то лазил по всему инету, когда свою Turnigy 9X перепрошивал (для чего его и покупал), и usb-lib ставил, и чего только не делал… Никак. Похоже просто не совместимость.
А 100$ за оригинальный фирменный программатор как-то таки многовато… Я конечно могу себе это позволить, но все же.
Если конечно подскажете что не такое дорогое, но быстро работающее и все прошивающее (в Украине) - то буду благодарен 😃

nikr:

Как я понял атмегу вам перепаять удалось, а вот бутлоадер не записался.
Сообщение avrdude: stk500v2_ReceiveMessage(): timeout означает, что avrdude не дождался ответа от платы.
Для заливки загрузчика специальный программатор не обязателен. Если есть плата Arduino, только не Nano на ней нет выводов с конвертера FT232RL, можно воспользоваться статьей robocraft.ru/blog/arduino/552.html.

Оказалось даже не так… Бутлоадер у меня нормально прошился.
Вот вчера долго курил, думал приблизительно так:

  1. Если при “чистой” микросхеме или с неправильной прошивкой светодиод “А” вообще не мигает, значит не идет цикл, который его включает/выключает.
  2. Раз после перепрошивки бутлоадера светодиод начинает мигать, значит на микроконтроллере программа какая-то выполняется, которая его включает/выключает.
  3. Раз после подачи сигнала с Arduino светодиод начинает как-то реагировать - то тем более что-то в микроконтроллере слушает порт, и пытается реагировать. Значит с бутлоадером все ок.

После этого у меня возникло 2ве версии:
а) банальный контакт с 2й или 3й (не помню) ножки отмеги, которая TXD0, что ардуина просто не видит ответа, он не приходит, да и светодиод TX возле FT232R никак не реагирует.
б) что-то с FT232R

После этого прозвонив контакты тестером, убедился, что с контактами все ок. С лапки ATMega до порта S0/FTDI контакт есть. Значит вариант а) не правильный.
Накопал дома от MinimOSD FTDI-ку, распаял переходник с S0/FTDI на штырьки переходник.
Подключил все это к компу, врубил Arduino IDE, и о чудо!!! Оно перепрошилось!!! В Mission Planner все видится, работает!!!
Так что большое спасибо всем за советы, очень благодарен 😃)

А вот теперь думаю: толи забить на usb в криусе, все равно у меня отдельная FTDI есть, толи попробовать перепаять ту мелкую F232R на плате. Как думаете, реально обычным паяльником 30вт (есть еще 40вт и 100вт), или лучше не стоит?

P.S. А вот после прошивки из ардуины скетчем уже повторно оно не прошивается почему-то. Только сделать еще раз “загрузить бутлоадер” через программатор, а потом обычным способом - тогда все нормально проходит. Не совсем понял, почему так.

ReM
Mark_Kharkov:

P.S. А вот после прошивки из ардуины скетчем уже повторно оно не прошивается почему-то. Только сделать еще раз “загрузить бутлоадер” через программатор, а потом обычным способом - тогда все нормально проходит. Не совсем понял, почему так.

Думаю, дело в fuses… Скетч стирает бутлоадер.

Mark_Kharkov
ReM:

Думаю, дело в fuses… Скетч стирает бутлоадер.

Гммм… Ну фузы прописаны в boards.txt в ардуине. Поидее я так понимаю что они должны быть правильные, 1000 раз проверенные… Но радует то, что мега рабочая и плата (за исключением ftdi) тоже 😃
Калибранул компас, с прошивкой MegapirateNG 2.8 R3 калибровка акселя/горизонта заработало только в Mission Planner 1.3.0, калибранул аксель.
Перепрошил с поддержкой GPS (перевести ublox в режим бинарного протокола сходу не вышло, поэтому оставил 9600/NMEA), подключил свой CN-06 GPS, вышел с ноутом на улицу, проверил - 3D Fix сработал, все ок.
На летуна еще не цеплял, работу с двигателями не проверял (но там я думаю разве что непропай может какой быть, поправимо).
И все это в сумме таки радует! Еще чуть допроверяю все и тогда если все будет ОК - в воздух 😃

nikr
Mark_Kharkov:

Как думаете, реально обычным паяльником 30вт (есть еще 40вт и 100вт), или лучше не стоит?

Лучше не стоит, такую микросхему надо горячим воздухом паять.

Mark_Kharkov
nikr:

Лучше не стоит, такую микросхему надо горячим воздухом паять.

Понятно, значит без паяльной станции и фена никак…
Вот думаю… Раз уж увлекся таким хобби - чи прикупить себе паяльную станцию с зарплаты? Хотя не так часто надо с другой стороны… И даже если покупать то фиг его знает какую…

nikr
Mark_Kharkov:

И даже если покупать то фиг его знает какую…

В принципе, без особой разницы. У меня китайская Lukey-702.

vatanuki
Mark_Kharkov:

Понятно, значит без паяльной станции и фена никак…
Вот думаю… Раз уж увлекся таким хобби - чи прикупить себе паяльную станцию с зарплаты? Хотя не так часто надо с другой стороны… И даже если покупать то фиг его знает какую…

такаяже ситуация, прикупил Lukey-702, к паяльнику еще там пару насадочек удобных и для смд деталек жало, + еще удобно задувать ею термоусадки:) места вроде не много занимает, зато теперь старые куяльники уже не трогаю:) брал на советский, вниз вдоль стройки спускаться в сторону шевченко
там в одонм помещении gsmserver.com.ua и masteram.com.ua

PS: сори за небольшой оффтоп

Vadimus_ca

Наконец-то заставил свой коптер взлететь. Теперь есть новая проблема - если он в воздухе, хотя бы в 10 см от земли - висит стабильно. А вот собственно взлет требует большой компенсации, иначе норовит перевернуться.

Sulzer

Подскажите, кому-нибудь удалось поженить Crius AIO V2 + MegapirateNG + Bluetooth + Mission Planner . Два дня безуспешно пытаюсь это сделать. Пробовал и на Serial 0 и на Serial 3 , все баудрейты перепробовал, не помогает. “Fail Connect” Компьютер блутусину видит четко. Заливаю обратно Мультивий - все работает. Если удалось кому , поделитесь какой порт, скорость, версия MegapirateNG ?

commy_s
Sulzer:

Подскажите, кому-нибудь удалось поженить Crius AIO V2 + MegapirateNG + Bluetooth + Mission Planner . Два дня безуспешно пытаюсь это сделать. Пробовал и на Serial 0 и на Serial 3 , все баудрейты перепробовал, не помогает. “Fail Connect” Компьютер блутусину видит четко. Заливаю обратно Мультивий - все работает. Если удалось кому , поделитесь какой порт, скорость, версия MegapirateNG ?

Повесил на FTDI, завелось с пол пинка, скорость 115

Sulzer
commy_s:

Повесил на FTDI, завелось с пол пинка, скорость 115

Какой Мегапират? Версия Mission Planner?

По этой схеме как раз и делал. Не хочет работать. Не знаю , что еще попробовать. Может COM порт поменять , у меня COM15 ? Еще заметил, когда жму “Connect” в Mission Planner то долго думает около минуты, потом пытается что-то получить-передать по мавлинку, потом “Fail Connect” @ляха муха!

Посоветовали повесить на Serial 3 - не помогло.

Mark_Kharkov
Sulzer:

Какой Мегапират? Версия Mission Planner?

По этой схеме как раз и делал. Не хочет работать. Не знаю , что еще попробовать. Может COM порт поменять , у меня COM15 ? Еще заметил, когда жму “Connect” в Mission Planner то долго думает около минуты, потом пытается что-то получить-передать по мавлинку, потом “Fail Connect” @ляха муха!

Посоветовали повесить на Serial 3 - не помогло.

У меня блютуз работал только на 9600 стабильно. Забил и жду 3dr radio.
Если есть у вас переходник FTDI, то сделайте вот что:

  1. ком-порт блютуза подключите к FTDI (крест-накрест, т.е. RX->TX, TX->RX).
  2. воткните это в комп.
  3. подключитесь с этого же компа (так проще) по блютуз к этому же блютузу. Получится, что у вас 2ва ком-порта в системе подключены друг к другу. Что посылаете на один - должно прийти на другой.
  4. скачайте программу PuTTY, откройте 2ва экземпляра этой программы, в ней в подключении выбираете “Serial” и вводите имя ком-порта. Подключаетесь. Так же и во 2м окне для 2го ком порта.
  5. Расположите удобно на экране, что бы видеть оба окна PuTTY, что печатаете в одном окне - должно появляться в другом. Если не появляется - то что-то с подключением или модулями, или софтом или еще чем. Если вместо символов (для верности, что бы избежать проблем с кодировками - использовать английский!) приходит какой-то мусор, то значит скорость на которой вы пытаетесь работать по bluetooth слишком большая. Занижайте скорость.

Таким образом можно проверить свой модуль блютуза, настройки софта и скорость которую он держит. А потом уже просто выставить это в прошивке Мегапирата и все ок.
P.S. Обратите внимание - в самой программе PuTTY при подключении тоже выставляется скорость подключения!
P.P.S. При тесте если скорость слишком превышает рабочую - то из 10-20 символов посланных потоком на один порт на 2м может появиться только 1н символ, при чем “левый”. Это нормально (не с софтом или еще чем проблема), просто скорость надо понизить.

commy_s
Sulzer:

Какой Мегапират? Версия Mission Planner?

По этой схеме как раз и делал. Не хочет работать. Не знаю , что еще попробовать. Может COM порт поменять , у меня COM15 ? Еще заметил, когда жму “Connect” в Mission Planner то долго думает около минуты, потом пытается что-то получить-передать по мавлинку, потом “Fail Connect” @ляха муха!

Посоветовали повесить на Serial 3 - не помогло.

Сейчас на работе, посмотреть не могу. Пират вроде R300, планнер последний. Важно, что бы сам блутуз был настроен на 115200 Baud Rates.