Soylent Yellow – The future of food, oder der Unterschied zwischen Essen und Nahrungsaufnahme

Wer einmal den Film Soylent Green gesehen hat wird die dystopische Zukunft die in den 70ern gesehen wurde teilweise wieder erkennen. Nicht, dass es uns schon so geht, aber die exzessive Nutzung von nicht regenerierbaren Ressourcen ist immer noch ein Problem. In unserem, zumindest meinem, Alltag ist das Essen in zwei Situationen aufgeteilt. Die schnelle Nahrungsaufnahme zur Befriedigung des Hungers während man eigentlich andere Dinge tut und zu einem sozialen Ereignis, bei dem das Essen und teilweise dessen Zubereitung mit anderen Menschen im Vordergrund steht.

Es gibt mittlerweile einige Firmen, die sich mit der Erzeugung von pulverisierten Nahrungsmitteln beschäftigen. Ich muss hier wirklich eine Differenzierung machen, denn ein Pulver, dass mit Wasser zu einer nährstoffhaltigen Pampe verrührt wird ist definitiv kein Essen, sondern Nahrung. 
Heute kam ein Paket der Firma Queal an. Darin befinden sich acht Beutel mit jeweils einem Tagesbedarf an Nährwerten. Dazu noch ein Fläschchen mit Öl, dass zusätzlich zu dem Pulver und Wasser zu einer Mahlzeit verrührt werden soll. Zu den acht Kunststoffbeuteln gab es noch zwei Sticker und eine Kurzanleitung in der steht, wie ein Queal Meal zubereitet werden soll. Beim Auspacken zeigt sich auch schon warum der Titel Soylent Yellow heißt. Egal welche Geschmacksrichtung für die Pulver angegeben ist, das Pulver ist gelb.
Queal Geschmackstester Set mit allen Geschmacksrichtungen

Donnerstag 19.03.

Was bei dem Starterkit meines Erachtens fehlt ist der auf der Webseite abgebildete Shake-Becher, immerhin handelt es sich um ein Set um mal zu probieren. (Mittlerweile gibt es zu jeder Bestellung einen Becher dazu.) Andererseits mache ich die Mischung sowieso in meinem Mixer. Zum Frühstück gab es heute die Geschmacksrichtung ‚Awesome Apple Pie‘. Wenn mein Apfelkuchen so schmecken würde, wäre er direkt im Müll. Der Geschmack ist pulverig bis mehlig und alles andere als Apfelkuchen. Trotzdem muss ich sagen, dass mir der Geschmack eigentlich egal ist, denn wenn ich ehrlich bin: Wenn ich etwas wegen des Geschmacks essen möchte, dann koche ich mir einfach was. Wenn es allerdings schnell gehen soll, dann kann es auch ruhig mal Pampe sein, die ein wenig nach süß und Mehl schmeckt. Hauptsache es dauert nicht länger als ein Brot zu belegen und ist nahrhafter als ein Glas Wasser.

Die Portionierung der Beutel ist drei Portionen für ein Tag. Ich hätte auch kein Problem damit etwas mehr zu bezahlen, wenn ich dafür Portionsweise abgepackte Einheiten bekomme. Das Problem ist nämlich, dass ich nicht unbedingt einen Beutel am Tag benötige und daher ich die Portion abwiegen muss. All das führt dazu, das die Zubereitung wieder länger wird als alles einfach in den Mixbecher zu schütten. Eventuell werde ich mir einige Dosen vorbereiten, in denen dann immer eine Portion abgewogen ist einfach um sie schnell griffbereit zu haben. Das widerspricht dann leider wieder der Philosophie von schnell als Alternative zu echtem Essen.

Freitag 20.03.

Die zweite Geschmacksrichtung, die ich probiert habe ist ‚Crunchy Choco Cookie‘ das war schon besser als die erste Runde. Der Shake macht zum Frühstück angenehm satt. Das Gefühl hält eine sehr lange Zeit an und ich bin gespannt ob ich es mal schaffe einen kompletten Tag mit Shakes zu füllen und ob eine Tüte ausreichend ist für einen Tag. Zum Abend habe ich einen zweiten Shake getrunken. Diesmal bin ich von ‚Cool Chocolate‘ wirklich positiv überrascht. Der Geschmack ist leicht schokoladig und ich habe die Konsistenz perfekt hinbekommen. Das bedeutet 175g Queal, 1 Teelöffen Öl und etwa 500 ml Wasser im Mixer für 2×30 Sekunden. Dadurch erhält man ein relativ flüssiges aber dadurch nicht zu pulveriges Getränk. Morgen werde ich ausprobieren, wie der Shake sich auch als Müsli-Ersatz macht.

Kleine Anmerkung zum Thema Nährwert: Ich habe eine Portion Shake circa zwei Stunden vor dem Sport getrunken. Mein Magen war nicht zu voll und ich war Energiegeladen. Allerdings habe ich gemerkt, dass ich nach ungefähr einer Stunde Workout ein wenig mehr Power hatte als sonst. Typischer Fall von Unterzuckerung, die ich schon öfter hatte, wenn ich nicht ausreichend gegessen habe. Montag werde ich noch einmal sehen, wie viel Energie mir so ein Shake geben kann.

Montag 23.03.

Am Wochenende gibt es gemeinsames Essen und so hat der Essensersatz keinen Platz gehabt. Heute gab es Queal dann gleich zwei mal. Einmal zum Frühstück. Dann noch einmal zu Abend. Montags bin ich 1,5 Stunden im Training, esse dann zu Abend und habe anschließend noch 2 Stunden Training. Als Geschmacksrichtung gab es ‚Crazy Chocolate Peanut‘ komplett ohne Erdnüsse. Interessanterweise schmeckt der Shake ganz genau so, wie ich Reese’s Peant Butter Cups in Erinnerung habe. Da stellt sich die Frage, wie viel Erdnussgeschmack ist in den Butter Cups?
Der Shake ist nach 1 Stunde immer noch deutlich im Magen zu spüren, allerdings fällt die Bewegung wesentlich leichter als mit beispielsweise einem Käsebrot im Bauch. Genügend Energie bringt der Shake auch mit, sodass nach den drei Stunden Training noch genügend Energie da war um nicht direkt einzuschlafen.

Dienstag 24.03.

Zum Frühstück gab es einen Shake und zu Mittag den nächsten. Langsam gewöhnt sich meine Verdauung auch daran flüssige Nahrung zu erhalten. Ich bin immer noch gespannt, wie ein ganzer Tag mit Queal aussieht und ob das Hungergefühl aus bleibt. Gefühlt ist noch jede Menge Pulver da und ich habe so langsam den Dreh raus, das Pulver aus dem Beutel in den Mixbehälter zu transferieren, ohne absolutes Chaos in der Küche zu fabrizieren.

Mittwoch 25.03.

Ich habe jetzt bald alle Sorten einmal durchprobiert. Doch bis jetzt war keine dabei, die mich wirklich überrascht hat. Es schmeckt alles irgendwie süß und nach Geschmacksstoffen. Trotzdem ist es eine Alternative zu Fastfood. Ich habe diese Woche immer zwei Mahlzeiten mit Queal ersetzt und eine mit echtem Essen. Diese Konstellation ist für mich gut machbar.

Donnerstag 26.03.

Eine Woche habe ich jetzt Queal als Nährstoffquelle verwendet und ich bin überrascht zu sagen, ich kann es mir durchaus vorstellen, weiter zu machen. Die Testpackung ist ungefähr halb leer und ich überlege, welche Sorten ich als nächstes in größeren Mengen bestelle. Allerdings muss ich vorher das mit dem korrekten Portionieren hinbekommen, denn die Küchenwaage ist leider nicht die Beste (Das Display ist fast unmöglich zu lesen) und die drei Portionen pro Beutel sind auch nicht gerade ideal.

Fazit

Ein Soylent als Alternative zu echtem Essen? Unvorstellbar. Als Alternative in Situationen, in denen der Genuss nicht im Vordergrund steht, sondern der Hunger möglichst schnell gestillt werden soll ist es allerdings eine sehr sinnvolle Alternative. Vor allem zu dem Preis. Also: Ausprobieren!

ESP8266 – 1: Fensterwächter

Wie in einem früheren Beitrag schon beschrieben kann für die ESP8266 Module aus China die Entwicklungsumgebung für NodeMcu aufgesetzt werden. In diesem Beitrag werden wir das erste Projekt erstellen und den Controller programmieren.

Morgens mache ich das Schlafzimmerfenster immer auf, um zu lüften. Wenn ich dann vor dem ersten Kaffee schon auf dem Weg zur Arbeit bin, kann es passieren, dass das Fenster weiterhin offen ist. Mist. Also brauch ich etwas, dass mir sagt, dass das Fenster noch geöffnet ist. Ein Fensterwächter.

Mit Hilfe von einigen Komponenten, dem ESP-01 Modul, einem Mikroschalter und einer Batterie kann genau das erreicht werden.

Das ganze soll neben dem Fenster am Fensterrahmen befestigt werden. Dazu werde ich ein 3D gedrucktes Gehäuse verwenden, in dem alles untergebracht ist. Wenn das Fenster geöffnet wird, wird der Mikroschalter nicht mehr betätigt und schließt den Stromkreis zum Controller. Dieser startet und geht sofort für 10 Minuten in den Tiefschlaf. Wenn er daraus erwacht, ohne dass die Batteriespannung zwischendurch getrennt wurde, verbindet es sich mit dem WLAN Accesspoint und sendet eine Email, die dann auch meinem Mobiltelefon angezeigt wird.

Hardware

Wie schon beschrieben benötigen wir mehrere Komponenten für den Aufbau des Fensterwächters. Das ESP8266 Modul ESP-01 hat 8 Pins mit dem es die wichtigsten Signale nach Außen führt. Wie zu erkennen sind lediglich zwei GPIOs herausgeführt. Für unsere Zwecke benötigen wir aber genau keine. Für das Flashen der NodeMcu Software allerdings werden genau diese beiden Pins benötigt. Weiterhin ist der CH_PD Pin herausgeführt, der sorgt dafür, dass das Modul abgeschaltet ist, wenn er nicht auf VCC liegt. Für Experimentierzwecke habe ich den Pin über einen 100Ohm Widerstand mit VCC verbunden. Zu beachten ist, dass auf dem ESP-01 Modul der Pin zum Aufwecken des Controllers (GPIO 16) nicht mit dem RST Pin verbunden ist.

ESP-01 Pinbelegung

Das Modul kommt mit einer Firmware ausgestattet, die über die Serielle Schnittstelle angesprochen werden kann. Um diesen Betriebsmodus zu verwenden benötigt man dann noch einen zweiten Controller, der mit dem Modul kommuniziert. Wir wollen allerdings nur den einen Controller einsetzen, müssen also die darauf befindliche Firmware ändern. Das kann ganz einfach mit dem NodeMcu Flasher passieren. Dazu verbinden wir die Pins GPIO0 mit GND und GPIO2 mit VCC. Dadurch befindet sich der Chip nache einem Reset in einem Zustand indem der Bootloader über die serielle Schnittstelle eine neue Firmware in den Speicher des Moduls schreiben kann. Der Flasher übernimmt alles was dafür notwendig ist.

Mit dem ESPlorer kann jetzt die Lua Software auf dem Modul geschrieben werden. Das Erste was wir tun ist eine ‚init.lua‘ erstellen, die wird beim Start des Controllers ausgeführt.
Der grundlegende Programmablauf ist oben schon aufgeführt:

  • Power up
  • Deep Sleep für 10 Minuten
  • Wake up
  • Verbinde mit WLAN Router
  • Sende Email
  • Deep Sleep bis Power down
Die API von NodeMcu gibt Informationen über die benötigten Funktionen:
Es fehlt lediglich der Programmteil zum senden der Email-Warnung.

So weit zur Theorie. Ein Problem zeigt sich bei der Umsetzung des Email Versandes. Da der ESP sich nicht als SMTP Server behaupten kann, Eine Möglichkeit ist es die Kommunikation mit einem SMTP Server manuell zu programmieren, einfacher ist es jedoch einen bereits existierenden Service, wie zum Beispiel PushingBox.com zu nutzen. Dort kann man über eine HTTP API eine Notification, oder eine Email abschicken. Das Ganze ist dann auch von dem PC aus konfigurierbar und lässt auf dem ESP genügend Platz für andere Funktionen.

Gestartet wird immer in der ‚init.lua‚. Egal ob aus dem Power down, oder dem Tiefschlaf. Das führt dazu, dass nicht genau erkannt werden kann, aus welchem Vorzustand der Chip kommt. Es wird also nach dem Aufwachen ein Timer gestartet und der Chip befindet sich im idle Modus. Welche Folgen das für den Stromverbrauch und die daraus resultierende Batterielaufzeit hat, wird sich noch herausstellen. http://gist-it.appspot.com/github/DasBasti/esp8266/blob/master/Sensoren/Fenster/FensterOffenWarner/init.lua?footer=minimal&slice=8:11
Nachdem die 10 Minuten, oder (600000 ms) abgelaufen sind, wird die Datei ‚fenster.lua‚ aufgerufen und interpretiert. Als erstes muss das WiFi-Modul gestartet werden. Dann wird die Verbindung mit dem Accesspoint hergestellt. http://gist-it.appspot.com/github/DasBasti/esp8266/blob/master/Sensoren/Fenster/FensterOffenWarner/fenster.lua?footer=minimal&slice=5:8
Sobald die Verbindung zum Accesspoint besteht und das Modul eine IP-Adresse erhalten hat, soll die Funktion pollPushingBox() aufgerufen werden. Dazu verwenden wir einen neuen Timer: http://gist-it.appspot.com/github/DasBasti/esp8266/blob/master/Sensoren/Fenster/FensterOffenWarner/fenster.lua?footer=minimal&slice=33:41
Die pollPushingBox() Funktion baut eine TCP Verbindung mit dem PushingBox Service auf und sendet einen API Request um einen Alarm auszulösen. http://gist-it.appspot.com/github/DasBasti/esp8266/blob/master/Sensoren/Fenster/FensterOffenWarner/fenster.lua?footer=minimal&slice=12:26http://gist-it.appspot.com/github/DasBasti/esp8266/blob/master/Sensoren/Fenster/FensterOffenWarner/fenster.lua?footer=minimal&slice=28:31
Nachdem der Server geantwortet hat, geht das Modul in den unendlichen Tiefschlaf. Erst ein Wegfallen der Batteriespannung (durch Schließen des Fensters) wird der Chip resettet und bei erneutem Öffnen beginnt der Code wieder in der ersten Zeile der init.lua.

Der Code zeigt, wie einfach mit NudeMcu und Lua ein ESP2866 für einfache Zwecke verwendet werden kann.

Ein Blick auf KiCad [Fertige Leiterplatte]

Wie in den letzten Wochen bereits beschrieben haben wir eine Schaltung in KiCad eingegeben, danach eine Liste der verwendeten Bauteile angelegt und anschließend die Leiterplatte erstellt und die Fertigung in Auftrag gegeben. Heute schauen wir uns das Ergebnis an und betrachten, was alles im Prozess der Entwicklung einer solchen Baugruppe schief gehen kann.

Links – benötigte Bauteile zur Bestückung der Platte
Rechts – unbestückte Leiterplatten

Die Leiterplatten werden in einer Vakuumverpackung angeliefert. Auf den ersten Blick sind die einwandfrei und so wie wir uns das fertige Produkt vorgestellt werden. Doch der Teufel liegt im Detail. Nach bestücken und Verlöten der Bauteile, sind einige Fehler im Schaltplan, sowie in den Layoutdaten aufgefallen.

Um die Fehler der Schaltung verstehen zu können muss erst einmal die Funktion erklärt werden. Die Baugruppe soll nach betätigen des ‚Enable‘ Tasters ein Magnetventil mit einer Anzugsspannung versorgen. Diese Spannung soll eine kurze Zeit anliegen und danach selbstständig in eine PWM umgewandelt werden. Diese soll so lange erhalten bleiben, bis der ‚Enable‘ Taster nicht mehr betätigt ist.

Fertig bestückte Platine

Fail #1

Der Enable Eingang schaltet lediglich das Delay zur Logik dazu, startet dieses jedoch nicht. das Delay wird sofort nach Anlegen der Betriebsspannung gestartet und ist bei betätigen des Tasters bereits abgelaufen.
Fix: Spannungsteiler auflösen, mit Fädeldraht an ‚Enable‘ löten.

Fail #2 

Der Pfostenstecker für das Magnetventil ist nicht korrekt angeschlossen. Beim verschieben des Steckers ist eine neue Leitung auf der Bottom Seite hinzugekommen, allerdings wurde die Kupferfläche nicht erneut ausgefüllt und ist somit direkt mit dem Signal verbunden. Das DRC hat diesen Fehler nicht gefunden!
Fix: Mit Skalpell die Verbindung auftrennen und mit Fädeldraht korrekt verbinden.

Fail #3 

Zum Messen mit dem Oszilloskop befinden sich kaum Massepunkte auf der Platte. Um mit dem Oszilloskop sinnvoll Signale auf einer Baugruppe zu messen, ist es wichtig naheliegende, also kurze Verbindungen zur Masse zu bekommen. Es ist durchaus akzeptabel wenn für diese Baugröße nur ein solcher Verbindungspunkt bestünde. Tut er aber nicht.
Fix: Mit Skalpell den Lötstopplack der Massefläche entfernen und ein Stück Draht dranlöten.

Fazit

KiCad eignet sich hervorragend zur Erstellung von kleinen Projekten sowie Erzeugung von Stücklisten und Fertigungsdaten. Es wird sich zeigen wie die Entwicklung voranschreitet. Spannend wird auch bleiben, wie die Verwaltung von Stücklisten in den nächsten Versionen gehandhabt wird. Bis dahin wird aber noch einige Zeit vergehen.

Ein Blick auf KiCad [Design zur Fertigung]

Wir haben uns in den letzten beiden Wochen angeschaut, wie eine Schaltung in KiCad erstellt und die benötigten Daten zur Erstellung der Leiterplatte generiert werden. Der Prozess, der aus einem Schaltplan eine Leiterplatte macht beginnt mit der Auswahl eines Herstellers. Denn von Beginn an ist es wichtig zu wissen, welche physikalischen Grenzen dem Leiterplattendesign gesetzt sind. Dazu zählt der Mindestabstand zwischen Leiterbahnen, die Mindestgröße von Bohrungen für Durchkontaktierungen und die Mindestbreite der Aussparungen im Lötstopplack für die Lötpads.
Alle diese Werte werden von dem Fertiger festgelegt und können auf dessen Webseite gefunden werden. Einer dieser Anbieter ist Multi-cb. Bei Multi-cb gibt es jede Menge Hinweise dazu, wie die Grenzen der Leiterplatte festzulegen sind, wenn man keine Sonderanfertigung wünscht. Für die Meisten Projekte wird auch keine Sonderanfertigung von Nöten sein, es kann also der kostengünstige Pool für die Fertigung der Leiterplatten gewählt werden.

Der Leiterplatten Kalkulator gibt auch einige Hilfestellungen, was die optimale Bestellauslegung betrifft. Zuerst legt man ein Projektname fest, gibt an, welche Größe und welche Oberfläche gewünscht ist. Daraus kann die erste Ermittlung des Preises gewonnen werden. Meistens bekommt man dann angezeigt, dass die Fertigungsdauer ohne Aufpreis wesentlich kürzer (5AT) sein kann als 20AT. Die Oberfläche HAL bleifrei ist die günstigste. Diese Oberfläche besteht aus einer Zinnoberfläche, die mit Heißluft auf die blanken Kupferflächen aufgebracht wird.
Wie bei der Oberfläche gesehen sind die voreingestellten Werte die günstigsten. Jede Änderung im Fertigungsprozess führt dazu, dass die Platte eventuell aus dem Pooling Prozess herausfällt und als Einzelcharge angefertigt werden muss. Der Pooling Prozess bedeutet, dass viele verschiedene Designs auf einem Nutzen, also eine große Platte, untergebracht werden und somit die Rüst-, Arbeits- und Verwurfskosten auf alle Pooling Teilnehmer umgelegt werden können.

Die einzige Ausnahme ist der Topseitige Positionsdruck. Der ist standardmäßig nicht ausgewählt, kostet allerdings auch nichts extra. Man muss mit den Werten ein wenig spielen um die Ideale Konfiguration zu erreichen. Grundsätzlich gilt, wenn ein extra Fertigungsschritt dazu kommt, wird die Platte teurer.

Anhand der ausgewählten Parameter werden die verschiedenen Grenzen der Design-Regeln festgelegt. Im Kalkulator haben wir festgelegt, dass die kleinste Leiterbahnbreite 150µm sei. Diese Größenbegrenzung gilt für alle Leiterbahnen, alle Vias und den Abstand zwischen den Leiterbahnen.
Wir legen also 0,15mm als Untergrenze für die Leiterbahnbreite fest. Leiterbahnen, die Strom führend sind, werden mit dieser Breite unter Umständen sehr heiß. Der PCB Kalkulator von KiCad kann dazu mehr Auskunft geben. Dementsprechend sollten Leiterbahnenbreiten festgelegt werden.
Wie in den anderen Teilen dieser Serie gehen wir davon aus, dass das Design bereits anhand der ausgewählten Designregeln erstellt wurde. Das kann zum Beispiel wie folgt aussehen:

Fertiges PCB Design

Die hier erstellte Platte hat die angegebenen Abmaße von 45mm x 45mm und ist mit zwei Lagen vollständig entflochten. KiCad bietet zur Vorschau der Leiterplatte eine 3D Ansicht der CAD Daten. Diese kann unter Ansicht -> 3D Darstellung angezeigt werden. Mit Hilfe der Vorschau kann zum Beispiel die Lesbarkeit des Siebdrucks bestimmt werden, oder ob Gehäuse leicht bestück- und lötbar sind.

3D Vorschau der Leiterplatte

Gerberdaten erzeugen

Um aus dem Design die zur Herstellung der Leiterplatte notwendigen Dateien zu generieren muss festgelegt werden, welche Lagen des Designs für die Herstellung notwendig sind. Jede dieser Lage wird in einem eigenen Arbeitsgang hergestellt. Das gängigste Format, in dem die Fertigungsdateiein abgelegt sind ist das Gerber Format. Dieses wird in einem Standard festgelegt und von allen Leiterplatten Herstellern unterstützt.

In unserem Projekt benötigen wir zwei Lagen Kupfer und zwei Lagen Lötstopplack. sowie Siebdruck für die obere Lage. Weiterhin benötigen wir die Kanten-Lage, auf der die Grenzen der Leiterplatte eingezeichnet sind. Mit einem Druck auf „Plotten“ werden die ausgewählten Daten erzeugt und in dem angegebenen Ordner gespeichert.
Es fehlen jetzt nur noch die Daten für die Bohrmaschine. Diese können unter
Datei -> Fertigungsdateien -> Bohrdatei *.drl erzeugt werden. Multi-cb benötigt metrische Angaben. Darauf ist unbedingt zu achten, damit die Bohrungen passend zu den Footprints sind.

Ansicht der Gerberdaten zur Verifizierung vor der Bestellung

Nachdem alle Fertigunsdateien erstellt wurden, kann das Ergebnis mit dem ebenfalls in KiCad enthaltenen GerbView angezeigt werden. In diesem Programm werden alle erzeugten Gerberdateien übereinandergelegt und Fehler werden sofort sichtbar.

Um die Bestellung der Platte abzuschließen werden die Produktionsdateien in ein Zip-Archiv gepackt und über die Webseite zu multi-cb hochgeladen. Die Produktion der Leiterplatte beginnt jetzt. Es ist auch der Zeitpunkt gekommen alle Bauteile der BOM zu bestellen und bereitzulegen.

Ein Blick auf KiCad [Netzliste und BOM]

Wie im ersten Teil bereits erwähnt, gibt es in KiCad eine Trennung zwischen Schaltsymbol und physikalischem Bauteil. Alle Symbole im Schaltplan werden mit Bezeichnern angelegt, besitzen Pins mit Pinnummern und werden anschließend in einer Netzliste ausgegeben. Die Netzliste enthält die Informationen, welche Pins eines Symbols/Bauteils mit welchen anderen verbunden sind. Diese abstrakte Information wird nun mit real existierenden Bauteilen verbunden. Doch dazu muss KiCad wissen, wie die Bauelemente aussehen, die im Schaltplan lediglich Symbole mit Pinnummern sind. Dazu wird das Programm CvPcb verwendet. Hier erscheint in der mittleren Liste jedes in der Schaltung verwendete Bauteil. Links sind die Bibliotheken der Lötpads zu finden und rechts eine gefilterte Auswahl an Lötpadformen.

Erst wenn jedes Element im Schaltplan ein Footprint zugewiesen bekommen hat, kann das Layout der Leiterplatte beginnen.

Eng mit dem Zuweisen der Footprints zu den einzelnen Schaltsymbolen verbunden ist das Führen einer Stückliste; Die BOM (bill of materials). Die aktuelle Version von KiCad ist momentan im Umbau, was das Erstellen der BOM betrifft. Normalerweise wird eine BOM abhängig der verschiedenen Bauelemente sortiert. Sodass nicht alle 10k 0603 SMD Widerstände einzeln aufgeführt werden, sondern der Widerstand einmal mit Stückzahl und eine Liste alle Bezeichner.

Die aktuelle KiCad Version ermöglicht das Anlegen von Plugins zur Erstellung von Stücklisten. Die zur Zeit einfachste Lösung ist das Erzeugen der Stückliste über ein Python-Script, das mit KiCad ausgeliefert wird. Allerdings sind in dem Windows Release von kicad.nosoftware.cz die Skripte nicht mitgeliefert. Zu finden sind sie im GitHub von KiCad, oder hier zum einfach herunterladen.

Durch einfügen der Kommandozeile „C:\KiCad\bin\python.exe“ „c:\kicad\share\bom-in-python\bom_csv_grouped_by_value_with_fp.py“ „%I“ „%O“ wird das Plugin aufgerufen und erstelle eine Datei mit der Endung .bom. Die Datei ist eine Textdatei, die zum Beispiel in LibreOffice oder Excel geöffnet werden kann. Sie enthält die Bauteilbezeichner, Anzahl der Bauteile, deren Wert, Das Symbol und die Pad Geometrie für die Platine. Weiterhin gibt es noch eine Beschreibung zum Bauteil und das Verkäufer Feld.

 

Die Übersicht über alle verschiedenen Bauteile eines Projektes ist die Grundlage zur Erzeugung der BOM. Mit diesem Dokument kann jetzt das Auswählen der Bauelemente beginnen. Dazu füge ich die Spalte „Partnumber“ neben dem Feld „Value“ hinzu. Dort werden die Herstellernamen Bauteile eingetragen. Um Bauteile zu finden verwende ich zum Beispiel RS oder Farnell. Die Herstellerbezeichnung ist der gesuchte Wert für die Stückliste. Dieser wird für jedes Bauteil eingetragen. Nachdem alle Komponenten der BOM eine Herstellerbezeichnung haben geht es nun an das Bestellen der Bauelemente. Um eine Übersicht der Kosten für das Projekt zu erhalten kann man zum Beispiel Teilesuchmaschinen, wie Octopart verwenden.

Bei dieser Strückliste teilt mir Octopart mit, dass zwei Teile nicht verfügbar sind und dass ein Teil nur bei einem Hersteller verfügbar ist. Daher werden diese Teile in der BOM durch kompatible Bauelemente ersetzt, sodass die BOM vollständig von einem der Distributoren zu beziehen ist.
Nächste Woche schauen wir uns dann das Layouten und der Leiterplatte und erstellen der produktionsrelevanten Daten an.

Ein Blick auf KiCAD [Schaltplan]

KiCad ist ein FOSS Softwarepaket, dass zur Entwicklung von elektronischen Schaltungen und das Design der Leiterplatte verwendet werden kann. Es ist seit 2007 in Entwicklung und mittlerweile so weit, dass es zum professionellen Einsatz angewendet werden kann. Das Projekt wird vom CERN unterstützt, die einige neue Funktionen für den Schaltplaneditor, das Backend und den Layouter zur Verfügung gestellt hat.

Für meine kleineren Projekte, habe ich bis jetzt immer nur den Schaltplaneditor verwendet. Bei einem aktuellen Projekt, möchte ich allerdings auch die Leiterplatte herstellen lassen. Dabei soll die Platte im KiCad Layouter entwickelt werden. Diese Artikelserie wird sich mit den Abläufen und Tücken von der Erstellung einer Schaltung, bis hin zur fertigen Leiterplatte befassen. Die Aufteilung der Artikel wird sich an dem Workflow orientieren, den man bei der Erstellung einer Leiterplatte durchläuft. Es wird sich dabei nicht um eine Anleitung zum erstellen von Schaltungen handeln, sondern vielmehr ein Überblick darüber, wie die Arbeit mit KiCad abläuft.
Begonnen wird beim Erstellen des Schaltplans, danach wird die Netzliste erstellt. Diese enthält alle Informationen über die verwendeten Bauteile und deren Eigenschaften (Namen, Pinbelegung und Landepads) sowie Verbindungen. Nebenbei wird die Liste der Bauteile erstellt, die daraufhin zu beschaffen sind. Mit der Netzliste kann dann im dritten Teil die Leiterplatte entworfen werden. Neben der Platzierung der Bauteile werden wir auch die fertigungstechnischen Feinheiten betrachten und den Prozess der Bestellung durchführen. Wenn die Platte dann eingetroffen ist, wird der letzte Artikel, die Bestückung der Platte und das Löten im Reflow-Prozess beschrieben.

KiCad Installieren

Ähnlich wie bei anderen FOSS Projekten, wird KiCad ständig weiterentwickelt und man kann sich die aktuellste Version als Quellcode aus dem Internet herunterladen. Für viele Betriebssysteme gibt es bereits fertige Binärpakete, die installiert werden können. Zur Zeit sind neue Builds auf http://kicad.nosoftware.cz/ zu finden. Wer sich die Mühe machen möchte, das Programm selbst zu kompilieren, kann dafür den Winbuilder verwenden.
Ich beziehe mich in dieser Artikelserie auf die Version 2015-01-17 BZR 5376 aus dem nosoftware.cz Fundus. 

KiCad Manager

Nach dem Start von KiCad wird der Projektmanager gestartet. Dieser zeigt die verwendeten Dateien, des aktuellen Projekts an und bietet eine Schnellstartleiste für die benötigten Programme, wie Schaltplan- und Symboleditor, oder Layouter. Weiterhin sind noch einige kleine Tools, wie Bitmap zu Komponenten-Konvertierung, Berechnungs-Tools und Schaltplan-Layouteditor. 
Von diesem Fenster aus wird ein Projekt verwaltet. 

Der Schaltplaneditor

Der Schaltplan wird über den Editor Eeschema erstellt. Die Abbildung zeigt den fertigen Schaltplan eines Projekts. Die Übersichtsseite des Schaltplans, also die erste Seite ist hier wie ein Blockschaltbild zu betrachten. Verschiedene Funktionen sind in einzelne Blätter (Subsheets) aufgeteilt. Das muss man nicht unbedingt machen, es macht die Schaltung ab einer gewissen Größe allerdings übersichtlicher. Ich habe meine Schaltungen eigentlich immer auf A3-Größe festgelegt und gehe von dort aus in Subsheets um die Komplexität der einzelnen Komponenten geringer zu halten. Um Signale zwischen den einzelnen Blättern austauschen zu können, werden hierarchische Labels verwendet. Zwei unterschiedliche Netze, die mit einem gleichnamigen Label verbunden werden, sind danach das gleiche Netz. Auf dem Hauptblatt sieht man dann die Verbindungen der einzelnen Untergruppen. Somit wird die Logik abstrahiert und einfacher auf den ersten Blick zu verstehen.
Ein Schaltplan besteht aber nicht nur aus Subsheets, sondern auch aus Komponenten, die die eigentliche Schaltung darstellen. Diese werden über das ‚Bauteil hinzufügen‘ Menü ausgewählt und in den Schaltplan eingefügt. Das Menü erscheint, wenn man das Bauteil-Werkzeug ausgewählt hat und in den Schaltplan klickt. Hier sind alle Bauteile, die in der Bibliothek abgelegt sind zu finden. Über die Filter Eingabe kann nach eine bestimmten Teil gesucht werden, über das Auswahlmenü können die einzelnen Bibliotheken durchsucht werden. Der untere Bereich dient als Vorschau für die Komponente und gibt zusätzliche Informationen zu dem Bauteil, sofern diese bei der Erstellung hinterlegt wurden. Das gewählte Bauteil kann nach dem Drücken des OK-Buttons in den Schaltplan eingefügt werden. 
Sollte ein Bauteil nicht in der Bibliothek zu finden sein, muss es neu angelegt werden. Es sind zwar mittlerweile eine Vielzahl von Bauteilbibliotheken im Internet zu finden, doch es kann vorkommen, dass es dieses eine Bauteil mit diesem Gehäuse und diesem Pinout eben noch nicht gibt. Der Bauteil-Editor von KiCad ist allerdings einfach zu benutzen, wenn man das System hinter den Bibliotheken einmal verstanden hat. Eine Bibliothek ist eine Datei. In dieser Datei befinden sich Beschreibungen für eine oder mehrere Bauteile. Die Bibliotheksdatei muss in einem KiCad bekannten Verzeichnis liegen und zusätzlich noch als aktive Bibliothek ausgewählt werden. Erst dann ist sie in der Bauteil-Auswahl verfügbar. Die erzeugten Biblioteks-Dateien sind im Textformat gespeichert. Diese Eigenschaft machen wir uns später zu Nutze, wenn es darum geht verschiedene Versionen zu verwalten.
Das neue Bauteil bekommt einen Namen. Es wird festgelegt, welche Bezeichner für das Bauteil verwendet werden soll (R für Widerstände, L für Induktivitäten, C für Kondensatoren, V für Dioden, usw.) und die Anzahl der Komponenten pro Bauteil (bspw. für Dual-FETs oder Widerstandsarrays).
Daraufhin kann das Bauteil gezeichnet werden und die Pins eingefügt, benamt und benummert werden. Wichtig ist festzulegen, wie der Energiefluss der Pins ist. Hier sollte Jeder Versorgungspin (VCC, GND, …) als Eingang, jeder Ausgangspin als Ausgang (Vout, …) und jeder Controller-Pin als Bidirektional festgelegt werden. Man kann hier noch weiter ins Detail gehen, wenn man das möchte. Die grobe Festlegung des Energieflusses ist aber wichtig um spätere Fehler im Design Rule Check (DRC) zu vermeiden.

In den Eigenschaften des Bauteils, können für später wichtige Informationen hinterlegt werden. Einmal grundsätzliche Eigenschaften zur Darstellung des Symbols, ähnlich der Einstellungen beim Erstellen des neuen Symbols. Eine Beschreibung das Bauteils und das Datenblatt sollten nicht fehlen, so kann während der Schaltplaneingabe schnell auf das Datenblatt zugegriffen werden. Für viele Bauteile gibt es unterschiedliche Beschreibungen, die mit der eigentlichen Funktion des Bauteils nicht viel zu tun haben (Gehäuseform, Verpackungseinheiten, …). Außerdem gibt es Bauteile, die von verschiedenen Herstellern geliefert werden, aber die gleiche Beschaltung und Funktion aufweisen. So können dem Bauteil Aliase vergeben werden, um es unter diesen Namen in der Liste der Komponenten zu finden. Obwohl im Schaltplaneditor keine fixe Verbindung von Schaltplakomponente und physikalischem Bauteil besteht, kann dem Bauteil eine Reihe von Landungspads (Footprints) für die Leiterplatte mitgegeben werden. Das erleichtert später die Zuweisung von Bauteilform zu Bauteil. 

Bauteile-Bezeichner

Nachdem der Schaltplan in den Editor eingegeben wurde, oder schon währenddessen kann der Komponente ein Bezeichner zugewiesen werden. Beim Erstellen des Symbols haben wir gesehen, dass jedes Symbol einen Prefix besitzt, der die Art des Bausteins beschreibt (R, L, C, V, …). Dazu kommt dann meistens noch eine Nummer, die das Bauteil eindeutig kennzeichnet. So entsteht dann der Widerstand R100 oder der Kondensator C371. Die Bezeichnung kann manuell beim Hinzufügen des Symbols erfolgen, oder automatisch mit dem Annotation-Tool. Dieses Tool erlaubt es uns entweder alle, oder alle noch nicht benannten Bauteile mit den nächsten freien Nummern zu benennen. Dabei kann der aktuelle Schaltplan, oder alle Schaltpläne des Projekts beachtet werden. Die nächstmögliche freie Zahl ist aber auf das ganze Projekt bezogen, denn jeder Bezeichner darf nur einmal vorkommen.
Das Annotationstool besitzt die Möglichkeit, die zu benennenden Bauteile entweder waagerecht, oder senkrecht zu ermitteln und zu bezeichnen. Ich habe eigentlich immer die senkrechte Reihenfolge gewählt. Der nächste Punkt, die Annotationsauswahl, lässt es zu, dass wir Blatt abhängig die Bezeichnung der Bauteile erhöhen. So wird der erste Widerstand auf Blatt 3 mit 300 bezeichnet, der zweite mir R301 usw. Später hilft das den Widerstand von der Leiterplatte wieder in den Subsheets zu finden. Das ist vor allem im Fehlerfall praktisch.

DRC

Der Design Rules Check ist ein sehr hilfreiches Tool beim verifizieren der Schaltung. Er schaut sich den kompletten Schaltplan an und bestimmt anhand von gegebenen Bedingungen, ob der Schaltplan so regelkonform ist. Diese Regeln werden in den Optionen festgelegt. Das Bild zeigt einen typischen Fehler; Ein Pin eines Bauteils ist nicht angeschlossen und der Pin wurde nicht explizit, als nicht verbunden gekennzeichnet. Im Schaltplan wurde die Stelle markiert und wird beim Klick auf den Fehler in der Fehlerliste hervorgehoben. Allerdings ist das nur ein Warnhinweis und kann ignoriert werden. In den Optionen des DRC kann festgelegt werden, wie mit verschiedenen Bedingungen umgegangen werden soll. Beispielsweise ist es OK zwei Eingangspins oder Tri-State-Pins miteinander zu verbinden, aber wenn zwei Ausgangspins verbunden werden, wird ein Fehler erzeugt. Diese Regeln sind nicht verpflichtend, können aber helfen, dass beim eingeben des Schaltplans keine Fehler gemacht wurden.

Zusammenfassung

Der Schaltplan wird in EEschema eingegeben. Dabei werden Symbole aus einer Bibliothek verwendet. Diese Symbole sind nicht zwangsweise an ein Physikalisches Bauteil gebunden. Die Bibliothek ist eine Textdatei in der alle zu dieser Bibliothek gehörenden Symbole hinterlegt sind.
Komplexe Schaltungen können auf Subsheets ausgelagert werden. Diese können Signale mit hierarchischen Labels austauschen. Das Bezeichnen von Komponenten kann manuell oder mit dem Annotationstool gemacht werden. Am Ende kann mit dem DRC ermittelt werden, ob noch grobe Fehler im Schaltplan zu finden sind.
Wie die virtuellen Komponenten im Schaltplan zu ihren physikalischen Gegenstücken umgewandelt werden, warum ein Widerstand auch ein wichtiges Bauteil ist, warum es sinnvoll ist Schaltplansymbol und physikalisches Bauteil zu trennen und was die Netzliste macht, betrachten wir dann im nächsten Beitrag.

Und da warens nur noch Text

Ich habe gestern ein neues Android Telefon in Betrieg benommen. Google Konto angemeldet, Synchronisation gestartet. Nebenbei hat es dann alle meine 4000 Bilder von der Speicherkarte zu Google+ hochgeladen und angefangen irgendwelche Filter auf Bilder zu legen, die ich über Programme wie WhatsApp geschickt bekommen habe. Also habe ich auf der Google+ Webseite alle Bilder wieder gelöscht. Ergebnis davon? Keine Bilder mehr im Blog.

Alle weg und nicht mehr herstellbar.

Danke Google, das ist eine sehr sinnvolle Funktion. Nicht.

USB Geräte über IP tunneln (usbip)

Das usbip Projekt ist seit kurzem als stabiler Bestandteil des Linuxkernels bestimmt worden. Das bedeutet, dass die Funktionalität standartmäßig in die Kernels der großen Distributionen kompiliert werden. Es herrscht allerdings noch einige Unklarheiten wie das Paket ausgeliefert werden soll. Der aktuelle (3.16) Kernel des Ubuntu 14.10 (Utopic Unicorn) hat die Module für usbip bereits dabei. Es draf bloß nicht der Fehler gemacht werden und das ‚usbip‘ Paket aus dem Paketmanager isntalliert werden; dieses enthält eine sehr alte Version des Projekts. Vielmehr muss nur das Paket ‚usbip-utils‘ installiert werden.

Wenn die benötigten Pakete geladen sind kann der usbip Server gestatet werden. Dieser lautet ‚usbipd‘ und kann entweder als Programm oder im Hintergrund geladen werden.

basti@localhost:~$ sudo usbip

oder

basti@localhost:~$ sudo usbipd -D 

Um  USB Geräte über diesen Server zur Verfügung zu stellen, müssen die Kernelmodule ‚usbip_core‘ und ‚usbip_host‚ sowie ‚vhci_hcd‘ geladen werden.

basti@localhost:~$ sudo modprobe usbip_core
basti@localhost:~$ sudo modprobe usbip_host
basti@localhost:~$ sudo modprobe vhci_hcd

Die Liste der verfügbaren USB Geräte kann mit ‚basti@localhost:~$ usbip list -l‚ angezeigt werden. Die Ausgabe sieht dann zum Beispiel so aus:

 – busid 1-2 (05dc:b051)
   Lexar Media, Inc. : unknown product (05dc:b051)

Um das gewünschte Gerät zu exportieren wird dem Kernelmodul das USB Gerät übergeben. 

basti@localhost:~$ usbip bind -b 1-2

Wenn ein USB Gerät an den usbip Treiber weitergegeben wurde, steht es dem System nicht mehr zur Verfügung. Es kann allerdings mit usbip auch lokal wieder eingebunden werden. Und genau das müssen wir zuerst tun, bevor wir mit Windows die Interfaces des USB Gerätes sehen können. Weshlab das so ist, ahbe cih noch nicht herausgefunden, lediglich dass es so ist.

basti@localhost:~$ usbip list -r 127.0.0.1
Exportable USB devices
======================
 – 127.0.0.1
        1-2: Lexar Media, Inc. : unknown product (05dc:b051)
           : /sys/devices/pci0000:00/0000:00:06.0/usb1/1-2
           : (Defined at Interface level) (00/00/00)

basti@localhost:~$ sudo usbip attach -r 127.0.0.1 -b 1-2
basti@localhost:~$ usbip list -r 127.0.0.1
Exportable USB devices
======================
 – 127.0.0.1
        1-2: Lexar Media, Inc. : unknown product (05dc:b051)
           : /sys/devices/pci0000:00/0000:00:06.0/usb1/1-2
           : (Defined at Interface level) (00/00/00)
           :  0 – Mass Storage / SCSI / Bulk-Only (08/06/50)

 
Wie man an der Ausgabe sieht, erscheint das Interface erst, nachdem das Gerät einmal eingebunden wurde. Um es auf einem anderen Computer einzubinden muss es aus dem lokalen Rechner gelöst werden.


basti@localhost:~$ sudo usbip detach -p 0

Damit wird das Gerät wieder frei um von der Windows Seite her eingebunden zu werden. Das ReactOS Projekt hat für Windows signierte Treiber erstellt. Diese können auf der Webseite des usbip Projektes heruntergeladen werden. Die mit den Treibern ausgelieferte Version 0.2.0.0 von usbip.exe ist allerdings zu alt um mit dem aktuellen usbip-Server zu arbeiten. Die Quellcodes sind allerdings offen und man kann sich eine Version kompilieren, oder ihr könnt euch meine kompilierte Version von hier herunterladen. Es handelt sich dabei um die aktuellste Version des SVN Repositories.

Unter Windows muss der usbip Enumerator Treiber installiert werden. Unter Windows 7 kann das über den Gerätemanager erfolgen. Im Gerätemanager klickt man auf den lokalen Computer mit der rechten Maustaste und wählt Legacyhardware hinzufügen.

Im folgenden Dialog wählt man die manuelle Metode aus und ‚Alle Geräte anzeigen‘. Der Button ‚Datenträger…‘ lässt dann zu den Ordner der usbip-Treiber auszuwählen. Installiert nun den ‚USB/IP Enumerator‘.

Der Treiber kann jetzt verwendet werden. Über die Kommandozeite (cmd.exe) führen wir die usbip.exe aus und binden das entfernte USB-Gerät ein.

C:\Release>usbip -l 192.168.0.1
– 192.168.0.1
   1-2: Lexar Media, Inc. : unknown product (05dc:b051)
        :
/sys/devices/pci0000:00/0000:00:06.0/usb1/1-2
        : (Defined at Interface level) (00/00/00)
        :  0 – Mass Storage / SCSI / Bulk (Zip) (08/06/50)

C:\Release>usbip -a 192.168.0.1 1-2
new usb device attached to usbvbus port 1

Receive sequence:    46600

Das Gerät wird von Windows wie ein lokal angestecktes Gerät gesehen und die Treiber werden lokal installiert. Um das Gerät wieder freizugeben wird mit ‚usbip.exe -d 0‘ das Gerät entbunden und kann andersweitig wieder verwendet werden.

Zu beachten ist, dass ein Gerät immer nur an einem PC eingebunden sein kann.


Das ESP-12 3$ WiFi Modul, oder wo könnte man überall Internet einbauen

Seit geraumer Zeit gibt es, vor allem aus China, ein Modul, dass einen ESP8266 Mikrocontroller, ein Flashspeicher, onboard Antenne und einige GPIOs besitzt. Verfügbar ist das Modul in so weit ich herausgefunden habe 14 verschiedenen Ausführungen, vom blankliegenden Controller bis hin zum voll geschirmten Modulpaket, dass die GPIOs als Lötpunkte auf der unterseite besitzt. Die Module sind alle über die üblichen Kanäle zu beziehen. Dabei sind auch die üblichen Lieferzeiten zu erwarten.

Aufbau des Moduls

ESP-12 Modul mit Breakout-Board
Ich habe mir das ESP-12 Modul mit einem Breakout-Board bestellt. Dadurch ist es möglich das Modul im Steckbrett unterzubringen und so schnell eine akzeptable Verkabelung zu erreichen. Das Modul besitzt eine LED, eine PCB-Antenne und ist ansonsten unter einem Metalldeckel abgeschirmt. Dieser Schirm trägt die Kennzeichnung, dass das Modul die Modellnummer ESP826WLAN. Mit diesen Parametern ist es hervorragend geeignet in einem WLAN Netzwerk eingesetzt zu werden. Das Modul hat eine Größe von 16x24mm Die seitlich angebrachten Lötpads sind mit 2mm Abstand angeordnet und befinden sich nicht im Bereich der Antenne. Die LED kann über den Controller gesteuert werden. Die beiden Lötpads für SMD Widerstände sind einam mit GPIO 15 und Chpi_Enable verbunden. Sie können dauerhaft auf GND bzw. VCC gelegt werden. Wenn anstatt der hier verwendeten Lötbrücke ein 10k 0603 SMD Widerstand eingelötet wird, können die Pins auch noch verwendet werden. Ich hatte nur gerade keine griffbereit.
6MOD besitzt und von der Firma AI-THINKER hergestellt wurde. Es besitzt eine FCC-Zulassung, arbeitet auf dem ISM 2,4GHz Band, hat eine Sendeleistung von +25dBm und verwendet das Funkprotokoll IEEE 802.11b/g/n auch bekannt als

Espressif SDK und weitere Betriebsmodi

Die Firma Espressif Systems hat für den ESP8266 eine SDK herausgebracht, das es ermöglicht die Module in zwei verschiedenen Betriebsmodi zu verwenden. Einmal als eigenständiges Modul, dass mit UART Befehlen gesteuert werden kann. Andererseits biete das GitHub von Espressif ein SDK zur Entwicklung von Software mit Hilfe von FreeRTOS in C. Aufbauend auf diesem SDK wurde NodeMcu entwickelt. NodeMcu bringt die Skriptsprache Lua auf das System und ermöglicht es den Microcontroller mit einfach zu scheibenden Skripten zu verwenden. Auch dieses Projekt ist Open-Source und auf Github verfügbar. 

Flashen der Firmware

NodeMcu Firmware Programmer
Das Flashen von Mikrocontrollern kam in der Vergangenheit immer etwas arbeitsaufwändig daher. Meistens wurden spezielle Programmieradapter verwendet, oder das Chip musste über einen JTAG Adapter angesprochen werden. Im Laufe der Zeit haben sich Bootloader etabliert, die in einem reservierten Bereich des Flashs sitzen und vor Ausführen des Hauptprogramms ein Programmieren über die serielle Schnittstelle zulassen. So auch bei diesem Modul. es ich möglich die Firmware von NodeMcu über die Serielle Schnittstelle zu flashen. Das Projekt stellt dazu sogar ein Windows Programm zur Verfügung, das völlig selbständig das Modul mit allen benötigten Speicherteilen beschriebt. 

Kommunikation mit dem Modul

ESPlorer

Nachdem die NodeMcu Firmware auf das Modul geflasht wurde, kann über die Serielle Schnittstelle die Kommunikation mit dem LUA-Interpreter aufgenommen werden. Der Interpreter lauscht mit einer Baudrate von 9600 8 Bits, 1 Stop, kein Parity. Rund um den ESP8266 hat sich bereits eine große Gemeinschaft von Leuten gebildet, die alle mit zum Entstehen von großartiger Software beitragen. Zum Beispiel das ESPlorer Projekt, das eine leicht zu bedienende Oberfläche zum Programmieren der LUA Skripte entwickelt hat. Die für die Entwicklung nötigen Informationen finden sich ebenfalls auf GitHub und können dort im Wiki und der API Dokumentation nachgeschlagen werden.

Bei den bereits verfügbaren LUA Modulen befindet sich alles was man zur Entwicklung von WLAN fähigen Geräten benötigt. Jetzt bleibt nur noch die Frage zu klären, wo kann man überall noch WLAN einbauen und wie mache ich das, damit mein Nachbar mir nicht das Licht ausschalten kann.

3D Drucker Update: Drucken von ABS

Mein 3D Drucker ist ein Bausatz von RepRapPro.com und wurde ursprünglich für das Drucken von 1,75mm breitem PLA Kunststoff entwickelt. PLA hat den Vorteil, dass es bei ~200°C flüssig ist und sich somit hervorragend extrudieren lässt. Es haftet auf warmen (65°C) Kapton Klebeband und bei schweren Fällen auf Pritt-Stift. Dabei ist zu beachten, dass die Wärmeausdehnung von PLA sehr gering ist und daher das Risiko, dass sich ein Objekt während dem Druck verzieht gering. PLA ist ein sehr spröder Werkstoff, der allerdings bei geringen Temperaturen weich wird. Für allgemeine Bauelemente, die keiner großen Belastung ausgesetzt sind, oder Dekorationen eignet PLA sich hervorragend, da es einfach und Energiesparend zu verarbeiten ist. Außerdem entstehen bei PLA keine unangenehmen Gerüche.

ABS hingegen ist ein Thermoplast, dessen Schmelzpunkt etwas weiter oben liegt als der des PLA. Ein Druck mit 240°C für das von mir verwendete ABS erzeugt gute Verbindungen der einzelnen Schichten. Allerdings ist die Wärmeausdehnung von ABS gegenüber der von PLA wesentlich höher, sodass es passieren kann, dass das zu druckende Objekt sich bereits zusammenzieht, während eine weitere Schicht aufgetragen wird. Diese zeiht sich dann auch wieder zusammen und so kommt es vor, dass Ecken des Objektes von der Druckplatte abgehoben werden. Dies erzeugt dann einen Spalt, in dem Luft zirkulieren kann und das Objekt weiter abkühlt. Eine komplette Ablösung von der Druckplatte ist dann sehr wahrscheinlich.

Um einem zu schnellen Abkühlen vorzubeugen kann das Objekt auf einer beheizten Oberfläche gedruckt werden. Diese ermöglicht ein langsameres Abkühlen der Schichten und verhindert somit, dass sich das Objekt verzieht. Die Platte sollte dabei etwas mehr als 100°C haben. 
Der Ormerod Drucker von RepRapPro kam mit einem PC Netzteil als Stromquelle für das Heizbett. Mit dem Netzteil war es möglich die Platte unter konstante anliegender Spannung auf 80°C zu erhitzen. Mit einem leistungsstärkeren Netzteil sind 120°C nach einer gewissen Aufwärmzeit problemlos möglich. Der Druck kann also beginnen.
Zu Beginn befindet sich der Druckkopf sehr nahe über der Oberfläche des Druckbetts. Der originale Kopf des Druckers besitzt drei Düsen, die die Luft nahe an der Austrittsstelle der Düse vorbeileitet. Das führt zu einer starken Abkühlung der Druckplatte an dieser Stelle. Nachdem ich den originalen Kühlluftadapter so modifiziert hatte, dass die Luft wahlweise auch zur Seite abgeblasen werden kann, ist auch die Temperatur stabil geblieben.
Reibung der Y-Achse beim Verfahren nach links erzeugt diese Schräge
Der Drucker besitzt keinerlei Seitenwände und so kommt es vor, dass leichte Luftzüge das Druckbild beeinflussen, bzw. zu einem vollständigen Ablösen des Objekts führen. Mit etwas Karton konnte aber schnell Abhilfe geschafft werden. Dabei zeigt sich, wie wichtig es ist, dass das Druckbett frei beweglich bleibt. Andernfalls kann es zu solchen Schönheiten kommen.
Die Kunststoffteile des Druckers sind, wie es sich für einen RepRap gehört, alle mit einem RepRap hergestellt worden. Dabei wurde PLA verwendet und das ist, wie oben angesprochen nicht sehr temperaturfest. Bereits einige Stunden mit ABS haben dem Schlitten der X-Achse stark zugesetzt.
Hohe Temperaturen haben den Kunststoff des Schlittens verformt
Zu testen bleibt jetzt nur noch das transparente ABS. Allerdings muss der Prozess des Druckens vereinfacht werden, da ich nicht immer den kompletten Drucker umbauen möchte, wenn das Material gewechselt werden soll.