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

Alexsiv

2.7 R2 почему то не компилируется на атмегу 1280
(

c:/users/алексей/desktop/квадр/arduino-1.0.1/hardware/tools/avr/bin/…/lib/gcc/avr/4.3.2/…/…/…/…/avr/bin/ld.exe: ArduCopter.cpp.elf section .text will not fit in region text
c:/users/алексей/desktop/квадр/arduino-1.0.1/hardware/tools/avr/bin/…/lib/gcc/avr/4.3.2/…/…/…/…/avr/bin/ld.exe: region text overflowed by 6532 bytes)
, а если выбрать атмегу 2560 то занимает примерно 140 килобайт.
2.6 последняя версия замечательно помещается на 1280… как запихнуть 2.7 в атмегу 1280?

tusik
jekmv:

у меня троттл на rc3, сейчас значение там 1000

Это выходы на моторы. Поэтому 990 надо ставить на первых четырех каналах

adenis

Алексей (Sir Alex), а i2c GPS все еще не поддерживается?

jekmv
tusik:

Это выходы на моторы. Поэтому 990 надо ставить на первых четырех каналах

меняю на rc3 - и именно это значение идет на все 4 выходных канала.

Sir_Alex
adenis:

Алексей (Sir Alex), а i2c GPS все еще не поддерживается?

неа… у меня такого GPS нету… так что я не напишу драйвер, ждите пока кто нибудь не переделает.

TheGreatDom

Всем доброго времени суток!

Вот пробую настроить подвес на 2.7 r3. И столкнулся с такой проблемой. Когда ставишь реверс например на roll, то по началу все работает ок, а через некоторое время инвертируется и pitch. И наоборот также. А иногда вообще pitch и roll сами собой меняются местами, те шатаешь аппарат в одной плоскости, а подвес компенсирует отклонение в другой, хотя пару минут назад все было нормально. В общем полный неадекват.

Кто нибудь настраивал подвес на этой прошивке? Есть идеи что не так?

Sir_Alex
TheGreatDom:

Кто нибудь настраивал подвес на этой прошивке? Есть идеи что не так?

ИМХО, поддержка 3х осевого подвеса в оригинальном ArduCopter пока в стадии бета версии… это видимо последствия… судя по логу изменений, сейчас идет его доработка.

couger

Алексей, подскажите почему может версия 2.7R3 при загрузке в Blackvortex выдавать ошибку? Скриншот прилагаю.

jekmv

объясните, пожалуйста, значение параметра I. крутил сегодня от 0,05 до 0,16 - изменений не увидел. Р на одном уровне было - 2,0, D тоже не менял. все в стаб моде

EduardNN
couger:

почему может версия 2.7R3 при загрузке в Blackvortex выдавать ошибк

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

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 “понимает”, вроде даже заливает, но контроль молчит 😦