Close

Hoverboard Firmware

A project log for HoverPod

Open Source components to turn a Hoverboard into a mobility device.

phil-malonePhil Malone 09/01/2021 at 23:080 Comments

My goal has always been to reprogram a commercial Hoverboard to allow it to be used as a generic motor drive for assistive devices.   

My initial work on the HOVER-1 Hoverboard started out by adding a smaller control processor (ESP32) inside the hoverboard to coordinate the primary and secondary (left and right) motor controllers independently.  

Eventually I decided that it would be easier to just have an external joystick communicate directly with the Primary controller, and let the Primary manage the Secondary controller.  

In hindsight, this should have been an obvious approach... but sometimes you don't see the trees....

This approach is also compatible with "single motor-controller" hoverboards.

The current setup runs identical code on both controllers.  If either side receives a dual-motion command via its coms debugging port, it will extract the data it needs, and then  pass the unused portion on to the other controller.

My motor controller code implements several modes:  Open Loop Power mode, Closed Loop Velocity mode & Smooth Stepper Mode.  There is also a hybrid mode that switches between Stepper and Velocity modes based on the current speed. 

The HUGS (Hoverboard Universal Gateway System) protocol is used for inter-controller communications as well as external Joystick commands.

To learn more about how the Hover-Pod firmware came about, I suggest you read the logs from my Hoverboards For Assistive Devices project.  The best place to start is probably  Log #2 

Discussions