Roborock S7 vacuumed

  madbehaviorus   Lesezeit: 13 Minuten  🗪 6 Kommentare

Einen Saugroboter nach den eigenen Vorstellungen saugen lassen.

roborock s7 vacuumed

Einleitung

Seit Längerem habe ich mir verschiedene Saugroboter angeschaut und deren Testergebnisse ausführlich verglichen. Die Saugfunktion konnte mich jedoch bis dato nicht als alleiniges Kaufargument überzeugen. Die neueren Modelle mit Wischfunktion weckten mein Interesse wieder. Als die Wischeinheiten auch mit Heb- und Senkmechanismen, sowie auch mit Vibrierfunktion ausgestattet wurden, habe ich mir diese Varianten etwas genauer angeschaut.

Ein Punkt, den ich jedoch niemals akzeptieren würde, ist der Onlinezwang bei Nutzung der zugehörigen Programme. Denn nur mit einer Karte und dort selektiv auswählbaren Räumen bzw. Flächen ist der jeweilige Saugroboter auch effektiv nutzbar. Somit würde für mich eine Nutzung ohne Vernetzung nur mit Bedienung der meist lediglich mit drei Tasten versehenen Roboter nicht infrage kommen. Eine Sperrung in einer DMZ ist auch wenig sinnvoll, da es nur die Angriffsfläche leicht minimiert, jedoch in keiner Weise die Privatsphäre.

Anbei eine schematische Übersicht über die Kommunikation zwischen Roboter und Userprogramm:

Es ist davon auszugehen, dass nicht nur die Kommunikation (wann, von wo, welche Befehle) zwischen Client und Roboter gespeichert bzw. verarbeitet wird, sondern je nach Hersteller auch die Karte der Wohnung, Protokolle von ehemaligen Saug- und Wischvorgängen (welches Spielzeug oder welcher Stuhl liegt zu welchem Zeitpunkt an welcher Stelle), sondern eventuell auch Signale wie Fotos, Videos oder Audioaufnahmen auf den Servern des Anbieters bzw. Herstellers weiterverarbeitet werden.

Dahingehend gibt es jedoch für einige führende Modelle (-1 Generation) die Möglichkeit, diesen Zwang zu deaktivieren bzw. teilweise zu purgen =) und eine alternative Software namens Valetudo zu nutzen. Hierbei wird jedoch nicht das gesamte Betriebssystem ersetzt, sondern lediglich der Teil deaktiviert bzw. ersetzt, der den jeweiligen User, wie oben dargestellt, zur unnötigen Nutzung der Herstellercloud verpflichtet. Valetudo selbst ist genau betrachtet nur ein Binary welches bei einem Start ausgeführt wird.

Durch diese Anwendung ist, je nach Konfiguration, die alleinige Nutzung aus bzw. in dem jeweiligen Netzwerk möglich, in dem die Integration erfolgt ist.

Ideale Zugriffsweise:

Waren ursprünglich hauptsächlich Robock- und Xiaomi-Modelle unterstützt, werden nun auch vermehrt die Modelle des Herstellers Dreame nutzbar.

Weiterer Vorteil ist die anschließende einfachere Integration in verschiedene Smart-Home Projekte wie bspw. Homeassisstent 11.

Vor der Nutzung mit valetudo muss der Saugroboter jedoch erst einmal gerootet werden. Modellabhängig kann das durchaus interessant werden. Zu meinem Glück ist es bei allen unterstützten Varianten nicht mehr nötig, den Lötpunkt für eine UART Verbindung zu nutzen. Es kann von einem Update über den gängigen Hersteller Updatekanal bis hin zu einem vollständigen Zerlegen des Roboters mit anschließendem flashen der Bootpartitionen sowie patchen des BS über ssh mit anschliessender Einrichtung über die Valetudo Weboberfläche reichen.

Meine Wahl fiel auf den Roborock S7, da dieser zusätzlich zu o.g. als Alleinstellungsmerkmal eine beutellose Absaugstation2 bietet. Bei diesem Modell ist die Installation über die FEL-Methode3 zu wählen.

FEL-Mode 4 ist eine low-level Subrutine im Boot-Rom eines Allwinner-Socs, welches mit einem speziellen USB-Protokoll5 für die Kommunikation zwischen einem Allwinner-Soc (über bspw. UART) und einem USB-Client eingesetzt wird.

Vorbereitung und Installation

Dazu müssen über den Dustbuilder6 die Images und das zugehörige Script erstellt werden. Vorteilhaft ist u.a. die Integration des eigenen ssh keys. Bei der Erstellung ist die Auswahl Fel und use my own ssh ley zu wählen, für letzteres kann auch bei Nichtexistenz ein Schlüsselpaar erstellt werden. Nach erfolgreichem Build wird auf die angegebene Mailadresse der Link zu den Builds gesendet. Enthalten sind die Archive für den Flashvorgang um Zugriff über SSH zu erhalten, sowie die Dateien für den darauffolgenden Patchvorgang um die erhaltenen Rootrechte dauerhaft zu nutzen sowie auch valetudo als Software zu installieren und nutzen können samt einem 12-zeiligem HowTo.

Bei manchen Modellen, wie bspw. dem S7, ist eine Grafik für den Flashvorgang hinterlegt, worauf ich zu gegebener Zeit eingehen werde.

Ich empfehle jedoch die Anleitung auf der Internetseite von Valetudo3 zu nutzen. Um die notwendigen Dateien via fel zu flashen, kann der Micro-USB-Eingang des Mainboards genutzt werden. Da dieser jedoch nur für signierte herstellerspezifische Updates vorgesehen ist, muss der S7 fast vollständig in seine Hauptkomponenten zerlegt werden. Für die benötigten Rootrechte ist der Zugriff auf den Pin TPA-17 notwendig, der sich jedoch auf der Rückseite des Mainboards befindet. Erst im Anschluss ist ein Zugriff über den eben erwähnten USB-Zugang möglich.

Es gibt bereits einige YouTube-Videos, die über den Player eures Vertrauens ein Disassembly des S7 zeigen. Herr Giese, Initiator des Dustbuilders, hat ein hilfreiches Video über die Zerlegung eines Roborock S6 7 online gestellt. Da der S7 nicht vollständig äquivalent zum S6 ist, habe ich auch ein S7 spezifisches angeschaut8. Bei der ersten Zerlegung ist mir jedoch nicht ersichtlich gewesen, wie die Abnahme der oberen "Außenverdeckung"[Bild17] ohne die Entfernung der Wischeinheit möglich ist.

Anbei die detaillierten Bilder der Zerlegung (ZIP-File mit 37 Bildern). Sorry madbehaviorus, zu viele Bilder :)

Sobald die Schrauben der Senkeinheit und der seitlichen Abdeckung entfernt sind, kann nach vorsichtiger Abnahme*, auch mit der Entfernung der Befestigung des ursprünglich in den abnehmbaren Wassertank führenden Wasserschlauchs begonnen werden. Anschließend ist noch die elektrische Steckverbindung der Senkplatte vorsichtig zu trennen.

*Bei der Entfernung dieser ist gleichzeitig auf die recht dünne Feder (s. blaue Umrandung. 3 Bilder weiter unten) zu achten, die sich unter der unteren mittleren Schraube befindet.

Nun sollten die blau umrahmten Stecker vosichtig aus Ihrer Fassung entfernt werden. Ein leichtes hin und her wackeln kann bei manchen etwas fester sitzenden Verbindungen durchaus hilfreich sein. Um irreperable Schäden zu vermeiden, sollte jedoch auf zusätzliche spitze Hilfsmittel wie Schraubenzieher, Messer oder Pinzette verzichtet werden.

Wie bereits erwähnt, ist es seit dem Release 05/2023 für einen Flashvorgang der neuen Partitionen nicht mehr nötig eine UART-Verbindung zu nutzen und die jeweiligen Pins entsprechnd zu löten oder zu kleben. Für die benötigte Nutzung des Micro-USB Ports, muss jedoch Pin TPA-17 mit einem Ground kurz vor bis kurz nach dem Einschalten des Roboters verwendet werden. Bei diesem Mainboard stehen hierfür sechs verschiedene Möglichkeiten zur Auswahl. Erst nach diesem Procdere ist der Zugriff über das FEL-Protokoll möglich.

Für die kurze Verbindung reicht daher bspw. eine Büroklammer mit Klebeband über den Verbindungspunkten anzubringen.

Nun kann das Board mit den drei Tastern wieder auf das Mainboard gesteckt und dieses per USB an dem jeweiligen Gerät für den Zugriff angeschlossen werden. Vor dem Einschalten empfielt es sich, die Anschaltprocedur mit gleichzeitigem halten der Verbindung zu testen. Sobald der richtige Griff gefunden ist, die Verbindung beider Punkte besteht, kann der Anschalter gedrückt werden. Danach kann nach mind. fünf Sekunden die Verbindung vollständig gelöst werden.

Nun sollte auf dem verbundenen Gerät nach der Eingabe von lsusb am Ende der Zeile mit der ID 1f3a:efe8 "FEL/flashing mode" aufgeführt sein. Wird das Gerät mit der passenden ID angezeigt, sind jedoch die e.g. Worte fehlend, muss der Vorgang wiederholt werden. Die Verbindung über den FEL-Mode ist in der Anleitung zu Recht mit tricky beschrieben, auch ich benötigte drei Versuche bis eine Verbindung zwischen AllWinner-SoC und Client mit der FEL-Methode etabliert wurde.

Nun kann mit der Ausführung des run.sh scripts, welches sich in dem Archiv ´"roborock.vacuum.a1[4 5]_1612_fel.zip"´ befand, erfolgen. Anschließend werden die enthaltenen Images wie fsbl.bin, ub.bin, dtb.bin uImage sowie der neue Verifikations-Key geflasht.

Nach einem Neustart ist der S7 nun über den durch Ihn automatisch erstellten unverschlüsselten WLAN Hotspot erreichbar.

Nach dem connect zu diesem, wird ein Backup der nand images erstellt. Dieses sollte für einen eventuellen Software-brick oder restore des Ursprungszustands aufbewahrt werden.

ssh root@IP_des_Robots dd if=/dev/nandb | gzip > /tmp/nandb.img.gz dd if=/dev/nandk | gzip > /tmp/nandk.img.gz scp root@IP_des_Robots:/tmp/nand*

scp Downloads/roborock.vacuum.s5e_1566_fw.tar.gz root@IP_des_Robots:/mnt/data/ ssh root@IP_des_Robots cd /mnt/data/ tar xvzf roborock.vacuum.s5e_1566_fw.tar.gz ./install.sh reboot

Da der S7 ähnlich der neuen Android-Geräte auch A und B boot images verwendet, ist dieser Vorgang nach einem Reboot erneut auszuführen.

ssh root@$IP_des_Robots cd /mnt/data/ ./install.sh reboot

Nach dem Download des aktuellen Valetudo-ARMv7 Image für die Verwendung mit niedrigem Speicher, kann ein push auf den S7 erfolgen 8.

scp Downloads/valetudo-armv7-lowmem.upx root@192.168.8.1:/mnt/data/valetudo

Jetzt können und sollten die nicht mehr benötigten Installfiles gelöscht und der automatische Start von Valetudo initiiert werden.

cd /mnt/data rm roborock.vacuum.*.gz boot.img firmware.md5sum rootfs.img install.sh cp /root/_root.sh.tpl /mnt/reserve/_root.sh chmod +x /mnt/reserve/_root.sh /mnt/data/valetudo reboot

Nach einem Start oder reboot kann es durchaus ein bis zwei Minuten in Anspruch nehmen, bis ein Zugriff über Port 80 möglich ist.

Ist der Zugriff möglich, kann eine Verbindung über die FLOSS App valetudo companion 7 oder via Aufruf der aktuellen IP-Adresse des S7 im Browser eurer Wahl erfolgen. Nach der Eingabe der Verbindungsdaten des zukünftigen WLAN AP, der nach jedem Neustart / Start des Roboters automatisch gewählt wird, folgt ein Neustart.

Nun kann die Konfiguration erfolgen und dem Roborock bei der Erkundung der Räume und Saugen gespannt zugeschaut werden. =)

03_uebersicht_vacuummap

Anbei erwähne ich noch einige interessante Programme bei der Nutzung von Valetudo.

  • Ansicht der WLAN-Signale in den jeweiligen Räumen 8
  • Valetudo Tray Companion 10 (wohl eher für Leute gedacht, die nicht sowieso den ganzen Tag mind. ein Browsertab geöffnet haben)

Tags

Saugroboter, DIY, Roboter, Privatsphäre

joerg
Geschrieben von joerg am 14. November 2023 um 10:37

wow…

neffets
Geschrieben von neffets am 14. November 2023 um 12:27

Leider wiederholt sich die Geschichte mit Valetudo auf Saugrobotern wie mit LineageOS auf Smartphones. An aktuellen Modellen wird nur eine Handvoll von Roborock und Dreame unterstützt. Wobei für Dreame ein UART-Adapter benötigt wird und die Roborocks komplett zerlegt werden müssen, was mit Garantieverlust einhergeht.

Es fehlt (noch?) an Angeboten a la Fairphone oder Murena!

Mein Kompromiss besteht darin, dass der Roboter in ein eigenes WLAN verbannt wurde, welches komplett abgeschottet ist. Nur zur Einrichtung gab es temporär Internetzugriff. Die festgelegten Reinigungsläufe arbeitet er alleine ab. Auf eine Überwachung/Steuerung per Handy verzichte ich zugunsten der Privatsphäre gerne.

Christopher
Geschrieben von Christopher am 14. November 2023 um 20:38

Wow, der Aufwand ist ja immens. Ich bin ohne hin nicht angetan von den Saugrobotern, aller dings hätte meine Frau gerne einen. Noch kann ich mich erfolgreich wehren ... Verglichen mit dem Flashen eines Smartphones, ist die Nr. mit dem Saugroboter Hardcore und bei weitem nicht für jeden gedacht/zu empfehlen. Trotzdem sehr beeindruckend. Danke für den Einblick.

Art
Geschrieben von Art am 15. November 2023 um 10:09

Das Thema schiebe ich für 2 Dreame L10 Pro noch vor mir her - einer davon mit PRC Region Lock.

Die dringende Empfehlung ist, ein Dreame Modell zu wählen, da man mit beherztem °Abhebeln einer Abdeckung an die Schnittstelle kommt. Dafür gibt es passende Adapter, https://github.com/Hypfer/valetudo-dreameadapter oder man behilft sich mit Dupont Kabeln und UART Programmer.

kamome
Geschrieben von kamome am 17. November 2023 um 08:03

Danke für den Einblick! Einfacher, günstiger (Geld und Umwelt, da ohne Elektroschrott), mitunter sogar zeitsparender, geht es aber auch mit einer Kombination dieser zwei Modelle: https://de.wikipedia.org/wiki/Besen https://de.wikipedia.org/wiki/Feudel ;)

madbehaviorus
Geschrieben von madbehaviorus am 19. November 2023 um 19:10

Ich habe mir eben die beiden Rootingmethoden der Dreame's angeschaut und muss sagen, dass mich dieses Konzept sehr reizt. Ich bin fast versucht mir nur für den Erstellungsprozess der Leiterplatte, des Lötens der einzelnen Komponenten und dem anschließenden Rootvorgang, einen L10 zu borgen.

Der L20 sieht mir aktuell recht vielversprechend aus, ich hoffe dahingehend auf eine baldige Nutzung für Valetudo.

Vielen Dank für den Link und dem damit verbundenen Einblick.