This experiment will show how easy the Hoverboard controller can be manipulated. As shown in the video a TxD signal was given to all 4 inputs of the two motor controllers. In a robot project that would of course be a bit different. Then 2 UART (2x TxD) would drive the 4 wheels, per side a motor controller with 2 wheels.

Config of the USART-Communication: 22500,N,9,1.
That means 22500 Baud with 9 Data-Bits, no Parity, one Stop-Bit.

Example of the data transfer:

Data to send 6 Bytes (9 Bit) for STOP (Speed= 0000):
100h, 000h, 000h, 000h, 000h, 055h

Data to send 6 Bytes for 10% FORWARD (Speed= +0150d):
100h, 000h, 096h, 000h, 096h, 055h

Data to send 6 Bytes for 10% BACKWARD (Speed= -0150d):
100h, 0FFh, 06Ah, 0FFh, 06Ah, 055h

Range for the variable “Speed” (decimal): -1600 … 0 … +1600

But I have seen different Motor-Controller with some Variation in the Speed-Range and Baud-Rate, so everyone have to figure out the Value for a specific Motor-Controller…

, https://i.ytimg.com/vi/v_-ZDsJZhyY/hqdefault.jpg

source

16 Comments

  1. Thank you for your interesting video. I try to connect Hoverboard with arduino, but it did not work. Please help me some information:
    1. I upload my firmwares but when I connect left sensor connector (long wire) to TX, RX and GND of Adruino Uno or Mega, it has no signal. Please share us your current firmware (hex or bin file) for this system.
    2. Please help me know how you wire to arduino.

  2. what did you mean by dynamic? Isnt motor by default dynamic, like forward polarity will make it forward, backward polarity will be backward, so what exactly do you mean by dynamic robot?

  3. Amazing job..
    Well I’m trying to use arduino uno … do you have any video or something helpful ??
    Please help

  4. Hello

    Thanks for your beautiful project

    I want to do this but I failed to write the correct program. Help me if possible or let me use it if you have a simple plan. Thankful

  5. Great Work, I have a question.
    Did u change any Firmware for Mainboard ?,For Arduino to communicate with Mainboard

  6. Hi, nice achievement! I have a question. I did similar thing but with the "Blue Pill" STM32 board. It works, motors spin well to complete range [-1600, 1600].
    ► The problem is when I send on one hoverboard Motor1_speed = 500 (positive), Motor2_speed = -500 (negative) so, the hoverboard would go forward. What happens is that both motors speed go Max speed very quickly and the communication is blocked. There is no way stopping the motors other than pushing the Switch Off button. It is a "nasty" behavior, I mean why does it jump to MAX, maybe this is to prevent the rider falling in Forward or Backward direction but is not nice to have it for robotics applications. Do you have similar behavior?
    ► I know you wanted to swap the motors to achieve forward direction, but easier is just to send "+" on one and "-" on the other.

  7. i'm an engineering student and working on a project of self balancing vehicles
    i'm using BLDC motors and tried using the cheap motor controllers from china that you initially used and faced two problems with that
    1) the board fried when 36v were applied across it although it says that its voltage rating is from 5 to 36v
    2)there was no breaking mechanism hence it was difficult to regain stall state after acceleration
    My question is as follows
    You are suggesting to use the controllers used in the commercial hoverboards and control them with my own microcontroller?
    or do you suggest to use the cheap controller and apply braking using transistors as you did?
    Any help from you would mean a great deal to me

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.