Ormerod Erweitungungsboard für Diamond Hotend

Im Sommer habe ich meinen Ormerod für das Diamond-Hotend umgerüstet. Dazu habe ich an den Extension-Stecker drei Pololu-kompatible Schrittmotortreiber angelötet. Damit ihr das nachzubauen könnt, gibt es jetzt das Adapterboard mit Aufnahmestellen für vier Pololu Module.

3D Rendering der Baugruppe in KiCad

Das Board wird einfach nur an den Erweiterungssteckplatz gesteckt. Die Konfigurationsdatei auf der SD-Karte kann angepasst werden um die neuen Schrittmotoren zu unterstützen.

Fertig bestücktes Duex X Board mit vier Pololu Stepper Treibern

Die Änderungen in der Konfigurationsdatei müssen auf der SD-Karte des Duet Boards durchgeführt werden. Jede Farbe, die mit dem Diamond Hotend gedruckt werden soll erhält eine eigenes Werkzeug. Dazu müsst ihr die Befehle G10 und M563 verwenden.
Mit M563 wird das „Werkzeug“ angelegt. Werkzeug deshalb in Anführungszeichen, weil ein Werkzeug eine bestimmt Farbe im Hotend ist. M563 legt die Parameter fest, mit denen die Farbe erzeugt wird.

M563 P0 D0 H1

Diese Zeile erzeugt das erste Werkzeug T0 und teilt mit, welche Motoren und welche Heizer zum Werkzeug T0 gehören. D0 ist der Extrudermotor 0 und H1 ist der Heizer Nummer 1. Heizer Nummer 0 ist das Druckbett. Motor 0 ist der erste Extruder auf dem Duet Board. Um Motoren des Extension Board zu verwenden müsst ihr die Nummer an der jeweiligen Pinleiste nehmen. Das gilt jedoch nur für ein Duet Board der Version 0.6! Mit der neuen 0.8.5 Version wurde auch ein weiterer Motortrieber auf das Basisboard gebracht. Somit muss die Nummer um eins erhöht werden.

Als nächstes müssen wir einstellen, mit welcher Arbeitstemperatur (220°C) und welcher Standby-Temperatur (120°C) das Werkzeug arbeitet:

G10 P0 S220 R120


Auch hier muss die Werkzeugnummer 0 angegeben werden.

Duex Board mit zwei zusätzlichen Schrittmotoren angeschlossen

Mit den beiden Zeilen die wir oben sehen können wir jetzt eine ganze Liste an neuen Werkzeugen definieren. Der Drucker ist jetzt in der Lage 5 (oder 6) Motoren zu steuern. Für das Diamond Hotend benötigen wir nur 3. Wenn alle drei Motoren an das Extension Board E1, E2 und E3 angeschlossen sind, steht in der config.g also:

G10 P0 S220 R120
G10 P1 S220 R120
G10 P2 S220 R120
M563 P0 D1 H1
M563 P1 D2 H1
M563 P2 D3 H1

Damit können wir schon drei Farbige Drucke erzeugen. Das Schöne kommt allerdings, wenn wir die Eigenschaften eines Werkzeugs so definieren, dass mehr als nur ein Motor verwendet wird. 
Zu diesem Zweck gibt es in der Firmware für das Duet Board den Befehl M567. Dieser legt ein Mischverhältnis für ein bestimmtes Werkzeug fest.

M567 P0 E0:0.1:0.2:0.7

Dieser Befehl legt fest, dass das Werkzeug T0 ab sofort die zu extrudierende Länge gleichzeitig auf folgenden Motoren ausgibt:

  • Motor 0 : 0%
  • Motor 1: 10%
  • Motor 2: 20%
  • Motor 3: 70%
Wie wir oben sehen sind an Motoren 1 bis 3 die Motoren für das Diamond Hotend angeschlossen. Somit erhalten wir eine heterogen gemischte Masse am Ausgang der Düse. Mit transparenten Filamenten sollte das allerdings brauchbare Ergebnisse liefern. Ob das funktioniert wird sich in der Zukunft zeigen. Im Moment warte ich noch auf Teile um drei funktionierende Extruder zusammen zu bauen.
In der Zwischenzeit kann man die Extensionboards auch nachbauen, oder käuflich erwerben. Die Daten sowie eine Anleitung werden in den nächsten Tagen online gestellt.

Assembly of a Chinese 3D Delta Printer Kit

I got myself a Chinese 3D printer kit. It is a delta configuration build after the Reprap Kossel Mini . The Set included:

  • Hardware (linear rails, belts, motors, screws feathers, print surface)
  • Electronics (RAMPS 1.4, LC-display, SD-card, switches, cables)
  • Extruder (direct bowden extruder)
  • Hotend (E3D clone with heater cartridge and thermistor)
  • Heated Bed PCB (for heating up the print surface)
  • Free PLA filament
Contents of the two packages

Everything was shiped with DHL Express from Hong Kong and arrived 7 days after purchasing. Which is very nice for a package from china. Shipping was only 32$ extra. In Germay customs claimed another 68€ so in total 370€ which is not too bad for the two packages containing (hopefully) all of the parts needed for assembly.

Unpacking all the boxes leaves us with heaps of material. The threr cardboard boxes contain all of the parts. The tube contains the linear slides for the towers. The black beams are for the frame and the red PCB is the heater for the print surface. Included in the package were all the Allen keys needed for assembly. A lot of M3, M4 and M5 screws, nuts and various bits. An SD card with the necessary firmware and build instructions were included as well. All the mechanical connections are printed with PLA in a OK quality. The dimensions are met so I was no problem to put everything together.

All the assembly parts layed out on the table

With my comprehensive knowledge of simplified Chinese symbols, which is none, I could read some of the documentation. Luckily the internet is full of assembly instructions for the reprap Kossel mini.

After a few hours the mechanics where done and everything moves smoothly. After adjusting the delta values in the firmware, z height and probe offset for finding the true Z0 position it printed with the included PLA filament. The test cube was sliced with slic3r with a configuration I came up with. After a few layers the extruder stopped working and nothing was fed into the hotend anymore. After some fiddling around with the temperature and manually trying to push the filament through the hotend I dissembled the whole hotend part. It showed that the free filament sample had a huge part of 2mm diameter instead of 1.78, which i measured before configuring the slicer. Due to the large diamter the filament got stuck in the cold part of the hotend. Stupid thing but easyly fixable. Pushing with a small screwdriver from the nozzle side of the cold part released the stuck piece of filament.
Well the free sample found its way to the bin and a spool of light blue high quality PLA found its way to the extruder and out of it again. Tightening the hotend in a hot state will hopefully do the job.

The thing is running, litterally. A nice piece of hardware

If you are looking for a nice kit to build yourself a kossel mini 3D printer you can go for one of the cheap sets from china. But keep in mind, you are in for a steep learning curve. If you want to print 3D models and not fiddle around to much, buy something else.

Herbert Mk3: An der Wand

Das neue und offizielle Raspberry Pi Touchscreen mit DSI Anbindung und kapazitivem Touch ist endlich auch für mich lieferbar gewesen. Nachdem ich fast einen Monat darauf gewartet habe kann ich die Schaltzentrale für meine Wohnung jetzt endlich an den Nagel hängen…

Raspberry Pi 7″ TFT Gehäuse: Modell

Mit einem eigenenen 3D-gedruckten Gehäuse hängt der Raspberry Pi 2 mit Display jetzt im Flur. Mit an Board ist ein BLE Dongle, zwei WLAN Sticks und ein 64GByte Massenspeicher. Auf dem System läuft ein Raspbian mit LXDE und Iceweasel Browser als Frontend und openhab, mogodb, mosquitto, HerbertScanner und HerbertNode im Backend.

Openhab mit mosquitto habe ich ja bereits in älteren Posts bereits erwähnt und mongodb als Datenbank ist auch keine Besonderheit. Die zwei interessanten Softwarekomponenten sind HerbertScanner und HerbertNode.

HerbertScanner ist eine Applikation, die mit dem BLED112 von BlueGiga kommuniziert und die Advertisement Pakete der BLE Buttons im Umkreis registriert. Ein Advertisement Paket im richtigen Format wird an mosquitto, also als MQTT Nachricht weitergeleitet. So werden Daten von BLE Endpunkten a die openhab Zentrale geleitet.
Die Konfiguration der BLE Geräte muss zur Zeit manuell durchgeführt werden. Dazu muss der MQTT Kanal ‚/Herbert/#‚ abonniert werden.  Dort werden alle Nachrichten abgeliefert. Neue Geräte erscheinen da dann auch und können mit der ID registriert werden.

HerbertNode ist eine Applikation, die für das Konfigurieren der WLAN Endpunkte eingesetzt wird. HerbertNode scannt die WLAN Netzwerke in der Umgebung und findet die Accesspunkte von ESP2866 Geräten. Diese starten, wenn sie keine Konfiguration besitzen, oder das konfigurierte Netzwerk nach 30 Sekunden nicht gefunden wurde in den Accesspoint Modus. Sobald HerbertNode eine ESP2866 SSID sieht, verbindet er sich mit dem AccessPoint und stellt eine HTTP Anfrage nach ‚/info‘. Das Gerät gibt dann Informationen über sich im JSON-Format an HerbertNode weiter. HerbertNode hat eine Liste der verfügbaren Geräte im Umkreis. Vom Benutzer kann in dieser Liste das Gerät ausgewählt und dem Netzwerk hinzugefügt werden, dazu wird dem Gerät die SSID und der Zugangsschlüssel für das Herbert-WLAN übertragen.

Der Code wird im Laufe der nächsten Wochen noch verfeinert und stabilisiert. Es treten teilweise noch Fehler auf, die noch behoben werden müssen, bevor Herbert zum ersten mal veröffentlicht wird.

Converting a CC26xx Example Project Into Something Shareable


The example projects that are shipped with TI’s BLE SDK are great. They show a huge variety of use cases for the BLE stack. The codes provided are great resources when it comes to information on how to build software for the CC26xx chip family. Doing so many examples leaves us with code that is used more often than once and so it is linked into the project. Basically every file that consists of some code is a virtual link to a file on the folder structure. That leaves us with the problem that sharing the project with an SVN or GIT server only gives us the few local files and none of the code that is important. Changing the code is possible but you have to remind yourself, that the files are not considered to have changed when submitting to a version control system. 
To conquer this issue we need to have some of the files we are going to change or that are not part of the SDK in a local version on our file system. Luckily we can just copy the files to a folder in the project of the workspace. This way the files are preserved and as a next step we delete the links to the files in the project explorer.
I moved the following files to local folders:
  • simpleBLEPeripheral.c /.h
  • board_key.c /.h
  • simpleGATTprofile.c /.h
  • main.c
  • Board.c /.h
  • appBLE.cfg
You now have to add the local folders to the include paths of your project so the files can be found during build. Especially the Board.h which contains the information on how the chip is integrated in the circuit. Remember to remove all the unnecessary folders from your include paths. If your project uses available files from the example projects (like profiles and utils) you can leave the links in you project. To share the project you can use Subclipse or Git. You will have to install the same version of the SDK if you want to compile the project we created.
You can read up on this instructions on how you can create your own GATT Profile.

Sooo teuer…

Conrad Elektronik ist nicht unbedingt für kleine Preise bekannt. Auch der 3D Drucker von Conrad, der RF1000, ist nicht von der günstigsten Sorte. Vor einigen Tagen ist im Hotend des Druckers der Heizwiderstand durchgebrannt. Conrad bietet zwar ein Ersatz für das Hotend an, allerdings nur im Set mit einigen Teilen des Extruders. Das Set beinhaltet neben dem Hotend auch noch die Mutter zum Befestigen, das Ritzel für den Extruder Motor und ein ‚Spezialwerkzeug‘ zum Befestigen des Extruders am Führungsschlitten. Das ganze zum ansehnlichen Preis von 80€ zzgl. Versand. Was ein Schnäppchen. Der Extruder alleine ist mit 65€ gelistet, aber nicht mehr lieferbar. Nur noch das Set mit den unnötigen Teilen, die nicht kaputt gehen sollten für 15€ mehr ist verfügbar. Sehr schade…

RF1000 Ersatzteil-Set 5 – Extruder 3mm

And it burns burns burns

Gestern stand ein relativ großes unscheinbares Paket vor der Tür. Eingewickelt in gelben Klebeband und mit einer Zollerklärung kann es nur eins bedeuten: Mein DIY Lasercutter aus China ist angekommen. Im Paket befindet sich neben dem mechanischen Komponenten für die Gantry auch die Elektronik, sowie Motoren und Software. Alles gut verpackt in einzelnen Tütchen und Luftpolsterfolie. Es macht einen soliden Eindruck und der Zusammenbau gestaltet sich auch relativ einfach. Allerdings gibt es keine gedruckte Anleitung und die Dateinamen auf der beigelegten MicroSD Karte sind alle in Chinesisch. Das führt unter meinem Windows leider zu Darstellungsproblemen und so kann ich einige Dateien nicht öffnen. Einige Bilder kann ich aber Anschauen und somit lässt sich der Zusammenbau einigermaßen gut gestalten. Nach knapp 2 Stunden steht das Gerät auch schon.

Dem Set ist keine Laser Schutzbrille beigelegt. Allerdings bin ich mir nicht sicher, ob ich auf eine chinesische Laserschutzbrille vertrauen würde und habe deshalb eine ordentliche in Deutschland gekauft. Das Gerät kommt außerdem mit einem amerikanischen Stecker für das Netzteil. Doch auch das ist kein großes Hindernis. 

Die Software zum Erzeugen der Daten für den Lasercutter ist die Open Source Software Inkscape mit einem Plugin für Lasercutter. Mit Inkscape können Grafiken als Pfade, also Vektorgrafiken erzeugt werden. Die aktuelle Version von Inkscape hat Probleme mit dem Plugin, aber dem Set war die Version 0.48.4 beigelegt, die macht keine Probleme.
Den Laser kann man manuell verschieben und somit auf die ungefähre Nullposition bringen. Genau referenzieren geht leider (noch) nicht. Die Laserdiode ist stark genug um das Holzbrett, auf dem der Aufbau steht zu verbrennen. in wiefern man damit Holz schneiden kann werde ich noch sehen. Ansonsten eine super nette Spielerei. Nur stinkt es in meinem Arbeitszimmer jetzt nicht nur nach Plastik, sondern auch nach verbranntem Holz… Zeit über eine Lüftung nachzudenken, anstatt immer wieder das Fenster aufzulassen. Vor allem im Winter…

[youtube=https://www.youtube.com/watch?v=W8sFDGa8JDg&w=320&h=266]

Android im Rückspiegel

Die Chinesen haben mal wieder eine geniale Sache gebaut. Ein Rückspiegel mit eingebautem Android-Tablet. Alles drin, von W-LAN über SD-Karte mit Straßenkarten für Europa ist alles drin.

Rückspiegel mit 5″ Android Tablet. Blau verspiegelter Reflektor

  • Frontkammera
  • Rückfahrkammera
  • Beschleunigungssensor
  • Navigation weltweit

Das Ganze wird über den bestehenden Rückspiegel gehängt und mit Gummibändern befestigt. Kleines Manko ist, dass die aktuellen Verkehrsbehinderungen nicht online aktualisiert werden können. Aber das kann gut daran liegen, dass die Software eine ‚offizelle‘ chinesische Version von iGo ist. Dank des Android-Betriebsystems ist allerdings die Auswahl an Navigationsapps sehr groß. Welche sich als geeignet erweisen wird, bleibt noch offen. Auch habe ich noch keine Update vom Händler erhalten. Das sollte mir dann die aktuellen Kartendaten geben. Anpassen musste ich nur die Tastatur, denn es ist keine außer eine Pinyin-Eingabe installiert. 

Was mich ein wenig verwundert ist, dass das Gerät sofort ausschalten möchte, wenn man es vom Ladegerät trennt. Ich kann verstehen, dass es für den Gebrauch als Navi nicht unbedingt dauernd an sein muss, allerdings ist es bestimmt hilfreich, wenn es nicht immer komplett starten muss. Ein Tiefschlafmodus wäre also wünschenswert. Leider geht auch mit abgeschalteten Bildschirm die Batterie ganz schnell in die Knie. In dem Gehäuse ist auf jeden Fall genug Platz für eine anständige Batterie, mal schauen wie groß die ist.
Kleine Batterie, daher kurze Laufzeit ohne Ladegerät
Mit 950mAh kommen wir natürlich nicht sonderlich weit. Das erklärt auch, warum dem Teil ein 10W Ladegerät beiliegt. Mit einem Labornetzteil zeigt sich ein Strom von 700mA beim Laden. Das Display benötigt alleine bereits 100mA und daher ist der 10 Minuten Ohne-Strom-Shutdown Timer verständlich. Es folgt der Praxistest im Auto.Es zeigt sich auch, dass der Spiegel sehr groß ist. Schätzungsweise 2cm höher und locker 5cm breiter als mein serienmäßig verbauter Spiegel.

[youtube=https://www.youtube.com/watch?v=o7b56tteeDU&w=320&h=266]

Das Video zeigt ein Ausschnitt bei strahlendem Sonnenschein. Im Dunkeln und bei schlechter Witterung sind die Aufnahmen wohl nicht ganz so schön anzuschauen. Auch die Rückfahrkamera habe ich noch nicht getestet, dazu muss ich sie erst mal sinnvoll befestigen.

ESP8266 – 2: Temperatur mit dem ESP8266 und DHT11

Das Hausautomationsteam in meiner Wohnung hat einen neuen Teamkollegen bekommen. Ein Tempertatur und Luftfeuchte Sensor. Der Sensor basiert auf einer kleinen Schaltung mit dem DHT11 Sensormodul und einem ESP-01 Board. Daran angeschlossen befinden sich zwei AA Akkus.

ESP-01 Modul mit DHT11 Sensor und 2 AA-Akkus

Die Software im ESP2866 wurde diesesmal nicht mit LUA und NodeMCU, sondern mit dem von ESP verfügbaren SDK erstellt. Ich habe dafür die Bibliothek für den DHT Sensor und den MQTT Client verwendet. Diese beiden Bibliotheken sind frei verfügbar und könne hier heruntergeladen werden.

Das System basiert immernoch auf einem MQTT Broker als zentraler Kommunikationshub. Die Sensoren besitzen alle eine eindutige Chip Indentifikationsnummer. Diese, kombiniert mit dem Systemnamen, bilden die Topics, auf denen die Sensoren Daten für das System bereit stellen. Eine Konfiguration des Sensors bei Inbetriebnahme ist auch in Arbeit. Dazu lauscht der Hauptknoten (Webserver, MQTT broker, Festplatte, usw.) auf WLAN Accesspoints die mit dem Namen ESP beginnen. Diese werden in einer bestimmten Liste angezeigt und können vom Hauptknoten angesprochen werden. Dabei verbindet sich der Knoten mit dem Sensor und überträgt die Daten, die für das eigentliche Netzwerk verwendet werden. Diese Kommunikation muss verschlüsselt stattfinden, daher wird auf die AES-Bibliothek des ESP2866 zurück gegriffen. Mit den Daten kann der Sensor sich dann am lokalen WLAN anmelden und seine Daten dem MQTT Broker zur Verfügung stellen.

Code für den Sensor gibt es hier. Eingestellt wird das ganze über die user_config.h
http://gist-it.appspot.com/github/DasBasti/esp8266/blob/master/Sensoren/Temperatur/dht112mqtt/include/user_config.h?footer=minimal&slice=10:46 Der Code wacht auf, verbindet sich mit dem MQTT Broker (Herbert) und sendet seine Messwerte. Danach begibt er sich wieder in den Tiefschlaf. Es sind sicherlich noch Optimierungen möglich, so ist es mit einem unmodifizierten ESP-01 Modul nicht möglich aus dem Tiefschlaf wieder aufzuwachen.

Werte in Openhab auf Herbert

Mehr Farben mit dem Ormerod

Diamond Hotend, Alu X-Ausleger
und Alu Druckbetthalter

Der Ormerod stand seit meinem Umzug eigentlich nur unbrauchbar in der Ecke. Die Geometrie einiger Kunststoffteile hat die hohen Temperaturen in diesem Sommer nicht unbeschadet überstanden. Die letzten zwei Tage sind die Problemchen behoben worden und der Drucker ist wieder fit. Außerdem hat er ein kleines Upgrade spendiert bekommen. Dabei ist nicht nur die Firmware auf den aktuellen Stand gebracht worden, sondern auch die Hardware von Grund auf erneuert worden.

Bei 40° im Schatten sind PLA
Teile nicht sonderlich stabil

Die Tr 10×2 Gewindespindel ist schon seit einer Weile verbaut. Dazu habe ich die Spindel erhitzt und in das Standard Zahnrad der 5mm Achse geschmolzen. Dabei habe ich darauf geachtet, dass alles noch rotationssymetrisch geblieben ist. Die Trapezgewindemutter habe ich dann anstelle der originalen Halterung am Auslegerarm befestigt und die Mutter darin festgeklebt.

Ein Anbieter in England bietet für den Ormerod den X-Ausleger und den Druckbetthalter in Aluminium Ausführung. Beides zusammen ist für 100€ zu haben und eine wertvolle Erweiterung für den Drucker.

Zwei von drei Extrudern am Werk

Das Diamond Hotend ist eine geniale Entwicklung für den Druck mit mehreren Farben. Bei einem Druck mit mehreren Extruderdüsen ist es immer schwierig die nicht aktiven Düsen davon abzuhalten zu tropfen. Weiterhin sind die Düsen meistens auf der gleichen Höhe wie die gerade aktive und kratzen somit über die aktuell gedruckte Oberfläche. Das Diamond Hotend löst dieses Problem, indem die maximal drei Filamente über eine gemeinsame Düse gedruckt werden. Alle drei Fäden werden über separate Heatbreaks in eine zentrales Hotend geführt. Das klingt erst mal nicht ganz so einfach und auf den ersten Blick ist der Druckkopf sehr groß und schwer. Auf den zweiten Blick ist das weiterhin so, doch das Potenzial mit bis zu drei verschiedenen Farben drucken zu können ist die Mühe wert, die es kostet den Drucker umzubauen.

Mit dem G-Code Befehl M570 kann der Timeout für das Hotend hochgesetzt werden. Denn das ist jetzt wesentlich größer als vorher und somit braucht es länger um heiß zu werden.

M570 S300 ; Max. 300 Sekunden Aufheizzeit, sonst Heizerfehler

Leider sind hier nur drei verschiedene Farben aus dem gleichen Material möglich zu drucken und nur sehr schwer verschiedene Materialien, da alle Filamente mit der gleichen, oder ähnlichen Temperatur gedruckt werden müssen. Wie genau die Reinigung der gemeinsamen Düsenkammer funktioniert ist noch zu zeigen. Im Moment sieht es so aus als würden innerhalb weniger Zentimeter das alte Filament komplett mit der neuen Farbe ersetzt. Wie sich das mit deutlichen Farbunterschieden bemerkbar macht ist auch noch zu beurteilen.

Dank dc42’s RepRapFirmware Fork ist das Anlegen von mehreren Werkzeugen mit unterschiedlichen Extrudern, aber gleichem Heizer sehr einfach. In der Konfigurationsdatei kann ein Werkzeug einfach hinzugefügt werden.
M563 P0 D0 H1     ; Werkzeug T0 mit Motor 0 nach X, Y, Z, mit Heizer 1
G10 P0 S200 R100  ; 200° Aktiv, 100° Standby
M563 P1 D1 H1     ; Werkzeug T1 mit Motor 1, mit Heizer 1
G10 P1 S200 R100  ; 200° Aktiv, 100° Standby
M563 P2 D2 H1     ; Werkzeug T2 mit Motor 2, mit Heizer 1
G10 P2 S200 R100  ; 200° Aktiv, 100° Standby
M563 P3 D0:1:2 H1 ; Werkzeug T3 mit Motor 0,1,2, mit Heizer 1
G10 P3 S200 R100  ; 200° Aktiv, 100° Standby
M92 E210:210:210  ; 210 Steps pro mm für beide Extruder Motoren 
Ebenso können verschiedene Extruder teilweise zur Mischung von Materialen angesteuert werden. Dafür kann in der Software ein Werkzeug mit mehreren Extruder Motoren angelegt werden. die Mischverhältnisse werden Prozentual angegeben. 
M567 P3 E0.2:0.6:0.2 ; Mische 20% E0, 60% E1 und 20% E2 für Tool 3
Wie das mit dem Diamond Hotend zusammenarbeitet, wird sich zeigen.