AndreasBaier.de

  • Increase font size
  • Default font size
  • Decrease font size
Start Herkules II ( NEW ! ) Firmware & Programming

Herkules II - Firmware update & programming

E-mail Print PDF
With a simple programming adapter and a free programming software the Herkules II can be configured quite flexible.

Adjustable Functionality:

  • Individual assigning of I2C-adresses (motor 1-12) for each ESC controller
  • Activation and deactivation of Active Freewheeling depending on current consumption of motor
  • Commutation timing adjustable in 6 steps (30°, 24°, 18°, 12°, 6°, 0°)

Preparation:

For programming of the Herkules II ESC a simple USB-to-Serial converter is needed which delivers the signals RXD, TXD and GND.
There is also an USB-to-Herkules ProgTool available. This converter has a fitting Micromatch connector for the Herkules II Board and it can be used to easily programm features and update the firmware.

Here are some pictures of the USB-to-Herkules-II ProgTool.

IMG_0718.JPG IMG_0719.JPG IMG_0720.JPG

Do it yourself Programming Tool

For data communication each UART serial interface an be used. For this, the  two I2C pins on the Micromatch-Connector can be used.

  • Connect PIN I2C_SCL with USB_RXD and
  • connect PIN I2C_SDA with USB_TXD.
  • Last but not lease, connect GND to the serial interface.

Herkules_II_Programming_FTDI

Herkules_II_Programming_MK-USB

=> Link to Mikrokopter MK-USB Programming Adapter


Programming Step-by-Step

1.) Selection of I2C-adresses

Depending on the installation option and the number of motors a meaningful allocation of I2C-addresses is needed to achieve the shortest possible routing and no crossing of motor cables.

Here is an overview possible and proven address assignments:

a) Quadrocopter

The I2C-adress M1 to M4 have to be linked to the Herkules II ESCs 1 to 4.
The Herkules II board should be mounted so that the small arrow on the top right corner points into direction of flight.


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) Octocopter

The addresses are thus distributed on top of each other that they are interleaving each other. This ensures that in case of an theoretic defect of one Board the Octocopter is still controllable.

Variante 1 (Mikrokopter)

HerkulesII_Motoranordnung_Oktokopter_V1

Herkules II v2 in Oktokopter
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-Copter (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.) Using Active Freewheeling or not

Description missing...

3.) Choosing the correct Phase Timing

Description missing...


 4.) Programming Sequence

The subfolder "bin" in the Herkules II ProgTools contains the "AVRootloader.exe". With this genious tool from Hagen Re, all ESC controller on the Herkules II Board can be accessed and programmed easily.
=> so move to subfolder "bin" and start the AVRootloader.exe.

a) Step 1 - Selecting the comport

First select the correct COMPORT of the USB-to-Herkules-ProgTool. The Field "Port" must not be set to "AUTO". You have to set there the real COMPORT which is used by ProgTool.

b) Step 2 - Selecting the target ESC controller by the Bootsign.

Select in the filed "Sign" the target bootloader sign. The names are ending with M01 to M04 which are linked to the ESC adress 1 to 4.

c) Step 3 and 4 - Selecting the right File Type

Now click on the "3 dots button" on the right and chose in the popping-up file selection window the filetype to "Encrypted Programming File (*.acy)"

d) Step 5 - Selecting the desired files and the desired I2C-address

Browse to the subfolder "acy" and here you will find at least two subfolders:

  • I2C_AFW0_DEG24 => I2C-Files, AFW=OFF, Timing=24 degree
  • I2C_AFW1_DEG24 => I2C-Files, AFW=ON, Timing=24 degree

The files end with M01 to M12 and denote the desired I2C-address M01 to M12 which should be assigned to the selected ESC controller 1 to 4 which was selected in Step 2.

e) Step 6 and 7 - Programming

Connect now the USB-to-HerkulesII-Programming Cable with the Herkules II and do the following steps:

  1. Switch-OFF the power supply from the Herkules II.
  2. Then click on the button "Program" on the bottom left (The programming tool is now waiting for a special response of the Herkules II bootloader for 200ms after power on.
  3. Switch-ON the power supply again and the programming starts.

During programming you will see in the top status bar [working...] that the programming is in progress.

If the checkbox "Open protocollwindow after processing" is active, the tool jumps after programming to the "Protocoll"-window (see Step 8)

f) Step 8 - Checking the programming

If the programming was successfull you can see on the "Protocol" window. It should look like this:

g) Step 9 and 10 - Checking of device-information and software version

Klick on "Device Information" and you will see the Hardware Bootloader information and the software version.
Example:

  •  Herkules II v2 = Hardwareversion
  •  2.2.2.0 = Software-Version. [Herkules 2].[v2].[I2C-SW].[Release 0]

=> CONGRATULATION: You flashed successfully the new Firmware!

h) Step 11 - Repeat the steps for all the controllers

To programm all the other controller on the Herkules II board, repeat Step 2 to Step 10.

Have a lot of fun and safe flights!

 

Zufallsbild

IMG_1219

IMG_1219

Betrachtet: 86 mal