Roomba 980 Wifi Connectivity Reverse engineering

Thanks so much for these code snippets!

based on these I wrote a bash script that does it from the command line. see my script on github: https://github.com/mgafner/roomba980v1.9.2

anyway for the basics, for Linux users:
you may use curl to send commands to the irobot.

first step, get password:

replace HOST with https://your-roboter/uml

curl --insecure -X POST -H “Content-Type: application/json” -d ‘{“do”:“get”,“args”:[“passwd”],“id”:1}’ HOST

answer should look like:

{“ok”:{“passwd”:“ouMNGS7Lxk1UR7kP”},“id”:1}

encode the authentication header:

echo -n user:ouMNGS7Lxk1UR7kP | base64 dXNlcjpvdU1OR1M3THhrMVVSN2tQ

get the BLID:

curl --insecure -X POST -H “Content-Type: application/json” -H “Authorization: Basic dXNlcjpvdU1OR1M3THhrMVVSN2tQ” -d ‘{“do”:“get”,“args”:[“sys”],“id”:2}’ HOST

answer should look like this:

{“ok”:{“umi”:2,“pid”:2,“blid”[135,49,152,16,37,58,59,110],“sw”:“v1.2.9”,“cfg”:0,“boot”:3456,“main”:7890,“wifi”:517,“nav”:“01.08.04”,“ui”:2346,“audio”:32,“bat”:“lith”},“id”:2}

command to start the irobot:

auth_header=$(echo -n user:$PASSWORD | base64)

curl --insecure -X POST -H “Content-Type: application/json” -H “Authorization: Basic $auth_header” -d ‘{“do”:“set”,“args”:[“cmd” {“op”:“start”}],“id”:3}’ HOST

1 Like