JohnieBraaf / Robomaster-Micropython

Robomaster S1 - Micropython CAN BUS controller
GNU General Public License v3.0
25 stars 4 forks source link

Inquiry about the wiring connection #2

Open Alex-Beh opened 1 year ago

Alex-Beh commented 1 year ago

Hi,

Thanks for open sourcing this great project. Recently, I have just bought a Robomaster S1, and I would like to hijack it and make it my own robot.

Can I use a usb-can driver and connect the robot to a raspberry pi/nvidia nano instead of STM32 microcontrollers? How you reverse engineer and come out the command_list? From a CAN Analyzer?

[From a young engineer who just started to get his hand dirty with the can bus communication protocol....

JohnieBraaf commented 1 year ago

Hi Alex, thanks not a problem at all.

To answer your questions, there are 2 routes in hijacking the S1.

1) Root expoloit of the Control unit (with the antennas)

2) Reverse engineer the protocol on some level and create control board

If you would like to go down the second route, because its a nice challenge, my pointers are:

20230417_210326

Much of the protocol is already readable in the EP SDK repository. Have a close look at the pack / unpack code and especially where it is used, because that is exactly the same packet structure. DJI refers to it as proto commands see https://github.com/dji-sdk/RoboMaster-SDK/blob/master/src/robomaster/protocol.py#L237

And yes, you can use a raspberri pi, its an improvement to my micropython attempt, because its lacking some speed. It can be done in micropython, but probably some performance critical tasks need to be rewritten in C/C++.

Let me know if it helps, and happy hacking 👍 If you like to connect, send me a message on Linkedin