Scara support ?
-
No you can't redefine the origin with G92. However, you can use the M669 X and Y parameters to set the origin wherever you like, as we discussed previously.
The way the calculation is done is as follows:
-
The X axis is the direction that the proximal arm points along when its angle is zero. You can choose where you consider the zero angle to be, however it would generally be sensible to have it near the middle of its range of movement. When you have chosen the position that you consider to be zero angle, that determines what the minimum and maximum angles are, which you specify in the M669
DP parameters (and either the minimum or the maximum one is the trigger point of the proximal joint homing switch). -
The zero angle of the distal joint is defined as the angle when both arms are lined up.
-
If you specify X and Y offsets of zero in the M669 command, then X0 Y0 will be the position of the axis of the proximal joint (which is an unreachable position in most SCARA architectures). So specify X and Y in the M669 command relative to that. I would expect that in a typical case, the X offset will be positive by an amount somewhat smaller than the square printable X range, and the Y offset will be negative by about half the square printable Y range.
I will add this info to the wiki.
There is a SCARA printer kit on its way to me, so I should be able to test all of this in a couple of weeks.
HTH David
EDIT: I've corrected the above text, and added it and a Calibration section to the wiki page.
-
-
OK
So for the moment I am obliged to declare in M669 xxx / yyy exactly at the position of the endstopsNo way to shift the origins to have x0 / y0 at the exact angle of the bed?
-
Where are your endstops, and what sort are they? Photo?
-
The end stop are hall effect, Logic on 3.3v / v + on 5v
Photos and tests tomorrow scara is at fablab …
Edit:
I need to be able to shift the position after homing to x0 / y0
Either with M206
Either with G92 after move on x0/y0
how to do ? -
Hello,
The X/Y travel limiters do not set to zero Z is ok
All End-Stops are well detected the engines stopMy config
Firmware Name: RepRapFirmware for Duet WiFi
Firmware Electronics: Duet WiFi 1.0
Firmware Version: 1.19RC5 (2017-08-06)
WiFi Server Version: 1.19beta10
Web Interface Version: 1.17+2My file homeall.g
[[language]] ; File homeall.g ;G91 ; relative movement ;G1 Z4 F100 ; ensure head is clear of the bed ; Home proximal joint G91 G1 S1 X-200 F3000 ; move proximal joint clockwise by up to 200 degrees until the endstop switch is triggered G1 S2 X5 ; move proximal joint anticlockwise by 10 degrees G1 S1 X-20 F300 ; move proximal joint slowly to the endstop switch again G90 ; absolute movement ;G1 S2 X0 F3000 ; move proximal joint to centre of range ; Home distal joint G91 ; relative movement G1 S1 Y200 F3000 ; move distal joint clockwise by up to 200 degrees until the endstop switch is triggered G1 S2 Y-5 ; move distal joint anticlockwise by 10 degrees G1 S1 Y20 F300 ; move distal joint slowly to the endstop switch again G90 ; absolute movement ;G1 S2 Y0 F3000 ; move distal joint to centre of range ; Home Z G91 ; relative movement G1 S1 Z400 F250 ; ensure head is clear of the bed ;G1 S2 Z10 ; move proximal joint anticlockwise by 10 degrees ;G1 S1 Z-20 F100 ; move proximal joint slowly to the endstop switch again G90 ; absolute movement
My file config.g
[[language]] ; General preferences M111 S0 ; S0 Debugging off S1 ; Debugging on G21 ; Work in millimetres G90 ; Send absolute coordinates... M83 ; ...but relative extruder moves M555 P2 ; Set firmware compatibility to look like Marlin M208 X0 Y0 Z0 S1 ; Set axis minima M208 X300 Y300 Z380 S0 ; Set axis maxima ; Endstops M574 X1 Y1 S0 ; Define active low microswitches M574 Z2 S0 ; Define active high microswitches ; Drives - Axis and motor configuration M569 P0 S0 ; Drive 0 (X) goes forwards M569 P1 S1 ; Drive 1 (Y) goes forwards M569 P2 S1 ; Drive 2 (Z) goes forwards M569 P3 S0 ; Drive 3 (E0) goes forwards ;M350 X16 Y16 Z16 E16 I1 ; Configure microstepping with interpolation M350 X256 Y256 Z16 E16 I1 ; Configure 256 microstepping with interpolation ;Calcul Step/mm X/Y (Réduction 80/16) ==> 400*256*(160/16)/360=2844,4444444444444444444444444444 ;Calcul Step/mm Z (Réduction 51/1) ==> 200*256*51/2.0/20=6528 M92 X2844,4444444444444444444444444444 Y2844,4444444444444444444444444444 Z4080 E550 ; Set steps per mm M566 X300 Y300 Z15 E75 ; Set maximum instantaneous speed changes (mm/min) M203 X6000 Y6000 Z300 E1500 ; Set maximum speeds (mm/min) M201 X300 Y300 Z250 E800 ; Set accelerations (mm/s^2) M906 X1400 Y1400 Z1400 E1000 I60 ; Set motor currents (mA) and motor idle factor in per cent M84 S30 ; Set idle timeout M669 K4 P200 D200 A-175:175 B-175:175 1:0:0 S150 T0.1 X85.0 Y-150.0; set SCARA kinematics parameters ok S200
Upload video in progress catastrophic connection to fablab …
-
-
if i send
[[language]] SENDING:G28 X0 Homing file homeproximal.g not found
[[language]] SENDING:G28 Y0 Homing file homedistal.g not found
poroblem is here ?
-
I've just corrected the wiki page about configuring a SCARA printer. The proximal joint and distal joint homing files are called homeproximal.g and homedistal.g, not homep.g and homed.g as I documented originally.
-
Hi
Added files
same problem G28 wont reset coordonate X/Y (Z ok)
position is ok motor stop but X/Y Does not go to zerosee video
http://dl.free.fr/jhn5CLUfH -
if i test just
[[language]] G1 S1 X-200 F3000 ```move ok stop position ok but not Zero coordonate ….
-
Nvm, got the video to finally download.
-
Hi
[[language]] G1 S1 X-200 F3000 ```Wont reset zero coordonate, Bug ?
-
I need to be able to shift the position after homing to x0 / y0
Either with M206
Either with G92 after move on x0/y0
how to do ?To shift the X=0 Y=0 point:
1. Make sure that you have set the arm angle limits in the M669 command P and D parameters accurately, so that when you home the arms the homing switches trigger at those angles.
2. To verify this, after homing, send G0 X0 Y0 S2 F2000. This will send both arms to zero angle. Check that both arms are pointing along the direction that you have chosen for the X axis. Note: The "arms" are the lines from the proximal joint to the distal joint, and from the distal joint to the nozzle. These are the lines that must both point along the X axis at zero angle. If you have joints and/or the nozzle offset to one side from the physical arm, then the physical arm will not point along the X axis.
3. The X and Y parameters in the M669 command specify the X and Y offsets of (0,0) from the location of the distal joint. If you send G0 X0 Y0 F2000 (without the S2 modifier) then it will go to that position. You can put this command at the end of your homeall.g file if you wish. If this doesn't send the head to where you want X0 Y0, and step #2 above worked correctly, then you need to adjust the X and/or Y parameters.
-
Hello
Sorry but I do not understand …1. Make sure that you have set the arm angle limits in the M669 command P and D parameters accurately, so that when you home the arms the homing switches trigger at those angles.
M669 P and D commands are the lengths of the arms?
You are talking about Annn: mmm and Bnnn: mmm?Is it possible that you give me the approximate values (aaa … bbb) by looking at my schema as I understand the sense of the measurement of angles? compared to what ?
M669 K4 P200 D200 A??? B??? 1:0:0 S150 T0.1 X65.0 Y-150.0; set SCARA kinematics parameters ok S200
-
I find it easier to understand if I rotate that diagram by 180 degrees so that +X is to the right and +Y is up.
If the diagram shows the arms in the homed position (i.e. both arm joint microswitches triggered), then the homing position of the proximal joint is about -120 degrees. So your P parameter should be -120:xxx where xxx is the maximum angle it can rotate anticlockwise relative to the X axis.
The distal joint appears to me to be at an angle of approximately +150 degrees relative to the proximal arm. So the D parameter should be -yyy:150 where yyy is the maximum angle it can reach clockwise relative to the proximal arm.
The proximal arm homes fully clockwise (bottom end of its range) whereas the distal arm homes fully anticlockwise (top end of its range). So your M574 X and Y parameters need to be X1 Y2.
See the expanded calibration section at https://duet3d.com/wiki/Configuring_RepRapFirmware_for_a_SCARA_printer#Calibration.
-
Hello
I do not understand why you talk about P and D
P and D are the length of the arms?Tonight we were 4 people at the fablab to try to understand
Not successful …
I rework on scara Monday -
Delete if this is of no help.
-
Hello
I do not understand why you talk about P and D
P and D are the length of the arms?Tonight we were 4 people at the fablab to try to understand
Not successful …
I rework on scara MondayI am sorry, you are right, I should have said A and B, not P and D.
I have a SCARA printer now and I expect to convert it to Duet electronics next week.
-
Hello
Thanks to you two for the help provided
Monday I retest the homing
Impatient to see your scara !
-
Hello
inverted Endstop on y2
Finally i have homigs that workCalibration is complicated it would be nice to think a more simple mode,
It is easy to have precisely the values of X and Y in M669
On the other hand, finding the values A and B is difficult.For example, g28 moves to endstop position,
after we move with G1 x / y precisely to real x0/y0
And with a command define A and B (ex: g92 x0 y0), possible?Possible to forbid z + if limit switch is activated, how to do?
I want to test your IR sensor, offsets are managed on scara ?
https://duet3d.com/wiki/Configuring_RepRapFirmware_for_a_Cartesian_printer#Z_probe_section