TD-free! More fun?

Recently, I took you along on my journey with the TD1 from Ajax3D, sharing both the ups and downs of using it with HueForge.

Meanwhile, Mawoka thought, “There must be an easier and cheaper way!” And voilà, the TDfree was born!

What can I say? He nailed it! Even though I built the TD1 myself to save money, there were minor hiccups that raised costs and dampened my spirits. Breaking the second or third display because they’re so fragile isn’t fun. In total, I spent way more than the estimated €15 for materials and €10 for a Patreon license.

A Little Disclaimer: I’ve known Mawoka, aka Marlon, for a while and was aware of his project. So, I asked if I could review his TDfree for this blog. He agreed and, knowing my financial situation, offered me the board at cost plus shipping.

You might think: “Advertising? On this blog? Meh!” Yeah, maybe – but hey, I would have bought his board eventually and reviewed it here anyway.
So, let’s dive into this with an open mind!

Okay… enough preamble—let’s get to the star of the show: the TDfree.

TDfree

As the name suggests, it’s a FOSS version of a device used to measure the TD value of your filaments.

What’s the TD Value? It’s basically how much light can pass through a filament. The higher the value, the more light shines through, allowing you to print colorful images with HueForge.

HueForge Bild - Angus Young von AC/DC auf der Bühne stehend und den Zeigefinger Richtung Publikum zeigend.
HueForge Picture / Angus Young

There’s also a self-source version (V2) of TDfree that’s cheaper and easier to solder and assemble than Ajax3D’s version.

Today we’re focusing on version 3 of TDfree. It comes as an assembled board that you can house in a printed case or as a complete small box.

I chose the board to show you all the steps needed to make it operational. The PCB arrived quickly at my home and looked great right out of the box.

Mawoka aims to reduce waste by using small old anti-static bags for electronic components—a move I really appreciate!


A neat little feature: There’s a 3D-printed “bend protection” on the back of the board made from PHA to keep cables safe during transport.

A QR code was included with the board that led me to an installation guide.
Clear instructions with pictures are showing you exactly what to do.

The case for TDfree is available on Printables. You need to print the two small parts in black where the filament passes through; however, you can customize the case colors as you like. For simplicity, I printed them in black PETG.

black case and inner parts and a violet lid with
case of the TDfree

I added the text “TD.free” on the lid, which you can find as a remix on Printables.

Assembly was super easy! I had to remove a tiny bit of material from the PCB with a deburrer to fit it perfectly into the case—no big deal at all!

Before final assembly, check if your filament slides smoothly; adjustments may be needed due to printing inaccuracies.

Now that everything’s assembled, it’s time to power up TDfree using a standard USB-C cable with 5V from any modern phone charger.

A WiFi access point named “TD-free” appears, allowing connection with your laptop or phone. If not redirected automatically, enter: http://192.168.17.1

Screenshot des AccessPoints
TDfree Access Point Website

You can now determine your filaments’ TD values via AccessPoint or input your WLAN data in “Wifi-Config,” connecting TDfree to your network for local access.

I noticed differences between Ajax3D’s TD1 values and those from TDfree – an average deviation of -0.8.
Not an issue if you use either device exclusively but worth noting if using both devices simultaneously in HueForge or Spoolman (if applicable).

Update: With firmware 0.2.0, you can set an offset so that TDfree and TD1 values don’t differ significantly after reporting my finding to Mawoka.

So, what would I chose if I would not know anythig about those TD-determing devices and just want to start making cool 3D prints at home?

Short answer: I choose the TDfree

Long answer: It’s cheaper, smaller, easier to assemble yet reliable in determining relative TD values; its firmware is FOSS available on GitHub—simple solutions are my jam!

Moreover: no need for Patreon registration for a €10 “donation” for a tied license bound to the unique serial number of the Rpi2040 like with TD1 – not fond of such practices!

Some may miss the dispay or the HueForge integration – but personally dislike those mini-OLED displays.
Furthermore, the TD1’s color recognition doesn’t always work well enough, so I’ve switched to using eyeballing to determine the colors of my filament in HueForge anyway.


Update 2: Mawoka is working meanwhile with the HueForge developer; an integration into HueForge is expected soon though no exact ETA yet—exciting news indeed!

Consider supporting someone providing real value within HueForge community by purchasing Mawoka’s fully assembled board (€24 plus shipping) or a complete unit with case at fair price!

Thank you for reading!

PS: If financially constrained like me, contact Mawoka via shop email – you might find a solution enabling cool HueForge prints!

TDfree – weniger basteln – mehr Spaß?

Ich habe Euch letztens ja auf meine Reise zum TD1 von Ajax3D mitgenommen und von den Problemen und den Vorteilen dieses Geräts im Bezug auf HueForge berichtet.

Parallel zur Entwicklung von Ajax3D hat Mawoka sich gedacht: „Das muss doch noch einfacher und vor allem günstiger gehen!“ So entstand der TDfree!

Tja, was soll ich sagen? Damit liegt er richtig, denn auch wenn ich den TD1 selbst gebaut habe und dadurch ordentlich Kosten einsparen konnte, gab es hier kleinere Probleme, die den Preis erhöht und meine Laune gedämpft haben. Denn wenn man sich das zweite oder dritte Display schrottet, weil die einfach so unglaublich empfindlich sind, dann macht das echt nur wenig Spaß – und insgesamt hab ich inklusive Lizenz doch deutlich mehr als die veranschlagten 15€ Material und 10€ für die Lizenz via Patreon ausgegeben.

Disclaimer: Da ich Mawoka schon eine Weile kenne und von seinem Vorhaben wusste, habe ich gefragt, ob ich seinen TDfree für diesen Blog besprechen kann.
Er sagte ja und da er weiß, dass ich finanziell nicht so gut dastehe, hat er mir die Platine zum Selbstkostenpreis zuzüglich Versand überlassen.

Ihr denkt jetzt sicher: „Soso… Werbung? Hier auf dem Blog? Meh!“
Ich sage: „Ja natürlich kann man es als Werbung sehen, aber ich hätte so oder so irgendwann seine Platine gekauft und hier im Blog besprochen.“
Von daher hoffe ich, dass Ihr genau so unvoreingenommen an diesen Artikel heran geht, so wie ich es mache.

Okay… das war ein langes Vorwort – kommen wir zum Wesentlichen:
dem TDfree

Wie der Name schon fast verrät, handelt es sich um eine FOSS Variante eines Gerätes, mit dem man den so genannten TD-Wert von Filamenten bestimmen kann.

Was ist der TD-Wert? Das ist im Prinzip der Wert, den jedes Filament hat, wenn es um Lichtdurchlässigkeit geht. Je höher der Wert, desto mehr Licht kann durch das Filament scheinen und letztendlich kann man mit dem Programm HueForge tatsächlich mehrfarbige Bilder drucken. Unterschiedliche Schichtdicken werden hier für Abstufungen der jeweiligen Filamentfarbe genutzt.

Angus Young von AC/DC als dreifarbiger 3D-Druck

Beim TDfree gibt es ebenfalls eine Self-Source-Variante (V2), die einerseits deutlich günstiger ist als die Variante von Ajax3D, aber auch viel einfacher beim Löten und Zusammenbau.

Wir kümmern uns aber heute um die aktuelle Version 3 des TDfree. Diese kommt als bestückte Platine zu Euch nach Hause, wo Ihr einfach selbst noch das Gehäuse dazu drucken müsst, oder eben als fertige kleine Box.

Ich habe mich für die Platine entschieden, weil ich Euch sonst ja nicht alle Schritte zeigen kann, die es braucht, damit das Ding einsatzbereit ist.
Das PCB kam binnen kurzer Zeit bei mir Zuhause an und sah auf den ersten Blick gut aus.

Mawoka möchte möglichst viel Müll vermeiden, was ich sehr gut finde und verwendet einfach kleine alte Antistatikbeutel, wie sie für elektrische Kleinteile verwendet werden.

Eine kleine schwarze Platine, die mit einem kleinen ESP einer Diode und anderen kleinen Teilen bestückt ist.
TDfree PCB bestückt mit allen Teilen
Die Rückseite von der TDfree Platine, auf der in weiß ein Knickschutz für die zwei Kabel zum LED hin zu sehen ist.
Rückseite vom TDfree


Leider hatte Mawoka, der das Ganze ja auch nur als Kleinstunternehmer betreibt, leider gerade kein technisches Isolierband mehr da, so dass das mit dem Tesafilm doch ein bisschen Gefrickel war, das zu entfernen. Aber das sollte bei zukünftigen Besteller*innen nicht mehr vorkommen, hat er mir gesagt.


Was ich eine kleine, aber richtig gute Sache finde:
Auf der Rückseite der Platine ist ein selbst gedruckter „Knickschutz“ aus PHA, damit das Kabel zum LED-Modul während des Transports keinen Schaden nehmen kann.

Neben der Platine lag noch ein QR-Code bei, der mich dann auf die Installationsanleitung geführt hat.

Diese ist detailreich und auf den Bildern dort sieht man genau, worauf man achten sollte.

Das Gehäuse für den TDfree ist auf Printables zu finden und man muss zwingend die beiden kleinen Teile, wo das Filament durch das Gehäuse geführt wird, in schwarz drucken – Gehäuse und Cover könnt Ihr aber farblich gestalten wie ihr mögt.
Ich habe hier der Einfachheit halber den unteren Teil des Gehäuses und die beiden Kleinteile im schwarzen PETG gedruckt.

Den Deckel habe ich mit dem Schriftzug „TD.free“ versehen, welchen Ihr als Remix auch auf Printables finden könnt.

Der Zusammenbau gestaltete sich super einfach. Ich musste am PCB ein ganz kleines bisschen Material mit einem Entgrater abnehmen, damit die Platine auch perfekt in das Gehäuse passt.
Das ist überhaupt nicht schlimm und wir sprechen hier von ein paar µm und an den Seiten ist mehr als genug PCB-Material, dass die vielleicht 0.02mm weniger überhaupt nicht ins Gewicht fallen. Aber ich wollte es erwähnen, weil Druckungenauigkeiten immer mal vorkommen können und es nicht an der Platine liegt, sondern an meinem Druck des Gehäuses.


Es bietet sich auch an, dass Ihr vor dem finalen Zusammenbau einmal prüft, ob durch den „Schlitten“ Euer Filament auch problemlos hin und her zu schieben ist. Hier muss/sollte eventuell auch ein wenig nachgearbeitet werden. Druckungenauigkeiten… ihr wisst schon!

So… da nun alles zusammen gebaut ist, wird es Zeit den TDfree das erste Mal mit Strom zu versorgen. Das macht man mit einem normalen USB-C Kabel und 5V, wie es aus jedem Ladegerät für Mobiltelefone der heutigen Zeit kommt.

Daraufhin spannt sich ein Wifi-AccessPoint mit dem Namen „TD-free“ auf, mit dem man sein Laptop oder Handy verbinden kann.

Falls ihr nicht direkt auf die Portalseite gelenkt werdet, gebt als Adresse: http://192.168.17.1 ein und dann solltet ihr folgendes Bild sehen:

TDfree AccessPoint WebUI

Das war es auch schon… ihr könnt nun entweder über den AccessPoint den TD-Wert Eurer Filamente bestimmen, oder über die „Wifi-Config“ die Daten von Eurem eigenem WLAN eingeben dann verbindet sich der TDfree mit Eurem WLAN und stellt die Webseite, die ihr oben gesehen habt in Eurem lokalen Netz bereit. Hierzu muss man dann im Router schauen, welche IP der TDfree erhalten hat. Das klappte bei mir ganz hervorragend und so konnte ich herrlich unkompliziert die Werte von diversen Rollen Filament nehmen.

Was mir aber schnell aufgefallen ist: Die Werte vom TD1 von Ajax3D und dem hier getesteten TDfree unterscheiden sich.
Ich habe hier im Durchschnitt eine Abweichung von -0.8

Das ist prinzipiell nicht schlimm, wenn ich davon ausgehe, dass ihr entweder einen TD1 habt oder eben einen TDfree – und nicht wie ich beide Geräte.

Falls doch, solltet ihr aber im HUEForge und im Spoolman, sofern ihr den verwendet, irgendwo markieren, dass ihr den TD-Wert vom TDfree oder TD1 genommen habt.
Also zum Beispiel im Filamentnamen; „black-matte-TDfree“ oder so – damit ihr in HueForge nicht versehentlich beide Werte untereinander mixt. (Ich hoffe ihr versteht, worauf ich hinaus möchte)

Update: mit der aktuellen Firmware 0.2.0 gibt es die Möglichkeit ein Offset einzustellen, damit sich die Werte vom TDfree und dem TD1 nicht gravierend unterscheiden. Das hatte Mawoka überlegt, nachdem ich ihm von der von mir entdeckten Differenz berichtet habe.

Die Ergebnisse sind dann aber absolut vergleichbar. Wie ihr hier sehen könnt:


Zusammengefasst, verrate ich Euch, welches der beiden Geräte ich lieber mag:

Kurze Antwort: den TDfree

Lange Antwort: er ist deutlich günstiger, kleiner, einfacher im Zusammenbau, genauso Zuverlässig in der Bestimmung der relativen TD-Werte und die Firmware ist Open Source und auf Github komplett einsehbar. Ich mag FOSS – ich mag es simpel.

Außerdem braucht man sich nicht auf einer Plattform wie Patreon zu registrieren, um dann 10€ “zu spenden”, damit man eine Lizenz bekommt, welches an die Seriennummer des TD1 gebunden ist.
Ja, ich hab das hinter mir, aber wirklich glücklich finde ich das Vorgehen beim TD1 eben nicht.

Einigen wird vermutlich das Display und die Schnittstelle zu HueForge fehlen, aber ich persönlich stehe mit den Mini-OLED-Displays auf Kriegsfuß und auch der zusätzliche Farbsensor im TD1 liefert auch nicht immer den richtigen Wert, wie ich im Laufe der Zeit feststellen musste. Da kann ich jetzt auch, wie zuvor, einfach die Farbe in HueForge per Hand bestimmen.

Update 2: Mawoka steht mit dem Entwickler vom HueForge in Kontakt und es sieht ganz danach aus, dass es in absehbarer Zeit eine Integration in HueForge geben wird. Ein genaues Datum gibt es zwar noch nicht, aber es ist toll zu wissen, dass daran auch gearbeitet wird.

Falls Ihr Euch also vorstellen könnt, einen ambitionierten Menschen, der einen echten Mehrwert für die HueForge-Community leistet, zu unterstützen, dann besorgt Euch zu einem in meinen Augen sehr fairen Preis von 24€ plus Versand die fertig bestückte Platine oder für einen kleinen Aufpreis den fertig zusammen gebauten TDfree von Mawoka

PS: Ich habe mit Mawoka gesprochen und falls es Menschen unter Euch gibt, die wie ich finanziell nicht ganz so gut dastehen, dann schickt ihm gerne eine Email an die Adresse, die im Shop zu sehen ist – eventuell findet ihr eine gute Lösung, so dass Ihr auch coole Bilder mit HueForge drucken könnt.

Vielen Dank fürs Lesen!

PPS: English version will be ready soon!

Einen TD-1 für Hueforge bauen – (Teil2)

Finally, der zweite Teil der Serie:
Wir haben nun also wochenlang auf die Lieferung aus… Deutschland… und oder China gewartet, um unsere Bauteile beisammen zu haben. Fein.

Während dessen haben wir uns mal mit dem Schaltplan vertraut gemacht, und festgestellt, dass wir nun über 30 Lötpunkte zu setzen haben.
Hier findet Ihr die komplette Anleitung, Firmware, Schaltplan etc.

Der Schaltplan
Der Schaltplan

Für mich als komplett ungeübte und unbegabte Person war das schon eine Herausforderung, denn ich habe während ich gewartet habe schon mal das Gehäuse herunter geladen und ausgedruckt.

Diese ganzen Kabel und das drum herum soll also in ein relativ kleine Gehäuse. Das wird spannend.

Löthilfe für einzelene LEDs
Löthilfe für einzelne LEDs

Besonders schwer war für mich diese einzelnen LEDs “ordentlich” zu verlöten.
Ich habe hierzu ein weiteres Modell herunter geladen und ausgedruckt – muss aber dazu sagen, dass ich eher dieses Modell hier hätte nehmen sollen. Das hätte einiges einfacher gemacht. Und falls es eine Person unter Euch geben sollte, die es noch weiter entwickeln würde, um die genauen Kabellängen zu haben, dann wäre ich sehr dankbar.

zwei einzelne LEDs in einem schwarzen Gehäuse
zwei einzelne LEDs in einem schwarzen Gehäuse

Letztendlich tasten wir uns aber so Stück für Stück an das fertige Produkt heran, auch wenn es hier leider sehr mies aussieht (im finalen Sensor musste ich manche Lötstellen nacharbeiten und LEDS ersetzen bis es wirklich funktioniert hat)

Ein wirklich kleines OLED-Display von hinten in einem schwarzen Gehäuse
Ein wirklich kleines OLED-Display von hinten in einem schwarzen Gehäuse

Eines der größten Probleme war allerdings das winzige OLED-Display. Diese Dinger sind, je nachdem wo ihr sie her bekommt, minimal anders und dadurch, dass ihr das löten und in ein kleines Gehäuse zwängen müsst, sind mir 4 oder 5 Displays alleine durch meine Unvorsichtigkeit kaputt gegangen.

Aber: Ich habe dem Entwickler vom TD-1 gebeten für noobs wie mich den Abstand im Inneren des Gehäuses zu vergrößern, damit auch schlecht gelötete Kabel eine Chance haben da rein zu passen, ohne die hauchdünnen Scheiben des Displays so sehr unter Spannung zu setzen, dass sie brechen.

Das hat er dankenswerter Weise im aktuellen Design berücksichtigt und ich drücke Euch die Daumen, dass Euch das Drama erspart bleibt.

wildes buntes Kabel-Gewusel in einem Gehäuse
wildes buntes Kabel-Gewusel in einem Gehäuse

Inzwischen nähern wir uns immer mehr dem an, was einem fertigen TD-1 ähnelt… die Kabel werden nach und nach auf die richtige Länge gebracht und dann an den RPi 2040 angelötet:

Achtung: Es scheint so, dass es in China manche Hersteller gibt, die keine originalen RPi 2040 Chips verwenden, so dass immer die gleiche Seriennummer auf dem Board hinterlegt ist.

Das ist für einfache Projekte vielleicht nicht weiter wild, aber da wir hier eine Lizenz vom Entwickler brauchen, die an diese Seriennummer gekoppelt ist, wird das zu einem großen Problem.

Hier gibt es weitere Informationen zu dem Problem: KlickiKlacki

Daher schlage ich vor, dass Ihr den RPi zunächst über ein Breadboard oder ohne zu löten mit der Firmware bespielt und dann das entsprechende Script aus der Anleitung vom Entwickler laufen lasst um zu sehen, ob diese Seriennummer heraus kommt: 4250305031373311 – falls ja, dann habt ihr eine dreiste Kopie eines Rpi2040 erhalten.

Ich wurde dann irgendwann nach viel Schwitzen, Fluchen und Löten dann auch mal fertig und habe dann das erste Mal den fertigen TD-1 zum Leben erweckt.

Fertiger TD-1 ohne installierte Lizenz
Fertiger TD-1 ohne installierte Lizenz

Nachdem wir dann für einen Monat Patreon bei AJAX-3D abonniert haben und ihm eine Info haben zukommen lassen, dass wir gerne eine Lizenz für die $Seriennummer haben möchten, kam keine 24 Stunden später eine Mail mit den entsprechenden Daten. Das der Weg nur über Patreon offen steht ist für einige verständlicherweise schade, aber es ist halt der Weg, der Euch ne Menge Geld einsparen lässt und ich persönlich fand das fair.

Ich habe nun also angefangen die entsprechenden TD-Werte meiner Filamente in Hueforge zu hinterlegen – die integrierte Schnittstelle macht das alles super einfach. Es werden auf dem TD-1 auch Hex-Werte für die Farbe des Filaments angezeigt. Ich persönlich sehe da noch Optimierungspotential, denn bei mir passte das nicht immer… ich habe dann manchmal einfach Pi Mal Auge [sic!] einen Wert gewählt indem ich das Filament gut beleuchtet neben einer Farbskala an meinem Monitor gehalten habe.

Man muss dabei aber auch im Hinterkopf behalten, dass dieser Farbsensor nur ein paar Euro kostet und es der Simplizität des ganzen Geräts geschuldet ist, dass es da Fehlmessungen geben kann.

Mit Zwei- oder mehrfarbigem Filament klappt das eh nicht, aber das hätte ich Euch sicher nicht sagen müssen.

Die TD-Werte zu bestimmen klappt aber richtig gut und klappt extrem schnell.

Mein erster Druck mit den ermittelten Werten
Mein erster Druck mit den ermittelten Werten

Insgesamt war das alles aber echt eine spannende Erfahrung. Ich habe gelernt ein kleines bisschen besser zu löten.
Und ich finde, dass sich der erste Druck, den ein lieber Freund meiner Frau bekommen hat, schon sehr gelohnt hat. Ich bin zumindest sehr zufrieden damit.

In diesem Sinne. Habt Spaß. Und happy printing.

Einen TD-1 für Hueforge bauen – (Teil1)

Vor einiger Zeit hat mich @JoeMuc im Fediverse auf HueForge aufmerksam gemacht. Eine neue Art Bilder in 3D zu drucken. Es ist nicht so aufgebaut wie bei klassischen Litophane, sondern eine eigens erstelle Software von Steve Lavedas, einem ziemlich pfiffigen Typen.

Transform your 2D images into stunning, photo-like 3D prints
HueForge is a software that uses a technique called filament painting to make detailed prints without requiring a multi-material 3D printer.”

Das Ganze kann dann so aussehen:

Ein Eichkat3r - halbwegs komplett in einem Bilderrahmen
Ein Eichkat3r – halbwegs komplett in einem Bilderrahmen


Hier hat Joe auch schon darüber geschrieben: KlickMich

Der so genannte TD-1, dessen Idee von Ajax kam, ist ein kleines Gerät, welches mit Sensoren ausgestattet ist um die so genannte Transmission Distance zu bestimmen. Dieser Wert spiegelt die Fähigkeit Licht durch 3D Druck Filament scheinen zu lassen wider.
Das klingt erstmal schräg, aber wenn man weiß, dass HueForge darauf angewiesen ist, dann ergibt es Sinn. Denn schwarzes Filament schimmert ja noch durch weißes Filament hindurch, wenn es hauchdünn drüber gedruckt wird.

Solche Bilder sind manchmal nur 1.24mm dick. Das muss man sich echt mal vorstellen. Eine Schicht ist dann dabei oft nur 0.08mm dick. Und das kann man zuhause herstellen. WOW!

Weißes Filament lässt sehr viel mehr Licht durch als schwarzes und auch wenn HueForge mit einer großen Datenbank von Filamenten und deren TD-Werten daher kommt, ist es elementar zu wissen, dass TD bei der Herstellung irgendwie eine Rolle spielt. Das heißt, dass z.B. Bambulab Basic “Jade White” bei der einen Spule einen TD-Wert von 5 hat, aber bei der nächsten Spule aus der gleichen Bestellung 4.4. (selbst innerhalb einer Spule kann sich der Wert verändern, aber das führt dann doch zu weit)

Letztendlich ist es aber immer gut zu wissen, was man wirklich für ein Filament zuhause hat mit dem man “malen” möchte.

Ajax hat letztendlich ein Gerät entwickelt womit es sehr einfach ist den entsprechenden TD-Wert zu bestimmen.
Und da einerseits nicht jeder viel Geld für ein fertiges Produkt, oder ein PCB-Set hat, wo man sich nur noch das Gehäuse drucken und die PCBs löten muss, was man auch importieren müsste, hat er auch einen Weg zum Self-Sourcing ermöglicht.

Das heißt:

  • Eine Liste mit den benötigten Sensoren usw.
  • ihr druckt das Gehäuse zuhause selbst
  • ihr bastelt und lötet das alles selbst zusammen
  • ihr installiert die Software auf das “Mainboard”
  • ihr “aboniert” für einen Monat Ajax’ Patreon für 10€, um eine Lizenz zu erhalten

Alles in allem eigentlich eine faire Sache, wenn man bedenkt, dass ein fertiges Gerät 80€ plus Zoll und Import, ein PCB-Set um die 40€ und die Selbstbauvariante (wenn man keine Fehler macht) ca. 20-25€ inkl. Lizenz kostet.

Ich persönlich würde auch immer die Selbstbau-Option bevorzugen, denn einerseits lernt ihr was und zum anderen könnt ihr, wenn irgendwas schief läuft, einfach eine neue LED oder ein neues Display verwenden.

Die PCB-Variante scheint, auch wenn es gut durchdacht ist, gerade beim Display eine kleine Schwachstelle zu haben. Diese feinen OLED-Displays brechen super leicht und auch ich habe 4 Stück “verloren” bevor mein TD-1 wirklich lief.

Hier kommt auch schon die Einkaufsliste – alle Sensoren usw. unbedingt ohne angelötete Stiftleiste organisieren:

  • Microcontroller – RP2040-Zero by WaveShare
  • RGB-Sensor – TCS3472
  • Luminosity Sensor – TSL2561
  • Display – SSD1306 0.91 OLED
  • 2x NeoPixels- SK6812 RGBNW (ihr braucht zwar nur zwei, aber bestellt einfach gerne mal 10)
  •  Schalter – 6x6x4.3mm
  • 1x Ball Bearing – 7mm (kann man kaum einzeln kaufen, sind aber nicht teuer)
  • Rainbow Ribbon Cable (davon hat man ja vermutlich eh schon einiges zuhause)
  • 4x Schrauben – M3x6mm BHCS
  • 2x Schraubenn – M3x10mm BHCS

Die NeoPixels sehen so aus – bestellt gerade 10 oder mehr, wenn ihr Euch nicht sicher seid, denn die haben mich neben den Displays, wovon ich ja auch einige während der Herstellung kaputt gemacht habe echt Nerven gekostet!

2x NeoPixels- SK6812 RGBNW

Dann noch ein Lötkoblen und ruhige Hände und schon kann es los gehen.

Demnächst schreibe ich dann darüber, wie ich die Teile dann zusammen “geklöppelt” habe und wie dann der erste Druck aussah.

Wahnsinnig spannender Cliffhanger, oder? ODER?

Update: in einer ersten Version dieses Beitrags habe ich einen Fehler gemacht und HueForge, welches von Steve entwickelt wird, Ajax zugeschrieben.

Danke vielmals an @Mawoka für den Hinweis.

[Teil 2] Spoolman – Klipper Installation

English below:

Die Installation von Spoolman auf dem Raspberry (oder MKS-Mainboard), wo Klipper drauf läuft ist so simpel wie so viele andere Klipper-Plugins – es wird lediglich ein auf Debian basiertes Image vorrausgesetzt.

sudo apt-get update && \
sudo apt-get install -y curl jq && \
mkdir -p ./Spoolman && \
source_url=$(curl -s https://api.github.com/repos/Donkie/Spoolman/releases/latest | jq -r '.assets[] | select(.name == "spoolman.zip").browser_download_url') && \
curl -sSL $source_url -o temp.zip && unzip temp.zip -d ./Spoolman && rm temp.zip && \
cd ./Spoolman && \
bash ./scripts/install_debian.sh

So wird es zumindest in der Anleitung beschrieben.

Ich hingegen habe ich mich dazu entschlossen Spoolman auf einem anderen Host mit Hilfe von Docker zu installieren, da ich eh eine VM in meinem Netzwerk habe, die diverse Docker-Container bereit stellt.

Ich wiederhole einfach nur noch schnell einmal die Grundinstalltion, wie ich sie auch schon im Teil 1 von der Spoolman-Anleitung beschrieben habe.

Die entsprechende docker-compose.yml sieht dann in etwa so aus:

version: '3.8'
services:
  spoolman:
    image: ghcr.io/donkie/spoolman:latest
    restart: always
    volumes:
      # Mount the host machine's ./data directory into the container's /home/app/.local/share/spoolman directory
      - type: bind
        source: ./data # This is where the data will be stored locally. Could also be set to for example `source: /home/pi/printer_data/spoolman`.
        target: /home/app/.local/share/spoolman # Do NOT change this line
    ports:
      # Map the host machine's port 7912 to the container's port 8000
      - "7912:8000"
    environment:
      - TZ=Europe/Berlin# Optional, defaults to UTC

Wenn man also den Container installiert und am Laufen hat, dann reicht eine einfache Änderung der moonraker.conf in Klipper um Spoolman hinzuzufügen:

# moonraker.conf

[spoolman]
server: http://192.168.10.123:7912
#   URL to the Spoolman instance. This parameter must be provided.
sync_rate: 5
#   The interval, in seconds, between sync requests with the
#   Spoolman server.  The default is 5.

Und in die printer.cfg wird dann noch folgendes ergänzt:

# printer.cfg

[gcode_macro SET_ACTIVE_SPOOL]
gcode:
  {% if params.ID %}
    {% set id = params.ID|int %}
    {action_call_remote_method(
       "spoolman_set_active_spool",
       spool_id=id
    )}
  {% else %}
    {action_respond_info("Parameter 'ID' is required")}
  {% endif %}

[gcode_macro CLEAR_ACTIVE_SPOOL]
gcode:
  {action_call_remote_method(
    "spoolman_set_active_spool",
    spool_id=None
  )}

Und das war es schon – nach einem Neustart von Klipper sieht es dann so aus:

Es gibt sogar eine Integration in Home Assistant um sich dort auch die Spulen anzeigen zu lassen.

Die Einrichtung ist relativ einfach und quasi selbsterklärend.
Hier gibt es die entsprechenden Infos: Home Assistant Spoolman

PS: Damit man auch die QR Codes, die man mit Spoolmann erstellt und ausgedruckt hat lesen kann, braucht es zwingend eine https-Verbindung zu Spoolman. Das ist seitens der Browserhersteller wie Mozilla oder Google so vorgegeben.

Ich habe das ganz einfach per Nginx Proxy Manager gelöst in dem ich eine neue Subdomain angelegt habe und diese dann per Letsencrypt mit einem SSL-Zertifikat ausgestattet habe.
Aber nun ist Spoolman offen aus dem Internet erreichbar?
Ja, aber mit Hilfe einer Access List (z.B. local-only) im Nginx Proxy Manager und der entsprechenden Einstellung bei der Subdomain, dass diese Access List benutzt werden soll, habe ich so eine HTTP-Auth Passwortabfrage eingerichtet und nur Personen mit entsprechendem Passwort kommen an das Webinterface von Spoolman.

@maxheadroom hat das aber auch irgendwie in seinem Traefik-Container lösen können und schreibt hier darüber: Klick

English version:

The installation of Spoolman on the Raspberry Pi (or MKS mainboard) running Klipper is as simple as so many other Klipper plugins – it only requires a Debian based system.

sudo apt-get update && \
sudo apt-get install -y curl jq && \
mkdir -p ./Spoolman && \
source_url=$(curl -s https://api.github.com/repos/Donkie/Spoolman/releases/latest | jq -r '.assets[] | select(.name == "spoolman.zip").browser_download_url') && \
curl -sSL $source_url -o temp.zip && unzip temp.zip -d ./Spoolman && rm temp.zip && \
cd ./Spoolman && \
bash ./scripts/install_debian.sh

At least that’s how it’s described in the instructions.

However, I decided to install Spoolman on another host using Docker, as I already have a VM in my network that provides various Docker containers.

I’ll just quickly repeat the basic installation as I described in part 1 of the Spoolman guide.

The corresponding docker-compose.yml then looks something like this:

version: '3.8'
services:
  spoolman:
    image: ghcr.io/donkie/spoolman:latest
    restart: always
    volumes:
      # Mount the host machine's ./data directory into the container's /home/app/.local/share/spoolman directory
      - type: bind
        source: ./data # This is where the data will be stored locally. Could also be set to for example `source: /home/pi/printer_data/spoolman`.
        target: /home/app/.local/share/spoolman # Do NOT change this line
    ports:
      # Map the host machine's port 7912 to the container's port 8000
      - "7912:8000"
    environment:
      - TZ=Europe/Berlin# Optional, defaults to UTC

So if you have the container installed and running, a simple change to moonraker.conf in Klipper is enough to add Spoolman:

# moonraker.conf

[spoolman]
server: http://192.168.10.123:7912
#   URL to the Spoolman instance. This parameter must be provided.
sync_rate: 5
#   The interval, in seconds, between sync requests with the
#   Spoolman server.  The default is 5.

And the following is then added to printer.cfg:

# printer.cfg

[gcode_macro SET_ACTIVE_SPOOL]
gcode:
  {% if params.ID %}
    {% set id = params.ID|int %}
    {action_call_remote_method(
       "spoolman_set_active_spool",
       spool_id=id
    )}
  {% else %}
    {action_respond_info("Parameter 'ID' is required")}
  {% endif %}

[gcode_macro CLEAR_ACTIVE_SPOOL]
gcode:
  {action_call_remote_method(
    "spoolman_set_active_spool",
    spool_id=None
  )}

And that’s it – after restarting Klipper, it looks like this:

There is even an integration in Home Assistant to display the reels there too.

The setup is relatively simple and virtually self-explanatory.
You can find the relevant information here: Home Assistant Spoolman

PS: In order to be able to read the QR codes that you have created and printed with Spoolman, an https connection to Spoolman is required. This is specified by browser manufacturers such as Mozilla or Google.

I solved this quite simply using Nginx Proxy Manager by creating a new subdomain and then equipping it with an SSL certificate using Letsencrypt.
But now Spoolman is openly accessible from the Internet?
Yes, but with the help of an access list (e.g. local-only) in the Nginx Proxy Manager and the corresponding setting in the subdomain that this access list should be used, I have set up an HTTP-Auth password query and only people with the corresponding password can access the Spoolman web interface.

However, @maxheadroom has also been able to solve this somehow in his Traefik container and writes about it here: Click