Прошивки CleanFlight/BetaFlight для полетников

vasiliy_gr
ARXITEKTOR:

Решил прошить BetaFlight от borisb
Алгоритм такой
1 Качаю прошивку для CC3D
2 Выбираю BIN файл и прошиваю его с помощью OpenPilot GCS.
только не могу найти как это сделать на какой вкладке прошивать BIN?

CC3D не подключён - запускаем OP GCS - Firmware - Rescue - вот тут подключаем плату - и получаем новые кнопочки.

В этом месте очень настоятельно советую нажать Retrieve и сохранить текущую прошивку OP. Только с её помощью мне удалось вернуть CC3D на OP без танцев с переустановкой бутлоадера. Однако, это опциональный шаг.

Затем Open - выбираем скачанный раньше bin - ставим галочку - Flash. Отключаем CC3D, закрываем GCS.

ARXITEKTOR:

3 В хроме ставлю приложение Cleanflight - Configurator
4 прошиваю уже hex файл прошивки.
И все должно работать включая автотюн ?

Шаг 4 - не нужен, ведь у нас уже стоит прошивка…

А вот вместо него готовим FTDI (ну или CP2102) и подключаем в main port. Ещё на недавнем клинфлайте у меня CC3D работал с ним по usb. А вот на бетафлайте - окончательно перестал. И слава богу - это был сущий гимор, а не работа…

На счёт того, что там в итоге работает в таком режиме, а что нет - точно не скажу сейчас уже. Так как я сделал почти одновременно два шага:

  • плюнул на разъём usb и вместо него воткнул ftdi в main port,
  • плюнул на совместимость с OP по прошивальщику и перепрошил с замыканием бутлоадерных пинов.

В итоге в рабочем аппарате стоит CC3D Atom в таком режиме - там всё работает, что есть в прошивке. А на втором аналогичном Атоме прошивка сделана по первому варианту (на случай, если я захочу вдруг попробовать какой-нибудь свежий форк ОП), но сам он пока никуда не подключён - проверить особо не могу.

cnyx
ARXITEKTOR:

4 прошиваю уже hex файл прошивки.

Не обязательно. У тебя уже стоит cf/bf, просто с бутлоадером от OP, т.е. недоступны некоторые функции cf/bf. Для работы через USB надо сначала подключить батарею, потом подключить USB.
Если прошьешь hex, то будут доступны все функции и не надо будет подключать батарею при работе через USB.

vasiliy_gr:
  • плюнул на совместимость с OP по прошивальщику и перепрошил с замыканием бутлоадерных пинов.

Не обязательно переходить на hex через замыкание пинов. Это можно сделать и через сам конфигуратор cf/bf.

TJohn7002

те итоговый алгоритм полного перехода на cf\bf для CC3D такой:

  1. шьём bin cf\bf через OP GS
  2. шьём hex cf\bf через CF Configurator

Поправьте, если неправ, и надо будет это в FAQ в CC3D тему отправить

lunohod

У меня BF не залился через конфигуратор.

cnyx
  1. запаять пятачки бутлоадера и прошить через Demonstrator GUI или через конфигуратор cf/
lunohod:

У меня BF не залился через конфигуратор.

Пойду откручу контроллер, похимичу =)

cnyx
  1. имею крайнюю версию либрепилота на контроллере.
  2. через этот либрепилот прошиваю cf 1.10 bin
  3. при этом я легко могу вернуться на LP (OP)
  4. для коннекта по USB к контроллеру, нужно сначала подать питание от батареи
  5. для коннекта через UART подавать питание не нужно
  6. hex через USB шить не хочет, хоть подавай питание до подключения, хоть не подавай
  7. через UART hex шьется
  8. после прошивки hex для подключении по USB не обязательно подключать батарею
  9. через USB все-равно прошивать нельзя, оно и понятно VCP
  10. bf 2.1.1 hex отлично прошивается через конфигуратор.
  11. если мы закирпичили контроллер, то замыкаем пины и
    а) прошиваем OPBL (openpilot bootloader) или hex cf/bf через Demonstrator GUI
    б) ставим галочку no reboot sequence в конфигураторе и шьем hex cf/bf
    з.ы.
    Хотя про это уже писал неоднократно. Разве что про прошивку через USB наверняка сказать не мог.
vasiliy_gr

Ещё добавлю что у меня под линуксом при прошитом hex-е с коннектом через usb при включении, а также после любой перезагрузки контроллера, необходимо выждать секунд 5-10, а затем несколько раз нажать на Connect (возможно, просто дольше выждать, но мне никогда терпения не хватало). Не знаю, на форточках также или иначе… Но вот зато через FTDI коннект всегда с первой попытки.

И вопрос тем, кто в теме про бетафлай… Заметил, что на cc3d нет Gtune. Какая там история и перспективы вопроса? Просто не влезло в прошивку? Автор в будущем обещает, или не судьба?

cnyx

На форточках лично мне приходится обязательно выдергивать USB. Там фишка такая, что VCP отваливается, но конфигуратор этого не видит и контроллер остается connected. Если нажать disconnect, то в списке не будет нужного COM порта, пока не передернешь кабель. В MacOS такого нет. Ждать нужно скорее всего именно по причине того, что в системе исчезает VCP, а потом появляется + время на загрузку контроллера.

vasiliy_gr:

И вопрос тем, кто в теме про бетафлай… Заметил, что на 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

vasiliy_gr
cnyx:

В курсе, писали. Коротко: не хватает памяти. Если шарим в теме, то читаем это 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.

lunohod
vasiliy_gr:

Ещё добавлю что у меня под линуксом при прошитом hex-е с коннектом через usb при включении, а также после любой перезагрузки контроллера, необходимо выждать секунд 5-10, а затем несколько раз нажать на Connect (возможно, просто дольше выждать, но мне никогда терпения не хватало).

Да, такая же фигня.

vasiliy_gr:

Я, конечно, ни в чём не уверен… Но по крайней мере оно скомпилилось, загрузилось и в конфигураторе в Modes появился GTUNE…

Если не влезает, то оно ругнётся ещё в процессе сборки.

cnyx

Значит где-то порезали код. Раньше не влезало =)
А по тулчейнам фик знает. Я в инете пытался читать, как на CentOS поставить, мозги поплыли. Все ужасы рисовали. А потом статью для Ubuntu нашел, там элементарно из репозитория ставится. Хорошо была одна машина как раз на Ubuntu. А потом уже и про то, как на винде компилить прочитал.

vasiliy_gr
cnyx:

Значит где-то порезали код. Раньше не влезало =)
А по тулчейнам фик знает. Я в инете пытался читать, как на 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 - вполне этого достаточно.

Сорри за линуксоидный оффтопик… Надеюсь, кому-нибудь из пользователей линукса будет полезно.

TJohn7002
cnyx:

CC3D betaflight 2.1.1 c GTUNE, вырезано SONAR, LED, GPS

пищалка оставлена на 6м канале? активную пищалку обязательно через транзистор надо вешать, а пассивная вообще не катит - всё так?

ещё вопрос:
как правильно делать бекап настроек для CF сейчас? - штатная команда пропускает некоторые настройки\режимы полёта. Если можно - виде ответа для FAQ (в CLI вводим команды 1 2 3 копируем вывод в блокнот - профит).

lunohod
TJohn7002:

в CLI вводим команды 1 2 3 копируем вывод в блокнот - профит

dump в cli. весь выхлоп сохранить в файл. для восстановления достаточно скопировать его обратно в cli и выполнить save.

cnyx
vasiliy_gr:

Не, реально ничего никуда ставить не надо вообще. Проще надо быть… Скачиваем архив с нужным тулчейном

Как бы слова наполовину понятные, но на деле не очень. Я с линуксом тоже не очень знаком, так что для меня это все непросто.

TJohn7002:

пищалка оставлена на 6м канале? активную пищалку обязательно через транзистор надо вешать, а пассивная вообще не катит - всё так?

Без малейшего. Я код не правил, я просто отключал добавление функций (модулей). Но по факту даже отключать ничего не надо, все и так влезает.

lunohod:

dump в cli. весь выхлоп сохранить в файл. для восстановления достаточно скопировать его обратно в cli и выполнить save.

Не совсем. Формально там надо еще делать переключение профилей и сохранение рейтов профилей. Но… Насколько я понимаю, cf/bf не поддерживает переключение профилей с аппаратуры, и это не очень. OP поддерживал. Так что бэкап профилей не очень то и нужная штука.
Команды были типа
set profile 1
dump rates
set progile 2
dump rates
Был пост в теме по 200-300тым квадрикам.

vasiliy_gr
TJohn7002:

ещё вопрос:
как правильно делать бекап настроек для CF сейчас? - штатная команда пропускает некоторые настройки\режимы полёта. Если можно - виде ответа для FAQ (в CLI вводим команды 1 2 3 копируем вывод в блокнот - профит).

А вот на буржуйском форуме буквально намедни наткнулся на упоминание clipytool:
www.etheli.com/CF/clipytool/

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

Что касается просто dump - этого, насколько я понял, недостаточно, так как есть ещё profile и rateprofile. С первым всё понятно, а вот смысла rateprofile я так до сих пор и не уловил. В частности - как он связан с просто_profile. Возможно, это тоже вопрос, напрашивающийся в FAQ…

cnyx:

Не совсем. Формально там надо еще делать переключение профилей и сохранение рейтов профилей. Но… Насколько я понимаю, cf/bf не поддерживает переключение профилей с аппаратуры, и это не очень. OP поддерживал. Так что бэкап профилей не очень то и нужная штука.

Э-э-э… Левый стик в левый нижний угол. Правый (везде по центру): влево, вверх, вправо. Соответственно, профайлы 1, 2 и 3. При этом мигает лампочкой 1-2-3 раза. Так что профайлы как раз на ходу очень даже нужны. А вот кто бы мне объяснил, зачем отдельные рейт-профайлы…

cnyx

Только вот эти профили не переключаются в воздухе. Вернее можно, но сложно =) В OP по сути было 6 полетных режимов и в каждом полетном режиме можно было выбрать Bank и режим полета.
А по поводу рейтпрофайлов, может в профилях хранятся только ПИД и ПИДконтроллер, а рейты хранятся именно в рейтпрофайлах? Тогда должна быть возможность и рейтпрофайлы переключать.
Там типа так советовали

TJohn7002

ок, всем спасибо)
Ещё вопрос: почему то не получается завести блэкбокс, хотя ранее он норм работал:

поставил галку напротив 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 серые…

В прошлый раз армил коптер стиками - и всё работало. Сейчас пробовал и стиками армить - тоже не катит… хз что не так((

korvin8
Сергей_Уж:

Все таки 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.

буду с экспериментировать автонастройкой дальше

ARXITEKTOR

Прошил CC3D mini betaflight_CC3D.bin через OpenPilot GCS.
Cleanflight - Configurator плату видит
т.к. шил bin то только при поданном питании.
Приёмник подключен в main порт
и при включении передатчика происходит отключение от CF Configurator
и до тех пор пока включен передатчик плата не определяется.
стоит отключить и всё нормалько как что надо настроить ?