Hi! I am in the process of converting the hoverboard into a DIY onewheel. As I am planning to introduce some new modifications compared to other conversions which I found on the internet I will be documenting the process here.
My plan is:
- use motor built from 2 hoverboard motors with 3d printed rim, based on ddirito model
- use of 3 induction sensors as footpad sensors (PINDA probes from Prusa’s printers)
- hacking original hoverboard firmware and replacing it with FOC firmware + my additional code for balancing to be able to mimic onewheel behavior a bit more.
- as a frame, I will be using aluminum L profile + 3D prints
I just finished doing the full Cad model and converted the motors into one big motor. I had to compensate for the difference in magnet alignment by rotating one motor by 4.2 degrees.
The tire I bought from Aliexpress: 10x6.00-5.5
And inner tube: 13X5.00-6
From the code side, I managed to flash stock firmware to the hoverboard mainboard and sensor board and I also implemented a basic balance algorithm.
From the nice features, as hacked firmware allowing me to use only one signal board, I have a second signal board connector free. I managed to add Bluetooth (some Chinese clone of HC-10 BLE) module there, which, for now, is allowing me to do remote debugging of my code and in the future, I am planning to write an android app to have a live view of speed, battery level, and be able to tune PID controllers without need of reflashing the board every time. I recorded a short video of my PID algorithm, during the check if the board is behaving in the same manner as on the original firmware. Video
My cad model:
Came here to start a fire and fan the flames. Looks like you might be a bit ahead of where I was expecting.
No one wheel knowledge but I’ll follow long. Good luck.
Till now I have the motor assembled with the tire. This week I want to finish with the basic version of the frame to be able to start messing with the code. I want to implement curse control which will allow going forward without tilting the board forward all the time.
Let’s see how far I can go
Looking forward to what you are able to accomplish. I have a diy one wheel from a hover board and desperately want to change how it rides to be more like my one wheel xr. Came from your reddit post!
This looks hard! I wish you the best of luck!
Hi! I had some crazy time at work and I had some delays with the build.
Now I have almost everything 3d printed but for Christmas time I am going to my home country, so real development will be impossible.
During this time I will focus on bluetooth protocol to log firmware configuration and collect stats of the board.
No idea what info could be important in the future but for now I want to collect: speed, angle, battery voltage, battery current and status of the sensors.
Some photos how it looks like. Then I will have everything printed and confirmed that is working I will release the CAD models.
@Vfear Yeah, I was already checking your code before I decided to hack my hoverboard mainboard. I guess I will be checking again when I will have everything up and running and I will start working fully on ride performance.
Just don’t do the firmware for the side board. Sideboards have many technical differences on different hoverboards. And you won’t be able to make a universal firmware for everyone. I think it’s better to make an external module on stm32 and mpu - which everyone can buy and connect to the main board. What do you say?
@bula87 maybe I’m wrong, but I was told so before … but there are a lot of mpu variants on the side boards, you need to understand this
Be honest I don’t know, my hoverboard was fully supported by FOC firmware. And FOC firmware changed protocol to communicate with the side board. So without flashing also side boards the firmware on the mainboard is not able to communicate…
To solution could be to leave stock firmware on the side boards and bring back official communication protocol. But then we don’t have confirmation that every side board is using the same protocol…
I would say. It is easier to write code for any side board with different MPU and just use the same data to send to main board. I guess even arduino with MPU6050 will do the job.
As I mentioned before, I am spending Christmas far from my home, so I had to focus on some side tasks.
I tried my skills with Flutter to write app for Android devices.
- List bluetooth devices
- Connect with DIY Onewheel
- Collect real date over Bluetooth
- Display data as animated Onewheel and graphs
- Configuration page to sett all parameters
For now I am sending:
- side angle
- battery voltage
- battery current
- left sensor status
- right sensor status
At the movie the data are coming from Bluetooth connection but for tests I am using Arduino to send data messages.
This is my second day writing in Flutter and I have 0 skills in terms of graphic design… So app is ugly and slow… but is working
@bula87 You are very cool! =)
Happy New Year!
It is necessary to work out an algorithm for maintaining the correct angle depending on the speed and strength of the load. Central position. This specialist talked a lot about this: VESC 5.3 New Balance Tuning Features for DIY Onewheels - YouTube
Yeah, i just came back and yesterday I wanted to finally assemble my board and mainboard just exploded when I turn it on
In following days I will try to buy new hoverboard and keep going
do not forget, after disconnecting the battery, discharge the capacitors by pressing the power button
Ok at the end of the week I should have next hoverboard, I hope electronic will be do correct one and nothing will explode
In the meantime I added new feature to the app and created Google development account so at one point I should be able to upload my app to the Google store.
Currently supported features:
- connect to the board via Bluetooth
- receive data about: speed, battery voltage, battery current, board angle and show them as a graph (TODO: export to csv)
- receive data about: speed, angle and side angle and show it at the main screen
- use phone GPS location to log the ride path and show it on the map (TODO: export data to csv)
If you have any suggestions about functionality that I can add let me know. I was thinking about password protected connection and possibility to lock the board to prevent stealing. My Android development skills are pretty limited but I will see what I can do.
iOS support would be cool (but not all bluetooth modules support iPhone)
With iOS will be hard at the moment because the library to communicate via Bluetooth is not supporting iOS also to do any development for iOS you need paid development account.
And as I don’t even have a iPhone it wont be a case soon