BackPocketPi

Eine Raspberry Pi Konsole für die Hosentasche

Aktueller Stand und Größenvergleich mit einem beliebten Taschenbuch.

Das absolute Nerd-Device ist eine Linux-Konsole, die man lässig aus der Hosentasche zieht. Sowas muss ich dringend haben 😉

Anwendungen? Wahrscheinlich die, die ich im Teil Anwendungen auf dem Terminal gezeigt habe, dazu ein Emailclient und ein RSS-Reader für News usw. Möglich wäre auch ein RFID-Scanner.
Aber hauptsächlich werde ich dafür wohl meine eigenen Anwendungen entwickeln, mit Oberflächen im Textmodus. Das nennt man Text-User-Interface, also TUI oder Text-UI.

Konzept:

Das BackPocketPi soll auf einer Lochrasterplatine im genormten Eurokartenformat aufgebaut werden, die sind 160x100mm groß. Das Display und die Tastatur kommen auf die Vorderseite, der Raspi und der Akku auf die Rückseite.

Raspberry Pi 3 Model B
Ursprünglich wollte ich ein Raspberry Pi Zero W verwenden, weil der ist schön kompakt und hat für diesen Zweck noch ausreichend Rechenpower. Aber er ist mir dann doch zu eingeschränkt. Allein wenn man einen USB-Hub anschliesst, ist es mit dem Größenvorteil gleich dahin. Dafür hat er dann eine viel geringere Rechenleistung als der Pi 3. Mit ein bisschen Grübelei kam ich aber doch noch zu einem recht kompakten Entwurf:

Keyboard

Wie bringt man ein Keyboard auf 100mm Breite unter? Grafische Taschenrechner und Blackberrys machen es vor.

Das Bild oben dient der Inspiration (Blackberry Passport). Drei Tastenzeilen, reduziert auf die wichtigsten Tasten, mehr passt nicht in eine Zeile. Solange man diese noch gut erfühlen kann und beim Auslösen eine deutliche Rückmeldung bekommt, funktioniert das auch.
Für die Zeilen bedeutet dies:
Ein horizontaler Abstand von 4 Feldern auf einer Lochrasterplatine = 4/10 Zoll = 10,16mm
Bei 10 Tasten also 102mm.

Hier ein Entwurf:

Es wird eine Eigenbau-Tastatur mit ‘richtigen’ Tastern im Format 6x6mm.
Ich verwende einen Controller aus einer alten USB-Tastatur.
Das ist hier schön beschrieben: http://www.arduino-tutorial.de/keyboardhack/

Über diesen Link: https://www.w3.org/2002/09/tests/keys.html kann man sich die Keycodes und deren Abfolge gleich live an der eigenen Tastatur angucken.
Oder hier: https://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes

Display
Ich verwende zunächst ein 3,5 Zoll Display mit Videosignal-Eingang. Das minimiert die Verkabelung und geht ohne Treiber. Ein billiger 320*240 Rückfahrmonitor schafft auch 640*480 zu skalieren. Das geht natürlich nur mit Unschärfen. Aber immerhin, für die Konsole sollte das erst mal reichen.

So ähnlich wie es hier steht, habe ich es gemacht: using-a-mini-pal-ntsc-display-with-a-raspberry-pi

Nur habe ich die Auflösung auf 640×480 eingestellt:
framebuffer_width=640
framebuffer_height=480

Und mit sudo dpkg-reconfigure console-setup folgende Einstellungen gemacht:

1) UTF-8
2) Guess optimal….
3) VGA
4) 16*28 (framebuffer only)

Dann musste ich noch die overscans leicht anpassen.

Ein späteres Update auf ein besseres Display scheint mir interessant, um die Darstellung zu verbessern.

Grafik-Desktop
Der Rasbian Desktop bringt bei der Auflösung nichts. Es gibt Libraries, mit denen man sich eigene GUI’s entwickeln kann. Falls ich überhaupt eine GUI brauche und nicht komplett auf der Terminal-Konsole bleibe. Mangels Touchscreen kann ich nur brauchen, was mit der Tastatur zu steuern ist.

Aufbau

Eine GFK-Lochrasterplatine verwende ich als Chassis für einen stabilen Aufbau.


Erste Lebenszeichen vom Raspi mit dem Display am Videosignal. Achtung, der 3,5mm Klinkenstecker ist anders angeschlossen, als vermutet. Reihenfolge von der Spitze zum Griff: Audio, Audio, Masse, Video.


Die Raspi-Platine wird von unten angeschraubt. In den Ausschnitt kommen die Kondensatoren des Displays:


Das spart einen Millimeter Bauhöhe. Auf der Raspi-Platine war sogar noch Platz für einen Prozessor-Kühlkörper. Das ist bei dem kompakten Aufbau vielleicht auch nötig.


Das Display ist mit Distanzstücken angeklebt. Unter dem Display ist also noch etwas Platz. Wer weiss, wofür der mal gut ist. Ich habe jedenfalls das weiße Eingangskabel vom Display hier geparkt. Das Display hat ja zwei Videoeingänge, gelb ist AV1, weiß ist AV2.


Hier kamen zwei DC-DC Step-up Spannungsregler hinzu. Der oberhalb des Displays liefert die 5V Systemspannung, der seitlich des Displays ist nur für das Display und liefert 7V. Ein Umbau des Displaytreibers auf 5V, wie er im Internet viel zitiert wird, war mir nicht möglich: Alles kleinste SMD-Technik. Und unter 6,2 V lief das Display nicht.
Die drei Taster gehören übrigens auch zum Display, ich habe sie nur irgendwo untergebracht, wo sie nicht stören. Das Videosignal steht auf der Rückseite des Raspis an PP24 zur Verfügung. Nicht vergessen, die Masse von Raspi und Display ebenfalls zu verbinden.


In den noch freien Platz zwischen Raspi und Spannungsregler kommt der Tastaturkontroller. Die HDMI-Buchse ist leider erst mal nicht zugänglich. Die Audiobuchse ebenfalls nicht, um die ist es aber nicht schade.


Immerhin ist der GPIO-Port voll zugänglich, das war mir wichtiger als HDMI. Ausserdem die Ethernetbuchse und drei der vier USB-Ports, eins wird intern für die Tastatur benötigt.
Bis hier hin hat der Aufbau gut 4 Stunden gedauert.

Das Videosignal kommt von PP24, +5V an PP2, Masse an PP3

Die fertig angeschlossene Stromversorgung. Die rote LED zeigt an, dass geladen wird. Bei vollem Akku leuchtet sie grün. Funktioniert also. Geladen wird mit max. 1A laut Beschreibung. Der Verbrauch ab Akku liegt bei 0,8A:
0,8A bei 3,7V sind nur 3W!

Der Akku wird am Ladegerät angeschlossen also nicht leer. Vielleicht doch, wenn ständig Videos laufen wird der Verbrauch höher liegen.

Die Ladeschaltung hat eine Mikro-USB Buchse am Eingang. Ausserdem einen Eingang für den Akku, und einen Ausgang für die Ausgangsspannung in Höhe der Akkuspannung. Dieser wird abgeschaltet, wenn die Entladeschluss-Spannung des Akkus erreicht ist oder der Stromfluss über 3A kommt. Man kann auch gleich die Akkuspannung verwenden, hat dann aber diese beiden Schutzmechanismen nicht.

Der Grafikdesktop. Die GUI in 640x480px, ist nur im Notfall geniessbar, funktioniert aber mit Tastatur und Maus oder Touchpanel. Youtube im Vollbildmodus geht auch:

Musikvideo

Zurück in die Konsole, erst mal den Framebuffer Bildbetrachter FBI installiert und ein Bild geöffnet:

In Echt sehen die Farben besser aus.


Den Mount auf mein NAS habe ich auch schon geschafft, und die SSH-Verbindung von meinem xUbuntu Notebook. So kann ich programmieren und konfigurieren.

Jetzt folgt die Tastatur. Die entsteht auf einer eigenen Platine. Die wird dann gekürzt und von hinten verkabelt. So als Einheit kann sie dann eingebaut werden.

75 Tasten!

Tastaturcontroller

Der Tastaturkontroller ist auch schon am Platz. Der stammt aus einer alten Tastatur.


Sowas zu löten dauert Stunden! Beim nächsten Mal doch lieber eine Platine ätzen…


Die 24 Leitungen an den Controller anzuschliessen, war dagegen schnell erledigt. Dann kamen noch die 5 USB-Anschlüsse hinzu.


Es war sehr spannend beim ersten Einschalten. Ob sich die stundenlange Löterei gelohnt hat? Erleichterung, alles funktioniert. Nur die Plus-Taste musste ich anders anschliessen, die war am Plus des Nummernblocks angeschlossen. Da fehlten dann die Kombinationen mit Shift (*) und Altgr (~).


Hier ist die Tastatur-Beschriftung. Die beiden oberen, unnötigen Tabellen einfach gar nicht ignorieren 🙂
Ausdrucken in 100% Zoom, von Hand nachbearbeiten, einschweissen in Folie, zuschneiden und löchern.


Das haftet nun mit Teppichklebeband auf den Tasten. Hier der Größenvergleich mit einem Taschenbuch 🙂
So wie erwartet und erhofft, lässt sch die Tastatur gut verwenden. Es ist sicher keine Chat-Tastatur, aber man trifft die Tasten gut. Sie lassen sich gut ertasten und geben beim drücken eindeutig Rückmeldung.

Bis hier bin ich schon sehr zufrieden mit dem Ergebnis!


Für Entwicklungszwecke habe ich noch ein paar Hardwaretasten gebaut.