Quadcopter – zmiana firmware w ESC – bootloader

pwm_servo_plugZamiast rozbudowywać poprzedni wpis o zmianie oprogramowania ESC, postanowiłem stworzyć kolejny. W moje łapki wpadły regulatory oparte o chip Atmel AVR z softem SimonK, więc opiszę jak jak uaktualnić oprogramowanie za pomocą programatora ISP, oraz w jaki sposób dokonać zmian w ustawieniach tego oprogramowania, bo niestety nie jest to tak proste jak w przypadku BLHeliSuite. BLHeliSuite wspiera też od niedawna obsługę bootloaderów – czyli wgrywanie wsadu kabelkiem sygnałowym PWM, bez żadnego lutowania, a wszystko za pomocą płytki Arduino – więc zdecydowanie warto to wszystko opisać.

Bootloader

flycolor_20a_miniNie trzeba zrywać koszulek i lutować się do maluczkich padów regulatorów aby cokolwiek w nich zmienić, można po prostu skorzystać z bootloadera który umożliwi komunikację regulatora z programatorem za pomocą kabelka sygnałowego PWM – o dziwo wrzucanie wsadu tym sposobem jest równie szybkie, a dodatkowo całkowicie bezinwazyjne i bezproblemowe. Regulator z wgranym bootloaderem podczas startu (po podpięciu zasilania) odczekuje chwilę na sygnał programatora na przewodzie PWM, i jeśli ten się pojawia, wchodzi w tryb programowania. Jeśli nie, uruchamia się normalnie. Aby w ogóle móc skorzystać z tego dobrodziejstwa, na początku trzeba nasz regulator wyposażyć w bootloader, a to możemy zrobić tylko za pomocą zwykłego programatora (ISP dla Atmel lub C2 dla Silabs) – lub, jeśli regulator jest w miarę nowy, to całkiem możliwe że jest już wyposażony w bootloader. Na początek odsyłam jednak do pierwszej części wpisu o zmianie firmware ESC.

ESC Atmel – tworzenie programatora 1wire dla SimonK

arduiono_blheliGotowe programatory to Afro USB Linker oraz Turnigy USB Linker – jednak nie musimy nic kupować, nasze arduino posłuży jako taki programator. Aby je odpowiednio zaprogramować wystarczy poprzez środowisko Arduino wrzucić projekt ArduinoUSBLinker. Aby jednak móc używać bootloadera, najpierw trzeba go umieścić w regulatorze – no chyba że jest tam od nowości. Oczywiście nie można otworzyć sobie tej furtki narzędziem, które dopiero chcemy dodać – będzie potrzebny programator ISP – i najpierw właśnie takie zwykłe programowanie ESC SimonK opiszę, a później już będzie z górki.

ESC Atmel – podłączenie programatora ISP

atmel_esc_isp_pinoutJeśli regulator nie posiada bootloadera, to jedyny sposób aby go tam umieścić, to programator szeregowy ISP. Obrazek przedstawia wyprowadzenia większości regulatorów opartych o chip Atmela, połącz je ze swoim programatorem ISP pozostawiając linię +5V niewykorzystaną. Teraz, przy okazji wrzucania nowego wsadu na mikrokontroler, umieścimy też w nim bootloader, aby kolejne aktualizacje robić kabelkiem PWM. Aby umożliwić komunikacje z płytką, zasil ją ze swojej baterii lub ze źródła 12V (lub innego jeśli pracują przy innym napięciu).

Obsługa KKMulticopter Flashtool dla SimonK

KKMulticopter Flashtool to kombajn wspierający również programowanie regulatorów Atmel. Może wydawać się skomplikowany w obsłudze, ale trzeba przez to przebrnąć aby otworzyć sobie drogę do łatwiejszych narzędzi. Opis dotyczy wersji 0.80.

KKMulticopterFlashtool
1. Programator z jakiego skorzystamy, u mnie to programator ISP który umożliwi wgranie bootloadera.
2. Port – USB lub COMx w zależności w jaki sposób programator występuje w systemie. Dla programatorów COM można wybrać jeszcze prędkość.
3. Najważniejsze – co programujemy. Wybierz z listy atmega 8-based brushless ESC 8kB flash. Jeśli chcesz dodatkowo wgrać bootloader (tylko programator ISP), wybierz opcję enable bootloader.
4. Przejdź do karty Firmware Compiler.
5. Wybierz wersję oprogramowania, najlepiej najnowszą, chyba że są jakieś przeciwwskazania.
6. Pobierz pliki źródłowe tej wersji z repozytorium online.
7. Wybierz właściwy dla danego regulatora program, w moim przypadku jest to bs_nfet – jeśli nie jesteś pewien, poszukaj informacji w sieci – nigdy nie wgrywaj innego wsadu, może być to nawet niebezpieczne.
8. Skompiluj wsad. Przed kompilacją w oknie z kodem źródłowym możesz dokonać zmian w ustawieniach, ale jest to opcja dla osób zaawansowanych.
KKMulticopterFlashtool2
9. Po zakończeniu kompilacji narzędzie zapisze plik wynikowy na dysku i przeskoczy do karty programowania. Użyj tego przycisku aby załadować wsad do regulatora.

Jeśli nie pomyliłeś się w kabelkologii, wszystko powinno przebiec pomyślnie. Jeśli wybrałeś opcję z bootloaderem, od teraz do aktualizacji wsadu możesz korzystać z bootloadera, wybierając z rozwijanej listy programatorów programator 1wire, np. Arduino USB Linker i odpowiedni port COM.

ESC Atmel i Silabs – podłączenie do programatora 1wire

arduino_usb_linkerNic skomplikowanego. Jeśli do regulatora na stałe przylutowany jest silnik, zdejmij z niego śmigło aby nie doprowadzić do niekontrolowanego uruchomienia podczas zabawy. Do połączenia Płytki arduino (zwanej dalej Arduino USB Linker) z regulatorem użyjemy tylko dwóch kabelków, masy oraz kabelka PWM, przewodu zasilającego nie ruszamy. W moim przypadku arduino UNO podłączyłem tak jak widać na fotografii – biały przewód wypiąłem z wtyczki i podłączyłem do portu PD2/INT0 (trzeci pin od prawej), a masę wpiąłem do gniazda ICSP w którym jeden pin jest masą – to wszystko. Teraz pozostaje zasilić regulator ze źródła 12V lub napięcia innego, jeśli pracuje on przy innych napięciach.

Obsługa Arduino USB Linker i RapidFLash dla SimonK

Jeśli już masz zainstalowany bootloader, do aktualizacji SimonK możesz skorzystać z dużo prostszego narzędzia jakim jest Rapid Flash które jest po prostu kolejnym rozszerzeniem dla Chrome, tak jak Cleanflight – i bardzo proste w obsłudze.

rapidflash_esc

1. Wybierz port pod jakim występuje programator Arduino USB Linker
2. Wybierz programator
3. Tak jak poprzednio, wybierz wersję oprogramowania, najlepiej najnowszą
4. Oraz odpowiedni kod dla danego regulatora.
5. Masz do dyspozycji dwie karty ustawień – basic w której nie można za wiele zepsuć, oraz advanced w której można poważnie zepsuć działanie regulatora. Są to te same ustawienia co w poprzednim narzędziu, jednak przedstawione w dużo dostępniejszy sposób.
6. W dolnym pasku możemy załadować wsad z dysku lub zapisać na dysku wsad pobrany z repozytorium.
7. Tym przyciskiem wgrywamy wsad do regulatora, jak widać u mnie w oknie statusu operacja ta przebiegła pomyślnie. U mnie z początku występowały problemy z połączeniem się do płytki arduino (zaraz po wgraniu wsadu programatora w BLHeli), pomogło zrestartowanie komputera. Jeśli płytka nie może połączyć się z regulatorem, upewnij się że nie popełniłeś błędu w połączeniach, jeśli nadal masz problem – możliwe że regulator bootloadera nie posiada – patrz poprzedni rozdział.

ESC Silabs – wgranie bootloadera przez C2

Aby całkowicie domknąć temat firmware w regulatorach, należałoby jeszcze opisać temat bootloaderów dla softu BLHeli – i to właśnie uczynię. Aby wrzucić bootloader na płytkę z układem Silabs, skorzystamy z programatora C2 Silabs który stworzyliśmy w pierwszej części tego wpisu. Wgranie bootloadera jest dziecinnie proste, wystarczy zaktualizować wsad do wersji 13.2 lub wyższej, wszystkie te wsady mają już go na pokładzie.

ESC Silabs – stworzenie programatgora 1wire dla BLHeli

Tak samo jak w przypadku tworzenia programatora C2 dla Silabs, i teraz uruchamiamy BLHeliSuite (przynajmniej 13.2) i udajemy się do zakładki Make Interfaces. Na dole wybieramy port COM pod jakim występuje arduino w naszym systemie, a w oknie Make Arduino Interface Boards wybieramy typ arduino, prędkość połączenia, a następnie klikamy na przycisk Arduino BLHeli Bootloader – arduino zostanie zaprogramowane jako interfejs 1wire dla Silabs. Jednak tym razem pinem służącym do komunikacji po stronie arduino jest PB3 (digital 11) zamiast jak poprzednio PD2 (digital 2). Cała obsługa programu BLHeliSuite w kwestii zmiany oprogramowania i ustawień się nie zmieniła, różnica jest tylko w wyborze programatora z rozwijanej listy na górze – wybieramy SILABS BLHeli Bootloader (USB/Com).

Uwaga – niektóre ESC nie będą kompatybilne sprzętowo z interfejsem 1wire, może być to dodatkowy rezystor lub tranzystor na linii PWM który uniemożliwi obustronną komunikację. Niestety z moimi Emaxami 20A nie udało mi się skomunikować, stąd brakuje tutaj z resztą zrzutu ekranu pokazującego jak to wygląda. Więcej informacji na temat adapterów 1wire i innych dla kości Silabs można znaleźć w tym dokumencie, i mówi on że zarówno Silabs jak i Atmel powinny mieć bootloader od wersji 13.2 – być może moje Emax 20A należą do tych „niekompatybilnych”.

…multicoptery – spis wszystkich tematów

5.00 avg. rating (97% score) - 2 votes

4 komentarze

  1. Jaki Kolega uzyskuje czas latania swoim multicopterem?

  2. Kamil Sroka

    Myślisz że te kilka dodatkowych amperów z nano-tech’ów coś pomoże? Też buduje 250 i się zastanawiam która będzie lepsza. Trochę mniejsza i lżejsza (no i też tańsza)
    http://www.hobbyking.com/hobbyking/store/__35842__Turnigy_1800mAh_3S_20C_Lipo_Pack_EU_Warehouse_.html
    Czy właśnie nano-tech tej pojemności np taki
    http://www.hobbyking.com/hobbyking/store/__11908__Turnigy_nano_tech_1800mah_3S_25_50C_Lipo_Pack.html
    Dodatkowo co myślisz o pochyleniu silników czymś takim?
    http://m.banggood.com/12-Degree-Inclined-Tilt-Motor-Base-Motor-Mount-8pcs-for-QAV250-p-988180.html

    • Myślę że te nano-techy będą dużo lepsze, o ile nie trafiły mi się jakieś trefne i nie popuchną, bo jeszcze na nich nie latałem. Ale są super lekkie i dadzą dobrego powera, no oczywiście kosztem czasu lotu.

      Pierwsza będzie bardzo słaba. Mam to właśnie wersji 2200 25C i po locie jest ciepłe, a lepiej żeby nie było. Tutaj 1800 20C to będzie za słabe nawet jak na 250, chyba że do spokojnego lotu / zawisu.

      Ta druga w sumie nie wiem, można by przetestować.

      Nie wiem co myśleć o tych podkładkach, mi na pewno nie są potrzebne, może kiedyś jak będę latał jak wariat :)

      Jak szukasz baterii na HK to upewnij się że patrzysz na magazyn UE, to wtedy masz wysyłkę w miarę zjadliwej cenie DHLem z Holandii. Z international to będą jaja, nie wysyłają baterii zwykłą pocztą, tylko kurierem (zobacz na ceny) a do tego masz 100% pewności że zapłacisz cło/vat jeśli się kwalifikuje cenowo. A firmie kurierskiej zapłacisz za obsługę celną.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Proszę pozostawić te dwa pola tak jak są: