Model not in the centre of the bed



I know this might not be the correct forum but im just wondering if anyone could help me.

I am currently using a k8200 running the latest marlin firmware on an arduino, printing using an astrobox on a pi 3, the other day one of my A4988 driver boards failed and I replaced it with a DVR8825 driver, I re calibrated my steps per mm and the 20 x 20 x 20 mm cube I printed was within the correct margin.

I started a large print this morning that uses the majority of the y axis, the issue is it didn’t start the print in the centre of the bed, the right hand side of the print is nearly touching the right hand side of the y axis, thus leaving around a 20mm space on the left hand side.

Now prior to changing the driver board the prints were pretty much in the centre, are there some settings I can change or am I better trying to calibrate the y axis again maybe with a larger print. something like a 100 x 100mm cube.

Here are some images to show you what I mean.



For Sailfish machines the print assumes that the coordinates 0,0 are in the center of the bed. Such center can be configured. You should make sure that you set the center to exactly the center of you build plate. It’s possible that your firmware is placing 0,0 a bit to the side.

Our software generates movement commands that offset from a logical center of 0,0. The physical location of that 0,0 as set by the firmware or user is outside of our control.


Currently at the moment when I ask the printer to go home the bed goes to the bottom right with the nozzle at the top left, the nozzle isn’t off the bed.

In the astrobox settings I have currently have this setting - Bed Center is Zero: NO

Do I need that on, I didnt have it turned on before I changed the driver board.

Will my start gcode make a difference, this is what im currently using,

G28 ; home all axes
G90 ; use absolute coordinates
G21 ; set units to millimeters
G92 E0
M82 ; use absolute distances for extrusion
M109 S[first_layer_temperature] ; wait for temperature to be reached
G1 E5 F400 ; prime the nozzle

Would this be better,

;Sliced at: {day} {date} {time}
;Basic settings: Layer height: {layer_height} Walls: {wall_thickness} Fill: {fill_density}
; Print time: {print_time}
;Filament used: {filament_amount}m {filament_weight}g
;Filament cost: {filament_cost}
M140 S{print_bed_temperature} ; pre-heat bed
G91 ; relative positioning
G1 Z5 ; move Z up 5mm before homing x/y
G90 ; absolute positioning
M117 Homing… ; Put message on LCD screen
G28 ;Autohome to X0, Y0, then Z0
G29 ; Probe bed
G21 ; metric values
M107 ; start with the fan off
G1 Z10.0 F{travel_speed} ;move the nozzle up 10mm
G0 X0 Y0 ;Start at 0/0 instead of where G29 left us
M117 Heating Bed… ; Put message on LCD screen
M190 S{print_bed_temperature} ;heat bed and wait
M117 Heating Extuder… ; Put message on LCD screen
M109 S{print_temperature} ;pre-heat extruder and wait
G92 E0 ;zero the extruded length
G1 F200 E4 ; extrude 4mm of feed stock
G92 E0 ; zero the extruded length again
G1 F{travel_speed}
; Put printing message on LCD screen
M117 Printing…


If your printer profile is set to X3G, the set center to zero should be on (and unchangeable). I need to fix that.

Your start GCODE are very different. The first one seems to be for Slic3r and the second one for Cura. Which one do you use?

About homing: The home function in 3D Printers send the printer to find the end stops to get a well known position, which doesn’t need to be 0,0. It depends on your printer.