Прошивка регуляторов на базе Silabs с помощью платы Multi Wii

Наконец- то решил начать свой дневник…

Началось все с того, что внезапно отказал регулятор на коптере: не падал, не промокал- просто отказал.
Полистав страницы этого форума и форума RCgroups я пришел к выводу, что слетела прошивка.
Благодаря статье JustACat "BLHeli для ESC с контроллером SiLabs" прояснил основные моменты, связанные с прошивкой регуляторов на данном чипе.
И сразу же столкнулся с проблемой отсутствия адаптера для прошивки Toshiba Toolstick.
Московские магазины заламывали за него просто сказочную цену, а ждать 1-2 месяца посылки из Китая не было ни времени ни желания.
Полистав ветку RC Groups наткнулся на пост #159, где описывается прошивка регуляторов данного типа с помощью стандартной платки MultiWii. Совершенно случайно дома нашалась как раз такая платка 😃
Решил попробовать повторить, а в случаи удачи, поделиться опытом с однофорумчанами.

Итак, начнем.

Виновник торжества- регулятор со слетевшей прошивкой:

И без термоусадки с лицевой

и тыльной стороны

Дальнейшее описание процесса поделю на два этапа: железо, soft и настройка.

Итак, железo:
Нам понадобится Платка Multi Wii

Я думаю, что подойдет любая платка MultiWii или Cruise SE.
Необходимо соединить выводы D11, D12 (на некоторых платах он не помечен и находится слева от D11) и “ground” на плате MultiWii c соответствующими площадки для прошивки нашего регулятора.

Схема контактных площадок моего регулятора

Красный (+5В ) соединить с D11, белый (data) c D12 , черный (ground) c любым из разъемов “ground” платы Multi Wii.

У меня получилось так

На регуляторах с другой схемотехникой расположение контактных площадок может отличаться.
Их расположение можно посмотреть в PDF файле с описанием поддерживаемых типов регуляторов
Или по таблице .
Вид платы регулятора без термоусадки доступен по ссылке в колонках “back” и “Front” таблицы.

Припаиваем три провода к пятачкам для прошивки в соответствии со схемой вашего регулятора.
Мне необходимо было прошить несколько регуляторов сразу и умчаться с подпайкой к контактным площадкам не хотелось. Поэтому я изготовил из бельевой прищепки и нескольких булавок зажим для программатора.

Получилось так

и соединил его с платой прошивальщика

Теперь подключаем регулятор к двигателю (не обязательно).

При прошивке и проверке регулятора нам будет необходимо подать силовое питание (+ и -) на регулятор.
В качестве силового питания КАТЕГОРИЧЕСКИ НЕЛЬЗЯ использовать батарею Li-Po напрямую.
Батарея подключается к регулятору последовательно с автомобильной лампочкой 12в.
Это делается для ограничения тока, что при неправильной прошивке поможет избежать возгорания регулятора и прочих неприятностей.
Также в качестве источника тока можно использовать любое слаботочное питания: блок питания с ограничением тока или, как сделал я, сборку из нескольких пальчиковых батареек от пульта.
Все. Наш регулятор готов к прошивке!
Можно переходить к следующему этапу.

Soft:

  1. Качаем архив со всем необходимым и софтом, включая файлы прошивок для разных типов регуляторов и распаковываем его в папку.
  2. Еще раз сверяем название нашего регулятора с типом и самое главное, с картинками платы нашего регулятора и выбираем файл прошивки из таблицы.
    Для моего типа регулятора прошивки не оказалось, но я нашел по фотографиям из данного руководства регулятор с полностью идентичной схемотехникой.
  3. Подключаем платку контроллера к компьютеру и устанавливаем драйвера.
    Если все прошло гладко, то в диспетчере устройств должен появиться новый COM порт. Запоминаем его номер, он пригодиться нам в дальнейшем.
    Если что- то пошло не так, то переустанавливаем драйвера, при этом не забыв удалить старые.
    Проблема с правильным определением COM порта возникала у меня на компьютере несколько раз.
    Причиной оказалась несовместимость драйверов COM порта и драйверов кабеля пульта для симулятора.
    Т.е. приходилось при прошивке или использовании пульта заново переустанавливать драйвера для устройства.
    Тестировалось несколько раз, на разных компьютерах- результат то же.
  4. Открываем папку с архивом ow-silprog-blhelitool-blhelibox-20130204 и, при подключенной к компьютеру плате Multi Wii/ запускаем программу BLHeliTool_v102.exe
  5. На вкладке “Tools” выбираем пункт “AvrBurnTool- Make owSilProg Programmer”.
  6. В окне “Select your projekt” выбираем “owSilProg on Arduino Nano (w ATmega328p)” или тот тип микросхемы контроллера, который есть у вас.
  7. Указываем номер COM порта, тот, который у нас появился после установки драйверов на платку MultiWii.
    После этого в окне “Select the bootloader/fimware” должна автоматически выбраться прошивка контроллера.
    Для моей платки это “ATmega328p @ 16MHz: owsilprog_v110_m328p_16mhz_pb3pb4.hex”

Должно получиться так

  1. Проверяем все еще раз, затем жмем “Check connection” и проверяем соединение контроллера.
  2. Если все в порядке и контроллер определился, то жмем кнопку “Burn all” и ждем окончания прошивки.
    Если пошло что- то не так, то еще раз проверяем соединение платы с компьютером, правильность установки драйверов и в пункте 7 вручную указываем путь к папке с прошивками.
    Иногда проблема определения контроллера может быть связана с большой длиной или маленьким сечением USB кабеля.
    Советую взять кабель покороче.
  3. После прошивки НЕ ЗАБЫВАЕМ, что у нас теперь не MultiWii, а программатор чипов Silabs и летать на этом без обратной прошивки на MultiWii не получиться 😃))
  4. Подключаем регулятор к программатору и перезапускаем программу.
  5. Теперь переходим на вкладку “FlashBlHeli to BESC”.
    В пункте "Hex File Directory "указываем путь к папке с прошивками
    В пункте “BESC” указываем тип регулятора
    В пункте “Revision” - ревизию платы (до конца не разобрался- просто выбрал самый последний номер)
    В пункте “Hex File” - файл прошивки нашего регулятора, если он не определился автоматически.
    В пункте “Mode” - то, как мы будем использовать регулятор ( multi- для коптеров, Tail- для вертолетов, Main- ,как я понял общий тип)
  6. На вкладке Port указываем номер COM порта, на вкладке “multiple esc mode” режим работы регулятора.
    Я указал “MAIN ESC”, по поводу остальных пунктов ничего сказать не могу"

Должно получиться так

  1. Подаем силовое питание на регулятор, жмем Verify и ждем проверки правильности соединения регулятора с программатором.
  2. Жмем “Flash” и ждем окончания прошивки.
  3. Отключаем силовое питание и программатор.
  4. Подключаем двигатель к регулятору (если ранее не был подключен).
  5. Подключаем сигнальные провода регулятора к сервотестеру или приемнику. Подавать силовое питание без подключенного сервотестера или приемника не рекомендую т.к. бывали случаи возгорания регулятора. Возможная причина- особенность прошивок Simonk.
  6. И ТОЛЬКО ТЕПЕРЬ подаем силовое питание.
    Если все прошло гладко, то вы услышите мелодию инициализации регулятора отличную от начальной.
    Если мелодия инициализации не прозвучала, то немедленно отключите регулятор и проверьте все еще раз!!!

Настройка:

  1. Подключите программатор, затем подайте силовое питание и запустите программу BLHeliTool_v102.exe.
  2. Сразу же попадаем на вкладку “Setup Basic”. Указываем номер COM порта, к которому подключен программатор и жмем “Read”. В окнах программы появятся настройки нашего регулятора.

У меня это выглядит так

при смене значения какого-либо из параметров оно подсвечивается синим

  1. Переходим на вкладку “Setup Advanced”. Здесь находятся расширенные настройки регулятора.

Выглядит так

Переводить название каждого пункта и, тем более, рекомендовать настройки не вижу смысла- они индивидуальны для каждого коптера.

Отдельно хочу отметить лишь пункт “Programming by Tx”

Включение или выключение этого параметра позволяет включить или выключить возможность калиброки газа и настройки других параметров с пульта вашей аппаратуры.
Я сам лично читаю, что настройка из программы намного быстрее, удобнее и нагляднее, но для тех, кто привык делать это с пульта могу предложить файл описания настройки регуляторов с пульта.
Вид сигналов для разных версий прошивок может отличаться.
Новые версии прошивок и их описаний можно скачать здесь.
4. По окончании всех настроек не забываем нажать кнопку “Write” и дождаться записи настроек в регулятор.
5. Отключаем силовое питание, программатор и наслаждаемся “совсем другими регуляторами”.

Напоследок напишу несколько обнаруженных мной фишек прошивки Simonk:

  • “защита от дурака”: при уровне газа выше нуля (мелодия инициализации регуляторов короткая) регулятор не запустит двигатель до тех пор, пока мы не опустим газ в ноль
  • помощь при поисках потерянного коптера: при долгом отсутствии управляющего сигнала на регуляторе (регулятор подключен, но газ на нем вы не прибавляете) регулятор начинает коротко пищать. Длительность сигналов и промежуток времени по прошествии которого регулятор начинает пищать, также настраивается из меню программы.
  • и конечно же- очень быстрый отклик, не доступный ранее 😃)

До прошивки регуляторов долго искал им замену.
Прошил и менять регуляторы сразу передумал 😃)

Надеюсь, что мой первый “блин” не комом.
Если мои заметки будут кому- то полезны. значит это все писалось не зря.

Удачных и безаварийных полетов всем!

  • 6179
Comments
lenin959

Вот. Вот!!!
Еще одна хорошая, годная статья! Значит мне писать свою уж тем более смысла нет. 😃
Только я не понял, почему Вы не заюзали ISP разъем?

SovGVD

По сути прошить то можно любой ардуинкой, а не обязательно multiwii контроллером

Andruhapes
lenin959;bt97270

Вот. Вот!!!
Еще одна хорошая, годная статья! Значит мне писать свою уж тем более смысла нет. 😃
Только я не понял, почему Вы не заюзали ISP разъем?

Потому, что не умею. В программировании и в электронике не очень силен…

Andruhapes
SovGVD;bt97276

По сути прошить то можно любой ардуинкой, а не обязательно multiwii контроллером

знаю. Просто решил описать процесс прошивки общедоступной платой- думаю у многих есть MultiWii.

lenin959
SovGVD;bt97276

По сути прошить то можно любой ардуинкой, а не обязательно multiwii контроллером

Спасибо, кэп. 😃

lenin959
Andruhapes;bt97280

Потому, что не умею. В программировании и в электронике не очень силен…

Я даже специальную колодку 3х2 соорудил для этих целей. 😃 Там много уметь не надо, просто подключить и шить. Даже если неправильно подключить, ничего не сгорит. Я на одной плюшке перепутал “полярность”, прога сказала фейлд, я перевернул колодку, а она рррраз и прошилась. 😃

leprud
lenin959;bt97270

Только я не понял, почему Вы не заюзали ISP разъем?

Ну-ка, ну-ка, покажите ка мне, где на силабсе ISP??

lenin959
leprud;bt97290

Ну-ка, ну-ка,

Что значит “Ну-ка, ну-ка,”?

покажите ка мне, где на силабсе ISP??

На силабсе нет штатного ISP разъема (я ни одного не видел). Речь идет о разъеме на контроллере.

GrAl

Извините, за оффтопик
Для совсем ленивых TOOLSTICKBA есть тут
www.atos.ru/item/2068.html

В январе брал за 600р

Shuricus
lenin959;bt97291

Что значит “Ну-ка, ну-ка,”?

На силабсе нет штатного ISP разъема (я ни одного не видел). Речь идет о разъеме на контроллере.

А зачем ИСП если через юсб гораздо удобнее!?

lenin959
Shuricus;bt97305

А зачем ИСП если через юсб гораздо удобнее!?

Ээээээ. А как юсб коррелирует в связке ИСП->силабс?

chanov

> В качестве силового питания КАТЕГОРИЧЕСКИ НЕЛЬЗЯ использовать батарею Li-Po напрямую.
Прошил 8 штук, проблем небыло … и у буржуев все тоже напрямую подключали … думаю проблема имеет место быть, но сильно преувеличена …

Andruhapes

Просто, если косяк где, то регуль сразу не загорится.
Сам спалил дав регуля так. Прошивал 6 штук. Пробовал от Li-po. ; нормально запустиись, а 2 дымок сразу после подключения дали. С батарейкой с обычной такое не произойдет.

дюс

извиняюсь, удалено…

k_ss

Спасибо за идею с прищепкой - очень помогла!