Direct from the “Just Because I Can” department, this blog post by [Eddie Zhang] shows us how easy it is to get the Xiaomi robotic vacuum cleaner working as what might be the world’s most unnecessary Spotify Connect speaker. Will your home be the next to play host to an impromptu performance by DJ Xiaomi? Judging by the audio quality demonstrated in the video after the break, we doubt it. But this trick does give us a fascinating look at the current state of vacuum hacking.
For the first phase of this hack, [Eddie] makes use of Dustcloud, an ongoing project to document and reverse engineer various Xiaomi smart home gadgets. Using the information provided there you can get root-level SSH access to your vacuum cleaner and install your own software. There’s a sentence you never thought you’d read, right?
With the vacuum rooted, [Eddie] then installs a Spotify Connect client intended for the Raspberry Pi. As they’re both ARM devices, the software will run on the Xiaomi bot well enough, but the Linux environment needs a little tweaking. Namely, you need to manually create an Upstart .conf file for the service, as the vacuum doesn’t have systemd installed. There goes another one of those unexpected sentences.
We’re certainly no stranger to robotic vacuum hacking, though historically the iRobot Roomba has been the target platform for such mischief. Other players entering the field can only mean good things for those of us who get a kick out of seeing home appliances pushed outside of their comfort zones.
[Thanks to Ohmohm for the tip.]
Yes but which robotic vacuum has relatives exploring a certain country for explosives? (Not Iraq.)
If you are really interested in taking control of this line of vacuums, there is Valetudo, an alternate firmware that disconnects the cloud connectivity of the vacuum and creates a web interface, home assistant functionality. More details here:
https://github.com/Hypfer/Valetudo
Tool setup to compile the firmware for you:
https://dustbuilder.xvm.mit.edu/
PC Tool to help you install and control the vacuum manually afterward:
https://github.com/LazyT/rrcc
Thank you very much for this! I have a Roborock S51 which I refuse to connect to my wifi and thus I have to manually press the button each time (not big of a hassle, but clearly only using a fraction of the possibilities.)
About a year ago the hacking possibilities were limited or very convoluted, but now it seems there are finally simple firmware images and windows tools available and I might even connect it to my OpenHAB server, sweet!
Pop question: why are there no howtos to directly flash – with FTDI and Arduino IDE – like with Sonoff devices? I tought those vacuums run on ARM boards, so there should be some connectors when you open them??? (Please keep in mind I am more of a windows-guy but not afraid to use a screwdriver with a good howto ;-), instead of jumping trough linux-install-hoops …
The only difficult part is getting your AES Token from the vacuum. To do that, you can install a hacked version of the Mi-Home app and setup your vacuum with your wifi.
https://www.reddit.com/r/homeassistant/comments/b4t4dq/how_to_get_your_roborock_vacuum_token_on_android/
It will then show you the token. Once you have that, installing the firmware is a breeze.
A great way through thorough cleaning. I want to get some of it these days, thanks or the insight!