Dienstag, 12. Mai 2015

Tramunsch... aber schön!

In der letzten Aprilwoche flogen wir nach Mallorca. Der Plan war sowohl eine ausgedehnte Wandertour als auch eine entspannte Zeit am Strand zu kombinieren. Wir flogen mitten in der Nacht, natürlich ohne zu schlafen, und landeten 7 Uhr Ortszeit auf der kleinen Insel. Nachdem wir unseren Mietwagen organisiert hatten, fuhren wir zuerst an die Südküste. Dort legten wir uns erstmal an den Strand, bei lauschigen 25°C und dösten in der Sonne. Kombiniert mit gelegentlichen Schwimmen und frischen Erdbeeren ließen wir den Tag dahinplätschern und kehrten am Abend in unser Hotel ein.
Tag 1 - Erdbeeren, Türkisfarbenes, klares Wasser, Strand, Sonne. Urlaub = Check
Am nächsten Tag fuhren wir mit dem Auto an das nördliche Kap, nach Pollenca, stellten den Mietwagen ab und fuhren mit öffentlichen Verkehrsmitteln nach Deià. Dort begann anschließend unsere Wanderung durch die Tramuntana. Der Plan war, den GR221 entlangzugehen, einen Gebirgswanderweg entlang der Westküste bis in den den Norden von Mallorca. Im Vorfeld hatten wir uns vorbereitet und mit Wanderkarte, Kompass und Beschreibungen eingedeckt. Eine gute Hilfe war dabei diese Website. Alpenquerung schlägt Varianten des GR221 vor, die Landschaftlich sehr schön sind, aber leider auch sehr fordernd sind. Daher auch der Titel: Tramunsch... aber schön.
Anstatt jedoch bei Etappe 1 zu starten, haben wir direkt mit Etappe 5 begonnen. Dies hatte praktische Gründe. Zum einen wollten wir mehr Strandtage haben als letztes Jahr in Portugal, zum anderen sind die Unterkünfte auf den ersten Etappen sehr schlecht ausgebaut, teilweise nicht-existent oder geschlossen.
Die erste Etappe führte uns von Deià aus direkt am Meer entlang, man folgt einem alten Piratenweg. Diese Variante des GR221 war aufgrund vorangegangener Stürme eine erhebliche Kletterpartie, war aber durchweg schön. Man geht sehr große Teile am Meer entlang.
Klar und klippig - schön!
Türkisfarbenes Wasser
Exemplarisches Photo des Wnaderweges
Privado!
Die Aussicht der beiden Stühle
Am Abend kehrten wir auf einer der sogenannten Refugios ein. Diese Wanderhütten bieten für schmales Geld eine akzeptable Unterkunft an. Wie Eingangs erwähnt fehlen entlang der Route noch einige dieser Hütten. Es besteht auch die Möglichkeit vor Ort ein warmes Essen, Frühstück sowie Snacks und Getränke zu kaufen.
Wir begannen unsere Tour am nächsten Tage auf dem Refugio und gingen in die Hafenstadt Port de Soller. Dort nahmen wir den Bus und fuhren nach Soller. In Soller angekommen und mit Proviant gestärkt, wanderten wir flugs die ersten 900 Höhenmeter hinauf. Anschließend ging es noch eine Weile auf und ab bis wir schließlich einen Stausee umrundeten.
Wolken über Port de Soller
Der Rote Blitz. Kostet leider 5 Euro, weswegen wir den Bus genommen haben (knapp nen Euro)
Der lange Aufstieg beginnt
Die Brücke am Fluss
Nur noch 895 Höhenmeter...
Die Angaben stimmen nie.
Nach dem Stausee gingen wir erneut auf einen der vielen Berge der Tramuntana um anschließend auf der anderen Seite eine Schlucht zu durchqueren. In der Schlucht stießen wir unter anderem auf eine abgestürzte Chessna, die dort wohl schon eine Weile vor sich dahinrostet. Am Ende der Schlucht ging es wieder hinauf, dieses Mal mit einem "seil versicherten Aufstieg". Besser: Eine Kette an einer steilen Klippe an der man sich sehr, sehr vorsichtig entlang kraxelt mit dem ständigen Gefühl jeden Moment in den eigenen, sehr schmerzvollen Tod zu stürzen. Oben angekommen geht es wieder ein paar hundert Meter hinunter zum Refugio in dem man wieder einkehren kann.

Welcome to Malboro Country

Do A Barrel roll!
Die letzte Kurve der Schlucht
Todesängste an der Kette
Rocky Road
Tag 3. Langsam war man ein wenig fertig. Es gab kein abgefülltes Wasser auf dem Refugio (nur 0,5 Liter Flaschen für 1,50€) also haben wir das "Quellwasser" genommen, welches leider so abartig geschmeckt hat, das wir an diesem Tag deutlich weniger Wasser getrunken haben. An diesem Tag gingen wir keine Variante, so wie in dem Link weiter oben beschrieben, sondern stiefelten den GR221 regulär entlang. Die Variante besteigt erneut recht große Bergkämme und wir waren etwas gesättigt vom Vortag. Die Landschaft war erneut sehr abwechslungsreich und so stiefelten wir über Stock und Stein durch Wälder und über Bergkämme unserem Ziel entgegen. Gegen Ende erreicht man einen Zaun, an dem in großen Lettern ein Privatgrundstück angezeigt wird. Der Wegweiser zeigt aber ebenfalls in diese Richtung und es wurde weiterhin auch eine Leiter an den Zaun gestellt damit man besser herübersteigen kann. Der Tag endete in Lluc, einem Klosterdorf. Auch hier konnte man, abgesehen vom Souvenirshop, nirgendwo einkaufen. Wir deckten uns also dort mit Wasser ein und bestellten spontan im Refugio Abendessen. Dadurch bekamen wir ein alternatives Mahl, das zumindest mir sehr gut geschmeckt hat (Leber, Bauchscheiben, Schweinefleisch-Stücke, Speck, Zwiebeln, Paprika, Kartoffeln und Zwiebeln vom Grill). gut gesättigt ging es ins Bett, Wandertag 4 erwartete uns morgen bereits.
Es wird grüner an Wandertag 4
Alpen? Schottland? Nein, Malle!
Traumhaftes Panorama
Gut ausgeschildert: der letzte Tag
PRIVADO! (man beachte den Wegweiser auf der linken Seite)

Heute ging es, mit einigen wenigen Ausnahmen, fast nahezu abwärts. Die Bäume wurden größer und zahlreicher, auch die restliche Vegetation änderte sich vollkommen. Es blieb gegen Ende Sogar Zeit für eine kurze Rast in der Hängematte, die wir bisher nur mitgeschleppt hatten. Am späten Nachmittag kehrten wir dann wieder bei dem Mietwagen an womit wir dann auch sofort an den Strand fuhren.
Morgendliches Wandern - mit Stöckern und ca. 10kg Rucksack
Völlig andere Szenerie als zuvor
PRIVADO (bitte Leiter benutzen)
Die Landschaft ist von Viehzucht geprägt - primär Schafe und Zeigen
Der gemäßigte Abstieg
Eine Rast muss sein!
Die letzten Meter
Unser kugeliger Mietwagen - moderner als unser eigenes Auto
Bucht Nördlich von Porte Pollenca
Den folgenden zwei Tage verbrachten wir dann am Strand von Son Serra und ließen die Anstrengungen der letzten Tage von uns abfallen. Am Freitagabend gab es dann noch ein kleines Live-Konzert in einem Cafe bei dem wir zu Abend aßen.
Blick aus dem Hotel
Panorama von Son Serra
Am Abflugtag hatten wir dann endgültig genug von den anderen Touristen und beschlossen noch ein letztes Mal wandern zu gehen. Wir checkten aus dem Hotel aus und stiefelten einen kleinen Weg entlang zu einem entlegenen Sandstrand an dem wir nochmal schwimmen gingen und ein wenig die Sonne genossen. Am Nachmittag wanderten wir dann zurück zum Startpunkt, fuhren zurück nach Palma und flogen gegen Abend dann zurück nach Hause.
Auf dem Weg zur Bucht
Der Touri-Hotelstrand bei Cala Ratjada (Nordseite)
Auf dem Weg zum Gipfel
Panorama vom Berg "Telegraph" im Nordosten Mallorcas
Der entlegene Sandstrand ist auch mit Hotels zugepflastert
Lagune in der Nähe von Cala Radjada
Es war ein schöner Wanderurlaub gewesen. Es gab teils sehr harte Passagen die einen an den Rand des Aufgebens drängen. Nichtsdestotrotz ist das Panorama wunderschön und allemal eine Reise wert. Der ganze Rest hingegen ist furchtbar. Alle zwei Meter sind Touristen die vollständig dem Klischee-Mallorca Urlauber entsprechen. Am besten meidet man Touri-Ecken so gut es geht - was bei den Stränden aber de facto nahezu vollkommen unmöglich ist. Auch das Wandern ist nicht wirklich einsam, um die 30 Leute sind mindestens gleichzeitig auf dem Trail plus die Tageswanderer.
Wer ein wenig alpines Feeling haben möchte, und das mit Traumpanorama auf gemäßigten Routen wird hier auf jeden Fall fündig. Wer die Einsamkeit oder zumindest während des Wandersn "seine Ruhe" haben möchte, hat leider Pech. Wir haben den Urlaub genossen, werden aber mit sehr großer Wahrscheinlichkeit nie wieder diese Insel betreten.

Der nächste Reisebericht folgt Ende Mai/Anfang Juni. Es geht nach England auf den European Epic Championship 2015. Mal schauen ob ich meinen Vize-Titel verteidigen kann!

Montag, 4. Mai 2015

InstaButton

Seit kurzer Zeit bin ich wieder Teil einer kleinen Shadowrun Pen and Paper Gruppe. Nachdem ich sowohl Shadowrun: Returns und Shadworun: Dragonfall förmlich verschlungen habe, wuchs in mir der Wunsch wieder Shadowrun zu spielen. Ich wollte auch meistern und angeregt durch Dragonfall, spielt unsere aktuelle Kampagne in Berlin. Die Runner sind alles StreetLevel Ganger und inzwischen spielen wir zu fünft - mit mir als Spielleiter, Knuffel als Troll-Buchhändler, Ralle als Ork-Ganger, Sohmbee als Schmuggler und bmx als Menschen Decker ohne Cyberdeck.
Screenshot Shadowrun Returns
In den vergangenen Runs hat sich die Gruppe in Berlin aklimatisiert und die kommenden Runs sind auch grob umrissen. Ich bin ein großer Fan von Stimmung beim Rollenspiel und habe den heiligen Gral hierbei auch noch nicht gefunden. Ich mag Ambient Mixer, Subsonic, Winamp und Konsorten, aber alle diese Varianten benötigen eins: Ein Tablet oder einen "richtigen" Rechner. Letztenendes möchte man oft aber nur ein wenig Hintergrundgeplänkel haben und hier und da ein paar Sounds einspielen. Ich habe eine Weile drüber nachgedacht und kann nun endlich meine Lösung präsentieren.

Die Rahmenanforderungen
- Abspielen von Musikdateien unterschiedlicher Formate, ggfs. Umwandlung in kompatibles Format vorher.
- Headless-System, minimale Nutzerinteraktion notwendig um einen Ton abzuspielen
- Zeit von "ich brauche einen Ton" bis "der Ton wird gespielt" muss minimal sein (<1-2 Sek.)
- Portabel da es auch an anderen Orten genutzt werden soll

Konzept
- Implementierung in Hardware, Knöpfe drücken usw.
- Knopfdruck erzeugt Ton oder Tonschleife
- Speicher muss günstig sein und Portabel sein (SD-Karte oder USB Stick)

Letzten Endes wollte ich also einen MP3 Player bauen. Die Idee ist bei weitem nicht neu. Die günstigste Möglichkeit wäre eine Android-App gewesen. Ich habe mich noch nie mit der Android API beschäftigt und wollte tendenziell auch auf eine reine Software Lösung verzichten. Die "Instant Button" App und die unzähligen Varianten haben das Problem das man recht häufig scrollt bis man beim gewünschten Ton angekommen ist. Dies ist lösbar, wenn man die Auswahl einschränkt, sodass nur "ein Screen" benötigt wird. Fazit: Eine reine Software Lösung ist möglich, war aber nicht mein Fokus.
Die nächste Idee war die Implementierung auf Basis von Mikrocontroller und dedizierten Hardware Chips. Eine kurze Google Suche ergab recht hohe Kosten (um die 40-50 Euro für die Bauteile). Verbunden mit der geringen Rechenleistung von Mikrocontrollern waren das Aus für diese Variante.
Als ersten richtigen Wurf baute ich das System anschließend auf einem FPGA (Field Programmable Gate Array). Die Idee dabei war ein wenig VHDL (Very High Speed Hardware Description Language) zu üben. Ich habe zuhause noch ein Entwicklungsboard von Terrasic mit einem Cyclone II FPGA von Altera rumfliegen das ich faktisch fast gar nicht genutzt habe bisher. Eine gute Gelegenheit also. Als ich mir den SD-Card Controller angesehen hatte, stellte ich fest, das hierfür verdammt viele Zustände in einer State Machine notwendig werden würden. Kombiniert mit dem notwendigen Dateisystem entschied ich mich hier für einen Softcore und konfigurierte mir einen Nios II mit SD-Card Controller. Die recht chaotische Entwicklungsumgebung für den Nios kannte ich schon aus meiner Diplomarbeit, inklusive der vielen Stolperfallen (Projekt löschen wenn man etwas am System verändert hat und alles wieder reinladen etc.pp.). Die Buttons und auch das Dateisystem gingen recht fix, das LCD hingegen lies sich nicht dazu bringen Text darzustellen. Nach knapp einer Woche war ich so frustriert das ich das Projekt in die Ecke warf. Der FPGA war vollkommen überdimensioniert für das Projekt und das Board verfügte auch nur über 4 Buttons und 16 DIP Switches.
DE2 Board von Altera (gefunden auf http://www.terasic.com.tw)
Die Lösung: Hardware nahe Programmierung auf einem Raspberry Pi. Der Pi hat die Vorteile eines regulären Rechners und verbindet diese mit einer kleinen Bauform. Weiterhin kann der Pi durch die GPIO Pins recht leicht erweitert werden. Da es eigentlich ein Unix-PC ist, funktionieren viele Programmiersprachen wie C, C++ oder Python. Da ich aber auch Hardware Buttons haben wollte, musste ich ja auch ein wenig basteln. Hierfür entwarf ich eine kleine Schaltung und testete diese auf einem Breadboard. Anschließend lötete ich mir eine kleine Testplatine zusammen für die Buttons. Nachdem ich diese beiden Testplattformen zum fliegen gebracht hatte, und ein paar kleine Python Skripte die Buttons auch auslesen konnten, war es Zeit für die Kür. Ich wollte ein praktisches, kleines System.
Der nächste Schritt war nun den Schaltplan in EAGLE zu übertragen und dort anschließend ein Board Layout zu erzeugen. Leider habe ich kein Equipment für Kleinserien Platinen wie zB ein Ätzbecken. Das alles anzuschaffen wäre Overkill gewesen, stattdessen ließ ich die Platine fertigen. Ursprünglich wollte ich zu QPrint greifen, aber sowohl QPrint als auch der "Klassiker" PCB-Pool waren verdammt teuer. Eine Platine sollte knapp 40-50 Euro kosten. Das sprengte erneut den Rahmen. Ein Arbeitskollege empfahl mir Itead, eine Firma in China die sich auf Kleinserien spezialisiert hat. Mit Porto war ich bei einem etwas höheren Betrag, aber ich bekam dafür 10 (!) Platinen.
Board
Alle überzähligen Platinen können bei mir erworben werben, schreibt mir einfach hier in den Kommentaren oder via E-Mail. Pro Stück hätte ich gerne 7 Euro. Wer das lieber selber machen möchte kann von mir auch gerne PDF-Dateien mit Front- und Rückseite zum Belichten oder die EAGLE Dateien bekommen. Der Schaltplan ist unten abgebildet.


Schaltplan

Der einzige ungewöhnliche Baustein ist der MCP23017SS. Der Baustein ist ein I2C-basierter GPIO-Extender und erweitert die maximalen GPIO Pins um 16, hierfür müssen nur die zwei SDA und SCL Pins angeschlossen werden. Mehrere MCP23017 könnten verwendet werden, sie müssen nur entsprechend verdrahtet werden. Den MCP bekommt man leider nicht bei Reichelt, aber z.B. bei Mouser, Conrad oder auch Farnell. Letzterer beliefert leider nur gewerbliche Kunden. Ich habe meine von Conrad bezogen, aus dem simplen Grund das ich mit dem Fahrrad vorbeifahren kann. Ich habe noch zwei übrig behalten und würde diese zum Selbstkostenpreis bestellten Platinen beilegen. Falls jemand das Projekt auch machen möchte. Alle anderen Teile bezieht man am besten über Reichelt, hier habe ich einen Warenkorb vorbereitet. Es werden folgende Teile benötigt:

4x SMD Widerstand 56Ohm 0805 Bauform (andere Werte möglich, Strombegrenzung für die LEDs)
12x SMD Widerstand 1KOhm 0805 Bauform
12x SMD Widerstand 10KOhm 0805 Bauform
1x MCP23017SS
1x ACP 6mm 10K Linear Poti
1x 16x2 LCD
4x LED beliebiger Farbe (ggfs. den Vorwiderstand anpassen, 56Ohm sollte passen für Rot, Gelb und Grün)
8x Taster 6mmx6mm
1x 4er DIPSwitch Bank
16er Buchsenleiste (für das LCD)
16er Steckerleiste (für das LCD)
2x 13x2 Buchsenleiste die aufeinander gesteckt werden.

Der Grund für die doppelte Buchsenleiste: Der Abstand der Platine reicht sonst nicht aus und ich habe bisher noch keine "schöne" Lösung gefunden. Sobald ich hier eine bessere Lösung habe kommt ein aktualisiertes Posting. Vorerst erfüllt es aber seinen Zweck. Man könnte natürlich eine Lösung mit Kabeln anstreben, dies wollte ich aber vermeiden. Weiterhin benötigt man auch noch Abstandhalter, diese sind aber optional. Für die Funktionalität werden sie natürlich nicht benötigt.
Die Extender Platine auf dem Raspberry Pi
Als dann am Dienstag endlich die Platinen geliefert wurden machte ich mich daran den ganzen Kram zusammenzulöten und auszuprobieren. Ein erster Test der Hardware war erfolgreich, als nächstes folgt die Software Implementierung. Sobald hier etwas "handfestes" vorliegt werde ich alles auf Github hochladen (inkl. Schaltplan natürlich) und unter der GPL veröffentlichen.

Auf dem Photo sind noch zwei Leitungen fliegend verdrahtet, diese sind aus Testzwecken angelötet. Die Leitungen verbinden die Interrupt Leitungen des GPIO Extenders, können aber unter Unix (zumindest meines Wissens nach) nicht direkt als Interrupts angesprochen werden, sondern nur als GPIO-Pins. Die Idee hinter dem Test war Polling zu vermeiden und das ganze elegant als Interrupt zu lösen.

Ich bin eifrigst dabei auf dem Pi rumzuexperimentieren und simple Button Abfragen, das Display und Kommunikation via I2C steht auch. Viel nimmt einem hier zugegebenermaßen das Rpi-Hw Projekt ab. So long!