Обсуждение и перепрошивка регуляторов (ESC) прошивками SimonK/BLHeli

Sir_Alex
ziss_dm:

Это особенности схемотехники bs_nfet регуляторов: После отключения питания все верхние ключи открываються, пока bootstrap конденсаторы держат заряд.

Спасибо! Именно такой ответ я и ожидал услышать.

ziss_dm
Shuricus:

А это в свою очередь к чему приводит?

К снижению эффективности, missfire, срыву синхронизации… 😉

Shuricus:

Дим, ну если не трудно, выложи окончательную схему с диодом для хк20. Даташит видно фигово.

Ну в общем-то ВлАс уже ответил, но повторюсь. На регуляторе надо поставить диод анодом к + сервопровода и катодом к VCC площадки программирования.

Shuricus:

Я готов написать перевод на русский, только покажите куда писать…

А на английском не готов? 😉 Ну если что волантеры разыскиваються… 😉

Shuricus
ziss_dm:

Ну в общем-то ВлАс уже ответил, но повторюсь. На регуляторе надо поставить диод анодом к + сервопровода и катодом к VCC площадки программирования.

Да ну блинский еж, я думал диод ставится в кабеле программатора. Еще диоды на регуль паять - это уже перебор.
В результате так осталось и непонятно какая финальная рабочая схема кабеля для программирования блюшек 20А.

Как тут ФАК напишешь, когда сам ничего не понимаешь??? 😃

ziss_dm:

А на английском не готов?

Готов и на английском, но с акцентом. 😃 Просто нам бы тут сначала на русском не помешало, а потом уже переведем.

ziss_dm:

А это в свою очередь к чему приводит?
К снижению эффективности, missfire, срыву синхронизации…

А на саймоновской прошивке такая-же фигня творится? Странно, что они молчат про кондеры у себя на групсах.

Вот что он пишет в последних апдейтах-

Timers are now set to absolute values precalculated by update_timing.
This avoids skew from processing overhead. There is still a little bit of
skew from the ZC filtering, but I don’t see any way around this. Also,
boards with larger sense filtering capacitors such as the F-30A line will
have slightly droopy timing as RPM increases, but this should not be a
big deal. MOTOR_ADVANCE has changed from 15 to 18 degrees, which looks
almost perfect on the 'scope for everything I have tried with.

И вообще у него очень много нового в прошивке появилось.

Simon Kirby (38):
Beep periodically when RC signal is lost (patch from alsav).
Add support for ramp-up, pulsed (regenerative) braking.
Port missing Makefile targets to BSDmakefile.
Comment and typo fixes.
Simplify and optimize rcp_int by using OCR1B instead of tracking 24 bits.
Stop using 4 registers just to avoid 4 extra cycles in PWM interrupt, and implement optional complementary PWM.
Use TIFR.OCF1B instead of OCT1B_PENDING. No OCF1B interrupt required.
Support wider calibration range all the way from 0 to MAX_RC_PULS.
Use shorter RC timeout while armed (HK i86 workaround).
BSDmakefile should work now. Waiting on avra -i option so we can drop the symlink hack.
Build up start power to PWR_MAX_START more quickly.
Sync loss avoidance, comp PWM, ZC DC bias cancellation, adjustable timing advance, and startup and timeout improvements.
Halve ZC filter time when running at 8MHz.
Add tp_8khz target for “type 1” clones that blow up at >8kHz PWM.
Fix typo and prepare for merging with Makefile.
Move BSDmakefile over to Makefile.
Fix math rounding error when subi/sbci is used for adding a constant.
Don’t accidentally turn off power for too long, and don’t forget to track timing on wait_timeout.
Allow start duty to reach PWR_MAX_START again.
Don’t wait for demagnetization during startup.
Match up the sync debug on the MOSI port with stock Mystery firmware.
Move ZC loop shifting to update_timing.
Calculate the needed motor timings when needed instead of in advance.
Move boot loader to boot.inc.
Don’t halve ZC loop count on 8MHz MCUs – the timing will already be half.
Fix powerskip regression since c09b6930b – don’t include carry in decrement.
Reduce the powerskipping timeout to twice the minimum required.
Macros for adiw/sbiw that allow any immediate. Allow <1kHz PWM again.
Calculate ZC check count on demand instead of in advance.
Remove unused TIMING_RUN.
Optimize update_timing and crash set_new_duty on the end.
Keep rc_timeout consistent when driving (no decay from RCP_TOT).
Optimize PWM halving.
Disable interrupts for a shorter period in set_ocr1a_abs.

ziss_dm
Shuricus:

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

Ну как сказать, по сравнению с необходимостью снимать пропеллеры, это меньшее зло (для меня) 😉

Shuricus:

В результате так осталось и непонятно какая финальная рабочая схема кабеля для программирования блюшек 20А.

Без power management: один резистор (RX на прамую, TX через резистор)

Shuricus:

А на саймоновской прошивке такая-же фигня творится? Странно, что они молчат про кондеры у себя на групсах.

…openpilot.org/…/10476-best-simonk-flashable-escs/

Simon:
The only possible downside with the F-30A and similar boards are that they are basically unusable for multirotors until flashed, and they have filtering capacitors on the sense lines that makes them a bit more sensitive to timing loss at extreme currents (and possibly a bit more difficult to track the demagnetization as a result). But in most cases, they’re great.

Shuricus

Ну они не так драматично описывают вред от конденсаторов как ты, нужно заметить. 😃
Но ясно, что кондеры нужно ремувать.

Дима, и я не тормоз, просто медленно понимаю 😃 - без запайки диода на сам регуль, запитать его от кабеля программатора не получится?

ziss_dm
Shuricus:

Дима, и я не тормоз, просто медленно понимаю - без запайки диода на сам регуль, запитать его от кабеля программатора не получится?

Без диода не получиться запитать мегу через серво-шнурок. 😉 Т.е. прийдеться подавать питание на батарейный вход (что в общем-то народ делает, используя USB Linker)

Shuricus

Ура! Наступила ясность! Можно писать ВИКИ!

gorbln
ziss_dm:

После отключения питания все верхние ключи открываються, пока bootstrap конденсаторы держат заряд

ОМГ… О_о
Делаю, кстати, попытку написать фак по механизму прошивки. Дело идёт медленно, но верно. Пока в черновиках.

igoralekseevru

Попробовал прошить прошивку wiiESC tgy.hex в rctimer 30a Использовал kk флеш утилиту

Неудача. Пищит странно, 5 вольт не выдает на приемник. Попробовал прошить обратно оригинальную или simonK прошивку - тоже самое.
Что делать? Коллеги, помогите!

how-eee:

Только что прошил turnigy plush 18a крайней прошивкой wiiesc. мотор крутится, все вроде нормально. на подходе еще 3 плюша и 6 hk ss 18.
Позже буду тестить по полной программе. Спасибо за прошивку и инфу.

ps еще 3 tgy успешно!

как шили? компилили прошивку или брали с kkcopter flash tool? я походу убил 2 регуля RCTimer (походу таже плюшка), прошиваются туда сюда но не работают, пищат и 5 вольт не дают на приемник, прошивка обратно не помогает

aleksas:

Поигрался сам и методом научного тыка залил в итоге tgy.hex тот же файл из папки wii-esc пиликает но мотор не крутит.

прошивка wiiESC или simonK? у меня под wiiESC такая же фигня, может ее компилить надо как-то специально?

ziss_dm
igoralekseevru:

Пищит странно

Это как? Записать можешь?

igoralekseevru:

5 вольт не выдает на приемник

Ну если дыма небыло, то вряд-ли это связано с прошивкой… 😉

Какой конфиг? Что на вход подаешь? Может он просто не армиться?

igoralekseevru
ziss_dm:

Это как? Записать можешь?

Ну если дыма небыло, то вряд-ли это связано с прошивкой… 😉

Какой конфиг? Что на вход подаешь? Может он просто не армиться?

запишу

конфиг для теста простеший: батарейка-регуль-мотор-приемник FRSKY воткнутый в регуль. включаем, пипикает, лампочка приемника не загорается (нет питания) померял вольтметром на выходе ubec-а - 0 вольт

Wishnu:


Победил-таки связку 18а рцтаймеры +4s аккум + моторы mt3506 + кастомная прошивка+ наза контроллер 😉
Simonk’овсие прошивки к сожалению пока запустить не удалось, зато удалось мультивийную. Сборка последняя из папки Trunk.

Если кому нужно - могу выложить готовый хекс, на ваш страх и риск естепственна 😃

выложите готовый хекс пожалуйста, если есть возможность поновее, у меня RCTimer 30a но как я понимаю начинка там почти одинаковая за исключением количества ключей. Я свои умудрился убить (прошиваются но не работают) в пути моторы mt3506 и уже страшно от слухов, что они очень капризные по отношению к регулям

ziss_dm
igoralekseevru:

лампочка приемника не загорается (нет питания) померял вольтметром на выходе ubec-а - 0 вольт

проверь что красный провод не обрезан. 😃

igoralekseevru
ziss_dm:

Какой конфиг? Что на вход подаешь? Может он просто не армиться?

УРА! нашел где собака порылась, оказывается он действительно не армится, совершенно случайно обнаружил, что если триммер газа загнать на верх, то происходит еще один писк и мотор можно запускать (триммера как я понял можно обратно вернуть) НО Как теперь с этим жить? каждый раз при включении триммер загонять? Как себя поведет мозг коптера при таких регулях?

И еще во время “экспериментов” пошел маленький слабый дымок из мотора (здоровый 3507 с RCTimer) тут же выключил, проверил мотор крутит, что это было?

ziss_dm:

я бы предположил, что надо убрать BEMF конденсаторы.

Как я понял по нику вы один из главных (самый главный) энтузиастов прошивки wiiESC, позвольте задать несколько вопросов
Использую KKcopterflash tool и там есть возможность выбрать опции -

  • WiiESC (8kb flash)
    • TGY Low side PWM by Ziss (никнейм знакомый какой?)
      и
  • WiiESC settings (8kb flash)
    • all firmware types
    • free flight
    • extended
    • default
    • ultra PWM
    • multiwii

1 ВОПРОС, верно ли я понимаю, что сначала заливаем саму прошивку в версии Low side PWM а потом уже по желанию сверху накатываем набор настроек? Где найти описание к этим настройкам?

2 ВОПРОС, что за мифические BEMF конденсаторы, и в каких случаях их нужно удалять?

3 ВОПРОС у меня “арминг” регуля прохолдит только на максимальном выкрученном триммере, это нормально? Зачем? Может есть возможность калибровки?

4 ВОПРОС как дела обстоят с моторами “блинчиками” MT3506 и тд в 2.0 WiiESC прошивках?

Огромное спасибо за ответы!

ziss_dm
igoralekseevru:

УРА! нашел где собака порылась, оказывается он действительно не армится, совершенно случайно обнаружил, что если триммер газа загнать на верх, то происходит еще один писк и мотор можно запускать

Или в передатчике расширить диапазон (EPA) ±125%

igoralekseevru:

Как себя поведет мозг коптера при таких регулях?

Если в мозгах настраиваються эндпоинты - то просто вводим циферки в конфигураторе мозгов. Если нет, то они обычно известны и мы конфигурируем регуляторы. (В случае KK - EPA ±125 на передатчике)

И еще во время “экспериментов” пошел маленький слабый дымок из мотора (здоровый 3507 с RCTimer) тут же выключил, проверил мотор крутит, что это было?

Трудно сказать, может быть все что угодно… 😭 Иногда горит масло в подшипниках исли раскрутить без нагрузки.

ВОПРОС, верно ли я понимаю, что сначала заливаем саму прошивку в версии Low side PWM а потом уже по желанию сверху накатываем набор настроек?

Да

Где найти описание к этим настройкам

default:
Standard RC range (+-150% EPA on most transmitters)
Valid Range   :  900us-2200us
Working Range : 1060us-1860us
Timeout       : 2.5 sec
Start Hyst.   : 5us

extended:
Extended range for MultiWii and mwc_ng
Multiwii: config.h
----------------------------------
  #define EXT_MOTOR_RANGE
  #define MINCOMMAND  1008
  #define MAXTHROTTLE 2008
  #define MINTHROTTLE 1088 // adjust to your desired Idle power.
----------------------------------
Valid Range   :  14us-2200us
Working Range :  18us-2016us
Timeout       : 2.5 sec
Start Hyst.   : 2us


free_flight:
Configuration for Free Flight Controller (reasonable idle power)
Valid Range   :  800us-2200us
Working Range : 1188us-1650us
Timeout       : 2.5 sec
Start Hyst.   : 5us


upltra_pwm:
Configuration for XAircraft Ultra PWM
Valid Range   :   14us-1400us (Spec. not defines minimum)
Working Range :  200us-1200us
Timeout       :  2.5 sec
Start Hyst.   :  0us


multiwii:
Configuration for MultiWii
Valid Range   :  900us-2200us
Working Range : 1140us-1850us
Timeout       :  2.5 sec
Start Hyst.   :  5us

Конфигурацию можно сделать свою или отредактировать существующую. Под Win32 есть “родной” Flash Tool.

2 ВОПРОС, что за мифические BEMF конденсаторы, и в каких случаях их нужно удалять?

Ну грубо говоря - если прошивка bs.hex или bs_nfet.hex то надо удалять. 😃
А что это такое, обсуждалось пару страниц назад. 😉

ВОПРОС у меня “арминг” регуля прохолдит только на максимальном выкрученном триммере, это нормально?

см. выше…

Зачем?

  1. чем шире диапазон, тем выше разрешение. 😉
  2. default - точно такой-же как RapidESC

Может есть возможность калибровки?

Есть возможность менять эндмоинты в конфигураторе. 😉

ВОПРОС как дела обстоят с моторами “блинчиками” MT3506 и тд в 2.0 WiiESC прошивках?

У меня работают MT3506 и пока никто проблем не репортил. 😉

Да, совсем забыл про важную штуку!! 😃

На регуляторах без внешнего резонатора (как у тебя), каждый раз на старте производиться автоматическая калибровка резонатора. Идея в чем: входной ШИМ на старте являеться опорным и если измеренная длительность импульсов отличаеться от ожидаемой (параметр в конфиге, 1000us для default) то частота внутреннего резонатора корректируеться.

how-eee

Тогда если епром для вия, то сколько надо минкоманд в мультивие ставить чтобы на безкварцевых правильно прошла подстройка частоты?
А если екстендет?

В екстендет рабочий диапозон длин импульсов пвм 18-2016. Правильно я понял что в вие надо ставить минкоманд 15, минтротл 18, макстротл 2016? Или если раскомментить екст_мотр_ранж, то там будут свои числа и нет смысла трогать минкомманд итд.
Как тогда с подстройкой частоты проца на турнигах?

Zoritto

подскажите новичку: регули HK F20A
на управляющих проводах феррокольца от производителя - они нужны или их можно выкинуть?
и после перепрошивки что с ними делать?

igoralekseevru
ziss_dm:

Да, совсем забыл про важную штуку!! 😃

На регуляторах без внешнего резонатора (как у тебя), каждый раз на старте производиться автоматическая калибровка резонатора. Идея в чем: входной ШИМ на старте являеться опорным и если измеренная длительность импульсов отличаеться от ожидаемой (параметр в конфиге, 1000us для default) то частота внутреннего резонатора корректируеться.

Чем эта важная штука грозит плохим?

Дмитрий с моей стороны будет сильной наглостью попросить вас скомпилить прошивку для rc timer 30a (dys30) под multiwii мозг? Сижу под маком, винду ставить ооочень геморно

kren-DEL

Доброго времени суток! Подскажите (а лучше покажите 😃 ), к чему приведёт перепрошивка регулей TURNIGY Plush 30amp Speed Controller ?
Есть ли какие проблемы с последующей работой с мегапиратом? Или сплошные Plus’Ы? 😃 насколько я понимаю, улучшается быстродействие регулей, как следствие - быстрое реагирование на мозг и быстрая стабилизация?

wmasta

Подскажите кто - нибудь, прошил 3 регулятора HK-SS20A-HW (ссылка), четвертый не хочет прошиваться:

avrdude -c usbasp -p m8 -U flash:w:tgy.hex
avrdude: warning: cannot set sck period. please check for usbasp firmware update
avrdude: error: programm enable: target doesn’t answer. 1
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.
avrdude done. Thank you.

Все соединения перепроверил 10 раз, все прозвонил, подпаивался напрямую к МК - результат один, регулятор при этом работает.
Почему мк не хочет шиться и как его заставить?