<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Hardware on</title><link>https://geekyschmidt.com/tags/hardware/</link><description>Recent content in Hardware on</description><generator>Hugo -- 0.160.1</generator><language>en</language><copyright>Copyright © 2002–2025, Nicholas Schmidt; all rights reserved.</copyright><lastBuildDate>Sat, 18 Apr 2026 17:26:00 +0000</lastBuildDate><atom:link href="https://geekyschmidt.com/tags/hardware/index.xml" rel="self" type="application/rss+xml"/><item><title>Liberating the Hardware: Rooting the Dreame X40 Ultra</title><link>https://geekyschmidt.com/post/2026-04-18-dreamme-x40-rooting/</link><pubDate>Sat, 18 Apr 2026 17:26:00 +0000</pubDate><guid>https://geekyschmidt.com/post/2026-04-18-dreamme-x40-rooting/</guid><description>&lt;p&gt;I’ve deployed numerous iRobot and Neato units over the years. My previous iRobot fleet served faithfully for five years; they are easy to repair, but their performance has fallen behind, and the mandatory cloud tethering is a strategic disadvantage for any privacy-conscious home.&lt;/p&gt;
&lt;p&gt;The Dreame X40 Ultra is a superior piece of hardware, but to truly own it, I had to strip away the cloud requirement.&lt;/p&gt;
&lt;h2 id="the-mission-local-control"&gt;The Mission: Local Control&lt;/h2&gt;
&lt;p&gt;To achieve full autonomy, I used &lt;strong&gt;Valetudo&lt;/strong&gt;. It replaces the cloud interface with a local web server, keeping the data off external servers and locked within my IoT VLAN and Home Assistant instance.&lt;/p&gt;</description></item></channel></rss>