Power your robot, chair, couch, with an overboard! Gives anything two wheels drive!
To make the experience fit your profile, pick a username and tell us what interests you.
We found and based on your interests.
In order to solve this point :
"we cannot :
We must check :
But in this case, how can we drive a light robot with this platform?
A solution would be to modify / rewrite motherboard source code (runs on STM32 F103). For now, I have not found any projects about it.
Project has been done in Amiqual4Home Equipex Creativity Lab - https://amiqual4home.inria.fr/
Power your robot, chair, couch, with an overboard! Gives anything two wheels drive!
Hoverboard are chinese low cost products. Hacking it can give a meaningful platform to give a two wheels drive platform to anything
### hardware
### Components Analysis
Refer ifixit for a detailed analysis of hoverboard.
Interesting parts are :
### Daughterboard / motherboard communication
Daughterboard can be used either on right/left. So we only bought 1 daughterboard to decode Daughterboard / motherboard exchanged data.
We connected a single daughterboard to left and left motherboard/daughterboard connectors.
In this case when rotating daughterboard, wheels are rotating in two different directions.
#### Protocol
Probing a logic analyser on daughterboard 4 wire connectors gives some interesting info :
Is it a standard protocol?
In order to get UART parameters :
Daughterboard send data to motherboard using 3.3V UART @26300bps - 1 stop bit - no parity bit.
Here are decoded data with UART analyzer in Salae Logic software :
Do not move daughterboard, power motherboard and read decoded data. We can see :
Now let's play with photodiode used in daughterboard contacts :
If 170 value is sent to motherboard : motors won't be driven (it means user to not have its feet on hoverboard)
4 remaining bytes must be decoded : two of these bytes repeats.
Rotating daughterboard gives indication :
Rotating around 0 helps us :
Angular value is coded in 2x9bits signed integer value (2's complement)
We can check it is only an angular value applying linear acceleration to daughterboard. In this case angular value do not change.
## hardware
In order to control hoverboard we need an external MCU to :
Different MCU can be used, we could use UART bitbanging libraries... But a nice solution is to use teensy 3.1/3.2 :
### software
As we saw in our first tests, when same daughterboard is connected to two motherboards/daughterboard connectors :
In this case same angular value on left foot and right foot is sent to motherboard.
In order to have hoverboard moving forward / backward we must apply for example :
From that simple code is provided here :
[Refer code](https://github.com/OpHaCo/hoverbot/blob/master/hoverbot_embedded_software/teensy_hoverboard/teensy_hoverboard.ino)
In
echoGoForward()
function : it reads current angular value from daughterboard to control hoverboard in forward direction.
After testing we can easily :
But we cannot :
We can suppose, closed loop algorithm on motherboard does not support forward / backward mooving when it is not under load.
## Commands
TODO
### Control commands
TODO
## Events
TODO
## References
* http://www.electronicspoint.com/threads/reverse-engineering-a-hoverboard-with-wheels-accelerometer.279098/
* http://drewspewsmuse.blogspot.fr/2016/06/how-i-hacked-self-balancing-scooter.html
## TODO
Create an account to leave a comment. Already have an account? Log In.
Become a member to follow this project and never miss any updates
By using our website and services, you expressly agree to the placement of our performance, functionality, and advertising cookies. Learn More
Seeing that you guys are smarter than me, especially regarding reverse engineering strange software, has there been any project to create a driver board which could be directly driven by a computer such as the raspberry pi?
I am looking into using and modifying the scooter controllers available cheap on ebay. Then control them with a PI board...
Any intrest?
william...