Here are some information I collected over time of my own vacuum robots and some information I found elsewhere. This table is far from complete, as I still need to sort my documents and files ;) If you find a mistake, feel free to contact me (dennis [at] dontvacuum.me).
Robot hardware and firmware
Robot features
Rootability, custom firmware, config files and teardowns
Pictures of models
Modelname | Model ID | Codename | Firmware | Soundfiles | SoC | RAM | Flash | MCU | WiFi | OS (Kernel) | Year |
---|---|---|---|---|---|---|---|---|---|---|---|
Dreame Robot Vacuum W10 | dreame.vacuum.p2027 | p2027 | X=enc(2x), signed, sqfs | tar.gz, unsigned | Allwinner MR133 (4x) | 256 MByte | 128MByte SPI | GD32F303*ET6 | RTL8189FTV (6189N-SFC) | OpenWRT (4.9.x) | Q4/2021 |
Dreame Robot Vacuum D9 Max | dreame.vacuum.p2259 | p2259 | X=enc(2x), signed, sqfs | tar.gz, unsigned | Allwinner MR112 (2x) | 128 MByte | 128MByte SPI NAND | OpenWRT (4.9.x) | Q3/2021 | ||
Roborock S4 Max | roborock.vacuum.a19 | C=enc(AES-256-CBC), signed (RSA), sqfs | B=enc, signed, sqfs, ogg | Allwinner R16 (4x) | 256 MByte | 256MByte NAND | STM32F103VCT6 | RTL8189ETV | Ubuntu 14.04 (3.4.x) | Q4/2020 | |
Dreame Robot Vacuum-Mop F9 | dreame.vacuum.p2008 | p2008 | X=enc(2x), signed, sqfs | tar.gz, unsigned | Allwinner MR133 (4x) | 512 MByte | 256MByte NAND | GD32F303*ET6 | RTL8189FTV (6189N-SFC) | OpenWRT (4.9.x) | Q2/2020 |
Xiaomi Vacuum 1C | dreame.vacuum.mc1808 | p1904 | X=enc(2x), signed, sqfs | tar.gz, unsigned | Allwinner MR133 (4x) | 512 MByte | 256MByte NAND | GD32F303*ET6 | RTL8189FTV (6189N-SFC) | OpenWRT (4.9.x) | Q4/2019 |
MOVA Z500 Robot Vacuum and Mop Cleaner | dreame.vacuum.p2156o | p2156 | X=enc(2x), signed, sqfs | tar.gz, unsigned | Allwinner MR133 (4x) | 512 MByte | 256MByte NAND | GD32F303*ET6 | RTL8189FTV (6189N-SFC) | OpenWRT (4.9.x) | Q4/2021 |
Viomi V2 | viomi.vacuum.v6 | zip, sqfs, unencrypted | Allwinner A33 (4x) | 512 MByte | 256MByte NAND | GD32F103VCT6 | RTL8189ETV | OpenWRT (3.4.x) | Q2/2019 | ||
Roborock S7 | roborock.vacuum.a15 | tanoss | H=enc(AES-256-CBC), signed (RSA), sqfs | B=enc, signed, sqfs, ogg | Allwinner R16 (4x) | 256 MByte | 256MByte NAND | STM32F103VCT6 | RTL8189ETV | Ubuntu 14.04 (3.5.x) | Q1/2021 |
Roborock T7S | roborock.vacuum.a14 | tanoss | H=enc(AES-256-CBC), signed (RSA), sqfs | B=enc, signed, sqfs, ogg | Allwinner R16 (4x) | 256 MByte | 256MByte NAND | STM32F103VCT6 | RTL8189ETV | Ubuntu 14.04 (3.5.x) | Q1/2021 |
Mi Robot Vacuum-Mop P | viomi.vacuum.v7 | zip, sqfs, unencrypted | Allwinner A33 (4x) | 512 MByte | 256MByte NAND | GD32F103VCT6 | RTL8189ETV | OpenWRT (3.4.x) | Q2/2019 | ||
Mi Robot Vacuum-Mop P | viomi.vacuum.v8 | X= zip, sqfs, encrypted | Allwinner A33 (4x) | 512 MByte | 256MByte NAND | GD32F103VCT6 | RTL8189ETV | OpenWRT (3.4.x) | Q3/2019 | ||
Roborock S5 Max (Variant 2) | roborock.vacuum.s5e | rubyslite | C=enc(AES-256-CBC), signed (RSA), sqfs | B=enc, signed, sqfs, ogg | Allwinner R16 (4x) | 256 MByte | 256MByte NAND | STM32F103VCT6 | RTL8189ETV | Ubuntu 14.04 (3.4.x) | Q2/2020 |
Wyze Robot Vacuum (viomi clone) | wyze-robot | zip, sqfs, unencrypted | Allwinner A33 (4x) | 512 MByte | 256MByte NAND | GD32F103VCT6 | RTL8189ETV | OpenWRT (3.4.x) | Q4/2020 | ||
Conga 3090 (viomi clone) | conga-robot-3090 | zip, sqfs, unencrypted | Allwinner A33 (4x) | 512 MByte | 256MByte NAND | GD32F103VCT6 | RTL8189ETV | OpenWRT (3.4.x) | Q4/2019 | ||
Dreame Robot Vacuum D9 Pro | dreame.vacuum.p2187 | p2187 | X=enc(2x), signed, sqfs | tar.gz, unsigned | Allwinner MR133 (4x) | 256 MByte | 256MByte NAND | GD32F303*ET6 | RTL8189FTV (6189N-SFC) | OpenWRT (4.9.x) | Q2/2021 |
Dreame Robot Vacuum D9 | dreame.vacuum.p2009 | p2009 | X=enc(2x), signed, sqfs | tar.gz, unsigned | Allwinner MR133 (4x) | 256 MByte | 256MByte NAND | GD32F303*ET6 | RTL8189FTV (6189N-SFC) | OpenWRT (4.9.x) | Q4/2020 |
Dreame Bot Z10 Pro | dreame.vacuum.p2028 | p2028 | X=enc(2x), signed, sqfs | tar.gz, unsigned | Allwinner MR813 (4x) | 512 MByte | 512MByte NAND | GD32F303*ET6 | RTL8189FTV (6189N-SFC) | OpenWRT (4.9.x) | Q2/2021 |
Xiaomi Self-Cleaning Robot Vacuum-Mop Pro | dreame.vacuum.p2149o | p2149 | X=enc(2x), signed, sqfs | tar.gz, unsigned | Allwinner MR813 (4x) | OpenWRT (4.9.x) | Q1/2022 | ||||
Xiaomi Vacuum 2 Pro+ | dreame.vacuum.p2041o | p2041 | X=enc(2x), signed, sqfs | tar.gz, unsigned | Allwinner MR813 (4x) | 1 GByte | 512MByte NAND | GD32F303*ET6 | RTL8189FTV (6189N-SFC) | OpenWRT (4.9.x) | Q4/2020 |
Dreame Bot W10 Pro | dreame.vacuum.r2104 | r2104 | X=enc(2x), signed, sqfs | tar.gz, unsigned | Allwinner MR813 (4x) | OpenWRT (4.9.x) | Q1/2022 | ||||
Dreame Bot L10 Pro | dreame.vacuum.p2029 | p2029 | X=enc(2x), signed, sqfs | tar.gz, unsigned | Allwinner MR813 (4x) | 512 MByte | 512MByte NAND | GD32F303*ET6 | RTL8189FTV (6189N-SFC) | OpenWRT (4.9.x) | Q1/2021 |
Xiaomi Vacuum 1T | dreame.vacuum.p2041 | p2041 | X=enc(2x), signed, sqfs | tar.gz, unsigned | Allwinner MR813 (4x) | 1 GByte | 512MByte NAND | GD32F303*ET6 | RTL8189FTV (6189N-SFC) | OpenWRT (4.9.x) | Q4/2020 |
Roborock T7 | roborock.vacuum.a11 | tanose | F=enc(AES-256-CBC), signed (RSA), sqfs | B=enc, signed, sqfs, ogg | Allwinner R16 (4x) | 256 MByte | 512MByte NAND | STM32F103VCT6 | RTL8189ETV | Ubuntu 14.04 (3.4.x) | Q1/2020 |
Roborock P5 | roborock.vacuum.p5 | rubysc1 | D=enc(AES-256-CBC), signed (RSA), sqfs | B=enc, signed, sqfs, ogg | Allwinner R16 (4x) | 256 MByte | 512MByte NAND | STM32F103VCT6 | RTL8189ETV | Ubuntu 14.04 (3.4.x) | Q4/2019 |
Roborock S6 Pure | roborock.vacuum.a08 | rubysc1 | D=enc(AES-256-CBC), signed (RSA), sqfs | B=enc, signed, sqfs, ogg | Allwinner R16 (4x) | 256 MByte | 512MByte NAND | STM32F103VCT6 | RTL8189ETV | Ubuntu 14.04 (3.4.x) | Q1/2020 |
Roborock S5 Max | roborock.vacuum.s5e | rubyslite | C=enc(AES-256-CBC), signed (RSA), sqfs | B=enc, signed, sqfs, ogg | Allwinner R16 (4x) | 256 MByte | 512MByte NAND | STM32F103VCT6 | RTL8189ETV | Ubuntu 14.04 (3.4.x) | Q4/2019 |
Roborock T7 Pro | roborock.vacuum.a09 | tanosv | E=enc, signed, header in TZ | Qualcomm APQ8053 (8x) | 512 MByte | 4GByte eMCP | STM32F103VCT6 | Qualcomm | Android (3.18.x) | Q2/2020 | |
Roborock S6 MaxV | roborock.vacuum.a10 | tanosv | E=enc, signed, header in TZ | Qualcomm APQ8053 (8x) | 512 MByte | 4GByte eMCP | STM32F103VCT6 | Qualcomm | Android (3.18.x) | Q2/2020 | |
Xiaomi Vacuum Robot 1S | roborock.vacuum.m1s | ruby2 | B=enc, sign, header in TZ | A=enc, signed | Rockchip RK3326 (4x) | 512 MByte | 4Gbyte eMMC | STM32F103VET6 | RTL8189ETV | Linux (4.4.x) | Q2/2019 |
Roborock T4 | roborock.vacuum.t4 | rubyplus | A=enc(AES-256-CBC), signed (RSA) | A=enc, signed | Allwinner R16 (4x) | 512 MByte | 4GByte eMMC | STM32F103VCT6 | RTL8189ETV | Ubuntu 14.04 (3.4.x) | Q3/2018 |
Roborock S4 | roborock.vacuum.s4 | rubyplus | A=enc(AES-256-CBC), signed (RSA) | A=enc, signed | Allwinner R16 (4x) | 512 MByte | 4GByte eMMC | STM32F103VCT6 | RTL8189ETV | Ubuntu 14.04 (3.4.x) | Q3/2018 |
Roborock T6 | roborock.vacuum.t6 | tanos | A=enc(AES-256-CBC), signed (RSA) | A=enc, signed | Allwinner R16 (4x) | 512 MByte | 4GByte eMMC | STM32F103VCT6 | RTL8189ETV | Ubuntu 14.04 (3.4.x) | Q2/2018 |
Roborock S6 | roborock.vacuum.s6 | tanos | A=enc(AES-256-CBC), signed (RSA) | A=enc, signed | Allwinner R16 (4x) | 512 MByte | 4GByte eMMC | STM32F103VCT6 | RTL8189ETV | Ubuntu 14.04 (3.4.x) | Q2/2018 |
Roborock S5 / S50 | roborock.vacuum.s5 | rubys | ccrypt, unsigned | ccrypt, unsigned | Allwinner R16 (4x) | 512 MByte | 4GByte eMMC | STM32F103VCT6 | RTL8189ETV | Ubuntu 14.04 (3.4.x) | Q4/2017 |
Xiaomi Vacuum Robot | rockrobo.vacuum.v1 | ruby | ccrypt, unsigned | ccrypt, unsigned | Allwinner R16 (4x) | 512 MByte | 4GByte eMMC | STM32F103VCT6 | RTL8189ETV | Ubuntu 14.04 (3.4.x) | Q3/2016 |
Modelname | LIDAR | Camera | Mop | Waterpump | LIDAR-tower bumper | IR-dropsensors | IR-sidesensor | Frontsensor | Cloud |
---|---|---|---|---|---|---|---|---|---|
Dreame Robot Vacuum W10 | y | n | y | y | y | y | IR | 4.1.6 | |
Dreame Robot Vacuum D9 Max | y | n | y | y | y | y | IR | 3.5.8 | |
Roborock S4 Max | y | n | n | n | y | 4x | y | IR | 4.1.2, tuya |
Dreame Robot Vacuum-Mop F9 | n | y (1x SC031GS up facing[640x480]) | y | y | n | 4x + 1x | IR bar | 3.5.8 | |
Xiaomi Vacuum 1C | n | y (1x OV7251 up facing[640x480]) | y | y | n | 4x + 1x | IR bar | 3.5.8 | |
MOVA Z500 Robot Vacuum and Mop Cleaner | n | y (1x SC031GS up facing[640x480]) | y | y | n | y | IR bar | 3.5.8 | |
Viomi V2 | y | n | y | y (replaces dustbin) | n | 4x | IR | 3.5.8, viomi-iot | |
Roborock S7 | y | n | y | y | y | 4x | y | IR | 4.1.2, tuya |
Roborock T7S | y | n | y | y | y | 4x | y | IR | 4.1.2, tuya |
Mi Robot Vacuum-Mop P | y | n | y | y (replaces dustbin) | n | 4x | IR | 3.5.8 | |
Mi Robot Vacuum-Mop P | y | n | y | y (replaces dustbin) | n | 4x | IR | 3.5.8 | |
Roborock S5 Max | y | n | y | y | y | 4x | y | IR | 3.5.8, tuya |
Wyze Robot Vacuum (viomi clone) | y | n | y | y (replaces dustbin) | n | 4x | IR | , wyze-iot | |
Conga 3090 (viomi clone) | y | n | y | y (replaces dustbin) | n | 4x | IR | , conga-iot | |
Dreame Robot Vacuum D9 Pro | y | n | y | y | y | y | IR | 3.5.8 | |
Dreame Robot Vacuum D9 | y | n | y | y | y | y | IR | 3.5.8 | |
Dreame Bot Z10 Pro | y | y (1x SC031GS front facing [640x480]) | y | y | n | 6x | y | LineLaser | 4.1.2 |
Xiaomi Self-Cleaning Robot Vacuum-Mop Pro | y | y | y | y | y | (4.1.2 + Security Chip) | |||
Xiaomi Vacuum 2 Pro+ | n | y (1x SC031GS up facing [640x480], 1x ToF camera to the front[224x1558]) | y | y | n | 4x + 1x | y | ToF | (4.1.2 + Security Chip) |
Dreame Bot W10 Pro | y | y | y | y | y | 4.1.2 | |||
Dreame Bot L10 Pro | y | y (1x SC031GS front facing [640x480]) | y | y | n | 6x | y | LineLaser | 4.1.2 |
Xiaomi Vacuum 1T | n | y (1x SC031GS up facing [640x480], 1x ToF camera to the front[224x1558]) | y | y | n | 4x + 1x | y | ToF | (4.1.2 + Security Chip) |
Roborock T7 | y | n | y | y | n | 6x | y | IR | 3.5.8, tuya |
Roborock P5 | y | n | n | n | y | 4x | y | IR | 3.5.8, tuya |
Roborock S6 Pure | y | n | n | n | y | 4x | y | IR | 3.5.8, tuya |
Roborock S5 Max | y | n | y | y | n | 4x | y | IR | 3.5.8, tuya |
Roborock T7 Pro | y | y (2x OV5695 front [1920x1080]) with IR illumination | y | y | y | 6x | y | Cameras | 3.5.8, tuya |
Roborock S6 MaxV | y | y (2x OV5695 front [1920x1080]) with IR illumination | y | y | y | 6x | y | Cameras | 3.5.8, tuya |
Xiaomi Vacuum Robot 1S | y | y (1x OV7251 up facing[640x480]) | n | n | n | 4x | y | n | 3.5.8 |
Roborock T4 | y | n | y | n | n | 4x | y | IR | 3.5.8, tuya |
Roborock S4 | y | n | y | n | n | 4x | y | IR | 3.5.8, tuya |
Roborock T6 | y | n | y | n | y | 6x | y | IR | 3.5.8, tuya |
Roborock S6 | y | n | y | n | y | 6x | y | IR | 3.5.8, tuya |
Roborock S5 / S50 | y | n | y | n | y | 4x | y | IR | 3.3.9, 3.5.8 |
Xiaomi Vacuum Robot | y | n | n | n | n | 4x | y | Ultrasonic | 3.3.9, 3.5.8 |
Modelname | Root possible? (since) * | Root method public? * | Root complexity | Valetudo support | |
---|---|---|---|---|---|
Dreame Robot Vacuum W10 | y (Q4/2021) | n | easy via UART, minimal teardown | n | FW |
Dreame Robot Vacuum D9 Max | () | will not run Valetudo due to resources | n | ||
Roborock S4 Max | y (Q4/2020) | y | disassembly, simple soldering | y | FW Builder |
Dreame Robot Vacuum-Mop F9 | y (Q2/2020) | y | easy via UART, minimal teardown | y | Config-files FW Builder |
Xiaomi Vacuum 1C | y (Q4/2019) | y | easy via UART, minimal teardown | y | Teardown Config-files FW Builder |
MOVA Z500 Robot Vacuum and Mop Cleaner | y (Q2/2021) | y | easy via UART, minimal teardown | y | FW Builder |
Viomi V2 | y (Q2/2019) | y | old fw: easy via usb-adb, new fw: disassembly | y | Teardown Config-files FW Builder |
Roborock S7 | y (Q1/2021) | y | disassembly, simple soldering | y | Teardown FW Builder |
Roborock T7S | y (Q1/2021) | y | disassembly, simple soldering | y | Teardown FW Builder |
Mi Robot Vacuum-Mop P | y (Q2/2019) | y | old fw: easy via usb-adb, new fw: disassembly | y | Teardown Config-files FW Builder |
Mi Robot Vacuum-Mop P | y (Q2/2019) | y | old fw: easy via usb-adb, new fw: disassembly | y | Teardown Config-files FW Builder |
Roborock S5 Max | y (Q1/2020) | y | disassembly, simple soldering | y | Teardown Config-files FW Builder |
Wyze Robot Vacuum (viomi clone) | y (Q1/2021) | y | easy via usb-adb | y | Teardown |
Conga 3090 (viomi clone) | y (Q4/2020) | y | easy via usb-adb | y | Teardown |
Dreame Robot Vacuum D9 Pro | y (Q3/2021) | y | easy via UART, minimal teardown | y | FW Builder |
Dreame Robot Vacuum D9 | y (Q4/2020) | y | easy via UART, minimal teardown | y | FW Builder |
Dreame Bot Z10 Pro | y (Q2/2021) | y | easy via UART, minimal teardown | y | FW Builder |
Xiaomi Self-Cleaning Robot Vacuum-Mop Pro | () | ||||
Xiaomi Vacuum 2 Pro+ | y (Q2/2021) | y | easy via UART, minimal teardown | y | Teardown FW Builder |
Dreame Bot W10 Pro | () | ||||
Dreame Bot L10 Pro | y (Q2/2021) | y | easy via UART, minimal teardown | y | Teardown FW Builder |
Xiaomi Vacuum 1T | y (Q2/2021) | y | easy via UART, minimal teardown | y | Teardown FW Builder |
Roborock T7 | y (Q1/2020) | y | disassembly, simple soldering | y | FW Builder |
Roborock P5 | y (Q1/2020) | y | disassembly, simple soldering | y | FW Builder |
Roborock S6 Pure | y (Q1/2020) | y | disassembly, simple soldering | y | FW Builder |
Roborock S5 Max | y (Q1/2020) | y | disassembly, simple soldering | y | Teardown Config-files FW Builder |
Roborock T7 Pro | y (Q2/2020) | y | very hard (BGA soldering or ISP) | y | Teardown FW |
Roborock S6 MaxV | y (Q2/2020) | y | very hard (BGA soldering or ISP) | y | Teardown FW |
Xiaomi Vacuum Robot 1S | y (Q2/2019) | y | very hard (BGA soldering or ISP) | y | Teardown FW |
Roborock T4 | y (Q3/2019) | y | disassembly, simple soldering | y | Teardown FW Builder |
Roborock S4 | y (Q3/2019) | y | disassembly, simple soldering | y | Teardown Config-files FW Builder |
Roborock T6 | y (Q2/2019) | y | disassembly, simple soldering | y | Teardown Config-files FW Builder |
Roborock S6 | y (Q2/2019) | y | disassembly, simple soldering | y | Teardown Config-files FW Builder |
Roborock S5 / S50 | y (Q1/2018) | y | fw < v2020: easy, else: disassembly, simple soldering | y | Teardown Config-files FW Builder |
Xiaomi Vacuum Robot | y (Q4/2017) | y | fw < v4004: easy, else: disassembly, simple soldering | y | Teardown Config-files FW Builder |
* No does not mean that it is not possible or does not exist. It is just that I don't own the model, have no interest in it, it is not on my priority list or I did not publish it yet. "Since" date gives you an idea since when *my* robots were rooted or when I rooted someone else robot.
Click on the picture to enlarge it
You miss a device here and feel generous? Check out the Donations page here ;)