The U.S. vacuum robot manufacturer iRobot was sold to a Chinese company for scraps a while ago. The once leader in household cleaning robot technology lost their way somewhere along the line, stopped innovating, and was left behind. For a long time, they made damn fine vacuums, though.
My apartment is still home to one iRobot j7, lovingly called Wayne Inhalierts, and it will continue to live with us until it breaks or the new Chinese overlords turn off the servers.
For years, it would diligently vacuum the whole place in 1-1.5 hours, with zero to one recharge breaks. The cleaning times and number of recharge breaks increased sharply over the past few months, until it took more than 3 hours to do the same work.
The most logical reason was the battery reaching its end of life, which is quite reasonable for a lithium battery that had daily charging cycles for many years. That’s the point at which most devices these days become e-waste, or a challenging project for someone brave/skilled.
I was thrilled to find it quite easily repairable. It only took a few screw to open up. No hidden tabs that require gumption and special tools to loosen - plain, standard screws.
After opening just this one panel, the battery was completely accessible. Not glued in, just snapped in place and easy to remove. There are plenty of 3rd party aftermarket batteries to replace it (as with all spare parts for this model), and they usually come with extra capacity.
Now it works again perfectly, and even needs fewer recharge breaks than when it was brand new, thanks to the extra capacity.
It’s not all great, though🔗
The openness of the hardware is not at all reflected in the software landscape. There is no official way for 3rd party software to interface with the iRobot world. Reverse engineering of the MQTT-based communications between robot and app are the best thing we have, and it only supports very basic features:
- Distinguishing between cleaning/idle/charging states.
- Tell it to clean everywhere.
Getting feedback to obstacles, requesting cleaning in specific areas, camera stream, and metrics are locked in the closed platform.
That’s particularly problematic because schedules stopped working out of the blue a few months back (well before replacing the battery). Whenever I enable a schedule, it’s not executed and disabled the next time I check the app after the run should have happened.
If cleaning specific areas was possible via 3rd party integrations, I could just move scheduling elsewhere, but things being the way they are, there is no choice but to start cleaning manually (or schedule cleaning everywhere, which isn’t practical for my use cases).
When it eventually dies, it will be an exciting tinkering project to attach a custom control board running an open vacuum robot firmware that integrates well with open ecosystems. Although I’m low-key looking forward to that, not needing to buy something new is still preferable, and I wish Wayne a long and happy life.