Skip to content

Rooting a robot vacuum

See these resources:

  • -- registry for which model to buy, and details on how to root the model
  • -- firmware builder
  • -- faq
  • -- valetudo instructions
  • root instructions (differs on your model, see below for dreame/roborock)
    • (master PDF)
    • (instructions for Valetudo)
  • home assistant integration
    • setup MQTT with Valetudo and it'll automatically pick up your robot
      • this will give home assistant visibility of your robot
    • to control the robot, add this card:
      • the best card for controlling your robot, like-for-like to the native application, if not better
      • you can customise pretty much anything (including zone placement on the map, icons, etc)
    • to get your map on the card, follow these steps:
      • install this plugin via HACS:
      • configure your calibration_source like below from the README
      • your robot should appear with the correct map
type: custom:xiaomi-vacuum-map-card
entity: vacuum.valetudo_yourvacuum
vacuum_platform: Hypfer/Valetudo
  camera: camera.valetudo_vacuum_camera 
  camera: true 
  topic: valetudo/your_topic  

Notes for Dreame L10s Ultra rooting

TLDR: other than the USB 2.0 shenanigans mentioned earlier, it was pretty smooth... make sure you actually have a USB 2.0 port. Make sure you read the PDF completely and understand the steps.

  • it went pretty well following the PDF:
    • make sure you follow the instructions in order clearly, and you read ahead
    • make sure you got the commands preprepared for when you use fastboot
      • there's a cheatsheet here with the commands you need:
  • you cannot do UART, so have to do USB with debug pins method
  • it only grounded correctly if i grounded BOOT_SEL to the ground pin on the bottom row (4th one at the bottom)
    • you'll know if it's grounded correctly/in debug mode cause the robot lights will start flashing and no jingle/sound will play
  • to get a usb 2.0 cable, i grabbed a old mouse, opened it up and pulled the USB cable out of the PCB plug
  • suggest taping the 5v on the USB A (first pin) just in case the red wire is not the 5v one, so you don't fry anything
  • i did it on windows 11, with a USB 2.0 port
    • turns out a USB 2.0 port is super important
    • you will find that you cannot flash the boot1 img later if it's over usb 3.0+
    • unfortunately i had no usb2.0 port... despite what the instructions say I tried using usb C hub which had a usb 2.0 port on it
    • after replugging the cable a bunch of times it let me flash boot1 via theh ub
    • if you see: FAILED (data write failure (Unknown error)) it's cause you need USB 2.0 for the flash
  • if the device is not showing up in fastboot or being weird, you probably need to install the drivers mentioned in the PDF
  • it looks like the robot will exit debug mode after a few mins after you disconnect the BOOT_SEL pin and flash the firmware, so you might need to reboot it a few times if you're slow. you want to reboot and run the fastboot flash commands as quickly as possible later on
  • copy everything you run down in the terminal into notepad or somewhere safe
  • backup important stuff, from faq txt file
'dd if=/dev/by-name/private | gzip -9 > /tmp/backup_private.dd.gz'
'dd if=/dev/by-name/misc | gzip -9 > /tmp/backup_misc.dd.gz'
  • copy off via SCP or with the valetudo web server
  • don't lose your ssh credentials, write down the root password, or keep an ssh key