#1 HowTo - ESC (Regler) flashen
Verfasst: 16.07.2012 01:23:31
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 ->
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.
Für die ESCs mit einer Anschlußleiste am Rand kann man einen Adapter bauen (Achtung - Reihenfolge der Pins kann variiren!)
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ß.
Tilman (r0sewithe) hat's mal wieder auf die Spitze getrieben.
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.
So werden die Einstellungen vorgenommen.
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...
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
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 ->
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.
Für die ESCs mit einer Anschlußleiste am Rand kann man einen Adapter bauen (Achtung - Reihenfolge der Pins kann variiren!)
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ß.
Tilman (r0sewithe) hat's mal wieder auf die Spitze getrieben.
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.
So werden die Einstellungen vorgenommen.
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...

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