How to put firmware on the robot vacuum cleaner Xiaomi: official and alternative ways

Why Xiaomi robot vacuum cleaners are updating the firmware?

Xiaomi’s robot vacuum cleaners (including Mi Robot Vacuum, Viomi, Dreame, and Mijia) regularly receive firmware updates that improve their performance. However, not everyone knows that firmware can be installed not only automatically through the Mi Home app, but also manually – for example, to recover from a crash or install alternative versions with advanced features.

Main reasons for manual firmware: 1) Recovery after β€œbricking” (when the robot stops responding to commands), 2) Install custom firmware with Valetudo support (open alternative to Mi Home), 3) Recoil from the previous version if the new one works unstable, 4) Unlock hidden functions (for example, zoning without Xiaomi cloud servers).

But it is important to understand that the wrong actions can turn your vacuum cleaner into a useless β€œbrick”.

In this article, we will discuss all the current methods of firmware (official and informal), discuss in detail the preparation, risks and nuances for different models. If you are a beginner, start with the official method. ADB, SSH and third-party firmware.

πŸ“Š What kind of robot vacuum cleaner Xiaomi you have?
Mi Robot Vacuum-Mop 2 Lite
Viomi V3
Dreame D9
Mijia 1C
Another model
I haven't bought it yet.

Official update via Mi Home: the safest way

If your robot is connected to the Mi Home app (or Xiaomi Home for new models), the firmware updates automatically, but sometimes you need to force the process to start, for example, if the update is β€œhangy” or does not come for a long time.

How to check and install the update through the application:

  1. Open Mi Home and select your robot vacuum cleaner.
  2. Go to the device settings β†’ Update the firmware.
  3. If a new version is available, click Update and wait until it is completed (the robot must be on base and connected to Wi-Fi).

Note

Dreame D10 Plus

⚠️ Attention: If during the official update, the robot disconnects from the network or becomes discharged, it can go into recovery mode. USB-OTG or UART.

The update speed depends on the model:

  • πŸ”Ή Mi Robot Vacuum-Mop 2 Pro: ~15 minutes (update via cloud).
  • πŸ”Ή Viomi V2: Up to 30 minutes (requires a reboot).
  • πŸ”Ή Dreame W10: It is updated in parts, can take up to an hour.

πŸ’‘

Official updates via Mi Home do not reset the robot's settings, but can remove user maps of the premises. It is recommended to back up the maps before upgrading.

Preparing for hand firmware: what to do before the start

Hand-held firmware is always a risk. To minimize problems, prepare in advance:

1. Find out the exact model and firmware version:

  • πŸ“± At Mi Home: Settings β†’ About the device β†’ Firmware version.
  • πŸ–₯️ Through ADB (For advanced: connect to the TCP/IP and execute the command: cat /etc/mirobo.version

2. Download the correct firmware:

  • πŸ”— Official firmware: [Xiaomi Firmware Updater](https://xiaomifirmwareupdater.com/) (Choose a version for your model!).
  • πŸ”— Custom firmware: [Valetudo RE](https://valetudo.cloud/) (Only for experienced users).

Example of firmware file name

rockrobo.vacuum.v2_0000000000_v11_002620.fullos.pkg

Mi Robot Vacuum 2

Prepare the equipment:

  • πŸ”Œ USB-OTG cable (for firmware through the port on the robot).
  • πŸ–₯️ Computer with Windows/Linux (work-in ADB or Python scripts).
  • πŸ”‹ Charger: The robot must be charged at least 50 times%.

I got the exact robot model.|I downloaded the firmware for my version.|Prepared. USB-OTG cable|Charging a robot vacuum cleaner|I have made a backup of the cards (if any)-->

Manual firmware via USB-OTG: step-by-step instructions

This method is suitable for most Xiaomi and Viomi models (e.g. Mi Robot Vacuum 1S, Viomi V3). The firmware is installed from a flash drive through a hidden engineering mode.

Step 1. Preparation of the flash drive:

  • πŸ’Ύ Format the flash drive into FAT32 (size).
  • πŸ“ Create a miio folder (at the root of the flash drive) and place a firmware file with the.pkg extension there.
  • πŸ”„ Rename the file to update.pkg (important!).

Step 2: Activation of the engineering mode:

  • βš™οΈ Turn off the robot (press the power button for 5 seconds).
  • πŸ”Œ Connect the flash drive through USB-OTG adapter to the robot port (usually located under the lid next to the reset button).
  • πŸ”˜ Press the Home button (or Spot Clean for some models) and turn the robot on, holding the button for 10-15 seconds until the indicator flashes.

Step 3. Start the firmware:

  • πŸ”„ The robot will automatically detect the update.pkg file and start the update (the indicator will flash orange).
  • ⏳ It takes 10 to 20 minutes. Don't turn off the power! The robot will restart several times.
  • πŸŽ‰ Ready: the indicator will turn green, and a new version of the firmware will appear in the application.

⚠️ Warning: If the robot makes a beep after the firmware and flashes red, then the firmware file didn't fit. Try another version or recover through the backup. UART (see next section).

What if the robot can’t see the flash drive?
1. Check that the flash drive is formatted in FAT32 (not NTFS or exFAT). 2. Make sure the file is called update.pkg (no extra characters). 3. Try another USB-OTG adapter - some robots do not support adapters with additional resistors. 4. Viomi models may require a viomi folder instead of miio.

Firmware via UART (for experienced users)

If the robot is fully bricked (no buttons, no switches on), all that remains is firmware through UART, a low-level debugging port, which requires soldering and working with Python or Tera Term.

Equipment required:

  • πŸ”§ Solding iron and solder (to connect to contacts) UART board-board).
  • πŸ–₯️ USB-to-UART adapter (e.g., USB-to-UART, CP2102 or FT232).
  • πŸ”Œ Wires "dad-mama" to connect to the board.

Step-by-step:

  1. Disassemble the robot: Remove the top cover (usually on 4-6 screws under rubber legs). Find a board labeled UART or DEBUG (usually next to the Wi-Fi module). Example of location for Mi Robot Vacuum 1: Contact Purpose of GND Wire Color Earth Black TX Data Transmission White/Yellow RX Data Reception Green 3.3V Power (not always necessary)
  2. Connect adapter: Connect GND→GND, TX→RX, RX→TX. Don't connect 3.3V! The robot must be turned off.
  3. Open Tera Term or Screen in Linux with speed: 115200 bits of data: 8 stop bits: 1 parity control: no
  4. Turn on the robot: Power up, the terminal should have boot logs. If not, check the soldering.
  5. Fill in the firmware: Use the rkflashtool utility (for Rockchip chips) or esptool (for ESP32 modules). Team example for Mi Robot Vacuum 1: python rkflashtool.py -f update.img -v

πŸ’‘

If you are not sure about soldering, use spring pins – they allow you to connect to the board without soldering, reducing the risk of damage.

Installation of custom firmware (Valetudo, OpenMiHome)

Custom firmware such as Valetudo allows you to control a robot without Xiaomi cloud servers, adds support for Home Assistant and advanced settings. However, this violates the warranty conditions and can lead to locking the device.

Supported models (for 2026):

  • πŸ€– Mi Robot Vacuum 1/1S (full-time).
  • πŸ€– Viomi V2/V3 (partial support, there may be card bugs).
  • πŸ€– Dreame D9/Z10 Pro (experimental support).

Instructions for installation of Valetudo:

  1. Unlock. SSH-Access: You need to get root access through exploit (for example, mirobo-exploit). https://github.com/Maxmudjon/com.xiaomi-miio/blob/master/mirobo-exploit.sh chmod +x mirobo-exploit.sh./mirobo-exploit.sh <IP_robot>
  2. Connect to SSH: Login/password by default: root/1234567890 (for some models). Set Valetudo with one command: wget -qO- https://install.valetudo.cloud | sh
  3. Set up a web interface: After installation, open in the browser http://<IP_robot> And follow the customization wizard.

⚠️ Warning: After Valetudo is installed, the robot will disconnect from the Mi Home and stop receiving official updates. UART.

Frequent mistakes and their solutions

Even if you follow the instructions, you can have problems, and here are the most common ways to fix them:

Mistake.Reason.Decision
The robot blinks red and squeaksInappropriate firmware versionCheck the model and download the correct.pkg file.
USB firmware does not startInactive engineering modeRepeat the Home button holding for 15+ seconds
After firmware, the robot does not connect to Wi-FiResetting network settingsSpot Clean + Home 10 seconds to reset
Valetudo not launchingLack of space in /dataClear the cache: rm -rf /data/* (caution!)

If the robot doesn’t respond at all (even to charging), try a hardware reset:

  • πŸ”‹ Turn off the battery for 10 minutes (unplug the connector from the board).
  • πŸ”Œ Connect the charger and hold the power button for 30 seconds.
  • πŸ”„ If the indicator is on fire, repeat the firmware through USB.

πŸ’‘

90% of firmware problems are due to the wrong version of the file or interruption of the process. Always check the hash amount of the downloaded firmware (MD5) before installing it.

Can I flash a Xiaomi robot vacuum cleaner without a computer?
For manual firmware (via USB or UART), you always need a computer or at least a smartphone with OTG support and a terminal client (for example, Termux for Android).
How to return stock firmware after installing Valetudo?
You need to download the official firmware for your model and sew it through UART (The alternative is to use a script. restore_stock.sh Valetudo repository, but it doesn’t work on all models.
Why did the robot get worse after the firmware?
Possible causes: πŸ”„ New firmware has changed navigation algorithms (try to roll back on the previous version). πŸ—ΊοΈ Reset the maps of the premises (recreate them manually). πŸ”‹ Weak battery (firmware could reset battery calibration) Check settings in Mi Home or Valetudo (if installed).
Can I run a Dreame robot vacuum cleaner through the same methods?
Dreame models (e.g, D9, D10) They use similar methods, but: πŸ”§ For UART You may need another adapter (for example, CH340). πŸ“ The folder on the flash drive should be called dreame, not miio. πŸ”’ Some models block the firmware through USB β€” need ADB-Always look for instructions specifically for your Dreame model!
Where to get firmware for an old Xiaomi model (for example, Mi Robot Vacuum 1)?
Official firmware for outdated models can be found: πŸ”— On the website [Xiaomi Firmware Updater](https://xiaomifirmwareupdater.com/) (archive). πŸ”— In GitHub repositories (e.g, [OpenMiHome](https://github.com/Maxmudjon/com.xiaomi-miio)). πŸ”— Forums 4PDA (Attention: Third-party firmware may contain malicious code. Check the hash amounts of files!