Skip to content

Parsing Error #50

@pforrmi

Description

@pforrmi

Hi. When I'm include the toolchanger.cfg in my printer.cfg I got a parsing error. Is used the 2.4 version

Klipper reports: ERROR

File contains parsing errors: /home/pi/klipper_config/toolchanger.cfg
	[line  2]: '  t_command_restore_axis:\n'
	[line  3]: '  params_safe_y: 120\n'
	[line  4]: '  params_close_y: 65\n'
	[line  5]: '  params_fast_speed: 10000 \n'
	[line  6]: '  params_path_speed: 600 \n'
	[line  7]: "  params_type = 'rods_mini_hookon'   \n"
	[line  9]: "  params_pads_mini_path: [{'y':9 ,'z':2}, {'y':8, 'z':0}, {'y':0, 'z':0, 'f':0.5},{'y':0, 'z':-5}, {'y':1, 'z':-7}, {'y':3, 'z':-9}, {'y':7,'z':-11}]\n"
	[line 10]: "  params_pads_sb_path: [{'y':9.5 ,'z':8}, {'y':9.5, 'z':2}, {'y':5.5, 'z':0}, {'y':0, 'z':0, 'f':0.5},{'y':0, 'z':-5}, {'y':1, 'z':-7}, {'y':3, 'z':-9}, {'y':7,'z':-11}]\n"
	[line 11]: "  params_rods_mini_path: [{'z':0, 'y':4}, {'z':0, 'y':0, 'f':0.5}, {'z':-6, 'y':0}, {'z':-10, 'y':3}, {'z':-10, 'y':16}]\n"
	[line 12]: "  params_rods_sb_path: [{'y':9.5 ,'z':8}, {'y':9.5, 'z':2}, {'y':5.5, 'z':0}, {'z':0, 'y':0, 'f':0.5}, {'z':-6, 'y':0}, {'z':-10, 'y':3}, {'z':-10, 'y':16}]\n"
	[line 13]: "  params_rods_mini_hookon_path: [{'z':0, 'y':4}, {'z':0, 'y':0, 'f':0.5}, {'z':-7.3, 'y':0}, {'z':-12.3, 'y':3.5}, {'z':-12.3, 'y':16}]\n"
	[line 14]: "  params_rods_xol_path: [{'y':59, 'z':17.5},{'y':5, 'z':17.5},{'y':5, 'z':0.2},{'y':0.5, 'z':0.1},{'z':0, 'y':0, 'f':0.5},{'z':-5, 'y':0},{'z':-6, 'y':3},{'z':-8, 'y':7},{'z':-10, 'y':16}]\n"
	[line 26]: '  initialize_on: first-use\n'
	[line 27]: '  uses_axis: xyz\n'
	[line 28]: '  on_axis_not_homed: home\n'
	[line 29]: '  initialize_gcode:\n'
	[line 30]: '    DETECT_ACTIVE_TOOL_PROBE\n'
	[line 31]: '    _INITIALIZE_FROM_DETECTED_TOOL\n'
	[line 33]: '  before_change_gcode:\n'
	[line 34]: '    {% set tn = "T"+(tool.tool_number|string) %}\n'
	[line 35]: '    {% if printer["gcode_macro " + tn ] %}\n'
	[line 36]: '       SET_GCODE_VARIABLE MACRO={tn} VARIABLE=color VALUE="\'\'"\n'
	[line 37]: '    {% endif %}\n'
	[line 39]: '  after_change_gcode:\n'
	[line 40]: '    {% set tn = "T"+(tool.tool_number|string) %}\n'
	[line 41]: '    {% if printer["gcode_macro " + tn ] %}\n'
	[line 42]: '       SET_GCODE_VARIABLE MACRO={tn} VARIABLE=color VALUE="\'c44\'"\n'
	[line 43]: '    {% endif %}\n'
	[line 46]: '    {% if tool.params_input_shaper_freq_x and tool.params_input_shaper_freq_y %}\n'
	[line 47]: '      {% if tool.params_input_shaper_type_x and tool.params_input_shaper_type_y %}\n'
	[line 48]: '        {% if tool.params_input_shaper_damping_ratio_x and tool.params_input_shaper_damping_ratio_y %}\n'
	[line 49]: '          SET_INPUT_SHAPER SHAPER_FREQ_X={tool.params_input_shaper_freq_x} SHAPER_FREQ_Y={tool.params_input_shaper_freq_y} SHAPER_TYPE_X={tool.params_input_shaper_type_x} SHAPER_TYPE_Y={tool.params_input_shaper_type_y} DAMPING_RATIO_X={tool.params_input_shaper_damping_ratio_x} DAMPING_RATIO_Y={tool.params_input_shaper_damping_ratio_y}\n'
	[line 50]: '        {% else %}\n'
	[line 51]: '          SET_INPUT_SHAPER SHAPER_FREQ_X={tool.params_input_shaper_freq_x} SHAPER_FREQ_Y={tool.params_input_shaper_freq_y} SHAPER_TYPE_X={tool.params_input_shaper_type_x} SHAPER_TYPE_Y={tool.params_input_shaper_type_y} DAMPING_RATIO_X={params_input_shaper_damping_ratio_x} DAMPING_RATIO_Y={params_input_shaper_damping_ratio_y}\n'
	[line 52]: '        {% endif %}\n'
	[line 53]: '      {% else %}\n'
	[line 54]: '        SET_INPUT_SHAPER SHAPER_FREQ_X={tool.params_input_shaper_freq_x} SHAPER_FREQ_Y={tool.params_input_shaper_freq_y} SHAPER_TYPE_X={params_input_shaper_type_x} SHAPER_TYPE_Y={params_input_shaper_type_y} DAMPING_RATIO_X={params_input_shaper_damping_ratio_x} DAMPING_RATIO_Y={params_input_shaper_damping_ratio_y}\n'
	[line 55]: '      {% endif %}\n'
	[line 56]: '    {% else %}\n'
	[line 57]: '      SET_INPUT_SHAPER SHAPER_FREQ_X={params_input_shaper_freq_x} SHAPER_FREQ_Y={params_input_shaper_freq_y} SHAPER_TYPE_X={params_input_shaper_type_x} SHAPER_TYPE_Y={params_input_shaper_type_y} DAMPING_RATIO_X={params_input_shaper_damping_ratio_x} DAMPING_RATIO_Y={params_input_shaper_damping_ratio_y}\n'
	[line 58]: '    {% endif %}\n'
	[line 59]: "    {% if not printer['gcode_macro PRINT_START'].printing %}\n"
	[line 60]: '        STOP_TOOL_PROBE_CRASH_DETECTION\n'
	[line 61]: '    {% endif %}\n'
	[line 63]: '  dropoff_gcode:\n'
	[line 64]: '    {% set x = tool.params_park_x|float %}\n'
	[line 65]: '    {% set y = tool.params_park_y|float %}\n'
	[line 66]: '    {% set z = tool.params_park_z|float %}\n'
	[line 67]: '    {% set fast = tool.params_fast_speed|float %}\n'
	[line 68]: "    {% set path = tool['params_' ~ tool.params_type ~ '_path'] %}\n"
	[line 69]: '    {% set max_z = printer.configfile.config["stepper_z"]["position_max"]|float %}\n'
	[line 70]: '    {% set cur_z = printer.toolhead.position[2]|float %}\n'
	[line 71]: "    RESPOND TYPE=echo MSG='Dropping off {tool.name}'\n"
	[line 72]: '    STOP_TOOL_PROBE_CRASH_DETECTION\n'
	[line 73]: '    G90\n'
	[line 74]: '    ; Move 1 mm up to avoid crashing into things\n'
	[line 75]: '    G0 Z{ [cur_z+1.0, max_z]|min } F{fast}\n'
	[line 77]: '    ROUNDED_G0 Y={tool.params_safe_y} D=20 F={fast}\n'
	[line 78]: '    ROUNDED_G0 X={x} D=150 F={fast}\n'
	[line 79]: "    ROUNDED_G0 Z={z + path[0]['z']|float} D=20 F={fast}\n"
	[line 80]: "    ROUNDED_G0 Y={y + path[0]['y']|float} D=0 F={fast}\n"
	[line 82]: '    {% for pos in path %}\n'
	[line 83]: "        G0 Y{y + pos['y']|float} Z{z + pos['z']|float} F{tool.params_path_speed|float * (pos.get('f', 1.0)|float) }\n"
	[line 84]: '    {% endfor %}\n'
	[line 86]: '  pickup_gcode:\n'
	[line 87]: '    {% set x = tool.params_park_x|float %}\n'
	[line 88]: '    {% set y = tool.params_park_y|float %}\n'
	[line 89]: '    {% set z = tool.params_park_z|float %}\n'
	[line 90]: '    {% set fast = tool.params_fast_speed|float %}\n'
	[line 91]: "    {% set path = tool['params_' ~ tool.params_type ~ '_path'] %}\n"
	[line 92]: "    RESPOND TYPE=echo MSG='Picking up {tool.name}'\n"
	[line 93]: '    G90\n'
	[line 95]: '    ROUNDED_G0 Y={tool.params_close_y} F={fast} D=5\n'
	[line 96]: "    ROUNDED_G0 X={x} Z={z + path[-1]['z']|float} F={fast} D=5\n"
	[line 97]: "    ROUNDED_G0 Y={y + path[-1]['y']|float} F={fast} D=0\n"
	[line 100]: '    {% if tool.extruder %}\n'
	[line 101]: '      TEMPERATURE_WAIT SENSOR={printer.toolhead.extruder} MINIMUM={printer[tool.extruder].target}\n'
	[line 102]: '    {% endif %}\n'
	[line 105]: '    {% for pos in path|reverse %}\n'
	[line 106]: "      G0 Y{y + pos['y']|float} Z{z + pos['z']|float} F{tool.params_path_speed|float * (pos.get('f', 1.0)|float) }\n"
	[line 107]: "      {% if 'f' in pos %} \n"
	[line 108]: '        M400 ; Wait for moves to finish\n'
	[line 109]: '        START_TOOL_PROBE_CRASH_DETECTION T={tool.tool_number}\n'
	[line 110]: '      {% endif %}\n'
	[line 111]: '    {% endfor %}\n'
	[line 113]: '    ROUNDED_G0 Y={tool.params_safe_y} F={fast} D=20\n'
	[line 114]: "    {% if 'Z' in restore_position %}\n"
	[line 115]: '      ROUNDED_G0 Z={restore_position.Z} F={fast} D=150\n'
	[line 116]: '    {% endif %}\n'
	[line 117]: "    {% if 'X' in restore_position %}\n"
	[line 118]: '      ROUNDED_G0 X={restore_position.X} F={fast} D=1000\n'
	[line 119]: '    {% endif %}\n'
	[line 120]: "    {% if 'Y' in restore_position %}\n"
	[line 121]: '      ROUNDED_G0 Y={restore_position.Y} F={fast} D=0\n'
	[line 122]: '    {% endif %}\n'
	[line 123]: '    ROUNDED_G0 D=0\n'

Once the underlying issue is corrected, use the "RESTART"
command to reload the config and restart the host software.
Printer is halted

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions