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

Sir_Alex
EduardNN:

Такая же проблема Как решить ?

Я думаю проблема в бутлоадере. В BV была партия с непонятны зашитым бутлоадером (похоже от меги 1280). Решение - перешить на бут от 2560, для этого нужен ISP программатор. Но своим программатором USBasp, мне не удалось залить только бутлоадер в BV. Пришлось слить с обычной ардуинки полный дам, вместе с прошивкой MPNG и и бутом - только после этого все нормально прошилось.

Lazyan
Sir_Alex:

Я думаю проблема в бутлоадере. В BV была партия с непонятны зашитым бутлоадером (похоже от меги 1280). Решение - перешить на бут от 2560, для этого нужен ISP программатор. Но своим программатором USBasp, мне не удалось залить только бутлоадер в BV. Пришлось слить с обычной ардуинки полный дам, вместе с прошивкой MPNG и и бутом - только после этого все нормально прошилось.

А как же fuses? Они тоже могут влиять. Я шил бутлоадер avrdude (тот, что идет в комплекте с ардуиной) в командной строке. Напрямую ардуиной не получалось. Насколько я знаю, он поддерживает практически все программаторы, в том числе и USBAsp. Я пользовал AVRISP v2.
Сам AVRDude находится в папке “<папка arduino>\hardware\tools\avr\bin\”. В эту папку надо скопировать “avrdude.conf” из папки “<папка arduino>\hardware\tools\avr\etc\” и файл “stk500boot_v2_mega2560.hex” из папки “<папка arduino>\hardware\arduino\bootloaders\stk500v2\”.
Запускаем командную строку и переходим в папку “<папка arduino>\hardware\tools\avr\bin\”.
Сперва надо установить fuses (если у вас другой программатор, то надо поменять “avrisp” на соответствующее значение и указать правильный ком порт, например, COM4):
avrdude -P <comport> -b 115200 -c avrisp -p m2560 -v -e -U efuse:w:0xFD:m -U hfuse:w:0xD8:m -U lfuse:w:0xFF:m

Далее заливаем сам бутлоадер (аналогично задаем ком порт и корректный программатор):

avrdude -P <comport> -b 115200 -c avrisp -p m2560 -v -e -U flash:w:stk500boot_v2_mega2560.hex -U lock:w:0x0F:m

EduardNN
Sir_Alex:

Пришлось слить с обычной ардуинки полный дам…

Скиньте слитый hex.

Попробовал с stk500boot_v2_mega2560.hex загрузка даже не начинается.
Не заливается прошивка даже если попытаться выбрав с помощью программатора (в ардуино 1,0,1)

Не понятно почему прошивка 2,6_R6 заливается без проблем?

Sir_Alex
EduardNN:

Не понятно почему прошивка 2,6_R6 заливается без проблем?

Посмотрите, какого размера получается прошивка, когда вы ее заливаете (я просто уже не помню сколько было для 2.6). 2.7 - прилично распухла, поэтому бутлоадер не знает как такой размер заливать в проц.

Lazyan:

А как же fuses?

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

EduardNN:

Скиньте слитый hex.

Скину как доберусь до плат…

EduardNN

Бутлоадер вроде бы знает размер флеши . Разница в объеме прошивок 2.6_R6 и 2.7_R3 ~20kb свободно более 100 кбайт.

Sir_Alex
EduardNN:

Бутлоадер вроде бы знает размер флеши . Разница в объеме прошивок 2.6_R6 и 2.7_R3 ~20kb свободно более 100 кбайт.

Попробуйте еще что нить раскомментить в 2.6, например OSD и LED_SEQUENCER, когда размер флеша перевалит за 130k он перестанет заливаться…

Кстати, похожая проблема возникла у владельцев официальной APM1 1280… те то же лихорадочно пытаются уменьшить код или заменить чип на 2560 😃 Благо в случае BV - вопрос решается перешивкой…

EduardNN
Sir_Alex:

когда размер флеша перевалит за 130k он перестанет заливаться…

Печально 😦
Делать-то что теперь ???

Можно ли в софте Ардуино скомпилировать 2.7_R3 в файл и залить его сторонним программатором ?

Sir_Alex
EduardNN:

Делать-то что теперь ???

Прошивать новый бутлоадер с помощью внешнего программатора типа USBasp или AVRisp…

EduardNN

Действительно загрузчик расположен в середине флеши и видимо именно это не дает расположить прошивку более ~120…130 кб.
Как переместить загрузчик в конец флеши?
Программатор USBasp, софт Khazama AVR Programmer “понимает” HEX расположенный в<папка arduino>\hardware\arduino\bootloaders и корректно его заливает.
Софт eXtreme Burner - AVR этот же HEX не “понимает” в буфере одни FF.
C помощью редактора от UPA USB переместил загрузчик в конец флеши ,изменив адрес загрузчика в первой строке, но Khazama AVR Programmer не “понимает” созданного HEX файла ,eXtreme Burner - AVR этот же HEX “видит” вроде заливает в контроль, но контроль молчит 😦

Sir_Alex
EduardNN:

Действительно загрузчик расположен в середине флеши и видимо именно это не дает расположить прошивку более ~120…130 кб. Как переместить загрузчик в конец флеши?

Вот полный дамп BlackVortex’a вместе с MPNG 2.7.1
www.siralex.info/files/BlackVortex_MPNG2.7.1.zip

Не забудьте только фьюзы правильно выставить:
efuse = 0xFD
hfuse = 0xD8
lfuse = 0xFF

Удачи! 😃

EduardNN
Sir_Alex:

Вот полный дамп BlackVortex’a вместе с MPNG 2.7.1

Чем сливал ?
Khazama AVR Programmer не “понимает” этот HEX.
eXtreme Burner - AVR этот же HEX “понимает”, вроде даже заливает, но контроль молчит 😦

Sir_Alex
EduardNN:

Чем сливал ?

avrdude

Чуть выше Lazyan писал как с его помощью залить в BV, единственно надо выбрать свой вариант программатора.

EduardNN

Программатор USBasp - com не использует…

A-fly

здравствуйте, хотел узнать, у меня одного проблемы с gps на BV начиная с прошивки пирата 2.6 рц 5, или уже есть другие случаи?

Lazyan
EduardNN:

Программатор USBasp - com не использует…

значит так и указываем вместо “COM2” - “USB”

Тестировали вчера 2.7 R3 с BlackVortex. В стабе и лойтере очень хорошо себя ведет. Очень красиво отрабатывает миссию в авто. Единственное - в конце миссии, когда переходит в лойтер, почему-то сильно расколбашивает по высоте, метров на 3-4, но пиды покрутить не успевали - уже теменело.
А вот стабилизация подвеса совсем не порадовала. Если на 6-м канале в приемнике есть какой-то сигнал, серву жутко паркинсонит. И в общем стабилизация ведет себя довольно неадекватно. Наверное нужно дождаться новых релизов или же вкорячить стабилизацию подвеса из старой версии.

A-fly:

здравствуйте, хотел узнать, у меня одного проблемы с gps на BV начиная с прошивки пирата 2.6 рц 5, или уже есть другие случаи?

Надо пользовать 2.6 RC6, по крайней мере с моим BV лойтер держал очень даже достойно при хорошем ветре.
А в чем именно проблемы?

A-fly
Lazyan:

Надо пользовать 2.6 RC6, по крайней мере с моим BV лойтер держал очень даже достойно при хорошем ветре.
А в чем именно проблемы?

Всё работает, кроме gps, через минуту поле инициализации датчиков начинает выдавать разные координаты с огромной скоростью. Пробовал 2.7 R3, 2.6 R6, но как лью 2.6 R4 все ок работает…

Sir_Alex
EduardNN:

Программатор USBasp - com не использует…

COM вообще не надо указывать, просто:

avrdude -c usbasp -p m2560 -v -e -U flash:w:stk500boot_v2_mega2560.hex -U lock:w:0x0F:m
EduardNN

Короче затер я этот проц до дыр , заливал (avrdude ) и stk500boot_v2_mega2560.hex и BlackVortex_MPNG2.7.1.zip либо проц молчит либо загрузчик вроде запускается но не вяжется с ардуино софтом 😦
Короче залил загрузчик от Black Vortex и залил 2.6_R6.
Короче убил пол дня понапрасну…

Sir_Alex
EduardNN:

не вяжется с ардуино софтом

После заливки BlackVortex_MPNG2.7.1.zip надо было выбрать в Ардуино не BlackVortex, а обычную Arduino Mega 2560. Забыл предупредить, что в прошивке обычный бутлоадер и никаких модификаций делать не надо в Arduino IDE что бы в нее заливать (т.е. boards.txt уже не актуален будет)

EduardNN

Фуууу. Вроде затолкал 2.7_R3 в энту мегу 😃
Залил загрузчик Vortex_Bootloader.hex слитый с rcgroups.com.
Далее выбрав в ардуине Arduino Mega 2560 or Mega ADK все залилось.