Don’t know if anyone experienced this before, I could not find any topic on this. The situation is that I have a quick-swap kit and bracing kit installed on my SM2.0. I noticed that the nozzle deviates from the (X0, Y0)-position on the bed, so I corrected that with the M206 command:
M206 X-17.00 Y-14.00 ; set offset to home position
M500 ; save settings to eeprom
G28 ; home all axes
G90 ; absolute positioning
G0 X0 Y0 Z10 ; move to origin of the bed
After this the nozzle is located at the (0,0) position of the bed at 10mm height. So that’s good.
However, when proceeding with the calibration-routine for leveling the bed, the routine fails on the outer position of the grid in X-direction. I’m using a 9x9 grid for auto-bedlevelling and installed**Snapmaker2_V1.21.0** fw-version recently.
My suspicion is that the home offset values are not taken into account when moving to the coordinates of grid. Setting the homeoffset to zero again will pass the calibration routine.
I too had this problem with the quick release kit. it sits 15mm forward of the original 0,0 origin.
I raised it with Snapmaker who said as long as the sensor for the print head, I have the 2 nozzle one, was over the print bed it should perform all calibrations without the neeed of offsets. And guess what, it worked.
I never print a model exactly at the origin anyway. As far as the laser goes its set by the user anyway.
While I cannot help with your original question - why do you find it important that the 0,0 position aligns with the 0,0 on the print sheet? I personally do not care about the coordinates on the waste board or print sheet…
save it and build the firmware according to the instructions in the README.
Note that according to these instructions, the version must be incremented by 1 to be able to upload it to the Snapmaker.
For anyone who wants a similar result without modifying firmware, you could use a custom gcode header in your slicer.
I needed a similar move of home position, because I have multiple single printheads, I have half a quick-change installed. Only on the printheads so I can swap nozzle sizes faster (just swap toolheads) but not the workbed QS. Thus I can’t tap the “QS installed” option, else it won’t let me bring the printhead down enough to calibrate.
Without the option, my purge line was off the front of the machine… so? At the beginning of my prints I add this:
G92 Y339
Which, if you’re a follower of my other guides, looks really similar to setting the origin on laser/CNC The change in Z between points with just a 10-15 mm shift shouldn’t harm enough to matter after calibration.
To get your locations, home the machine and X, use the -17, but Y, add your offset to the homed position.
If it’s of use to anyone, these are the gcode header/footer I use in Prusaslicer, just so you get a feel of where to drop the code.
Start G-code
G90 ; use absolute positioning
M140 S[first_layer_bed_temperature] ;Set Bed Temperature
G28 ;home
M420 S ;Enable Leveling
M190 S[first_layer_bed_temperature] ;Wait for Bed Temperature
G92 Y339
G1 X0 Y-1 F3000 ;Move to corner
M104 S[first_layer_temperature] ;Set Hotend Temperature
G1 Z0.3 F1800 ;Go to zero offset
M109 S[first_layer_temperature] ;Wait for Hotend Temperature
M900 K0.08 ; Linear Advance
G92 E0 ;Zero set extruder position
G1 X100.0 E20 F1000.0 ; Purge line
G1 X120.0 F6000.0 Z0.3 ; Purge wipe
G92 E0 ;Zero set extruder position
End G-code
;End GCode begin
M104 S0 ;extruder heater off
M140 S0 ;heated bed heater off
G90 ;absolute positioning
G92 E0
G1 E-2 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure
{if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+30, max_print_height)}{endif} ; Move print head up
M106 S255 ; Set Fan To 100%
M104 S100 ; Set Nozzle to 100C
M109 R100 ; Wait for Nozzle to Cool
G4 ; wait
M104 S0 ; turn off temperature
G28 ;home
M84 ;steppers off
M107 ;fan off
M82 ;absolute extrusion mode
;End GCode end