Mit ein paar Handgriffen verwandelt sich ein Pi Zero in einen universellen USB-Stick und emuliert gleichzeitig Speicher, serielle Schnittstelle, Ethernet und mehr.
In diesem Projekt kommt eine selten genutzte Eigenschaft des Pi Zero zum Einsatz: Sein USB-Port unterstützt USB On-the-Go (OTG). Verbinden Sie den Mini-PC mit einem anderen Rechner, meldet sich der RasPi als untergeordnetes Gerät (englisch: Gadget) bei diesem an.
Im Normalfall ist der Gadget-Modus eher unerwünscht. Wer etwa einen Speicherstick an den Pi Zero anstecken möchte, benötigt dafür ein spezielles OTG-Kabel, sonst klappt es nicht (siehe Kasten “Wie OTG funktioniert”).
Wie OTG funktioniert
Normalerweise ist die Rolle eines Geräts bei der Kommunikation zwischen zwei verbundenen Partnern festgelegt: Es arbeitet entweder als Host oder nicht. Der Host versorgt das andere Gerät (Slave, Gadget oder Peripherie genannt) mit Strom und steuert die Funktionen. Auf diese Weise kommt Zubehör wie Sticks, Mäuse oder Tastaturen mit minimaler Elektronik aus.
Bei den ersten Smartphones waren die Rollen ebenfalls noch klar verteilt: Das Smartphone, verbunden mit einem PC, meldete sich dort als Massenspeicher, und der PC war in der Lage, Dateien zu lesen und zu schreiben. Später entschieden die Hersteller, dass es praktisch wäre, seinerseits einen USB-Stick an das Smartphone anzustecken und vom Gerät aus auf den Stick zu schreiben. Dazu musste aber das Smartphone als Host arbeiten und darüber hinaus so intelligent sein, kontextabhängig zwischen den Rollen zu wechseln. Das war der Anstoß zur On-the-Go-Erweiterung der USB-Spezifikation.
Die technische Umsetzung war einfach: Zusätzlich zu den vier vorhandenen Pins bei USB 2 (5 V, Masse, zwei Daten-Pins) kommt ein fünfter ID-Pin hinzu. Liegt er auf Masse, schalten Smartphone oder Pi Zero in die aktive Host-Rolle, ansonsten (Pin high oder floating) arbeiten sie als Slave.
Normalen USB-Kabeln fehlt schlicht die passende Kodierung, daher nehmen damit verbundene Geräte ihre Standardrolle ein – beim Pi Zero die üblicherweise nicht genutzte Slave-Rolle. OTG-Adapter und Kabel ziehen dagegen nur auf einer Seite den Pin auf Masse und legen damit die Rollen ebenfalls fest.
Umgekehrt sorgt ein normales Kabel am USB-Port für das im vorliegenden Fall gewünschte Verhalten. In Abbildung 1 sitzt das USB-Kabel im linken USB-Port und dient sowohl der Stromversorgung als auch dem Datenaustausch. Wer also das Projekt ohne viel Aufwand nur von Software-Seite nachstellen will, überspringt die nächsten Schritte.

Abbildung 1: Hängen Sie den Pi *Zero mit einem normalen Kabel an einen Laptop, dann erhält der Mini-PC auf diese Weise Strom oder Daten.
Die Kabellösung ist aber für unterwegs nicht elegant; insbesondere am Laptop baumelt dann der Zero in der Luft. Aus diesem Grund steht am Anfang etwas Bastelei mit der Hardware, bevor es um die Software geht.
Hand anlegen
Verfügen Sie über grundlegende Erfahrung mit dem Lötkolben, bringen Sie einen USB-Stecker an der Unterseite des Pi Zero an (Abbildung 2). Wichtig ist dabei die korrekte Belegung der Anschlüsse am Stecker; im Zweifelsfall konsultieren Sie Schaubilder, die im Internet zu finden sind.
Das Schwierigste ist unter Umständen nicht das Löten an sich, sondern die Suche nach der optimalen Länge für die Kabel. USB-Stecker zum Selbstlöten gibt es für wenige Cent bei den üblichen Versendern. Da das Projekt im Grunde nur einen Pi Zero für weniger als 6 Euro benötigt, ist das Verlustrisiko nicht sehr groß. Mit einem Zero W funktioniert alles auf dieselbe Weise.

Abbildung 2: Beim selbst gelöteten USB-Anschluss ist das Austüfteln der passenden Länge für das Kabel unter Umständen schwieriger als das eigentliche Löten.
Es gibt noch zwei Alternativen zu dieser Eigenbau-Lösung. Die erste kommt ganz ohne Löten aus: Von Geekworm [1] gibt es eine fertige Platine (Abbildung 3) für 8,50 Euro (über den Verkäufer Makerspot auf dem Amazon-Marketplace gefunden). Hier halten Pogo-Pins (gefederte Pins) von unten den Kontakt zu den Lötstellen.
Die Lösung ist elegant und sehr kompakt, hat aber den Nachteil, dass zum einen der RasPi ungeschützt bleibt und zum anderen der USB-Stecker offenliegt. Der große Vorteil liegt darin, dass der Umbau vom Pi Zero zum USB-Stick nicht destruktiv ist.

Abbildung 3: Mit einer USB-Platine von Geekworm rüsten Sie den Pi Zero um, ohne dabei zum Lötkolben greifen zu müssen.
Die zweite Alternative bietet der Zero Stem für gut 5,60 Euro, den Pimoroni [2] und Adafruit vertreiben (Abbildung 4). Die kleine Platine erfordert zwar Löten, aber der USB-Stecker sitzt dann dank Verschraubung fest am PC. Gedanken über den korrekten Anschluss brauchen Sie sich hier nicht zu machen.

Abbildung 4: Der Zero Stem erfordert zwar den Einsatz eines Lötkolbens, bietet dafür aber eine stabile und in Bezug auf die Anschlüsse eindeutige Konstruktion. (Quelle: Pimoroni)
Sowohl für die Geekworm-Platine [3] als auch für den Zero Stem [4] haben Tüftler Gehäuse für den 3D-Drucker entworfen. Für unterwegs ergibt der Tausch von Schutz gegen Kompaktheit sicher Sinn. Ein Problem lösen diese Gehäuse allerdings nicht: Bei einem Stick, der mehr als ein paar Zentimeter aus dem Laptop heraussteht, droht immer die Gefahr, dass drängelnde Personen in Bus und Bahn ihn abreißen – das ist nur eine Frage der Zeit. Deshalb hat sich der Autor für das Selbstlöten entschieden und ein passendes Gehäuse mit gewinkeltem Anschluss entworfen (Abbildung 5).

Abbildung 5: Ein USB-Gadget-Gehäuse mit gewinkeltem Anschluss sorgt dafür, dass der Mini-PC nach dem Anstecken nicht so weit über den Host hinausragt.
Wer das Gehäuse nachdrucken will, findet es auf Tinkercad [5]. Der Halter für den Stecker ist auf das verwendete Bauteil optimiert. Die sehr geringen Toleranzen müssen Sie eventuell an den konkret verwendeten Drucker beziehungsweise das genutzte Material anpassen.
Raspbian-Tweaks
Ein normales Raspbian ist zwar nicht für den Betrieb als Peripherie konfiguriert, bringt aber alles dazu Notwendige mit. Auch die nötigen Handgriffe erfordern keine speziellen Kenntnisse.






