BotoX/xiaomi-m365-compatible-bms

Update code for Ninebot ESx

Neo003 opened this issue · 5 comments

Hello BotoX,
I try to update the bms code in order to work with Ninebot ES2/4 firmware.
As I understand, the main changes will be the NinebotMessage struct, the M365BMS struct and the M365BMS_RADDR / M365MS_WADDR constants. Is that right ?

Thanks for your help.

(sorry if I'm not on the good place)

BotoX commented

Dump the communication between the ESC and BMS on your scooter and see if the addr is different. The structures shoukd be the same

https://github.com/etransport/ninebot-docs/wiki/protocol
Xiaomi only has bAddr whereas Ninebot has bSrcAddr & bDstAddr
Request from ESC to BMS:
bSrcAddr = 0x20 bDstAddr = 0x22/0x23
Reply from BMS to ESC:
bSrcAddr = 0x22/0x23 bDstAddr = 0x20
Structure differs, Ninebot pre is 5A A5. You can check other differences in the link above.
I added the ESC<->BMS baud rate patch to the Ninebot toolkit, so on that side, everything is ready.

It matches what I found. I'll try it in a moment. Thanks a lot.

@Neo003 @lothean-dev hi, did you succeed in creating Ninebot compatible BMS?

Sorry, I've never worked on it, I don't have enough time to try that.