U-axis without limit
-
Hi, short of compiling my own firmware, is there an easy way to set up a rotational axis without a limit on a cnc ?
M550 PSPHINX CNC ; Set machine name
M552 S1 ; Enable network
M586 P0 S1 ; Enable HTTP
M586 P1 S0 ; Disable FTP
M586 P2 S0 ; Disable Telnet; Drives
M569 P0 S0 ; Drive 0 goes backwards
M569 P1 S1 ; Drive 1 goes forwards
M569 P2 S0 ; Drive 2 goes backwards
M569 P3 S1 ; Drive 3 goes forwards
M569 P4 S0 ; Drive 4 goes forwards
M584 X0:3 Y1 Z2 ; Apply custom drive mapping
M584 U4 S1M92 X400 Y400 Z400 U53.33333 ; Set steps per mm
M350 X16 Y16 Z16 U16 I1 ; Configure microstepping with interpolation
M566 X500 Y500 Z500 U5000 ; Set maximum instantaneous speed changes (mm/min)
M203 X3000 Y3000 Z3000 U10000 ; Set maximum speeds (mm/min)
M201 X150 Y150 Z150 U500 ; Set accelerations (mm/s^2
M906 X2400 Y2400 Z2400 U2400 I30 ; Set motor currents (mA) -
@tntjet they are supported in the latest betas of 3.2
-
The question is how ? im currently on 3.2.
-
@tntjet If only there were a list of changes.... Oh wait
https://github.com/Duet3D/RepRapFirmware/blob/v3-dev/WHATS_NEW_RRF3.md
New features/changed behaviour:
When new axes are created using M584, if no R parameter is specified then the default for axes ABCD is now rotational. Use the R0 parameter if you want them to be linear.
M584 has a new S parameter which specifies whether new axes created in the command are to be treated as linear (S0) or rotational (S1) for the purpose of feedrate calculation. This is separate from the R parameter, which specifies whether new axes are rotational or not. The default is to treat linear axes as linear and rotational axes as rotational. You only need to provide the S parameter if you want to change the way that the feed rate is applied.Does that make sense? I'm not a CNC user.
-
@phaedrux, im not looking at having an argument i have read the change log over and over as well as the dozuki info , the issue im having is my axis is named U (it works with the pendant this way) changelog spesifies A,B,C,D.
Exerp from dozuki
M584: Set drive mapping
ParametersXnnn Driver number(s) for X motor(s)
Ynnn Driver number(s) for Y motor(s)
Znnn Driver number(s) for Z motor(s)
Rn (optional, supported in RRF 3.2beta1 and later) 0 = axes creates in this command are linear, 1 = axes created are rotational. If not present, then RRF 3.2beta3 and later assume UVW are linear and ABCD are rotational.
Sn (optional, supported in RRF 3.2beta3 and later) 0 = axes created in this command are treated as linear in feedrate calculations, 1 = axes created are treated as rotational in feedrate calculations. See section 2.1.2.5 of the NIST GCode standard for how the feedrate is interpreted. Default is S0 for linear axes and S1 for rotational axes (see the R parameter).
U, V, W, A, B, Cnnn Driver number(s) for additional axes U, V, W, A, B and C (UVW available in RepRapFirmware 1.16 and later; UVWABC available in RepRapFirmware 1.19 and later; UVWABCD available in RepRapFirmware 3.0 and later).
Ennn Driver number(s) for E motor(s)
Pnnn Number of visible axes, defaults to the total number of axes configured.im looking for an unlimited rotational axis . as far as i understand Im required to compile my own firmware to make this happen , I am not capable of compiling firmware can anybody help?
-
Sorry was just trying to be funny not have an argument. Was just trying to help.
-
@tntjet said in U-axis without limit:
im looking for an unlimited rotational axis . as far as i understand Im required to compile my own firmware to make this happen , I am not capable of compiling firmware can anybody help?
I don't know why you assume that. You could install 3.2 beta 4 right now if you wanted to test with it.
@tntjet said in U-axis without limit:
the issue im having is my axis is named U (it works with the pendant this way) changelog spesifies A,B,C,D.
From my reading of the changelog, yes I think you would have to use ABCD for a rotational axis. How does it conflict with the pendant?
-
@Phadrux The pendant only recognises the axis if it is named U. A,B,C or D wont work
-
@tntjet Do you have a link to the pendant?
-
-
I'm having trouble with this as well for an openpnp machine. Trying to move from using an "extruder" to a rotary axis for part rotation. But whether I define:
M584 X0 Y2 Z1 A3 or M584 X0 Y2 Z1 M584 U3 R1 or M584 X0 Y2 Z1 M584 A3
My rotary axis, either A or U, still only lets me move from 0 - 200 position. There is no infinite rotation.
Is there something beyond configuring the axis as a rotation axis to remove the limits?
Thanks
-
@cpirius AFAIK, you have to define it as an extruder. Extruders have no limits on distance.
-
@Stephen6309 they certainly do have unlimited rotation , unfortunately not helpful for cnc applications nor using a pendant.
-
I have added this to my list to look into for RRF 3.3.
-
@dc42 thank you David.
-
@dc42 Awesome, thanks
-
@wuem said in U-axis without limit:
imit. Ev
https://duet3d.dozuki.com/Wiki/Gcode#Section_M584_Set_drive_mapping
Rn allows you to set an axis as rotational. Like printing on a pot can maybe? -
Hi David. Thank your for good job!
Can someone did continues rotation?
I expect something like this:
M584 X1 R1; set X axis as continues rotational
//on working program
G1 X F100 ; rotate X continuesly with speed 100 or best way to use some new M code for rotation
G1 Y10 F200;
...
G1 X F300; after Y moved to 10 and some other things rotate X with speed 300
G1 Y-10 F200;
G1 X F0; after Y moved to -10 stop X rotationor may be somebody can suggest working solution, then I need continues rotation on pulling tape or similar.
One solution I see to use analog output connected to external drive with analog speed control like Spindle.
Thank you -
@rry
I guess for combined XY moves you have to define an angle for X, not just a speed.
EG. positive angle = clockwise, neg. angle = CCWG1 X1000 Y10 F100 ; turn X axis 10 times (100rad = 1 turn) while moving Y 10mm
-
@o_lampe
Yes, you are right, my g-code is wrong, i only tried to show idea that for continues rotation distance does not matter, you need only speed and direction.
seem the most correct way will use new M code for that purpose for example:
Mxxx Xnnn; start to rotate axis X with speed xxx (non blocking command!)
Mxxx A-600; rotate axis A (setup A as continuesly rotation in config) with speed 600 counter-clockwise -