Freifunk CI

Die Freifunk-Firmware

Im Braunschweiger Freifunk-Netz wird Gluon als Firmware auf den Routern unseres Netzes eingesetzt. Gluon ist als Framework zum Erstellen von WLAN-Mesh-Netwerken gedacht. Die Entwicklung einer Firmware für eine Community teilt sich in zwei Abschnitte:

  • Gluon selbst wird von einer Community auf Github entwickelt. Diese Community leistet dabei den großen Teil des Aufwandes. Gluon wird als ein sozusagen schlüsselfertiges Framework ausgeliefert. Es ist alles vorbereitet und es fehlen nur noch die lokalen Spezialitäten.
  • Diese lokalen Spezialitäten sind der zweite, dezentrale Teil der Gluon-Entwicklung. In diesem Schritt wird Gluon um die so genannte Site erweitert, die die jeweilige Firmware konfigurieren.

Bisher haben wir in Braunschweig, abgesehen von wenigen Ausnahmen, immer am zweiten Abschnitt der Gluon-Entwicklung gearbeitet und Gluon im Wesentlichen eingesetzt. Auf dem Freifunk-Reboot-Workshop (Anmeldung notwendig) haben wir nun aber beschlossen auch tiefer in das Design des Netzes einzusteigen. Teil dieses Prozesses wird es auch sein tiefere Änderungen am Gluon vornehmen zu müssen.

Was es zu Testen gibt

Um auf diesen Schritt vorbereitet zu sein ist die Idee des Freifunk CI entstanden: Freifunk-geeignete Router sollen mit Fernsteuertechnik ausgestattet werden um auf diesen automatisiert Tests gegen ein Firmware-Image fahren zu können.

Damit sind wir in der Lage drei Arten von Tests durchzuführen:

  • Für die Pflege des aktuellen Systems können normale Gluon-Images vor einem Release auf Funktion getestet werden. Somit wird sichergestellt, dass alle freigegebenen Firmwaren einen Mindest-Funktionsumfang besitzen.
  • Für die Entwicklung eines neuen Systems können ebenfalls Gluon-Images gegen geforderte Funktionen getestet werden.
  • Für den operativen Betrieb des Netzes kann mit realen Routern getestet werden ob Dienste, wie z.B. der Internetzugang, verfügbar sind.

Der Aufbau

Das Freifunk-CI hat dabei aktuell folgenden Aufbau:

  • Es sollte ein Gerät verwendet werden, wie es auch häufig im Freifunk eingesetzt wird. Für die ersten Prototypen haben wir uns für einen TP-Link WR841ND entschieden. Dieses Gerät hat trotz der schlechten Hardware-Ausstattung im Freifunk Braunschweig eine weite Verbreitung gefunden und scheint uns daher ein geeignetes Testobjekt zu sein.
  • Als Testserver kommen Einplatinencomputer zum Einsatz. In unserem Fall: Raspberry Pi 3
  • Die serielle Schnittstelle des Routers wird am Testserver angeschlossen. So lässt sich der Bootvorgang über Bootloader und Kernel bis in die Konsole beobachten und selbst gebrickte Geräte automatisiert wiederherstellen.
  • WLAN- und Reset-Knopf, sowie die Spannungsversorgung werden für den Testserver schaltbar gemacht.
  • Das Client-LAN des Routers wird über einen USB-Ethernet-Adapter an den Testserver angeschlossen.
  • Der WAN-Anschluss des Routers und LAN-Anschluss des Testservers werden mit dem normalen Netzwerk verbunden.

Der Prototyp macht seinem Namen alle Ehre:

Das Test-Setup: Router mit Raspberry und Switch-Platine
Das Test-Setup: Router mit Raspberry und Switch-Platine
Switch-Platine Oberseite
Switch-Platine Oberseite
Switch-Platine Unterseite
Switch-Platine Unterseite

Auf der Software-Seite soll Labgrid zur Testautomatisierung zum Einsatz kommen. Evenutell wird dies später mit Jenkins als Build-Controller kombiniert. Aktuell sind die notwendigen Treiber für den Testaufbau und Gluon als Firmware in der Entwicklung.

Stratum 0 zahlt keine GEZ mehr

Als Verein mit eigenem Raum haben wir uns im August 2013 beim Beitragsservice angemeldet. Natürlich haben wir dabei angegeben, dass wir gemeinnützig sind, um immerhin nur den reduzierten Beitrag von 5,99€ pro Monat zahlen zu müssen. Da der Beitragsservice in seiner öffentlichen Kommunikation stark das Gefühl verbreitet, dass sowieso jeder zahlen müsste und ganz schlimme Dinge passieren, wenn man es nicht tut, war die Motivation sich mit der genauen Gesetzeslage zu beschäftigen eher gering.

Später wurden wir auf einen Blogpost von /dev/tal hingewiesen. Dort hat sich jemand den Gesetzestext im Wortlaut angesehen und ist dabei auf folgenden Abschnitt gestoßen:

§5 RBStV (5) Ein Rundfunkbeitrag nach Absatz 1 ist nicht zu entrichten für Betriebsstätten 1. die gottesdienstlichen Zwecken gewidmet sind, 2. in denen kein Arbeitsplatz eingerichtet ist oder […]

Natürlich wäre es auch interessant sich mit (1) zu beschäftigen und einmal herauszufinden, welchen Aufwand eigentlich die Anerkennung als Ort für gottesdienstliche Zwecke mit sich bringt. Der dafür notwendige Aufwand scheint allerdings den für (2) zu überschreiten.

Als kleiner Verein haben wir sowieso keine Angestellten – unsere Arbeit beruht auf Ehrenamt. Entsprechend haben wir nie den Aufwand betrieben bei uns formale Arbeitsplätze einzurichten. Warum sollten wir uns auch mit der Berufsgenossenschaft, Arbeitssicherheit und ähnlichem beschäftigen?

rohieb hat sich daraufhin an den Beitragsservice gewendet:

Sehr geehrte Damen und Herren, wir sind ein gemeinnütziger Verein (Stratum 0 e. V., Amtsregister Braunschweig, VR 200889) und beschäftigen keine Angestellten bzw. haben noch nie Angestellten beschäftigt, und somit in unseren Räumlichkeiten keine Arbeitsplätze eingerichtet.

Nach §5 Abs. 5 RBStV Punkt 2 („Ein Rundfunkbeitrag nach Absatz 1 ist nicht zu entrichten für Betriebsstätten [… ] in denen kein Arbeitsplatz eingerichtet ist [… ]“) müssten wir also keinen Rundfunkbeitrag entrichten. Ist dies soweit korrekt? Kann der Rundfunkbeitrag für unseren Verein abgemeldet werden?

Ergebnis: Der Stratum 0 e. V. ist nun vom Rundfunkbeitrag befreit. Darüber hinaus haben wir den gezahlten (und nicht verjährten) Beitrag rückwirkend erstattet bekommen. \o/

Replacing a Husqvarna Viking Designer Topaz 30 Needle Holder

We have a Husqvarna Designer Topaz 30 embroidery machine, and the needle holder recently broke in two. The replacement part only was about 30€. I tried searching for a service manual for that machine, but the results are really sparse and you get to the strange sites really soon… But it turned out that the replacement is very easy, you’ll only need a 1.5mm hex key.

  1. Turn the needle holder to the “down” position using the hand wheel, remove the sewing foot and the hand screw for tightening the needle in the holder.
  2. Use the 1.5mm hex key to open the little set screw on the left side of the needle holder. Remove the needle holder by sliding it downwards. While you’re at it, grab a paper towel and clean the rod from lint.
  3. The rod on which the holder sits is actually a hollow pipe. The old holder had a little groove at the lower end which gripped the pipe tightly when the set screw was put in place, and also the hole for the needle was separated from the fixture hole. The new replacement part didn’t have such a groove at the bottom, and the needle hole was not separated by a wall. Instead the new kit came with a little cap thingy that probably helps center the tube and acts as a stopping point when inserting the needle. I just put the cap thingy into the needle holder, the bulge facing upwards. Works for me.
  4. Put the set screw from the old holder into the upper hole (the replacement kit didn’t come with a set screw), and the tightening screw for the needle into the lower hole.
  5. Put the holder onto the tube as before, align the set screw so it faces approximately orthogonally to the left, then tighten the set screw.
  6. Put a needle and a sewing foot in, and make a few test stitches.

Pictures are better than 253 words:

Old needle holder in the “down” position, with the set screw in the upper hole. The needle tightening screw has already been removed.
Old needle holder in the “down” position, with the set screw in the upper hole. The needle tightening screw has already been removed.
All parts. From left to right: old set screw, needle tightening screw, the new cap thingie, the new needle holder, and the old needle holder, split in two. On the latter you can see the groove at the bottom of the fixture hole.
All parts. From left to right: old set screw, needle tightening screw, the new cap thingie, the new needle holder, and the old needle holder, split in two. On the latter you can see the groove at the bottom of the fixture hole.
View into the new needle holder. Note that the two holes are not separated.
View into the new needle holder. Note that the two holes are not separated.
New needle holder with the cap thingie in place, bulge facing upwards.
New needle holder with the cap thingie in place, bulge facing upwards.
New needle holder with old set screw
New needle holder with old set screw
New needle holder on the fixture, aligned and set screw tightened
New needle holder on the fixture, aligned and set screw tightened
Voilà, it works!
Voilà, it works!

Trying 1.75 mm Filament on the LulzBot TAZ 5

The LulzBot TAZ 5 User Manual has this mysterious section:

5.4 Using 1.75mm filament

Your LulzBot TAZ 3D printer is set up to use 3mm plastic filament by default and may be capable of printing 1.75mm filament with no hardware modification. While many of our advanced users are able to do so, your results may vary.

Since we wanted to use the remaining glow-in-the-dark filament, we decided to try our luck. So we changed the filament diameter to 1.75mm in Slic3r, and printed a few small objects. Everything went as expected, only the retraction moves didn’t work so well and the filament oozed out of the extruder nonetheless. But those strands can easily be cleaned up later, so we went on with some bigger objects. This was when the printer would reproducibly stop extruding after a few layers, and it seemed like the nozzle was clogged up. Investigation showed this beauty:

Apparently the filament was too thin to be directed into the hotend, so it decided to curl up in the space between the hobbed bolt and the upper entry of the nozzle instead. After all, the manual was right, our results really did vary.