Dreame Vacuum Robot Open Source Cloud Replacement

I have a Dreame L10s Ultra robot vacuum. It has been a great addition to the house, especially with having a dog that sheds and gets dirty paws. It has helped a lot with keeping the floors fairly clean. One thing I have not been a fan of it the software, I really don’t like that I am tied down to this proprietary software that communicates a ton with Chinese servers.

I have just been shown Valetudo, a cloud replacement for vacuum robots enabling local-only operation. This is the exact thing I was hoping for to gain ownership over my robot and data.

Preparation

My vacuum is listed under there supported robots page here. According to there guide for this vacuum I will need:

  • The Dreame Breakout PCB

Dreame breakout PCB

The have a Github repo with gerber files that I will be using to get the PCBs made at JLCPCB. This is fairly inexpensive, I will just get stuck with 4 extra PCBs.

I ordered all the parts I needed from DigiKey.

Rooting and installation

Instructions for rooting this device are available here.It was a little stressful rooting the device with the watchdog timer automatically restarting the device on you. It really makes you take your time and plan out what needs to be done.

Application

You end up by having controls through a web UI that is hosted on the vacuum. It is less refined than the Dreame app, but it is way nicer to deal with. It is also pretty easy to setup with Home Assistant with the MQTT auto-discovery.

Final

I am so glad to have a solution like this available. The cloud servers were the only thing I disliked about my vacuum and this solved that.

I went into this with the mindset that I might break the vacuum and have to buy another one. That probably helped me take my time and really follow the steps and review them before trying them.

This experience peaked my interest in hardware hacking. I have only ever just followed tutorials and have never actually done any of the hacking myself. There are a lot of steps in this process that I had no idea what was going on, but I kind of want to learn more and better understand how this is done.