Boost-Booster
Lego Move-Hub am Raspberry Pi betreiben
Der Move-Hub aus dem Roboterbausatz von Lego lässt sich eigentlich nur per App von Smartphones und Tablets aus steuern. Wir zeigen, wie man Boost in Kombination mit einem Raspberry Pi zu einer offenen und universellen Plattform erweitert.
Mit dem Boost System führt Lego endlich einen vergleichsweise günstigen Roboterbausatz im Portfolio. Im Unterschied zu den teureren Robotik-Sets ist er durch die feste Anbindung an die Boost-App allerdings weniger flexibel einsetzbar.
In c’t 18/2017, Seite 144 haben wir gezeigt, wie sich die Spielzeug-Controller von Fischertechnik und Lego WeDo 2.0 über Bluetooth mit dem Raspberry Pi steuern lassen. Da lag es nah, das Projekt als Basis zur Öffnung des Boost-Systems zu nutzen.
WeDo 2.0 nutzt dieselben Steckverbindungen zum Anschließen der Sensoren und Aktoren wie der Boost Move-Hub und kommuniziert wie dieser per Bluetooth LE. Doch die Unterschiede unter der Haube fallen überraschend groß aus. Die mechanische Ähnlichkeit des „Move-Hub“ getauften Boost-Controllers mit dem WeDo 2.0 weckt dagegen die Hoffnung, dass auch auf Bluetooth-Seite große Ähnlichkeit herrscht.
Der offensichtlichste Unterschied zwischen beiden Systemen besteht darin, dass Lego nun eine herstellerspezifische Bluetooth-Adresse nutzt, statt wie bei WeDo 2.0 nur die Kennung des Chipherstellers (Texas-Instruments) einzusetzen. Der Boost-Hub hingegen meldet sich mit einer Adresse nach dem Muster „00:16:53:XX:XX:XX“ und gibt sich so klar als Lego-Device zu erkennen. Die ersten drei Bytes der insgesamt sechs Bytes langen Bluetooth-Adresse bilden die Firmenkennung (Organizationally Unique Identifier OUI). Sie wird von der IEEE an Firmen vergeben, die dann die übrigen drei Bytes frei verwenden können. Dienste wie „https://macvendors.com“ erleichtern die Suche nach Herstellern.
Rigoros hat Lego die Interna der Bluetooth-Kommunikation verbogen. Der Move-Hub nutzt keine der Standard-Bluetooth-Charakteristiken. Mit üblichen BLE-Diagnose-Tools lassen sich ihm daher kaum Information entlocken. Standard-Tools wie Nordics nRF-Connect bringen nicht einmal den Batteriestand in Erfahrung. Stattdessen implementiert der Hub eine Lego-spezifische Charakteristik für den gesamten Datenaustausch. Lego verwendet hier eigene UUIDs und entleiht sie nicht – wie bei WeDo 2.0 – bei Nordic-Semiconductors. Damit besteht zumindest keine Verwechslungsgefahr mehr mit anderen Geräten mit Nordics Code.
Leider liefert Lego zum Boost anders als beim WeDo 2.0 keinerlei Dokumentation zum Kommunikationsprotokoll. Da der Datenaustausch zwischen dem Controller und der Lego-App unverschlüsselt abläuft, kann man ihn mit Geräten wie dem Ubertooth-One jedoch problemlos belauschen. Projekte wie „BOOSTreveng“ sammeln auf diesem Weg gewonnene Informationen und machen sie für eigene Programmierungen nutzbar. Eine ausführliche Linksammlung finden Sie unter ct.de/ybq1.
Die Bedeutung der verschickten Datenpakete muss man sich nun aus dem Datenfluss selbst zusammenreimen. Manches ist relativ einfach zu interpretieren, beispielsweise das Längenfeld, das jedem Kommando voransteht. Viele andere Werte im Datenstrom haben jedoch keine direkt erkennbare Bedeutung. Erst durch Manipulation der Werte und anschließendes Beobachten der Reaktion des Move-Hub lassen sich die wesentlichen Werte erraten.