Following this guide: https://valetudo.cloud/pages/installation/dreame.html#uart
Now, trying to summary that guide and explain in detail all + add more context with photos and so, from this Xiaomi X10+ version.
- You will need:
- The Dreame Breakout PCB + extension (breakout breakout)
- A 3.3V USB to TTL Serial UART Adapter (like CP2102 or Pl2303) (I have a FT232RL/FTDI)
- A FAT32 & MBR-formatted USB Stick preferably with an activity LED (just a simple pendrive that will trigger the "magic")
- Some dupont cables (and their male-male connectors)
- A laptop with Linux
- A Xiaomi X10+ (factory reset, IMPORTANT!)
- Download the Valetudo USB IMG. Then, prepare the USB stick:
- Download this zip archive, unzip it and flash the contained .img to the USB stick using e.g. dd or other tooling used to flash images to block devices.
sudo dd if=./dreame_uart_root.img of=/dev/diskN bs=1M- If all is OK, the mounted USB will be a FAT32 device with a
duck.txtfile in it.
- Take serial number from the vacuum and transform it to root password
-
The root password is calculated from the serial number that can be found on a sticker in the vacuum (remove the dust container and you will find the sticker with a QR in the bottom, NOT IN THE CONTAINER).
-
Take the serial number first (if there are 2 lines of characters, take all)
-
To get the password, use the following Calculator
-
or enter the full SN (all uppercase, without spaces, all characters joined) into this shell command
echo -n "<serial_number_without_spaces>" | md5sum | base64
Example:
Sticker: 12716/EFACWF4ZF1
6889 WW: 2223
The
12716/EFACWF4ZF16889(serial number) will outputZWY1NmI2YWRmNzA3MWI1ZGJlOTU0ODQ5Mjg2YjIwMDQgIC0K(SSH root password)
- Prepare the Valetudo build beforehand
- https://builder.dontvacuum.me/_dreame_p2114.html
- Mark the box
Prepackage valetudo - Fill the other fields SSH-key, SerialNumber, ...
- My selection on the firmware step was "p2114 (ver 1616, 07/2024) testing". Take it or any more recent.
- Download the tar.gz from the email.
- Connect PCB board, run screen and login
-
Connect PCB + extension and cables with the USB drive installed in the board (RX,TX,GND):
-
Run in the laptop:
screen /dev/ttyUSB0 115200,ixoff -
Power on the vacuum (3 second power button).
If you don’t see any logs, try swapping RX and TX. If you instead see some random characters, check your cabling.
User: root
Password: the one from the calculation on last comment (
ZWY1NmI2YWRmNzA3MWI1ZGJlOTU0ODQ5Mjg2YjIwMDQgIC0Kin the example)
- Connect to Robot WIFI AP (dreame-vacuum-....) and download the httpbridge
-
If you can’t see the robots Wi-Fi AP to connect to, it might have disabled itself because 30 minutes passed since the last boot. In that case, press and hold the two outer buttons until it starts talking to you.
-
Go to https://github.com/Hypfer/valetudo-helper-httpbridge and download a matching binary for your laptops operating system.
-
Run it in the laptop.
-
The server will create a new
wwwdirectory right next to itself as well as print out a few sample commands explaining how to download from and upload to it.
- Backup the vacuum
Before you continue with the rooting procedure of your robot, please make sure to create a backup of your calibration and identity data to allow for disaster recovery.
On the tty terminal, create the tar file with the backup and upload it to your laptop over WiFi:
tar cvf /tmp/backup.tar /mnt/private/ /mnt/misc/ /etc/OTA_Key_pub.pem /etc/publickey.pemcurl -X POST http://192.168.5.XXX:YYYY/upload -F 'file=@/tmp/backup.tar'(take IP and port from your running valetudo-helper-httpbridge)
- Upload Valetudo from your laptop, to your vacuum over WiFi
-
Put the Valetudo build (tar.gz file) in the
wwwlaptop directory. If not, the valetudo-helper-httpbridge will not serve it. -
On the tty terminal, download the Valetudo build on it, running:
cd /tmp && wget http://192.168.5.XXX:YYYYY/dreame.vacuum.pxxxx_fw.tar.gz(take IP and port from your running valetudo-helper-httpbridge)
- Install Valetudo
- Extract the
tar.gzin/tmp, it should be untared:tar -xvzf dreame.vacuum.pxxxx_fw.tar.gz. - Now, make sure that the robot is docked and then run the newly extracted installation script:
./install.sh - The robot will install the rooted firmware image and then reboot on its own. Please be patient.
- After the robot has finished the installation, you should see a new MOTD (message of the day) on your UART shell. It should look similar to this:
built with dustbuilder (https://builder.dontvacuum.me)
Fri 04 Feb 2022 10:08:21 PM UTC
1099
If you see that MOTD, the rooting procedure was successful.
You now have a rooted Dreame vacuum robot running Valetudo.
- Init the WiFi (with Valetudo :) )


