DIY Motor-Fokussierer (Arduino, MoonLite INDI/ASCOM kompatibel)

Hi Dieter,

Allegro A4988, Texas Instruments DRV8815 und TMC2209 sind pinkompatibel (Pololu-"Standard").

CS, Ralf
 
Danke für die schnelle Antwort, Ralf.
Eine Frage noch, bevor ich bestelle.
Es gibt beim TMC2209 eine Anzahl von Versionen. Ist es wichtig, eine bestimmte Version auszuwählen?
Einen schönen Sonntag noch
Dieter
 
Es gibt Standalone Varianten, welche im StealthChop laufen, welche mit Brücken und UART-Konfigurierbare. Ich würde für einen einfachen Autofokus Standalone mit Brücken nehmen.
 
Hi Dieter,

du kannst auch den TMC2208 nehmen. Der 2209 kann ein bisschen höheren Strom und hat ein paar spezielle Features mehr, aber sie sind im Prinzip gleich.
Hier ein guter Vergleich, der auch die prinzipiellen Feature der TMC22.. erklärt:

Ach, und genau man muss ein bisschen aufpassen, dass man eine (Brücken) Variante nimmt, die für den normalen direkten Step/Dir/Konfigurations(CFG)-Mode und nicht über SPI/UART konfiguriert ist, was aber normalerweise der Fall ist (wie auch schon Ralf @riff-raff gesagt hat ).

Gruß
Peter
 
Zuletzt bearbeitet:
Hallo

ich hätte das Fystec E4 oder FystecF6 Bord gewählt, das unterstützt OnstepX und man kann per Websiteplugin den Microschritt die Geschwindigkeit für jede Achse konfigurieren, dort wird über UART Bus eingestellt und Jumper sind nicht nötig.
das F6 hat mehr Bastelpotential, austauschbare Treiber, muss man Wlan Modul nachrüsten
das E4 hat alles on Board, auch die Treiber welche nicht austauschbar sind, allerdings bekommt man da alles Komplett für den Preis den eigentlich schon die TMC2209 kosten

Gruß Frank
 
Hi Frank @Frank66 ,

ich habe bisher für meine Schrittmotor Projekte einfach zB so ein CNC Board für Arduino Nano genommen:

und bin damit sehr zufrieden.

Ich programmiere den Arduino mit Visual Studio/PlatformIO einfach selber. Ist ja kein Hexenwerk mit der AccelStepper Library und steuere ihn über USB.

Welche Vorteile hätte ich durch so ein Fystec Board?
Kann ich da auch den Microprozessor mit Visual Studio/PlatformIO selber direkt programmieren?
Wo ist Einstiegs/Tutorial Dokumentation für eigene Software/Firmware für diese Fystec Boards?

Es gibt ja auch noch andere. Sind die dann kompatibel?

Gruß
Peter
 
Hallo liebe Bastler,

heute habe ich meinem Motorfokusser auch ein Upgrade verpasst. An meinem neuen 10" Newton werkelt nun auch ein Nema17 am Baader Diamond Steeltrack. Die Zahnriemen gibt es für 3,-€ und die Zahnriemenscheibe hab ich gedruckt (Gegenstück ist ja Bestandteil des Steeltrack). Läuft erste Sahne und ohne erkennbaren Backlash. Ich muss also nicht immer nur von einer Seite anfahren. Wirklich eine enorme Verbesserung!
Was mich aber enorm gestört hat (und nicht nur mich), ist das Arbeitsgeräusch des A4988 Steppertreibers aus Marcus' (@fehlfarbe) ursprünglichen Projekt. Daher habe ich mir einfach einen TMC2209 Treiber besorgt. Diese Treiber sind der letzte Schrei und in praktisch allen neuen 3D Druckern verbaut. Kosten Stück zwischen 6,-€ und 10,-€ und sind Pin- und Treiberkompatibel zum A4988. Zumindest fast.

Ich habe eine halbe Ewigkeit gesucht, warum alles funktioniert, Ascom Anbindung, Steps an den TMC2209, Richtungssignal, alles - nur der Motor hat sich keinen Milimeter gedreht. Letztlich hat mir Marcus per PN den entscheidenden Tipp gegeben: Beim A4988 ist der Enable Pin ("Einschalter") per Pull-down im nicht angeschlossenen Zustand automatisch aktiviert. Beim TMC2209 ist an gleicher Stelle ein Pull-up vorhanden, der Pin im nicht angeschlossenen Zustand also deaktiviert. Die Lösung ist eine einfache Brücke vom Enable-Pin nach Masse. Dafür kann man sich dann auch die Verdrahtung zum Sleep Pin (beim A4988) sparen, an der Stelle ist beim TMC2209 der Clock Pin (je nach Ausführung). Dafür hat der TMC2209 Auto-Power-Down im Ausgangszustand aktiviert, muss also nicht mehr vom Arduino aus gesteuert werden.

Beim Testen der Brücke nach Masse wollte ich schon wieder das Fluchen anfangen, weil sich vermeintlich noch immer nichts gedreht hat. Da hat mich aber leider mein Gehör getäuscht. Der Motor hat sich sehr wohl gedreht wie er soll, nur eben völlig lautlos. Also wirklich nicht einfach nur sehr, sehr leise - nein, vollkommen lautlos!
Ich habe schon eine hohe Erwartungshaltung an den neuen TMC2209 Treiber gehabt, aber das hat mich dann doch erstaunt.

Jetzt muss ich unbedingt den MAK noch mit dem TMC2209 nachrüsten...
Hallo,

angeregt von Mike habe ich mir auch den TMC2209 besorgt und in meinen Fokuser eingebaut. War ebenso überrascht vom Laufgeräusch. Einen so extremen Unterschied hätte ich nicht vermutet.
Vielen Dank für den Tipp.
Jetzt würde ich aber doch gerne das Sleep-Signal von Arduino an den Enable vom TMC2209 anschließen. Nur ist der gelieferte Zustand genau verkehrt. Statt Low ist er ja Hi aktiv. Kann man das in dem Sketch von Fehlfarben nicht irgendwie ändern?
Da ich kein Programmierer bin, benötige ich da Unterstützung.

VG,
Horst
 
Hallo Astrofreunde,
@astroh
Ich habe das Programm für den Arduino von Maketec heruntergeladen. Dort hab ich für den Enable-Ausgang den folgenden Definitionsbereich gefunden.
20240208_190740.jpg
Ich habe eingetragen, welche Änderungen ich vornehmen würde. Was meint Ihr? Würde das so passen?
Dieter
 
Hi Horst,
Jetzt würde ich aber doch gerne das Sleep-Signal von Arduino an den Enable vom TMC2209 anschließen. Nur ist der gelieferte Zustand genau verkehrt. Statt Low ist er ja Hi aktiv. Kann man das in dem Sketch von Fehlfarben nicht irgendwie ändern?
ich kann dir helfen, aber du musst das dann selber mit der Entwicklungsumgebung Visual Studio Code und der PlatformIO Extension durchführen.
Viel ändern, eigentlich nur auskommentieren musst du nicht, aber du musst dann das ganze Programme übersetzen und in den Arduino laden.
Ich weiss nicht, ob du dir das zutraust. Wie hast du das Programm überhaupt in deinen Arduino geladen?

Du könntest auch Fehlfarbe kontaktieren. Einfach ein Issue im Projekt mit deinem Problem aufmachen.

Gruß
Peter
 
Zuletzt bearbeitet:
Hi Frank @Frank66 ,

ich habe bisher für meine Schrittmotor Projekte einfach zB so ein CNC Board für Arduino Nano genommen:

und bin damit sehr zufrieden.

Ich programmiere den Arduino mit Visual Studio/PlatformIO einfach selber. Ist ja kein Hexenwerk mit der AccelStepper Library und steuere ihn über USB.

Welche Vorteile hätte ich durch so ein Fystec Board?
Kann ich da auch den Microprozessor mit Visual Studio/PlatformIO selber direkt programmieren?
Wo ist Einstiegs/Tutorial Dokumentation für eigene Software/Firmware für diese Fystec Boards?

Es gibt ja auch noch andere. Sind die dann kompatibel?

Gruß
Peter
Hallo

na tatsächlich auf der Seite wo Onstep zu hause ist, mit Treibern , Software für Android, das es auch mit sky Safari läuft, oder Goto Handbox :)
aber wenn es keine Teleskopsteuerung werden soll auch bei fysetc
onstep wiki
ich würde die Variante mit der extra Wlan Antenne vorziehen, dann geht auch Metallgehäuse
da gibt es auch Handcontroler SHC

Gruß Frank
 
Zuletzt bearbeitet:
Hallo Dieter,
vielen Dank für den Vorschlag. Leider sieht der Sketch-Auszug anders aus und kommt nicht aus dem Arduino-Motorfocus. So eine Art Änderung kann ich da nicht vornehmen.

Hallo Peter,
auch dir vielen Dank für deine Unterstützung. Mit VS-Code habe ich bis jetzt noch nicht gearbeitet. Habe meine ganzen Sketche mit der "Arduino IDE" bearbeitet und hoch geladen. Hat so weit immer geklappt.
Wenn es sehr große Umstände macht, die ich nicht beherrsche, dann baue ich noch einen Negator (1 Transistor mit 2 Widerstände) ein. Hat auf dem Testboard schon mal funktioniert. Softwarelösung wäre aber eleganter.

VG,
Horst
 
Hallo Dieter,
vielen Dank für den Vorschlag. Leider sieht der Sketch-Auszug anders aus und kommt nicht aus dem Arduino-Motorfocus. So eine Art Änderung kann ich da nicht vornehmen.

Hallo Peter,
auch dir vielen Dank für deine Unterstützung. Mit VS-Code habe ich bis jetzt noch nicht gearbeitet. Habe meine ganzen Sketche mit der "Arduino IDE" bearbeitet und hoch geladen. Hat so weit immer geklappt.
Wenn es sehr große Umstände macht, die ich nicht beherrsche, dann baue ich noch einen Negator (1 Transistor mit 2 Widerstände) ein. Hat auf dem Testboard schon mal funktioniert. Softwarelösung wäre aber eleganter.

VG,
Horst
Hallo

ich war gerade gezwungen einen verlöteten 2209 aus einer Platine auszulöten, dabei ist mir ein SMD Wiederstand nahe dem EN Pin verloren gegangen, nach Recherche liegt EN mit 20kOhm an VIO.... den könntest du "runtermeißeln " kaputt geht immer, dann machst du einen externen Wiederstand................
aber mal genau betrachtet, was sind schon 20kOhm, ein externer 1kOhm gegen Masse müsste den Treiber abschalten, und den kann dein Prozessor wieder auf high steuern,
manchmal hakt es im Kopf ;D
oder nach Plus anschalten, je nach dem wie du es benötigst

Gruß Frank
 
Zuletzt bearbeitet:
Hi Horst @astroh ,

soweit ich es sehe müsste man im Fehlfarbe Projekt nur aktivieren, dass das Treiber Modul (TMC...) korrekt benutzt wird.
Hier die Stelle im src/arduino-motorfocus.cpp:

// #define USE_DRIVER

Das müsste man auskommentieren.
Aber man muss dann mit VSCode das Projekt neu bauen und es zum Arduino hochladen.
Wenn man VSCode und PlatformIO schon mal benutzt hat, ist das kein Problem.

Gruß
Peter
 
Hallo

ich war gerade gezwungen einen verlöteten 2209 aus einer Platine auszulöten, dabei ist mir ein SMD Wiederstand nahe dem EN Pin verloren gegangen, nach Recherche liegt EN mit 20kOhm an VIO.... den könntest du "runtermeißeln " kaputt geht immer, dann machst du einen externen Wiederstand................
aber mal genau betrachtet, was sind schon 20kOhm, ein externer 1kOhm gegen Masse müsste den Treiber abschalten, und den kann dein Prozessor wieder auf high steuern,
manchmal hakt es im Kopf ;D
oder nach Plus anschalten, je nach dem wie du es benötigst

Gruß Frank
Hallo Frank,
ich glaube, du hast mich noch nicht richtig verstanden. Ich möchte ja den Enable-Pin zum Aktivieren des 2209 nicht auf H setzen, sondern auf L, denn auf H ist er ja schon (wahrscheinlich der 20kOhm, den du ausgebaut hast).
Habe jetzt einen NPN-Transistor mit E an GND und C an den Enable-Pin gelötet. Die Basis über 10kOhm an den Ausgang vom Arduion Pin 4 (Sleep).
So funktioniert die Freigebe ähnlich wie beim 4988 halt nur am Enable-Eingang.
Noch mal vielen Dank für die Unterstützug.

VG,
Horst
 
Hi Horst @astroh ,

soweit ich es sehe müsste man im Fehlfarbe Projekt nur aktivieren, dass das Treiber Modul (TMC...) korrekt benutzt wird.
Hier die Stelle im src/arduino-motorfocus.cpp:

// #define USE_DRIVER

Das müsste man auskommentieren.
Aber man muss dann mit VSCode das Projekt neu bauen und es zum Arduino hochladen.
Wenn man VSCode und PlatformIO schon mal benutzt hat, ist das kein Problem.

Gruß
Peter
Hallo Peter,

danke auch für deine Hilfe. Die Aktivierung des Treibers ist nicht das Problem.
Ich wollte eigentlich nur das Sleep-Signal am Ausgang Pin4 nicht auf H haben, sondern auf L, damit Enable vom 2209 angesteuert werden kann.
Habe, wie oben beschrieben, es jetzt mit einem Transistor gelöst.

Trotzdem vielen Dank für deine Mühe.

VG,
Horst
 
ich glaube, du hast mich noch nicht richtig verstanden. Ich möchte ja den Enable-Pin zum Aktivieren des 2209 nicht auf H setzen, sondern auf L, denn auf H ist er ja schon
Hallo Horst

na brauchst du ja nicht zu aktivieren auf H setzen das macht er ja allein. auf H für An ist auch logisch.
nur haben die Chinesen da mal wieder was falsch gemacht, einschalten braucht man ja gar nicht der Pin müsste Disable heißen,
kein Wunder wenn man da durcheinander kommt.
wenn du guckst bei Fysetc TMC2209 Datenblatt, da steht schon wobei sie sich bei den Pinbezeichnungen verdruckt haben.
:D

Gruß Frank
 
Hallo Astrofreunde,
mein TMC2208 ist gestern endlich angekommen. Er war zuerst in die falsche Stadt geliefert worden.
Ich habe als erstes den EN Pin mit einem 1k-Widerstand auf Masse gelegt. Dann die Brücke (R8) entfernt und +5 V auf VDD gelegt.
20240227_164143.jpg
20240227_164023.jpg
Die +5 V Verbindungen zu UART und NC, die dort am DRV 8825 erforderlich waren, habe ich getrennt.
Leider funktioniert jetzt der Motorfokus nicht mehr. Die Verbindung zu Sharcap 4.1 ist vorhanden, Befehle werden angenommen und der Positionszähler läuft mit. Nur der Motor regt sich nicht.
Woran kann es liegen? Müssen vielleicht die offenen Kontakte (R5, unteres Bild) gebrückt werden?


Ich finde im Netz einfach keine Dokumentation hierzu.
Kann mir hier jemand helfen?

Viele Grüße
Dieter
 
Zuletzt bearbeitet:
Hallo

Da muss gar nichts gebrückt werden.... an M1 und M2 wahlt man den Microschritt , wenn er En gar nicht angeschlossen ist setzt ihn der Treiber auf betrieb.
Der Stp mag einen Puls, reagiert schon wenn man ihn mit dem Finger antippt auf Netzbrummen, der Dir ändert mit high oder low nur die Richtung.
Hast du beide Betriebsspannungen am Treiber versorgt?

Gruß Frank
 
Hallo,
die Motorspannung VM liegt auf 13,8 Volt, VDD auf 5 Volt. Die vorhandene Brücke (R8) hab ich entfernt. Dann sollte doch alles stimmen.
Funktioniert aber trotzdem nicht. Dabei habe ich zum Schutz der Schaltung vor dem Einlöten alle Pins mit einer feinen Litze verbunden und erst danach wieder entfernt.
Dieter
 
Habe auch gerade einen Nur Fokus in Arbeit, auf dem Steckbrett ging er, dann auf Lochraster mit Drahtbrücken gefriemelt, war alles gut b8s ich die 12V fals herum angeschlossen habe, hat den Spannungsregler gekillt, der Kondensator explodiert, der ESP sagt keinen Pips mehr.
Und gerade auf den geätzten Leiterplatten neu gemacht.... Du wirst es nicht glauben aber der 2209 funktioniert noch, ich glaub nicht das der bei dir kaputt ist.
Wenn du willst, paar Leiterplatten habe ich noch.
Da ist nix dran außer Motorbuchse und Stromanschluss der Rest ist über WLAN, läuft über 30pol ESP32 Board.

20240302_224156.jpg
 
Da ich noch nie mit arduino, treiber+schrittmotor gearbeitet habe, stecken in dem thread hier natürlich extrem viele neue infos.
Mein basteltrieb ist auf alle fälle geweckt - daher würde ich mich auch erstmal an der variante
arduino nano (usb c), 28BYJ-48 motor und A4988 treiber vrsuchen.

Wenn ich die komponenten korrekt überblicke, ist das eine lösung die komplett mit der vom usb port
zur verfügung gestellten spannung/strom auskommt.

Aus interesse bzw um das system besser zu verstehen:
Wie läuft es denn wenn das zb. ein 12v aufbau werden würde?
Hat der arduino zusätzliche anschlüsse für die stromversorgung (und leitet entsprechend weiter?), oder der treiber, oder der motor selbst?!
 
Hallo,
Der 28BYJ ist ein Unipolar Motor und wird meistens mit einem ULM2003 angesteuert.
Die meisten "Normalen" Stepper sind Bipolar und werden mit A4988/DRV8825 usw. angesteuert.
A4988 und 28BYJ geht auch, man hat aber ein höheres Risiko ein "Kurzschluss" zu bauen.#
Oder den 28BYJ auf Bipolar ändern, geht einfach siehe hier.
Gruß
Andreas
 
Hey Tony,

schau dir mal die beiden Grafiken auf der GitHub Seite an:


Der Motortreiber kriegt hier die 5V über das rote und schwarze Kabel aus dem Arduino, der wiederum seine 5V vom USB bekommt. Willst du den Motor mit mehr Spannung betreiben musst du statt der 5V vom Arduino einfach bspw. 12V an der Motortreiberplatine anschließen. Eine zusätzliche GND Verbindung (das schwarze Kabel) zwischen Arduino und Treiber müsste aber trotzdem noch erforderlich sein.

wiring.png




Wenn du einen A4988 oder besseren Treiber (siehe vorherige Posts) für einen handelsüblichen NEMA Stepper Motor nutzen willst, reichen die 5V meistens eh nicht. Dann musst du eine externe Spannungsversorgung, hier mit der Hohlsteckerbuchse oben dargestellt, anschließen. Die 5V, die hier vom Arduino in den Treiber gehen sind nur dafür da, dass er weiß mit welcher Logikspannung er angesteuert wird. Also ob nun 5V vom Arduino "AN" bedeutet oder ob es 3.3V wie beim ESP32 usw. sind.

wiring_driver.png



Beste Grüße,
Marcus
 
Hi,

nochmal, ganz klar, nur der 28BYJ oder Ähnliche sind direkt durch den Arduino ohne zusätzliche Stromversorgung zu betreiben.
Das ist auch das Attraktive an dieser Baulösung, da klein und kompakt. Aber nur das!
Sonst würde ich immer NEMA Motoren verwenden und dafür braucht man eine zusätzliche Stromversorgung.

Und für NEMA Motoren bitte gleich die TMC Treiber und nicht den ollen A4988 verwenden. Die TMCs sind viel besser und nur ein bisschen teurer.
Es gibt genug Beiträge, wo das jemand nicht geglaubt hat und dann total verblüfft war wie leise und ruhig auf einmal der Schrittmotor läuft.

Gruß
Peter
 
Ich habe 4 mit den 28BYJ und eines mit einem NEMA 11 zusammen mit dem Arduino-Sketch am laufen. Funktionieren super unter INDI und jetzt NINA.
Die 28BYJ gibts auch als 12V Versionen sowie mit verschiedenen Getriebabstufungen, daher aufpassen beim Kauf!

( 28BYJ-48 High quality Stepper motor 12V )

Grüße
Hartmut

Hier hat sich mal einer richtig an dem Teil ausgetobt: 28BYJ-48
 
Hi Hartmut,
Ich habe 4 mit den 28BYJ und eines mit einem NEMA 11 zusammen mit dem Arduino-Sketch am laufen. Funktionieren super unter INDI und jetzt NINA.
Die 28BYJ gibts auch als 12V Versionen sowie mit verschiedenen Getriebabstufungen, daher aufpassen beim Kauf!

( 28BYJ-48 High quality Stepper motor 12V )

Grüße
Hartmut

Hier hat sich mal einer richtig an dem Teil ausgetobt: 28BYJ-48
wusste ich gar nicht, dass es den 28BYJ auch in einer 12V Ausführung gibt.

NEMA11 habe ich auch, kann mich aber nicht mehr an meine Versuche erinnern.
Geht der auch direkt mit dem Arduino ohne Stromversorgung?

Gruß
Peter
 
Es gibt ja NEMA 11 Motoren wieder in verschiedenen Ausführungen Spannung/Strom.
Ich hatte meinen zunächst über einen TMC2208 oder xx09 direkt an 5V von der USB-Schnittstelle am Eingang des NANO abgenommen, mußte aber den Strom schon stark begrenzen im Treiber. Da hatte er viel leustung verloren.
Letztendlich war mir das zu heikel und ich ich hatte noch einen Wandler 5V nach 12V (Kabel mit integriertem Wandler, Anschluß an einen Mini-USB-3.0 Hub) und habe den zusätzlich verwendet. Mein Motor ist zwar ein 5V Typ, aber durch die Strombegrenzung ist ihm das egal, zumal er kurz nach der Einstellung wieder in den StandBy geht und keinen Strom mehr aufnimmt.

Grüße
Hartmut
 
Zurück
Oben