Mit einem passenden Programmieradapter und der der kostenlosen Software lässt sich der Herkules II sehr flexibel konfigurieren.
Einstellbare Funktionen sind:
- Individuelles Zuweisen der I2C-Adressen (Motor 1-12) zu jedem Regler
- Aktivieren und Deaktivieren von aktivem Freilauf (je nach betriebenen Motor und Leistung)
- Einstellen des Kommutierungs-Timings in 6 Schritten (30°, 24°, 18°, 12°, 6°, 0°)
Vorbereitung:
Zum Programmieren des Herkules II - Reglers wird lediglich ein herkömmlicher USB-to-Seriell Konverter benötig, der die Signale GND, RXD und TXD beinhaltet.
Optional kann das USB-to-Herkules Progtool verwendet werden. Hier handelt es sich um einen passenden USB-Konverter, der auf den vorhandenen Micromatch-Stecker gesteckt werden kann um dann die Firmware zu aktualisieren.
Selbstbau des Progammier-Interfaces.
Dazu werden die auf dem Micromatch-Stecker vorhandenen I2C-Pins für die Datenkommunikation verwendet.
- Der Pin I2C_SCL wird mit USB_RXD und
- der PIN I2C_SDA mit USB_TXD verbunden.
- Dann nur noch GND verbinden und fertig ist das Progammier-Interface.
=> Link zu Mikrokopter MK-USB Programmieradapter
Vorgehensweise bei der Programmierung
1.) Auswahl der I2C-Adressen
Je nach Einbauvariante und Anzahl der Motoren ist eine sinnvolle Zuweisung von Regleradresse zu Motor wichtig um möglichst kurze Leitungsweg und keine Kreuzungen der Motorzuleitungen zu erzielen.
Hier eine Übersicht über mögliche und erprobte Adresszuweisungen:
a) QuadroKopter
Die I2C-Adressen M1 bis M4 müssen den Herkules II Reglern 1 bis 4 zugewiesen werden.
Der Herkules II sollte so montiert werden, dass der kleine Pfeil in der rechte oberen Ecke möglichst in Flugrichtung zeigt.
Herkules II ESC |
Herkules II Bootsign |
Motor |
I2C- |
Herkules Firmware (ACY-File) |
1 | BLDCHK2v2M01 | VORNE | M1 (0x52) |
BLDCHK2v2_I2C_AFWx_DEGx_M01 |
2 | BLDCHK2v2M02 | LINKS | M4 (0x54) |
BLDCHK2v2_I2C_AFWx_DEGx_M04 |
3 | BLDCHK2v2M03 | HINTEN | M2 (0x56) |
BLDCHK2v2_I2C_AFWx_DEGx_M02 |
4 | BLDCHK2v2M04 | RECHTS | M3 (0x58) |
BLDCHK2v2_I2C_AFWx_DEGx_M03 |
b) OktoKopter
Die Motoren werden so auf die zwei übereinanderliegenden Herkules II Boards verteilt, dass diese "verzahnt" ineinander greifen. Dadurch ist bei einem theoretischen Defekt von einem ganzen Herkules Board der Oktokopter immer noch steuerbar.
Variante 1 (Mikrokopter)
Herkules II ESC A |
Herkules II Bootsign |
Motor |
I2C- |
Herkules Firmware (ACY-File) |
1 | BLDCHK2v2M01 | VORNE A |
M1 (0x52) |
BLDCHK2v2_I2C_AFWx_DEGx_M01 |
2 | BLDCHK2v2M02 | LINKS A |
M7 (0x5E) |
BLDCHK2v2_I2C_AFWx_DEGx_M07 |
3 | BLDCHK2v2M03 | HINTEN A |
M5 (0x5A) |
BLDCHK2v2_I2C_AFWx_DEGx_M05 |
4 | BLDCHK2v2M04 | RECHTS A |
M3 (0x56) |
BLDCHK2v2_I2C_AFWx_DEGx_M03 |
Herkules II ESC B |
Herkules II Bootsign |
Motor | I2C- Adresse |
Herkules Firmware (ACY-File) |
1 | BLDCHK2v2M01 | LINKS B |
M8 (0x60) |
BLDCHK2v2_I2C_AFWx_DEGx_M08 |
2 | BLDCHK2v2M02 | HINTEN B |
M6 (0x5C) |
BLDCHK2v2_I2C_AFWx_DEGx_M06 |
3 | BLDCHK2v2M03 | RECHTS B |
M4 (0x58) |
BLDCHK2v2_I2C_AFWx_DEGx_M04 |
4 | BLDCHK2v2M03 | VORNE B |
M2 (0x54) |
BLDCHK2v2_I2C_AFWx_DEGx_M02 |
Variante 2 (Cadmicopter)
Herkules II ESC A |
Herkules II Bootsign |
Motor |
I2C- |
Herkules Firmware (ACY-File) |
1 | BLDCHK2v2M01 | VORNE A |
M1 (0x52) |
BLDCHK2v2_I2C_AFWx_DEGx_M01 |
2 | BLDCHK2v2M02 | LINKS A |
M3 (0x56) |
BLDCHK2v2_I2C_AFWx_DEGx_M03 |
3 | BLDCHK2v2M03 | HINTEN A |
M5 (0x5A) |
BLDCHK2v2_I2C_AFWx_DEGx_M05 |
4 | BLDCHK2v2M04 | RECHTS A |
M7 (0x5E) |
BLDCHK2v2_I2C_AFWx_DEGx_M07 |
Herkules II ESC B |
Herkules II Bootsign |
Motor | I2C- Adresse |
Herkules Firmware (ACY-File) |
1 | BLDCHK2v2M01 | VORNE B |
M8 (0x60) |
BLDCHK2v2_I2C_AFWx_DEGx_M08 |
2 | BLDCHK2v2M02 | LINKS B |
M2 (0x54) |
BLDCHK2v2_I2C_AFWx_DEGx_M02 |
3 | BLDCHK2v2M03 | HINTEN B |
M4 (0x58) |
BLDCHK2v2_I2C_AFWx_DEGx_M04 |
4 | BLDCHK2v2M03 | RECHTS B |
M6 (0x5C) |
BLDCHK2v2_I2C_AFWx_DEGx_M06 |
c) HexaKopter
Herkules II ESC A |
Herkules II Bootsign |
Motor |
I2C- |
Herkules Firmware (ACY-File) |
1 | BLDCHK2v2M01 | not used | M0 (0x50) |
BLDCHK2v2_I2C_AFWx_DEGx_M00 |
2 | BLDCHK2v2M02 | LINKS A |
M5 (0x5A) |
BLDCHK2v2_I2C_AFWx_DEGx_M05 |
3 | BLDCHK2v2M03 | HINTEN A |
M3 (0x56) |
BLDCHK2v2_I2C_AFWx_DEGx_M03 |
4 | BLDCHK2v2M04 | VORNE A |
M1 (0x52) |
BLDCHK2v2_I2C_AFWx_DEGx_M01 |
Herkules II ESC B |
Herkules II Bootsign |
Motor | I2C- Adresse |
Herkules Firmware (ACY-File) |
1 | BLDCHK2v2M01 | VORNE B |
M6 (0x5C) |
BLDCHK2v2_I2C_AFWx_DEGx_M06 |
2 | BLDCHK2v2M02 | HINTEN B |
M4 (0x58) |
BLDCHK2v2_I2C_AFWx_DEGx_M04 |
3 | BLDCHK2v2M03 | not used | M0 (0x50) |
BLDCHK2v2_I2C_AFWx_DEGx_M00 |
4 | BLDCHK2v2M04 | RECHTS B |
M2 (0x54) |
BLDCHK2v2_I2C_AFWx_DEGx_M02 |
d) Y6-Kopter (Koax-Hexa)
Herkules II ESC A |
Herkules II Bootsign |
Motor |
I2C- |
Herkules Firmware (ACY-File) |
1 | BLDCHK2v2M01 | LINKS A |
M5 (0x5A) |
BLDCHK2v2_I2C_AFW_DEGx_M05 |
2 | BLDCHK2v2M02 | not used | M0 (0x50) |
BLDCHK2v2_I2C_AFWx_DEGx_M00 |
3 | BLDCHK2v2M03 | HINTEN A |
M3 (0x56) |
BLDCHK2v2_I2C_AFWx_DEGx_M03 |
4 | BLDCHK2v2M04 | RECHTS A |
M1 (0x52) |
BLDCHK2v2_I2C_AFWx_DEGx_M01 |
Herkules II ESC B |
Herkules II Bootsign |
Motor | I2C- Adresse |
Herkules Firmware (ACY-File) |
1 | BLDCHk2v2M01 | LINKS B |
M6 (0x5C) |
BLDCHK2v2_I2C_AFWx_DEGx_M06 |
2 | BLDCHK2v2M02 | HINTEN B |
M4 (0x58) |
BLDCHK2v2_I2C_AFWx_DEGx_M04 |
3 | BLDCHK2v2M03 | not used | M0 (0x50) |
BLDCHK2v2_I2C_AFWx_DEGx_M00 |
4 | BLDCHK2v2M04 | RECHTS B |
M2 (0x54) |
BLDCHK2v2_I2C_AFWx_DEGx_M02 |
Herkules II ESC A |
Herkules II Bootsign |
Motor |
I2C- |
Herkules Firmware (ACY-File) |
1 | BLDCHK2v2M01 | LINKS A |
M1 (0x52) |
BLDCHK2v2_I2C_AFW_DEGx_M01 |
2 | BLDCHK2v2M02 | not used | M0 (0x50) |
BLDCHK2v2_I2C_AFWx_DEGx_M00 |
3 | BLDCHK2v2M03 | HINTEN A |
M3 (0x56) |
BLDCHK2v2_I2C_AFWx_DEGx_M03 |
4 | BLDCHK2v2M04 | RECHTS A |
M2 (0x54) |
BLDCHK2v2_I2C_AFWx_DEGx_M02 |
Herkules II ESC B |
Herkules II Bootsign |
Motor | I2C- Adresse |
Herkules Firmware (ACY-File) |
1 | BLDCHK2v2M01 | LINKS B |
M4 (0x58) |
BLDCHK2v2_I2C_AFWx_DEGx_M04 |
2 | BLDCHK2v2M02 | HINTEN B |
M6 (0x5C) |
BLDCHK2v2_I2C_AFWx_DEGx_M06 |
3 | BLDCHK2v2M03 | not used | M0 (0x50) |
BLDCHK2v2_I2C_AFWx_DEGx_M00 |
4 | BLDCHK2v2M04 | RECHTS B |
M5 (0x5A) |
BLDCHK2v2_I2C_AFWx_DEGx_M05 |
2.) Entscheidung für oder gegen aktiven Freilauf
Beschreibung folgt noch...
3.) Wahl des richtigen Timings
Beschreibung folgt noch...
4.) Die Pogrammierung
Im Unterordner "bin" des Herkules II ProgTools befindet sich der "AVRootloader.exe". Mittels dieses genialen Programms von Hagen Re können aller Regler auf einem Herkules II Board per Bootloader angesprochen und programmiert werden.
=> also in den Unterordner "bin" wechseln und die AVRootloader.exe starten.
a) Step 1 - Auswahl des Comports
Im Feld PORT muss nach der korrekten Installation des USB-Herkules-Programmierkabel der richtige Comport ausgewählt werden. Das Feld darf nicht auf "AUTO" stehen sondern muss auf den tatsächlichen Wert eingestellt werden den der Programieradapter belegt.
b) Step 2 - Auswahl des Reglers auf dem Herkules II mittels Bootsign.
Im Feld "Sign" muss nun der richtige Regler auf dem Herkules ausgewählt werden. Die Bezeichnungen enden mit M01 bis M04.
Hier sind die Regler 1-4 gemeint, die auch auf dem Aufdruck auf dem Herkules II Board zu finden sind.
c) Step 3 und 4 - Einstellen des richtigen Dateitypen
Durch klicken auf die 3 Punkte rechtes neben dem FLASH Eingabe-Fenster öffnet sich ein Auswahlfenster und nun muss im Dateityp der Wert "Encrypted Programming File (*.acy)" eingestellt werden.
d) Step 5 - Auswahl des gewünschten Files und er gewünschten I2C-Adresse.
Im Unterordner "acy" befinden sich zwei oder drei Ordner mit den Namen
- I2C_AFW0_DEG24 => I2C-Files, AFW=AUS, Timing=24 Grad
- I2C_AFW1_DEG24 => I2C-Files, AFW=EIN, Timing=24 Grad
Die Files enden mit M01 bis M12 und bezeichnen die geünschte I2C-Adresse M01 bis M12 die dem jeweiligen Regler zugewiesen werden soll. Hier die gewünschte I2C-Adresse auswählen, die in unter Punkt 2 ausgewählten Regler geflashed werden soll und auf öffnen klicken.
e) Step 6 und 7 - Der Programmiervorgang
Jetzt das USB-Herkules-Programmierkabel mit dem Herkules II verbinden und folgende Schritte durchführen::
- Spannungsversorgung des Herkules II AUS-schalten
- Links unten auf "Program" klicken (Das Programmiertool wartet jetzt auf die Antwort der Herkules II der für 200ms nach dem Einschalten eine bestimmte Sequenz ausgibt)
- Die Spannungsversorgung des Herkules II wieder EIN-schalten und der Programmiervorgang beginnt.
Man erkennt anhand der Statuszeile am oberen Fensterrand durch [working...], dass der Programmiervorgang läuft.
Wenn der Haken "Open protocollwindow after processing" gesetzt ist, dann springt das Tool nach erfolgreicher Programmierung auf das Protocoll-Fenster (siehe Step 8)
f) Step 8 - Überprüfen des Programmiervorgangs
Der erfolgreiche Programmiervorgang kann auf dem Reiter "Protocol" überprüft werden. Die Darstellung sollte wie unten gezeigt aussehen.
g) Step 9 und 10 - Überprüfen der Device-Information und der Software Version
Durch klick auf "Device Information" kann die Hardware-Version des Reglers und die Software Version ausgelesen werden.
z.B:
- Herkules II v2 = Hardwareversion
- 2.2.2.0 = Software-Version. [Herkules 2].[v2].[I2C-SW].[Release 0]
=> GRATULATION: Die Firmware für einen Regler wurde erfolgreich geflashed!
h) Step 11 - Wiederholung der Prozedur für die weiteren Regler.
Zum Programmieren der anderen Regler auf dem Herkules II Board Step 2 bis Step 10 wiederholen.
Viel Erfolg und Spass beim Fliegen!