move outside of machine limits with G2 move, in tool 2
-
when printing with tool 2, I often get a "outside of machine limits" error at the first G2 movement of a Gcode, even if the moves are well within these limits. Below I attached my config, the first part of the failing code, and the console with error.
Testing I already did;
- The same code does print correctly with Tool 1.
- The same model (nothing else changed) does print when arc fitting is disabled
Could this be a bug?
Console;
24/01/2025, 12:04:19: Connected to one.local 24/01/2025, 12:05:07: Connection established 24/01/2025, 12:05:57: M32 "0:/gcodes/ONE_P-0026789 v1_0.2mm_PETG_1d13h17m.gcode": File 0:/gcodes/ONE_P-0026789 v1_0.2mm_PETG_1d13h17m.gcode selected for printing 24/01/2025, 12:06:01: : Warning: Tool 0 was not driven because its heater temperatures were not high enough or it has a heater fault 24/01/2025, 12:07:58: : Leadscrew adjustments made: 0.715 1.917 0.735, points used 3, (mean, deviation) before (0.464, 0.433) after (-0.000, 0.000) 24/01/2025, 12:08:33: : Leadscrew adjustments made: 0.283 0.278 0.292, points used 3, (mean, deviation) before (0.290, 0.004) after (-0.000, 0.000) 24/01/2025, 12:10:09: : Cancelled printing file 0:/gcodes/ONE_P-0026789 v1_0.2mm_PETG_1d13h17m.gcode, print time was 0h 4m 24/01/2025, 12:10:09: : Error: in GCode file line 53: G2: outside machine limits <---------------- this is the error I mean
Gcode;
; generated by PrusaSlicer 0.1.0 on 2025-01-23 at 14:07:14 UTC ; Speed; ** ; Visual; ** ; Strengh ;***** ; external perimeters extrusion width = 0.44mm ; perimeters extrusion width = 0.44mm ; infill extrusion width = 0.44mm ; solid infill extrusion width = 0.44mm ; top infill extrusion width = 0.44mm ; first layer extrusion width = 0.44mm M201 X7000 Y7000 Z200 E10000 ; sets maximum accelerations, mm/sec^2 M203 X24000 Y24000 Z720 E6000 ; sets maximum feedrates, mm / min M204 P4000 T5000 ; sets acceleration (P, T), mm/sec^2 M566 X480.00 Y480.00 Z120.00 E1200.00 ; sets the jerk limits, mm/min ; printing object P-0026789 v1.stl id:0 copy 0 ; stop printing object P-0026789 v1.stl id:0 copy 0 ;TYPE:Custom ;Prusaslicer section; ; Define prusaslicer variables ; called with M98 P"0:/macros/print-start" M98 P"0:/macros/print-start" A220 B240 C50 D243.852 E356.148 F193.852 H306.148 I1 J"false" K"true" L"FLEX" O"PETG" Q0.4 R0.4 S150 T170 G21 ; set units to millimeters G90 ; use absolute coordinates M83 ; use relative distances for extrusion ; Begin toolchange script ; End toolchange script T1 ; Filament gcode M107 ;LAYER_CHANGE ;Z:0.2 ;HEIGHT:0.2 ; printing object P-0026789 v1.stl id:0 copy 0 G1 E-.7 F2100 ; stop printing object P-0026789 v1.stl id:0 copy 0 G1 Z1.7 F720 G1 X272.388 Y226.982 F24000 G1 Z.2 F720 G1 E.7 F1500 M204 P2000 ;TYPE:Skirt/Brim ;WIDTH:0.44 G1 F3300 G2 X303.244 Y214.197 I27.609 J23.006 E6.30864 ;< ------------- this is line 53, gives the error G2 X281.929 Y218.923 I-3.136 J36.289 E.73211 G2 X272.427 Y226.936 I18.068 J31.065 E.41247 M204 P4000
Config;
;------------------------------ General settings -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ; Preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"one" ; set printer name G4 S5 ; Set global variables global leftloadedfilament = "PLA" global rightloadedfilament = "PLA" global leftnozzlesize = "0.40" global rightnozzlesize = "0.40" global variableprobel = 10000 global variableprober = 10000 ; Reset probe trigger values on reset ;------------------------------ Drive and motion -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ; Drive & motion definition M569 P60.0 S1 ; physical drive 60.0 goes backwards (E1) M569 P61.0 S0 ; physical drive 61.0 goes backwards (E2) M569 P0.0 S0 ; physical drive 0.0 goes backwards (X) M569 P0.1 S0 ; physical drive 0.1 goes backwards (Y1) M569 P0.4 S1 ; physical drive 0.4 goes forwards (Y2) M569 P0.5 S0 ; physical drive 0.5 goes forwards (U) M569 P50.0 S0 D3 ; physical drive 50.0 goes forwards (V) M569 P51.0 S0 D3 ; physical drive 51.0 goes forwards (W) M569 P1.0 S0 ; physical drive 1.0 goes forwards (Z1) M569 P1.1 S0 ; physical drive 1.1 goes forwards (Z2) M569 P1.2 S0 ; physical drive 1.2 goes forwards (Z3) M970 X1 U1 Y1 M584 X0.0 U0.5 Y0.1:0.4 E60.0:61.0 Z1.0:1.1:1.2 V50.0 W51.0 ; set drive mapping M669 K11 X1:0:0:0 Y1:1:0:-1 Z0:0:-1:0 U0:0:0:1 ; set markforged kinematics M350 X16 U16 Y16 Z16 V32 W32 I1 ; configure axis microstepping with interpolation M350 E16:16 I1 ; configure extruder microstepping with interpolation M92 X80 Y80 Y80 E800:800 Z800.00 V17777.78 W17777.78 ; set steps per mm M906 X2100 U2100 Y2100 E580:580 Z1900 V165 W165 I40 ; set motor currents (mA) and motor idle factor in per cent M84 S30 ; set idle timeout ; Machine axis limits M208 X-70.5 U0 Y0 Z0 V0 W0 S1 ; set axis minimal M208 X600 U672.5 Y510 Z600 V14 W14 S0 ; set axis maximal M671 X702.75:300:-102.75 Y47.125:-537.35:47.125 S10 ; Z leadscrews are at (-41,-14), (130,325.5) and (601, -14) and set compensation allowance to 20mm ;M671 X-102.75:300:702.75 Y-47.125:537.35:-47.125 S10 ; Z leadscrews are at (-102.75,-47.125), (300,537,35) and (702,75, -47,125) and set compensation allowance to 20mm ; Machine movement limits M203 X30000 U30000 Y30000 E12000:12000 Z1200 V180 W180 ; set maximum speeds (mm/min) M201 X8000 U8000 Y8000 E2500:2500 Z100.00 V2 W2 ; set maximum accelerations (mm/s^2) ; Machine motion settings M593 P"MZV" F37 S0.05 ; set ZVD input shaping to cancel ringing at 40.5Hz M566 X540 U540 Y540 E1200:1200 Z900 V100 W100 ; set instantaneous speed changes (mm/min) M204 P1500 T8000 ; set actual accelerations ;------------------------------ Sensors and inputs ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ ; Endstops M574 X1 S1 P"^!50.io1.in" ; configure switch-type endstop for low end on X via pin 2.io3.in M574 U2 S1 P"^!51.io1.in" ; configure switch-type endstop for high end on U via pin 2.io1.in M574 Y2 S1 P"io2.in" ; configure switch-type endstop for high end on Y via pin 2.io2.in M574 V2 S1 P"50.io0.in" ; configure switch-type endstop for high end on V via pin 1.io2.in M574 W2 S1 P"51.io0.in" ; configure switch-type endstop for high end on W via pin 1.io3.in ; Z-Probe M558 K0 P11 C"50.temp2" H7:1 F300:120 T21000 A3 S0.05 R1 ; Set E1 Z probe, set dive height, probe speed, required accuracy and travel speed set global.variableprobel = {sensors.probes[0].value[0]}+2750 G31 K0 P{global.variableprobel} X0 Y0 Z-0.45 ; Set Z offset of E1 probe M558 K1 P11 C"51.temp2" H7:1 F300:120 T21000 A3 S0.05 R1 ; Set E1 Z probe, set dive height, probe speed, required accuracy and travel speed set global.variableprober = {sensors.probes[1].value[0]}+2750 G31 K1 P{global.variableprober} U0 Y0 Z-0.45 ; Set Z offset of E1 probe M557 X25:575 Y25:475 P7:5 ; define mesh grid M376 H10 ; Filament control buttons ;M950 J1 C"2.io2.in" ; define logical input for E1 filamentsensor ;M581 P1 T2 S0 R0 ; define trigger for filament auto load triggers trigger2.g ;M950 J2 C"2.io3.in" ; define logical input for E1 filamentunload ;M581 P2 T3 S0 R0 ; define trigger for filament auto unload triggers trigger3.g ;M950 J3 C"2.io4.in" ; define logical input for E2 filamentsensor ;M581 P3 T4 S0 R0 ; define trigger for filament auto load triggers trigger4.g ;M950 J4 C"2.io5.in" ; define logical input for E2 filamentunload ;M581 P4 T5 S0 R0 ; define trigger for filament auto unload triggers trigger5.g ; Accelerometer inputs M955 P"50.0" I16 ; configure accelerometer sensor, set orientation, sampling and resolution M955 P"60.0" I46 ; configure accelerometer sensor, set orientation, sampling and resolution M955 P"51.0" I16 ; configure accelerometer sensor, set orientation, sampling and resolution M955 P"61.0" I46 ; configure accelerometer sensor, set orientation, sampling and resolution ;------------------------------ Heaters and Fan outputs ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ; Heaters, Bed zones M308 S0 P"temp0" Y"thermistor" A"Bed zone 1" T100000 B3950 ; configure bed zone 1 temperature sensor M950 H0 C"out1" T0 ; create bed heater output and map it to correct sensor M307 H0 R0.362 K0.500:0.000 D6.39 E1.35 S1.00 B0 ; enable and set PID temperature control for bed zone 1 M140 P0 H0 ; map bed zone 1 to correct heater M143 H0 S120 ; set temperatare limit for heater 0 to 120C M308 S1 P"temp1" Y"thermistor" A"Bed zone 2" T100000 B3950 ; configure bed zone 2 temperature sensor M950 H1 C"out2" T1 ; create bed heater output and map it to correct sensor M307 H1 R0.362 K0.500:0.000 D6.39 E1.35 S1.00 B0 ; enable and set PID temperature control for bed zone 2 M140 P1 H1 ; map bed zone 1 to correct heater M143 H1 S120 ; set temperatare limit for heater 1 to 120C ; Heaters, extruder M308 S2 P"60.temp0" Y"thermistor" A"Nozzle1" ; configure left printhead temperature sensor M950 H2 C"60.out0" T2 ; create left printhead heater output and map it to correct sensor M307 H2 R2.581 K0.635:0.000 D4.58 E1.35 S1.00 B0 V23.7 ; enable and set PID temperature control for left printhead M143 H2 P1 S350 ; set temperature limit for left printhead to 280C M572 D0 S0.01 ; set pressure advance for left printhead ;M308 S4 P"temp3" Y"thermistor" A"HeatsinkLeft" T100000 B4138 M308 S3 P"61.temp0" Y"pt1000" A"Nozzle2" ; configure right printhead temperature sensor M950 H3 C"61.out0" T3 ; create left printhead heater output and map it to correct sensor M307 H3 R2.736 K0.422:0.391 D4.34 E1.35 S1.00 B0 V24.0 ; enable and set PID temperature control for lerightt printhead M143 H3 P2 S350 ; set temperature limit for right printhead to 280C M572 D1 S0.01 ; set pressure advance for right printhead ;M308 S5 P"temp2" Y"thermistor" A"HeatsinkRight" T100000 B4138 ; Fans M950 F0 C"60.out1" Q317.5 ; create fan 0 (E1 part) on pin 2.out3 and set its frequency M106 P0 S0 H-1 C"Tool1 part" ; set fan 0 value. Thermostatic control is turned off M950 F1 C"61.out1" Q317.5 ; create fan 1 (E2 part) on pin 2.out4 and set its frequency M106 P1 S0 H-1 C"Tool2 part" ; set fan 1 value. Thermostatic control is turned off M950 F2 C"60.io0.out" Q500 ; create fan 2 (E1 heat) on pin out5 and set its frequency M106 P2 S1 H2 T45:50 ; set fan 2 value. Thermostatic control is turned on M106 P2 S1 H2 T45:50 C"Tool1 Heat" ; set fan 2 value. Thermostatic control is turned on M950 F3 C"61.io0.out" Q500 ; create fan 3 (E2 heat) on pin out6 and set its frequency M106 P3 S1 H3 T45:50 C"Tool2 Heat" ; set fan 3 value. Thermostatic control is turned on M950 F4 C"1.out3" Q500 ; create fan 4 (SBC) on pin out6 and set its frequency M106 P4 S1 H-1 C"PC" ; create fan 4 value. Thermostatic control is turned on M950 F5 C"1.out4" Q500 ; create fan 5 (main) on pin out6 and set its frequency M106 P5 S1 H-1 C"Mainboard" ; set fan 0 value. Thermostatic control is turned of M950 F6 C"1.out5" Q500 ; create fan 6 (exp1) on pin out6 and set its frequency M106 P6 S1 H-1 C"Expansion" ; set fan 0 value. Thermostatic control is turned off M950 F8 C"out4" Q500 ; create fan 8 (Extraction) on pin out6 and set its frequency M106 P8 S0.1 H-1 C"Extraction" ; set fan 3 value. Thermostatic control is turned on ;------------------------------ Miscellaneous ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ; Configure chamber LED ;M950 F10 C"out3" ; create chamber LED strip on correct pin ;M106 P10 C"LED" S1.0 ; define chamber LED name and set starting value ; Configure status LED M950 F11 C"1.io0.out" Q500 ; create red LED strip on correct pin M106 P11 C"RGB Red" S0.0 ; define red LED name and set starting value M950 F12 C"1.io1.out" Q500 ; create green LED strip on correct pin M106 P12 C"RGB Green" S0.0 ; define green LED name and set starting value M950 F13 C"1.io2.out" Q500 ; create blue LED strip on correct pin M106 P13 C"RGB Blue" S1.0 ; define blue LED name and set starting value ;------------------------------ Tool definition --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ; Tool Left M563 P0 S"Left" D0 H2 X0 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 ; Tool Right M563 P1 S"Right" D1 H3 X3 F1 ; define tool 1 G10 P1 U0 Y0 Z0 ; set tool 1 axis offsets G10 P1 R0 S0 ; set initial tool 1 active and standby temperatures to 0C ; Tool Duplication M563 P2 S"Dulplication" D0:1 H2:3 X0:3 F0:1 ; tool 2 uses both extruders, hot end heaters and fans, and maps X to both X and U G10 P2 X150 Y0 U-150 S0 R0 ; set tool offsets and temperatures M567 P2 E1:1 ; set mix ratio 100% on both extruders
-
@SanderLPFRG which firmware version?
Ian
-
@droftarts 3.6.0 beta 2 and beta 3 tried both
-
@SanderLPFRG to help tie this down do you know if this worked in 3.5.x firmware?
-
@T3P3Tony Hey Tony,
We found the issue to be regarding the V axis being too low.
Why it triggered only with G2 enabled gcodes remains a question still, but since we adapted the starting codes to account for the V being out of bounds we have not had the issue.
Maybe an improvement is to add the relevant axis number to the errorcode for future firmware?
-
@SanderLPFRG thanks, I'll flag this as solved.
RRF treats out-of-bounds errors differently between straight moves and arc moves. The reasons for this are largely historical. Originally, on some machines it was convenient to allow extrusion outside the bed (but without reaching physical endstops) because when printing a part that filled the bed, it didn't matter if part of the skirt was extruded outside the bed. Whereas G2/G3 were originally used only in CNC applications, where out-of-bounds movements were more serious.
-
undefined dc42 marked this topic as a question
-
undefined dc42 has marked this topic as solved