Polar Printer G92 Y0 / G1 Y(x) issues
-
Hello,
I'm having a couple of teething issues with a new printer based on polar kinematics.
I'm using motor stall to home X & Z while in the prototype stage. and for Y, I'm just setting wherever it is to be 0 at time of homing. However, if I use "G92 Y0" the homing fails. I have to couple it with X or Z for some reason such as G92 X0 Y0. Any ideas on why this is?The second and more problematic issue is that if I use a G1 (H0) Y50 command, both the X and the Y axes move... However, it seems that G1 X50 or G1 Z50 works just fine and the Y axis stays still.
G1 H2 moves go as planned, which is what I was using to get around it for the time being, but now I need continuous moves which H2 can't do it seems.I'm assuming the two are related, but I can't figure it out for trying... Any help would be greatly appreciated!
Below are my config and homeall files:
Config:
; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"Test Printer" ; set printer name ; Network M552 S1 ; enable network M586 P0 S1 ; enable HTTP M586 P1 S0 ; disable FTP M586 P2 S0 ; disable Telnet ; Drives M569 P0 S1 ; physical drive 0 goes forwards (X) M569 P1 S1 ; physical drive 1 goes forwards (Y) M569 P2 S1 ; physical drive 2 goes forwards (Z) M569 P3 S0 ; physical drive 3 goes baackwards (extruder) M569 P4 S0 ; physical drive 4 goes backwards (exteruder 2/Y-axis 2) M574 X1 Y1 Z1 S3 ; Sensorless homing for X and Z axes (and Y) M915 X S2 R0 F0 ; Set stall detection parameters for X axis M915 Z S1 R0 F0 ; Set stall detection parameters for Z axis M669 K7 H165 R0:157.5 F360 A30 ; set Polar kinematics parameters M584 X0 Y1:4 Z2 E3 ; set drive mapping M92 X1600.00 Y17.778 Z200.00 E837.00 ; set steps per mm M350 X16 Z16 E16 I0 ; configure microstepping without interpolation M350 Y16 I1 ; configure microstepping with interpolation M566 X900.00 Y900.00 Z900.00 E120.00 ; set maximum instantaneous speed changes (mm/min) M203 X1800.00 Y10000 Z3600.00 E1200.00 ; set maximum speeds (mm/min) M201 X500.00 Y500.00 Z50.00 E250.00 ; set accelerations (mm/s^2) M906 X1200 Y800 Z1200 E1200 I30 ; set motor currents (mA) and motor idle factor in per cent M84 S30 ; Set idle timeout ; Axis Limits ; Endstops ; WARNING: No endstops configured ; Z-Probe ; Heaters M308 S0 P"bedtemp" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on pin bedtemp M950 H0 C"bedheat" T0 ; create bed heater output on bedheat and map it to sensor 0 M307 H0 B0 S1.00 ; disable bang-bang mode for the bed heater and set PWM limit M140 H0 ; map heated bed to heater 0 M143 H0 S120 ; set temperature limit for heater 0 to 120C M308 S1 P"e0temp" Y"thermistor" T100000 B4138 ; configure sensor 1 as thermistor on pin e0temp M950 H1 C"e0heat" T1 ; create nozzle heater output on e0heat and map it to sensor 1 M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit M143 H1 S280 ; set temperature limit for heater 1 to 280C ; Fans M950 F0 C"fan0" Q500 ; create fan 0 on pin fan0 and set its frequency M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off M950 F1 C"fan1" Q500 ; create fan 1 on pin fan1 and set its frequency M106 P1 S1 H1 T60 ; set fan 1 value. Thermostatic control is turned on ; Tools M563 P0 D0 H1 F0 ; define tool 0 G10 P0 X0 Y0 Z0 ; set tool 0 axis offsets G10 P0 R0 S0 ; set initial tool 0 active and standby temperatures to 0C ; Custom settings are not defined
Homeall:
M400 M913 X50 Z30 ; set motor current to 30% M400 G91 ; relative positioning G1 H1 X-5 F1000 M913 X40 ;set X motor current lower after first move G1 H1 Z-305 F3600 ; move quickly to X and Z axis endstops and stop there (first pass) G1 H1 X-305 F1000 ; move quickly to X and Z axis endstops and stop there (first pass) G1 H2 X5 Z5 F3600 ; go back a few mm G1 H1 Z-305 F3600 ; move slowly to X and Y axis endstops once more (second pass) G1 H1 X-305 F1000 ; move slowly to X and Y axis endstops once more (second pass) G1 H2 Y0 F6000 ; Move Y to 0 (if current position in known) M400 G90 ; absolute positioning G92 X0 Y0 Z0 ; Set current position as X=0 & Y=0 M400 M913 X100 Z100 ; set motor current to 100% M400
-
@siridean said in Polar Printer G92 Y0 / G1 Y(x) issues:
However, if I use "G92 Y0" the homing fails. I have to couple it with X or Z for some reason such as G92 X0 Y0. Any ideas on why this is?
It's because when you send G92 Y0, you are saying that the Cartesian Y coordinate is zero (not the Y motor position). RRF can't work out the motor positions without knowing the X coordinate too. I suggest you home X first, then use a G92 Xnnn Y0 command.
The second and more problematic issue is that if I use a G1 (H0) Y50 command, both the X and the Y axes move... However, it seems that G1 X50 or G1 Z50 works just fine and the Y axis stays still.
Again, G1 H0 Y50 is telling the printer to move the head to Cartesian coordinates of Y50 and X unchanged. In general this requires movement from both the bed and radius motors. Slicers normally generate G commands in Cartesian coordinates, so RRF converts them to polar for you. A G1 command that changes only X will also move the bed motor unless the Y coordinate is zero.
If you want to drive your machine using polar coordinates in the G1 commands, configure it as if it is a Cartesian machine instead.