Log #2 Researching Firmware

A project log for Hoverboards for Assistive Devices

Want to motorize a wheeled assistive device? What better than a hacked hoverboard with brushless motors, electronics and power.

Phil MalonePhil Malone 04/16/2020 at 14:280 Comments

Once I received my new HOVER-1 ULTRA, and discovered that it had two separate motor controller boards, I knew I had some research ahead of me.

To cut a long story short, I found two great projects that could help me with code.

The first source was a Software repo by Florian, a German Software and Hardware developer.

This appears to be the first code repository that deals with the Dual controller code.

An interesting adaption of Florian's code was made by Gaucho, in Rome.

By combining information from both of these projects, I was able to establish a starting point for my own code.  I actually used Gaucho's code to verify that I could succesfuly build and deploy working code, but in the end I used Florians code as the basis for my own project.

The Florian Repo came with the following Flashing instructions


The firmware is built with Keil (free up to 32KByte). To build the firmware, open the Keil project file which is includes in repository. Right to the STM32, there is a debugging header with GND, 3V3, SWDIO and SWCLK. Connect GND, SWDIO and SWCLK to your SWD programmer, like the ST-Link found on many STM devboards.


So I ordered the ST-LINK interface from, and downloaded the Keil software from and the ST-LINK Utility from

I mounted header pins for programming and serial debugging, and stared down the road of figuring out what the various elements did.

The following picture shows the two cables that I assembled for programming and debugging.  The ST-LINK module was connected to the programming header by 4 wires.  This provided the communications AND power for the processor.  Note: the processor runs on 3.3V (not 5V).  Also shown is the serial debugger cable that uses a USB-TTL Serial interface like this one.  Note that the power from the debugger cable is not used, and the interface is 3.3-5v compatible.