TMC2209 Stepper-lib mit sehr hohen Schrittfrequenzen (5-20 kHz)

Hallo zusammen,

Trinamic-stepper-motor-driver-SilentStepStick-TMC2209
Da kann man ja 1/16 und 1/256 Schritte einstellen.

Die MobaTools haben eine maximale Schrittfrequenz von 2,5 kHz auf AVR_boards.
Das ist bei 1/16 Schritten vergleichsweise langsam und bei 1/256 erst recht.
Mit ESP8266 mit 8kHz ist jetzt auch nicht gerade rasant.

Mit AccelStepper bin ich auf 4,3 kHz gekommen.

Gibt es noch eine andere Schrittmotor-Lib die deutlich höhere Frequenzen kann ?

Oder muss ich einfach auf einen Teensy 4.1 umsteigen der dann einfach weil er mit 600 MHz getaktet wird in 20 km Höhe flieg... äh --- wollte sagen 20 kHz kann?

vgs

Wie wär's mit einem ESP32? Da erreichen die MobaTools >30kHz - auch bei mehreren Steppern gleichzeitig.

@StefanL38 Teensy 3.2 - 3.6: GitHub - luni64/TeensyStep: Fast Stepper Motor Library for Teensy boards (T4.x ist in Arbeit wird aber noch dauern...)
Je nach Board geht das bis 300kHz.

Hier ein paar Videos:

  • Max Speed, beschleunigte und synchronisierte Bewegung zweier Motoren mit 160kHz Schrittfrequenz:
  • Nachträgliche Synchronisierung zweier Motoren:
  • Speed override on the fly:

Hallo,

fehlt da nicht noch jeweils ein Encoder an den Motoren? Einfach auf gleiche Drehzahl bringen reicht laut meiner Meinung nach nicht aus. Bevor der Stift in die Bohrung fährt sollte er wissen das er gegenüber steht. Im Video vermute ich die wurden von Hand in Position gedreht und dann hofft man einfach das das hochdrehen ohne Schrittverlust klappt.

Wenn man da wirklich "hoffen" muss das es klappt dann wird der Schrittmotor mit zu großer Last betrieben. Jede Schrittmotoranwendung die ohne feedback-loop arbeitet wird so ausgelegt dass Schritverluste wirklich nur dann auftreten wenn eine nicht geplante mechanische Überlastung auftritt oder ein Defekt in der Stromversorgung zu einem zu geringen Strom führt.

Ich habe früher Schrittmotorsteuerungen für das Prägen der Fahrgestellnummer in Auto-Karosserien programmiert. Audi, Saab, VW, Mercedes, Skoda, Seat, Opel.
Da wurden zum größten Teil Schrittmotoren ohne Feedback-Loop benutzt. Das Prägen fand mitten in der Montagelinie statt. Da muss man eine Zuverlässigkeit von mindestens 99,5% erreichen. Da wurden zum größten Teil Schrittmotoren ohne Feedback-Loop benutzt. Erst als die Performance der Schrittmotoren nicht mehr ausreichte wurden da Servo-Motoren eingesetzt.
vgs

Wie @StefanL38 schreibt, sind Schrittverluste ein Dimensionierungsproblem. Bei dem Video geht es natürlich nicht um die Dimensionierung des Aufbaus, sondern darum wie man mit der TeensyStep Geschwindigkeit und Lage des des 'Pin-Motors' bei hoher Geschwindigkeit des 'ScheibenMotors" so regelt, dass die Pins in die Bohrungen fahren können. Durch einfaches Hochfahren der Geschwindigkeit wirst Du die Bohrungen nicht treffen...

Die eigentliche Frage war:

Gibt es noch eine andere Schrittmotor-Lib die deutlich höhere Frequenzen kann ?

Die Videos sollten schlicht zeigen, was man geschwindigkeitsmäßig mit einem einfachen Teensy so machen kann.

Ja das ist suuper. Was ist denn geplant wann es für die Teensy 4.x eine Teensy-Stepper-lib geben wird?

Ich habe inzwischen die MoBaTools auf einem ESP32 getestet und das funktioniert für mittlere Geschwindigkeiten auch wunderbar.
vgs

Ich habe momentan nicht allzu viel Zeit, möchte aber die T4 Version radikal umbauen um die im Laufe der Jahre aufgekommenen Unzulänglichkeiten zu beheben.

  • Ich komme aus einer Welt in der man die Motoren für Positionierungszwecke synchron fahren lassen will. Es hat sich allerdings herausgestellt, dass viele Anwendungen eine große Zahl nicht-synchronisierter Motoren brauchen was momentan wegen der endlichen Zahl von Timern nicht geht.

  • Die API ist zwar sehr logisch (zumindest für mich :slight_smile: ) scheint aber mache Benutzer zu überfordern. Das möchte ich etwas einfacher gestalten.

  • Viele Benutzer würden gerne eine on the fly Änderung der Zielposition haben um einem beweglichen Ziel einfacher folgen zu können (z.B. Antenne folgt einer Model-Rakete)

Also, viel zu tun und keine Zeit...

Hier eine allererste prä-alpha Version:

Und hier Beispiele wie die API aussehen könnte:

Hallo,

die Motoren drehen im Video nacheinander hoch. Das heißt die Lib zählt die ausgegeben Schritte, ansonsten weiß die Lib nicht wie die Motoren zueinander stehen. Vorher müssen die Motoren ausgerichtet wurden sein. Das das alles mit entsprechend dimensionierten Motoren funktioniert daran Zweifel ich nicht. Nur der Unbedarfte der das sieht und ohne Hintergrundwissen nachbaut kann Schiffbruch erleiden.

Ich habe mit Maschinen zu tun wo Schrittmotoren und Servomotoren verbaut sind. Überall sind irgendwelche Lager verbaut die mit der Bewegung zu tun haben. Ich betrachte das von der anderen Seite. Aus meiner Sicht können die Motoren überdimensioniert sein wie sie wollen. Wenn das Lager schwer geht würgen sich die Motoren noch eine Weile einen ab bis es irgendwann nicht mehr geht. Der Zeitpunkt kann zu spät sein. Die neueren Maschinen haben alle ein Closed Loop Antrieb. Die erreichen immer ihre Zielposition und melden eher das es eine Differenz gab. Wenn die Zielposition nicht erreicht werden kann wird das auch erkannt. Die alten Maschinen fahren aus Ruhelage ins Blaue zum Ziel und zurück in einen Sensor und merken dann erst das es ggf. Schrittverluste gab, weil Lager schwergängig etc.

Was ich sagen will ist, jeder Aufbau wird eine Weile funktionieren. Soweit okay. Ich stelle mir aber immer schon die nächste Frage. Wie wird sichergestellt das die Positionierung dauerhaft stimmt und wenn sie nicht stimmt vorm Crash erkannt wird. Jede CNC hat Encoder drin. Die vertrauen nicht auf die Motordimensionierung. Ja okay, sind keine 3D Drucker. :wink:

Ja natürlich muss eine Schrittmotor Lib die Schritte zählen wie sonst sollte sie einen Motor positionieren?

Wer um Himmels willen sollte das nachbauen? Es handelt sich um ein einfaches Demonstrations model um einige Fähigkeiten der TeensyStep zu zeigen nicht um einen irgendwie gearteten Prototypen einer Industriemaschine.

Ja, da hast Du sicher recht, aber was hat das mit der TeensyStep zu tun? Das ist halt eine Frage ob man für eine gegebene Anwendung Stepper verwenden will oder lieber einen Servo. Und ja, große Industrie CNC verwenden natürlich Servos, hauptsächlich wegen der größeren Dynamik, weniger wegen der Schrittverluste, die können moderne Treiber auch ohne Encoder detektieren (z.B. https://www.trinamic.com/technology/motor-control-technology/stallguard-and-coolstep/).

Die meisten der kleinen Hobby Käsefräsen verwenden einfache Stepper. Wie gesagt, eine Frage der Anwendung weniger eine Frage der Stepper Bibliothek.

Edit: Auch die wohl am meisten für Selbstbau CNCs verwendete Firmware grbl kann wenn ich mich recht erinnere nur einfache Stepper steuern... Das aber sehr effizient :slight_smile: