wii-esc для ESC Multistar 15A + небольшая переделка для прошивки "свистком" Turnigy USB Linker

Очень кратко 😃 Понадобилось прошить
Turnigy Multistar 15 Amp Multi-rotor Brushless ESC 2-3S, но в прошивках wii-esc его нет.

***** поправочка, есть, начиная с 6го февраля 2014 *****

* анализируем схему

* создаем HAL файл (hal/ms.h)

/**
********************************************
* Keda 12A with all FETs on PORTD          *
* Original fuses are unknown.              *
* On birdie they are lfuse:0xbf hfuse:0xc1 *
********************************************
*/

#ifndef MS_H_INCLUDED
#define MS_H_INCLUDED


//*********************
// PORT B definitions *
//*********************
#define DbgLED          5
#define DbgStr          4

#define PORTB_INIT      0
#define PORTB_DD       _BV(DbgLED) | _BV(DbgStr)

inline void DebugLEDOn()     {PORTB |= _BV(DbgLED);}
inline void DebugLEDOff()    {PORTB &= ~_BV(DbgLED);}
inline void DebugLEDToggle() {PORTB ^= _BV(DbgLED);}

inline void DebugStrOn()     {PORTB |= _BV(DbgStr);}
inline void DebugStrOff()    {PORTB &= ~_BV(DbgStr);}
inline void DebugStrToggle() {PORTB ^= _BV(DbgStr);}

//*********************
// PORT C definitions *
//*********************
#define PORTC_INIT      0
#define PORTC_DD        0

//*********************
// PORT D definitions *
//*********************

#define BpFET           7
#define CpFET           5
#define ApFET           4
#define CnFET           3
#define rcp_in          2
#define AnFET           1
#define BnFET           0

#define PORTD_INIT      0
#define PORTD_DD        (1<<ApFET)+(1<<BpFET)+(1<<CpFET)+(1<<AnFET)+(1<<BnFET)+(1<<CnFET)

inline void ApFETOn()  {PORTD |=  _BV(ApFET);}
inline void ApFETOff() {PORTD &= ~_BV(ApFET);}
inline void AnFETOn()  {PORTD |=  _BV(AnFET);}
inline void AnFETOff() {PORTD &= ~_BV(AnFET);}

inline void BpFETOn()  {PORTD |=  _BV(BpFET);}
inline void BpFETOff() {PORTD &= ~_BV(BpFET);}
inline void BnFETOn()  {PORTD |=  _BV(BnFET);}
inline void BnFETOff() {PORTD &= ~_BV(BnFET);}

inline void CpFETOn()  {PORTD |=  _BV(CpFET);}
inline void CpFETOff() {PORTD &= ~_BV(CpFET);}
inline void CnFETOn()  {PORTD |=  _BV(CnFET);}
inline void CnFETOff() {PORTD &= ~_BV(CnFET);}

#define mux_a           2
#define mux_b           3
#define mux_c           4

inline void ACInit() {
  ACMultiplexed();
}

inline void ACPhaseA() {
  ACChannel(mux_a);
}

inline void ACPhaseB() {
   ACChannel(mux_b);
}

inline void ACPhaseC() {
   ACChannel(mux_c);
}

void Board_Idle() {
};

inline void Board_Init() {
  TIMSK = 0;
  // Timer1
  TCCR1A = 0;
  TCCR1B = _BV(CS11);                 /* div 8 clock prescaler */
  PORTB = PORTB_INIT; DDRB = PORTB_DD;
  PORTC = PORTC_INIT; DDRC = PORTC_DD;
  PORTD = PORTD_INIT; DDRD = PORTD_DD;

  ACInit();
}


#endif // MS_H_INCLUDED

* добавляем в core.h следующие строки

#if (BOARD == _MS_)
  #include "hal/m8.h"
  #include "hal/ms.h"
  #include "hal/m8_int.h"
#endif

* собираем прошивку для BOARD ?= _MS_
ms.hex.zip

* прошиваем, слышим мелодию моторчика, радуемся 😃

* идем дальше, убираем инвертор, вместо него сопротивление 220 Ом, чтобы можно было прошивать USB Linker’ом

* прошиваем загрузчик, прошиваем фьюзы, заливаем основную прошивку через “свисток”, если надо заливаем еепром

готово.

www.youtube.com/watch?v=o2sl4M1Xcm0

  • 4445
Comments
Prikupets

Спасибо, буду знать про этот проект wii-esc.
Вообще, ловко в с этими платками - режите, подпаиваетесь к этим миниатюрным ножкам…

serenya

А для 30А мультистаров эта прошивка не подойдет? Сгорел рцтаймер 30А, в замен купил мультистар и сильно огорчился что нет у wii-esc под них прошивки, был уверен что есть. А оставшиеся 3 рцтаймера прошиты как раз вии-есц, хотелось бы чтоб все одинаковые были. И еще просьба есть, если прошивка не подойдет, может выручите, скомпилите? Сам я в этом не силен.

vatanuki

судя по таблице для симонов там от 10А до 30А прошивка kda.hex
следовательно подойдет и эта, но она собрана для прямого входа и надо тут выпаять инвертер, так еще и появиться возможность пользоваться свистком

serenya

Ага, спасибо, выпаяю инвертор, все регули дорабатывал под прошивку через серво разъем, скоро и свисток приедет.

serenya

Еще вопросик, чем Вы прошивали через свисток? Я прошил сначала через wii_esc_flash_v07_win32 бут, но при попытке залить прошивку и через свисток (ардуино) и через USBAsp программа ругается на неверный формат файла и ничего не пишет. Залил через Sina Prog, убрал инвертор, регуль работает, но хочется законченности с возможностью заливки через свисток, затянуть в термоусадку и забыть про тыканье в него паяльником.

vatanuki

пользуюсь wii_esc_flash_v07_win32 для прошивок, и eXtreme Burner для стирания чипа или проверки/правки фьзов

вроде в wii_esc_flash_v07_win32 есть 2 бутлодыря, один от Дмитрия и второй от симоновских, именно симоновский бут и заливаю (USB Linker bootloader (USBLinker.hex)), потом тутже в wii_esc_flash_v07_win32 прошиваю фьюзы и заливаю прошивку выбрав Turnigy USB Linker with RapidESC bootloader

serenya

У меня такая ситуевина, если открывать Ваш файл то программа ругается

кнопка записи не активна. Если предварительно скачать какую либо прошивку кнопкой Download то кнопка записи становится активной, опять выбираю Ваш файл, жму Write

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

vatanuki

похоже что у вас или нет прав на запись или нет места на диске
не делайте картинки - там лог легко копируется как текст, скиньте весь текст

serenya

Да, с правами засада, win8 обрубок с буком шел, учетка администратора, некоторые программы все равно надо принудительно запускать от админа. На всей папке стоит ридонли и никак не убирается, уже и владельца удачно сменил и ни в какую, хотя все пишется/стирается, проблем не доставляло кроме этой. Наверное попробую из под линукса сменить права. Вчера пробовал экстрим барнером загрузить, на любую прошивку ругается, а вот прога от вии усц грузит без ошибок только свои.
Поборол беду копированием прошивки в другое место, заливает без ошибок и USBAsp-ом и свистком, можно в термоусадку затягивать. Лог с ошибками думаю уже не нужен. Буду бороться с виндой за свои права😁. Вам Сергей огромное спасибо за помощь, которая была еще и моральной поддержкой, иначе бросил бы как есть.

Mike-77

Ребята, а можно ли прошить регуль используя только ISP программатор?
Зачем нужен линкер?

vatanuki

монжо, но надо раздеть регуль, подпаяться, если повезет к падам, если их нет придеться помучаться, прошить, опять одеть:)
а при свистке всего этого можно избежать:)

Mike-77

Я хочу купить для этого hobbyking.com/hobbyking/store/uh_viewItem.asp?idPr…
Получается, что этого адаптера и USB asp будет достаточно?

А свисток, я так понимаю, по любому в вашем варианте будет работать не через сигнальный разъем регуля, а на него нужно будет выводить отдельные 3 проводка, верно?

P.S. просьба сильно не пинать, т.к. я только учусь 😃

vatanuki

той приблуды будет достаточно, сам хочю себе такую когда прошиваю, но когда прошью, забываю что она мне нужна, но еще попадаються мелкие меги, туда никак этой приблудой не состыковаться:)
по поводу свстка он именно через сигнальный разъем регуля и работает, специально для этого и убираеться инвертор

Mike-77

Спасибо еще раз за ответ.
Меня смутило, что тут свисток подпаян к камню напрямую (правый верхний угол камня) rcopen.com/files/51afd9f699707300778a630e

А вы пишете, что программируется через сигнальный. Я что то недопонимаю.

vatanuki

😃 свисток слева, справа то осталось MISO MOSI SCK, на фотке показано как убрать инвертор, а не куда паять свисток, свисток это PWM вход

Mike-77

Смотрю список поддерживаемых ESC wiki.openpilot.org/display/Doc/RapidESC+Database.
Там, вроде бы есть Turnigy multistar 15A.

И еще. В данной прошивке как нибудь можно выбрать тип акков, напряжение отключения? Или они жестко заданы? Если так, то какие? Очень важно, при каком напряжении регуль отключается?

vatanuki

то куда Вы смотрите это SimonK / BLHeli, а мне больше нравиться wii-esc, это разные прошивки
и симонк со свистком не будет работать изза инвертора
про отсечку не подскажу - но вроде ее там просто нет, может в симоне появилась, не слежу за ним

Mike-77

Я имел ввиду тоже wii-esc.
Вот его оф. страничка: code.google.com/p/wii-esc/
На ней написано:

Supported Hardware:
For complete mapping betwen targets and real hardware, it is possible to use RapidESC Database. Currently tested targets:

bs.hex
bs_nfet.hex
tp.hex
tgy.hex
tp_nfet.hex
rb50a.hex
bs40a.hex

А RapidESC Database вот: wiki.openpilot.org/display/Doc/RapidESC+Database

Может я чего не понимаю?

vatanuki

посматрите в табличке рапида для MS надо kda.hex

Mike-77

ОК, спасибо. Все понятно теперь.

А вообще, для MS wii-esc лучше чем simonk?

vatanuki

ненашол отличий, заливал и то и другое (не на мультистар), тестировал нагрев и время палета - не паменялось, просто вии-есц мне очень удобно как заливать прошивки так и менять настройки, нравиться еще то что для multiwii есть разширеный конфиг, я только на нем и летелаю)
еще чтобы поменять вращение мотора в вии-есц просто ставим галочку, а для симона надо перекампиливать, это если впадлу перепаивать два проводка на маторке:)

andrey_by

а подскажи плз… залил ms.hex.zip … через USBASP на прямую в Мегу. (Multistar 20A) … при запуске мелодия есть , но нет реакции на газ… моторчик не крутиться… что не так ?

vatanuki

а EPPROM с настройками?

andrey_by

eeprom залил …

:100000001D84039808240444070000050000000034
:00000001FF

ничего не изменилось…
при включении играет мелодия и все… никакой реакции на газ.

vatanuki

чтоб не вникать в цыферки - это настройки какие именно? если extended mw то не армиться от простого пульта, потом если стоит галочка калибровки то пробуйте откалибровать, при включении газ в максимум - будет дополнительный писк - и потом вниз - тоже писк подтверждающий калибровку
и еще вопрос: инвертор по входу убран?

andrey_by

инвертор… не убран) …

попробую с калибровкой

vatanuki

тема уже не актуальна 😃 автор добавил поддержку

code.google.com/p/wii-esc/source/detail?r=521