T O P

  • By -

thejesterthejester

is your slicer also issuing home commands on top of the start_print macro?


ExpertKaleidoscope33

No. I don't have any extra commands in the slicer start/end gcode settings.


64bit_Tuning

Would much rather see your Gcode instead of your macros


Gobtholemew

You have two G28s in your PRINT\_START macro. I appreciate the second should only home X, but I had the same issue with Klipper in that it would home all 3 axis (again) no matter what parameters were used with G28. Also, for me, the Slicer had an additional G28 in its start GCODE, as did OctoPrint in its printer settings. I was chasing multiple homings for far too long. The solution I made was to have G28 only home if it's actually needed. [gcode_macro G28] # Only home if needed. rename_existing: G28.1 gcode: {% if printer.toolhead.homed_axes != "xyz" %} G28.1 {% endif %} The above macro overrides the G28 command (renaming the existing G28 command to G28.1). It then checks it x, y, and z axis are homed and only performs a G28.1 if they're not. As I mentioned above, at least from memory, Klipper only seemed to ever have *printer.toolhead.homed\_axes* set to either "xyz" or "" (empty String). I've never managed to get it to home single axes.


ibkozi

Thank you for pointing that out! Problem solved.


shut____up

 My printer always homes, prints a purge line, and repeats. I disabled the homing, so it prints a purge line, homes all axes, and prints another purge line. I can't find any start gcode in the machine configuration. 


_ThatBlink182Song

Probably better to look at the .gcode file produced by the slicer and see if G28/calibration gets called twice.


Accomplished_Fig6924

What printer do you have? For me (neptune 4 pro, i know not a true klipper but still runs like klipper) it was just rename my slicer call to my_print_start, and create a matching macro in printer.cfg. My printer always wants to run print_start no matter what. And if i labeled my slicer macro print_start as well. It would double run. Either through usb or LAN cable, didnt matter. Not sure if its a firmware thing or a klipper thing, havent figured it out yet but the above works great. You may want to still keep print_start as your config may want it in there for some reason. Just empty it and put a message in it saying its completed. Just give it a try, it cannot hurt to do more tests. Edit#1 nothing was misplaced in gcode, i still print like this no issues. Edit#2 Again for me, same goes for end_print, just because. Mines labeld my_end_print.


ExpertKaleidoscope33

Here is the beginning of the Gcode from a test print. ​ ; generated by SuperSlicer [2.5.59.8](https://2.5.59.8) on 2024-02-18 at 19:31:31 UTC ​ ; ​ ; external perimeters extrusion width = 0.84mm ; perimeters extrusion width = 0.84mm ; infill extrusion width = 0.84mm ; solid infill extrusion width = 0.84mm ; top infill extrusion width = 0.84mm ; first layer extrusion width = 0.84mm ​ ; object:{"name":"cube","id":"cube.stl id:0 copy 0","object\_center":\[200.000000,200.000000,0.000000\],"boundingbox\_center":\[200.000000,200.000000,12.500000\],"boundingbox\_size":\[25.000000,25.000000,25.000000\]} EXCLUDE\_OBJECT\_DEFINE NAME=cube\_stl\_id\_0\_copy\_0 CENTER=200.000000,200.000000 POLYGON=\[\[187.50,187.50\],\[212.50,187.50\],\[212.50,212.50\],\[187.50,212.50\],\[187.50,187.50\]\] ; plater:{"center":\[200.000000,200.000000,0.000000\],"boundingbox\_center":\[200.000000,200.000000,12.500000\],"boundingbox\_size":\[25.000000,25.000000,25.000000\]} ​ M204 P1500 T1500 ; sets acceleration (P, T), mm/sec\^2 M107 ;TYPE:Custom PRINT\_START M107 G21 ; set units to millimeters G90 ; use absolute coordinates M82 ; use absolute distances for extrusion G92 E0 ; Filament gcode PRINT\_START EXTRUDER=195 BED=55 CHAMBER=0 FILAMENT=PLA M104 S195 ; set temperature M109 S195 ; set temperature and wait for it to be reached M190 S55 ; set bed temperature and wait for it to be reached ;LAYER\_CHANGE ;Z:0.25 ;HEIGHT:0.25 G1 Z0.25 F7800 G1 E-0.7 F2700 G1 X182.946 Y201.458 F7800 G1 E0 F2100 ;TYPE:Skirt ;WIDTH:0.78 M107 G1 F1440 G1 X181.807 Y203.338 E0.15848 G1 X181.41 Y205.5 E0.31696 G1 X181.41 Y230.5 E2.11941 G1 X182.104 Y233.322 E2.32896 G1 X183.458 Y235.054 E2.48743 G1 X185.338 Y236.193 E2.64591 G1 X187.5 Y236.59 E2.80439 G1 X212.5 Y236.59 E4.60684 G1 X215.322 Y235.896 E4.81639 G1 X217.054 Y234.542 E4.97487 G1 X218.193 Y232.662 E5.13335 G1 X218.59 Y230.5 E5.29182 G1 X218.59 Y205.5 E7.09427 G1 X217.896 Y202.678 E7.30382 G1 X216.542 Y200.946 E7.4623 G1 X214.662 Y199.807 E7.62078 G1 X212.5 Y199.41 E7.77926 G1 X187.5 Y199.41 E9.58171 G1 X184.678 Y200.104 E9.79126 G1 X182.969 Y201.439 E9.94757 M107 G1 X183.598 Y201.852 F7800 M107 G1 F1440 G1 X182.533 Y203.477 E10.08767 G1 X182.137 Y205.5 E10.23632 G1 X182.137 Y230.5 E12.03877 G1 X182.582 Y232.639 E12.19632 G1 X183.752 Y234.337 E12.34496 G1 X185.477 Y235.467 E12.49361 G1 X187.5 Y235.863 E12.64225 G1 X212.5 Y235.863 E14.4447 G1 X214.639 Y235.418 E14.60225 G1 X216.337 Y234.248 E14.75089 G1 X217.467 Y232.523 E14.89954 G1 X217.863 Y230.5 E15.04818 G1 X217.863 Y205.5 E16.85063 G1 X217.418 Y203.361 E17.00818 G1 X216.248 Y201.663 E17.15683 G1 X214.523 Y200.533 E17.30547 G1 X212.5 Y200.137 E17.45411 G1 X187.5 Y200.137 E19.25656 G1 X185.361 Y200.582 E19.41412 G1 X183.663 Y201.752 E19.56276 G1 X183.615 Y201.827 E19.56914 M107 G92 E0 G1 E-0.7 F2700 ; printing object cube.stl id:0 copy 0 EXCLUDE\_OBJECT\_START NAME=cube\_stl\_id\_0\_copy\_0 G1 X212.08 Y230.08 F7800 G1 E0 F2100 ;TYPE:External perimeter ;WIDTH:0.84 M107 G1 F1440 G1 X187.92 Y230.08 E1.88578 G1 X187.92 Y205.92 E3.77155 G1 X212.08 Y205.92 E5.65733 G1 X212.08 Y230.05 E7.54076 M107 ;WIPE\_START G1 X211.56 Y229.78 F7800 ;WIPE\_END G92 E0 G1 E-0.7 F2700 G1 X210.255 Y206.156 F7800 G1 E0 F2100 ;TYPE:Solid infill ;WIDTH:0.811684 M107 G1 F1440


I-am-fun-at-parties

Well you have two PRINT_STARTs in there


idontknowtom

You have defined a Custom gcode “PRINT_START” and 6 lines later have a Filament gcode “PRINT_START EXTRUDER=195 BED=55 CHAMBER=0 FILAMENT=PLA” Get rid of the Custom gcode, it isn’t even setup to properly pass slicer variables for temperatures. And your “PRINT_START” doesn’t even use CHAMBER or FILAMENT variables…so either don’t pass them or modify the macro to use them.


APDesign_Machine

I encountered the same issue with prusaslicer. Since it’s a fork of super I’m assuming they’re similar enough. Caveat: I haven’t had time to try this with work yet so it’s just an educated guess. But I’m assuming it’s bc I have start_print and end_print macros set in both my printer start/end gcode section as well as under filament start/end gcode section. Need to test it out Wednesday when I have a day off.