Прошивки CleanFlight/BetaFlight для полетников
В теории все верно, но у меня так не встало, но у многих встало. Если не получится у меня в дневнике более сложный процесс 😃 и ссылки на видео там есть.
Решил прошить BetaFlight от borisb
Алгоритм такой
1 Качаю прошивку для CC3D
2 Выбираю BIN файл и прошиваю его с помощью OpenPilot GCS.
только не могу найти как это сделать на какой вкладке прошивать BIN?
CC3D не подключён - запускаем OP GCS - Firmware - Rescue - вот тут подключаем плату - и получаем новые кнопочки.
В этом месте очень настоятельно советую нажать Retrieve и сохранить текущую прошивку OP. Только с её помощью мне удалось вернуть CC3D на OP без танцев с переустановкой бутлоадера. Однако, это опциональный шаг.
Затем Open - выбираем скачанный раньше bin - ставим галочку - Flash. Отключаем CC3D, закрываем GCS.
3 В хроме ставлю приложение Cleanflight - Configurator
4 прошиваю уже hex файл прошивки.
И все должно работать включая автотюн ?
Шаг 4 - не нужен, ведь у нас уже стоит прошивка…
А вот вместо него готовим FTDI (ну или CP2102) и подключаем в main port. Ещё на недавнем клинфлайте у меня CC3D работал с ним по usb. А вот на бетафлайте - окончательно перестал. И слава богу - это был сущий гимор, а не работа…
На счёт того, что там в итоге работает в таком режиме, а что нет - точно не скажу сейчас уже. Так как я сделал почти одновременно два шага:
- плюнул на разъём usb и вместо него воткнул ftdi в main port,
- плюнул на совместимость с OP по прошивальщику и перепрошил с замыканием бутлоадерных пинов.
В итоге в рабочем аппарате стоит CC3D Atom в таком режиме - там всё работает, что есть в прошивке. А на втором аналогичном Атоме прошивка сделана по первому варианту (на случай, если я захочу вдруг попробовать какой-нибудь свежий форк ОП), но сам он пока никуда не подключён - проверить особо не могу.
4 прошиваю уже hex файл прошивки.
Не обязательно. У тебя уже стоит cf/bf, просто с бутлоадером от OP, т.е. недоступны некоторые функции cf/bf. Для работы через USB надо сначала подключить батарею, потом подключить USB.
Если прошьешь hex, то будут доступны все функции и не надо будет подключать батарею при работе через USB.
- плюнул на совместимость с OP по прошивальщику и перепрошил с замыканием бутлоадерных пинов.
Не обязательно переходить на hex через замыкание пинов. Это можно сделать и через сам конфигуратор cf/bf.
те итоговый алгоритм полного перехода на cf\bf для CC3D такой:
- шьём bin cf\bf через OP GS
- шьём hex cf\bf через CF Configurator
Поправьте, если неправ, и надо будет это в FAQ в CC3D тему отправить
У меня BF не залился через конфигуратор.
- запаять пятачки бутлоадера и прошить через Demonstrator GUI или через конфигуратор cf/
У меня BF не залился через конфигуратор.
Пойду откручу контроллер, похимичу =)
- имею крайнюю версию либрепилота на контроллере.
- через этот либрепилот прошиваю cf 1.10 bin
- при этом я легко могу вернуться на LP (OP)
- для коннекта по USB к контроллеру, нужно сначала подать питание от батареи
- для коннекта через UART подавать питание не нужно
- hex через USB шить не хочет, хоть подавай питание до подключения, хоть не подавай
- через UART hex шьется
- после прошивки hex для подключении по USB не обязательно подключать батарею
- через USB все-равно прошивать нельзя, оно и понятно VCP
- bf 2.1.1 hex отлично прошивается через конфигуратор.
- если мы закирпичили контроллер, то замыкаем пины и
а) прошиваем OPBL (openpilot bootloader) или hex cf/bf через Demonstrator GUI
б) ставим галочку no reboot sequence в конфигураторе и шьем hex cf/bf
з.ы.
Хотя про это уже писал неоднократно. Разве что про прошивку через USB наверняка сказать не мог.
Ещё добавлю что у меня под линуксом при прошитом hex-е с коннектом через usb при включении, а также после любой перезагрузки контроллера, необходимо выждать секунд 5-10, а затем несколько раз нажать на Connect (возможно, просто дольше выждать, но мне никогда терпения не хватало). Не знаю, на форточках также или иначе… Но вот зато через FTDI коннект всегда с первой попытки.
И вопрос тем, кто в теме про бетафлай… Заметил, что на cc3d нет Gtune. Какая там история и перспективы вопроса? Просто не влезло в прошивку? Автор в будущем обещает, или не судьба?
На форточках лично мне приходится обязательно выдергивать USB. Там фишка такая, что VCP отваливается, но конфигуратор этого не видит и контроллер остается connected. Если нажать disconnect, то в списке не будет нужного COM порта, пока не передернешь кабель. В MacOS такого нет. Ждать нужно скорее всего именно по причине того, что в системе исчезает VCP, а потом появляется + время на загрузку контроллера.
И вопрос тем, кто в теме про бетафлай… Заметил, что на cc3d нет Gtune. Какая там история и перспективы вопроса? Просто не влезло в прошивку? Автор в будущем обещает, или не судьба?
В курсе, писали. Коротко: не хватает памяти. Если шарим в теме, то читаем это github.com/borisbstyle/…/Building in Windows.md или аналогичное для Linux (с убунту проще всего, там есть тулчейны). Скачиваем исходники, в src/main/target/CC3D/target.h комментируем лишние модули типа GPS, LED, SONAR и добавляем #define GTUNE. Компилим. Изи бризи =)
-------------
CC3D betaflight 2.1.1 c GTUNE, вырезано SONAR, LED, GPS
rghost.ru/7xtwD5HzG
В курсе, писали. Коротко: не хватает памяти. Если шарим в теме, то читаем это github.com/borisbstyle/betaf...n Windows.md или аналогичное для Linux (с убунту проще всего, там есть тулчейны). Скачиваем исходники, в src/main/target/CC3D/target.h комментируем лишние модули типа GPS, LED, SONAR и добавляем #define GTUNE. Компилим. Изи бризи =)
О, спасибо! А я что-то стормозил… У меня не убунта, а суся, однако тулчейны ещё с перекомпиляций devo настроены. Да и вообще под линуксами всех дел - архив с тулчейном скачать, его bin в путь засунуть. Точно - вместо GPS должен влезть…
Пока писал - попробовал. Странно - даже без убирания чего-либо всё влезло. Штатная последняя версия из репы - 118876 байт (цифры из конфигуратора после Load Firmware Local), новая - 119864. Я, конечно, ни в чём не уверен… Но по крайней мере оно скомпилилось, загрузилось и в конфигураторе в Modes появился GTUNE…
------------
Это я имею в виду - репу локально через git pull обновил (до того неделю назад её скачал, чтоб была - привычка против разрабов из собственной конторы), дефайн вставил, make clean, make.
Ещё добавлю что у меня под линуксом при прошитом hex-е с коннектом через usb при включении, а также после любой перезагрузки контроллера, необходимо выждать секунд 5-10, а затем несколько раз нажать на Connect (возможно, просто дольше выждать, но мне никогда терпения не хватало).
Да, такая же фигня.
Я, конечно, ни в чём не уверен… Но по крайней мере оно скомпилилось, загрузилось и в конфигураторе в Modes появился GTUNE…
Если не влезает, то оно ругнётся ещё в процессе сборки.
Значит где-то порезали код. Раньше не влезало =)
А по тулчейнам фик знает. Я в инете пытался читать, как на CentOS поставить, мозги поплыли. Все ужасы рисовали. А потом статью для Ubuntu нашел, там элементарно из репозитория ставится. Хорошо была одна машина как раз на Ubuntu. А потом уже и про то, как на винде компилить прочитал.
Значит где-то порезали код. Раньше не влезало =)
А по тулчейнам фик знает. Я в инете пытался читать, как на CentOS поставить, мозги поплыли. Все ужасы рисовали. А потом статью для Ubuntu нашел, там элементарно из репозитория ставится. Хорошо была одна машина как раз на Ubuntu. А потом уже и про то, как на винде компилить прочитал.
Не, реально ничего никуда ставить не надо вообще. Проще надо быть… 😃 Скачиваем архив с нужным тулчейном из того самого места по ссылке с сайта. Кладём рядом с другими тулчейнами (в смысле - другой версии, версии старые подчас требуются). Осталось только его bin прописать в PATH. Т.е. строчки примерно такого вида:
ARM_TOOLS=/home/vasil/rc/__src__/gcc-arm-none-eabi-4_9-2015q3/bin
PATH=$ARM_TOOLS:$PATH
export PATH
Хитрый вопрос - куда их положить? Самое элементарное решение - сделать командный файл баш с этими строчками и дальнейшими make - его и запускать. Если лениво - то в автозапуск. Некоторые советуют в ~/.bashrc - но это неправильный вариант, они там дуплится начнут (если работать в линуксовом ГУИ), что некрасиво. Правильный вариант - в ~/.bash_profile, но если его изменить, то нужно перелогиниваться, что влом. Наверно, самое правильное - сделать отдельную директорию, прописать её вышеприведённым образом, а на неё ставить софт-линки текущей версии тулчейна. Но я вообще не особо спец по линуксам - задал сейчас этот вопрос парню в отделе, который у нас по линуксовой разработке главный.
Ну а потом просто make запускать с соответствующими параметрами. В принципе этот метод от разновидности линукса не должен зависеть. Равно как и от наличия/отсутствия у него правильного/неправильного тулчейна в репозитариях. По крайней мере проверял на девиэйшен и CF/BetaFlight - вполне этого достаточно.
Сорри за линуксоидный оффтопик… Надеюсь, кому-нибудь из пользователей линукса будет полезно.
CC3D betaflight 2.1.1 c GTUNE, вырезано SONAR, LED, GPS
пищалка оставлена на 6м канале? активную пищалку обязательно через транзистор надо вешать, а пассивная вообще не катит - всё так?
ещё вопрос:
как правильно делать бекап настроек для CF сейчас? - штатная команда пропускает некоторые настройки\режимы полёта. Если можно - виде ответа для FAQ (в CLI вводим команды 1 2 3 копируем вывод в блокнот - профит).
в CLI вводим команды 1 2 3 копируем вывод в блокнот - профит
dump в cli. весь выхлоп сохранить в файл. для восстановления достаточно скопировать его обратно в cli и выполнить save.
Не, реально ничего никуда ставить не надо вообще. Проще надо быть… Скачиваем архив с нужным тулчейном
Как бы слова наполовину понятные, но на деле не очень. Я с линуксом тоже не очень знаком, так что для меня это все непросто.
пищалка оставлена на 6м канале? активную пищалку обязательно через транзистор надо вешать, а пассивная вообще не катит - всё так?
Без малейшего. Я код не правил, я просто отключал добавление функций (модулей). Но по факту даже отключать ничего не надо, все и так влезает.
dump в cli. весь выхлоп сохранить в файл. для восстановления достаточно скопировать его обратно в cli и выполнить save.
Не совсем. Формально там надо еще делать переключение профилей и сохранение рейтов профилей. Но… Насколько я понимаю, cf/bf не поддерживает переключение профилей с аппаратуры, и это не очень. OP поддерживал. Так что бэкап профилей не очень то и нужная штука.
Команды были типа
set profile 1
dump rates
set progile 2
dump rates
Был пост в теме по 200-300тым квадрикам.
ещё вопрос:
как правильно делать бекап настроек для CF сейчас? - штатная команда пропускает некоторые настройки\режимы полёта. Если можно - виде ответа для FAQ (в CLI вводим команды 1 2 3 копируем вывод в блокнот - профит).
А вот на буржуйском форуме буквально намедни наткнулся на упоминание clipytool:
www.etheli.com/CF/clipytool/
По первому впечатлению - весьма полезная утилита. Которая делает ровно то, что от неё ожидаешь и чуть больше. Но головой не поручусь - я её пока всего два раза использовал на двух ненастроенных аппаратах… Ну, а клинфлайт - две недели, бетафлайт - неделю…
Что касается просто dump - этого, насколько я понял, недостаточно, так как есть ещё profile и rateprofile. С первым всё понятно, а вот смысла rateprofile я так до сих пор и не уловил. В частности - как он связан с просто_profile. Возможно, это тоже вопрос, напрашивающийся в FAQ…
Не совсем. Формально там надо еще делать переключение профилей и сохранение рейтов профилей. Но… Насколько я понимаю, cf/bf не поддерживает переключение профилей с аппаратуры, и это не очень. OP поддерживал. Так что бэкап профилей не очень то и нужная штука.
Э-э-э… Левый стик в левый нижний угол. Правый (везде по центру): влево, вверх, вправо. Соответственно, профайлы 1, 2 и 3. При этом мигает лампочкой 1-2-3 раза. Так что профайлы как раз на ходу очень даже нужны. А вот кто бы мне объяснил, зачем отдельные рейт-профайлы…
Только вот эти профили не переключаются в воздухе. Вернее можно, но сложно =) В OP по сути было 6 полетных режимов и в каждом полетном режиме можно было выбрать Bank и режим полета.
А по поводу рейтпрофайлов, может в профилях хранятся только ПИД и ПИДконтроллер, а рейты хранятся именно в рейтпрофайлах? Тогда должна быть возможность и рейтпрофайлы переключать.
Там типа так советовали
ок, всем спасибо)
Ещё вопрос: почему то не получается завести блэкбокс, хотя ранее он норм работал:
поставил галку напротив blackbox во вкладке configuration
сделал так, чтобы bb активировался на верхнем положении 3-х позиционника
поставил галку bb на вкладке Ports - logging напротив USB (пробовал и без галок, и со вторым портом - один фиг нет результата)
забил настройки в cli
set blackbox_device = 1 (писать в память контроллера)
set blackbox_rate_denom = 2 (писать каждый 2й семпл - в 2 раза уменьшаю частоту, увеличивая время записи)
в итоге:
армлю коптер трёхпозоционником
включаю bb вторым трёхпозоционником
вожу стиками, жду секнд 5
дизармлю коптер
отрубаю батарею, подрубаю к компу - во вкладке dataflash пусто (2 MB своюодного места), кнопки Save и Erase серые…
В прошлый раз армил коптер стиками - и всё работало. Сейчас пробовал и стиками армить - тоже не катит… хз что не так((
Ещё вопрос: почему то не получается завести блэкбокс, хотя ранее он норм работал: поставил галку напротив blackbox во вкладке configuration
Все таки GTune красивее настраивается чем автотюнс. Посмотрите видео, нужно просто летать, а показания пидов в результате бомбовые.
я не совсем понял, запускать g-tune нужно после взлета, а выключать и снова включать после посадки? что-то новые ПИДы сохраняются через раз(
в документации написанно
You will see the results in the GUI - the tuning results will only be saved if you enable G-Tune mode while the copter is disarmed and G-Tune was used before when armed.
буду с экспериментировать автонастройкой дальше