Рассказ в картинках про прошивку БК регуляторов EMAX 30a с помощью Arduino UNO.
Emax Simon K Series 30A Brushless ESC for Multirotor RC Quadcopter
Товар http://www.parkflyer.ru/ru/product/1732197/
Америку я не открыл, лишь делюсь собственным опытом. Статью написал, потому что не нашел подобной инструкции.
Начну издалека. На форуме, где я являюсь достаточно активным пользователем, возникла у одного человека (назовем его Олегом) проблема с регуляторами. Он купил их на Бангуде, выше привел одну ссылку на них, ниже дам ещё две ссылочки:
Emax Simonk Series 12A 20A 25A 30A 40A ESC For Quadcopter QAV250
Товар http://www.parkflyer.ru/ru/product/1558876/
( http://www.banggood.com_/Emax-Simonk-Series-12A-20A-25A-30A-40A-ESC-For-Quadcopter-QAV-250-p-918126.html - после слова ".com" убрать один пробел, даю специально ссылку на место покупки).
Так вот, Олег купил регуляторы на якобы 30 ампер, с якобы Симонком (про "якобы" позже), получил их, начал с ними ковыряться. Ну и по неосторожности столкнулся с "недокументированным режимом" при настройке регулей по пикам. Понятно, что Олег только-только начинает, но ведь инструкция к регуляторам должна соответствовать оригиналу! Короче, один регулятор остался нормальным, два регулятора были загнаны в режим с инверсным управлением (регуль с опцией "реверс"), один регуль был загнан в инверсный режим. Причем эти три были откалиброваны непонятно по-какому диапазону газа, из-за чего в меню настройки никак не входили. А карта программированияя есть не у всех (например - у меня нет, и не будет).
Помучив их немного, изучив прошивку здорового регуля, почитав описание меню, я решил их прошить (сервотестером их "вразумить" не удалось). Если верить документации на сайте (выше была ссылка), то в регуляторы залит совсем не SimonK, а обычная "самолетная" прошивка с низким таймингом управления. А у нас мультикоптеры (человек строит квадрокоптер), и нужен более быстрый отклик по управлению.
У меня уже был опыт по прошивке регуляторов на чипе АтМега прошивками SimonK и BlHeli.
Подумав, что Silabs имеет более хорошую поддержку в BlHeli, я качаю последнюю версию с их домашней странички https:/blhelisuite.wordpress.com (что-то при вставке Паркфлаер конвертирует мою ссылку, копируйте ссылку текстом).
Хорошо, вскрываем регули и смотрим, что внутри:
И ищем что-нибудь подобное в списке поддерживаемых регуляторов (в архиве с программной есть, качать второй раз необязательно, 11 мегабайт). Листал-листал-листал...и на 34 странице нашел Emax 20A - по внешнему виду очень похоже на наши "тридцадчики" (регуля на 30 ампер не оказалось, в конце статьи - разгадка почему). И подпаиваемся к пятачкам (на фото внизу, над силовой шиной четыре контактных точки). Если смотреть на фото выше, тогда слева-направо это будут контакты: 1.GND (паяем черный), 2. 3.3 вольта (я не подпаивал, но ниже ещё коснусь), 3. C2CK (паяем красный), 4. C2D (паяем белый).
В принципе, народ использует прищепку с контактами, но мне что-то не хотелось изготавливать сей девайс ради четырех регулей.
У меня получилось следующее:
Ну вот, что шить (регули с дата-проводками) и прошивку имеем (судя по описанию, это наверное всё-таки ближе к 20 амперам, нежели к 30).
Далее, чем именно шить (инструмент). Я потратил целый день, пытаясь прошить регуляторы однопроводным программатором (который просто отлично работает с регуляторами на АтМегах, позволяя настраивать регуляторы по сервокабелю), пока не узнал, что Silabs не работает по интерфейсу однопроводного программатора (если не так - поправьте меня, буду благодарен ссылке с описанием процесса). Везде было описание подготовки программатора из Ардуино УНО. Нашел ещё описание, как прошить с помощью контроллера АИОП. (ниже дам ссылку на прошивку с помощью АИОПа). Так как у меня пылилась на полке УНО, решил сделать из неё программатор.
Запускаем BLHeliSuite.exe, щелкаем на вкладку "Make Interface"
Далее, выбираем номер COM порта (у меня это COM3), тип контроллера, скорость порта и в самом конце нажимаем кнопку "Arduino 4way-interface", далее ещё немного скринов без комментариев:
(только один комментарий - прошивка MULTI нам не нужна, это для работы сразу с несколькими одновременно подключенными регуляторами)
Далее, подключаем наш новоиспеченный программатор по схеме:
Далее, сначала подключаем наш новый программатор (к компьютеру и к регулятору), а только потом подаем питание на регуль. Ремарка: надежнее всего не подавать СИЛУ на регулятор, надежнее подавать питание на тот контакт который я пропустил при подпайке к пятачкам. И это питание должно быть 3,3 вольта (будьте внимательны)! Чем этот способ лучше - когда заливаем неправильную прошивку, при подключении регуля по силовым проводам он стартует, и могут сгореть ключи (у меня один ФЕТ щёлкнул, его я потом перепаивал).
Ладно, так или иначе, подключили, на регуль в последний момент питание подали. Далее, опять идем в программу BLHeliSuite.exe, идем в меню Select Atmel/Silabs interface, выбираем тип программатора под буквой B - Silabs C2 (4-way if), далее внизу номер порта и жмем кнопку Connect
Если все сделано правильно, регулятор увидится сразу. В противном случае будет долго бегать Connecting...., И в конце концов обругается. Простите, два этих скрина я не снял.
Если регулятор не увиделся - значит "что-то пошло не так" что-то сделано было неправильно при создании программатора или при подключении регулятора.
Если там уже прошит BlHeli, то регулятор определится и покажет версию текущей прошивки, как вот тут:
(кстати, этот скрин я снял уже после успешной прошивки)
Может регулятор сам по себе определиться, но не определится версия прошивки. Как было в моем случае:
(а вот так первоначально определился наш подопытный)
Далее, собственно прошиваем регулятор прошивкой BLHeli. Выбираем тип регулятора (Emax 20A), тип прошивки (внимательно, на скрине ниже неправильно) - главный ротор вертолета (MAIN), хвостовой ротор (TAIL), мультикоптеры (MULTI). Мне нужен был MULTI как я потом уже выяснил (для роторов другой метод регулирования оборотов движка, неподходящий для мультикоптера, слишком большая пауза на первоначальный набор оборотов).
Выбираем тип прошивки, нажимаем ОК и получаем последнее китайское предупреждение:
Ну и ещё несколько скриншотов самого процесса:
Всё, регулятор прошит, далее настройка регулятора.
Я сделал такие параметры:
То есть включил Damped Light (тормоз на регуле). Я мог бы побаловаться параметром Motor Timing для более тонкой настройки регулятора под мотор (своего рода угол опережения "зажигания"), но у меня не было целевых моторов (регуляторы не мои).
Если интересно, приведу перевод основных параметров BLHeli (взято из чужой статьи - http://mcheli.blogspot.ru/2014/10/blheli-brushless-esc-firmware.html )
Приведу выдержку из статьи тут:
"
Общие параметры:
1. Startup Power - мощность импульса при старте мотора.
2. Startup RPM - частота вращения мотора при старте.
3. Startup Acceleration - ускорение разгона мотора.
4. Startup Method - метод старта мотора. Stepped - постепенно, с учетом предыдущих трех параметров, Direct - сразу.
5. Throttle Change Rate - частота обработки сигнала газа.
6. Programming by TX - разрешить программировать регулятор с пульта. Для хвостового регулятора лучше это не включать, да и для основного не всегда нужно.
7. Motor Direction - направление вращения мотора. Если мотор вращается не в нужную сторону, то просто поменять этот параметр. Для хвостового регулятора есть еще значение Bidirectional - это для систем с изменяемым направлением вращения мотора.
8. Demag Compensation - защита от срыва синхронизации. Для небольших двигателей не актуально.
9. PWM Frequency - частота входящего ШИМ-сигнала. Значение Low- в районе 8кГц, High - в районе 20кГц, Damped и Damped Light - используются для хвоста, описание ниже.
10. Motor Timing - тайминг двигателя. Low - 0 градусов, MediumLow - 8 градусов, Medium - 15 градусов, MediumHigh - 23 градуса, High - 30 градусов. Если мотор на низких оборотах начинает дергаться при резком увеличении газа, то можно попробовать увеличить тайминг.
11. Temperature Protection - защита от перегрева.
12. Input Polarity - полярность ШИМ сигнала. Если при нулевом газе мотор включает полный газ - значит полярность ШИМ нужно изменить этим параметром.
13. Beep Strenght - громкость сигнала.
14. Beacon Strenght - громкость сигнала при бездействии.
15. Beacon Delay - задержка перед подачей сигнала бездействия.
16. PPM Min Throttle - минимальное значение PPM-сигнала.
17. PPM Max Throttle - максимальное значение PPM-сигнала.
"
Когда поменяем параметры, не забываем тыкнуть кнопочку "Write Setup", чтобы перезагрузить регуль (и запустить его с новыми параметрами), нажимаем кнопочку "Restart ESC".
По самой прошивке регулей в общем-то всё. Регуляторы в итоге стали гораздо шустрее реагировать на изменения газа (видно даже на глаз при резких бросках газа сервотестера), калибровка диапазона газа делается по верхней, по средней и по нижней точке диапазона газа, плюс возможности более тонкой настройки под конкретные моторы (справедливости ради скажу, что и в старой прошивке был аналог Motor Timing'а)
Остался один момент. Arduino UNO у нас хотя сейчас и прошивается скетчами, но платка осталась с "неродным" загрузчиком. Если нам по каким-либо причинам нужно вернуть родной загрузчик, можно это сделать с помощью USBasp, подключившись к ISP разъему. Далее пойдут несколько скринов без объяснений (чтобы не быть уж совсем "капитаном Очевидность"):
Ну вот собственно и всё что хотел сказать.
Напоследок приведу фоточку веселеньких регулей, перед отправкой их владельцу (пасхальная термоусадка поверх родной):
Пшикнул Plastik'ом, положил радиатор, надел родную термоусадку, потом паcхальную, и отправил назад хозяину регулей.
Да, ещё забыл написать. В процессе выяснилось, что силовые ключи в регуле были использована на 12 ампер, стояло по два на каждой фазе (A, B,C), таким образом, реально регули оказались на 24 ампера, а по схемотехнике - 20 амперные (а не 30 амперные, как было написано на Банггуде). Вот она, Великая Китайская Лотерея :)
Если у кого-то нету Arduino Uno, то может быть можно прошить той же USBasp, или Нано или вдруг завалялась АИОП. Мне в моих исканиях помогла вот эта статья:
Прошивка TURNIGY Plush 30А с контроллером SiLabs BLHeli - AIO Flight Controller.
И вот эта статья, а так же вот этот дневничок. Ну и конечно гугл!
Если что-то непонятно, спрашивайте, если знаю - отвечу.
Отмеченые элементы необходимо выпаять это конденсатор и резистор, просто с ними возможен следующий глюк,
после прошивки они добавляют шума в сигнал уровня газа. стик газа от 0% до 50% моттор раскручивается на 100% добавляя стиком уровень - двигатель резкоостанавливается и стоит от 50% до 100% стика газа. Опускаем уровень стика до 50% мотор резко запускается на 100% оборотов.
Описанная вами переделка возможно и полезная, возможно и правильная, но немного не по теме статьи. Посему ваше изображение пусть останется в комментариях, кто будет читать, тот и в комментариях картинку посмотрит.
Спасибо, что поделились информацией.
https://ru.aliexpress.com/item/2014-New-EMAX-Multirotor-30A-Simon-K-RC-Brushless-ESC-Speed-Control-For-Multicopter-Aircraft-Free/2021460387.html?spm=2114.13010608.0.0.008mbC
Ардурина
https://ru.aliexpress.com/item/Free-Shipping-1PC-LOT-Nano-3-0-controller-compatible-with-nano-CH340-USB-driver/32386697620.html?spm=2114.13010608.0.0.lJYDWM
Прошить ардурину по этой статье не выходит. Вылетает ошибка.
Ардуина работает исправно, скетчи заливаются и исполняются, а белхели не пашет. Кто в курсе, помогите разобратся.
P.S. Остальные реги не буду прошивать. Воспользуюсь первым правилом программиста - Работает, не трогай!
Кстати, для АтМеги тоже вроде есть однопроводный интерфейс, но тоже нужно чтобы был БЛХелиевский загрузчик. Только в свойствах подключения нужно выбирать уже другой тип программатора (тип "1").
Для Atmel тоже есть, причем там может быть bootloader SimonK либо BLHeli, и BLHeliSuite спрашивает при прошивке какой из них записывать. Но по-моему ESC с Atmel для коптеров потихоньку отходят в историю, BLHeli сейчас на коне, а большинство новых ESC - SiLabs.
Как я понял - по сервокабелю можно коннектится только если прошивался БЛХели. Я слышал про подобную возможность с Симонком, несколько раз сам проверял, но ни разу не получилось.
За картинку спасибо - читающим следом она пригодится. Кстати, этот сайт (оскар) у меня дома не открывается )))) Стоит ХР (да, вот такой я слоупок), и Хром более не обновляется. И открывать этот сайт отказывается ))))))))
Спасибо!
Статья, думаю, очень полезная будет. Я сам хотел подобную написать, т.к. действительно много нюансов вылазит, да руки не дошли. Я прошивал такие регули, правда они назывались BLHeli Series и на бенгуде находятся здесь. Правда покупал на Али, т.к. получалось чуток дешевле (если кому интересно здесь). Ну судя по фотке платы, которую Вы выложили - он точно такой же (может быть разница в ключах, у меня LR7843, и судя по даташиту они ток чуть ли не до 160А держат). Прошивал правда Ардуиной Нано по описанию в BLHeli programming adapters.pdf из Manuals в BLHeliSuite и тоже прошивкой EMAX_20A_MULTI, т.к. 30А не нашел, на всякий случай через лампочку, как советуют. Ну вроде работает нормально эта прошивка. Подпаивать достаточно 2 провода: белый и красный (C2D и C2CK соответственно), а землю я брал с серворазъема.
В описании BLHeli supported SiLabs ESCs.pdf написано, что эти регули не поддерживают прошивку через серворазьем, и для того чтобы эту возможность у них включить, нужно удалить резистор и конденсатор, обведенных синими кружочками, но это увеличивает чувствительность к шумовым помехам. Т.к. плата в том мануале приведена под 20А, то я на своей не смог однознано индифицировать какой резистор и кондёр надо выпаивать, и к тому же, меня не устраивало увеличение чувствительности к помехам, так что я оставил подпаяный разьем под термоусадкой, и когда нужно прошиться, просто подсоединяюсь к нему.
Что касается ФЕТов, то не 160а, а всего лишь 12а. В даташите написано:
Если смотреть нужно не туда, с удовольствием узнаю иное мнение. Пока же, увы - эти регули могут называться с натяжкой на 25А.
А насколько я понял данный даташит, то смотреть нужно сюда:
а то, то Вы привели - это показания перетекания заряда Q, который будет при токе 12А. Правда в замечаниях они написали, что ток ограничен 30А, но все же чесные 30А они должны выдать:
Цитирую
"
слева-направо это будут контакты: 1.GND (паяем черный), 2. 3.3 вольта (запитка только мозгов регуля), 3. C2CK (паяем красный), 4. C2D (паяем белый).
"
А если смотреть на вашу последнюю фотку - тогда порядок тот же, но перечисление идет сверху вниз.
В файле " BLHeli supported SiLabs ESCs.pdf " я похожего не нашел, так что какую прошивку лить - я не знаю.
P.s. фирма EMAX.
Может тоже EMAX 20А залить?
Вот тут вроде шили XP_35A_SW .
Для безопасности (чтобы не спалить ФЕТы) запитайте от 2S и через автомобильную лампочку для фары (последовательно). Если лампа загорится ярко - сразу выключайте питание.
Сказать честно, мне эта пасхальная термоусадка по своим качествам не очень нравится...