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


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

| 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-Copter (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.) 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:
- Switch-OFF the power supply from the Herkules II.
- 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.
- 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!
| < Prev | Next > |
|---|







