github Hypfer/Valetudo 2025.12.0
Valetudo 2025.12.0

one day ago
valetudo

2025.12.0

Midea root goes public, 39C3, more Robots, Carpets

Valetudo 2025.12.0

It appears that time has advanced. Not sure when that happened.
Once you're done reading these release notes, consider shutting off your device and spending the end of the year with people that matter to you.

Merry Christmas, and, of course, a Happy New Year

Midea Public Root

image

After more than 6 months of work, my Christmas present to you is the public release of the root for Midea robots. 🎁
And, of course, full support for them in Valetudo.

Over this timespan, I've bought basically all the models they have, took them apart, reverse-engineered them, tested them, and implemented the support in Valetudo for them.
And of course, all the supporting stuff like writing an installer, documenting the procedure, actually testing the procedure, etc.

I will have to warn you though: I have stared at this for so long that Betriebsblindheit will most certainly have set in, meaning that it is possible and likely that I've missed something that will be ironed out in future updates.
Also, while I have all of those robots, I have just one of each, so there's only so much I can cover with my testing.

But, with that, Valetudo now has a new Vendor with an easy root not requiring some self-soldered PCB;
Featuring models that are cheap, models that can climb higher thresholds, and models that have a bagless auto-empty dock.

It was a lot of fun, but as with every big project, the final stretch was getting quite tedious, so I'm very much looking forward to some kind of vacation.
I crave some free time not spent hacking or thinking about hacking robots.

=> Valetudo on Midea Telegram Group

39C3

image

Speaking of some kind of vacation, Dennis and I will be attending Congress again this year.
Not with a talk, but just as tourists.

Interestingly, the Midea journey actually came with enough material that I would finally feel confident putting together a talk I myself would want to listen to if I were a third party.

That is not going to happen this year, though. Anything high-profile forces the hand of the vendor, which would be harmful to the ultimate goals of Valetudo.
The good thing about good stories, however, is that they don't need to be told immediately. An actually good story stays a good story independent of the market.

I am planning on bringing most of my remaining stock of Dreame Rooting PCB parts and might build some unattended self-service display thing out of those, so that you can take what you need if you're there.
Once the stuff is gone, it will be gone, so please only take what you need so that everyone has the chance to get something.

There will also be stickers.

I will post an update to dust_announce with the location of that box once I know where that location will be.

New Robots

Since I wanted this root to be as complete as it could be, I have spent a lot of money.

I also had to send back two WHD robots that arrived broken, which got Amazon to flag my otherwise mostly unused account for returning defective goods.
No shit, Amazon. Of course I'm returning a broken item as broken when it is broken. Of course, that item will arrive broken.

Anyway, if that ever happens to you, welcome to a circle of hell where there are just machines telling you that you did something wrong but not what exactly, when or how.
A place where the only maybe-humans that exist talk to you in predefined text blocks that do not at all have anything to do with what you're saying.

FWIW, this Kafkaesque nightmare might be a great opportunity for European e-commerce, so thanks Jeff.

Eureka J15 Max Ultra

image

This one is the best Midea currently has to offer.
In CN, it is sold as the V16, which I think is a better name than trying to cram it into a "J15" Series, even though it is quite different hardware.

This one is what the V15 (J15 Pro Ultra and Ultra) should've been from the beginning.
With eMMC instead of NAND and with a firmware that actually tells you which rooms are part of the current cleaning task.

As with all of their bots, it is not competitively priced (yet?) but, well.

The somewhat better threshold climbing ability is a neat addition to the Valetudo lineup, though I kinda expected a bit more.
As a benchmark you should be able to simulate at home, it did successfully manage to climb over two Ikea IVAR shelves, but only when they're offset by quite a bit:

video_2025-12-08_22-38-08.mp4

I did see some influencer ads claiming that it can handle floor-standing mirrors gracefully, though I did not verify that myself just yet.
If true, that could be neat as well.

Midea E20 Plus

image

I bought this one (or rather its almost-identical brother, but we'll get to that shortly) because I was thinking "Ah, well, easy win. Why not".
That could not have been further from the truth.

In reality, this turned out to be a comparatively ancient design Midea is still milking, meaning that I had to reverse-engineer and reimplement most of the communication again.
It did help that I already knew how their newer protocol works, because I could fall back on similarities.

So I did move quite a few steps closer to the M7, which was the first Midea bot I ever bought but then left as-is, due to bad HW specs.

When it works, it works okay, I guess?
It's just.. unsophisticated.

For example, the way the cliff sensors are tied into the firmware is anything but graceful. The rest of the logic does not seem to be fully aware of them, meaning that it tends to drive at full speed to the edge of the stairs, just to then violently stop. It will then continue doing that for multiple minutes straight.

They also didn't bother with adding some diode or whatever, meaning that when turned off and you shove it around, the wheels spinning will make its LEDs light up through backfeeding.

The bagless dock looks cool and seems to work? I have no complaints there.
I do not think that it makes much sense to buy a worse robot just to not buy 20€ in one lifetime of dustbags, but if that's your thing, you now have options.

Because of its transparency though, you will always be looking at dirt and debris, which to me feels detrimental to the living space.
It is however fun watching the dirt spin around during the auto-empty cycle. There are pros and cons.

Midea E20 Evo Plus

image

Speaking of options, here's the same robot again.
The same robot again? The same robot again!

But no! They've removed the second side-brush motor, added some cheap plastic plug in its place and now use the new side-brush design of the V16.
So.. it's less hardware for the same price.

I dunno man. Why would you do that.

The answer might be that this one runs a slightly newer firmware, though no idea what the difference might be.
As it is literally the same robot, I just took that firmware and used it for the E20 Plus dustbuilder, closing the gap between the two I guess.

My specific unit is actually interesting though, as I had managed to kill it by accidentally flashing the J12 firmware onto it.
It did not like that, but recovering made it even worse.

Eventually, however, I remembered that some guy on Kleinanzeigen scammed me when buying the Obode A8+, which is basically the same design again.
That thing, however, was mostly toast:

video_2025-12-08_23-42-15.mp4

(Needs Sound. Feel free to remix that beat)

But, through the power of Kontakt 60 and a free Ikea anti-child-crush furniture-wall-mount-kit washer, I was able to recover its compute module and, with some magic, reflash it to the E20 Evo Plus firmware.

image

I would not recommend this. I bet it's half-broken now and will never talk to the cloud again, but that was kinda the point anyway, so..
FWIW, it was a great learning opportunity.

The lessons learned there were that
a) Kleinanzeigen is full of scammers
and
b) an installer with sanity checks is not optional. Not even for the people building the installer.

Carpets

Besides implementing existing functionality for new robots, Valetudo also gained a new feature: Carpet Rendering.

image

Valetudo will now show the carpets as detected by the firmware, provided the firmware actually reports them.
As this is a mostly carpet-free household, I almost forgot about this change, but YMMV and you might find this very useful.

R2338H Kerfuffle

image

Dreame did a thing and silently released a new variant of the L10s Pro Ultra Heat that, for the user, is almost indistinguishable from the older version.
That distinction, however, becomes painfully evident once the user tries to root it, only to be faced with a robot that doesn't charge anymore.

That was a frustrating thing, but eventually I figured it out and added further validation to the Dustbuilder.
It is now super janky, featuring a second dustbuilder page for the same robot, just with a single character difference in the SN. But what can you do.

The silver lining is that a new firmware version for the "regular" ones came out of it too, so if you're using the L10s Pro Ultra Heat, feel free to head to the dustbuilder for an update.

If you're one of the unfortunate people that have been hit by this but aren't recovered just yet, please ping me on Telegram.

What else is going on?

I was sent a video of Valetudo being controlled using a VR headset:

video_2025-12-09_20-19-30.mp4

What I really like about it is that it just works and decently at that.
I had never planned for VR Valetudo, nor did I have to. It is just a webpage in a browser. Peak interoperability.

The usual

If you like this release or Valetudo in general, you might want to consider donating:

https://github.com/sponsors/Hypfer

https://builder.dontvacuum.me/donations.txt

Autogenerated changelog

Features

  • ui: Also show carpets in edit map view 0d3ee08
  • vendor.midea: E20 Plus 51d8531
  • Display detected carpets 133f843
  • vendor.midea: Add quirks for various mop-related controls 10c692a
  • vendor.midea: J15 Max Ultra 2771580
  • vendor.midea: Various cleanups 6a4a6ca
  • vendor.midea: E20 Evo Plus cde0bc8

Fixes

  • vendor.dreame: Detect R2338H 197f866
  • ui: Slightly improve visibility of carpets 689b48f
  • vendor.midea: Misc fixes a9b3621
  • vendor.midea: Misc b31dc84
  • vendor.roborock: The S4 does not support carpet mode aaa1415
  • mqtt: Use new default_entity_id instead of deprecated object_id in autodiscovery 4ba6c43

Refactoring

Chores

Don't miss a new Valetudo release

NewReleases is sending notifications on new releases.