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.

IMG 0718 IMG 0719 IMG 0720

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.

Herkules_II_Programming_FTDI

Herkules_II_Programming_MK-USB

=> 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 v2 in Quadrokopter  - I2C-Adress Zuweisung
Herkules II
ESC
Herkules II
Bootsign
Motor

I2C-
Adresse

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)

HerkulesII_Motoranordnung_Oktokopter_V1

Herkules II v2 in Oktokopter - Variante 1 (Mikrokopter)
Herkules II
ESC A
Herkules II
Bootsign
Motor

I2C-
Adresse

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)

HerkulesII_Motoranordnung_Oktokopter_V2

Herkules II v2 in Oktokopter - Variante 2 (Cadmicopter)
Herkules II
ESC A
Herkules II
Bootsign
Motor

I2C-
Adresse

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

HerkulesII_Motoranordnung_Hexakopter_V1

Herkules II v2 in Hexakopter- Variante 1 und 2
Herkules II
ESC A
Herkules II
Bootsign
Motor

I2C-
Adresse

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)

HerkulesII_Motoranordnung_Y6kopter_V1

Herkules II v2 in Y6-Kopter - Variante 1
Herkules II
ESC A
Herkules II
Bootsign
Motor

I2C-
Adresse

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

 

HerkulesII_Motoranordnung_Y6kopter_V2

 

Herkules II v2 in Y6-Kopter - Variante 2
Herkules II
ESC A
Herkules II
Bootsign
Motor

I2C-
Adresse

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::

  1. Spannungsversorgung des Herkules II AUS-schalten
  2. 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)
  3. 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!

Aktuelle Seite: Startseite Herkules II - (Gen 2) Firmware & Programmierung