Bei einer meiner Basteleien musste ich feststellen, dass sich ein mit dem Raspi gesteuertes Rollo immer wieder selbständig machte und sich ohne mein Zutun bewegte. Es hat eine eine Weile gedauert, bis ich herausgefunden habe, woran das lag.
Aufgrund sehr schlechter Empfangsbedingungen bricht die WiFi Verbindung zum Pi immer wieder mal ab und lässt sich nicht mehr selbständig aufbauen. Ein von mir dafür vorgesehener Watchdog bootet den Pi dann neu. Beim Neustart wurde GPIO 14 immer kurz auf High gesetzt, genau dort hatte ich aber mein Relais angeschlossen.
Warum nur?
Bisher habe ich ich nie mit den seriellen Schnittstellen des Pi beschäftigt, warum auch? Eine kurze Recherche brachte dann zu Tage, dass Pin 8 neben GPIO 14 auch als Tx Data der seriellen Schnittstelle herhalten muss. Diese sendet beim Booten Daten an ein möglicherweise angeschlossenes Terminal, man kann so ziemlich systemah verfolgen, was beim Starten (nicht) passiert. Rx Data liegt übrigens bei GPIO 15 bzw. Pin 10. Diese Daten hat mein Relais als Triggerimpuls missverstanden – mangels Oszilloskop weiss ich allerdings nicht genau, was da ankommt.
Abhilfe
Abhilfe ist eigentlich ganz einfach: sudo raspi-config
Nr. 5 Interfacing Options auswählen, dort auf P6 Serial gehen und die Frage Would you like a login shell to be accessible over serial? mit <Nein> beantworten. Ebenso die darauf folgende Frage Would you like the serial port hardware to be enabled? mit <nein> bescheiden. Schließlich mit <OK> beenden, raspi-config ordnungsgemäß beenden und neu booten. Damit ist dieses Problem beseitigt.