Hacking my Robot Vacuum

UART Hacking my Dreame Z10 Pro Robot Vacuum Link to heading

Homelab

Most people don’t buy a $600 Robot Vacuum on Amazon, open the box, immediately pry the plastic cover off the machine and attach jumper cables to a USB device on their computer. In this case, I am not most people. I had purchased the Dreame Z10 Pro Vacuum due to its known compatability with the Valetudo project. The goal of this project, clearly defined on their “Why Valetudo” page, is to provide a vendor-agnostic solution for robot vacuums, free of cloud connectivity, server dependency, marketing, paywalls, ads, and pay-to-use features. I find the idea that accessing the robot vacuum in your home requires you to connect to a remote server…a bit absurd. For more details on the background and methodology into the research into IoT hacking, check out this interesting presentation at DEFCON 26 from Dennis Giese.

This was a fun project and was my first real opportunity to learn about Universal Asynchronous Receiver/Transmitter (UART) shells using a 3.3V USB to TTL Serial Adapter. Following the instructions on the Valetudo website was very straightforward, and I easily gained root access to the vacuum. I was then able to install Valetudo and now had a locally controlled robot vacuum! I subsequently interfaced Valetudo with my local Home Assistant instance for ease of use and automation.