@JediJeremy @LightBurn @Rick @Colin Thank you for the detailed explanation, Jeremy. As the Xtool S1 has a motorized Z–Axis. During focus, the z-axis adjusts automatically. I do not have the Support and Material fields in my cut/layer panel. Do, I need to enable this somewhere?
Questions, you said the material thickness is embedded in the camera profile, is this the Material Height refence?
Here is a sample calibration I did for my camera. Just in case you have a question.
{
“CameraType”: “uvc”,
“CaptureFPS”: 10,
“CaptureFormat”: “NV12”,
“CaptureResolution”: [
4656,
3496
],
“DisplayName”: “Overhead - 16MP USB Camera”,
“ImageAlignments”: [
{
“AlignmentFeatures”: {
“FIDUCIAL:1”: “162.632,63.652”,
“FIDUCIAL:2”: “312.632,63.652”,
“FIDUCIAL:3”: “312.632,248.852”,
“FIDUCIAL:4”: “162.632,248.852”,
“WORKSPACE:CENTER”: “237.632,156.252”
},
“AlignmentName”: “Overview_0mm_2026-05-13_19-17”,
“CalibrationName”: “standard_0.77_2026-05-13_18-52”,
“DetectedFeatures”: {
“FIDUCIAL:1”: “1843.73,586.215”,
“FIDUCIAL:2”: “3105.58,572.929”,
“FIDUCIAL:3”: “3129.16,2135.63”,
“FIDUCIAL:4”: “1855.01,2150.46”
},
“ImageDPM”: 8490,
“ImageProjection”: [
0.1189312323306026,
0.0012204275161350417,
-6.458500622166233e-07,
0.00015961628642235728,
0.12022158339731445,
6.260143847798692e-06,
-56.356824176648495,
-8.924284539421876,
0.9998713877326136
],
“ImageSizeX”: 4656,
“ImageSizeY”: 3496,
“MaterialHeight”: 0,
“MountType”: “over”
}
],
“LastCamera”: “\\?\USB#VID_32E4&PID_0298&MI_00#8&212e25fa&0&0000#{e5323777-f976-4f5b-9b55-b94699c46e44}\GLOBAL”,
“LastCameraName”: “16MP USB Camera”,
“LensCalibrations”: [
{
“CalibrationName”: “standard_0.77_2026-05-13_18-52”,
“CameraMatrix”: [
1040.61236774823,
0,
0,
0,
1043.5275414333719,
0,
2327.330902357666,
1683.5593618682328,
1
],
“CameraName”: “16MP USB Camera”,
“CameraSizeX”: 4656,
“CameraSizeY”: 3496,
“DistortionMatrix”: [
-0.07906505857116687,
-0.0022140228157402505,
-0.0006134577294813418,
-0.0013547364170802998,
0.002416671699235907,
0.10616322141048941,
-0.037110493869229766,
0.006433092754181252,
0.005725269184785307,
-0.0003099902473365784,
-0.0008983383670157608,
0.00014348130649494712
],
“IsFisheye”: false,
“SavedCameraControls”: [
{
“auto”: false,
“id”: 3,
“value”: 0
}
]
}
],
“MountType”: “over”,
“SelectedAlignmentName”: “Overview_0mm_2026-05-13_19-17”,
“SelectedCalibrationName”: “standard_0.77_2026-05-13_18-52”
}
Z-Axis Settings
Below is my device configuration:
{
“DeviceList”: [
{
“Checklist”: “”,
“DefaultCutList”: [
],
“DefaultToolCutList”: [
],
“DisplayName”: “xTool-S1 Oct 24 RLDI 40w”,
“EnableLaser2Offset”: false,
“EnableProcessOffset”: true,
“GUID”: “NzE3MWRmYW”,
“Height”: 319,
“HomeOnStartup”: true,
“Info”: “”,
“Laser2OffsetX”: 0,
“Laser2OffsetY”: 0,
“LastCamera”: “\\?\usb#vid_32e4&pid_0298&mi_00#8&212e25fa&0&0000#{e5323777-f976-4f5b-9b55-b94699c46e44}\global”,
“LastDevLibraryPath”: “”,
“MirrorX”: false,
“MirrorY”: true,
“Name”: “xTool”,
“ProcessOffsetX”: 1.75,
“ProcessOffsetY”: 17.5,
“ProfilePath”: “xTool”,
“ReverseIntervalCompensation”: false,
“Settings”: {
“AirAssistM7”: false,
“AlignH”: 2,
“AlignV”: 0,
“BaudRate”: 115200,
“Checklist”: false,
“ClickSelTolerance”: 3,
“CommPort”: “COM3”,
“ContinuousFrame”: false,
“DockState_ArtBrowser”: true,
“DockState_Camera”: true,
“DockState_Console”: true,
“DockState_CutLibrary”: true,
“DockState_LaserFiles”: true,
“DockState_Move”: true,
“DockState_ShapeProperties”: true,
“DockState_VariableText”: true,
“EnableBoundsCheck”: true,
“EnableDTR”: false,
“EnableGrblJCommand”: false,
“EnableU”: false,
“EnableZ”: true,
“EndGCode”: “M6\nM9”,
“ForceSValueOutput”: false,
“GCodeClustering”: false,
“GridShade”: 224,
“GridSnap”: 1,
“GridSnapEnabled”: false,
“GridSpacing”: 10,
“LaserFire_Enable”: false,
“LaserFire_Power”: 0,
“LaserFrame_Enable”: false,
“LastExportExt”: “gcode”,
“LastMachineFileExtension”: “”,
“LastMachineFilePath”: “C:/Users/MK11376/Downloads”,
“Macro0_Content”: “M117 A2B4\n”,
“Macro0_Label”: “ROTARY_FRAMING”,
“Macro1_Content”: “M117 A2B2\n”,
“Macro1_Label”: “EXIT_ROTARY”,
“Macro2_Content”: “M368\n”,
“Macro2_Label”: “FOCUS”,
“Macro3_Content”: “M1111\n”,
“Macro3_Label”: “Offset Data Captcha”,
“Macro4_Content”: “M802 S1\n”,
“Macro4_Label”: “Disable Lid Sensor”,
“Macro5_Content”: “M802 S0\n”,
“Macro5_Label”: “Enable Lid Sensor”,
“NegativeWorkspace”: false,
“NegativeZ”: true,
“OMTechPolar”: false,
“ObjSnap”: 10,
“ObjSnapEnabled”: true,
“OptimizeZ”: true,
“Pen_AbsDownPos”: 0,
“Pen_AbsUpPos”: 0,
“Pen_DownDelay”: 0,
“Pen_Enabled”: false,
“Pen_Type”: 0,
“Pen_UpDelay”: 0,
“Pen_ZRelChange”: 0,
“RelativeZOnly”: true,
“S_Scale”: 1000,
“Sim_CornerTolerance”: 0.009999999776482582,
“Sim_FastWhiteScan”: false,
“Sim_FastWhiteScanSpeed”: 0,
“Sim_GlobalFactor”: 1,
“Sim_MaxAccelX”: 3000,
“Sim_MaxAccelY”: 3000,
“Sim_MaxSpeedX”: 500,
“Sim_MaxSpeedY”: 400,
“Sim_MinCornerSpeed”: 1,
“Sim_RapidSpeed”: 400,
“Sim_ScanAccelX”: 3000,
“Sim_ScanAccelY”: 3000,
“Sim_SpeedFactor”: 1,
“SkipWhiteFlag”: false,
“SkipWhiteSpeed”: 0,
“StartGCode”: “$L\nM802 S0\nM109 S1\nM96 S0\nM110 X1Y1Z1\nM7 S1\n”,
“SwapXYOutput”: false,
“TabPulseWidth”: 0.05000000074505806,
“TransferMode”: 0,
“Units”: 0,
“UseG0ForOverscan”: false,
“UserFinishX”: 0,
“UserFinishY”: 0,
“cameraIsFisheye”: true,
“cameraMatrix”: [
1902.7076740493326,
0,
0,
0,
1908.2572074504567,
0,
2356.0345058995904,
1689.1893751955859,
1
],
“cameraSizeX”: 4656,
“cameraSizeY”: 3496,
“distortionMatrix”: [
-0.3425698357206921,
0.30370495411819637,
-0.3110625080508089,
0.1631398621355607
],
“inversePerspective”: [
2.1399224290092254,
-0.06464518757199515,
-4.712756582694775e-05,
0.0049790861557637315,
2.256843345457608,
1.407369267188461e-05,
-3126.3076721587126,
-1898.5903321437875,
1
],
“isHeadCamera”: false,
“mapScale”: 0.8158024549484253,
“mirrorRotaryOutput”: false,
“overwriteFileByDefault”: false,
“rotaryAxis”: 1,
“rotaryDiameter”: 50,
“rotaryIsChuck”: true,
“rotaryMode”: false,
“rotarySteps”: 360
},
“Type”: “Serial”,
“UserCoords”: [
{
“IncludeZ”: false,
“Name”: “Home”,
“XPos”: 0,
“YPos”: 0,
“ZPos”: 9.760000228881836
}
],
“Width”: 498
}
]
}
Regards,
Brian
RLDesign Innovations

