timo1235 / ocs2.x-esp32-software

This Software is for the ESP32 on the OPEN-CNC-Shield 2.x
Other
5 stars 6 forks source link

AutoSquare und DRIVE_FROM_ENDSTOP_AFTER_AUTOSQUARE mit NC Endstops #2

Closed HartmutA closed 1 year ago

HartmutA commented 1 year ago

Hallo Timo, wenn ich DRIVE_FROM_ENDSTOP_AFTER_AUTOSQUARE auf true stelle, fährt der trotzdem bei mir nach dem AutoSquare nicht von den Endstops runter. Kann es daran liegen, dass ich die als Öffner verdrahtet habe? Aber dann müsste doch auch das autosquaring an sich nicht funktionieren, oder? Das ist bei mir so eingestellt: //--- Axis configuration for autosquare --- //-- Axis 1 --

define AXIS1_ACTIVE true

if AXIS1_ACTIVE

define AXIS1_MOTOR1 AXIS::x // Can be AXIS::x, AXIS::y, AXIS::z, AXIS::a, AXIS::b, AXIS::c

define AXIS1_MOTOR1_ENDSTOP_INPUT 1 // Can be a number between 1 and 10 for input 1-10

define AXIS1_MOTOR2 AXIS::a // Can be AXIS::x, AXIS::y, AXIS::z, AXIS::a, AXIS::b, AXIS::c

define AXIS1_MOTOR2_ENDSTOP_INPUT 2 // Can be a number between 1 and 10 for input 1-10

define AXIS1_STEPS_PER_REVOLUTION 1600 // How many steps are needed for a complete turn. Normal steppers need 200 steps. Now multiply the microstepp config. E.g. 200*8=1600

define AXIS1_MM_PER_REVOLUTION 32 // How many mm has the machine moved after one turn.

define AXIS1_AS_SPEED_MM_S 2 // The speed for autosquaring in mm/s

define AXIS1_REVERSE_MOTOR_DIRECTION true // Lets the motors rotate counter clockwise

endif

//-- Axis 2 --

define AXIS2_ACTIVE true

if AXIS2_ACTIVE

define AXIS2_MOTOR1 AXIS::y // Can be AXIS::x, AXIS::y, AXIS::z, AXIS::a, AXIS::b, AXIS::c

define AXIS2_MOTOR1_ENDSTOP_INPUT 3 // Can be a number between 1 and 10 for input 1-10

define AXIS2_MOTOR2 AXIS::b // Can be AXIS::x, AXIS::y, AXIS::z, AXIS::a, AXIS::b, AXIS::c

define AXIS2_MOTOR2_ENDSTOP_INPUT 4 // Can be a number between 1 and 10 for input 1-10

define AXIS2_STEPS_PER_REVOLUTION 1600 // How many steps are needed for a complete turn. Normal steppers need 200 steps. Now multiply the microstepp config. E.g. 200*8=1600

define AXIS2_MM_PER_REVOLUTION 32 // How many mm has the machine moved after one turn.

define AXIS2_AS_SPEED_MM_S 2 // The speed for autosquaring in mm/s

define AXIS2_REVERSE_MOTOR_DIRECTION true // Lets the motors rotate counter clockwise

endif

timo1235 commented 1 year ago

Der fährt erst runter, wenn alle Achsen gegen ihre Endstops gefahren sind. Wenn eine Achse noch nicht ausgelöst hat, wartet er noch. Vielleicht liegt es daran?

HartmutA commented 1 year ago

Erst sind 4 Kringel im Display. Dann fährt er an die Endstops. Die Motoren werden auch richtig angehalten. Dann sind im Display 4 Haken zu sehen. Die stehen doch für die Endstops, oder?

timo1235 commented 1 year ago

Die Haken zeigen an, dass der endstopp nicht mehr ausgelöst sind. Sind deine Endstopps normally closed? Hast du das selbst in der software geändert?

HartmutA commented 1 year ago

Ja, die Enstops sind normally closed, sprich als Öffner. In der Software habe ich nichts weiter geändert.

timo1235 commented 1 year ago

Ja, momentan ist es noch nicht möglich normally closed endstopps zu nutzen. Da muss ich noch eine Anpassung in der Firmware machen. Der denkt direkt beim Start, dass alle motoren ausgelöst haben, wegen der normally closed endstops. Das was bei dir dann Autosquaring ist, ist für die Steuerung das Herunterfahren von den Endstops. Daher passiert danach auch nichts mehr.

HartmutA commented 1 year ago

Ach so. Das ist etwas ungünstig für mich. Ich dachte, dass NC üblicher sind, wegen Kabelbruch und so. Ungünstig deswegen, weil ich die so richtig schön mit Heißkleber und Schrumpfschlauch zugekleistert habe. Ich glaube, ich warte geduldig, bis Du die Firmware angepasst hast. Leider kann ich nicht so gut programmieren, sonst würde ich da gerne helfen.

HaWiWe commented 1 year ago

Ich habe nun gerade zufällig diesen Thread hier gefunden und ärgere mich sehr, dass diese Funktion nicht eingebaut ist, vor allem, weil ich noch per Mail nachgefragt hatte, wie ich die Endstops verkabeln muss und auf ein Dokument verwiesen wurde aus der alten Anleitung, wo NC-Schalter empfohlen werden. Es ist alles zusammengebaut und ich habe gestern über 2.5 Stunden damit verbracht, zwischen Fräse und Computer hin- und herzurennen mit dem ESP32 und alles mögliche auszuprobieren. Sehr, sehr frustrierend, da es auch nirgendwo in der aktuellen Dokumentation erwähnt wird. Wann kann man mit einem Fix des Problems rechnen? Ich habe wenig Lust, alles neu zu verkabeln.

HartmutA commented 1 year ago

So dramatisch finde ich das jetzt nicht. Autosquaring geht ja an sich. Zumindest bei mir. Nur bleibt die CNC dann in den Endstops stehen. In Estlcam muss ich dann halt F11 drücken, um von den Endstops zu fahren. Oder hast Du ein anderes Problem?

HaWiWe commented 1 year ago

Ich kann das Autosquaring nicht nutzen, weil die Schalter trigger und sich die Fräse nicht bewegt. Drücke ich einen der Schalter, also so dass er offen ist, bewegt sich genau dieser Motor, die anderen nicht, weil sie denken, getriggert zu sein. Siehe hier: https://youtube.com/shorts/AApWYQcn8q0 Die Endschalter sind dauerhaft ausgelöst, die Fräse bewegt sich nicht. NC-Verkabelung.

HaWiWe commented 1 year ago

In Estlcam macht er die Referenzfahrt ohne Probleme, stoppt aber eben beide Motoren wenn ein Endstop triggert, ist also zum squaring nicht zu gebrauchen.

HartmutA commented 1 year ago

Generell muss man ja zwischen Referenzfahrt und Autosquaring unterscheiden. Theoretisch würde estlcam mit einem Endstopeingang zurecht kommen. In unserem Fall also alle Endstops in Reihe. Sobald irgend ein endstop auslöst, hält estlcam alle Achsen an. Für das Autosquaring benötigt man logischerweise für jeden Motor einen Endstop. Und die Motoren einer Achse müssen separat fahren können. Das ist ja der Sinn vom Autosquaring. Daher macht Estlcam selber kein AutoSquaring, sondern das CNC Shield. Sieh Dir mal oben meine Config an. Wenn Du die Endstops genauso verdrahtet hast, kannst Du das so übernehmen. Sonst ggf. die Pins anpassen. Ich mache das so: Ich mache fahre dicht an die Endstops und mache ein Autosquaring. Die Fräse bleibt dann an den Endstops stehen. Die Endstops für X1, X2, Y1 und Y2 sind dann in estlcam also rot. Dann fahre ich mit estlcam wieder von den Endstops runter (mit F11). Dann mache ich ein homing / Referenzfahrt.

taltholtmann commented 1 year ago

Heyy, kurzes update von mir. Die Unterstützung der NC Endstopps habe ich in der Software bereits fertig, konnte das aber noch nicht testen, da ich meine Fräse gerade auseinander gebaut habe. Daher habe ich das noch nicht hochgeladen. Kann ich aber kurzfristig machen. Dann könnt ihr das vielleicht eben bei euch testen.

HaWiWe commented 1 year ago

Heyy, kurzes update von mir. Die Unterstützung der NC Endstopps habe ich in der Software bereits fertig, konnte das aber noch nicht testen, da ich meine Fräse gerade auseinander gebaut habe. Daher habe ich das noch nicht hochgeladen. Kann ich aber kurzfristig machen. Dann könnt ihr das vielleicht eben bei euch testen.

Ja, kann ich sehr gerne machen, teste ich dann heute Nacht, wenn die Kinder schlafen oder morgen. Sorry für mein rumgenöle, es war gestern ein Uhr nachts und ich war super frustriert, weil ich eigentlich noch ein Projekt fräsen wollte. :D

HartmutA commented 1 year ago

Ich bekomme immer Mecker, wenn ich abends noch was fräse ;-) @timo1235: Ich könnte das heute noch testen, danach aber erst Montag wieder. Du könntest Doch einen Branch dafür machen, damit nicht aus Versehen jemand diese Version nimmt.

HaWiWe commented 1 year ago

Ich bekomme immer Mecker, wenn ich abends noch was fräse ;-)

Haha. :) Ich habe noch das Baby bis circa 10 oder 11, wenn meine Frau mir das abnimmt und ins Bett geht zische ich immer in die Werkstatt und hoffe, dass kein anderes Kind aufwacht. Aber das ist offtopic. :P

Branch ist eine gute Idee, soweit ich GitHub verstanden habe. Wenn zwei das testen, wird's wohl einer mindestens hinbekommen. :D

timo1235 commented 1 year ago

@HartmutA Hier ist der Merge request: https://github.com/timo1235/ocs2.x-esp32-software/pull/5

HartmutA commented 1 year ago

@timo1235 Grundsätzlich funktioniert das bei mir jetzt gut. Eine Sache ist da noch ein paar Mal passiert. Das Autosquaring hat mehrmals nicht "begriffen" dass die Endstops schon ausgelöst sind. Das hatte zur Folge, dass die Achse weiterfahren wollte, obwohl die schon am Anschlag war. Bei mir passiert da nichts, die Endstops halten mehr aus, als die Stepper bringen. Es rappelt dann halt ordentlich in der Kiste. Aber ich habe trotzdem die Speed_mm_s von 20 auf 10 gestellt. Dann fährt der ggf. nicht so schnell gegen die Wand. Ich habe aber nicht herausbekommen, warum das so ist. Mein Gefühl sagt mir, dass die Achse(n) zu dicht am Endstop war(en). Es ist mit der X und der Y Achse passiert. Aber nicht gleichzeitig (glaube ich). Mehrfaches Autosquaring direkt hintereinander war kein Problem. Vlt. stimmt was mit meinem Gefühl nicht ;-) Meinetwegen kannst Du das mergen. Das eigentliche Thema ist ja erledigt. Du kannst das wohl erst fixen, wenn Deine CNC wieder läuft. Falls mir noch was auffällt, mache ich einen neuen Issue..