So I just bought one of those Xiaomi m365 kickscooters. Fantastic hardware, great user experience.
But it's a bit limp. (top speed of 25km/h is quite good. But it doesn't do inclines well with a 100kg+ driver)
So here is my plan:
VESC driver. (I might splurge on the v6. Though I really don't need even half of the power)
I want to make it nice so I need to integrate it with the scooters controls and lights. I suppose the best way to do this is to hook up a Microcontroller via CAN to drive the auxilary stuff? Maybe even a small display.
Particular features I need here are.
- Some way to drive the brake light. Either through VESC IO or CAN message. (Looks solvable. Probably configure slave VESC and listen for it's CAN_PACKET_SET_CURRENT_BRAKE message)
- The brake leaver switch should also engage full engine brake. (Partially solved. Set Speed set-point to 0 via CAN)
- Regen braking when letting go of throttle (Needs verfication that PID Speed mode kicks in brake)
- Power in and out on CAN (Solved: CAN_PACKET_STATUS current and duty fields)
- Voltages on CAN
- Temperature on CAN
- Speed governor mode would be really nice to have (Partially solved. PID Speed mode. No solution for set point hold. May need to put it into external microcontroller and drive VESC via CAN CAN_PACKET_SET_RPM)
- Regen brake strength via runtime setting would be nice too. (Solved: CAN message CAN_PACKET_SET_CURRENT_BRAKE_REL)
One thing I noticed while reading documentation and looking at screenshots.
There is a setting for regen currents. But I see no provisioning for over voltage protection. Suppose I drive downhill with a fully charged battery? Will it blow up my battery?
Battery BMS. I really don't want to go without one TBH. At least for charging. Coulomb counting vs. voltage monitoring would also be a great benefit.
Does anyone know a nice 10S BMS sized appropriately for a small kick scooter? Ideally with CAN bus too.
Does VESC have any provisioning ro play nice with BMS? I'm thinking regen braking again.
I will soon start buying hardware. But right now I want to play with the idea a little first...
Any tips and ideas are welcome.
[ Updated with results as far as I know them ]