Issue with Sailfish/CTCDual

OctoPi/CTC Dual/Sailfish/Cura

Printing directly from a laptop via Mattercontrol works but any combination of slicer run through OctoPi causes the print to start in the back right hand side of the bed not the centre.

I have set the slicers to Makerbot/Sailfish so I hope that it will save the gcode in the Makerbot format and I'm not sure what else to do.

Any help gratefully received.


You might want to check the OctoPrint printer profile and the slicer's printer profile to verify that the printer is centered rather than positioned somewhere else.

Then in the Control tab, press the Home X/Y button and verify that it moves where you think the home position should be. If it doesn't, then adjust the OctoPrint's profile.

Octoprint homes correctly, my last attempt was to copy the On Connect gcode from MatterControl into Octo but it made no differance.

The Octo printer profile seems only to let me set up bed size and origin (I've tried both origin options) is there something else I should look for?

Thanks aamcle

At each startup, your firmware needs to be told to go into a particular axis move mode (abs/rel), set the extrusion move mode (same), do a G28 home command and then it's nearly there. What's typically next is to do an autolevel.

So if your printer is running to the wrong corner when running your sliced job then it might be something that's not even OctoPrint. Go back to the slicer profile.

It's going to the correct corner, but it's trying to print in the corner it's not moving to the centre of the bed to print the part.


See if there's any code in the Settings -> GCode Scripts section of OctoPrint like the part that might run before each job. Show us what that is.

Also, we need to see the first 40 lines of your gcode file you're trying to print.

Sorry For the delay.

I have copied the GCode from MatterControl and the start of a successful print. I have not managed to get Cura or MatterControl to export and save a .x3g file.

G Code From Matter Control :-

Start Gcode

G28 ; home all axes
G0 Z5 F5000 ;set warming position
M1200 MatterControl; Build Start Notification for Makerbot
M126 S100 ; Fan 

Layer Change GCode

; LAYER:[layer_num]

Cancell Gcode

M104 S0 ;turn off temperature 
M140 S0 ;turn off bed temperature
G28 X0 Y0
M1201 ;Build End Notification 

On Connect Gcode

M92 X96.3 Y96.3 Z378.6 E101 ;sets steps per mm for x3g driver
M206 X285 Y150 Z0 ;sets bed offset (opposite values of bed size)

From Terminal

->Communication State: PreparingToPrint
->N1 M110 N1*125
->N1 M110 N1*125
->N2 M105*37
<-ok T:28 B:75
->N3 M114*36
<-ok C: X:285.015567291812 Y:150.020763677809 Z:0.0052826200944465 E:0
; Generated with MatterSlice 1.0
; filamentDiameter = 1.75
; extrusionWidth = 0.4
; firstLayerExtrusionWidth = 0.44
; layerThickness = 0.2
; firstLayerThickness = 0.3
; automatic settings before start_gcode
->N4 G21*30
->N5 M107*32
->N6 M140 S80*91
->Communication State: Printing
->N7 M105*32 [0.797]
<-ok T:29 B:75 [0.840]
->N8 M105*47 [1.845]
<-ok T:29 B:75 [1.889]
->N9 M105*46 [2.891]
<-ok T:28 B:75 [2.934]
->N10 M105*22 [3.936]
<-ok T:29 B:76 [3.979]
->N11 M105*23 [4.981]
<-ok T:29 B:76 [5.024]
->N12 M105*20 [6.026]
<-ok T:28 B:76 [6.068]
->N13 M105*21 [7.071]
<-ok T:28 B:77 [7.113]
->N14 M105*18 [8.116]
<-ok T:28 B:78 [8.158]
->N15 M105*19 [9.160]
<-ok T:28 B:79 [9.203]
->N16 M105*16 [10.205]
<-ok T:28 B:79 [10.247]
->N17 M105*17 [11.250]

Thanks All


At best, there's a G28 home to start things but I'm not seeing anything that sets the X/Y/Z axes to absolute/relative mode. Maybe a G90 perhaps after homing.

I know that I asked for the first 40 lines of your gcode but I'm not seeing any G0 or G1 commands to move it to where things are supposed to begin.

I'm beginning to feel that I should leave my Sailfish to sink with the Titanic and get my other printer running on Marlin or Klipper.

I let the print I copied the code from finish, it was Ok.

The bed centre could be defined in Sailfish, but would the gcode over ride that?


In a case like this if you can manually home and then jog things with the OctoPrint -> Control tab then it's probably not OctoPrint.

In theory, your Sailfish configuration should know where the home point is (back/right) as well as the size of your bed. Your slicer should have configured where the job should start and your printer profile in that slicer should know that the home position is back/right and the size of your bed. Your slicer should then produce gcode which manually sets the absolute movement mode and then with a G0 command, moves the hotend to wherever it is that you positioned this part on the print bed.

So review your gcode. You're looking for the first G0 and G1 commands in the file which have an X/Y component to them. And the X/Y part of that line should reasonably be what you believe is the center of your print bed. In a case where the home position is back/right instead of back/left then the X part of those G0/G1 commands may or may not be negative to move the hotend to the left.