Marlin Firmware, Probleme beim hinzufügen einer Bewegung

Hallo Leute, ich habe bei meinem 3D Drucker ein für mich größeres Problem.
Umd zwar möchte ich in die marlin Firmware einen RC Servo einprogrammieren, der bei einer Retractbewegung der E-Achse, eine positive bewegung macht und beim exrudieren eine negative Bewegung macht.

Ich habe schon ca 30h verbracht das Ding zum laufen zu bringen.

Brauchen tue ich das für ein nadelventil am hotend.

Ich hoffe ihr könnt mir in diesem Dschungel an Code helfen.

Wie würdet ihr das lösen? Ich habe schon viele varianten ausprobiert bin aber bei der chaosprogrammierung an irgendwelchen #define etc. gescheitert. Ich benutze ein Ramps 1.4 und der Servo ist auf pin 11.
Hauptsächlich scheitert es eig nur an der Implementierung der ganzen Servobewegung. Wenn ich eine LED ansteuere dann funktioniert alles.

Ich weiß echt nicht mehr weiter…

Danke Jetzt schonmal!

Schau mal bitte in Zeile 376 - da scheint sich ein Vertipper eingeschlichen zu haben. Insgesamt ist der Code aber auch schwer lesbar...

MaHa76: Schau mal bitte in Zeile 376 - da scheint sich ein Vertipper eingeschlichen zu haben. Insgesamt ist der Code aber auch schwer lesbar...

Wieso "Vertipper" ? Man sieht doch eindeutig, das 30 Std. hier nicht ausreichen.

Ja ich habe wir wirklich die Zähne ausgebissen >:( :confused:

Wolle93:
Ja ich habe wir wirklich die Zähne ausgebissen >:( :confused:

Aber die Finger sind noch dran ?
Dann Tippe (Copy&Paste) deinen Sketch hier in Code-Tags rein.
Wichtig Code-Tags verwenden, Schaltfläche </> oben links im Editorfenster.

Wie sollen wir sonst helfen ?
Per Telepathie ?

Soll ich hier wirklich alle sketches reinkopieren?

Meinst Du, wir sind Hellseher?

Gruß Tommy

Wolle93: Soll ich hier wirklich alle sketches reinkopieren?

Nein brauchst du nicht. Dann darfst du nicht mit Hilfe rechnen. Aber sicher wird hier bestimmt jemand seine Kristallkugel befragen.

Hi

Da anscheinend schon Arduino-Codes, Die einem Drucker beiliegen hoch geheim sind - vll. ein Schubs in die richtige Richtung: Wenn Du das Servo einbindest, klappt GAR NICHTS mehr - Das riecht danach, daß sich irgend welche Timer (Innereien des Arduino) in die Quere kommen. Dafür wäre Es 'hilfreich', wenn wir hier WISSEN, WAS Du ALLES in Deinem Code verwendest.

Wenn's wo Anders klemmt - wäre das obere 'Hilfreiche' auch hier ebenfalls 'hilfreich'.

Wenn Du Das aber Alles nicht willst: Lebe mit Deinem Problem - Das gehört Dir ganz Alleine :)

MfG

Wolle93: Soll ich hier wirklich alle sketches reinkopieren?

Natürlich nicht, das sind 265 Dateien!

Ich sehe zwei Lösungswege:

  • Du wartest, bis jemand, der sich sehr gut mit Marlin 3D Printer Firmware auskennt, Dir schreibt, was Du wo ändern kannst.
  • Du führst diejenigen, die sich allgemein mit Arduino auskennen, behutsam an die Problematik heran, in dem Du sie an Deinem in 30 Stunden erworbenen Wissen teilhaben läßt.

Sorry bin jetzt vor kurzem erst heimgekommen.
Also eigentlich habe ich alles da reinimplementiert…
villeicht könnt ihr damit was anfangen…

C:\Users\Dennis\AppData\Local\Temp\build5126984119891445213.tmp\stepper.cpp.o: In function set_stepper_direction()': C:\Users\Dennis\AppData\Local\Temp\build5126984119891445213.tmp/stepper.cpp:607: undefined reference to Servo::attach(int)’
C:\Users\Dennis\AppData\Local\Temp\build5126984119891445213.tmp/stepper.cpp:616: undefined reference to Servo::write(int)' C:\Users\Dennis\AppData\Local\Temp\build5126984119891445213.tmp\stepper.cpp.o: In function __static_initialization_and_destruction_0’:
C:\Users\Dennis\AppData\Local\Temp\build5126984119891445213.tmp/stepper.cpp:57: undefined reference to `Servo::Servo()’
collect2.exe: error: ld returned 1 exit status
Fehler beim Kompilieren.

stepper.cpp (43.2 KB)

Mit einer LED geht es, sagst du? Dann mach einfach einen weiteren Arduino dran und steuer damit dein Servo. Einfacher, schneller und besser zu verstehen

Das wäre der letzte Ausweg... Besser wäre es die noch verfügbare Leistung des atmegas zu nutzen.

Wolle93: .... C:\Users\Dennis\AppData\Local\Temp\build5126984119891445213.tmp\stepper.cpp.o: In function `set_stepper_direction()': .... Fehler beim Kompilieren.

Was hat die Stepper-Library mit einem Servo zu tun ?

Allerdings ist das ohne den Sketch sehr mühsam.

Ich nutze das Signal der Richtung des Schrittmotors an der E-Achse. Somit wenn dieses positiv ist er Servo in position a und wenn es negativ ist bzw 0 ist in Position b

Was meinst du mit sehr mühsam? Muss mn dazu den kompletten vorhandenen Code auseinanderpflücken?

HotSystems: Allerdings ist das ohne den Sketch sehr mühsam.

Anleitung für Helfende: Die MarlinFirmware für 3D-Drucker besteht aus mehr als 265 Dateien, die kann man nicht alle ins Forum laden ;) Wer helfen möchte, müßte die MarlinFirmware auf seinem Rechner installiert haben oder dies noch tun. Ich habe das mal gemacht und marlin.ino tatsächlich zum Kompilieren gebracht (mega2560).

Möchte man nun einen Servo bewegen, liegt die Idee nicht fern, die Bibliothek servo.h zu nutzen. Alleine das #include führt aber zu mehreren Fehlermeldungen und letztlich zum Abbruch. Beispielsweise wird __vector_17 mehrfach mit einem Wert versehen. Meine Suche nach dieser mutmaßlichen Konstante führt mich dann zu einer binären *.o-Datei. An dieser Stelle enden dann leider meine Kenntnisse und ich kann nicht mehr einschätzen, was nun eigentlich das Problem ist.

Es geht also zunächst darum, auf einem Pin ein Servosignal zu erzeugen, ohne die Schrittmotorsteuerung der MarlinFirmware zu stören.

agmue: Anleitung für Helfende:.... Es geht also zunächst darum, auf einem Pin ein Servosignal zu erzeugen, ohne die Schrittmotorsteuerung der MarlinFirmware zu stören.

Danke agmue, für deine Aufklärung. Da das wohl nicht so ganz trivial ist, sollte der TO sich deines Tipps annehmen und den Servo über einen weiteren Cotroller steuern.

Wenn sich in diesem Forum niemand damit auskennt, dann möglicherweise im Firmware - Marlin Everything about Marlin firmware : Discussions, questions, support and feature requests.

Interessanterweise lese ich da was von Servos, ist in Marlin eventuell schon eine Servo-Funktionalität eingebaut, weshalb es zu Konflikten kommt?

Ja das ist das auch ein Problem, die Software ist dafür vorbereitet dass ein Servo benutzt werden kann um einen Microschalter für das Homing der Z-Achse zu benutzen. Diese funktion brauche ich nicht und ist daher deaktiviert. Jedoch möchte ich aber einen Servo fur das hotend verwenden, was aber in der software noch nicht vorgesehen ist.... Ich denke da muss ich auf ein zusätzliches Board zurückgreifen....

Wolle93: Diese funktion brauche ich nicht und ist daher deaktiviert.

Wenn Du diese Funktion aktivierst, würde sich ein angeschlossener Servo in bestimmten Situationen drehen?