Praktische Apps und Hardware für Touren mit dem Fahrrad

Dieses mal geht es um praktische Hardware und Software (Apps) für das rumfahren mit dem Fahrrad. Hintergrund: Ich lebe seit 10 Jahren in einer Stadt, habe seit 7 Jahren kein KFZ mehr und seit 2 Jahren kein Abo für den ÖPNV. Ich pendle mit dem Rad zur Arbeit, mache Tagestouren bis ~ 100km und nutze das Rad auch um ein wenig in Form zu bleiben. Im Durchschnitt fahre ich ~ 10.000 Kilometer / Jahr auf dem Rad. Ich habe also einen konkreten Bedarf für Navigationsmittel und möchte ein wenig meine Fitness und den Fortschritt erfassen.

Hardware

Sensoren

Die meisten Sensoren für das Rad laufen auf ANT+, einem proprietären Funkstandard. Die Bandbreite ist gering, dafür ist die Stromaufnahme gering. Jedes halbwegs moderne Android Gerät mit Bluethooth Chip kann sich auf die Sensoren verbinden.

Ich verwende einen Geschwindigkeitssensor der nur Strecke und Geschwindigkeit misst. Damit habe ich einen groben Überblick wie viele Kilometer das Rad schon gelaufen ist. Die Synchronisierung mit der Garmin App läuft automatisch. Zusätzlich habe ich einen Trittfrequenzsensor um meine Ausdauer zu verbessern.

Ich habe die Sensoren mangels wissen von Garmin gekauft. Chinesische Kopien sollen genauso gut funktionieren.

Smartphone Halterung

Tot durch billige Halterung und holprige Strecke

Ich besitze keinen Fahrradcomputer weil ich schon ausreichend Hardware in meinem Alltag habe die geladen und gepflegt werden will. Nach sehr negativen Erfahrungen mit einer günstigen Lenkradhalterung hab ich mich für ein System namens Quad Lock entschieden. Das ist eine solide Halterung und eine Hülle die genau auf Smartphone und das System eingepasst ist. Leider gibt es nicht für jedes Smarthpone eine passende Hülle aber die üblichen Verdächtigen wie IPhone, Samsung, Pixel Phone bekommt man die Hüllen.

Smartwatch

Ich trage eine Garmin Vivo Active Smartwatch um Touren zu erfassen. Durch die Uhr fallen zusätzlich GPS- und Herzfrequenzdaten an. Die Uhr kann auch als Ant+ Sender genutzt werden um Daten zur Herzfrequenz an andere Geräte zu übertragen.

Links

Software

Garmin Connect

Die Daten der Sensoren landen via Bluetooth in Garmin Connect. Ich nutze auch noch eine Fitness Uhr von Garmin aber um die soll es an dieser Stelle nicht gehen. Neben dem Sammeln von Daten wird alles auf den Servern des Herstellers abgespeichert. Wer Wert auf Datenschutz legt sollte hier vorsichtig sein. Ein Vorteil ist die Anbindung an weitere Cloud Dienste und ein einfacher Zugriff über mehrere Geräte inklusive Webinterface. Die Daten können mit weiteren Diensten wie z.B. Komoot oder Strava geteilt werden.

Anfallende Daten auf dem Weg zum Kloster Schäftlarn in der Garmin Android App
Anfallende Daten auf dem Weg zum Kloster Schäftlarn

Kilometerzähler für mein Fahrrad
Kilometerzähler für mein Fahrrad

Navigation

Für die Navigation und Streckenplanung benutze ich Komoot. Das Kartenmaterial stammt von OpenStreetMap. Die App bietet nette Social Media Komponenten um Menschen zu folgen, Bilder hochladen usw. Wirklich interessant ist das Suchen nach interessanten Touren. Man bekommt alle relevanten Informationen wie Distanz, Höhenmeter, Dauer und eventuell ein paar Bilder und kann sich die Routen zum Nachfahren abspeichern und auch modifizeren. Neben der App gibt es ein Webinterface mit dem man bequem am PC Routen erstellen kann. Die Navigation ist ziemlich gut gemacht. Alles ist jederzeit klar ablesbar und gut verständlich.

Die Grundfunktion der App ist kostenlos; allerdings ist man auf eine Region beschränkt Wenn man außerhalb dieser Region unterwegs ist muß man entweder diese Region kaufen oder das „Weltpaket“ für ~ 30€ um überall auf dem Planeten navigieren zu können. Meiner Meinung nach lohnt sich die Investition und es ist ein kleines Dankeschön an die Entwickler die hier wirklich gute arbeit leisten. Es gibt ein optionales Abo mit dem ich keine Erfahrung habe. Die App gibt es für IOS und Android.

Fitness

myWorkouts

Bei der App myWorkouts handelt es sich um einen erweiterten Fahrradcomputer der Daten aus Sensoren und Smartwatches auslesen und aufbereiten kann. In meinem Setup sehe ich Geschwindigkeit, Tritt- und Herzfrequenz, Histogramme zu den Daten und Durchschnittswerte. Ich nutze die Anwendung um sicherzustellen, daß ich nicht mit dem Rad flaniere sondern meinen Körper stresse. Fahrten werden auf Wunsch lokal abgespeichert.

Screenshot der App myWorkouts: gespeicherte Fahrt
Screenshot myWorkouts: gespeicherte Fahrt

LTE als DSL Ersatz

Alle paar Jahre verlangt das Netzwerkequipment zu Hause nach ein wenig Aufmerksamkeit. Ich lebe recht zentral in München und mehr als DSL 16.000 bekommt man hier. Das Mietshaus hat keinen Glasfaseranschluss. Leider wurde und wird die Performance von meinem Anschluss mit der Zeit immer bescheidener. Im Jahr 2011 hatte ich DSL 50k gebucht und auch meist gehabt. Später hat der Provider mich freillig in einen günstigeren Tarif geschoben weil solche Performance hier nur im Reich der Phantasie stattfindet.

Nachmittags ist der Download einigermaßen akzeptabel. Container pushen + pullen, Dependencies installieren macht wenig Spaß. Wenn in der Nachbarschaft Abends gestreamt wird kommt man sich vor wie in den späten 1990er Jahren. Ich könnte jetzt auf irgendwelche Provider schimpfen aber mehr kommt aus alten Kupferdrähten in der TAE und dem Gemurkse im DSLAM nicht raus.

LTE als Alternative

Über Golem bin ich auf Freenet Funk Unlimited gestoßen. Dabei handelt es sich um einen LTE Traif ohne Volumenbegrenzung für 99 Cent pro Tag. Zahlbar nur via Paypal und täglich kündbar.
Im Monat kostet der Spaß ~ 30,11€ also 5€ teuer als mein Vodafone DSL Anschluss.

Setup

Alle Clients hängen an einem Router mit DD-WRT Firmware. Das Gateway des Routers ist ein „Reiserouter“ von GL.INet in dem das LTE Modem steckt.
Das hat einen ganzen Haufen Vorteile:

  • DD-WRT ist einigermaßen OpenSource
  • Jeder Router mit DD-WRT hat das gleiche Webinterface und man kann auch per Telnet drauf rumfummeln wenn man das möchte.
  • Falls das Gateway ausfällt / Provider gewechselt wird / neue Hardware vom Provider kommt muß nur das Modem getauscht werden und keine Clients konfiguriert werden (Darum gehts hier).

Inbetriebnahme

Die SIM Karte hatte ich nach einem Tag. Aktiviert wurde mit einer Android App. Keinerlei Probleme.
In den LTE Stick muß eine Mini-SIM eingelegt werden – an Adapter denken!
Beim ersten Einschalten muß die PIN eingetragen werden. Das kann man bestimmt mit irgendeiner Windows Anwendung machen oder mit dem Webinterface auf 192.168.8.1.

Performance + Stabilität

Mit Freenet Funk surft man im Netz der armen Leute – nämlich bei O2. In der Stadt ist das kein Problem aber auf dünner besiedelten Landstrichen kann es langsam werden.
Wichtig ist die Position und Ausrichtung des Sticks. Eine höhere Position bringt ~40% mehr Speed in beide Richtungen und halbiert den Ping. Sehr schön.

Die Verbindung ist bis jetzt stabil – ich hatte keine Offlinezeiten oder größere Latenzen. Keine Lags oder broken Pipes bei SSH. Leider ist der Standort des Modems im Moment suboptimal – neben der Wohnungstür und weit weg von Fenstern. Versuche mit CRC-9 Antennen und anderen Orten werde ich noch durchführen. Leider bietet der Stick keine granulareren Informationen zur Verbindungsqualität als 3 von 5 Balken 4g. Dieses Pythonscript zieht mehr Infos aus dem Webinterface des Sticks aber die genauere Daten zur Signalstärke habe ich noch nicht gefunden.

Erster Benchmark, Antenne liegt im gewohnten Kabelgewirr

Stick steht frei in erhöhter Position

Fazit

Surfen über LTE macht Laune. Standort und Ausrichtung des Sticks entscheiden über die Qualtät der Verbindung .
Wahrscheinlich kann ich noch ein bisschen Performance mit Antenne und Standortwechsel rauskitzeln. Ein guter Ersatz für meine DSL Leitung ist es auf jeden Fall.
Bei eklatanten Verbesserungen oder Verschlechterungen werde ich diesen Artikel aktualisieren

Bemerkung: Ich bekomme keine Zuwendungen von Freenet. Wenn Ihr auf die Amazon Links klickt springen unter Umständen ein paar € für mich raus.

ESP8266 debuggen

Über diesen netten Chip habe ich bereits einen Artikel geschrieben. Lief problemlos, weil die Bauteile „zusammengepasst“ haben. Ich habe mir 2 Platinen gebastelt die Raumtemperatur und Feuchtigkeit messen. Den „Weg“ zu dieser Wetterstation habe ich auf Github abgelegt – vielleicht hilft es ja jemandem weiter

2015-10-30 20.08.48
Von oben
2015-10-30 20.09.01
Und von unten

Schwer motiviert habe ich mir noch ein paar Arduino Nanos und ESP8266 bestellt und damit hat erstmal nichts geklappt! Das ist im ersten Moment ärgerlich, hat aber auch den Vorteil, daß man sich näher mit der Materie auseinander setzen muß.

Den Chip auf Breadboards benutzen

Durch den geringen Abstand der Pins kann man den ESP8266 schlecht mit Breadboards verwenden. Deshalb mußt Du vor jeglicher Art von Bastelei einen Adapter löten um Dein Leben leichter zu machen.

Benötigt werden ein Stück Lochraster Platine, eine Buchsenleiste und eine Steckerleiste mit jeweils 8 Pins. Die Steckerleiste besteht aus einem Kunststoffteil und Pins. Ich habe den Kunststoffteil ganz nach oben gedrück und dann falsch herum eingelötet. Die Buchsen ganz normal einlöten und dann auf der Unterseite verbinden. Mangels Draht und Bock habe ich die Brücken mit dem Lötkolben gemacht. Das dauert keine 10 Minuten und der Komfortgewinn ist enorm!

adapter

Probleme mit der Spannungsversorgung

Die ESP’s laufen mit 3,3V. Der Arduino hat einen 3,3V Pin der je nach verbautem Spannungsregler nicht genügend Strom liefert (wie meine neuen Arduinos). Das Problem wird sichtbar wenn die LED’s am ESP8266 dunkler werden oder die Spannung zusammenbricht. Mit einem externen Spannungsregler wie dem. AMS1117 läßt sich das Problem beheben.

Übertragungsraten

Mein erster Satz ESP8266  hat mit einer Symbolrate 9600 Baud gearbeitet. Die nächste Charge mit 115200, Baud die schafft mein neuer Satz Nanos, aber nicht die Alten.

Laut diesem Post läßt sich die Baudrate mit einer aktuellen Firmware setzen. Muß ich unbedingt ausprobieren!

Firmware ist vom Hersteller angepasst

Der gesamte Bereich Firmware ist ungemein spannend. Der ESP8266 wurde von der Firma ESPRESSIF erfunden oder produziert oder kopiert. Mein 2. Satz Chips war von der Firma AI-Thinker, die eine eigene, leicht inkompatible Firmware auf die Geräte gespielt hat und die ich nicht will weil die Sketches nicht damit laufen!

Um angenehmer mit den Chips  rumzumachen habe ich mir einen USB TTL Konverter gekauft (kostet zwischen 3€ und 8€). An Software wird nur die unsägliche Arduino IDE benötigt. Konfiguration ist unter Linux nicht nötig. Einfach die Arduino IDE starten und den Serial Monitor öffnen. Hier solange mit der Baudrate spielen, bis man auf das Kommando AT ein OK zurückbekommt. Hier mal ein Auszug aus einem solchen seriellen Gespräch – meine Kommandos sind fett, die Antworten kursiv:

AT
OK
AT+GMR 
AT version:0.30.0.0(Jul 3 2015 19:35:49)
SDK version:1.2.0
Ai-Thinker Technology Co.,Ltd.
Build:1.2.0.A Aug 7 2015 17:21:44
OK

Dies ist die Antwort der inkompatiblen Firmware. Eine schöne Übersicht über Kommandos habe ich bei Iteadstudio gefunden.

Eine nette Anleitung um die Firmware loszuwerden gibt es im Wiki von mikrocontroller.net.

Zusammengefasst (und darum geht’s in dem Beitrag) braucht man das Esptool zum Flashen und eine aktuelle Firmware. Der Chip muß dazu auch besonders beschaltet werden. Ronny Simon von Simtronyx hat das auf seinem Blog sehr nett beschrieben. Wenn die Schaltung steht alle Serial Monitors schließen und kurz Masse an Reset legen. In das Verzeichnisse der Firmware wechseln und mit esptool flashen

ms@w530: /tmp/esp_iot_sdk_v0.9.5/bin$ sudo esptool.py -p /dev/ttyUSB2 write_flash 0x00000 boot_v1.2.bin 0x01000 at/user1.512.new.bin 0x3e000 blank.bin 0x7e000 blank.bin
Connecting...
Erasing flash...
Wrote 2048 bytes at 0x00000000 in 0.2 seconds (81.7 kbit/s)...
Erasing flash...
Wrote 211968 bytes at 0x00001000 in 20.5 seconds (82.7 kbit/s)...
Erasing flash...
Wrote 4096 bytes at 0x0003e000 in 0.4 seconds (85.6 kbit/s)...
Erasing flash...
Wrote 4096 bytes at 0x0007e000 in 0.4 seconds (85.6 kbit/s)...
 
Leaving...

Zumindest bei mir hat danach alles wirklich super funktioniert 🙂

Alternative Firmware

Ein paar ziemlich coole Leute bieten eine eine Firmware an, die das Ausführen von LUA Script ermöglicht. Eine Anleitung gibts hier. Eine einfache Möglichkeit um an angepasste Firmware zu gelangen ist dieser Build Service. 

 

Dies waren soweit meine Probleme mit dem netten Chip. Falls neue auftreten werde ich diesen Beitrag entsprechend erweitern.

Arduino mit Wlan Modul ESP8266

Vor ca. 9 Monaten hat mein Feedreader mir einen interessanten Artikel präsentiert. Er handelte von einem Elektronik-Modul namens ESP8266 der TCP/IP Kommunikation über WLAN mit Arduino Controllern ermöglicht. Low-Level Geschichten interessieren mich normalerweise nicht, weil es meist aufwändig und kostspielig war die Hardware ins Netz zu bringen- vor allem ohne Kabel. Dank der netten Ebay Händler aus Shenzhen bekommt man die Hardware für solche Unterfangen inzwischen unter 10€. Ich hatte das Teil sofort bestellt, aber habe es nie geschafft es in Betrieb zu nehmen weil immer was dazwischen kam und mir die Muße fehlte – bis vor ca. 1h. Warum meine ersten Versuche das Teil in Betrieb zu nehmen fehlschlugen kann ich leider nicht mehr sagen. Als ausgebildete Fachkraft bin ich zu 100% sicher die Schaltung 1:1 nachgebaut zu haben aber es wollte nicht klappen. Aufgrund solcher Gedächtnisslücken schreibe ich jetzt diesen Artikel:).

 

 

Auf der Website Instructables.com bin ich auf eine vergleichbare Anleitung gestoßen, die eine Verkabelung ohne Spannugnsteiler und Stützkondensator vorsieht und auf einmal hatte es funktioniert! In dem Tutorial dreht sich alles darum per Http Request Sensordaten von einem DS1820 Temperatursensor per HTTP auf eine recht interessante Seite namens Thingspeak zu übertragen. Ich habe den Code ein wenig angepasst, da ich weder die Hardware dafür besitze noch die Libraries einbinden wollte. Wenn Du das nachbauen möchtest benötigst Du einen Account auf der Seite und mußt den Präprozessor neben SSID und Passwort mit einen API-KEY für Thingspeak füttern.

#include
#include 
 
 
#define SSID "SSID"
#define PASS "PASSWORD"
#define IP "184.106.153.149" // thingspeak.com
String GET = "GET /update?key=[APIKEY]]&field1=";
SoftwareSerial monitor(10, 11); // RX, TX
 
void setup()
{
  monitor.begin(9600);
  Serial.begin(9600);
 
  sendDebug("AT");
  delay(5000);
  if(Serial.find("OK")){
    monitor.println("RECEIVED: OK");
    connectWiFi();
  }
}
 
void loop(){
 
  //float tempC = sensors.getTempCByIndex(0);
 
  char buffer[10];
  String tempF = dtostrf(989, 4, 1, buffer);
  updateTemp(tempF);
  delay(60000);
}
 
void updateTemp(String tenmpF){
  String cmd = "AT+CIPSTART=\"TCP\",\"";
  cmd += IP;
  cmd += "\",80";
  sendDebug(cmd);
  delay(2000);
  if(Serial.find("Error")){
    monitor.print("RECEIVED: Error");
    return;
  }
  cmd = GET;
  cmd += tenmpF;
  cmd += "\r\n";
  Serial.print("AT+CIPSEND=");
  Serial.println(cmd.length());
  if(Serial.find(">")){
    monitor.print(">");
    monitor.print(cmd);
    Serial.print(cmd);
  }else{
    sendDebug("AT+CIPCLOSE");
  }
  if(Serial.find("OK")){
    monitor.println("RECEIVED: OK");
  }else{
    monitor.println("RECEIVED: Error");
  }
}
void sendDebug(String cmd){
  monitor.print("SEND: ");
  monitor.println(cmd);
  Serial.println(cmd);
} 
 
boolean connectWiFi(){
  Serial.println("AT+CWMODE=1");
  delay(2000);
  String cmd="AT+CWJAP=\"";
  cmd+=SSID;
  cmd+="\",\"";
  cmd+=PASS;
  cmd+="\"";
  sendDebug(cmd);
  delay(5000);
  if(Serial.find("OK")){
    monitor.println("RECEIVED: OK");
    return true;
  }else{
    monitor.println("RECEIVED: Error");
    return false;
  }
}

Die Verdrahtung gestaltet sich sehr einfach und funktioniert mit meinem Arduino UNO- und dem Arduino NANO 328-Klon:

ESP8266 Arduino
TXD RXD
CH_PD VCC 3V3
VXX VCC 3V3
GND GND
RXD TXD

Die Pins auf dem WLAN Chip sind so belegt:

Bild von http://mcuoneclipse.com/2014/10/15/cheap-and-simple-wifi-with-esp8266-for-the-frdm-board/

Hier 2 Bilder die zeigen wie die PINS auf den Arduinos herausgeführt sind:

 

Der Arduino Nano mit 328 Mega Chip

uno

Tükisch waren 2 Dinge an der Geschichte:

  1. Nmap findet das Gerät nicht im Netzwerk. Ich bin der Sache noch nicht nachgestiegen, aber mit <ahref=“http://linux.die.net/man/8/arp“>arp ist es kein Problem. Das muß ich mir anschauen
  2. Der Arduino kann nur programmiert werden, wenn man das WLAN Modul spannungsfrei macht. Auch ein Trennen der Verbindungen WLAN Modul Arduino und Arduino PC erleichtert das übertragen…

In den kommenden Tagen werde ich wohl ein kleines Programm schreiben, daß auf Port 80 lauscht und entsprechenden POST Requests analoge und digitale Ports schaltet und Stati ausgibt. Auch eine Anbindung an mein Openhab wäre sehr nett…

Kabelsalate bändigen

Ich habe inzwischen mehr elektrische Geräte mit einer USB Buchse als mit klassischem Schuko Stecker. Als logische Konsequenz besitze ich auch recht viele Netzteile die Steckdosen verstopfen. Der Worstcase in Sachen Aufladung schaut so aus:

Akku entladen bei Ipad, Ebook Reader, Mobiltelefon, Mobiltelefon Freundin.

In dem Fall brauche ich 4 Geräte gleichzeitig. Wenn nun an verschiedenen Orten geladen werden soll steigt die Anzahl entsprechend. Zusätzlich schauen solche Installationen auch immer aus wie die Sau – überall fliegen Kabel herum und müssen für den Ladevorgang entwirrt werden, unter dem Sofa rausgekramt werden und was weiß ich. Alles sehr suboptimal.

Das Problem mit den vielen Netzteilen habe ich mit einem Großen  erschlagen – 5 USB-Geräte werden gleichzeitig geladen – P max =40W. Lädt auch Geräte von der Firma Apple. Ein bisschen werde ich damit wohl auch sparen aber für einen ROI < 1 wird es nicht reichen 🙂

Das Kabelgewirr war ein wenig kniffliger. Ich bin kein Freund von Kabelbindern in der Wohnung und hatte auch keine Lust mich mit dem Thema Kabelorganisierung zu beschäftigen. Abhilfe konnte ich mit meinem 3d Drucker und dem Tool OpenSCAD schaffen. Diese Kombination ist ideal um schnell Halterungen, Ersatz für kaputte Deckel von Fernbedienungen oder sinnlosen Nippes zu produzieren. Das schöne an OpenSCAD ist, daß man keine Kenntnisse in der Modellierung von 3d Modellen haben muß. Die Objekte werden einfach in einer Skriptsprache beschrieben. Dabei dreht es sich immer um das definieren von 3d Objekten, rotieren, transformieren usw.

39 Zeilen Script erzeugen die Halterung für den Tisch:

/**
 *Draw a parametric cable holder
 *
**/
use &lt;../../_library/roundedCornerCube.scad&gt;;
use &lt;../../_library/screwHoles.scad&gt;;
 
module holder(width, heightTable, length) {
    heightBottomPart =6;
    heightTopPart =5;
    widthLongPart = 6;
    //Table
    /*
    color( "Aqua", a=0.3 ) { 
       cube(size=[500,500,heightTable]); 
    }
    */
    difference() {
        translate([-widthLongPart ,50,- heightBottomPart]) {
          difference(){
                cube(size= [length, width, heightTable+heightBottomPart +heightTopPart]);
                    translate([10,width/2,0]){
                        holeM3(30);
                }            
                //Hole for the Long Part
                translate([-10,width/2, (heightTable/10*8)]) {               
                    rotate([0,90,0]){
                        holeM3(30);
                    }
                }           
            }                   
        }
        //Cut the table out
        cube(size=[500,500,heightTable]); 
    }
}
 
rotate( [90,0,0])
holder(20, 50,30);

Nach ca. einer Stunde warten auf den Drucker hat man eine Halterung

 

2015-08-22 17.39.28

 

 

 

 

 

 

 

 

Das Konzept schaut so aus: Kabel in die Führungen einlegen, Halterung an den Tisch drücken, von unten mit einer Schraube kontern. Wenn man etwas laden möchte einfach am Kabel ziehen und einstecken. Wenn der Vorgang abgeschlossen ist das Kabel aus dem Gerät entfernen und zurückdrücken. Fertig. Wer den Spaß nachbauen möchte kann sich den „Quellcode“ bei Thingiverse laden. Hier noch ein Bild von dem sensationell aufgeräumten Tisch 🙂

2015-08-22 17.39.17

Systemfreien Kaffee produzieren und Konsumieren

Wer als Konsument mangelnde Vorsicht walten läßt findet sich rasch in einem Konsumsystem wieder. Das Konzept ähnelt der iOS Plattform von Apple mit dem Unterschied, daß der Einstieg in ein solches System wesentlich günstiger ist als bei Apple.  Vor langer Zeit ist mir das mit Kaffee passiert: Ich bekam eine Nespresso Maschine geschenkt, die man mit Kapseln aus Aluminium füttern muß. Die Gegenleistung dabei ist eine kleine Tasse Kaffee und Müll in Form einer Metallkapsel. Subjektiv schmeckt der Kaffee wesentlich besser als klassischer Filterkaffee, dafür bezahlt man wirklich unverschämte Preise pro Tasse. Nestle, der Hersteller der Kapseln scheint sehr gut damit zu verdienen. Neben einem äußerst bizarren Ladengeschäft am Odeonsplatz in München reicht das Geld auch noch für eine Werbekampagne mit prominentem Schauspieler die aus so etwas trivialem wie Kaffeetrinken einen Lifestyle-Tätigkeit macht. Die Nespressomaschinen verarbeiten nur Kapseln, kein Pulver. Man kann diese auch von anderen Herstellern, erwerben aber der Kaffee ist immer von viel Plastik oder Metall umhüllt und extrem teuer.

Das ständige Einkaufen und Entsorgen von Kapseln hat mich nach 6 Monaten derart angekotzt, daß ich mich auf die Suche nach einer Alternative gemacht habe. Vollautomaten kommen für mich nicht in Frage, da sich mein Kaffeekonsum mit solchen Maschinen der Unendlichkeit nähert – bei guter Laune und interessanter Aufgabe hab ich schon locker 15 Tassen auf der Arbeit mit solchen Geräten geschafft – tut zwar der Umwelt gut, aber meinem Körper eher weniger. Filterkaffee schmeckt mir einfach nicht und eine ordentliche Espressomaschine ist mir (momentan?) zu Aufwändig im Betrieb.

Im Pflichtenheft steht also eine Gerätschaft die eine kleine Portion Kaffee (meist für 1- 2 Personen) schnell und einfach zubereitet und so wenig Müll wie möglich bei überschaubaren Kosten produziert. 

Die Lösung meines Problems fand ich im Urlaub in Italien. Jeder Haushalt in diesem Land scheint mit einer Espressokanne von Bialetti für den Herd ausgestattet zu sein. Mir wurde das Model „Moka Express“ der Marke Bialetti empfohlen. Erworben habe ich es inklusive allerhand Ersatzteile für 25€ in einem Eisenwarengeschäft in Norditalien.

Die Bedienung des Geräts ist simpel jedoch aufwändiger als bei der Kapselmaschine:

    1. Kessel und Kanne durch Drehung demontieren
    2. Sieb entfernen
    3. Kessel mit Wasser befüllen
    4. Sieb einsetzen
    5. Das Sieb bis zur Oberkante mit Kaffee füllen und leicht andrücken.
    6. Kanne auf den Kessel schrauben
    7. Maschine auf der Herdplatte erhitzen

Klingt aufwändig, geht aber wirklich schnell von der Hand und schmeckt ganz gut. Außerdem hat man bei jedem Schluck Kaffee das gute Gefühl, daß man einem ekelhaften Großkonzern  kein Geld in den Rachen geworfen hat.

Anfangs habe ich die Maschine mit gemahlenem Kaffee aus dem Supermarkt betrieben. Meine Freundin schlug dann irgendwann vor Bohnen zu erwerben und diese selbst zu mahlen. Aus einer Laune heraus habe ich mich dazu entschlossen die oben beschriebene Prozedur noch komplexer zu machen und eine Mühle ohne elektrischen Antrieb zu erwerben. Um eine Wochenration Kaffeepulver zu produzieren muß man ca. 15 Minuten aufwenden. Dafür wird man mit interessanten olfaktorischen Erlebnissen während der Produktion belohnt (riecht wirklich fein) und kann Erfahrungen bezüglich des Mahlgrads sammeln, der eine wichtige Rolle bei der Produktion spielt. Ich mahle momentan Arabica Bohnen mit einer japanischen Mühle für ca. 35€ und bevorzuge etwas groberes Pulver. Das Endprodukt schmeckt mir mit einem Schuss Milch besser als alles was aus Kapselmaschinen oder Vollautomaten kommt. Sicherlich ist der Arbeitsaufwand höher als bei Kapselmaschinen, dafür sind die laufenden Kosten deutlich geringer  – 1kg Kaffeebohnen von der Kooperative Espanica kosten ca. 9€ und nach 2 Wochen Konsum ist der erste Beutel noch zu 70% gefüllt. Weiterhin habe ich in der jetzigen Situation den Vorteil, daß nur wenige mechanische und elektrische Komponenten kaputt gehen können.

Mit diesem Artikel möchte ich niemanden belehren, ihm den Geschmack der Kaffeekapseln madig machen oder auf Lebensmittelkonzernen rumbashen. Ich will eher einen kleinen Denkanstoß geben um über Konsumsysteme im eigenen Haushalt nachzudenken. Hier noch ein paar Bilder:

Bialetti Maschine, Pulver und Kopf der Mühle
Maschine, Pulver und Kopf der Mühle
Pulver und gefüllte Espressokanne
Pulver sowie gefülltes Unterteil (Kessel + Sieb)
Fertiger Kaffee
Fertiger Kaffee

 

Images von X-Box 360 Spielen unter Linux entpacken

Mittels eines netten Hacks kann ich Spiele per USB Stick oder FTP auf die X-Box kopieren. Dafür muß jedoch das Image korrekt extrahiert werden. Dafür benötigt man das Tool extract-xiso (Achtung – Link geht zu Sourceforge).

Nun mit

extract-xiso -x fallout-3-game-of-the-year.iso

entpacken und im Anschluss kopieren

Serielle Kommunikation über Bluetooth

Für ein kleines Projekt (Mobiltelefon steuert Arduino) habe ich mir ein HC-06 Bluetooth Modul für wenig Geld in China besorgt. Bluetooth habe ich nie gemocht, weil ich nie viel Freude daran hatte diese Gerätschaften unter Linux zu konfigurieren, aber der Preisunterschied zu Arduino WLAN Modulen hatte dann doch den Ausschlag gegeben:).
 Über GUI ließ sich das Gerät leider nicht konfigurieren, aber  mit den bluez-utils auf der Kommandozeile ließ sich das Problem rasch beheben.

Zuerst muß die MAC Adresse des Moduls in Erfahrung gebracht werden.

ms@debian:~/$ hcitool scan
Scanning ...
	0C:DF:A4:DE:01:54	S3350
	20:14:04:11:15:16	HC-06

Das File rfcomm.conf anpassen

root@debian:/# cat /etc/bluetooth/rfcomm.conf 
#
# RFCOMM configuration file.
#
 
rfcomm0 {
#	# Automatically bind the device at startup
	bind yes;
#
#	# Bluetooth address of the device
	device 20:14:04:11:15:16;
#	# RFCOMM channel for the connection
	channel	1;
#
#	# Description of the connection
	comment "HC-06";
}

Nun die Pin des Geräts (Default ist 1234) setzen – Mac Adresse am Besten per Tabulator vervollständigen
root@debian:/# sudo echo „20:14:04:11:15:16 1234“ >> /var/lib/bluetooth/08\:3E\:8E\:E5\:1C\:5E/pincodes

Und den Bluetooth Daemon neu starten.

root@debian:/# sudo /etc/init.d/bluetooth restart

Befehle an den Bluetooth Client senden

Strings kann man nun einfach an das Gerät redirecten
ms@debian:~$ echo „beep“ >/dev/rfcomm0

Ausgabe des Bluetooth Clients lesen

Einfach mit cat die Gerätedatei ausgeben

ms@debian:~$ cat /dev/rfcomm0
==Commands==
led on
led off
beep
beep_d [duration]
==Commands==
led on
led off
beep
beep_d [duration]

fin.

Click’N’Load per Tunnelbau an die Pyload Maschine weiterleiten

Wer ab und an bei Sharehostern Dateien lädt kennt sicherlich Click’n’Load. Nach dem Klick auf einen Button im Browser füllt sich die Queue des Downloadmanagers mit neuen Files. Dabei werden Informationen zu Dateien per Http POST vom lokal laufenden Download Programm wie jDownloader oder PyLoad entegengenommen. Dies geschieht durch einen kleinen Webserver der auf dem Port 9666 lauscht. Wenn der Downloadmanager nicht lokal läuft funktioniert der Mechanismus leider nicht.

Mit einem SSH-Tunnel kann man den POST Request an einen anderen Rechner weitleiten. Dort muß neben dem Downloadmanager auch ein SSH-Server laufen.

In meinem kleinen Beispiel läuft Pyload auf einem Pi mit der Ip 192.168.0.110. Um den Tunnel nachzubauen mußt Du also nur die Ip anpassen:

ms@debian:/home/ms# ssh -L 127.0.0.1:9666:192.168.0.110:9666  pi@192.168.0.110 -N

Den Tunnel kannst du mit diesem Link testen.

Nachtrag 21.06.2014
Die Arbeit mit ssh kann man sich generell einfacher machen wenn man ein Configfile für das Tool benutzt. Dort kann man Aliase für Server definieren, deklarieren auf welchem Port sshd läuft oder welcher Key zur Authentifizierung genutzt werden soll. Nähere Informationen dazu gibt es bei den Ubuntuusers oder Nerderati.

Debian Wheezy auf dem Raspberry Pi installieren

Seit etwa einem Jahr nutze ich einen Raspberry Pi um mir damit Filme und Serien anzuschauen.Läuft ganz gut und mit OpenElec etwas flüssiger in der Menüführung als Raspbmc.Wenn weitere Dienste laufen wird das Filmvergnügen leider ein wenig ausgebremst weshalb ich mir ein zweites Gerät zugelegt habe.Auf dem neuen Raspberry Pi soll nun Debian seine Dienste verrichten und mir als Pyload Server und digitales Tor zu meiner Bude via sshd dienen.

Ich habe keine Lust den Pi mit Monitor und Tastatur zu schmücken, deshalb wird das System als Image auf eine SD Karte geschrieben und gut ist.

Die Debian Version für den Pi nennt sich Raspbian und läßt sich auf der Homepage des Projekts downloaden.

Eine Variante von Debian für den Pi nennt sich Raspbian und läßt sich auf der Homepage des Projekts downloaden.

1. Image auf die SD Karte schreiben, Pi starten

Die Blocksize war in der offiziellen Anleitung leider falsch angegeben.

root@debian:/home/ms/Downloads# dd bs=1M if=2014-01-07-wheezy-raspbian.img of=/dev/mmcblk0
root@debian:/home/ms/Downloads# sync

Pi vom Stromnetz trennen, Karte einstecken. Wenn nur eine rote LED leuchtet ist etwas schief gegangen
Nun dem Pi ein wenig Zeit zum booten geben und per nmap nach neuen Geräten suchen

ms@debian:~$ nmap -sP 192.168.0/24

2. Initiale Konfiguration

Per SSH einloggen, Konfiguration ausführen

#default password raspberry
ms@debian:~/Downloads$ ssh pi@192.168.0.110
pi@raspberrypi ~ $ sudo raspi-config

Erstmal Vim und Screen installieren

pi@raspberrypi ~ $ sudo su
root@raspberrypi:/home/pi# apt-get update
root@raspberrypi:/home/pi# apt-get install vim screen

Swap anpassen

root@raspipy:/home/pi# echo "CONF_SWAPSIZE=512" > /etc/dphys-swapfile
root@raspipy:/home/pi# dphys-swapfile setup
want /var/swap=512MByte, checking existing: deleting wrong size file (104857600), generating swapfile ... of 512MBytes
root@raspipy:/home/pi# dphys-swapfile swapon

3. NFS Freigaben einrichten

Ich nutze für Dateifreigaben nur noch nfs, das ist schneller als Samba und man hält sich den M$ Mist aus dem Netz. Mußte den Daemon ein wenig anpassen (Kernel Version 3.10 vom 2014-01-07).

NEED_STATD auf YES setzen in /etc/init.d/nfs-common
Einmal alles bezüglich NFS neustarten oder rebooten.

Die Shares einrichten und mounten (die uninteressanten Dinge aus fstab habe ich entfernt):

root@raspipy:/home/pi# cat /etc/fstab
192.168.0.50:/media_movies /media/nfs_movies nfs auto,rw 0 0 
192.168.0.50:/media_serien /media/nfs_serien nfs auto,rw 0 0
192.168.0.50:/downloads /media/downloads nfs auto,rw 0 0
root@raspipy:/home/pi# mkdir /media/nfs_movies
root@raspipy:/home/pi# mkdir /media/nfs_serien
root@raspipy:/home/pi# mkdir /media/downloads
root@raspipy:/home/pi# mount -a

Das wars soweit mit der Einrichtung von Debian. Ich habe zusätzlich den Port 22 am Router auf den Pi weitergeleitet und in /etc/ssh/sshd_config Logins mit Passwort verboten. Demnächst gehts weiter mit der Einrichtung von Pyload oder was Anderem wenn es mir nicht taugt :).