Seite 1 von 27

HowTo - ESC (Regler) flashen

BeitragVerfasst: 16.07.2012 01:23:31
von muggel117
Teil 1

Das Flashen geeigneter ESCs mit SimonK-Firmware ist zurzeit ein großes Thema. Meiner Meinung nach zurecht, denn die Vorteile dieser
speziell für Multicopter entwickelten Firmware liegen auf der Hand:

Ein ESC mit SimonK-Firmware verarbeitet problemlos das 490kHz PWM-Signal mit dem eine MultiWii-basierende Flugsteuerung die ESCs ansteuert.
(Viele ESCs mit "Werks-Firmware" akzeptieren so hohen Frequenzen nicht und verweigern den Dienst)

Sehr lineare und schnelle Regelung mit 800 Schritten. (Die meisten "Serien"-ESCs haben meistens gerade mal um 100 Schritte)

Ansteuerung der Motoren mit einem 18kHz-PWM-Signal, dadurch entfällt das lästige Pfeifen der Motoren. ("Serien"-ESC um 8kHz, deutlich hörbar)

Selbst im Originalzustand absolut multicopter-untaugliche ESCs sind nach dem Flashen voll multicopter-tauglich.

Um nur einige zu nennen...

Der einzige Nachteil, wenn man es denn so nennen möchte, dieser Firmware ist, daß man für die geflashten ESCs keine Programmierkarte mehr nutzen kann.
Das ist aber eigentlich aber auch nicht nötig, denn die wichtigsten Einstellungen sind bereits in der Firmware enthalten. So ist z.B. der Unterspannungsschutz
deaktiviert. Daher ist ein Lipo-Wächter zu empfehlen. Einzig die Möglichkeit die Laufrichtung des Motors über die Programmierkarte zu ändern (was ohnehin
nicht bei jedem ESC möglich ist) habe ich anfangs vermißt. Aber auch dafür gibt es mittlerweile eine Möglichkeit... aber dazu später mehr...

So richtig ausspielen können geflashte ESCs ihre 800-Schritt-Regelung aber nur an ATmega 2560 oder ATmega 32u4 basierenden Flugsteuerungen,
da diese ein 11bit breites PWM-Signal mit 1000 Regelschritten zur Ansteuerung der ESCs ausgeben. Eine ATmega 328P basierende Flugsteuerung
gibt nur ein 7bit breites Signal mit nur 125 Regelschritten aus. Dennoch ist auch hier eine Verbesserung spürbar.
Zu empfehlen sind hier das NanoWii (ATmega 32u4) für kleinere oder rein sportliche Multicopter und der Flyduino MEGA Flight Controller (ATmega 2560)
für aufwändigere Projekte mit GPS, Baro und anderem "Schickmicki". Beide erhältlich bei http://flyduino.net/

Leider trauen sich viele nicht an das Flashen von ESCs heran, weil sie es für zu kompliziert halten oder ihnen die richtigen Informationen fehlen.
Das möchte ich mit diesem Thread ändern und eine möglichst leicht verständliche Anleitung erstellen, die es (fast) jedem mit ein wenig handwerklichem
Geschick und gutem Willen ermöglicht, seine ESCs selbst zu flashen. Glaubt mir, ES LOHNT SICH!

Der erste Schritt beim Flashen ist der Besuch dieser Seite -> https://docs.google.com/spreadsheet/ccc ... ZRlE#gid=0
Hier sind alle ESCs aufgeführt, die sich mit der SimonK-Firmware flashen lassen. Desweiteren findet man hier Informationen über das zu benutzende HEX-File.
Den ESCs sind Links zugeordnet, auf denen zu sehen ist, wo die zum Anschluß des ISP (In System Programmer) benötigten Pins VCC, GND, SCK, MOSI,
MISO und RES abgegriffen werden können. Außerdem kann man anhand der Bilder kontrollieren, ob man den richtigen ESC vorliegen hat oder auch einen
evtl. nicht in der Liste aufgeführten ESC einem Typ zuordenen. Gerade unsere billigen China-ESCs werden häufig unter etlichen Bezeichnungen verkauft,
doch wenn man den Schrumpfschlauch abgenommen hat, findet man "alte Bekannte" wieder...
Ein gutes Beispiel ist der Mystery BlueSeries 12A, der auch als BlackMantis 12A und HobbyKing BlueSeries 12A verkauft wird. In der Liste ist jedoch nur der
HobbyKing BS 12A aufgeführt...

Ist der passende ESC, das passende HEX-File und die Pinbelegung bekannt, geht es darum, den Kontakt herzustellen.
Hier gibt es verschiedene Möglichkeiten. Im günstigsten Fall sind die Anschlüsse des ISP-Headers als kleine Pads an Rand der Platine herausgeführt.
Manchmal sind die Pads auch auf der Platine verstreut. Im ungünstigsten Fall gibt's gar keine Pads und man muß direkt an den ATmega ran...

Ich persönlich bevorzuge das direkte Anlöten der Kabel.

Löten01.jpg

Löten02.JPG


Für die ESCs mit einer Anschlußleiste am Rand kann man einen Adapter bauen (Achtung - Reihenfolge der Pins kann variiren!)

Adapter01.jpg

Adapter02.jpg


Und dann gibt es noch die "Vodoo-Methode" bei der der Kontakt mit Nadeln hergestellt wird. Dies ist die universellste Methode, bedarf aber
etwas mehr Vorarbeit, da die Konstruktion erst mal gebaut werden muß.

Vodoo01.jpg


Tilman (r0sewithe) hat's mal wieder auf die Spitze getrieben.

Vodoo02.gif
Vodoo02.gif (268.88 KiB) 51810-mal betrachtet


Wenn man den ISP-Anschluß mit einer der o.g. Möglichkeiten hergestellt hat, fehlt noch der Anschluß zum Computer. Benötigt wird ein ISP-Adapter.
Davon gibt es viele und noch mehr Clone der etablierten Markengeräte. Ich möchte an dieser Stelle drei nennen.

Der extrem günstige vom Chinamann:
USBasp AVR Programming Device for ATMEL proccessors -> http://hobbyking.com/hobbyking/store/uh ... &aff=13680
Die mittlere Preisklasse von Sparkfun:
Pocker AVR Programmer -> http://www.sparkfun.com/products/9825
Der hochwertige von Atmel:
Atmel AVR ISP mkII Programmer -> http://www.watterott.com/de/Atmel-AVR-ISP-MKII-USB

Als nächstes wird ein Programm benötigt, mit dem das HEX-File auf den ATmega geschrieben wird. Hier gibt es mehrere Möglichkeiten.
Wer mit AVRStudio und AVRDude umzugehen weiß, kann natürlich auch gerne damit arbeiten, da das hier aber eine Anleitung für Einsteiger ist
und möglichst einfach gehalten werden soll, kommt hier ein anderes Programm zum Einsatz:

Das KKmulticopter Flash Tool von lazyzero. Christian hat das Tool ursprünglich zum einfachen Update von KK Multicopter-basierenden Boards entwickelt,
es dann aber auch für das Flashen von atmel-basierenden ESCs erweitert. Das Geniale an diesem Tool ist, daß es die ganze Sache deutlich vereinfacht.
Christian stellt auf seinem Server immer die aktuellste Firmware zur Verfügung. Das Tool lädt das ausgewählte HEX-File automatisch vom Server.
Außerdem stellt Christian auf seinem Server zu jedem normalen HEX-File eine reverse Version zur Verfügung, mit der man dann ganz leicht die Laufrichtung
des Motors umkehren kann. Sehr wichtig für die saubere Kabelverlegung...
Download -> http://lazyzero.de/en/modellbau/kkmulticopterflashtool
Das Programm benötigt Java 6 oder höher. Download -> http://www.java.com/de/download/manual.jsp

Benötigt werden je nach ISP-Adapter noch die richtigen Treiber!
Für den USBasp AVR -> http://www.fischl.de/usbasp/usbasp-wind ... -05-28.zip
Für den Pocket AVR Programmer -> http://www.sparkfun.com/datasheets/Prog ... driver.zip
Für den Atmel ISP mkII -> http://www.mightyohm.com/blog/wp-conten ... .2.1.0.zip

GANZ WICHTIG!!! Falls auf eurem System (Windows PC) schon AVRStudio installiert ist, muß der Jungo-Treiber für den AVRISPmkII ENTFERNT werden!!

Wer das nicht möchte, muß entweder einen anderen PC verwenden oder alternativ ein weiteres Windows parallel auf seinem PC installieren.
Sonst kommt es definitiv zu Treiberproblemen, was ja unter Windows nix neues ist...

Gestartet wird das KKmulticopter Flash Tool über das File "kkMulticopterFlashTool.cmd", da es sich um eine Java-Anwendung handelt, gibt's keine EXE.

USB.jpg
USB.jpg (244.86 KiB) 51809-mal betrachtet


So werden die Einstellungen vorgenommen.

AVR ISP.jpg


Während des Flashens sollte der ESC mit einem Motor verbunden sein, um die am Ende des Flashens ausgegebene Tonfolge wiedergeben zu können.

Einige ISP-Adapter versorgen den ATmega während des Flashens selbstständig mit Spannung (z.B. der USBasp AVR), andere (z.B. der Atmel AVR ISP mkII) erwarten,
daß der ATmega spannungsversorgt ist. Dies sollte aber aus der Anleitung des Programmers hervorgehen.

Wie auch immer, versorgt den ESC während des Flashens oder dem anschließenden Funktionstest AUF KEINEN FALL MIT EINEM LIPO!!!
Wenn ihr das falsche HEX-File geflasht habt, z.B. eines für einen p/n-FET bestückten auf einen nur n-FET bestückten ESC, kann das schon
der "Ready-Beep" des ESC in einem "schönen Feuerchen" enden!! Leider weiß ich da genau, wovon ich spreche... :oops:

Benutzt bitte ein Netzteil mit Strombegrenzung. 7-9 Volt mit 1 Ampere reichen für einen Probelauf ohne Last vollauf. Wenn dann ein Fehler vorliegt,
kann nix passieren. Das Netzteil geht in die Strombegrenzung und das war's. 1A reicht nicht, um einen ESC zu killen...

Beim Funktionstest ist es außerdem sehr praktisch, einen Empfänger zur Hand zu haben, der an der Funke mit einem Profil gebunden ist, bei dem
der Gaskanal auf die beim Multicopter benötigten 1000 - 2000 eingestellt ist. Manche ESCs verweigern nach dem Erstflash ihren Dienst, wenn
der Gasweg nicht eingelernt ist. Das Einlesen geht wie bei ESCs üblich: Funke an, Gas auf Vollgas, ESC spannungsversogen, BEEP vom ESC,
Gas auf Null, BEEP-BEEP vom ESC, anschließend Ready-Beep (Dreiklang) und fertig.

Ende Teil 1

Re: HowTo - ESC (Regler) flashen

BeitragVerfasst: 16.07.2012 01:24:08
von muggel117
Teil 2

Ab der Firmware Version 2012-06-01 (aktuell ist 2012-06-10) hat SimonK einen Bootloader in seine Firmware eingebaut.
Dieser muß beim Flashen allerdings extra aktiviert werden.
Wenn das Flashen mit dem im ersten Teil vorgestelltem KKmulticopter Flash Tool von lazyzero und der im Screenshot gezeigten Einstellung
"atmega 8-based brushless ESC + enable Bootloader (8kB flash)" durchgeführt wurde, ist der Bootloader bereits aktiv.

Sinn und Zweck dieses Bootloaders ist folgener, er ermöglicht zukünftige Firmwareuploads über das Servokabel des ESC, es muß also nach dem Erstflash via ISP für weitere Uploads keine
ISP-Verkabelung mehr hergestellt werden. Ein solcher Upload muß nicht unbedingt ein Update auf eine neuere Firmwareversion sein. Es kann auf diese Weise auch die Laufrichtung des Motors
geändert werden, indem man einfach eine reverse Form der Firmware aufspielt. Ganz einfach im eingebauten Zustand und ohne den ESC wieder mit Lötkolben oder Nadeln zu traktieren.

Für dieses Feature ist allerdings ein weiteres Stück Hardware erforderlich. Benötigt wird der Turnigy USB Linker -> http://www.hobbyking.com/hobbyking/stor ... duct=10628
Für unter 10$ incl. Versand ein Musthave...

Den benötigten Treiber gibt's hier -> http://www.silabs.com/products/mcu/Page ... ivers.aspx
Wichtig, zuerst den Treiber installieren und dann den USB Linker an den PC anschließen!
Nachdem der USB Linker vom System erkannt und eingebunden wurde, sollte er im Gerätemanager sichtbar sein. Nummer des COM-Ports bitte merken.

COM.jpg
COM.jpg (211.74 KiB) 51807-mal betrachtet


Da der USB Linker als serielle Schnittstelle eingebunden wird, muß jetzt auch die serielle Version des KKmulticopter Flash Tools gestartet werden.
"kkMulticopterFlashTool_SERIAL.cmd"

SER.jpg
SER.jpg (246.12 KiB) 51807-mal betrachtet


So werden die Einstellungen vorgenommen.

USB_Linker.jpg



So, USB Linker steckt im USB-Port des PC und das KKmulticopter Flash Tool ist gestartet und richtig eingestellt, das richtige HEX-File ist ausgewählt.
Als Nächstes muß die Verbindung zwischen USB Linker und dem ESC hergestellt werden.

Dabei ist folgendes zu beachten, die PLUS-Leitung vom Servoanschluß darf NICHT mit dem USB-Linker verbunden werden!

Sinnvollerweise baut man sich hierfür aus einem Servoverlängerungskabel einen Adapter, bei dem die Plusleitung weggelassen wird.
Bei dieser Aktion kann man die verbleibenden 2 Leitungen gleich auf 60-80cm verlängern. So kommt man auch an bereits im Multicopter verbaute ESCs gut ran.

So sieht mein Adapter aus

USB Linker Adapter.jpg


Der letzte Schritt vor dem Flashen ist, den ESC mit Spannung zu versorgen. Auch an dieser Stelle, KEINEN LIPO VERWENDEN!!! (Gründe siehe Teil 1)

Der eigentliche Flashvorgang verläuft genau so wie beim Erstflash via ISP, nur deutlich langsamer und natürlich ohne das Aktivieren des Bootloaders.

Wer sich weiterführend mit diesem Thema beschäftigen möchte, dem empfehle ich den mittlerweile recht großen Thread auf rcgroups http://www.rcgroups.com/forums/showthread.php?t=1513678

Re: HowTo - ESC (Regler) flashen

BeitragVerfasst: 16.07.2012 08:34:02
von Crizz
Super Anleitung, Frank :thumbright: - ich hab diesen Beitrag mal mit im Heli-Wiki ( WiiCopter ) verlinkt, damit man ihn direkt wiederfindet

Re: HowTo - ESC (Regler) flashen

BeitragVerfasst: 16.07.2012 09:20:08
von -Didi-
Animiert durch Deinen Thread habe ich jetzt die notwendigen Programmer bei HK bestellt.
Danke für die klasse Anleitung!

Re: HowTo - ESC (Regler) flashen

BeitragVerfasst: 16.07.2012 11:20:39
von Zuse
moin Frank,
auch meinen Dank für diese Anleitung!

muggel117 hat geschrieben:GANZ WICHTIG!!! Falls auf eurem System (Windows PC) schon AVRStudio installiert ist, muß der Jungo-Treiber für den AVRISPmkII ENTFERNT werden!!

Wer das nicht möchte, muß entweder einen anderen PC verwenden oder alternativ ein weiteres Windows parallel auf seinem PC installieren.
Sonst kommt es definitiv zu Treiberproblemen, was ja unter Windows nix neues ist...


dieser Hinweis gilt nur bei Verwendung des KK-Multicopter Flashtools, nicht wahr?
Wenn ich das AVRStudio nehme, werfe ich keinen Treiber raus, oder?

Gruss Manfred

Re: HowTo - ESC (Regler) flashen

BeitragVerfasst: 16.07.2012 11:23:42
von Agrumi
-Didi- hat geschrieben:Animiert durch Deinen Thread habe ich jetzt die notwendigen Programmer bei HK bestellt.
Danke für die klasse Anleitung!


jup, hab auch gerade bestellt. :oops: :P

danke Frank. :thumbright:

Re: HowTo - ESC (Regler) flashen

BeitragVerfasst: 16.07.2012 11:50:24
von -Didi-
Agrumi hat geschrieben:jup, hab auch gerade bestellt.

:)

Re: HowTo - ESC (Regler) flashen

BeitragVerfasst: 16.07.2012 13:07:58
von muggel117
Zuse hat geschrieben:moin Frank,
auch meinen Dank für diese Anleitung!

muggel117 hat geschrieben:GANZ WICHTIG!!! Falls auf eurem System (Windows PC) schon AVRStudio installiert ist, muß der Jungo-Treiber für den AVRISPmkII ENTFERNT werden!!

Wer das nicht möchte, muß entweder einen anderen PC verwenden oder alternativ ein weiteres Windows parallel auf seinem PC installieren.
Sonst kommt es definitiv zu Treiberproblemen, was ja unter Windows nix neues ist...


dieser Hinweis gilt nur bei Verwendung des KK-Multicopter Flashtools, nicht wahr?
Wenn ich das AVRStudio nehme, werfe ich keinen Treiber raus, oder?

Gruss Manfred


Korrekt Manfred, wenn du mit AVRStudio arbeiten willst, müssen die Jungo-Treiber natürlich drauf bleiben.
Wenn du das KKmulticopter Flash Tool nicht benutzt, muß du das Aktivieren des Bootloaders allerdings manuell erledigen!
In dem großen Ami-Thread http://www.rcgroups.com/forums/showthread.php?t=1513678 so um Seite 264 geht's darum,
welche Fuse-Bits für's Aktivieren zu setzen sind.
Kenne mich damit nicht so wirklich aus und benutze daher das KKmulticopter Flash Tool.

Re: HowTo - ESC (Regler) flashen

BeitragVerfasst: 17.07.2012 11:15:08
von Schachti
gibt es denn auch rechts und links drehende ??

ich kann da leider nicht finden :(

Re: HowTo - ESC (Regler) flashen

BeitragVerfasst: 17.07.2012 15:30:27
von McClean
Hi,

ja gibt es. Zumindest in dem Flashtool gibts die Firmware auch als (Reversed).

Gruss Steffen

Re: HowTo - ESC (Regler) flashen

BeitragVerfasst: 17.07.2012 16:18:10
von DUKE40
Wenn ich in der Liste nichts übersehen habe, sind meine ESCs nicht dabei. Ich habe die T-Motor 10A von Flyduino.
Tja, dann wird mein Copter weiterhin ohne SimonK Firmware fliegen :cry:

Re: HowTo - ESC (Regler) flashen

BeitragVerfasst: 17.07.2012 18:10:20
von muggel117
Schachti hat geschrieben:gibt es denn auch rechts und links drehende ??

ich kann da leider nicht finden :(

McClean hat geschrieben:Hi,

ja gibt es. Zumindest in dem Flashtool gibts die Firmware auch als (Reversed).

Gruss Steffen


Genau so ist es Steffen. Habe ich aber auch so geschrieben...
Lazyzero geht hin und nimmt die normale HEX, setzt das REVERSE-FLAG, kompiliert neu und stellt die REV-Version auf seinem Server zu Verfügung.
Noch ein Grund, mit dem Tool zu Flashen.




DUKE40 hat geschrieben:Wenn ich in der Liste nichts übersehen habe, sind meine ESCs nicht dabei. Ich habe die T-Motor 10A von Flyduino.
Tja, dann wird mein Copter weiterhin ohne SimonK Firmware fliegen :cry:

Wie ich eingangs schon erwähnte, ist es halt manchmal unumgänglich, den ESC von seinem Schrumpfschlauch zu befreien und einfach
visuell abzugleichen, ob er zu einem in der Liste vorhandenem ESC baugleich ist.

Dafür ist dieser Thread ja eigentlich gedacht, er soll nicht nur vermitteln wie's geht, sondern dem Erfahrungsaustausch dienen...

Also, zieh' einem deiner T-Motor10A ESCs die "Pelle ab", mach ein Foto von beiden Seiten und stell die Bilder hier rein.
Dann sehen wir weiter. :wink:

Re: HowTo - ESC (Regler) flashen

BeitragVerfasst: 17.07.2012 19:15:18
von x4FF3
sind das die roten 10A von flyudino? wenn ja, dann silabs :(

Re: HowTo - ESC (Regler) flashen

BeitragVerfasst: 17.07.2012 20:06:45
von Rastazasta
Versteh ich das richtig...?

Ihr flasht die soft drauf die auch die hier haben: http://flyduino.net/Flyduino-25A-ESC-SimonK-Firmware ?

Also wenn ich die bei Paul kaufe, brauch ich nix flashen?

Re: HowTo - ESC (Regler) flashen

BeitragVerfasst: 17.07.2012 20:07:40
von Crizz
Wenn du die Regler kaufst, die explizit mit der Simon Kirby-Firmware beworben werden - nur die haben sie auch drauf. Also exakt die von dir verlinkten, die anderen nicht. Denke mal das Paul Bake da auch irgendwann kleinere mit Simon-K.Firmware anbieten wird, würde das Sortiment ideal ergänzen.