Hier ein paar direkte Links zu wichtigen Inhalten der Seite:

Elektronik-Projekte:

Geek Edition ab Werk

Geek Edition ab Werk

Noch ein Post zum Thema Spiele. Dieses Mal geht es um das Kartenspiel Smash Up, genau wie das erwähnte Munchkin aus dem Pegasus-Verlag. Smash Up ist ein Spiel mit einem unbestreitbar hohen Geek-Faktor, und passend dazu verkauft der Verlag eine Kiste namens ‘Geek Edition’. Eine große Box mit wenig Inhalt, gedacht um das Basisspiel und die Erweiterungen ordentlich aufzubewahren.

Gute Idee, aber die Umsetzung krankt doch sehr an dem merkwürdigen Einsatz der in dem Karton enthalten ist. Der ist offenbar für ein anderes Spiel gemacht worden, für den Einsatz in Verbindung mit Smash Up ist er gelinde gesagt untauglich. Das spiegelt sich entsprechend auch in den vernichtenden Amazon-Rezensionen wider. Die Probleme sind folgende:

  • Karten werden in den Fächern nicht ordentlich gehalten, fallen um.
  • Spielregeln müssen irgendwie in ein Fach geknuffelt werden.
  • Die Basis-Unterlagen sind super, passen aber überhaupt nicht in den Karton.
  • Fächer für Kleinkram (Siegpunkte, Stärkemarker) sind so tief dass ich mit meinen großen Händen kaum an die Kleinteile komme.

Aber die Box an sich ist sinnvoll, und für den Preis habe ich mich mal selbst an einen Hack gemacht…

Meinen Weg dahin habe ich ja schon beschrieben, im Wesentlichen braucht man FreeCAD, ein Plugin dazu und Inkscape. Oh, und einen Lasercutter natürlich, aber den gibt es in vielen Makerspaces, so auch im Chaostreff Dortmund.

Die Planung hat mich — mit Einarbeitung in FreeCAD — etwa einen Tag gekostet. Da ich jetzt weiß wie es geht würde ich für so ein Projekt vermutlich um die vier Stunden brauchen. Der Lasercutter hat etwa eine halbe Stunde gebraucht, danach hatte ich ein großes Holz-Puzzle. Und zu meinem Erstaunen hat das so gut geklappt dass ich beim Zusammenbauen nicht mal Kleber benutzt habe, es hält einfach so durch die Passformen!

Meine Box hat jetzt folgende Features:

  • Platz um meine Smash-Up-Karten einzusortieren, Trenner um zum Beispiel die Munchkin-Variante vom Rest fern zu halten.
  • Platz für Spielanleitungen und Basis-Unterlagen.
  • Kleiner Einsatz für Siegpunkt- und Stärkemarker, kann während des Spiels auf den Tisch gestellt werden.
  • Unter dem kleinen Einsatz ist ein “Geheimfach” für Sachen die man im Prinzip nicht braucht, bei mir liegen da die Fehldrucke von den Ork-Karten.

Edit: Übrigens ist die Idee, Spiele nachträglich mit solchen Organizern auszustatten nicht neu, die gibt es auch von kommerziellen Anbietern. Unter anderem auch für Smash Up, allerdings nur für die amerikanische Schachtel — nicht für die deutsche Geek Edition.

Alles in allem bin ich extrem zufrieden mit dem Ergebnis. Es hat Spaß gemacht zu planen und zu konstruieren, und ich hätte echt nicht damit gerechnet dass das Ergebnis auf Anhieb so gut funktioniert. Ideen für andere Spiele sind schon in Planung… :-)

Falls jemand Interesse an den Plänen hat bitte ich um Wortmeldung. Ich würde meine Dateien dann hier hochladen.

Spyke auf dem Karton

Spyke auf dem Karton

Eigentlich war ich nie ein großer Spieler. Aber dieses Jahr habe ich zum Geburtstag ein Spiel geschenkt bekommen. Das hat mich sehr angefixt, seitdem habe ich mich intensiv damit beschäftigt was der Spielemarkt so hergibt. Hatte ich ja auch schon beiläufig erwähnt.

Das Spiel das den Auslöser gegeben hat war Munchkin. Ein Kartenspiel von Steve Jackson, in Deutschland vertrieben von Pegasus. Ich habe seitdem eine Menge wirklich guter Spiele kennen gelernt, aber — obwohl es offenbar unter ‘ernsthaften Spielern’ sehr polarisiert — bleibt Munchkin einer meiner Favoriten. Neben meiner Frau konnte ich jetzt schon einige Leute damit infizieren. Allesamt höchstens Gelgenheits-Spieler wie ich, aber wirklich negative Rückmeldungen habe ich noch nicht bekommen.

Box, Netz-Trolle, Mami und Plutonium-Drachen

Box, Netz-Trolle, Mami und Plutonium-Drachen

Geschenkt wurde mir eine Box mit Fantasy Munchkin 1 und 2. Von dem Spiel sind aber eine Menge Varianten und Erweiterungen rausgekommen, so nenne ich mittlerweile auch die Erweiterungen 3 bis 6, die Turbobooster, die verlorenen Schätze, Freibeuter-Munchkin 1 und 2, sowie das Brettspiel Munchkin Quest, den Love-Letter-Clone Loot Letter und die Munchkin-Variante von Smash Up mein Eigen. Und da kommt sicher noch einiges dazu. Die Kiste mit 7 und 8 steht schon auf dem Einkaufszettel, die Vampir- und Western-Versionen reizen mich, und aus irgendwelchen Gründen hat mir die beste aller Frauen ein striktes Verbot gegeben, mir vor Weihnachten Star Munchkin zu kaufen. :-D

Heute wurde ich mit einer völlig neuen Variante überrascht. Nennen wir es mal Guest Artist Edition. Meine Tochter hat mir eine Erweiterung gebastelt. Komplett mit Schachtel, Netz-Trollen, Mami und natürlich Plutonium-Drachen. Sie hat sich meine Spiele gut angesehen, zum wirklichen Spielen ist sie noch zu jung. Aber mir scheint dass ich jetzt doch auch Jäger des Schatzes — eine Variante für Kinder — auf den Einkaufszettel nehmen muss… ;-)

Mein Design

Mein Design

Mit einem Lasercutter kann man jede Menge nützliche Sachen herstellen. Vor zwei Jahren habe ich mal ein schickes Raspberry-Gehäuse gefunden, das konnte ich einfach runterladen und mir beim Makerspace meines Vertrauens auslasern lassen. Das Ergebnis ist schick geworden, genau so ist der Raspi jetzt als Medienabspielgerät im Einsatz.

Aber wie komme ich an ein Gehäuse nach Mass, für eigene Projekte?

Das einfachste wird wohl ein kostenloser Online-Generator sein. Davon gibt es einige, mit unterschiedlich vielen aber doch ziemlich überschaubaren Features. Man gibt die gewünschten Masse ein, und bekommt ein PDF oder ein SVG das man direkt an den Cutter verfüttern kann.

Genauso einfach kann man Boxen wohl direkt in Inkscape erstellen. Dazu muss man ein Plugin installieren, das habe ich aber nicht ausprobiert.

Die nächste Stufe dürfte der Boxdesigner sein. Erstmal ist das auch so ein Online-Generator, aber dafür mit einer geradezu überwältigenden Zahl von Funktionen. Nett gemacht, und wer es braucht wird dafür sicher gern die 13 Euro im Jahr bezahlen. Hätte ich auch fast gemacht. Aber nur fast. Was ich gerade bauen will ist etwas zu speziell für den Designer. Mein Plan war, das grundlegende Design da raus zu ziehen, und den Rest in Inkscape

Da das aber auch eine Menge Planung erfordert, und noch dazu sehr fehlerträchtig ist, habe ich mich weiter umgesehen. Und so bin ich zur — für mich — idealen Lösung gekommen:

Schneidvorlage (ein Teil davon)

Schneidvorlage (ein Teil davon)

Mit FreeCAD hatte ich mich vor einiger Zeit schonmal beschäftigt, als ich Bedarf an 3D-Planung hatte. Was ich da nicht wusste ist, dass auch FreeCAD sich durch Plugins erweitern lässt. Und richtig genug: da gibt es eines namens LCInterlocking — auf den zweiten Blick verrät der Name dass man damit Interlocking Designs für den Laser Cutter machen kann. Leider ist die Doku echt dürftig, aber alles was ich wissen musste konnte ich dem Video entnehmen das in der Readme verlinkt ist.

Auch bei dieser Lösung kommt man um Nachbearbeitung in Inkscape nicht herum, aber die komplizierten Sachen sind da schon erledigt.

Man erhält so ein großes SVG mit den Schneidvorlagen. Die Kür besteht jetzt noch darin, die Einzelteile platzsparend aufzuteilen, so dass möglichst wenig Verschnitt anfällt. Das geht manuell, ich habe es einfach mal von SVGnest machen lassen. Dazu habe ich ein Rechteck in das SVG eingefügt das die maximale Arbeitsfläche des Lasers angibt. Das SVG lade ich dann in das Tool, und nach ein paar Klicks sortiert ein Algorithmus alles für minimalen Verschnitt.

Disclaimer: Ob die Vorlage jetzt tatsächlich zum Schneiden taugt muss sich noch rausstellen. Sobald ich das weiß, und sobald ich ein vorzeigbares Ergebnis habe, werde ich auch verraten was ich da gebastelt habe… :-)

Da jemand gefragt hat: offenbar kann man in WordPress-Kommentaren ganz normale <pre>-Tags benutzen um Quelltexte in Kommentaren beizusteuern.

Und da ich hier das Crayon Syntax Highlighter Plugin installiert habe kann man sogar noch etwas Farbe ins Spiel bringen: mit <pre class="lang:sh"> sagt man zum Beispiel direkt dass es sich um ein Shell-Skript handelt. Das wird dann so dargestellt:

Will man das? Nicht notwendigerweise. Aber gerade bei längeren Skripten kann das schon hilfreich sein…

Mit Begeisterung habe ich gerade gelesen dass der Hersteller Espressif einen Nachfolger für den ESP8266 — mit dem ich ja auch schon einiges gemacht habe — vorgestellt hat: den ESP32.

Im Gegensatz zum 8266 hat das Ding

  • Bluetooth
  • Ethernet-Fähigkeiten
  • GPIOs für Touch-Sensoren
  • einen Hall-Sensor
  • … und vieles mehr

Neue Ideen was man damit umsetzen kann kommen noch während des Lesens. Allein die Möglichkeit damit stromsparende Anwendungen bauen zu können (Stichwort: Batteriebetrieb) eröffnet einen ganzen Strauss neuer Möglichkeiten.

Ich kann es kaum abwarten dass das Ding verfügbar ist. Man kann nur hoffen dass der Preis ähnlich attraktiv wird wie beim Vorgänger…

Klonfiguration

Substantiv, feminin
Worttrennung: Klon·fi·gu·ra·ti·on, Plural: Klon·fi·gu·ra·ti·o·nen
Bedeutung: Etwas identisch zu etwas anderem einstellen, Einstellungen kopieren.
Herkunft: von deutsch Klon und Konfiguration
Beispiel: [EDV] Seltsam, das ist eine exakte Klonfiguration, und es funktioniert trotzdem nicht.
Siehe auch: klonfigurieren, Verb

(Eigentlich habe ich mich nur vertippt, aber ich finde das Wort sollte es geben… und die 26 Google-Fundstellen scheinen überwiegend versehentlich entstanden zu sein. :-) )

Kein Flash erforderlich

Kein Flash erforderlich

Aus Gründen beschäftige ich mich in letzter Zeit verstärkt mit Spielen. Analogen Spielen. Ohne Strom.

Gerade sehe ich mir eine Spieleinführung auf catan.de an. Interaktiv. In der Regel befürchtet man auch im Jahr 2016 bei sowas Flash. Aber nein, eine Wohltat: reines HTML. So wie man sich das Heute wünscht. Naja, fast… :-D

Nicht falsch verstehen: alle Siedler-Varianten die ich bislang ausprobiert habe waren toll, und ich kann absolut nachvollziehen dass die Seite zu einem 13 Jahre alten Spiel — das nicht mal mehr hergestellt wird — nicht auf modernste Technik setzt. Lieber antik als offline. Danke, Kosmos!

Sommerlich warm

Sommerlich warm

Der Lüfter an meinem Taschenrechner (Lenovo Thinkpad X201, Baujahr dürfte 2010 sein) hat mich schon länger genervt. Der ist nicht sonderlich laut, lief aber praktisch durchgehend. Gestern habe ich das Ding unbeaufsichtigt liegen lassen weil es Messwerte erfassen sollte. Als ich wiederkam war es aus, nach dem Neustart stand in den Logs… naja, siehe Bild. :-(

Ich bin froh dass die Kernschmelze verhindert wurde.

Mit einer Hand habe ich nachgesehen was ein Ersatz kosten würde, mit der anderen habe ich die Tastatur abgeschraubt. Da findet man den Lüfter direkt vor sich. Auf den ersten Blick sah der ganz OK aus, ich habe ihn trotzdem mit einem Zahnstocher stillgelegt (wichtig, der wirkt sonst wie ein Dynamo und frittiert unter Umständen den Rechner) und dann großzügig Druckluft aus der Dose angewendet.

Unglaublich, wie gut das wirkt, das sollte man vielleicht regelmäßig machen. Beim nächsten Mal traue ich mich vielleicht auch die Wärmeleitpaste auszutauschen. Die Bildschirmauflösung ist nicht ganz zeitgemäß, ansonsten bin ich immer noch rundum zufrieden mit dem Notebook.

Die Augen des Stromzählers

Die Augen des Stromzählers

Gestern habe ich mich mal intensiv mit meinem Stromzähler auseinander gesetzt. Das ist ein ziemlich neumodisches Gerät, ein Iskra MT175. Dieses Modell verfügt über eine Infrarotschnittstelle (nach DIN EN 62056-21) mit der die Zählerstände ausgelesen werden, und das muss natürlich ausprobiert werden.

Zu dem Zweck habe ich mir eine Hardware gebastelt die die Daten auslesen kann. Dazu später mehr, in einem anderen Beitrag. Mein Zähler überträgt etwa alle zwei Sekunden einen Datensatz. Automatisch, ohne dass ich ihn darum bitten müsste. Wenn ich den auslese erhalte ich einen formschönen Haufen Hex-Code, ähnlich diesem:

Wie man unschwer erkennt habe ich private Daten anonymisiert. Lacht nicht! :-D

Nachdem ich da längere Zeit mit verbracht habe weiß ich mittlerweile ziemlich genau was da steht. Und damit andere einen besseren Einstieg finden schreibe ich das mal hier auf.

Die Sprache nennt sich Smart Message Language (SML). Es gibt auch Zähler die die Daten in anderen Formaten, oder direkt im ASCII-Format ausgeben. SML ist aber ein Standard, und wird von vielen Herstellern genutzt. Wie das funktioniert kann man zum Beispiel in der Technischen Richtlinie BSI TR-03109-1 beim Bundesamt für Sicherheit in der Informationstechnik nachlesen. Wenn man das tut kann man den Datensatz da oben tatsächlich lesbar machen:

Die ersten vier Bytes sind einfach eine Markierung für den Anfang der Übertragung, in der zweiten Zeile steht dass wir Version 1 des Protokolls lesen.

Als nächstes müssen wir ein wichtiges Konzept verstehen. Das erste Byte der folgenden Nachricht lautet ’76’. Man muss das als Nibbles sehen, und bei Hex-Zahlen bedeutet das Ziffer für Ziffer. Das erste Nibble ‘7’ können wir auf Seite 42 (natürlich ;-) ) des oben verlinkten Dokumentes nachschlagen. Da steht eine Tabelle mit einer Zeile ‘X111LLLL’. Jetzt matcht das binäre ‘X111’ auf das erste Nibble, also haben wir es hier mit einer Liste zu tun. Das zweite Nibble gibt die Länge an, wir erwarten also eine Liste mit 6 Elementen.

Das erste Byte der folgenden Zeilen ist jeweils nach dem gleichen Schema aufgebaut. In der Regel steht das erste Nibble für den Datentypen, das zweite für die Länge — merkwürdigerweise bei einfachen Datentypen die Länge inclusive dieses Längen-Bytes. Datentyp 0 in Zeile 4 ist laut Seite 42 ein Octet String. Die 5 sagt dass dieser Teil einschliesslich der Längenangabe 5 Bytes umfasst, wir erwarten nach der Länge also noch vier Bytes. Auf Seite 17 des Dokumentes steht dass hier eine Transaktions-ID kommen muss.

Nachdem das Prinzip klar sein sollte werde ich nicht mehr alles haarklein entschlüsseln. Das heisst: ich habe schon. Aber an dieser Stelle überlasse ich das mal dem geneigten Leser. :-)

Man sieht durch die Einrückung ziemlich deutlich dass man sich den Datensatz gut als Liste von Listen vorstellen kann. Außen wird eine Liste mit sechs Elementen angekündigt (76), darin stehen ein Octet String (beginnt mit 0, Zeile 4), zwei Unsigned Integer (6, Zeilen 5 und 6), eine weitere Liste mit zwei Elementen (72, Zeile 7), ein weiterer Unsigned Integer (6, Zeile 16) mit der Prüfsumme und eine Markierung für das Ende der Nachricht (00, Zeile 17). Die Liste mit den zwei Elementen enthält wiederum einen Unsigned Integer (6, Zeile 8 ) und eine Liste mit sechs Elementen (76, Zeile 9). Die meisten dieser sechs Elemente sind Octet Strings die samt des Längen-Bytes eine Länge von 1 haben (01), also leere Strings. Ein String (Zeile 12) enthält eine File-ID, einer (Zeile 13) die Server-ID. Letztere kann man auch direkt auf dem Gerät lesen, die ist aufgedruckt. Beruhigend. :-)

Jetzt wird es ernst: eine weitere Liste mit sechs Elementen (76), die ersten Zeilen entsprechen dem Block oben:

Enthalten ist eine Liste mit zwei Elementen (72, Zeile 22). Der erste Octet String (Zeile 23) gibt den Typ der Nachricht an, es ist ein getListResponse. Der wiederum besteht auf sieben Elementen (77, Zeile 24). Interessant ist hier vielleicht das vierte Element (72, Zeile 28. An dieser Stelle soll die aktuelle Zeit stehen, und die kann auf verschiedene Weise angegeben werden. Erklärt ist das auf Seite 22 des BSI-Dokumentes, dementsprechend haben wir es hier durch die 01 in Zeile 29 mit einem secIndex zu tun. In Zeile 30 folgt dann der Wert. Die Zahl 0x018A4D15 entspricht in etwa der Zeit die das Gerät hier eingebaut ist, das wird also eine Art Betriebsstundenzähler sein.

Die Liste die in Zeile 31 startet ist das fünfte Element der Liste aus Zeile 24. Und hier kommt der wirklich spannende Teil: die Messdaten. Naja, und ein paar Meta-Daten. Erst das Kürzel des Herstellers Iskra (ASCII-Codes in Zeile 38), dann nochmal die bereits bekannte Server ID. Die nächsten drei Elemente enthalten die verbrauchte Energie (die Kilowattstunden), sowohl als Summe als auch aufgesplittet in zwei Tarife — wenn man denn zwei Tarife hat.

Hier kommen wir übrigens zu einem Teil den ich noch nicht verstanden habe: in Zeile 50 wird ein Status angegeben. Wenn mir jemand sagen kann was der bedeutet: immer her damit! 0x0182 ist dezimal 386, darauf kann ich mir keinen Reim machen.

Die Energiewerte muss man übrigens durch 10.000 teilen um auf die kWh zu kommen die am Gerät angezeigt werden.

In Zeile 78 steht die aktuelle Leistung, also wie viel Watt tatsächlich in diesem Moment verbraucht werden. In Zeile 86 folgt ein ‘public key’. Der steht auch auf dem Gerät, ich nehme an der ist relevant wenn der Zähler wirklich ‘nach Hause telefoniert’. Die SML-Kommunikation funktioniert nämlich nicht nur über die Infrarot-Schnittstelle, sondern bei Bedarf auch über die Stromleitung. So kann der Anbieter Verbrauchswerte ablesen ohne dass dafür jemand zu Besuch kommen muss.

Die beiden Werte in Zeile 88 und 89 sind optional und vervollständigen so die Liste die in Zeile 24 begonnen wurde.

Oh, noch ein interessanter Punkt zu Zeile 86: das Nibble ‘8’ ist eigenlich eine 0, also wieder ein Octet String. Da aber das Most Significant Bit gesetzt ist wird daraus eine 8, und das bedeutet dass die Länge der folgenden Daten nicht nur durch das zweite Nibble — die 3 — angegeben wird, sondern zusätzlich durch das folgende Byte. Nützlich, denn mit nur einem Nibble könnte man maximal 15 Bytes ankündigen (nachdem eines für die Länge draufgegangen ist). So kommen wir auf 0x32 == 50 Bytes. Ausreichend also für 48 Bytes Public Key und zwei Bytes Längenangabe.

Es folgen noch eine Prüfsumme und das förmliche Ende der zweiten Nachricht:

Die dritte Nachricht ist einfach nur da um das Ende der Übertragung anzukündigen.

Zu guter Letzt folgt in Zeile 102 nochmal die vom Anfang bekannte Escape-Sequenz, dann 1A um wirklich die Nachricht abzuschließen und nochmal drei Bytes für eine Prüfsumme.

Jetzt noch was in eigener Sache: viele Blogs schließen ihre Artikel grundsätzlich mit einer Frage an die Leser, um Kommentare zu fischen. Ich finde das penetrant, und mache das in der Regel nicht. Aber nach diesem furztrockenen (!) Artikel erlaube ich mir das ausnahmsweise mal: bitte ein Handzeichen von allen die bis hier durchgehalten haben! Muss kein Lob sein, ein Hallo Welt genügt. :-D