Tutorial GBZBatteryMonitor

Viele wollen und brauchen es. Eine Anzeige für den Akkustand unseres Zero’s!
Die Lösungen mit Dremel und noch weiteren Boards hat mir einfach nicht gefallen.
Dann wurde ich auf den MCP3008 Batterymod vom User „Joachim Venaas“ aufmerksam.
Dieser Mod legt einen Layer über unser Aktuelles Bild und zeigt oben rechts den Ladestand, wie auf
zb. Handys an. Wird der Ladestand kritisch, so dass es ratsam wäre den Akku zu laden, erscheint eine
entsprechende Meldung über dem ganzen Display.


(für ZeroBoy von Marco Gözelt)

Was wird benötigt?

  • 1x MCP3008 I/P IC 8 Kanal 10 Bit
  • 1x 2,0Kohm Widerstand
  • 1x 5,6Kohm Widerstand
  • 1x OSH Park Platine ( https://oshpark.com/shared_projects/hd9tu1Lp )

Die Lötarbeiten
Zu allererst lötet ihr die beiden Widerstände auf die MCP3008 Platine ein.
Diese passen leider nicht liegend auf die Platine und müssen stehend verlötet werden.
Es folgt der MCP3008. Achtet auf die richtige Ausrichtung!
Als nächstes solltet ihr die MCP-Platine mit dem RPI verlöten.
Ich habe in meinem Zero die MCP-Platine unter den RPI mit Heißkleber geklebt und die Kabellängen
kurz gehalten.
Auf dem Diagramm unten, seht ihr wie alles verkabelt wird.
Einfach die auf der Platine beschrifteten Pins am Pi verlöten, fertig.
Den Lipo/Akku verbindet ihr direkt vom PCB2.0, oder vom Ladeboard.
Wichtig ist eine direkte Verkabelung vom Akku zum Board!

Der teuflische Software-part
Kommen wir zum schwierigen Teil.
Ich setze voraus, das ihr den Umgang mit Putty und WinSCP beherrscht. Falls nicht, wird es nicht
lange dauern bis ihr es versteht 😉
WinSCP ist nichts anderes als ein FTP Client, könnte man sagen.

Was brauchen wir?
WinSCP ( https://winscp.net/eng/download.php )
Putty ( http://www.putty.org/ )
Raspidmx ( https://github.com/AndrewFromMelbourne/raspidmx/ )

Wir brauchen Root!
Dies erlangen wir unter SSH via Putty.
Habt ihr SSH noch nicht aktiviert, dann folgt diesen Anweisungen.
(https://github.com/RetroPie/RetroPie-Setup/wiki/SSH)

Startet Putty und verbindet euch mit eurem Zero.
Hostname „retropie“
User „pi“
Password „raspberry“

Tippt nun folgendes in Putty ein bzw. kopiert es.

sudo nano /etc/ssh/sshd_config

Es öffnet sich der Linux Editor mit der ssh_config.
Scrollt runter bis zur Zeile

PermitRootLogin without password

Und ändert diese in

PermitRootLogin yes


Jetzt drückt ihr STRG+O zum Speichern und anschließend STRG+X zum Schließen des Editors.
Wieder zurück in Putty müssen wir Root ein Password geben.
Dies passiert mit:

sudo passwd root

Habt ihr das Password gesetzt, müsst ihr neustarten damit es wirksam wird.

sudo reboot

Warum haben wir das gemacht ?
Nun, wir müssen später eine Datei von Raspidmx ins usr/lib Directory kopieren.
Dies geht leider nur als Root.

Weiter geht’s mit WinSCP und Putty
Ihr habt Raspidmx heruntergeladen und entpackt.
Ändert den Namen des Ordners von Raspidmx-master in raspidmx.
Jetzt startet ihr WinSCP.
Verbinden könnt ihr euch wie folgt:
Hostname „retropie“
User „pi“
Password „raspberry“

Habt ihr euch verbunden, seht ihr einen FTP Client vor euch. Die Bedienung ist sehr intuitiv.
Ihr landet direkt im Verzeichnis „/home/pi/
Dorthin kopiert ihr nun den Downloadordner von raspidmx

Weiter geht’s mit Putty!
Stellt in Putty eine Verbindung zum Zero her, sofern ihr den Client nicht geschlossen habt 😉
Loggt euch wieder mit dem User „pi“ ein.
Damit ihr Raspidmx verwenden könnt, müsst ihr es erst Kompilieren. Dafür benötigen wir jedoch
noch ein anderes Tool.
In Putty führt ihr diesen Befehl aus:

sudo apt-get install libpng12-dev

danach geht ihr in den Raspidmx Ordner mit folgendem Befehl

cd raspidmx

gefolgt von

make

damit werden alle Scripte von Raspidmx kompiliert. Auch PNGView.
Leider funktioniert PNGView nicht direkt in unserem Retropie Image. Warum? Keine Ahnung.
Die Lösung ist es, eine Datei von Raspidmx direkt ins usr/lib Stammverzeichnis zu kopieren.
Dazu müssen mir uns als Root einloggen.
Ist Putty noch geöffnet geht das mit:

su root

Gefolgt von eurem Passwort

Jetzt kopieren wir die Datei „libraspidmx.so.1“ aus dem „/raspidmx/lib“ Ordner nach „ /usr/lib
Dafür könnt ihr entweder WinSCP benutzen oder eben mit Putty weitermachen und diese Zeile
ausführen.

cp /home/pi/raspidmx/lib/libraspidmx.so.1 /usr/lib

 

Wenn ihr es mit WinSCP macht, loggt euch bitte als Root ein!

Der schwere Teil ist geschafft!
Jetzt wechseln wir wieder den User auf PI und machen den Rest

su pi

Wieder ins home/pi Verzeichnis springen.

cd /home/pi

Den GBZBatterymonitor herunterladen

Git clone https://github.com/joachimvenaas/gbzbatterymonitor

Der Ordner umbenennen in gbzbattery

mv /home/pi/gbzbatterymonitor /home/pi/gbzbattery

in den Ordner wechseln

cd gbzbattery

Die Config von GBZBattery öffnen

nano config.py

Jetzt passen wir lediglich die Paths zu PNGview und den Icons an.
Habt ihr alles nach Plan gemacht, sind die Paths wie in dem Bild.

PNGVIEWPATH = „/home/pi/raspidmx/pngview/“
ICONPATH = „/home/pi/gbzbattery/icons“


Wenn ihr wollt, könnt ihr die Refresh_Rate noch von 2s auf 30s ändern.

Jetzt Speichern mit STRG+O und Schließen mit STRG+X
Die Stunde der Wahrheit. Funktioniert alles?

python main.py


Wunderbar.
Mit STRG+Z den Prozess beenden und für den Autostart das eingeben.

sudo nano /etc/rc.local

und vor exit 0 das hier einfügen

python /home/pi/gbzbattery/main.py &

Mit STRG+O Speichern und mit STRG+X schließen.



DONE!

Es folgen Quellen.
https://github.com/joachimvenaas/gbzbatterymonitor#sources-and-inspiration
https://github.com/AndrewFromMelbourne/raspidmx/
http://www.sudomod.com/forum/viewtopic.php?f=22&t=2056