Samstag, 17. September 2016

HowTo: Flash custom firmware to Eachine H8 mini

Recently I had great fun playing with my little drone. Surfing internets I found interesting blog post and RCGroups thread, which pushed me to the idea of uploading new custom firmware.





At the moment there are 2 custom firmware available - acro mode and dual mode (acro + level) (thanks to silver13 github user). The latter one is better for beginners since it has level mode and not so demanding to pilot skills.

To upload new firmware following parts are needed:

  • drone
  • mini screwdriver
  • ST-Link USB programmer or STM Nucleo board (I used this one)
  • mini usb cable
  • soldering unit
  • some spare wires and connectors
First of all we have to solder wires to drone board. On the following picture we can see appropriate pads on the board to solder to. I used 4-pin connector and soldered both B-(GND) and B+(VDD) to be able later connect something like a camera directly to the drone battery. Following pictures show drone board before and after soldering.




STM Nucleo development board can be used as programmer to flash new firmware onto drone. The upper part of board is actually ST-Link v2.1 programmer (read more here).


Below listed programming header pins, top-to-bottom (and appropriate drone pins in parentheses):

  • VDD-TARGET
  • SWCLK (CLK)
  • GND (GND)
  • SWDIO (DAT)
  • NRST
  • SWO

When drone is connected to the programmer we can setup necessary software. Firstly download Keil Evaluation from official website.

I used Windows 10 running in Virtualbox. We have to give access to appropriate USB device to guest OS as shown on the picture.


After Keil setup is finished we can clone repository or download it as ZIP file, extract it and open in IDE. Project file (Project.uvprojx) is located in H8mini_test folder in repository root folder.

On the following pictures necessary options are shown to set in Keil. To be able to set Target Device it might be needed to download GigaDevice GD32F1 Series Device support in Keil's Pack Manager. More details you can find on RCGroups forum.




When preparation is done we can try to Build Target (F7). When build is finished we should see something like "".\output\Project.axf" - 0 Error(s), 0 Warning(s)." in log window, which means that firmware was built successfully. Now we need to connect battery to the drone.

Before first time uploading new firmware we have to unlock the device by erasing flash. Press Flash > Erase.

Then press Flash > Download (F8) to flash new firmware onto device. You will see something similar to following picture.


Well done!

Now you can disconnect drone from programmer and try to bind it with remote controller as usually. If everything went well you'll be able to fly.

Switching between acro and level modes can be done using right joystick:

  • left, left, down - acro mode
  • right, right, down - level mode


To calibrate drone before first flight use down, down, down sequence.

Some functions of stock firmware are not available (e.g. return home and headless mode), but new modes and rates available in new firmware make this little drone a real devil.

I hope this post and links (mostly) will help somebody! Nave a nice day!