Прошиваем PPM-encoder
В данной статье рассказано для чего необходима прошивка PPM энкодера, выполненного на микросхеме Atmega32U2, и как это делается.
Энкодер позволяет преобразовать 8 сигналов широтно-импульсной модуляции в 1 сигнал фазово-импульсной модуляции. ArduPPM был разработан, чтобы повысить производительность и надежность.
Энкодер жизненно необходим для корректной работы режима FailSafe, который поможет не уронить аппарат при временной/постоянной потере сигнала радиоуправления. Сигнал радиоуправления может пропасть из-за разных причин, например таких, как большое удаление коптера от пилота, помехи на данной частоте из-за работы другой аппаратуры, препятствие (отсутствие прямой видимости), пропадание питания передатчика, выход из строя передатчика/приемника, геомагнитные бури, солнечная активность и т.д. После пропадания сигнала энкодер подает на контроллер следующие уровни сигналов управления:
Прошивку энкодера считаю обязательной, т.к. не известно что там залили китайцы в вашу плату. Если вы не видите изменения показаний значений каналов при калибровке аппаратуры в Mission Planner (далее MP) или уже успели уронить аппарат из-за того, что не сработал FailSafe, то эта статья для вас!
Что нам понадобится?
- Программа Flip. Качаем здесь.
- Прошивка для ATMega32U2. Качаем здесь. На данный момент версия v2.3.16. Если нужны исходники или более новая прошивка, то берем здесь. Скомпилированную 2.3.17 без загрузчика можно скачать тут (я сам не тестировал).
- 2 пинцета или 2 мелких перемычки.
Приступим к процессу!
- Устанавливаем программу Flip.
- Освобождаем доступ к плате.
- Отключаем все лишнее от платы. В данной операции нам нужен только USB кабель!
- Подключаем кабель к плате и ПК. Устанавливаем драйвер, если еще не установлен. Находится в папке с установленным MP.
- После того как плата подключена, установите перемычку JP2 согласно изображению:

- Дальше необходимо замкнуть GND и Reset Atmega32U2 чтобы перезагрузить микросхему PPM-энкодера:

После перезагрузки Atmega32U2 вы услышите звук Windows извлечения/добавления нового устройства. Микросхема переходит в режим DFU (ожидает прием команд от программы-прошивальщика). В Windows будет обнаружено новое устройство ATmega2560 DFU (если этого не произошло, то следует полагать, что слетел загрузчик — для его восстановления воспользуемся статьей «Прошиваем PPM-enсoder. Загрузчик»). Необходимо установить драйвер, который находится в папке с установленным Flip. После установки драйвера увидим устройство «ATmega32U2». Микросхема готова к прошивке.
- Далее запускаем программу Flip. После запуска программы вы увидите следующее окно:

- Нажмите на значок с микросхемой или выберите пункт меню “Device — Select”. Далее в списке выберите Atmega32U2.

- Нажмите на значок с кабелем или выберите пункт меню “Settings — Communications — USB” и нажмите «Открыть». Если все в порядке, то вы увидите в правой области окна сигнатуру микросхемы:

Перед загрузкой новой прошивки вы можете просмотреть информацию о текущей прошивке, находящуюся в буфере. Обычно версия прошивки имеется в коде. Нажмите меню «Device — Read» чтобы загрузить текущую прошивку в буфер и далее нажмите «Buffer — Edit» для просмотра. Версию можно увидеть почти в конце перед значениями «FF». Ниже приведен пример:
01470 98 08 20 03 E8 03 20 03 98 08 20 03 06 09 20 03 .. … … … . 01480 98 08 20 03 98 08 20 03 98 08 20 03 08 52 41 72 .. … … ..RAr 01490 64 75 50 50 4D 76 32 2E 33 2E 31 36 00 30 20 00 duPPMv2.3.16.0 <– номер версии 014A0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ……………. <– пустая зона 014B0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF …………….
- Далее необходимо открыть файл прошивки, нажав на значок или выбрав меню “File -Load HEX”. Сталкивались с тем, что была проблема загрузки, если файл прошивки .hex лежит с папке с русскими символами, поэтому путь к файлу должен быть как можно короче и без русских символов, например:
«c:\ppm-fw\ArduPPM_v2.3.16_ATMega32U2.hex».
- Далее необходимо включить все галочки слева в разделе «Operation Flow»:

Далее необходимо нажать кнопку «Run», чтобы приступить к процессу загрузки прошивки:
Если вы все сделали правильно и процесс прошивки прошел удачно, то напротив галочек вы увидите зеленые индикаторы.
После завершения прошивки необходимо извлечь перемычку. Дальше можно передернуть кабель USB и убедиться, что плата запустилась.
Только что мы прошили микросхему Atmega32U2 PPM-энкодера.
Update 04.05.2014:
Видео процесса обновления прошивки.
raefa # apmcopter
Update 25.06.2014. Видеоинструкция от Юлиана. Прошивка PPM-encoder
В этом видео подробно описан процесс прошивки PPM-encoder. Обновление и прошивка обязательна для правильной отработки FailSafe, а также необходима в том случае когда у вас один из каналов радиоуправления не калибруется в МР.
Ссылка на прошивку PPM
Ссылка на прогу Flip
cezarepicentr # apmcopter
Update 15.09.2014: Информация от Тимура Ганиева (5timur5, 5yoda5) по проверке работы PPM энкодера и настройке FailSafe (источник).
Как тестировавший одно время С ПРИСТРАСТИЕМ эту прошивку, немного поумничаю.
Проверить, как отрабатывает ППМ энкодер очень просто. Смотрим «уровень» сигнала по каналам (например на вкладке Failsafe) выставляем например газ на 30 процентов и отключаем приемник от питания. Тем самым иммитируем зависание приемника или его обесточивание. И смотрим, как отреагировал АРМ на эту ситуацию. Если значения по каналам остались без изменений (поведение Турниговского приемника при пропаже связи) и не меняются 20 секунд (это важно) — значит ППМ энкодер нужно прошивать. Почитайте вот эту статью, и особенно комменты к ней.
На данный момент в Сети обнаружено две последних прошивки РРМ энкодера 2.3.16 и 2.3.17. Мои исследования показали, что лучше прошивать версией 2.3.16
Поведение этой прошивки ППМ энкодера отличается в зависимости от того, какую прошивку залили в большую Мегу — коптерную или самолетную. С самолетной прошивкой отрабатывает корректнее. Но ветка про коптеры, значит пишу далее про коптеры.
Значит настройка процедуры фэйлсейф такая: сначала настраиваем ФС на приемнике (я называю это аппаратным ФС). Если у вас фриска или RLS — думаю проблем тут не возникнет. А если у вас все ещё Турнига (тогда мы идём к вам) — тогда ПРОГРАММНЫЙ ФС (прошивка PPM энкодера) — это единственный способ спасти вашего друга! В любом случае, назначьте ОБЯЗАТЕЛЬНО канал для управления полетными режимами (некоторые летают без переключения режимов — просто СТАБ), и сделайте на этом канале режим для ФС (кто-то делает RTH, я сделал Land — дело вкуса). При настройке аппаратного ФС надо поставить значения всех каналов в положение ФС, включая переключатель полетного режима (или крутилку, если вы оригинал). То есть при пропадании сигнала у вас приемник сам включит RTH или LAND. Это аппаратный ФС (у стокового приемника Турниги естественно ничего приемник не включит).
Теперь настроим «программный ФС». Прошиваем PPМ энкодер. Его прошивка дает нам следующее: при пропадании сигнала на стоке Турниги или при обесточивании/зависании Фриски — значения ВСЕХ каналов ставятся в середину(1500), а уровень газа ставится на минимум(900). То есть что выходит? что включится тот режим, который попадает на 1500 в канале управления полетными режимами.
Значит — на колу мочала, начинай сначала. Определяем полетный режим (вкладка полетные режимы), попадающий на 1500 тот, который должен быть при ФС.Теперь все проверяем. Корректнее смотреть значения каналов и текущий полетный режим на вкладке FailSafe в МП. Ставим уровень газа процентов 40 (не армим коптер!!!!) и полетный режим Stabilize (типа летаем).
Отработаем ситуацию потери связи: выключаем передатчик (пульт) — проверяем какой уровень по каналам на выходе и какой полетный режим. Приемники не имеющие ФС, например Турнига сток проверили «программный» ФС, приемники имеющие ФС (Фриска например) — проверили сработку «аппаратного» ФС.
Отработаем потерю питания или зависание приемника (очень редко, но такое бывает): Выключим питание на приемике, выдернув провод питания (остальные можно не выдергивать), не обесточивая сам контроллер АРМ. Все каналы ставятся на середину, а канал номер 3 (газ) скидывается на минимум. ФС отработал (если у вас на середину определен полетный режим для ФС).Еще пара ремарок.
1. «программный» ФС включается не сразу. Подождите немного — 30 секунд для надежности. Более того, на самолетной прошивке есть понятие «короткий ФС» и «длинный ФС». На самолете сначала срабатывает режим определенный в параметре «короткий ФС» — как правило Circle, потом через время заданное в параметре «длинный ФС» (как правило через 20 секунд RTH).
2. В теории, это было задумано — как сработку ФС по каналу газа. Видели на вкладке FailSafe можно вбить минимальный уровень газа? То есть минимальный уровень газа при работающей аппе должен быть больше 900 (1000 например), а при пропадании связи или зависании/обесточивании приемника — газ должен скинуться на 900, и по этому условию всключиться режим определенный для ФС на вкладке Failsafe. Но у меня лично не получилось так все настроить. Получить 900 (ниже минимума) после калибровки радио никак не выходило. Так что я просто определил ФС полетный режим на 1500 в управляющем канале.Успехов!
Update 26.01.2015: Перемычка для прошивки PPM encoder на платах 2.7.2 и 2.8.
Если вы нашли ошибку на странице, то нажмите Shift + Enter или нажмите здесь, чтобы уведомить нас.
Добрый день!
Спасибо за отличную статью!
И вопрос, даже два.
Если не сложно, по какому критерию PPM энкодер определяет пропадание сигнала? Считаем что приемник не имеет выхода RSSI
Если используется приемник с выходом PPM? Энкодер в этом случае ничего не делает, тупо транзитит сигнал. Файл сей в этом случае работать будет нормально? И можно/нужно (если нужно то куда) подключать сигнал RSSI (с приемника)?
Приветствую!
Про критерий точно сказать не могу. И на следующий вопрос не отвечу, т.к. сам использую самый простой вариант, и в дебри лезть желания нет. Если будет желание, то можете прислать свои изыскания.
Сигнал RSSI с приемника подаешь на a1 (в планере можно назначить вход) ну и уровень не забудь выставить 3в или 5в.

Настораживает фраза-если этого не произошло то возможно слетел загрузчик,собственно вопрос что надо сделать чтоб этого не произошло?
Загрузчик может слететь из-за просадки/обрыва питания как и в штатном режиме, так и в режиме прошивки. Так же из-за того, что сами что-то накосячили, допустим хотели прошить одно, а прошили другое.
Большое спасибо за статью. 3 дня бился с настройкой FailSafe. При одном и том-же оборудовании на одном контроллере APM v.1 все работало, а на APM 2.5.2 нет.
А как оказалось надо было перепрошить PPM.
Китайцы особо не утруждают себя, да и им только известно, что они там залили.
Долго не мог разобраться с джамперами (точнее с 2 пинцетами). У меня черную хоббикинговскую плату удалось прошить после следующих манипуляций:
1. Подключаем плату к компу, ждем загрузки.
2. Втыкаю пинцет в JP2 (лень было гребенку под перемычки паять)
3. Практически сразу (секунда-две — как позволяет человеческое быстродействие), втыкаю вторую перемычку (два нижних контакта на ISP)
4. Выдергиваю первую перемычку.
5. Выдергиваю вторую перемычку.
6. Плата находится в режиме работы с ATMega32U2, спокойно ставлю драйвер, спокойно прошиваю.
7. Больше никаких перемычек не выдергиваю (как в конце статьи)
Всем успехов!
Забыл сказать: прошивку проверял — читал содержимое до перепрошивки и после прошивки — изменилось на то, что в статье.
Отлично! Как запасной вариант пригодится 🙂
Прошил РРМ-энкодер, потому что обнаружил, что там та же самая ересь, что и в видео. В итоге всё стало как в статье и видео — прошивка установилась, но после отключения аппы энкодер не подает на контроллер уровни сигналов управления, судя по показаниям Mission Planner всё остаётся на месте. Как побороть сей недуг?
ПС. Забыл написать, что после прошивки на АРМ стали моргать желтые св.диоды RX/TX даже когда АРМ запитан не через USB, это так и должно быть?
Какая аппаратура?
Если не ошибаюсь, то если подключена телеметрия, то эти светодиоды моргают постоянно (давно я на них не смотрел, т.к. они прикрыты).
Аппаратура FrSky Taranis X9D. Светодиоды моргают и с неподключенной телеметрией.
Возможно и в самой аппаратуре надо настроить FailSafe. Поищите настройки. По поводу светодиодов на днях посмотрю у себя, а пока попробуйте еще раз прошить.
Да, действительно, надо было настроить в аппаратуре FailSafe и теперь всё работает чётко! Большое спасибо за совет! А со светодиодами посмотрите, при возможности, всё таки интересно, как они себя должны вести.
Добрый день. А причем здесь аппаратура? Мы настраеваем таким образом PPM а не аппаратуру. И PPM должен же давать сигнал (900) при пропадании сигнала от аппы? А он никакого сигнала не дает все сигналы по каналам остаются такими же при отключении аппы какими и были до отключения. Где рыть в таком случае?
Насколько я вообще всё это понял, прошивка PPM энкодера дает возможность так назаваемого «софтового» ФС. Поэтому на РУ типа FRSky, имеющих собственный, аппаратный ФС — проверять бессмысленно. Там работает связка передатчик (аппаратура) — приемник. При потере сигнала приемник сам выставляет запрограммированные значения каналов при ФС.
А прошитый РРМ энкодер дает возможность ФС на приемниках, не имеющих функцию аппаратного ФС, либо при зависе ЛЮБОГО приемника. Так как зависание приемника для тестирования процедуры ФС мы сделать не сможем (хрен его знает, при каких обстоятельствах виснет приемник) — значит остается использовать приемник, не имеющий аппаратного ФС.
Берем стоковый модуль Турниги (у кого есть), при потере связи с аппой (выключение аппы, потеря сигнала) — приемник Турниги «замораживает» значения на каналам. Застывшие значения с течение какого-то времени — сигнал РРМ энкодеру для срабатывания ФС. И тогда РРМ энкодер скидывает значение газа (может и всех каналов, поправьте меня) до 900, чего не бывает на стоковом приемнике Турниги. Тогда Ардушка включает «программный» (определенный через МП) фэйлсейф.
Как-то так, КМК.
Вот это как раз все понятно что и для чего это нужно! Вопрос в другом… Перепрошил энкодер а значения газа не сбрасываются, а суди по прочитанной здесь инфе — должны. Так вот куда рыть в таком случае?
Андрей, а какое у вас РУ и как вы проверяете? Опишите подробнее, может увижу куда копать. Например, если модуль FRSky, то у вас «программный» ФС произойдет только при зависоне приемника. А как завесить приемник принудительно — лично я не знаю…
Да FrSky. Но FS на этом модуле может быть включен и выключен. Так вот при выключенном он работает как обычный приемник без FS (поэтому считаю что нет разницы какой модуль). Поэтому ничего подвешивать не надо, но если сильно хочется то можно просто выдернуть питание из приемника.
Андрей, какая у вас аппаратура? Полагаю, что если в аппаратуре ФС реализован, то он как-то настраивается. И если он работает, то надо приемнику «передать» эти настройки, чтобы он менял сигнал. А если сигнал с приемника не меняется, то и APM может это не понять.
Аппаратура Turnigy 9xr
Нет, сама аппаратура значения не имеет.
Так как у вас модуль FRSky — это всё меняет. Если у вас на модуле есть «аппаратный» ФС — настраивайте его. На нем и реализуйте переключение на нужный полетный режим (Land, или RTL). А в МП на вкладке ФС ставьте тот же полетный режим. А как проверить — Х.З. Нужно как-то завесить приемник для проверки.
Я не зря писал про стоковый модуль Турниги. У него логика другая, чем у FRSky. У Турниговского приемника значения каналов сохраняются НЕИЗМЕННЫМИ, которые были до потери связи. То есть если при ниличии связи они свё равно чуть-чуть скакали, то после потери связи — застыли. Вот тут-то РРМ и скидывает значения до 900.
Я хотел что бы и аппаратный FS работал а при случае если пропадет питание на приемнике или он зависнет, то включался бы FS по PPM? Но видимо этого сделать нельзя((
Или все таки как то можно?) У кого есть мысли по этому поводу, жду комментариев
А разве может пропасть питание на самом приемнике, без пропадания питания всего коптера?
Еще чуть-чуть поясню, вдруг не знаете.
Сначала настраиваете аппаратуру, чтобы на тумблере было переключение полетных режимов. И чтобы один из режимов был тот, который будете использовать при ФС. Потом настраиваете «аппаратный» ФС, чтобы при выключении аппы (пропадание сигнала), приемник сам включал полетный режим для ФС.
И только потом в МП задаете полетный режим для ФС. Но это делается только для случая зависания приемника.
Вероятность пропадания питания ничтожна мала (если пропадет то везде), но вот зависнуть он может мне кажется
Все же я не могу понять до конца…. Если приемник завис или потерял питание то он не даст команду на FS — это должен сделать PPM! Правильно я понимаю?
Подозреваю, что зависший приемник и обесточенный — суть разные случаи. И возможно выключение приемника эта прошивка не отрабатывает…
Интересно, а есть у кого-нибудь исходники этой прошивки? Можно было бы глянуть — как ведет себя энкодер при полном пропадании сигналов (обесточивание только приемника).
Возможно, это не реализовано в прошивке…
Вон же, в статье последняя ссылка! Надо посмотреть…
Посмотрел. Тяжело конечно разбираться в чужой программе. Насколько я понял (при диагональном просмотре проги) — там смотрится как значения всех каналов, так и количество активных каналов. То есть если отключится приемник — то РРМ энкодер должен выдать сигнал ФС.
Так что можно попробовать проверить «программный» ФС путем выключения питания на приемнике. В том числе на Фрисках.
Ещё заметил — различия в файлах. Тот, что «самый свежий» 2.3.17, отличается от скомпилированного (2.3.16) поведением при варианте подключения с PPMSUM. Как раз мой случай. Проверю поведение при отключении приемника на 2.3.16 и потом надо прошить с использованием 2.3.17.
Будут интересные результаты отпишусь сюда.
В том то и дело что должен а не выдает((
Включил сейчас программный FS от приемника — все работает отлично, но теперь другая проблема не могу отключить FS на приемнике)) По инструкции (перебиндевание приемника) не получается.
Будем надеяться что Фриска не зависнет))
На win8 на шаге •Нажмите на значок с кабелем или выберите пункт меню “Settings — Communications — USB” вылезает ошибка «AtLibUsbDfu.dll not found
—
C:\Program Files (x86)\Atmel\Flip 3.4.7\bin присутствует,но не находит…
—
Проблему решил так,зашел в диспетчер устройств,нашел DFU Devices и установил драйвер из папки C:\Program Files (x86)\Atmel\Flip 3.4.7
—
НО! Теперь постоянно моргает индикатор на плате красным «А» (одна длинная,две коротких вспышки)+постоянно горит индикатор Alive зеленым, приемник FLY SKY теперь как то странно мигает индикатором внутри (по идее он должен гореть постоянно при связи с пультом)?! Контроллер к АПМ планер подключается но если платой шевелить, реакции ее ориентации в программе не наблюдается? Что я сделал не так?
—
Пока вроде пашет)
Про не найденный файл. Похоже это проблема не Win8, а x64, т.к. имя папки «Program Files (x86)», а Flip возможно файл ищет в «Program Files».
Похоже что-то не так пошло. Попробуйте еще раз залить прошивку энкодера, а затем и полетную прошивку в контроллер. Такого поведения не наблюдал, если все правильно делать 🙂 Не забыли случаем снять перемычки?
Да,я повторно перезалил. Я так понимаю,сначала прошивку схватывает большая микруха (основная),а затем передает прошивку 32й меге и протокол проверки правильной заливки не реализован,а прога прошивальщик (Atmel Flip) видимо сравнивает содержимое основного контроллера,а не 32й меги. Видать дребез где то прошел и прошивка встала криво.
Сообщаю новости. Получается, версия 2.3.16 — немного некорректно себя ведет в случае подключения по РРМ SUM (может и в классике то же). При обесточивании приемника проходит сигнал ФС, и значения каналов на минимум устанавливаются только первых 4 (ставится минимум), остальное вам насыплют по 1500. Так как у меня совпало, что 1500 на канале управления полетными режимами соответствуют режиму номер 4. Соответственно — его и надо настроить как режим для ФС.
Есть вопрос. Вот например, скачал я файлик PPM_Encoder.h версии 2.3.17 (там как раз есть правки для режима РРМ). А где мне взять полную версию исходников прошивки, чтобы самому скомпилировать в Ардуино ИДЕ?
Поройтесь в папках выше. Я нашел там мануал https://github.com/diydrones/ardupilot/blob/master/Tools/ArduPPM/ATMega32U2/ppm_encoder.txt
В нем говорится, что должна быть установлена среда avr-gcc / winavr, а не Arduino.
Не понял,после прошивка энкодера,нужно заново шить контролер и по новой все калибровать?как говорит Юлиан на видео.
Не обязательно. При прошивке 32u2 влияния на 2560 нет. После прошивки требуется перекалибровка аппаратуры и настройка FS.
Нашел скомпилированную версию прошивки PPM энкодера 2.3.17 датирована декабрем 2013 года, новее вроде нет. Качать тут https://groups.google.com/group/drones-discuss/attach/6c7a2e7e07e016ad/ArduPPM_v2.3.17_ATMega32U2.hex?part=0.1&view=1
Если успею — возможно сегодня протестирую.
Спасибо. Добавил в статью.
Докладываюсь. Протестировал прошивки 2.3.16 и 2.3.17 с особым пристрастием. Не знаю, как они себя ведут в случае «классического» подключения. Меня интересовал режим PPM SUM — его и гонял.
В случае самолетной прошивки (!!!!!! ДА, ЕСТЬ РАЗНИЦА !!!!!!!!!!!) наилучшим образом себя показала прошивка 2.3.17 Нужна дополнительная настройка параметров ФС в списке полных параметров. При пропадании сигнала на самолете сначала включается «кратковременный» ФС (обычно Circle — круги), потом включается «долговременный» ФС (обычно — RTL). Один момент — вроде бы газ скидывается на 0.
При прошивке версией 16 все каналы скидываются на середину, газ скидывается на 0, срабатывает программный ФС, включается краткий ФС (circle), затем долгий ФС (RTL). При восстановлении работы приемника режим не возвращается (RTL), пока не перещелкнешь туда-сюда режим.
Эти прошивки различаются выставлением каналов РУ (уже перепуталось все в голове — кажется версия 16 ставила все каналы на середину а газ на минимум, версия 17 — все каналы на минимум а 1,2,4 — в середину.)
Но выходные значения PPM кажется сильно не менялись.
В случае коптерной прошивки — наилучшие результаты были у прошивки 2.3.16 (!!!) Логика такая: все каналы выставляем на середину (1500), газ на минимум. В этом случае можем на средний уровень РРМ (у меня это вышел полетный режим номер 4) — повесить RTL или Land.
2.3.17 просто тупо замораживает все значения и никакого ФС не включается. Что нас совсем не устраивает.
Итог: Я (!!!) буду ставить для самолета версию PPM номер 17, для коптера буду ставить версию номер 16.
НО! Нужно молиться всем богам, чтобы этот программный ФС не пригодился никогда (настраивайте аппаратный ФС!!!) — ИБО увидел столько глюков — мама дороХая! Например, если сработал программный ФС на самолете, из него не выйдет пока не перещелкнете полетный режим. Но если из режима ФС вышло, назад в него второй раз уже не зайдет. (ага!)
В коптерах вообще все управляется выставлением каналов на РУ, никакого режима ФС не включается. Короче — эту прошивку ещё править и править. Нужно сначала обсудить логику работы и только потом пытаться лезть в коды (кто бы еще отважился — мне понятно было только процентов 40-50 всего кода). А те, кто правил эту прошивку похоже сдулись (с декабря — ничего).
Сорри за дезу.
Оказывается — на самолетных прошивках не срабатывает программный ФС при работающем авторежиме.
И тут тоже выходит 16 прошивка лучше, чем 17. Потому что при восстановлении связи — сама выходит на текущий режим, не нужно ничего перещелкивать.
Резюме окончательное — ставьте прошивку PPM энкодера 2.3.16
И срочно нужен спец в программировании МК, чтобы исправить это гуано на нормальную логику!
Еще забыл написать — всё вышесказанное относится к режиму PPM SUM. Возможно в «классическом» подключении все просто волшебно — не знаю.
И ещё одно. Как обычно, информация дается в виде «AS IS» и представляет сугубо моё IMHO.
Тимур, спасибо за тесты и рассуждения. Отлично! Надо это учитывать.
Подскажите пожалуйста, выполнили перепрошивку энкодера по инструкции. Однако, решили перепроверить, произвели теже самые шаги (кроме RUN), чтение из буфера показывает только одни FF. И только после запуска прошивки, показывает все как в статье. Однако после ребута и последующего переключения в режим енкодера показывает опять одни FF.
Это нормально или что то не сохраняется?
Странно. Неужели ВЕЗДЕ стоят FF ? И в самом начале?
Теперь все отлично, как и описано.
Извиняюсь — читал статью не тем местом! Забыл сделать device — read 🙂
Делаю как описано но в диспетчере устройств определяется как «Arduino Mega 2560 (COM8)».
Это то же что и «В Windows будет обнаружено новое устройство ATmega2560 DFU» или надо прошивать загрузчик?
В этом случае надо прошивать загрузчик. А лучше оба на всякий случай.
Получил с банггуда АРМ 2.8 на черной плате (брал комплект в полном фарше, как у Юлиана в обзоре, только 2.8). Делаю перепрошивку. Столкнулся с тем, что на плате напаяны микро-гребенки и стоят джампера (по питанию и на том месте, который надо замыкать, по мануалу, первым). Сначала порадовался, а потом прочитал, что этот джампер отвечает за выбор компаса (на плате или внешний).
Короче, для того, чтобы на версии 2.8 перепрошить РРМ надо джампер ставить на средние контакты — остальное — по букварю.
ЗЫ. Может кому поможет. 🙂 Если надо фото — могу сделать, но там и так все понятно. 🙂
Вот блин, почему народ хочет извращений, а не берет обычные платы? 🙂
Спасибо за информацию. Фото надо, кому-то может так будет понятней 🙂
Ну, у меня было несколько причин взять этот набор.
1. Он, банально, дешевле.
2. На нем исправлен глюк с питанием 3.3v. Стоит «кошерный» стаб.
Есть и еще «допилы».
Зачем тогда брать плату «от Козина», а не обычную 2.5? 😉
Да, после «вскрытия» понравилось:
— присутствуют джамперочки на контактах которые Юлиан запаивал. Не надо ничего колхозить — они уже есть.
— для выбора компаса не надо резать перемычку — поставил (идущий в комплекте) джампер на уже распаянную гребенку — есть компас, убрал — пользуй внешний.
— разьемы GPS и внешнего компаса теперь рядом — нет такой «раскоряки» через всю сторону — все компактно.
— баро закрыто приклееной на крышку поролонкой. Мелочь, а приятно.
Фото:

С доводами согласен, главное, чтобы не появилось больше конструктивных глюков, как, например с плюсовой дорожкой под компасом на оригинальной плате. Может возникать унитаз при использовании питания для чего-либо от соседнего с компасом штырька.
Спасибо, на плате v2.7.2 также надо перемыкать средние контакты(даже подписаны DFU), хорошо руки не дошли на недельку раньше этим заняться, а то чуть паниковать не начал, определялось как Arduino Mega 2560 и драйвера новые ставить нехотела,(и в программе вылезала ошибка AtLibUsbDfu.dll not found) я думаю инфу про новые платы можно добавить в статью чтобы другим было проще пс
Информация по платам добавлена в статью.
Здравствуйте! Возникла проблема с прошивкой encoder’a. Всё делаю по инструкции, но когда замыкаю ресет и землю плата просто пропадает, когда размыкаю ничего нового не появляется. Что делать? Перепрошивать загрузчик?
Добрый день. Михаил, прошивайте загрузчик на ATmega32U2, а дальше опять вернетесь к самой прошивке.
Вы не сообщили, какая у вас плата. Пробуйте сделать как я — цитирую коммент от 02.06.2014
«1. Подключаем плату к компу, ждем загрузки.
2. Втыкаю пинцет в JP2 (лень было гребенку под перемычки паять)
3. Практически сразу (секунда-две — как позволяет человеческое быстродействие), втыкаю вторую перемычку (два нижних контакта на ISP)
4. Выдергиваю первую перемычку.
5. Выдергиваю вторую перемычку.
6. Плата находится в режиме работы с ATMega32U2, спокойно ставлю драйвер, спокойно прошиваю.
7. Больше никаких перемычек не выдергиваю (как в конце статьи)»
Не получилось, но всё равно спасибо.
Еще остается вариант прошить загрузчик на ATmega2560, соответственно потом и саму прошивку. Работа обоих контроллеров завязана друг на друге. Если не поможет, то грешить на железо.
Вечер добрый! Помогите разобраться! Контроллер V2.7.2 работал как часы. Стояла последняя прошивка на квадр, при очередном подключении к Миссион Планнер выдал что имеется обновление — начал обновлять. Не успев завершить обновление выскочила ошибка соединения. С того времени плата не определяется Миссион Планнером — пишет «no heatbeat packets Received».При попытке обновления софта пишет «communication Error-no connection». РРМ энкодер обновил по инструкции (на всякий случай) — всё прошло нормально. Меня беспокоит то, что перестал гореть (или мигать) красный светодиод питания.
При подключении к Usb горит один зелёный светодиод (около разъёма GPS). Что случилось? как быть?
Добрый день. Я бы не обновлялся вообще, даже если предлагает. Если все устраивает с текущей прошивкой, то летать и ничего не трогать! 🙂
Есть у нового планера глюки с загрузкой прошивки из файла, еще говорили, что и загрузка из выпадающего списка глючила. Может и с новой прошивкой такая проблема существует. А сейчас похоже и загрузчик в ATmega2560 слетел. Необходимо прошить заново.
Предлагаю взять MP постарее (1.3.17 или старее) и залить старую прошивку, на которой летали.
Нашёл MP версии 1.2.69 — он тоже контроллер не видит — Поставить новую прошивку нет возможности. Видимо придётся покупать программатор для прошивки загрузчика или можно как-то через USB прошить?
Программатор должен был быть куплен до коптера! Ну это я так… Что надо купить — в статьях о прошивке загрузчиков. Попробуйте поискать поблизости у людей, кто занимается контроллерами AVR, наверняка помогут. Если есть параллельный порт, то можно собрать на «пяти» проводах.
Спасибо, огромное за советы raefa и 5yoda5!!! Купил программатор за 190р и в две минуты вернул контроллер к жизни! Засветился он всеми светодиодами, как ёлка новогодняя! Залил последнюю прошивку. Завтра в НЕБО!!! Кстати прошивал через Anduino.
Почитайте о рекомендуемых прошивках и о глюках крайних. Ну а «последнюю», в смысле вообще последнюю, я бы ставить не стал. 🙂
Удачи!
На АРМ светодиод питания — как раз зеленый. Он называется «Alive» — то бишь, если горит — плата жива.
А красный светодиод — это светик состояния. Получается, что у вас сейчас в контроллере непонятно что, и это непонятно что не может запуститься (вместо программы инициализации контроллера — каша).
Прошейте и бут лоадер и прошивку. Причем возможно вам придется прошивку качать вручную (возможны ошибки при прошивке при скачивании через программу).
Подскажите в чем проблема. После прошивки pp-encoder квадр начал дергатся. При примерно 20% газа он то сбрасывает обороты то подымает, дергается. В чем может быть проблема?
—
Еще. Если во время калибровки регуляторов, в конце, дать газу. То все отлична работает. Если заново, отключить питани и подключить, после арминга опять начинает его колбасить.
Про уровень газа могу предположить, что можно попробовать проверить показания и откалибровать аппаратуру.
Про расколбас — проще наверно полностью сбросить настройки (setup erase, reset) и настроить все заново.
Подскажите, пожалуйста. На плате 2,6 с обратной стороны есть CH5>PPM<PPM как должна стоять перемычка для отрабатывания FS на приемнике FrSky PPM SUM ? У меня сейчас перемычка перерезана и PPM запаян на CH5. Сигнал подаю на CH5. Это верно ? Как правильно и на какой канал тогда цеплять ?
ОЙ. Я считал что для того, чтобы работать с PPM_SUM, нужно поставить перемычку (джампер) между сигналами второго и третьего каналов. И сигнал РРМ подавать на первый канал.
Что-то поменялось?
Все верно перемычка между 2 и 3 на 1 подаем PPM с обратной стороны платы ничего не трогал
А подскажите, пожалуйста, по настройке FailSafe как она делалась ? Я все пререпрошил на 16 версию. Что дальше ? При отключении приемника, подключенного по PPM SUM сигналы менее откалиброванного минимума не падают ? Кто-нибудь RSSI пробовал ? Как его подключить ?
Кто бы поэкспериментировал с прошивкой кодера для S.Bus
Попробуйте ещё в этой группе спросите, там один человек мне прошивку для sbus кидал
Вот прошивка РРМ под SBUS:
качать тут https://www.dropbox.com/s/1rk0mlbgkw32jf4/APM-sbus-ppm-v1.hex?dl=0
читать тут http://forum.rcdesign.ru/f123/thread233564-449.html#post5662209
Добрый день. Набрел на статью в попытке восстановить плату после аварии.
Имею странную ситуацию — на плате работает все, кроме PPM энкодера. Плата не видится по USB и не работают входы с приемника.
Думал слетела прошивка. Попытался восстановить по статье. Манипуляции с перемычками не дают никакого результата. Пошел восстанавливать загрузчик. В итоге он замечательно шьется и читается через USBasp. Но комп и после этого не видит плату. Манипуляции с перемычками не помогают. Светодиоды относящиеся к PPM энкодеру не светятся. В остальном плата нормально работает — подключается к Misssion Planner через FTDI переходник и видит всю периферию.
Подскажите что может быть с энкодером и куда тут можно копать дальше?
А какая была авария с этой платой?
С PPM энкодером завязаны еще цепи. Попробуйте проследить по схеме и проверить другие детали, желательно посмотреть осциллографом, что там происходит.
Самолет поймал дерево. Внешне корпус и сама плата без повреждений.
Видимо придеться брать даташит и последовательно проверять все. Но наверное проше новую плату купить. Этой все равно доверия нет.
немогу установить драйвер у меня в диспечере Meqa2560 без букв и APM 2.8
Если пишет «ATmega2560 DFU» (это PPM энкодер такое выдает), то ставить драйвер из папки Flip’а, если просто 2560, то из папки планера или Arduino.
подскажите пожалуйста!!у меня при прошивке энкодера на контролере apm 2.6 ардукоптер в программе флип при установке драйвера 2.3.16 почемуто значок c галочкой verify красного цвета.я уже несколько раз устанавливаю драйвер а значок все равно красный.что я делаю не так????
Здравствуйте! А можно таким способом прошить APM 2.8?
Заранее благодарю.
Конечно! Даже нужно! Отличие только в перемычке (см. крайнюю картинку в статье).
Ой точно)) Извините не заметил что для 2.8
Версия прошивки которая сейчас установлена на моем контроллере как раз совпадает с той версией что вы предлагаете 🙂
Получается что мне не надо ничего прошивать?
Не знаю как залить сюда картинку 🙁 так бы посмотрели сами, но я скопирую текст сюда.
01490 64 75 50 50 4D 76 32 2E 33 2E 31 36 00 30 20 00 duPPMv2.3.16.0 .
Скажите нужно ли мне мой контроллер прошивать?
Совпадает, ну значит делать ничего не надо. Если только для своего успокоения — что теперь будет сделано своими руками.
Картинки в комментариях можно добавить ссылкой на внешний ресурс.
Нужна помощь. Как прошить PPM Encoder на APMpro (мелкая копия APM 2.6) FailSafe НЕ работает. Помогите.
Петр, прошу следить за темой. http://forum.apmcopter.ru/threads/amp-2-8-vs-mini-apm-v3-1-vs-mini-apm-pro.215/#post-9742
Ответ скоро будет.
Кто нибудь еще остался на теме? у меня прошивается загрузчик на arducopter 2.8. проходит потом обнова в МП но по визарду вылетает на последней проше 3.3.3 с ошибкой sisid 1 compid 1? менял и прошивки и МП разных версий. нормально прошивается и коннектится после прошивки 2.6 но калибровка не проходит………… месяц уже сижу и начинаю думать что нужно купить другой APM
Залейте для начала 3.1-rc5 или 3.1 и попробуйтесь подключиться к терминалу. Если подключается, то запустите тест датчиков командой test. Дальше по подсказкам.
Не пользуйтесь визардом, частенько там все глючит.
Залить 3.1-rc5 через ардуино? На 2.6 после тест датчиков проходит но я не догоняю как калибровать датчики если не через Визард. У меня уже мозг не соображает что я делаю не так. Кстати при прошивке через мп на версию 2.6 горит синий диод после соединения usb, если более поздняя прошивка то красным — это плохо?
http://joxi.ru/krD14Eqt0BMJpm
http://joxi.ru/eAO0MKeh4Zwkar
капец у меня тоже контроллер питалки сгорел что ли
http://joxi.ru/bmo6dwYSMQNyPr
Казалось бы, причем тут ППМ — энкодер?
Проверяйте питание на 3.3 вольта, возможно сгорел стабилизатор. (на одном из скринов не инициализируется аксель, что бывает при улёте стабилизатора).
Простите, дальше консультировать ТУТ не буду. Ждем вас на форуме, это несложно.
…..
По-идее, комменты к статье служат не для решения вопросов пользователей, а для обсуждения контента статьи, для устранения неточностей в статье.
А идите-ка вы….. на форум 😀
Полагаю, будут заданы ещё много уточняющих вопросов, и решение-таки вы найдете.
Пока же ответ будет таким: Если у вас контроллер АРМ, то на него прошивка 3.3.3 — не встанет! Производитель поддержку АРМ прекратил на версии 3.2.1, а последующие версии для более быстрых процессоров и контроллеров типа ПиксХок.
Ок
на форуме у меня не достаточно прав для сообщений
Все правильно. Активация не пройдена. Перечитайте правила и измените имя на реальное.
У меня ситуация когда не могу подобрать драйверов , те что с программой flip в папке usb не подходят виндовс пишет что «Windows не удалось установить драйвер для Arduiono Mega 2560 DFU». Как мне поступить дальше ?
Доброго времени суток.Помоги те пожалуйста.Залил вместо нужной прошивки вот такую «ArduPPM_v2.3.16_ATMega328p_for_ArduCopter.hex»Теперь естественно не определяется плата.Как быть куда копать?
Куда залили? В 2560? Тогда поможет очистка контроллера и через ISP сторонними средствами залить загрузчик.
Да залил в 2560.А как очистить контроллер?
Изучить команды avrdude, либо воспользоваться любым прошивальщиком. Например AVR Burner или Khazama, только не помню, поддерживают ли они 2560. Ну а так не проще просто заново залить загрузчик и потом прошивку через планер?
Огромное спасибо за оперативную помошь.Все получилось
Привет всем! APM 6.2 был подключен к USB порту ноутбука. При подключении аккумулятора что-то произошло. Выключился ноутбук. После включения обнаружил что USB пот перестал работать. После этого АРМ переключил на другой порт. АРМ обнаруживается (инкодер прошивается) но не контачит с МП (‘no heartbeat packets received’)и. Регулятор напряжения показывает 3,23В. Вопрос: Я сжёг АРМ? Или можно как-то реанимировать? Как диагностировать?
Вам сюда. http://forum.apmcopter.ru/threads/net-podkljuchenija-oshibka-baro.634/
Надо посмотреть на сообщения об ошибках при подключении в терминале.
Подскажите, какой программатор нужен для перепрошивки APM 2.6
Читайте:
3.1) Прошиваем PPM-encoder. Загрузчик
4.1) Прошиваем контроллер APM. Загрузчик
PPM-encoder прошивается с FLIP 3.4.7 нормально, далее для прошивки АРМ МП не соединяется, выдает (‘no heartbeat packets received’)
Выше я вам ответил, что надо сделать.
Александр не могу открыть скины. Птшет: У Вас нет прав для просмотра этой страницы или для выполнения этого действия. Регистрацию прошел.
Друзья, можете ругать меня матом, но я нуб, поэтому спрошу, если я настроил FailSafe и при отключении питания коптер врубает RTL и летит на место взлёта, значит ничего прошивать не надо?
Лучше убедиться, что все правильно заранее, чем потом пытаться с большим трудом искать причины.
Приветствую. Прошил загрузчик енкодера по инструкции через ардуино. Теперь плата не определяется в компьютере. Это конец? Или что то можно ещё сделать?
Нет, не конец. На АРМе имеется два микроконтроллера AtMega («большая Мега» и «маленькая Мега»), к ним — два разъема ISP. Подключайтесь сначала к одному разъему ISP, заливайте загрузчик (бутлоадер), заливайте прошивку, затем к другому разъему, туда тоже бутлоадер и прошивку.
Около разъема USB распаян ISP для большой меги, внизу (около UART0) — для маленькой. Это я уточняю, чтобы не перепутали что куда заливать.
Будут проблемы — почитайте эту тему. Если идей после прочтения не возникнет, регистрируйтесь на нашем форуме, выбирайте тему и задавайте вопрос — поможем.
спасибо, буду побеждать дальше
на форуме зарегистрировался, мне не дают права отвечать в теме
Чуть-чуть подождите, админ активирует аккаунт. Я ему напишу в личку.
Ссылки на файл прошивки ArduPPM мертвые. Сейчас скачать можно здесь: ArduPPM v2.3.16 ATMega32U2 firmware for APM 2.x (recommended APM2.x)
или здесь:ArduPPM v2.3.16 ATMega32U2 firmware for APM 2.x (recommended APM2.x)
В linux (debian) проще использовать не flip а dfu-programmer !
Очистка — dfu-programmer atmega32u2 erase
Прошивка — dfu-programmer atmega32u2 flash APM-sbus-ppm-v1.hex
Проверка (в HEX) — dfu-programmer atmega32u2 dump | xxd
После этих действий, не определяется в компе, нет ком(com) порта и нет возможности подключить к МП
не подключается к Миссион Планер(mission planner)
версия 2.5.2
Не может быть такого программно. Вам сюда.
Ремонт APM. Железо
ну его можно подключить в режим DFU и опять прошить, все прошивается, еще не пробовал подключить через модем, но все диоды загораются как будто он готов к полету,
есть ощущение что каким-то образом эта прошивка отключает USB порт от обычного подключения может быть такое, так как на вид все рабочее?
до прошивки летал все нормально, не работал только ФС нормально, решил в этот же день прошить, плата чистая никаких повреждений
а можно восстановить заводскую прошивку, она сохраняется?
Это говорит о том, что физически дорожки живые.
Никак не отключает, если прошивку все-таки залили. Наверно что-то не так сделали. Сделайте очистку микросхемы через Flip и залейте прошивку заново.
Нет. Заливайте 2.3.16 и все будет хорошо.
какую сейчас попробовать?
я заливал ArduPPM_v2.3.16_ATMega328p_for_ArduCopter.hex
может эту попробовать ArduPPM_v2.3.16_ATMega32U2.hex ?
на https://code.google.com/archive/p/ardupilot-mega/downloads?page=3
не ту прошивку залил, заработало, спасибо
Все логично и просто. 🙂
Пытаюсь приделать пульт приёмник Freex к APM 2.8 . Имеется проблема с фейлсейв… Сам приёмник имеет аппаратный фейлсейф на канале переключения режимов и не сбрасывает PWM газа до 900 … а выставляет PWM либо на 1500 либо на 2000 в зависимости от положения переключателя фейлсейф… Другими словами мне либо ставить один из полётных режимов режимом фелсейф , что ограничивает колличество полётных режимов до двух… либо я не знаю что делать… ( крутилка так вообще при потере сигнала оставляет предыдущее значение pwm) При отключении питалова приёмника APM ставит по газу 900… Может найдутся спецы способные подсказать как научить Freex аппу и приёмник работать с APM ??? ( просьба не советовать купить другую аппу )
Чем вас не устраивает настройка файлсейв в мишн планере? В аппе ставите NO PULSES, в мишн планере выставляете соответствующий порог срабатывания PWM.
Кто-нибудь одолел режим SBUS на аппаратуре FLYSKY (с приемником FS-A8S)??? (пробовал на версии прошивки 2.3.17)
У меня работает только в режиме PPM (версия прошивки 2.3.16)
чтобы работал SBUS, нужна прошивка РРМэнкодера под SBUS. выше в обсуждениях есть ссылка. У меня работало через приёмник FS-A10i. Теперь пытаюсь прошить энкодер под РРМ прошивкой 2.3.16 — не работает по РРМ….
а приемник в режим PPM переключили? У меня SBUS не работал так как приемник по умолчанию был в режиме PPM, переключил в SBUS все заработало, назад видимо аналогично требуется, чтобы приемник был в режиме PPM
Попробуйте переключить приемник из режима SBUS в режим PPM
разве есть какой-то способ переключения? там набор контактов для I-BUS (SBUS) выходы/входы и 10 каналов выходов PWM/PPM. Работают параллельно. С SBUS я брал 8 каналов на APM 2.8, а на 9 и 10 PWM выходы вешал управление подвесом. Всё работало одновременно.
По вашему приемнику не скажу, а по A8S два режима, по умолчанию он находится в режиме PPM, для того, чтобы воспользоваться режимом SBUS его надо в этот режим перевести, после настройки режим запоминается, то-есть для возврата надо установить режим PPM.
SBUS прошивка версии 17.
PPM прошивка версии 16
как выполняется перевод?
По A8S так — cherkessk.su/video/w10217/
Изменение режима i-BUS / S.BUS
Когда он включен и привязан, передатчик и приемник могут изменить режим вывода на i-BUS и S.BUS, нажав и удерживая кнопку привязки в течение 2 секунд
* Светодиод выключается в течение 1 секунды, когда мигает дважды: выход i-bus MODE
* Светодиод мигает дважды, затем выключается на 1 секунду: активен выходной режим S.BUS
ну так это же IBUS/SBUS, а PPM, судя по видео тоже выходит отдельным проводом и переключения между SBUS/PPM не требуется.
Требуется, SBUS это совсем другой режим!
Посмотрите инструкцию на ваш приемник.
Жаль видео не снял о моих муках с режимами.
Для режима SBUS перемычка между 2 и 3 пинами АРМ контроллера не требуется
Я говорю о том, что IBUS/SBUS это последовательные протоколы, а PPM/PWM это аналоговые протоколы ШИМ. Это два несвязанных между собою протокола и канала на выходе приемника и переключать их между собою невозможно. Переключать вы можете iBUS и sBUS, так как они на одном канале и немного отличаются между собою.
По поводу перемычки 2-3 я знаю. Так и пользовался sBUS, без неё.
Уточните марку вашего приемника
FS-iA10b
Мне этот приемник не удалось переключить в режим S-BUS,только в PPM.
Я на этом приёмнике в режиме SBUS летал неоднократно и с переменным успехом. На нём нет какого=то метода переключения. Там параллельно две группы контактов — одни под РРМ\PWM, другие под iBUS\SBUS
а откуда сигнал снимали с разъема I-BUS (out)?
Добрый день!
Помогите пожалуйста с вопросом подключения Frsky r9mm(приемника) к APM 2.8 по PPM.Не могу понять,где на данном приемнике выход PPM для подключения к APM.(В описании приемника есть пункт согласования с Taranis по PPM,но вот на какой пин из приемника выходит PPM ,мне не понятно.
https://www.frsky-rc.com/wp-content/uploads/Downloads..
P.S. Таранис QX7 (OpenTX 2.2.2) уже забиндил с R9mm.
Заранее спасибо.
Судя по картинке — самый верхний из боковых короткой стороны, на АПМ должна быть залита прошивка 17, подавать в первый канал, перемычка между 2 и 3 каналами не нужна
Здравствуйте. Пытаюсь связать apm 2.8 c mission planer через порт телеметрии. Использовал для этих целей esp8266 и FTDi конвертер. Ничего не получается. Возможно ли проблема из-за энкодера? А точнее его прошивки.
http://forum.apmcopter.ru/threads/wifi-link-kak-deshevaja-alternativa-3dr-radio.462/
с перемычкой ничего не напутали? прям вот точно при точно?
предлагаю не смотреть ролики Хулиана и другим не советовать их смотреть 😉
jp3 надо
jp2 — это встроенный компас
// либо все индивидуально в зависимости от ревизии.
мне ковыряться — лень.
Если что найду — сообщу