diff --git a/dist/CNC/GRBL/index.html.gz b/dist/CNC/GRBL/index.html.gz index 4dba286a..431e3b01 100644 Binary files a/dist/CNC/GRBL/index.html.gz and b/dist/CNC/GRBL/index.html.gz differ diff --git a/dist/CNC/GRBLHal/index.html.gz b/dist/CNC/GRBLHal/index.html.gz index 9133d4c5..7c7f706f 100644 Binary files a/dist/CNC/GRBLHal/index.html.gz and b/dist/CNC/GRBLHal/index.html.gz differ diff --git a/src/targets/CNC/GRBL/index.js b/src/targets/CNC/GRBL/index.js index c1b9864b..d0cca8c7 100644 --- a/src/targets/CNC/GRBL/index.js +++ b/src/targets/CNC/GRBL/index.js @@ -41,7 +41,7 @@ import { Eye as WebUILogo } from "preact-feather" import { addObjectItem, removeObjectItem } from "../../../components/Helpers" const Target = "GRBL" -const webUIbuild = "G2" +const webUIbuild = "G3" const Name = "ESP3D" const fwUrl = [ "https://github.com/luc-github/ESP3D/tree/3.0", diff --git a/src/targets/CNC/grblHAL/index.js b/src/targets/CNC/grblHAL/index.js index 0cc8bb5e..ed2d0c85 100644 --- a/src/targets/CNC/grblHAL/index.js +++ b/src/targets/CNC/grblHAL/index.js @@ -41,7 +41,7 @@ import { AppLogo } from "./logo" import { addObjectItem, removeObjectItem } from "../../../components/Helpers" const Target = "grblHAL" -const webUIbuild = "GH3" +const webUIbuild = "GH4" const Name = "grblHAL" const fwUrl = [ "https://github.com/grblHAL", diff --git a/src/targets/CNC/grblHAL/translations/en.json b/src/targets/CNC/grblHAL/translations/en.json index c476129b..a35a3e7b 100644 --- a/src/targets/CNC/grblHAL/translations/en.json +++ b/src/targets/CNC/grblHAL/translations/en.json @@ -6,10 +6,19 @@ "$4": "Step enable invert, boolean", "$5": "Limit pins invert, boolean", "$6": "Probe pin invert, boolean", + "$7": "Spindle PWM options, deprecated", + "$8": "Ganged dir invert, mask", + "$9": "PWM spindle options, mask", "$10": "Status report, mask", "$11": "Junction deviation, mm", "$12": "Arc tolerance, mm", "$13": "Report inches, boolean", + "$14": "Control invert, mask", + "$15": "Coolant invert, mask", + "$16": "Spindle invert, mask", + "$17": "Control pullup disable, mask", + "$18": "Limit pullup disable, mask", + "$19": "Probe pullup disable, boolean", "$20": "Soft limits, boolean", "$21": "Hard limits, boolean", "$22": "Homing cycle, boolean", @@ -18,9 +27,72 @@ "$25": "Homing seek, mm/min", "$26": "Homing debounce, milliseconds", "$27": "Homing pull-off, mm", + "$28": "G73 retract, mm", + "$29": "Pulse delay, microseconds", "$30": "Max spindle speed, RPM", "$31": "Min spindle speed, RPM", - "$32": "Laser mode, boolean", + "$32": "Mode (laser/normal), boolean", + "$33": "Spindle PWM frequency, Hz", + "$34": "Spindle PWM off value, percent", + "$35": "Spindle PWM min value, percent", + "$36": "Spindle PWM max value, percent", + "$37": "Steppers enable, mask", + "$38": "Spindle PPR", + "$39": "Legacy RT commands, boolean", + "$40": "Limit jog commands, boolean", + "$41": "Parking enable, mask", + "$42": "Parking axis", + "$43": "Homing passes", + "$44": "Axes homing pass 1, mask", + "$45": "Axes homing pass 2, mask", + "$46": "Axes homing pass 3, mask", + "$47": "Axes homing pass 4, mask", + "$48": "Axes homing pass 5, mask", + "$49": "Axes homing pass 6, mask", + "$50": "Step jog speed, mm/min", + "$51": "Slow jog speed, mm/min", + "$52": "Fast jog speed, mm/min", + "$53": "Step jog distance, mm", + "$54": "Slow jog distance, mm", + "$55": "Fast jog distance, mm", + "$56": "Parking pullout increment, mm", + "$57": "Parking pullout rate, mm/min", + "$58": "Parking target, mm", + "$59": "Parking fast rate, mm/min", + "$60": "Restore overrides, boolean", + "$61": "Door options, mask", + "$62": "Sleep enable, boolean", + "$63": "Feed hold actions, mask", + "$64": "Force init alarm, boolean", + "$65": "Probing feed override, boolean", + "$66": "Linear Spindle Piece 1", + "$67": "Linear Spindle Piece 2", + "$68": "Linear Spindle Piece 3", + "$69": "Linear Spindle Piece 4", + "$70": "Network Services", + "$71": "Blue Tooth Device Name", + "$72": "Blue Tooth Service Name", + "$73": "Wifi Mode", + "$74": "WiFi STA SSID", + "$75": "WiFi STA Password", + "$76": "WiFi AP SSID", + "$77": "WiFi AP Password", + "$78": "Wifi AP Country", + "$79": "Wifi AP Channel", + "$80": "Spindle P Gain", + "$81": "Spindle I Gain", + "$82": "Spindle D Gain", + "$83": "Spindle Deadband", + "$84": "Spindle Max Error", + "$85": "Spindle I Max Error", + "$86": "Spindle D Max Error", + "$90": "Position P Gain", + "$91": "Position I Gain", + "$92": "Position D Gain", + "$93": "Position Deadband", + "$94": "Position Max Error", + "$95": "Position I Max Error", + "$96": "Position D Max Error", "$100": "X steps/mm", "$101": "Y steps/mm", "$102": "Z steps/mm", @@ -45,8 +117,295 @@ "$133": "A Max travel, mm", "$134": "B Max travel, mm", "$135": "C Max travel, mm", + "$140": "X Backlash, mm", + "$141": "Y Backlash, mm", + "$142": "Z Backlash, mm", + "$143": "A Backlash, mm", + "$144": "B Backlash, mm", + "$145": "C Backlash, mm", + "$150": "X Jerk, mm/min^3", + "$151": "Y Jerk, mm/min^3", + "$152": "Z Jerk, mm/min^3", + "$153": "A Jerk, mm/min^3", + "$154": "B Jerk, mm/min^3", + "$155": "C Jerk, mm/min^3", + "$300": "Hostname", + "$301": "IP mode", + "$302": "IP address", + "$303": "Gateway", + "$304": "Netmask", + "$305": "Telnet port", + "$306": "HTTP port", + "$307": "Websocket port", + "$308": "FTP port", + "$310": "Hostname 2", + "$311": "IP Mode 2", + "$312": "IP Address 2", + "$313": "Gateway 2", + "$314": "Net Mask 2", + "$315": "Telnet Port 2", + "$316": "Http Port 2", + "$317": "Web Socket Port 2", + "$318": "Ftp Port 2", + "$320": "Hostname 3", + "$321": "IP Mode 3", + "$322": "IP Address 3", + "$323": "Gateway 3", + "$324": "Net Mask 3", + "$325": "Telnet Port 3", + "$326": "Http Port 3", + "$327": "Web Socket Port 3", + "$328": "Ftp Port 3", + "$330": "Admin Password", + "$331": "User Password", + "$332": "NTP Server URI", + "$333": "NTP Server URI 2", + "$334": "NTP Server URI 3", + "$335": "Timezone", + "$336": "DST Active", + "$337": "Wifi AP BSSID", + "$338": "Trinamic Driver", + "$339": "Trinamic Homing", + "$340": "Spindle At Speed Tolerance", + "$341": "Tool Change Mode", + "$342": "Tool Change Probing Distance", + "$343": "Tool Change Feed Rate", + "$344": "Tool Change Seek Rate", + "$345": "Tool Change Pulloff Rate", + "$346": "Tool Change Restore Position", + "$347": "Dual Axis Length Fail Percent", + "$348": "Dual Axis Length Fail Min", + "$349": "Dual Axis Length Fail Max", + "$350": "THC Mode", + "$351": "THC Delay", + "$352": "THC Threshold", + "$353": "THC P Gain", + "$354": "THC I Gain", + "$355": "THC D Gain", + "$356": "THC VAD Threshold", + "$357": "THC Void Override", + "$358": "Arc Fail Timeout", + "$359": "Arc Retry Delay", + "$360": "Arc Max Retries", + "$361": "Arc Voltage Scale", + "$362": "Arc Voltage Offset", + "$363": "Arc Height Per Volt", + "$364": "Arc Ok High Voltage", + "$365": "Arc Ok Low Voltage", + "$366": "Arc Voltage Port", + "$367": "Arc Ok Port", + "$368": "THC Cutter Down Port", + "$369": "THC Cutter Up Port", + "$370": "Io Port Invert In", + "$371": "Io Port Pullup Disable", + "$372": "Io Port Invert Out", + "$373": "Io Port OD Enable", + "$374": "Mod Bus Baud Rate", + "$375": "Mod Bus RX Timeout", + "$376": "Rotary Axes", + "$377": "Blue Tooth Init OK", + "$378": "Laser Coolant On Delay", + "$379": "Laser Coolant Off Delay", + "$380": "Laser Coolant Min Temp", + "$381": "Laser Coolant Max Temp", + "$382": "Laser Coolant Offset", + "$383": "Laser Coolant Gain", + "$384": "Disable G92 Persistence", + "$385": "Blue Tooth State Input", + "$386": "Fan Port 0", + "$387": "Fan Port 1", + "$388": "Fan Port 2", + "$389": "Fan Port 3", + "$390": "Laser Coolant Temp Port", + "$391": "Laser Coolant Ok Port", + "$392": "Door Spindle On Delay", + "$393": "Door Coolant On Delay", + "$394": "Spindle On Delay", + "$395": "Spindle Type", + "$396": "Web UI Timeout", + "$397": "Web UI Auto Report Interval", + "$398": "Planner Blocks", + "$399": "CANbus Baud Rate", + "$460": "VFD Modbus Address", + "$461": "VFD RPM Hz", + "$462": "VFD 10", + "$463": "VFD 11", + "$464": "VFD 12", + "$465": "VFD 13", + "$466": "VFD 14", + "$467": "VFD 15", + "$468": "VFD 16", + "$469": "VFD 17", + "$470": "VFD 18", + "$471": "VFD 19", + "$472": "VFD 20", + "$473": "VFD 21", + "$476": "VFD Modbus Address 0", + "$477": "VFD Modbus Address 1", + "$478": "VFD Modbus Address 2", + "$479": "VFD Modbus Address 3", + "$480": "Fan 0 Off Delay", + "$481": "Auto Report Interval", + "$482": "Time Zone Offset", + "$483": "Fan To Spindle Link", + "$484": "Unlock After E Stop", + "$485": "Enable Tool Persistence", + "$486": "Offset Lock", + "$487": "Spindle On Port", + "$488": "Spindle Dir Port", + "$489": "Spindle PWM Port", + "$490": "Macro 0", + "$491": "Macro 1", + "$492": "Macro 2", + "$493": "Macro 3", + "$494": "Macro 4", + "$495": "Macro 5", + "$496": "Macro 6", + "$497": "Macro 7", + "$498": "Macro 8", + "$499": "Macro 9", + "$500": "Macro Port 0", + "$501": "Macro Port 1", + "$502": "Macro Port 2", + "$503": "Macro Port 3", + "$504": "Macro Port 4", + "$505": "Macro Port 5", + "$506": "Macro Port 6", + "$507": "Macro Port 7", + "$508": "Macro Port 8", + "$509": "Macro Port 9", + "$510": "Spindle Enable 0", + "$511": "Spindle Enable 1", + "$512": "Spindle Enable 2", + "$513": "Spindle Enable 3", + "$514": "Spindle Enable 4", + "$515": "Spindle Enable 5", + "$516": "Spindle Enable 6", + "$517": "Spindle Enable 7", + "$519": "Encoder Spindle", + "$520": "Spindle Tool Start 0", + "$521": "Spindle Tool Start 1", + "$522": "Spindle Tool Start 2", + "$523": "Spindle Tool Start 3", + "$524": "Spindle Tool Start 4", + "$525": "Spindle Tool Start 5", + "$526": "Spindle Tool Start 6", + "$527": "Spindle Tool Start 7", + "$530": "MQTT Broker Ip Address", + "$531": "MQTT Broker Port", + "$532": "MQTT Broker User Name", + "$533": "MQTT Broker Password", + "$534": "NGC Debug Out", + "$535": "Network MAC", + "$536": "RGB Strip Length 0", + "$537": "RGB Strip Length 1", + "$538": "Rotary Wrap", + "$539": "Spindle Off Delay", + "$540": "Panel Spindle Speed", + "$541": "Panel Modbus Address", + "$542": "Panel Update Interval", + "$543": "Panel Jog Speed x1", + "$544": "Panel Jog Speed x10", + "$545": "Panel Jog Speed x100", + "$546": "Panel Jog Speed Keypad", + "$547": "Panel Jog Distance x1", + "$548": "Panel Jog Distance x10", + "$549": "Panel Jog Distance x100", + "$550": "Panel Jog Distance Keypad", + "$551": "Panel Jog Accel Ramp", + "$552": "Panel Encoder 0 Mode", + "$553": "Panel Encoder 0 Cpd", + "$554": "Panel Encoder 1 Mode", + "$555": "Panel Encoder 1 Cpd", + "$556": "Panel Encoder 2 Mode", + "$557": "Panel Encoder 2 Cpd", + "$558": "Panel Encoder 3 Mode", + "$559": "Panel Encoder 3 Cpd", + "$590": "Button Action 0", + "$591": "Button Action 1", + "$592": "Button Action 2", + "$593": "Button Action 3", + "$594": "Button Action 4", + "$595": "Button Action 5", + "$596": "Button Action 6", + "$597": "Button Action 7", + "$598": "Button Action 8", + "$599": "Button Action 9", + "$640": "Kinematics 0", + "$641": "Kinematics 1", + "$642": "Kinematics 2", + "$643": "Kinematics 3", + "$644": "Kinematics 4", + "$645": "Kinematics 5", + "$646": "Kinematics 6", + "$647": "Kinematics 7", + "$648": "Kinematics 8", + "$649": "Kinematics 9", + "$650": "FS Options", + "$651": "Stepper 1", + "$652": "Stepper 2", + "$653": "Stepper 3", + "$654": "Stepper 4", + "$655": "Stepper 5", + "$656": "Stepper 6", + "$657": "Stepper 7", + "$658": "Stepper 8", + "$659": "Stepper 9", + "$660": "Stepper 10", + "$661": "Stepper 11", + "$662": "Stepper 12", + "$663": "Stepper 13", + "$664": "Stepper 14", + "$665": "Stepper 15", + "$666": "Stepper 16", + "$667": "Stepper 17", + "$668": "Stepper 18", + "$669": "Stepper 19", + "$670": "Stepper 20", + "$671": "Home Pins Invert Mask", + "$673": "Coolant On Delay", + "$674": "THC Options", + "$675": "Macro ATC Options", + "$716": "Spindle Invert Mask 1", + "$730": "Rpm Max 1", + "$731": "Rpm Min 1", + "$732": "Mode 1", + "$733": "PWM Freq 1", + "$734": "PWM Off Value 1", + "$735": "PWM Min Value 1", + "$736": "PWM Max Value 1", + "$737": "Linear Spindle 1 Piece 1", + "$738": "Linear Spindle 1 Piece 2", + "$739": "Linear Spindle 1 Piece 3", + "$740": "Linear Spindle 1 Piece 4", + "$742": "Motor Warnings Enable", + "$743": "Motor Warnings Invert", + "$744": "Motor Faults Enable", + "$745": "Motor Faults Invert", + "$750": "Action 0", + "$751": "Action 1", + "$752": "Action 2", + "$753": "Action 3", + "$754": "Action 4", + "$755": "Action 5", + "$756": "Action 6", + "$757": "Action 7", + "$758": "Action 8", + "$759": "Action 9", + "$760": "Action Port 0", + "$761": "Action Port 1", + "$762": "Action Port 2", + "$763": "Action Port 3", + "$764": "Action Port 4", + "$765": "Action Port 5", + "$766": "Action Port 6", + "$767": "Action Port 7", + "$768": "Action Port 8", + "$769": "Action Port 9", + "$770": "Spindle Offset X", + "$771": "Spindle Offset Y", "P15": "Quick Stop", "P65": "Move X to", "P66": "Move Y to", "P75": "Move Z to" -} +} \ No newline at end of file diff --git a/src/targets/CNC/translations/en.json b/src/targets/CNC/translations/en.json index 22cfeb4d..01dd0b62 100644 --- a/src/targets/CNC/translations/en.json +++ b/src/targets/CNC/translations/en.json @@ -137,49 +137,100 @@ "Door:1": "Machine stopped. Door still ajar. Can't resume until closed.", "Door:2": "Door opened. Hold (or parking retract) in-progress. Reset will throw an alarm.", "Door:3": "Door closed and resuming. Restoring from park, if applicable. Reset will throw an alarm.", - "ALARM:1": "Hard limit has been triggered. Position lost. Re-homing is highly recommended.", - "ALARM:2": "Soft limit alarm. Machine position retained. Alarm may be safely unlocked.", - "ALARM:3": "Reset while in motion. Machine position is likely lost. Re-homing is highly recommended.", - "ALARM:4": "Probe fail. Probe is not in the expected initial state before starting probe cycle.", - "ALARM:5": "Probe fail. Probe did not contact the workpiece.", + "ALARM:1": "Hard limit has been triggered. Machine position is likely lost due to sudden halt. Re-homing is highly recommended.", + "ALARM:2": "Soft limit alarm. G-code motion target exceeds machine travel. Machine position retained. Alarm may be safely unlocked.", + "ALARM:3": "Reset while in motion. Machine position is likely lost due to sudden halt. Re-homing is highly recommended.", + "ALARM:4": "Probe fail. Probe is not in the expected initial state before starting probe cycle when G38.2 and G38.3 is not triggered and G38.4 and G38.5 is triggered.", + "ALARM:5": "Probe fail. Probe did not contact the workpiece within the programmed travel for G38.2 and G38.4.", "ALARM:6": "Homing fail. The active homing cycle was reset.", "ALARM:7": "Homing fail. Safety door was opened during homing cycle.", - "ALARM:8": "Homing fail. Pull off travel failed to clear limit switch.", - "ALARM:9": "Homing fail. Could not find limit switch within search distances.", - "error:1": "GCode command letter was not found.", - "error:2": "GCode command value invalid or missing.", - "error:3": "Grbl '$' system command was not recognized or supported.", + "ALARM:8": "Homing fail. Pull off travel failed to clear limit switch. Try increasing pull-off setting or check wiring.", + "ALARM:9": "Homing fail. Could not find limit switch within search distances. Try increasing max travel, decreasing pull-off distance, or check wiring.", + "ALARM:10": "EStop asserted. Clear and reset", + "ALARM:11": "Homing required. Execute homing command ($H) to continue.", + "ALARM:12": "Limit switch engaged. Clear before continuing.", + "ALARM:13": "Probe protection triggered. Clear before continuing.", + "ALARM:14": "Spindle at speed timeout. Clear before continuing.", + "ALARM:15": "Homing fail. Could not find second limit switch for auto squared axis within search distances. Try increasing max travel, decreasing pull-off distance, or check wiring.", + "ALARM:16": "Power on selftest (POS) failed.", + "ALARM:17": "Motor fault.", + "ALARM:18": "Homing fail. Bad configuration.", + "error:1": "G-code words consist of a letter and a value. Letter was not found.", + "error:2": "Missing the expected G-code word value or numeric value format is not valid.", + "error:3": "'$' system command was not recognized or supported.", "error:4": "Negative value received for an expected positive value.", - "error:5": "Homing failed. Homing is not enabled in settings.", - "error:6": "Minimum step pulse time must be greater than 3usec.", - "error:7": "EEPROM read failed. Default values used.", - "error:8": "Grbl '$' command only valid when Idle.", + "error:5": "Homing cycle failure. Homing is not configured via settings.", + "error:6": "Step pulse time must be greater or equal to 2 microseconds.", + "error:7": "A settings read failed. Auto-restoring affected settings to default values.", + "error:8": "'$' command cannot be used unless controller state is IDLE. Ensures smooth operation during a job.", "error:9": "G-code commands are locked out during alarm or jog state.", - "error:10": "Soft limits require homing to be enabled.", - "error:11": "Max characters per line exceeded. Command ignored.", - "error:12": "Grbl '$' setting exceeds the maximum step rate.", + "error:10": "Soft limits cannot be enabled without homing also enabled.", + "error:11": "Max characters per line exceeded. Received command line was not executed.", + "error:12": "'$' setting value cause the step rate to exceed the maximum supported.", "error:13": "Safety door detected as opened and door state initiated.", - "error:14": "Build info or startup line exceeded EEPROM line length limit.", - "error:15": "Jog target exceeds machine travel. Command ignored.", - "error:16": "Jog command has no '=' or contains prohibited GCode.", + "error:14": "Build info or startup line exceeded line length limit. Line not stored.", + "error:15": "Jog target exceeds machine travel. Jog command has been ignored.", + "error:16": "Jog command has no '=' or contains prohibited g-code.", "error:17": "Laser mode requires PWM output.", - "error:20": "Unsupported or invalid GCode command.", - "error:21": "More than one GCode command from same modal group found in block.", + "error:18": "Reset asserted", + "error:19": "Non positive value", + "error:20": "Unsupported or invalid g-code command found in block.", + "error:21": "More than one g-code command from same modal group found in block.", "error:22": "Feed rate has not yet been set or is undefined.", - "error:23": "GCode command requires an integer value.", - "error:24": "More than one GCode command using axis word found.", - "error:25": "Repeated GCode word found in block.", - "error:26": "No axis words found in command block.", + "error:23": "G-code command in block requires an integer value.", + "error:24": "More than one g-code command that requires axis words found in block.", + "error:25": "Repeated g-code word found in block.", + "error:26": "No axis words found in block for g-code command or current modal state which requires them.", "error:27": "Line number value is invalid.", - "error:28": "GCode command is missing a required value word.", + "error:28": "G-code command is missing a required value word.", "error:29": "G59.x work coordinate systems are not supported.", "error:30": "G53 only allowed with G0 and G1 motion modes.", - "error:31": "Unneeded axis words found in block.", + "error:31": "Axis words found in block when no command or current modal state uses them.", "error:32": "G2 and G3 arcs require at least one in-plane axis word.", "error:33": "Motion command target is invalid.", "error:34": "Arc radius value is invalid.", "error:35": "G2 and G3 arcs require at least one in-plane offset word.", "error:36": "Unused value words found in block.", - "error:37": "G43.1 offset is not assigned to tool length axis.", - "error:38": "Tool number greater than max supported value." + "error:37": "G43.1 dynamic tool length offset is not assigned to configured tool length axis.", + "error:38": "Tool number greater than max supported value or undefined tool selected.", + "error:39": "Value out of range.", + "error:40": "G-code command not allowed when tool change is pending.", + "error:41": "Spindle not running when motion commanded in CSS or spindle sync mode.", + "error:42": "Plane must be ZX for threading.", + "error:43": "Max. feed rate exceeded.", + "error:44": "RPM out of range.", + "error:45": "Only homing is allowed when a limit switch is engaged.", + "error:46": "Home machine to continue.", + "error:47": "ATC: current tool is not set. Set current tool with M61.", + "error:48": "Value word conflict.", + "error:49": "Power on self test failed. A hard reset is required.", + "error:50": "Emergency stop active.", + "error:51": "Motor fault.", + "error:52": "Setting value is out of range.", + "error:53": "Setting is not available, possibly due to limited driver support.", + "error:54": "Retract position is less than drill depth.", + "error:55": "Attempt to home two auto squared axes at the same time.", + "error:56": "Coordinate system is locked.", + "error:57": "Unexpected file demarcation.", + "error:60": "SD Mount Error", + "error:61": "SD Read Error", + "error:62": "SD Failed Open Directory", + "error:63": "SD Directory Not Found", + "error:64": "SD Not Mounted", + "error:70": "BT Init Error", + "error:71": "Unknown operation found in expression.", + "error:72": "Divide by zero in expression attempted.", + "error:73": "Too large or too small argrument provided.", + "error:74": "Argument is not valid for the operation", + "error:75": "Expression is not valid.", + "error:76": "Either NAN (not a number) or infinity was returned from expression.", + "error:77": "Authentication required.", + "error:78": "Access denied.", + "error:79": "Not allowed while critical event is active.", + "error:80": "Flow statement only allowed in filesystem macro.", + "error:81": "Unknown flow statement.", + "error:82": "Stack overflow while executing flow statement.", + "error:83": "Out of memory while executing flow statement.", + "error:84": "Could not open file.", + "error:253": "User defined error occured." }