Close

control the hoverboard motors using the Arduino

A project log for AkerfaBot

A DIY robot that helps collect the trash in the woods. Image recognition will be uses to detect trash and collect it using a robotic arm.

nait-malek-youssefNait Malek Youssef 07/23/2022 at 23:090 Comments

In this log, I will present the process followed to control the hoverboard using an Arduino pro mini. First step I did some research on the internet to see if there is anyone who hacked a hoverboard before, and I found a lot of resources. However, the hoverboard I have is different, all the resources I found uses a hoverboard that has tree electronic board: two small board that contain an accelerometer and a main board that takes information from the two other board and then control the motors.

The hoverboard I have has just two electronic cards, one acts as a main board.

After inspecting the electronic boards, I did found that the boards use the UART protocol to communicate between each other.

After determining the RX/TX pins, I extended them and hock them to a logic analyser to try to find the baud rate of the serial communication. unlike the resources I found in the internet, the baud rate of this hoverboard is 7752 bps. Then I tried to read the frames and find out which one is which in order to reproduce them using Arduino to control the hoverboard.

After several testes and workaround, the hoverboard starts moving after receiving frames from the Arduino. However, it was not a full control, the hoverboard keeps moving backward and stops after a while and turns off. The problem might be due to a bad frame, or that the messages sent from the Arduino overlaps with the one coming from the other electronic card.

To overcome this problem, I tried to disconnect each electronic board and control just one board at a time, but nothing happens. I also checked that the voltage provided by the Arduino signal is the same as the one in the board and found that that is not the issue. 

Now, I'm still trying different methods and looking for other solution. More details could be found in the github repository.

Discussions