self build smartphone

Smartphone Marke Eigenbau





Mein Jüngster und ich haben am Samstag Abend im Januar das LEGO® Telefon fertig gebaut. Ich ermutige alle die Interesse an so etwas haben, ruhig mal mit der Software zu spielen, denn ich bin zur Meinung gekommen, dass die sogenannten Softphones (IP Telefone) das normale GSM / UMTS whatsoever Netz verdrängen werden. LTE Telefonie funktioniert wenn ich mich nicht irre, genau so. Der Vorteil: ich habe immer ein und die selbe Nummer, egal an welchem Rechner oder Smartphone ich bin, überall auf der Erde. Alles was ich brauche ist eine Internetverbindung.

Die Technik:
Ich verwende einen Raspberry Pi mit aufgesetztem Touchdisplay, Soundkarte (da der Rpi kein Audio-in hat) und Akku. Um erreichbar zu bleiben, habe ich mir einen LTE Hotspot gegönnt (gebraucht 35,-). Jedes andere WLAN geht auch.



Auf dem Rechner läuft Linux, als Telefonie Software sind "ekiga" oder "twinkle" im Einsatz. Beide funktionieren, beide haben Vor- und Nachteile, laufen aber out of the Box.
Der Anbieter der Telefonnummer ist sipgate. Der Basisanschluß ist kostenlos, gezahlt werden nur die Verbindungsgebühren.

Wie funktioniert das? Der Kommunikationsdienstleister vermittelt zwischen Internet und Fernmeldenetz. Also ähnlich wie z.B. bei Skype, allerdings habe ich eine feste Ortnetznummer.

Kann man nicht einfach ein iPhone benutzen? Ist doch leichter, kleiner und hat nur Vorteile?
Jo, aber ich kanns halt. Und langfristig will ich dieses Zuckerberg / Jobs / Google Gedööns los werden. Noch kann ich nicht auf den Rotz verzichten, wenn ich Teil dieser Gesellschaft sein möchte.

Ausserdem laufen auf dem kleinen Raspberry noch feine andere Programme, die es im Jobs Universum nicht gibt: eine schöne Shell, GnuPG, Libreoffice, Firefox und vieles mehr.



Jaaaaaa, es ist nicht alles rosa: Das Display ist verdammt klein, ich habe keine Kamera installiert, und der Akku hält nicht unbegrenzt. Aber mir hat sich eine Tür geöffnet. Ich sehe die Alternative. Und die wird ein Mini Rechner mit sparsamem Prozessor, vollwertiger Linux Distri sein, mit Softphon. Alles was man braucht.

Ich sehe sagte der Blinde.

Ein bischen Code



Das Erste was fehlte war eine Touchtastatur, bzw. ein Touch Numpad zum Wählen der Telefonnummern.
Die Lösung heisse "xvkbd", ein Virtuelles, skalierbares, umbaubares on-screen Keyboard. Um es zu starten kann man in der Konsole den Befehl "xvkbd -keypad" eingeben. Es ist als Paket in Raspbian installierbar.
Ich habe eine Desktop Verknüpfung angelegt, da ich ja nur den Eingabestift zur Verfügung habe und somit nicht auf einer Tastatur tippen kann wenn ich unterwegs bin, bis die virtuelle Tastatur gestartet ist.

Anschließend habe ich mir die Knöpfe des LCDisplays vorgenommn. An der Seite sind 3 kleine SMD Taster, die direkt auf die Pinleiste des Rpi führen und Aktionen auslösen können. Ich spreche diese stromsparend mit Python an:
import RPi.GPIO as GPIO
import subprocess
import time
GPIO.setmode(GPIO.BOARD)

GPIO.setup(12, GPIO.IN, pull_up_down = GPIO.PUD_UP)
GPIO.setup(16, GPIO.IN, pull_up_down = GPIO.PUD_UP)
GPIO.setup(18, GPIO.IN, pull_up_down = GPIO.PUD_UP)

while True:
# please pull not all the time, just 10 times a sec.
time.sleep(0.1)

if(GPIO.input(12) == 0):
subprocess.Popen('/home/pi/keypad', shell=True)
time.sleep(0.5)
# hold on buffer to open a program only once
if(GPIO.input(16) == 0):
subprocess.Popen('/usr/bin/twinkle')
time.sleep(0.5)
if(GPIO.input(18) == 0):
subprocess.Popen("vba /home/pi/gb/tetris.gb", shell=True)
# jaaaa, ich liebe den game boy
time.sleep(0.5)
GPIO.cleanup()


Damit das ganz von alleine startet wird erst eine kleines Script geschrieben, welches den Befehl
python /home/pi/knopf.py &
ausführt und dieses Script anschliessend mit einem knopf.desktop Eintrag im Verzeichniss ~/.config/autostart verlinkt, damit es bei Systemstart automatisch löppt:

[Desktop Entry]
Name=Knopfscript
Type=Application
Exec=/home/pi/knopf.sh
Terminal=false


Als letzten Hinweis spricht der Zocker in mir: Ich liebe den Game Boy. und was liegt näher als einen Emu zu installieren. vba ist ausreichend schnell und läuft flüssig, allerdings nicht mit dem Startmenü eintrag, sondern nur auf Konsolenebene mit der --fullscreen option .... Wichtig: in der configdatei /etc/Virtualgameboy.cfg muss die skalierung aus 1x umgestellt werden, sonst passt der fullscreen nicht auf das 320x240 Display.

Als allerletztes noch etwas, das mich länger aufgehalten hat als nötig:
Die USB Soundkarte wird als zweites angezogen. Dumme Programme nutzen aber, egal was in den Audiopreferenzen von LXDE steht immer die erste Karte, also hier die im Pi verbaute. Schaltet die onboard Soundkarte ab, um Spass zu haben:
in der Datei /boot/config.txt kommentiert den Passus
# Enable audio (loads snd_bcm2835)
#dtparam=audio=on

aus und setzt
dtparam=audio=off
drunter... dann is ruh, es gibt fortan nur noch die eine Soundkarte.

Das Projekt ist fertig
Ich habe alles eingebaut, was ich für spannend halte. Es ist ziemlich praktikabel, vielleicht wäre noch eine Möglichkeit der externen Stromzufuhr und eine größere Powerbank angebracht.

Es wurde gezeigt, dass es kein Hexenwerk ist, auf freier Software basiert und viele Vorteile hat (aber als Prototyp auch Nachteile).

Verbesserungen 1


Das Telefon läuft und läuft... aber es ist immer Platz für kleine Verbesserungen... Details, die das Leben einfacher machen.

Zum einen war es mir ein Gräuel immer den Akku zu entfernen um das Gerät zu laden... umständlich und Fummelarbeit. Die Lösung ist ein Ein/Ausschalter, der die Stromversorgung zwischen Raspbery und Akku unterbricht und ein Ladekabel, welches bei Bedarf einfach angestöpselt wird. Ob Laden und Strom ziehen gleichzeitig funktioniert habe ich noch nicht getestet.

Die Akkulaufzeit war mit 5 h etwas Mau. Also habe ich zu Lasten des LTE Hotspots eine dicke Powerbank eingebaut. Jetzt hält eine Akkuladung 16 Stunden. Genug für den Arbeitstag.

Nummer 2 betrifft einen MP3 Player. ... Wenn man schon einen richtigen Rechner hat, sollte dieser doch auch Musik und Videos abspielen können, oder?
Leider ist die Auswahl an einfachen, kleinen Lösungen nicht vorhanden.

Hier mein billig selbstbau GUI für MPG123:
mpg123 ist das älteste MP3 Programm, das ich kenne. Komandozeilenbasiert, reagiert aber durchaus auf Tastatureingaben (vorwärts, pause, nächstes lied, etc.).
Und um einen schönes Menü zur Auswahl der Lieder zu bekommen ist zenity geeignet. Dieses Program zum scriptbasierten erstellen grafischer Oberflächen ist so simpel zu bedienen, dass sogar ich damit umgehen kann.

Hier ist mein kleines script:
#!/bin/bash
cd /home/pi/Music

files=$(ls -Q *.mp3)
rom=$(eval zenity --title "MPG123" --list --column "MP3" $files --width=300 --height=220)
if [ "$?" -eq 1 ]; then
echo "Cancelled."
else
mpg123 -C "$rom"
fi


Als Script startbar machen, in das Menü einfügen und auf Klick öffnet sich ein File Selector und man kann Mukke abspielen.


einfacher geht nicht.

Verbesserungen 2


Es ist ein steter Prozess des Lernens, wie man dieses Selbstbautelefon zur täglichen Benutzbarkeit bringt.

Für viele ist der Messangerdienst Whatsapp das Wichtigste an so einem Ding (oder eine andere antisocial Media Umgebung)
Hier bieten sich für die Nutzer eines Raspberry zwei Möglichkeiten:
- Ein Komandozeilenbasiertes Tool welches mit mäßigem Aufwand eingerichtet werden muss ( https://www.instructables.com/id/WhatsApp-on-Raspberry-Pi/ )
oder
- Die Web App des Messanger Dienstes - sicherheitstechnisch eine Mega Katastrophe web.whatsapp.com



Das eigentliche Ziel auf Fratzebuch, Armagedzon, Birne, Winzigweich und Gugel zu verzichten ist zwar heroisch aber auch genau so illusionistisch. (Bitte anschauen: https://gizmodo.com/i-cut-the-big-five-tech-giants-from-my-life-it-was-hel-1831304194 - diesen Gedanken hat jemand zu Ende gedacht und auch Amazons webservices einbezogen) Also leben wir damit und präparieren uns für den Ernstfall.

Das zweite Anliegen ist das Weiterleiten von Anrufen auf mein Legofon:
Mit dem GSM Code **61*Rufnummer**5# werden alle Anrufe nach 5 Sekunden auf mein neues Telefon umgeleitet. Auch hier gibt es wieder den Kompromiss nicht komplett auf das Apfeldings zu verzichten. Noch nicht.

Resümee

Was geht am Telefon:
Anrufen und Angerufen werden im 4G Netz
Whattsapp
MP3
Zocken ( Tetris <3 )
Surfen
PDF und Officepakete (ist ja ein schließlich vollständiger Linuxrechner)

Was muss noch verbessert werden:

Displaygröße

LEGO® ist eine Marke der LEGO Gruppe, durch die die vorliegende Webseite jedoch weder gesponsert noch autorisiert oder unterstützt wird.