I’m setting up a new CNC router table. I’m doing the step configuration, and I notice that my motion on all axis is not lineal.
I calibrated the steps for 100mm and every time jog it 100mm it moves 100mm.
However, if I try to move it, let’s say 45mm, it just moves 25mm.
If I change the feed rate it changes the travel.
I know the issue is not mechanical since I have consistente results for the same command.
Universal Gcode Sender (UGS)
firmwareName”: “GRBL 1.1f
Teensy 4.1
Breakout board
This is my UGS firmware settings:
{ "name": "Exported settings", "createdBy": "", "date": "2024-06-09", "firmwareName": "GRBL 1.1f", "settings": [ { "key": "$30", "value": "18000.000", "units": "RPM", "description": "Maximum spindle speed. Sets PWM to 100% duty cycle.", "shortDescription": "Maximum spindle speed" }, { "key": "$31", "value": "0.000", "units": "RPM", "description": "Minimum spindle speed. Sets PWM to 0.4% or lowest duty cycle.", "shortDescription": "Minimum spindle speed" }, { "key": "$32", "value": "0", "units": "boolean", "description": "Enables laser mode. Consecutive G1/2/3 commands will not halt when spindle speed is changed.", "shortDescription": "Laser-mode enable" }, { "key": "$33", "value": "5000.0", "units": "", "description": "", "shortDescription": "" }, { "key": "$34", "value": "0.0", "units": "", "description": "", "shortDescription": "" }, { "key": "$35", "value": "0.0", "units": "", "description": "", "shortDescription": "" }, { "key": "$36", "value": "100.0", "units": "", "description": "", "shortDescription": "" }, { "key": "$37", "value": "0", "units": "", "description": "", "shortDescription": "" }, { "key": "$39", "value": "1", "units": "", "description": "", "shortDescription": "" }, { "key": "$0", "value": "10.0", "units": "microseconds", "description": "Sets time length per step. Minimum 3usec.", "shortDescription": "Step pulse time" }, { "key": "$1", "value": "25", "units": "milliseconds", "description": "Sets a short hold delay when stopping to let dynamics settle before disabling steppers. Value 255 keeps motors enabled with no delay.", "shortDescription": "Step idle delay" }, { "key": "$2", "value": "0", "units": "mask", "description": "Inverts the step signal. Set axis bit to invert (00000ZYX).", "shortDescription": "Step pulse invert" }, { "key": "$3", "value": "1", "units": "mask", "description": "Inverts the direction signal. Set axis bit to invert (00000ZYX).", "shortDescription": "Step direction invert" }, { "key": "$4", "value": "7", "units": "boolean", "description": "Inverts the stepper driver enable pin signal.", "shortDescription": "Invert step enable pin" }, { "key": "$5", "value": "7", "units": "boolean", "description": "Inverts the all of the limit input pins.", "shortDescription": "Invert limit pins" }, { "key": "$6", "value": "1", "units": "boolean", "description": "Inverts the probe input pin signal.", "shortDescription": "Invert probe pin" }, { "key": "$8", "value": "0", "units": "", "description": "", "shortDescription": "" }, { "key": "$9", "value": "1", "units": "", "description": "", "shortDescription": "" }, { "key": "$481", "value": "0", "units": "", "description": "", "shortDescription": "" }, { "key": "$120", "value": "200.000", "units": "mm/sec^2", "description": "X-axis acceleration. Used for motion planning to not exceed motor torque and lose steps.", "shortDescription": "X-axis acceleration" }, { "key": "$122", "value": "50.000", "units": "mm/sec^2", "description": "Z-axis acceleration. Used for motion planning to not exceed motor torque and lose steps.", "shortDescription": "Z-axis acceleration" }, { "key": "$121", "value": "50.000", "units": "mm/sec^2", "description": "Y-axis acceleration. Used for motion planning to not exceed motor torque and lose steps.", "shortDescription": "Y-axis acceleration" }, { "key": "$484", "value": "1", "units": "", "description": "", "shortDescription": "" }, { "key": "$486", "value": "0", "units": "", "description": "", "shortDescription": "" }, { "key": "$40", "value": "0", "units": "", "description": "", "shortDescription": "" }, { "key": "$43", "value": "1", "units": "", "description": "", "shortDescription": "" }, { "key": "$44", "value": "4", "units": "", "description": "", "shortDescription": "" }, { "key": "$45", "value": "3", "units": "", "description": "", "shortDescription": "" }, { "key": "$46", "value": "0", "units": "", "description": "", "shortDescription": "" }, { "key": "$171", "value": "0.000", "units": "", "description": "", "shortDescription": "" }, { "key": "$170", "value": "0.000", "units": "", "description": "", "shortDescription": "" }, { "key": "$172", "value": "0.000", "units": "", "description": "", "shortDescription": "" }, { "key": "$370", "value": "0", "units": "", "description": "", "shortDescription": "" }, { "key": "$131", "value": "1200.000", "units": "millimeters", "description": "Maximum Y-axis travel distance from homing switch. Determines valid machine space for soft-limits and homing search distances.", "shortDescription": "Y-axis maximum travel" }, { "key": "$130", "value": "1200.000", "units": "millimeters", "description": "Maximum X-axis travel distance from homing switch. Determines valid machine space for soft-limits and homing search distances.", "shortDescription": "X-axis maximum travel" }, { "key": "$372", "value": "0", "units": "", "description": "", "shortDescription": "" }, { "key": "$650", "value": "0", "units": "", "description": "", "shortDescription": "" }, { "key": "$132", "value": "220.000", "units": "millimeters", "description": "Maximum Z-axis travel distance from homing switch. Determines valid machine space for soft-limits and homing search distances.", "shortDescription": "Z-axis maximum travel" }, { "key": "$346", "value": "1", "units": "", "description": "", "shortDescription": "" }, { "key": "$345", "value": "200.0", "units": "", "description": "", "shortDescription": "" }, { "key": "$348", "value": "2.500", "units": "", "description": "", "shortDescription": "" }, { "key": "$10", "value": "511", "units": "mask", "description": "Alters data included in status reports.", "shortDescription": "Status report options" }, { "key": "$347", "value": "2.0", "units": "", "description": "", "shortDescription": "" }, { "key": "$11", "value": "0.010", "units": "millimeters", "description": "Sets how fast Grbl travels through consecutive motions. Lower value slows it down.", "shortDescription": "Junction deviation" }, { "key": "$12", "value": "0.002", "units": "millimeters", "description": "Sets the G2 and G3 arc tracing accuracy based on radial error. Beware: A very small value may effect performance.", "shortDescription": "Arc tolerance" }, { "key": "$349", "value": "25.000", "units": "", "description": "", "shortDescription": "" }, { "key": "$13", "value": "0", "units": "boolean", "description": "Enables inch units when returning any position and rate value that is not a settings value.", "shortDescription": "Report in inches" }, { "key": "$14", "value": "0", "units": "", "description": "", "shortDescription": "" }, { "key": "$15", "value": "0", "units": "", "description": "", "shortDescription": "" }, { "key": "$16", "value": "0", "units": "", "description": "", "shortDescription": "" }, { "key": "$17", "value": "0", "units": "", "description": "", "shortDescription": "" }, { "key": "$18", "value": "0", "units": "", "description": "", "shortDescription": "" }, { "key": "$19", "value": "0", "units": "", "description": "", "shortDescription": "" }, { "key": "$384", "value": "1", "units": "", "description": "", "shortDescription": "" }, { "key": "$100", "value": "89.08000", "units": "step/mm", "description": "X-axis travel resolution in steps per millimeter.", "shortDescription": "X-axis travel resolution" }, { "key": "$342", "value": "30.0", "units": "", "description": "", "shortDescription": "" }, { "key": "$341", "value": "0", "units": "", "description": "", "shortDescription": "" }, { "key": "$102", "value": "200.00000", "units": "step/mm", "description": "Z-axis travel resolution in steps per millimeter.", "shortDescription": "Z-axis travel resolution" }, { "key": "$344", "value": "200.0", "units": "", "description": "", "shortDescription": "" }, { "key": "$101", "value": "86.47000", "units": "step/mm", "description": "Y-axis travel resolution in steps per millimeter.", "shortDescription": "Y-axis travel resolution" }, { "key": "$343", "value": "25.0", "units": "", "description": "", "shortDescription": "" }, { "key": "$62", "value": "0", "units": "", "description": "", "shortDescription": "" }, { "key": "$63", "value": "3", "units": "", "description": "", "shortDescription": "" }, { "key": "$20", "value": "1", "units": "boolean", "description": "Enables soft limits checks within machine travel and sets alarm when exceeded. Requires homing.", "shortDescription": "Soft limits enable" }, { "key": "$64", "value": "0", "units": "", "description": "", "shortDescription": "" }, { "key": "$21", "value": "1", "units": "boolean", "description": "Enables hard limits. Immediately halts motion and throws an alarm when switch is triggered.", "shortDescription": "Hard limits enable" }, { "key": "$65", "value": "0", "units": "", "description": "", "shortDescription": "" }, { "key": "$22", "value": "1", "units": "boolean", "description": "Enables homing cycle. Requires limit switches on all axes.", "shortDescription": "Homing cycle enable" }, { "key": "$23", "value": "3", "units": "mask", "description": "Homing searches for a switch in the positive direction. Set axis bit (00000ZYX) to search in negative direction.", "shortDescription": "Homing direction invert" }, { "key": "$24", "value": "25.0", "units": "mm/min", "description": "Feed rate to slowly engage limit switch to determine its location accurately.", "shortDescription": "Homing locate feed rate" }, { "key": "$25", "value": "500.0", "units": "mm/min", "description": "Seek rate to quickly find the limit switch before the slower locating phase.", "shortDescription": "Homing search seek rate" }, { "key": "$26", "value": "250", "units": "milliseconds", "description": "Sets a short delay between phases of homing cycle to let a switch debounce.", "shortDescription": "Homing switch debounce delay" }, { "key": "$27", "value": "10.000", "units": "millimeters", "description": "Retract distance after triggering switch to disengage it. Homing will fail if switch isnu0027t cleared.", "shortDescription": "Homing switch pull-off distance" }, { "key": "$28", "value": "0.100", "units": "", "description": "", "shortDescription": "" }, { "key": "$29", "value": "0.0", "units": "", "description": "", "shortDescription": "" }, { "key": "$111", "value": "2000.000", "units": "mm/min", "description": "Y-axis maximum rate. Used as G0 rapid rate.", "shortDescription": "Y-axis maximum rate" }, { "key": "$110", "value": "2000.000", "units": "mm/min", "description": "X-axis maximum rate. Used as G0 rapid rate.", "shortDescription": "X-axis maximum rate" }, { "key": "$112", "value": "2000.000", "units": "mm/min", "description": "Z-axis maximum rate. Used as G0 rapid rate.", "shortDescription": "Z-axis maximum rate" }, { "key": "$398", "value": "35", "units": "", "description": "", "shortDescription": "" } ] }
I have very conservative number for acceleration (150mm/sec2), feed rate (1000 mm/min).
At this point I know that the lower the acceleration, the longer the travel for the same value.