Last month we had a very cool challenge at SUSE: Replace any proprietary application with an Open Source replacement, and SUSE will donate to Open Source organizations. My only problem: I didn’t have any applications left which I could have migrated ;-) But then a tragedy happened…
First of all I should write: Valetudo’s documentation is excellent, it doesn’t really need any further explanation! So I’ll just write about the process itself and my thoughts about the new robot - most of all because my company internal post announcing the migration got quite some interest - and I was asked to write a blog post about my experiences. So here we are!
The Tragedy
My old Roomba 760 was a reliable partner for around 14 years now, but recently it got stuck beneath the shoe shelf so unluckily that it ripped of its sensor for finding home.
Also other components started to get more and more unreliable, so it really seemed to be the time to finally look for something new. The Roomba was a model which was driving around semi-randomly (with some strategies like driving along a wall), but it managed to reliably clean whole flat, consisting of 5 rooms.
The Requirements
Of course I wanted to have an adequate replacement, meeting the following criteria:
- No app required
- Should also be able to mop the floor
- Possibility to only clean certain rooms (e.g. to mop the bathroom more often than everything else)
Easy, right?
Well, 0 robots fulfilled these criteria by default! Either you get something driving around randomly again (the cheap models), or you have to connect to the vendor’s cloud via an app (everything else). Or in other words: If you want something “intelligent”, a cloud connection and an app are required. That’s not acceptable for me, and this is where Valetudo comes in!
Choosing a robot
To install Valetudo it must be possible to gain root privileges in some way.
The biggest catch: At the time of this writing the newest supported robot is already over two years old, and even the newest supported models are getting increasingly hard to find in new condition. Otherwise used models are of course also a option and considerably cheaper.
I wanted something new, and in the end I decided for the dreame X40 Ultra Complete because of it’s (theoretical) option to connect the fresh and used water tanks directly to the water supply. I only later noticed that this extension is sold out already… Another feature I wanted to have is the extensible brush - but see below whether it’s really worth it. The alternative for a new robot are the Eureka ones which seem to have a significantly better brush by default which is cutting hair before it can wind around the brush. Another advantage of the Eureka robots: you don’t need a breakout board, you can connect a USB cable directly.
The quality of the robot seems to be (surprisingly!) good to me - but of course I don’t have any long term experience yet.
Operation without a cloud or app connection
One important finding: You can use these robots without a cloud by default! My robot has three physical buttons, one of them to start a cleaning / mopping run.
On the first run it will map the environment (while cleaning already) and store it locally - subsequent runs will be significantly faster then.
So far so good, but unfortunately this way you don’t have any fine control: You can’t edit the generated map, you can’t set any timers, you can’t chose to only use the vacuum and you can’t adjust the water or fan intensity. But in general it works :-) This will most likely work for all the other supported robots, too.
What does Valetudo do?
First of all (and probably a bit too simplified to get the point across): Valetudo is just a web service on your robot which will provide access to the features of the robot from your local network. It will not replace any of the robot’s firmware for the components: Cleaning or mapping won’t get any better (or worse) than with the original system.
In the end you will still have the same robot you had, but you will now have root access to it, and you will have a webserver running to control it from you local network without any proprietary Cloud connection.
Installing Valetudo
So let’s finally install Valetudo to get access to all the features!
As mentioned already: The documentation is excellent, just follow it word by word. The instructions will greatly differ according to the model you chose! Some robots will require full disassembly, others just need a USB cable and an ADB connection - so you should read the instructions before you buy any robot and see whether you are willing to do what is required.
In general the process consists of three steps:
- Connect the robot and gather some required information
- Root your robot
- Install Valetudo
For the dreame robots you will need a Breakout adapter (yes, you probably really want one - finding non-standard 2mm pins to attach everything manually into the pinout connector is even more difficult than to find someone with a Breakout adapter :-)): It will map the pins on the robot to a Micro USB port. Don’t be shy and ask around: At work or in a nearby hackerspace - it’s very likely someone near you has one already. Otherwise you would have to manufacture the board yourself - or buy another robots which doesn’t need a Breakout adapter.
Once I found a friendly colleague with a Breakout adapter the installation was totally flawless for me - except for two stupid mistakes which cost me some time to find out:
- When the breakout board is connected to the dreame and you turn it on, the button LEDs will start blinking. If everything is correct they will continue blinking. If the blinking stops after a while and you hear the startup melody, then the robot just booted normally. In my case one of the connectors of the breakout board wasn’t soldered correctly, so it never got into fastboot mode.
- If you need a USB cable: Make sure that it got it’s data wires connected! Some cables are only meant to be used for charging and don’t have the two middle wires connected. In the case of the dreame robots: if you connect the USB cable to your PC and it doesn’t show a new device, use a USB known to transfer data.
Which robot is better?
So now the final question: Was the new robot really an upgrade?
Well, unfortunately the answer is not that easy.
Positive
- The mopping feature is amazing: The wooden floor is really shiny again, and the included cleaning ingredient seems to work very well.
- The mapping feature is really cool, and rooms are detected very reliably
Negative
- The vacuum doesn’t work very well. Even though it has an extensible sidebrush it doesn’t use it on carpets at all, and on borders and objects such as chair legs it’s not cleaning well, leaving whole areas uncovered.
- “Everything is a wall”: When the sensors detect any obstacle, the robot won’t go there, even if it’s just a curtain or sofa cover. These areas can be tagged accordingly, but it’s still not very reliable…
It’s funny, but the old chaos principle of the Roomba resulted in better vacuum cleaning results than the highly sophisticated systematical approach of the dreame. The mopping functionality is really worth it though. Due to that I have to say: You probably don’t have to spend that much money to get the latest and greatest features. An older model without the extensible sidebrush will probably clean exactly the same :-)

