Der NESPI im Überblick

Der Nespi und seine Entstehung

Unter diesem Post beschreibe ich meine Vorgehensweise wie ich am Ende auf mein Gesamtergebnis gekommen bin. Ich mache hier kein Geheimnis daraus, dass ich mein Ergebnis durch die Kombination vieler einzelner Ergebnisse aus dem Netz zusammengeführt habe. Dies ist also nicht meine Erfindung, sondern eine Anwendung mehrerer Ergebnisse in meinem Projekt. Um die temperaturgesteuerte Aktivkühlung in meinem Pi3 in einem Lego - NES Gehäuse zu erreichen waren viele Einzelschritte notwendig.

Die einzelnen Schritte habe ich noch in 3 Kapitel untergliedert, damit man die Arbeitsumfänge einzeln abarbeiten kann. Die Umfänge sind gut voneinander trennbar und daher ist diese Seite nur als "Roter Faden" zu sehen. Hier sind alle Inspirationen und Quellen verankert, die ich in den einzelnen Tutorials nicht mehr im Detail erwähne.

Die Idee

Bei meiner Recherche zu einem passenden Gehäuse für meine zukünftige Raspberry Pi 3 Retrokonsole ist mir sofort folgende ins Auge gefallen:

https://www.etsy.com/de/listing/278139052/himbeer-pi-2-b-oder-3-pi-nintendo-case?ref=listing-shop-header-2

Bestellt und einige Wochen später hing das Teil im Zoll. Dabei bemerke ich an, wer im Ausland bestellt sollte sich über die Einfuhrregularien informieren. Zoll nachbezahlt und in Betrieb genommen.



Passt alles super, bis auf den SD-Karten Slot, der ist schlecht von außen erreichbar.

Schnell aber habe ich ein weiteres tolles Gehäuse gefunden:

https://www.raspberrypi.org/blog/lego-nespi-case/

http://moc.bricklink.com/pages/moc/mocitem.page?idmocitem=3075

Dort kann man das Nintendo Case als Lego Bausatz in Spanien bestellen. Unten in den Kommentaren habe ich dann einen Link gefunden in dem ein LDD Bausatz zum downloaden verfügbar war:
Vielen Dank noch einmal an Andre an dieser Stelle:

http://www.andrerinas.de/tutorials/nespi-like-lego-nes-case-anleitunginstruction.html


Dort habe ich die Möglichkeit kennen gelernt virtuell einen 3D-Bausatz mit LEGO Teilen zu bauen und eine Anleitung zu exportieren. Eine wahnsinnig tolle Funktion. LDD Files, die mit dieser Desktopanwendung erstellt werden kann man dann auch in Mecabricks.com importieren.
Von dort aus kann man entweder direkt zu Bricklink.com exportieren, oder eine Teileliste exportieren als csv oder xml datei. Die LDD Datei stelle ich noch einmal separat zur Verfügung.



http://mecabricks.com/en/models/Z1XjdmEKv8b


Die von mir modifizierten Teile als LXF Parts und vor allem die Bauanleitung ist hier abgelegt.

Aktivkühlung:

Ziel war es auf die Passivkühler des Pi noch eine Aktivkühlung für höhere Temperaturen anzubringen. Dieser sollte dann, wenn es notwendig ist eingreifen und dann die Temperatur regeln.
Als erstes werde ich hier schildern, wie ich am Ende alles zusammen bekommen habe um dann noch einmal alle Schritte in der richtigen Reihenfolge aufzuführen.

Zunächst einmal habe ich im Netz nach fertigen Scripts geschaut. Durch reines Copy-Paste ließ sich damit jedoch nicht alles auf einen Schlag erledigen.
Folgendes Script hat mir am Anfang geholfen:

http://www.forum-raspberrypi.de/Thread-tutorial-lueftersteuerung-per-temperatur-einbauanleitung

Dort ist ein Tutorial für eines der Vorgängermodelle des PI3 erläutert mit älteren RPi.GPIO  Verisonen etc..

Die Schaltung und die verwendeten Bauteile haben für mich an dieser Stelle auch gepasst. Bei den Lüftern hat es wohl vor kurzem noch dieses Modell gegeben, dass nun aber nicht mehr verfügbar war: Copal F17HA

Stattdessen habe ich mich für diesen Lüfter auf Amazon -> Rev2 und diesen Lüfter bei Reichelt -> Rev4 entschieden.
Beide sind jetzt in ansonsten Baugleichen Systemen im Einsatz.

Wie in dieser Anleitung beschrieben würde ich es nicht mehr machen, da dort nur simpel Plus und Minus angeschlossen werden und der Lüfter ohne Reduzierung allen Strom nimmt, den er bekommt. Das führt schnell zu ungedrosseltem überdrehen. 

Auf Seite fünf der vorhin beschriebenen Anleitung habe ich dann den Eintrag von Bagheera als besonders zielfhührend erachtet. Sein Script hat am Ende vorerst alles erschlagen, was ich brauchte.

http://www.forum-raspberrypi.de/Thread-tutorial-lueftersteuerung-per-temperatur-einbauanleitung?page=5

Sein Script habe ich letzendlich genommen und ein wenig modifiziert. In mehreren Einträgen war zu lesen, das GPIO Pin 14 nicht genutzt werden sollte, da der für die serielle Schnittstelle reserviert sei. Ich habe das mal einfach nicht in Frage gestellt und GPIO 21 genommen. Dieser hat den Vorteil, dass er direkt neben GROUND liegt, so kann man zumindest GROUND und GPIO 21 auf einen Stecker zusammenfassen.

Zum einen sollte im Vorfeld dafür gesorgt werden, dass die aktuellen Python -Versionen installiert sind (Ob dieser Schritt notwendig ist, oder durch den nächsten ersetzt werden kann, kann ich nicht sagen..):

sudo apt-get install python3-pip
sudo apt-get install python-pip 
 
Zum anderen hatte ich bei den ersten Versuchen damit zu kämpfen, dass ich folgende Meldung bekommen habe.

SystemError: This module can only be run on a Raspberry Pi! 

Erst durch einen Rückschritt auf ein Backup und folgende Schritte konnte ich alles richten (Ansteuerung der RPIO durch Python-Scripts benötigt Python Developer Erweiterung):

$ git clone https://github.com/limuxy/RPIO.git
$ cd RPIO
$ sudo python setup.py install
 
Diese Abfolge der auszuführenden Schritte, wie es wirklich funktioniert sind in den Tutorial-Posts abgebildet. In diesem Post wird eher der Work in Progress geschildert und der Werdegang, wie ich von einem gelösten Problem in das nächste gestolpert bin.

Nachdem ich das Script angelegt und mit den richtigen Zugriffsrechten ausgestattet hatte war es notwendig, dass Script automatisiert starten zu lassen. Dabei stellte sich der Cronjob als zielführend heraus. Die verschiedenen Hierarchiebenen der Cronjob-Arten habe ich noch nicht völlig verstanden. Schlussendlich hatte ich in 3 verschiedenen Crontab Einträge erstellt und mit verschiedenen Userstufen den Start des Scripts initiiert. Durch die Art des Cronjobs, den ich angelegt hatte, wurde der Cronjob innerhalb von 2 Tagen 600 mal gestartet und diese Prozesse liefen alle parallel. Damit war ich über das Ziel hinaus geschossen. Ziel war es, unter allen Umständen zu verhindern, dass der Prozess, der die Regelung der Temperatur übernimmt nicht an seiner Ausführung gehindert wird. Dazu wollte ich mit einem Cronjob, der den Prozess alle 10 Min wieder anstößt sicherstellern, dass dieser Prozess wirklich sicher und zuverlässig läuft, wenn es notwendig wird. Was ich nicht bedacht hatte, ist, dass die Prozesse durchaus parallel laufen können. Dazu musste ich das Script ergänzen, damit es sich selbst fragt, ob es bereits ausgeführt wird:

https://forum.ubuntuusers.de/topic/cron-startet-backup-script-mehrfach/

Das verhindert nun, dass das Script mehrfach parallel ausgführt wird. Der Cronjob startet das Script, und wenn es bereits läuft und nicht aufrgund eines Fehlers beendet wurde, wird es am Neustart gehindert. So wird das Script einmal beim Start sicher ausgeführt und dann alle 10 Min abgefragt, ob es noch läuft.

Ich habe den Aufbau nun in zwei Versionen fertig gestellt. Einmal als Rev2, bei dem mir besonders der flache Aufbau gefällt. Der Lüfter ist direkt am Gitter oben befestigt und kann dadurch die Luftvon außen besonders gut aufnehmen. Allgemein ist die Proportion des Gehäuses deutlich besser als im folgenden Modell. Beim Rev4 allerdings ist der wesentlich kleinere Lüfter direkt auf dem Passivkühler geklebt und kann dadurch effizienter kühlen. Leider baut das Gehäuse unnötig in der Höhe auf und verliert dabei an der Proportion. Der SD-Karten Schacht ist in der Rev4 jedoch deutlich besser zu erreichen. Dies hilft besonders beim Testen enorm, da man häufig Backups erstellen und zurückspielen muss. Dies war im Original und in der Rev2 nicht besonders gut möglich, da der Schacht ziemlich schelcht erreichbar war.
Ich arbeite derzeitig an der Rev5 der dann auch einen transparenten Eckstein für die Aktivitäts LED haben soll und einen ON/OFF Switch analog des PowerBlock.

Evolution vom NESPi über Rev2 zu Rev4



Aktueller Rev4 im Betrieb:


































Der Umbau zu Rev6 ist nun erfolgt und es sieht so aus.
Das Case kann nun hier als LXF heruntergeladen werden. Anbei die Anleitung und Teileliste.

Im Blick das aktuelle Setup:






Keine Kommentare:

Baumscheibenradio - Internetradio mit den Raspberry Pi Zero W

Ein neues Projekt ist gerade fertig dokumentiert worden. Das Baumscheiben-Radio :