Reverse Engineering Hoverboard Motor Drive

The must-have toy of the moment last winter was the “Hoverboard”. We all probably secretly wished them to be the boards from the Back to the Future series of films made real, but the more achievable reality is a self-balancing scooter somewhat akin to a miniature Segway. It seemed every child wanted one, schools banned them, and there was a media frenzy over some of the cheaper models that lacked protection circuitry for their li-ion batteries and thus had a tendency for self-incineration.

[Drew Dibble] is interested in the Power Racing Series (PRS), in which toy electric cars are souped up for competition. Casting around for a source of cheap and relatively powerful motors he lit upon the self-balancing scooters, and waited on Craigslist for the inevitable cast-offs. His resulting purchase had two 350W brushless hub motors and all the associated circuit boards for motor control, gyroscope, and oddly a Bluetooth speaker. The motor control board received an unknown two-wire digital feed from the scooter’s control board, so he set to work investigating its protocol. His write-up of how he did it is an interesting primer in logic line detective work.

Hooking up his logic analyzer he was quickly able to rule out the possibility of the control signal being PWM because all signals followed the same timing. Both lines had data so he was able to rule out I2C, for in that case one line would carry a clock. He was therefore left with a serial line, and taking the 38 microsecond timing interval, he was able to calculate that it had a rather unusual bitrate of 26315 BPS. Each packet had a multiple of 9 bits so he either had 9-bit or 8-bit with parity, and trying all possible parity schemes resulted in parity errors. Therefore the boards used a highly unusual 9-bit non-standard bitrate serial port. Some experimentation led him to an Arduino library, and he was able to get some movement from his motors. Some clever timing detective work later and he could make them move at will, success!

All his code for the project is on GitHub, for his 9-bit SoftwareSerial library and a motor control sketch.

If you want a real Back to the Future hoverboard then you may have to wait a while longer. We have featured a replica made as an unrideable floating artwork though, and a working board that is more of a personal hovercraft.

40 thoughts on “Reverse Engineering Hoverboard Motor Drive

      1. Gearing would be tricky as the stator windings are built into the wheel, which has a rim and accepts a tube/tire (at least for the 10″ model I used). The motor control board could be used to power a similarly sized shaft 3 phase DC motor with hall effect sensor feedback though. The hub motor windings are 0.5 ohm, lead to lead.

        1. Most of the hub motors that I have seen are a planetary gear set around a central 3 phase dc motor. So it would be a lot of work but you might be able to change the planetary gear ratio to have higher torque.

    1. Electric motor tend to have the same torque all the way regardless of the rpm. They will increase the amps until it reach the requested speed or blew the electronic –whichever sooner. Usually the controller have some sort of protection against the later.

  1. Fun fact: In some european countries – e.g. Germany and Switzerland – these things are completely illegal to operate. They fall under the same category as small mopeds, which means they require registration (license plate), technical approval (brakes, a steering wheel/handlebar, a seat, lighting etc.) and also a drivers license for small vehicles with a mechanically limited topspeed of up to 45kmh (that’s the only one you can get in Germany at the age of 16). Note: this is only the case on public property, if you’re on private property with a fence/wall and gate surrounding it, you can do whatever you want.

    So, when a 12 year old roams around in the town/city on such a thing and a policeman has a bad day, this kid is in serious trouble.

      1. So having a technical approval for brakes is not good?
        Who controls them then?
        Most regulation is there for a reason. Besides, you can do whatever you want in your property, what else do you want?

        You do want to go to a doctor/surgeon that has a diploma and degree, isn’t that regulation?
        You want the pilot of your plane to have a pilot license, isn’t that regulation?

        I think the bigger (and underlying) issue here, is that people believing in the fallacy of free market think the market would self regulate: in this case if somebody has an accident with one of these things because of faulty brakes, then he would sue the company or something, maybe be on the news for 3 seconds.
        What happens in real life (and not in the unicorn free market no regulation bullshit land) is that the company is not local, the guy who has the accident has no money to sue a big company and in the end nobody gives a fuck.
        Google in Germany: “we spied on millions of wifi networks?, sorry it was bug”
        Germany: “really? a bug? then it’s fine, nothing to see here”

        And so precedents are being set and people conditioned to accept that accidents are actually bugs, and since people are also being conditioned to think that bugs can be fixed (even if that does not happens; look at all the mobile phones, routers and other stuff running insecure software) then there should be no consequences to accidents…I mean “bugs”, with a net effect of nobody being responsible for anything.

        And people want self-driving cars…

        1. Well, I wouldn’t want a brake on a balancing board. At least I wouldn’t use it at speed… It might end badly. Fortunately here there is a little less government overreach.

      2. Seems bad..
        Until you think a bit. And realise that there are a hell of a lot of idiots about. And even if it is their fault, someone still has to get over smearing them all over the road. How is that fair?

    1. I’m pretty sure any electric motorized vehicle is illegal in most places in the US as well, but that doesn’t stop anyone from using them, nor should it. If nobody broke the law by riding them, lawmakers wouldn’t be forced to fix the law, and an entire industry for small electric vehicles would cease to exist.

  2. Most problems with hoverboards have been them catching fire while charging which have lead to stricter import controls in Europe. You can of cause still legally buy one for yourself for around 79$ Direct from china. (The European importers markup is as always insanely high). A HAL sensored brushless motor can give plenty torque at low rpm if you want to use it on a robot.

      1. Found it on Alibaba Express on the manufacturer’s web store, last year, checked again 3 months ago. Take a Look here: http://www.aliexpress.com/w/wholesale-hoverboard.html?site=glo&g=y&SortType=price_asc&SearchText=hoverboard&groupsort=1&initiative_id=SB_20160611014201&shipCountry=DK&needQuery=n

        Shipping is expensive and might need to be with something else than free china post air mail because of the batteries, thus susceptible to customs and handling!

      2. You can get a refurb hoverboard from hobbytron.com, which is in socal I believe, for $99. Components are also cheap from that site (replacement control board for $10, battery pack for $40, etc). Not sure how reputable this site is.

  3. I was reverse engineering the serial protocol that the microcontroller in the Nissan Leaf battery pack BMS uses to talk to the balancer chips and thought it was some weird proprietary protocol… but turns out it was LIN bus:
    https://en.m.wikipedia.org/wiki/Local_Interconnect_Network

    Probably something similar… just not a well known serial protocol.

    And for those interested in the Nissan Leaf BMS reverse engineering, still a work in progress:
    http://www.wolftronix.com/E10_LithiumUpgrade/index.html

    1. The feedback from the motor shafts is from hall effect sensors (there is a link on the blog post to a doc about how 3-phase DC motor controllers work). The motor control board takes care of position sensing. AFAIK, you can’t set the position via the serial protocol as you could a stepper or servo, only the speed and direction.

    1. Unfortunately, most motors have to be disassembled and rewired for the intended average speed of the rotor/shaft. I don’t know how well these would work without modification. You could add a gearbox but that would reduce efficiency dramatically.
      There is an overwhelming amount of designs and ideas online. Good luck if you try it out!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s