Seite 1 von 3

XY-Positions-Genauigkeit

Verfasst: Di 4. Apr 2017, 20:41
von mhier
Bei meinen Versuchen, PCBs zu Fräsen, habe ich festgestellt, dass die Positionierung in X/Y teilweise Fehler in der Größenordnung um 0.2mm hat. Das ist für mich "tödlich", da meine Leiterbahnen 0.4mm breit sind (und ggf. auch mal schmaler). Der Effekt ist ziemlich sicher nicht mechanisch, da ich ihn mit dem selben G-Code sehr gut reproduzieren kann. Als Beispiel habe ich den G-Code auf ein Fragment reduziert, der eine Leiterbahn fräst. Ein Stück dieser Leiterbahn wird leider so schmal, dass kein Kupfer mehr übrig bleibt.

Interessant ist, dass es offensichtlich von den vorhergehenden Bewegungen abhängt. Reduziere ich den Code noch weiter auf nur die beiden Linien, die zu eng werden (und natürlich die nötigen Travel-Bewegungen dazwischen), stimmt der Abstand.

Der G-Code, mit dem sich das Problem reproduzieren lässt, ist folgender:
Code
%
M3005 S6 ; enable debug output
M3060 ; print firmware version
G90 ; absolute coordinates
M3153 ; output matrix
M3141 ; turn z compensation on
%
M48
M71
G21
G90
T01C0.0
T02C0.0
T03C0.0
T04C0.1
T05C0.0
T06C0.0
T07C0.0
T08C3.0
T09C-1.0
T10C2.0
%
%
G36 T 3
G00 X36.1122 Y03.3750 F100
G01 X30.6800 Y03.3750 F30
G01 X30.6800 Y10.8348 F30
G01 X30.6496 Y10.9083 F30
G01 X28.1096 Y13.4483 F30
G01 X28.0533 Y13.5046 F30
G01 X27.9798 Y13.5350 F30
G01 X21.1550 Y13.5350 F30
G01 X21.1550 Y25.9522 F30
G01 X22.9733 Y27.7704 F30
G01 X22.9733 Y27.7704 F30
G01 X23.0296 Y27.8267 F30
G01 X23.0600 Y27.9002 F30
G01 X23.0600 Y30.0836 F30
G01 X23.1059 Y30.0909 F30
G01 X23.2631 Y30.1419 F30
G01 X23.4103 Y30.2170 F30
G01 X23.5440 Y30.3141 F30
G01 X23.6609 Y30.4310 F30
G01 X23.7580 Y30.5647 F30
G01 X23.8331 Y30.7119 F30
G01 X23.8841 Y30.8691 F30
G01 X23.9100 Y31.0324 F30
G01 X23.9100 Y31.1976 F30
G01 X23.8841 Y31.3609 F30
G01 X23.8331 Y31.5181 F30
G01 X23.7580 Y31.6653 F30
G01 X23.6609 Y31.7990 F30
G01 X23.5440 Y31.9159 F30
G01 X23.4103 Y32.0130 F30
G01 X23.2631 Y32.0881 F30
G01 X23.1059 Y32.1391 F30
G01 X22.9426 Y32.1650 F30
G01 X22.7774 Y32.1650 F30
G01 X22.6141 Y32.1391 F30
G01 X22.4569 Y32.0881 F30
G01 X22.3097 Y32.0130 F30
G01 X22.1760 Y31.9159 F30
G01 X22.0591 Y31.7990 F30
G01 X21.9620 Y31.6653 F30
G01 X21.8869 Y31.5181 F30
G01 X21.8359 Y31.3609 F30
G01 X21.8100 Y31.1976 F30
G01 X21.8100 Y31.0324 F30
G01 X21.8359 Y30.8691 F30
G01 X21.8869 Y30.7119 F30
G01 X21.9620 Y30.5647 F30
G01 X22.0591 Y30.4310 F30
G01 X22.1760 Y30.3141 F30
G01 X22.3097 Y30.2170 F30
G01 X22.4569 Y30.1419 F30
G01 X22.6141 Y30.0909 F30
G01 X22.6600 Y30.0836 F30
G01 X22.6600 Y28.0228 F30
G01 X20.8417 Y26.2046 F30
G01 X20.8417 Y26.2046 F30
G01 X20.7854 Y26.1483 F30
G01 X20.7550 Y26.0748 F30
G01 X20.7550 Y13.2952 F30
G01 X20.7854 Y13.2217 F30
G01 X20.8417 Y13.1654 F30
G01 X20.9152 Y13.1350 F30
G01 X27.8572 Y13.1350 F30
Vor der Ausführung des Codes home ich alle Achsen, setze den Z-Origin (zum Test natürlich knapp über der Oberfläche) und anschließend den X/Y-Origin. Dann führe ich die Befehle von der SD-Karte aus. Die beiden Linien, die zu eng werden, sind diese:

Code: Alles auswählen

G01 X27.9798 Y13.5350 F30
G01 X21.1550 Y13.5350 F30
und:

Code: Alles auswählen

G01 X20.9152 Y13.1350 F30
G01 X27.8572 Y13.1350 F30
Wie gesagt, reduziere ich de G-Code auf Header plus diese vier Zeilen ist alles in Ordnung. Ich werde versuchen, das mal noch weiter zu reduzieren und evtl. auch Debug-Output von der Konsole zu bekommen.

Hat jemand so etwas schon mal beobachtet? Wo könnten die Ursachen liegen?

Ich bin auf unserer Community-Firmware-Version, aber ich denke nicht, dass wir dort etwas in der Richtung verhunzt haben. Alle Änderungen betreffen meines Wissens ja die Z-Achse, und die scheint nicht betroffen.

PS: Zum schnellen Ansehen des G-Codes empfehle ich folgendes Web-Tool: https://nraynaud.github.io/webgcode/

Re: XY-Positions-Genauigkeit

Verfasst: Di 4. Apr 2017, 21:09
von mhier
Hmm, vielleicht ist es doch ein mechanisches Problem. Ich kann es jetzt plötzlich irgendwie nicht mehr reproduzieren... Interessant ist, dass nur horizontale Leiterbahnen zu eng werden.

Re: XY-Positions-Genauigkeit

Verfasst: Di 4. Apr 2017, 21:30
von AtlonXP
Hallo mhier,

einfach mal so von mir in den Raum gestellt:
Könnte es sein, dass bei dem Homing der X und auch der Y Achse, die Wiederholgenauigkeit leidet?
Wenn ich mir es so anschaue, wie zart das Homing bei der Z Achse ist.

LG AtlonXP

Re: XY-Positions-Genauigkeit

Verfasst: Mi 5. Apr 2017, 11:16
von Nibbels
Wenn es Wiederholgenauigkeit wäre, müsste doch alles nur verrutscht sein. Aber dann würden keine Leitungen zu dünn werden?
Hast du minimal Stepverluste?
Kannst du dir mal die Motorströme in der RF1000.h prüfen?

LG

Re: XY-Positions-Genauigkeit

Verfasst: Mi 5. Apr 2017, 12:46
von mhier
Hallo,

wie gesagt, ich bin mir im Moment selbst nicht mehr ganz sicher, wie es zu reproduzieren ist. Homing spielt keine Rolle, da wie Nibbels schon sagt, beide Linien gleich betroffen wären, und außerdem der Nullpunkt ohnehin durch den XY-Origin festgelegt werden muss (mit eher schlechterer Genauigkeit als das Homing vermute ich, aber eben wieder gleich für beide Linien).

Schrittverluste sollten eher nicht auftreten, da zumindest bei meinen Tests ja gar keine Kraft auf den Schlitten/Tisch ausgeübt werden, und selbst im Fräsbetrieb die Kraft extrem klein sein dürfte (wir sprechen hier von einer Graviernadel mit 0.1mm bis 0.2mm Spitze, die ca. 0.05mm tief eingetaucht wird - die Nadel wird eher brechen als dass sie einen Schrittverlust verursacht).

Außerdem bin ich mir relativ sicher, dass der Effekt reproduzierbar ist, ich weiß nur gerade nicht genau wie. Ich habe schon mal die selbe G-Code-Datei zweimal gefräst und beide male waren die selben Leiterbahnen zu dünn.

Ich werde mir das heute abend noch mal genauer ansehen. Evtl. tritt das Problem nur auf, wenn ich exakt die gleiche Prozedur vorher durchführe (also Homing, Z-Origin und XY-Origin setzen etc.). Leider ist das ganze recht schwer zu sehen, da der Effekt eben nicht groß ist und ich nicht jedesmal echt fräsen möchte...

Re: XY-Positions-Genauigkeit

Verfasst: Mi 5. Apr 2017, 16:52
von AtlonXP
Hallo,

eure Argumente zur Homing Wiederholgenauigkeit sind richtig.

Noch eine Beobachtung von mir:
Schaut euch genau das Treibende Zahnriemenrad am Motor an, wenn eurer Drucker in Betrieb ist.

Auf der Seite wo gerade gezogen wird am Zahnriemen liegt der Zahnriemen über ein Viertel des
Kreisumfanges komplett am Treibenden Rad an.
Auf der gegenüber liegende Seite der Treibenden Riemenscheibe wo der Riemen im Rücklauf ist (nicht unter Zug ist),
liegt der Riemen ersichtlich nicht so gut an.
Er steht sogar zuerst leicht ab, bevor er zum Umkehrpunkt kommt und dann unter Zug steht.

Dreht der Motor anders rum, dann entsteht hier ein Wechselspiel.

Ich nenne es mal vorsichtig Schlupf, ob der Fachbegriff zutreffend hierfür ist, weiß ich nicht genau.
Man kann diesem Effekt entgegen wirken, in dem man den Zahnriemen stärker spannt.

Ich selber bin aber kein Freund von zu stark gespannten Riemen.
Es bedeutet mehr Verschleiß, der Modul könnte nicht mehr stimmen durch Überdehnung und bei unserem Spielzeug,
geben die Riemenspanner vorher nach.

Wen es interessiert, hier noch ein Link:
http://www.rf1000.de/viewtopic.php?p=13176#p13176

Da fällt mir noch eine alte Fräser Regel ein!
Wenn man ohne Kugelumlaufspindel fräst, sollte man immer im Gegenlauf fräsen.
Das trifft auf unser Spielzeug in der X und Y Achse zu.
Ich hoffe, ich konnte euch weiter helfen.


LG AtlonXP

Re: XY-Positions-Genauigkeit

Verfasst: Mi 5. Apr 2017, 21:06
von mhier
Hallo,

also der Effekt ist durchaus reproduzierbar. Ich hatte mich nur in die falsche Annahme versteift, dass die "untere" der beiden Linien (mit kleinerem y), die als zweites gezogen wird, falsch sei. Es ist aber offensichtlich die erste, obere der beiden Linien. Entsprechend hängt der Effekt wohl von der Bewegung vor dem Ziehen dieser Linie ab. Führe ich erst die Bewegungen aus, die zum Fräsen der Leiterbahn notwendig sind, fährt er nicht weit genug und zieht die Linie bei zu kleinem y. Entsprechend ist sie dann später zu dicht an der unteren Linie.

Ich habe gerade schon ausprobiert, den Riemen stärker zu spannen, das macht überhaupt keinen Unterschied. Ein Spiel (in Form einer Hysterese) kommt auch nicht in Frage, dann müsste die zweite Linie der Verursacher sein (wegen der Richtung, aus der er kommt). Deswegen, und wegen der exakten Reproduzierbarkeit, gehe ich also davon aus, dass etwas in der Firmware falsch läuft. Ich muss mir wohl mal die Step-Positionen ausgeben lassen...

Übrigens geht es ums Gravieren feiner Linien. Im Gegenlauf fräsen geht nicht, man fräst ja sozusagen immer gleichzeitig im Gegen- und Gleichlauf ;-) Außerdem kann ich den Effekt ja ganz ohne Fräsen reproduzieren. Bei den Tests habe ich die Graviernadel knapp über der Oberfläche fahren lassen und mit der Taschenlampe einen Schatten auf die bereits gefräste Platine geworfen. Dadurch kann ich sehr genau sehen, was da passiert.

Re: XY-Positions-Genauigkeit

Verfasst: Mi 5. Apr 2017, 22:24
von Wessix
Nur so als Tipp, das würde ich natürlich auch Conrad melden, das dass hier dann evtl vom mhier gelöst wird ist zwar toll, aber ich sehe den Erbauer da schon irgendwie in der Pflicht....

Re: XY-Positions-Genauigkeit

Verfasst: Do 6. Apr 2017, 00:22
von rf1k_mjh11
Ob das eine Ursache ist oder nicht, weiß ich nicht. Jedenfalls kann ich folgendes bestätigen:
AtlonXP hat geschrieben:Noch eine Beobachtung von mir:
Schaut euch genau das Treibende Zahnriemenrad am Motor an, wenn eurer Drucker in Betrieb ist.

Auf der Seite wo gerade gezogen wird am Zahnriemen liegt der Zahnriemen über ein Viertel des
Kreisumfanges komplett am Treibenden Rad an.
Auf der gegenüber liegende Seite der Treibenden Riemenscheibe wo der Riemen im Rücklauf ist (nicht unter Zug ist),
liegt der Riemen ersichtlich nicht so gut an.
Er steht sogar zuerst leicht ab, bevor er zum Umkehrpunkt kommt und dann unter Zug steht.

Dreht der Motor anders rum, dann entsteht hier ein Wechselspiel.
Ich beobachte das schon lange -- an der Umlenkrolle der Y-Achse. Man sieht schön, wie die beiden Riemenhälften einmal weiter links, dann wieder weiter rechts stehen.

mjh11

Re: XY-Positions-Genauigkeit

Verfasst: Do 6. Apr 2017, 13:10
von mhier
Wessix hat geschrieben:Nur so als Tipp, das würde ich natürlich auch Conrad melden, das dass hier dann evtl vom mhier gelöst wird ist zwar toll, aber ich sehe den Erbauer da schon irgendwie in der Pflicht....
Ich hoffe ja mal die lesen mit :-)

Zum Thema Wechselspiel: Das wird aber doch vermutlich immer so aussehen, dass nach der Richtungsumkehr der Schlitten/Tisch nicht weit genug fährt, oder? Ich kann das z.Z. nicht 100%ig ausschließen, da er am Anfang vor der ersten betroffenen Linie in meinem Code-Beispiel nur in eine Richtung fährt (in y). Ich werde das heute abend noch mal testen. Es könnte natürlich sein, dass ich meinen XY-Origin immer von positiven Y her gesetzt habe. Meistens fahre ich da aber eher ein paar mal hin und her...