This project was started with the simple goal of seeing if it could be done. I simply wanted to see if I could control a hoverboard remotely. I can see three basic approaches:
- Pull the “gyro boards” out of the hoverboard and attach them to servos. The servo can tilt the gyro boards just like a normal rider would do.
- Cut the I2C wires that go from the gyro boards to the main controller and have a microprocessor do the controlling directly.
- Remove the main microprocessor board and control the motors directly. In this case, the algorithms from TwoPotatoe could be used directly.
The first two approaches produce essentially the same result. I didn’t really want to sniff the I2C lines so I went with the first approach.
The third approach is the most intriguing but, by far, the most difficult. It would mean either building new controllers for the brushless DC motors or somehow hacking the existing mosfets in the existing board. The resulting performance using this approach would be truly awesome. I would expect that quite high speeds are possible and a variety of “tricks” would also be possible. Given the weight and probable speed, it might even be rather dangerous.
There are two gyro boards, one under each foot of the rider. These boards contain an Invensense MPU-6050 IMU and sense the tilt of the foot bed. These boards were removed from the hoverboard and all of the wires, including the LED wires, were run up into the body where they were attached to a tilting mechanism with a servo for each one. To go forward the servos simply tilt both of the boards forward. To turn, the boards are tilted in opposite directions. Unlike TwoPotatoe, there is no balancing code; all of the balancing is done by the existing microprocessor in the hoverboard. Therefore, this arrangement has all of the limitations of a stock hoverboard, including speed. The general layout should be apparent in the two photos: