Baubericht „ZAL“ – Zinn-Dampfabzug Lötstation

Wer kennt es nicht? Die neuen ESCs wollen gelötet werden, die Lipos schreien nach neuen XT60 Steckern oder die Platine für das nächste Projekt will bestückt werden. Ich empfand die dabei entstehenden Dämpfe bisher nicht als störend, aber man liest immer wieder, dass diese giftig sind.
Ich bin bei meiner Recherche auf den Artikel von Hr. Dr. Bernhausen gestoßen. Beim durchlesen wurde mir auch klar, warum ich bei einer längeren Lötsession ein leichtes Kratzen im Hals verspürte und manchmal auch Kopfweh bekam.

Materialliste (BOM)

Einige Teile hatte ich bereits vorliegen und daher werden diese mit Bestand gekennzeichnet. Es sollte aber alles ohne weitere Probleme im Internet oder beim örtlichen Händler zu finden sein.

BaugruppeAnzahlBeschreibungLinkEinzelpreis (Euro)Summe (Euro)
Mechanik
1Grundplatte aus Holz 400 x 300 x 18 mmBestand-4,00
4Flexibler Wasser-/Öl-/Luftschlauch aus KunststoffAmazon-4,00
1Universal AktivkohlefilterAmazon-10,00
4KrokodilklemmenAmazon-3,20
4M3 x 40 mm SchraubenBestand--
2M3 x 20 mm SchraubenBestand--
4M2 x 5 mm SchraubenBestand--
4Holzschrauben 3x16 mmBestand--
6M3 SicherungsmutternBestand--
Elektrik
4ARCTIC F8 PWM PST LüfterAmazon7,9031,60
1Lochraster-Platine 70x50 mmBanggood-10,00
1Arduino Nano V3.0Amazon-3,40
10.96" OLED DisplayAmazon-10,00
1Mosfet IRLIZ44NBestand--
110K WiderstandBestand--
150K DrehpotentiometerBestand--
1DC-BuchseBestand--
112V 1A Netzteil (altes Festplattennetzteil)Bestand--
1Stifleisten für Arduino und OLED DisplayBestand--
Druckteile
4Abdeckungen / Halter für die SchläucheThingiverse--
1Gehäuse für ZAL BasisstationThingiverse--
1Deckel für Gehäuse ZAL BasisstationThingiverse--
1LüfterrahmenThingiverse--
1LüfterabdeckungThingiverse--
2Schaniere LüfterrahmenThingiverse--

Aufbau

Der Aufbau ist relativ einfach, wenn man sich die Bilder anschaut.

Ein paar Worte dazu:

  • Die Maße der Grundplatte kann nach Belieben angepasst werden.
  • Für die Befestigung habe ich verschiedene Varianten getestet. Am Besten funktionierte die Variante vier Löcher mit einem 12 mm Holzbohrer zu bohren und dort die Schläuche einzudrehen.
  • Die Gehäusemaße der ZAL Basisstation ist auf die unten erwähnte 70 x 50 mm Lochrasterplatine angepasst. Wenn das gedruckte Gehäuse vorliegt und die Platine eingelegt ist, ergeben sich daraus die Postionen der einzelnen Bauteile.

Druckdaten

Die Druckdaten gibt es auf Thingiverse. Sie wurden von mir mittels Inventor erstellt und bei Bedarf stelle ich auch die .ipt-Dateien zur Verfügung.

Steuereinheit / Platine

Die Platine ist ein erster Wurf und ich arbeite noch daran eine ätzbare Version zu erstellen, welche dann nur noch mit den Bauteilen bestückt werden muss.
Wer aber direkt schon mit dem Nachbauen beginnen möchte, der darf sich gerne an dem Platinenlayout, welches ich mittels Fritzing erstellt habe, bedienen.

Hinweis: Es müssen ein paar Löcher der Platine aufbebohrt werden. Das betrifft die DC-Buchse sowie das Potenziometer.

Lüftergehäuse

Das Lüftergehäuse ist relativ einfach aufgebaut und wichtig bleibt eigentlich nur zu erwähnen, dass ich die Lüfter mittels Kabelbindern verbunden habe.

Code

Zum Code möchte ich vorab direkt erwähnen das dieser nicht völlig aus meinen Händen stammte. Als Basis habe ich mich bei we-mod-it.com bedient. An dieser Stelle noch mal vielen Dank für dessen Bereitstellung! Meinerseits wurde der Code etwas angepasst um die Funktion zu grafischen Anzeige auf dem OLED-Display erweitert.

Ein paar Worte zu dem Code:

  • Bitte ladet die unten genannten Bibliotheken (Zeile 12-16), da es ansonsten zu Kompilierungsfehlern kommt.
  • In meiner Adafruit_SSD1306 Library habe ich das Bootlogo angepasst. Wer das ebenfalls machen möchte kann sich hier dazu belesen.
/*
  Zinn-Dampfabzug Lötstation
  Schwabenpilot.de - Buddinski88
  Version 1.0

  Basierend auf Scynd 2014
  Link: http://we-mod-it.com/board258-diy-do-it-yourself/
        board263-diy-how-to/board231-raspberry-arduino/
        2522-arduino-tutorial-4-l%C3%BCfterdrehzal-auslesen/

*/

// Bibliotheken einbinden
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <Fonts/FreeSansBoldOblique9pt7b.h>

// Konstanten
const int FanPin = 9; // Fan PIN D9
const int PotiPin = A1 ; // Potenziometer PIN A1
const int TachoPin = 2; // Tacho PIN D2

// Fan Symbol normal
const unsigned char PROGMEM fan [] = {
  0x7F, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xCF, 0xE3, 0x87, 0xF3, 0xCF, 0x9F, 0xC1, 0xF3,
  0xFF, 0x1F, 0xC2, 0x7F, 0xFC, 0x0F, 0xC3, 0xBF, 0xF8, 0x07, 0xC3, 0xDF, 0xF7, 0x03, 0xC3, 0xEF,
  0xF7, 0xC3, 0xC7, 0xEF, 0xEF, 0xE3, 0xC7, 0xE7, 0xEF, 0xF7, 0xEF, 0xC7, 0xDF, 0xFF, 0xFF, 0x83,
  0xD9, 0xFF, 0xFF, 0x03, 0xC0, 0x3F, 0xFC, 0x03, 0xC0, 0x3F, 0xFC, 0x1F, 0xC0, 0x7F, 0xFC, 0x7F,
  0xC7, 0xFF, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0xFB, 0xDF, 0x9F, 0xF9, 0xFB,
  0xDF, 0x1F, 0xF0, 0x03, 0xEE, 0x1F, 0xF8, 0x07, 0xEC, 0x1E, 0x7C, 0x07, 0xF4, 0x3E, 0x7E, 0x0F,
  0xF0, 0x3E, 0x3F, 0xCF, 0xF8, 0x7E, 0x3F, 0xDF, 0xFC, 0x7E, 0x1F, 0xBF, 0xFE, 0x7E, 0x0E, 0x7F,
  0xCF, 0xBF, 0x05, 0xFB, 0xCF, 0xE3, 0x07, 0xF3, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFE
};

// Fan Symbol rotiert
const unsigned char PROGMEM fan_rotiert [] = {
  0x7F, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xCF, 0xD0, 0x47, 0xF3, 0xCF, 0xC0, 0xF9, 0xF3,
  0xFE, 0x60, 0xFC, 0x7F, 0xFD, 0xF8, 0x7C, 0x3F, 0xFB, 0xF8, 0x7C, 0x3F, 0xF7, 0xFC, 0x7C, 0x3F,
  0xF3, 0xFC, 0x7C, 0x2F, 0xE0, 0x7E, 0x78, 0x77, 0xE0, 0x1F, 0xF0, 0xFF, 0xC0, 0x1F, 0xF1, 0xFB,
  0xCB, 0x1F, 0xFB, 0xFB, 0xFF, 0xFF, 0xFF, 0xFB, 0xDF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0x81,
  0xBF, 0xFF, 0xFC, 0x03, 0xDC, 0x3F, 0xFC, 0x03, 0xD8, 0x3F, 0xFE, 0x0B, 0xC0, 0x7F, 0xFF, 0xFB,
  0xE0, 0xFF, 0xFF, 0xFF, 0xE1, 0xFF, 0xEF, 0xFB, 0xE1, 0xF3, 0xC3, 0xF7, 0xF7, 0xE3, 0xE1, 0xEF,
  0xF7, 0xE1, 0xE0, 0x6F, 0xFB, 0xE3, 0xF0, 0x1F, 0xFC, 0xE1, 0xF8, 0x3F, 0xFF, 0x61, 0xFC, 0xFF,
  0xDF, 0xA1, 0xFD, 0xF3, 0xCF, 0xC0, 0xCF, 0xFB, 0xFF, 0xFF, 0x7F, 0xFF, 0x7F, 0xFF, 0xFF, 0xFE
};

// Variablen
int FanSpeed = 0; // Variable für die Lüftergeschwindigkeit
int FanMin = 50; // Minimaler PWM Wert für den Lüfter
int PotiVar = 0 ; // Variable zum speichern des Potentiometereingangs
int AbfrZeit = 500; // Zeitabstand für die Abfragen des Tachosignals
long TachoMillis = AbfrZeit; // Zeitabstand für Pulse Stretching Funktion
int DisplayAbfrZeit = 500; // Zeitabstand für die Abfragen des Tachosignals
long DisplayMillis = DisplayAbfrZeit; // Zeitabstand für Pulse Stretching Funktion
float RPS = 0; // Variable mit Kommastelle für die Berechnung der Umdrehungen pro Sekunde
int RPM = 0; // Variable für die gemittelte Drehzahl
float UmdrZeit = 0; // Variable mit Kommastelle für die Zeit pro Umdrehung des Lüfters
float FlankenZeit = 0; // Variable mit Kommastelle für die Zeit pro Puls des Lüfters
int FanSymbol = 0; // Entscheidung welches Symbol verwendet werden soll

// DIYMALL OLED spezifische Einstellungen
#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);

#define NUMFLAKES 10
#define XPOS 0
#define YPOS 1
#define DELTAY 2

#if (SSD1306_LCDHEIGHT != 64)
#error("Height incorrect, please fix Adafruit_SSD1306.h!");
#endif


void setup() {
  // Einmaliger Aufruf
  TCCR1B = TCCR1B & 0b11111000 | 0x01; // Setzt Timer1 (Pin 9 und 10) auf 31300Hz
  Serial.begin(9600);
  //delay(3000);
  pinMode(FanPin, OUTPUT) ; //Setzt den Lüfter Pin als Ausgang
  pinMode(PotiPin, INPUT) ; //Setzt den LEDPin als Ausgang
  pinMode(TachoPin, INPUT); //Setzt den Tacho Pin als Eingang
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);  // initialize with the I2C addr 0x3D (for the 128x64)

  // Definiert die Schriftart
  display.setFont(&FreeSansBoldOblique9pt7b);

  // Bootlogo
  display.setRotation(2);
  display.display();
  delay(4000);

  // Leeren des Displays
  display.clearDisplay();
}

void loop() {
  // Mehrmaliger Aufruf

  // Liest das Potentiometer aus
  PotiVar = analogRead(PotiPin) ;
  // Verteilt den PWM Wert über den Messbereich des Potis
  FanSpeed = map(PotiVar, 50, 1023, FanMin, 255);

  // Unterer Potenziometerbereichs (0-50) = Lüfter aus
  if (PotiVar < 50) {
    FanSpeed = 0;
  }

  analogWrite(FanPin, FanSpeed); // Gibt die Variable mit PWM aus

  // Alle 2000ms pulse_stretch starten um die Drehzal auszulesen
  if ((millis() - TachoMillis) >= AbfrZeit) {
    pulse_stretch();
  }

  // Alle 1000ms pulse_stretch starten um die Drehzal auszulesen
  if ((millis() - DisplayMillis) >= DisplayAbfrZeit) {
    display_graphic();
  }

  display.display();

}


void pulse_stretch() {
  // Nur wenn PotiVar größer als 50 ist, wird die RPM ausgelesen
  if (PotiVar > 50) {
    // Den Lüfter konstant mit Strom versorgen damit das Tachosignal funktioniert
    analogWrite(FanPin, 255);
    // Abfrage der Zeit pro Puls in Mikrosekunden
    FlankenZeit = pulseIn(TachoPin, HIGH);
    // Setzt die Lüftergeschwindigkeit zurück
    analogWrite(FanPin, FanSpeed);
    // Berechnung der Zeit pro Umdrehung in Millisekunden
    UmdrZeit = ((FlankenZeit * 4) / 1000);
    // Umrechnung auf Umdrehungen pro Sekunde
    RPS = (1000 / UmdrZeit);
    // Umrechnung auf Umdrehungen pro Minute
    RPM = (RPS * 60);
    // Ausgabe der Drehzahl im Seriellen Monitor
    Serial.println(RPM);
    // Zeigt die Umdrehungen an
    display.setTextSize(2);
    display.setTextColor(WHITE);
    display.setCursor(0, 58);
    display.println(RPM);
  }
  // Wenn der Lüfter nicht angesteuert wird, schreibe Drehzahl 0
  else {
    // Drehzahl 0 in Seriellem Monitor ausgegeben
    Serial.println("0");

  }
  // Die TachoMillis werden aktualisiert um die nächsten 2000ms zählen zu können
  TachoMillis = millis();
}

// Funktion für das Display
void display_graphic() {
  // Leert das Display
  display.clearDisplay();

  // Zeigt statischen Text an
  display.setTextSize(1);
  display.setTextColor(WHITE);
  display.setCursor(0, 16);
  display.print("Drehzahl (rpm)");

  if (PotiVar > 50) {
    // Zeigt Umdrehungen an
    display.setTextSize(2);
    display.setTextColor(WHITE);
    display.setCursor(0, 58);
    display.println(RPM);
    // Entscheidung welches Symbol
    if (FanSymbol == 0) {
      //statisch
      display.drawBitmap(94, 30, fan, 32, 32, WHITE);
      FanSymbol = 1;
    } else {
      //rotiert
      display.drawBitmap(94, 30, fan_rotiert, 32, 32, WHITE);
      FanSymbol = 0;
    }
  } else {
    // Zeigt die Umdrehungen auf dem Display an
    display.setTextSize(2);
    display.setTextColor(WHITE);
    display.setCursor(0, 58);
    display.println("AUS");
    display.drawBitmap(94, 30, fan, 32, 32, WHITE);
  }
  display.display();
}

Ergebnis

Zum Schluss noch ein paar Bilder, welche die fertige Station zeigen und eigentlich bleibt mir nur zu sagen „Viel Spaß beim nachbauen!“.

Aktuelle 3D Drucker für den Einstieg

Das Thema 3D Druck wird immer freundlicher für die Endverbraucher, und da mich in den letzten Wochen mehrere E-Mails dazu erreicht haben, möchte ich in dem folgenden Beitrag auf drei aktuelle Drucker eingehen.
Die folgenden Drucker erfordern etwas handwerkliches Geschick und man muss auch gewillt sein sich in die Materie einzuarbeiten. Wenn diese Voraussetzungen nicht erfüllt sind, dann kann man auf ein teueres „Ready-to-Print“-Modell gehen oder man lässt lieber die Finger davon, denn der Frust wäre sonst nur unnötig 🙂

Anet A8

Dieser Drucker ist aktuell sehr populär, da er auf eine weit verbreitete Mechanik (Prusa) setzt und z.B. in Facebook div. Gruppen zu dem Drucker vorhanden sind.
Dem Drucker liegt auch ein Handbuch bei und es gibt Videoanleitungen dazu.

Funktionsübersicht:

  • Druckbares Filament: PLA, ABS
  • Aufbauverfahren: FDM
  • Max. Druckraum: 220 x 220 x 240 mm
  • Höchste Auflösung: 100 microns
  • Filamentdurchmesser: 1.75 mm
  • Verbindungen: USB, MicroSD
  • Heizbett: Ja
  • Preis ca.: 150,- Euro

Creality3D CR – 10

Dieser Drucker ist ähnlich dem Anet A8, nur ist der Druckraum deutlich größer und das Frame basiert auf Aluminumprofilen. Wenn man sich für das Thema 3D Druck interessiert und aktuell in Youtube schaut, dann findet man dort unzähbar viele Reviews, die einen guten Eindruck zu dem Drucker hinterlassen.

Funktionsübersicht:

  • Druckbares Filament: PLA, ABS, TPU, PETG, …
  • Aufbauverfahren: FDM
  • Max. Druckraum: 300 x 300 x 400 mm
  • Höchste Auflösung: 100 microns
  • Filamentdurchmesser: 1.75 mm
  • Verbindungen: USB, MicroSD
  • Heizbett: Ja
  • Preis ca.: 350,- Euro

Tronxy X5

Im Vergleich zu den beiden vorher genannten Drucker wird hier eine andere Mechanik verwendet. Core xy bedeutet ist ein Funktionsprinzip bei welchem das Druckbett nur vertikal verfahren wird. Die X- und Y-Achsen sind somit deutlich leichter zu gestalten und somit können auch höhere Geschwindigkeiten gefahren werden.

Funktionsübersicht:

  • Druckbares Filament: PLA, ABS, HIPS, PC, PVC, Wood
  • Aufbauverfahren: FDM
  • Max. Druckraum: 210 x 210 x 280 mm
  • Höchste Auflösung: 100 microns
  • Filamentdurchmesser: 1.75 mm
  • Verbindungen: USB, MicroSD
  • Heizbett: Ja
  • Preis ca.: 250,- Euro

Review FPV Session Backpack von thinkTANK

Mitte des vergangenen Jahres wurde ich durch ein Bild auf Instagram das erste Mal auf den FPV Session Backpack von ThinkTank aufmerksam und nach div. Telefonaten war klar, das erst mal nur die USA damit versorgt wird.
Mittlerweile ist aber ein Jahr vergangen und sein knapp zwei Monaten bin stolzer Besitzer des Rucksacks. Dazu möchte ich auf diesem Wege ein kleines Review dazu abgeben.
An dieser Stelle auch vielen Dank an thinkTANK photo, welche einen sehr unkomplizierten Kauf ermöglichten und der Rucksack so binnen zwei Tagen geliefert wurde.

Beworben wird der Rucksack mit Der erste Rucksack entwickelt für Drohnen Racer und ich kann soviel vorab sagen, diesem Anspruch wird er gerecht!

Verarbeitung

Nach zwei Monaten im Einsatz ist mir bisher nichts aufgefallen, das einen Defekt oder Ermüdungserscheinungen aufweist. Alle Nähte sitzen fest, die Reißverschlüsse laufen wie geschmiert und auch die innen liegenden Fächer heben noch einwandfrei. Ich hatte schon so manch anderen Rucksack, der sich nach kürzester Zeit in seine Bestandteile auflöste.
Es ist auch wichtig zu erwähnen, das der integrierte Regenschutz funktioniert und das nicht nur bei leichtem Nieseln. Ich bin – leider – schon in einen Regenschauer gekommen, als ich mit meinem Longboard unterwegs zum fliegen war.

Gewicht, Größe und Unterteilung

Innenmaße: 29,2 x 49,5 x 15,2 cm (BxHxT)
Außenmaße: 31 x 50,8 x 16,5 cm (BxHxT)
Maße Laptopfach: 28 x 39,4 x 2 cm (BxHxT)
Gewicht: ca. 1,1 kg (abhängig vom verwendeten Zubehör)

Der Rucksack weist folgende Staumöglichkeiten auf:

  • Außen
    • Zwei flexible Getränkehalter an den Seiten
    • Eine Tasche am Boden für Kleinteile
    • An der Oberseite befindet sich eine Tasche, welche den Regenschutz beinhaltet
    • 6 Klippverschlüsse um daran z.B. drei Copter oder einen Stuhl zu befestigen
  •  Innen
    • Ein Laptopfach, welches ohne Probleme z.B. ein Microsoft Surface fässt
    • Eine Tasche, welche von zwei Seiten zugänglich ist für Kleinteile
    • Ein flexibles Fach
    • Vier mittels Klett anpassbare Fächer
    • Ein großes Fach für z.B. die Fernsteuerung und die FPV Brille
    • div. kleinere Fächer

Komfort

Der Rucksack trägt sich sehr angenehm und mittels der Bauch- und Brustgurte kann er sehr nah an den Oberkörper gespannt werden. Ich empfinge das immer sehr angenehm, da der Schwerpunkt so nicht unnötig nach hinten verlagert wird. An den Tragegurten kann man nichts aussetzen. Sie passen sich gut dem Körper an und sind ausreichend gepolstert. So machen Gewichte von 5-7 KG keinerlei Probleme.

Fazit

Die Investition von ca. 170,- Euro scheint erst Mal sehr hoch, aber bedingt der hochwertigen Verarbeitung, dem Tragekomfort und das man wirklich alles für einen ausgedehnten Flugtag unterbringen kann, rechtfertigen – meiner Meinung nach – den Kaufpreis!
Zum Schluss noch ein paar Bilder um den Rucksack mal im Einsatz zu zeigen sprich, wie ich ihn gepackt habe.

 

 

 

Osteraktion von Eins3D

In den vergangenen Wochen habe ich einiges an Filament von Eins3D bestellt und daher erreichte mich – recht überraschend – vor ein paar Tagen auch eine E-Mail von Thomas Kunert.
Darin befand sich eines, der momentan sechs, im Umlauf befindlichen Teile des Ostereis von Ein3D. Natürlich lies ich mir die Ehre nicht nehmen und so startete ich gestern Abend den Druck.

MaterialPLA
FarbeGelb
Schichthöhe0.15 mm
Infill50%
SupportJa

Wenn ihr an dieser Aktion auch teilnehmen möchtet, dann könnt ihr Teil 5 hier herunterladen: https://drive.google.com/open?id=0BxbF_bC9uGO5ZHlNc3lPQjJZTW8

Die anderen Teile findet ihr auf der Facebookseite von Ein3D.