Sonntag, 1. November 2026

Stepcraft CNC mit Raspberry PI steuern

Motivation

Wie in diesem Blogpost (Wow, 12 Jahre her) schon beschrieben, verwende ich LinuxCNC, um meine Stepcraft Fräse zu betreiben.

Mittlerweile habe ich meine D1-420 durch eine D3-840 ersetzt, um etwas größere Dinge auch fräsen zu können.

Nun ergeben sich aber zwei Probleme:

  • Die D3-840 verwendet Achtelschrittbetrieb und kann die Achsen viel schneller bewegen, damit steigt die Anforderung an den "Schritterzeuger"
  • PCs mit eingebauter Parallelschnittstelle sind mittlerweile nicht mehr zu bekommen, bzw. schlicht aufgrund ihres Alters unzuverlässig.
  • Neuere Versionen von LinuxCNC funktionieren tendenziell schlechter mit (sehr) alter Hardware, gleichzeitig will ich ab und zu auch mal im Internet was nachschauen oder brauche eine ssh-Verbindung zu meinem Server. Mit sehr alten LinuxCNC-Versionen gibt es da Sicherheits-Probleme hinsichtlich der Zertifikate und verwendeten Verschlüsselungsmethoden; 
Daher hatte ich schon beim Erwerb der D3-840 den Plan, die Steuerung auf Raspberry Pi umzustellen. Im November 2025 konnte man einen 16GB PI für 200 Euro erwerben.

Direkte Verwendung der GPIO-Pins

Mein erster Ansatz war die direkte Verwendung der GPIO-Pins des Raspberry Pis, um die notwendigen Signale auf dem Parallelport auszugeben.

Ganz direkt geht das aber natürlich nicht, weil die GPIO-Signale des Pis auf 3V laufen, die TTL-Signale einer Parallelport-Schnittstelle aber mit 5V funktionieren. Also habe ich mir einen Parallel Port Hat zugelegt, der die Signale eben entsprechend umsetzen sollte.

Nur ist dieser Hat halt nicht für die Verwendung mit Stepcraft ausgelegt, es kam zu Problemen mit der Spannungsversorgung (Pi konnte nicht mehr starten, wenn die Fräse schon eingeschalten war). Das konnte ich dann zwar durch das Durchtrennen einer Signalleitung beheben und somit schon die Fräse etwas bewegen, aber nach jeweils kurzer Zeit war die Steuerung nicht mehr möglich bzw. sehr unzuverlässig, was auch nicht verwunderlich ist, schließlich ist ein Pi auch kein guter Echtzeit-Signalgeber.

Also musste ich diesen sehr einfachen Ansatz (der HAT kostet nur 30 € plus Versand) aufgeben.

Verwendung der Mesa 7c81 

Die 7c81 ist speziell für den Raspberry Pi ausgelegt, man kann den Pi direkt oben drauf montieren, und die GPIO-Steckerleiste mit dem Eingang der Karte verbinden. Mein Verbindungskabel war leider recht breit, sodass keine Abstandshalter mehr ordentlich Platz fanden.

Um den PI kühl zu halten, habe ich noch einen Armor Lite V5 Kühler oben draufgepackt und so sieht das ganze Paket dann aus:

In diesem Schritt geholfen haben dieser Thread im linuxcnc - Forum und dieses Video auf YouTube.

Bei der ganzen Bastelei habe ich es irgendwann geschafft, den SD-Kartenhalter vom Pi abzureißen, da kann ich nur empfehlen, besser aufzupassen, als ich es getan habe.

Ich war relativ rasch in der Lage, das 7c81 mittels SPI anzusprechen, sodass Befehle wie

cnc@stepberry:~$ mesaflash --device 7c81 --spi --addr /dev/spidev0.0 --readhmid 

zu brauchbarem Output führten.

Recht rasch musste ich dann aber erkennen, dass die Firmware-Pakete, die Mesa für den 7c81 anbietet, keine für Stepcrafts brauchbare Konfiguration anbieten.

Also habe ich mit mithilfe dieses Videos auf Youtube angesehen, wie man denn eine benutzerdefinierte Firmware für Mesakarten anfertigen kann. Das ist insofern nochmal eine besondere Herausforderung, weil die Entwicklungsumgebung dafür offenbar auch schon veraltet ist und für Windows als Oracle Virtual Box Image angeboten wird. Erst später habe ich erkannt, dass ich es vermutlich nativ unter Linux viel leichter gehabt hätte.

Letztlich habe ich dann aber das PIN_5ABOBx3D_57.vhd - File kopiert nach PIN_Stepcraft.vhd und für den P1 Ausgang des 7c81 so konfiguriert:

 

Nach erfolgreichem Übersetzungsvorgang durfte ich eine Datei namens TopGCSPIHostMot2.bit empfangen und sie noch in stepcraft.bin (Zur freien Verwendung, Haftung ausgeschlossen) umbenennen. 

Diese Datei wird nun (zunächst temporär, daher --fallback, später dann ohne diesen Parameter) mittels:

sudo mesaflash --device 7c81 --spi --addr /dev/spidev0.0 --fallback --write stepcraft.bin

sudo mesaflash --device 7c81 --spi --addr /dev/spidev0.0 --fallback --reload

auf die Mesakarte geschrieben und aktiviert. Das sieht im Terminal so aus:


Wenn ich danach mit

cnc@stepberry:~$ mesaflash --device 7c81 --spi --addr /dev/spidev0.0 --readhmid 

die Pin-Belegung auslese, kommt:

 IO Connections for P1+Serial -> 7C81_0
Pin#          I/O   Pri. func    Sec. func        Chan     Sec. Pin func   Sec. Pin Dir

P1-01/DB25-01   0   IOPort       None           
P1-02/DB25-14   1   IOPort       None           
P1-03/DB25-02   2   IOPort       StepGen          0        Dir/Table2      (Out)
P1-04/DB25-15   3   IOPort       None           
P1-05/DB25-03   4   IOPort       StepGen          0        Step/Table1     (Out)
P1-06/DB25-16   5   IOPort       None           
P1-07/DB25-04   6   IOPort       StepGen          1        Dir/Table2      (Out)
P1-08/DB25-17   7   IOPort       PWM              0        PWM             (Out)
P1-09/DB25-05   8   IOPort       StepGen          1        Step/Table1     (Out)
P1-11/DB25-06   9   IOPort       StepGen          2        Dir/Table2      (Out)
P1-13/DB25-07  10   IOPort       StepGen          2        Step/Table1     (Out)
P1-15/DB25-08  11   IOPort       StepGen          3        Dir/Table2      (Out)
P1-17/DB25-09  12   IOPort       StepGen          3        Step/Table1     (Out)
P1-19/DB25-10  13   IOPort       None           
P1-21/DB25-11  14   IOPort       None           
P1-23/DB25-12  15   IOPort       None           
P1-25/DB25-13  16   IOPort       None           
P5 3,6         17   IOPort       None           
P6 3,6         18   IOPort       None           


Danach musste ich PNCConf ausführen und die Konfiguration für Linux CNC erstellen. Nur leider kennt PNCConf natürlich meine benutzerdefinierte Konfiguration nicht.

Außerdem kennt es den Pi5 nicht, da muss man dann im .hal-File statt

loadrt hm2_rpspi...

loadrt hm2_spix...

hinschreiben, damit LinuxCNC überhaupt startet.

Da mit PNCConf kein Blumentopf zu gewinnen war, habe ich die .hal - Datei schlussendlich selber angepasst und durch Versuch und Irrtum herausgefunden, welchen DB25-Pins die einzelnen hm2_7c81.0.gpio.0XX Pins entsprechen:

  • gpio.000 ist wohl Pin 1 (Relais 1, benütze ich, um die Sperrluft einzuschalten)
  • gpio.013 entspricht Pin 10 (Werkzeuglängensensor)
  • gpio.014 entspricht Pin 11 (Not-Aus)
  • gpio.015 entspricht Pin 12 (Endschalter für X/Y/Z)

Nachdem alle Signale korrekt konfiguriert waren, habe ich für die Achsen sogar das Signal kontrolliert (mit einem Logic Pirate). Anschließend habe ich meine Stepcraft D1-420 angeschlossen.

Die gute Nachricht: Es funktioniert prinzipiell, die Achsen lassen sich bewegen, Not-Aus hat Funktion, der Längensensor spricht an.

Aber: Beim Fahren kommt es immer wieder zu "Stottern", man sieht wie die Bewegung der Achse unterbrochen wird. Zunächst dachte ich, der Grund könnte sein, dass auch die 7c81 keine 5V TTL-Signale erzeugt. Die Eingänge sind zwar 5V-tolerant, an den Ausgängen werden aber nur LVTTL Signale erzeugt. Da aber bei TTL und LVTTL ab 2.4V ein "high" Signal gilt, sollte es eigentlich klappen.

Ich habe daher Maßnahmen ergriffen: 

  • Stärkeres 5V Netzteil, das direkt an das 7c81 angeschlossen wird und den Pi mitversorgt.
  • Kürzeres Signalkabel vom Mesa Board zur Fräse 
  • Einen MESA 7i77ISOL galvanic isolator bestellt, um Fräse und Steuerung komplett zu trennen und so hoffentlich kein Rauschen mehr zu haben. Bei der Signalkontrolle mit dem Logic Pirate ist mir nämlich manchmal bei der fallenden Flanke auf dem Takt-Signal ein kurzer Anstieg auf benachbarten Leitungen (darunter auch die Richtungsleitung) aufgefallen

Das stärkere Netzteil und kürzere Signalkabel haben dann seine Wirkung gezeigt. Der galvanic isolator ist nicht ohne weiteres verwendbar, weil der (logischerweise) auf beiden Seiten eine Spannungsversorgung braucht und Stepcraft auf dem Haupt-Stecker aber nirgends die 5V bereitstellt.

Ein letztes Problem stellte dann noch die Steuerung der Frässpindel dar. Für diese muss ja über Parallelport Pin 17 ein PWM Signal geschickt werden, welches dann über  Sub-D-15-Pin 7 an die Steuereinheit weitergeschickt wird. Das hatte ich bei der Custom Firmware mitbedacht, entsprechend groß war meine Enttäuschung, dass die Spindel keinen Mucks tat.

Erst dachte ich wieder an die Spannungslevels (LTTL vs. TTL), aber der wahre Grund war viel banaler: Man muss ja nicht nur das PWM Signal anlegen, sondern auf "Relais 1" (Pin 1 Parallelport bzw. Sub-D-15-Pin 13 auch noch eine 1, damit sich die Spindel dreht.

Eine kurze Anpassung der .hal - Datei, sodass das PWM-Signal korrekt skaliert und die Spindel auch die maximale Drehzahl (20.000 rpm) erreichen kann und schon war das Projekt abgeschlossen.

Leider bleibt immer noch eine Kleinigkeit: Wenn man den Notaus drückt oder die Spindel stoppt, wird der Bildschirm des Raspberry Pi kurz schwarz, begleitet von einer Fehlermeldung in LinuxCNC, dass es ein Problem bei der SPI-Kommunikation gibt. Das hat aber anscheinend keine negativen Auswirkungen, also belasse ich es einmal so. Der Einbau eines Optokopplers wird vielleicht Inhalt eines weiteren Posts.

 

 

 

 


 

 

 

 

 

 

 

 

 



Samstag, 10. Dezember 2022

Weihnachtssterne - Fräsen, Schleifen, Ölen

Weihnachten steht vor der Tür, daher habe ich passende Sterne als Christbaumschmuck gefräst.

Die passenden Bretter habe ich auf der Faszination Modellbau am Stand von Arkowood erworben.

Nach dem Anfertigen der Zeichnung mit Hilfe von LibreCAD und dem Erstellen des G-Codes durch Estlcam wurde die Stepcraft D-420 angeworfen und die Sterne mit einem 1mm Fräser ausgeschnitten. 

Anschließend wurden die Schnittkanten mit 800er Schleifpapier versäubert und die Sterne mit Heliacare Schneidbrettöl eingelassen. Dies dient als Schutz und bringt gleichzeitig die Maserung des Holzes schön zur Geltung, beim Nussbaumholz ist der Effekt besonders ausgeprägt.

Die gesamte Produktion habe ich in einem kurzen Video festgehalten:



Freitag, 24. September 2021

Erstflug miniFex

Es hat lang gedauert. Schon im Februar war ich mit meinem miniFex fertig. Aber zuerst war der Wind ruppig, dann war im Sommer schlechtes Wetter und schon zieht der Herbst ins Land.

Aber heute war es soweit: Erstflug miniFex. Da lassen wir am besten Bilder sprechen ...


Einmal noch durchatmen ...

... dann einen kleinen Schubs über die Hangkante ....


... und der miniFex fliegt auf Anhieb wie auf Schienen ;-).

4 Sekunden den Motor eingeschalten und schon war er hoch oben, für den Rest des traumhaften Fluges hat die Thermik gesorgt.


Ein einziges Manko ist mir in der Luft aufgefallen: Eine meiner beiden Klappluftschraubenblätter legt sich nicht an, das ist wohl nicht leichtgängig genug.


daher habe ich nach 7 Minuten Thermikgenuss den Flug abgebrochen und bin gelandet...


Zwei weitere Flüge im Anschluss haben den positiven Gesamteindruck des miniFex bestätigt. Geht einfach gut, nimmt geringste Thermik an, ist aber erstaunlich "ruhig" in der Luft gelegen.

Danke Jonas Kessler, für dieses geniale Modell.

P.S.: Den "großen" vom Jonas, einen Neo, bin ich am gleichen Tag auch noch geflogen, das war ebenfalls purer Genuss ...



Sonntag, 11. April 2021

Tischvergrößerung für die Proxxon FET Tischkreissäge

Die Proxxon FET ist eine sehr feine Tischkreissäge für den Modellbau. Trotz der beschränkten Schnitttiefe (1-22mm) ist sie für die meisten Sägeaufgaben im Modellbau ideal geeignet.

Ein Problem, das mich aber immer wieder stört ist der sehr kleine Tisch. Wenn man größere Platten (z.B. Sperrholz) in handliche Teile zerlegen möchte hat man keinen Anschlag und muss die große Platte sehr fest auf den Tisch drücken, damit sie nicht kippt.

Meine FET steht auf einem rollbaren offenen Kasten, also war meine Überlegung eine Tischvergrößerung zu bauen, die einfach eine Fläche rund um den eigentlichen Tisch der Proxxon FET zur Verfügung stellt.

Zunächst habe ich mir dazu mit FreeCAD einen Plan erstellt, der eine 80 x 80 cm größe Platte umfasst, die von zwei seitlichen Stehern auf die Höhe des originalen Sägetisches bringt.

Hier eine Ansicht von vorne:


Weiß ist der rollbare Kasten, dunkelrot die bisher schon vorhandene Platte, auf der die Proxxon FET steht (grün). Das zu bauende Teil ist in hellbraun abgebildet.

Wie man sieht ist die dunkelrote Platte etwas größer als der Kasten, daraus habe ich die Idee entwickelt, dass ich die Tischvergößerung, wenn ich sie nicht benötige, abnehmen und an der Rückseite des weißen Kastens aufbewahren kann. Dazu muss der Durchlass zwischen den Stehern aber natürlich mindestens die Kastenbreite aufweisen.

Verwendet habe ich 15mm Siebdruckplatten, die glatte Seite ist ideal für einen Tisch, auf dem das Holz möglichst gut gleiten soll.

Den Zuschnitt hat mir ein guter Freund gemacht, der mit großer Formatkreissäge, Oberfräse, etc. ausgestattet ist.

Entscheidend waren natürlich die genaue Höhe der Steher (Höhe der FET - Plattendicke) und der genaue Ausschnitt der vergrößerten Tischplatte.

Den Ausschnitt habe ich zunächst genau winkelig angezeichnet, anschließend wurden die Ecken mit einem Forstnerbohrer ausgenommen. Danach habe ich den Ausschnitt zunächst grob mit der Stichsäge ausgeschnitten, im Anschluss wurde dann exakt auf die angezeichneten Linien ein gerades Stück Multiplex gelegt und mit der Oberfräse samt Kopierfräser der Ausschnitt perfekt gemacht.

Das Ergebnis war dann so:

FET mit Tischvergrößerung

Der Tischnausschnitt

Exakte Passung

Wie man auf obigem Foto sieht ist die FET an den Ecken gerade so rund, wie der Forstnerbohrer, den ich für den Ausschnitt der Ecken verwendet habe (Glück gehabt), lediglich rechts vorne ist der Alutisch spitz, dort habe ich minimal mit einer Feile nachgearbeitet, sodass die Vergrößerung gut über den Tisch gepasst hat.

Die Vergrößerung wird mit je 3 Dübeln auf jeder Seite auf der Grundplatte befestigt, ich hatte auch noch Kofferschlösser geplant, die die Steher auf die Grundplatte ziehen, das hat sich aber als unnötig erwiesen, die Dübel sitzen (noch) so stramm, dass sich nichts bewegt.

Auch die Verstaubarkeit der Vergrößerung wurde ideal erfüllt:

Damit die Vergößerung nicht nach herauskippt, habe ich sie derzeit nur mit zwei Schnellzwingen fixiert, das folgende Bild zeigt eine solche. Ebenfalls zu sehen ist eines der angesenkten Löcher, in das ein Dübel vom Steher eingeführt wird.



Bleibt noch das Problem des Anschlags. Mit der Tischvergrößerung können die mitgelieferten Anschläge der FET nicht mehr verwendet werden.

Daher habe ich (wieder mit Hilfe meines guten Freundes und seiner Werkstatt) je eine Nutenschiene vorne und hinten in den Tisch eingelassen und mit Hilfe dieser Schienen kann nun ein 80cm Lineal als Führung benutzen.


Da das Lineal vorne und hinten unabhängig fixiert wird muss man natürlich auf den rechten Winkel achten. Ich habe dazu einfach die "Sägelinie" auf den Tisch verlängert und messe nun vorne und hinten den gleichen Abstand von dieser Linie zum Führungslineal.
Das ist zwar ein wenig umständlicher als man es von "professionellen" Parallelanschlägen kennt, für meine Zwecke ist es aber jedenfalls ausreichend.




Montag, 15. Februar 2021

Flugmodellbeschriftung mit dem Stepcraft Schleppmesser

Jetzt ist mein miniFex fertig:


371 g leicht ist er geworden (flugfertig), der Bauplan weist 430g Fluggewicht aus.

Fehlt nur noch eines: Ein Luftfahrzeugkennzeichen. Ich benutze immer OE-YRLI-<fortlaufende Nummer>, weil OE-Y sind unbemannte Luftfahrzeuge in Österreich, RLI ist mein Kürzel und die Nummer zeigt mir, dass der miniFex mein siebentes Modell ist.

Also erst mal das Schleppmesser so eingestellt, dass die Klinge ein ganz klein wenig herausragt:


und dann das Schleppmesser in die Stepcraft montiert:


Die Folie (hier ein Teststück) muss man unbedingt gut auf der Unterlage (Schneidmatte) fixieren:


Mit ein wenig Herumprobieren (Messereinstellung, Zustelltiefe) bekommt man dann die Buchstaben schon ausgeschnitten, die 7 hat mich allerdings gefuchst. Das Ergebnis war ausgefranst.


Erst nach zahlreichen Versuchen war ich mit dem Ergebnis zufrieden und machte mich ans Auftragen auf den Rumpf:


Dabei habe ich die den Ausschnitt der Trägerfolie als Schablone benutzt, um die Buchstaben richtig zu platzieren. Wenn ein Buchstabe gut platziert war habe ich jeweils mit einem kleinen Holzstück für genug Adhäsion gesorgt, dass er nicht mehr leicht verrutscht ist.

Wenn dann alles sitzt vorsichtig mit dem Folienbügeleisen erwärmen, sodass die Buchstaben permanent angeklebt werden.

Das Endergebnis sieht dann so aus:




Freitag, 12. Februar 2021

Fotos #2 vom Bau eines miniFex


 Langsam geht der miniFex seinem Erstflug entgegen ...



Aufbau der rechten Tragfläche

Aufbau der linken Tragfläche

Abschrägung der Querruder mit der Kreissäge, einem Featherboard und dem Niederhalter



Hier das Ergebnis
Das Ankleben von Höhen- und Seitenruder - Nervenkitzel garantiert




Das sieht schon nach Luftfahrzeug aus ...






Dienstag, 26. Mai 2020

Niederhalter für Proxxon FET

Um präzise Leisten schneiden zu können habe ich verstellbare Niederhalter gebaut, die das Balsabrett am Aufbäumen hindern und gleichzeitig noch die Hand freilassen.
kurzer Niederhalter

Im Einsatz mit 1.5mm Balsabrett

die Befestigung am Längsanschlag

Hier in Verbindung mit einem dickeren Brett

der etwas längere Niederhalter



lassen sich auch kombinieren ...

hier der ganz lange Niederhalter in Verbindung mit einer seitlichen Begrenzung

präzise Leisten garantiert ...