Relationship between G60 and G1 Rnn feed rates
-
I have been playing around with stall sensing and whilst I have the general functionality working well, there is one aspect that I can't quite nail down.
What I was trying to do was.- Sense a stall
- Store the point where the stall happened (G60 S3)
- If a print is in progress, re-home X & Y
- Slowly move back to a point 5mm above the saved restore point
- Lower back to the restore point
- Continue the print.
What seems to happen is that after the re-home moves, the tools moves back to the restore point at whatever the feed rate was at the time of the stall and THEN moves up 5mm and back down again.
I also note that the feed rate shown in the object model doesn't seem to reflect anything.
state.restorePoints[3].feedRate
In fact it stays at 50mm/sec.
I don't know if this is a bug or if it is intended to be used for something else.This is my macro as it now stands
;0:/sys/driver-stall.g echo " A driver stall has occured on driver " ^ param.D echo "Layer shifting may have occured at X:",move.axes[0].machinePosition, "Y:", move.axes[1].machinePosition, "Z:", move.axes[2].machinePosition echo "Requested speed is " , move.currentMove.requestedSpeed, "mm/sec. Top speed is", move.currentMove.topSpeed, "mm/sec" ; check if a driver stall is already being acted on. echo "Driver stall macro already running - no further action taken" M99 ; exit macro M400 if job.file.fileName!= null ; check if we are printing set global.InMacro=true G60 S3 ; save position to slot 3 echo "File position is ", job.filePosition, "bytes" echo "Physical position is X:",move.axes[0].machinePosition, "Y:", move.axes[1].machinePosition, "Z:", move.axes[2].machinePosition G4 P5 ; if a tool is selected and the heater is up to temp we'll retract if heat.heaters[tools[max(state.currentTool,0)].heaters[0]].current > heat.coldRetractTemperature G10 G1 F1800 ; reduce speed before homing G28 X Y ; home X & Y G1 F1200 ; reduce speed when travelling back to saved slot G1 R3 X0 Y0 Z5; travel to 5mm above stall position M400 G1 F60 ; reduce speed G1 R3 X0 Y0 Z0 ; move to stall position M400 ; if a tool is selected and the heater is up to temp, we'll un-retract if required. if (heat.heaters[tools[max(state.currentTool,0)].heaters[0]].current > heat.coldExtrudeTemperature) && (tools[max(state.currentTool,0)].isRetracted) G11 set global.InMacro = false
-