printer starts printing too high (1-2 mm)

edited January 2017 in Slic3r

I just bought a Prusa I3 aluminum from Geeetech. So I'm a total beginner at 3D printing.

My problem is the following : the very first print layer (skirt) starts 1-2 mm above the bed (nota: I don't use auto-leveling)

The softwares I use :
Repetier- Host : 1.6.2
Slic3r : 1.2.9

I tried to add an offset in the Slicer configuration : the 1, 2, 3third layers are well printed but after it seems the nozzle does not add layers anymore but scratch the existing ones.

I think the problem is from the code after the start gcode as below :
Indeed the following step is not carried out : " G1 Z0.300 F7800.000 ; move to next layer (0) "

; generated by Slic3r 1.2.9 on 2017-01-07 at 20:58:18
; external perimeters extrusion width = 0.50mm
; perimeters extrusion width = 0.50mm
; infill extrusion width = 0.50mm
; solid infill extrusion width = 0.50mm
; top infill extrusion width = 0.50mm
; support material extrusion width = 0.50mm

M107 ; disable fan
M190 S55 ; set bed temperature
M104 S220 ; set temperature
G28; Home axis
G1 Z5.0 F5000 ; lift nozzle

M109 S220 ; wait for temperature to be reached
G21 ; set units to millimeters
G90 ; use absolute coordinates
M82 ; use absolute distances for extrusion
G92 E0 ; reset extrusion distance
G1 E-3.00000 F3600.00000 ; retract
G92 E0 ; reset extrusion distance
G1 Z0.300 F7800.000 ; move to next layer (0)   ==========> the printer does not go to Z0.3
G1 X84.799 Y85.709 F7800.000 ; move to first skirt point
G1 E3.00000 F3600.00000 ; unretract
G1 X86.556 Y84.204 E3.12572 F1920.000 ; skirt
G1 X88.718 Y83.380 E3.25144 ; skirt
G1 X90.000 Y83.258 E3.32140 ; skirt
G1 X130.000 Y83.258 E5.49471 ; skirt
G1 X132.280 Y83.655 E5.62043 ; skirt
G1 X134.291 Y84.799 E5.74615 F1920.000 ; skirt

Any idea why moving to Z0.3 not possible ?

Thanks a lot



  • I think your z endstopis resp. bed is not correctly calibrated. Run G28 Z0 at any position and nozzle must nearly touch the bed. Normylly you use a paper sheet that you can  move with low friction. Then distance is ok. (make sure nozzle is clean or if it was used make it 170°C so filament ooze does not affect measurement). Adjust bed height or endstop position so this is valid on all 4 edges of the bed. Then you can start printing.
  • edited January 2017

  • edited January 2017


    Thank you for the quick reply.
    I double checked my bed calibration by doing what you mentioned in your previous message.
    My initial calibration was actually good.

    What I tried after is the following : after slicing my object, I edited my GCODE and replaced the first G1 command as follows "G1 Z0.300 F7800.000" by "G1 Z0.0500 F7800.000". Conclusion : the first layer looked perfect.
    So I realized that when I tried to print previously, the program performed well "G1 Z0.300 F7800.000" but somehow Z0.300 was not 0.3mm but 3mm instead.
    Indeed, when I edited the GCODE to "G1 Z0.0500 F7800.000", the first layer is perfect. But the following G1 command (= 2nd layer) with Z0.3 is too high from the first layer (3mm or so).
    So for whatever reasons, there's a 10x factor difference between the reality and what the program does.
    Any idea where it could come from ?

    Thank you very much.
  • Enable log windows and show commands. That will show outgoing commands. Also add in manual control echo so firmware does output what command it received (at least repetier-firmware does, not sure what yu are using). Then see what you send and what firmware thinkt it receives on G1 Z0.3 to see where it goes wrong. Make sure to use a dot and not a comma!
  • edited January 2017
    I tried to print again today. Here are the logs : we can see, in red below, (in the logs below) the printer really received G1 Z0.3.

    The print was unsuccessful because too high from the bed.

    What I did next is to check if my Z motor delivered the right height ?
    So I set Z to 0 manually. And from 0, I launched (manually also) the following command :
    G1 Z1.25 F100 = 1 full turn
    G1 Z2.5 F100 = 1 full turn again
    etc. up until
    G1 Z6.25 F100

    Then I measured with a ruler the distance between the bed and the tip of the nozzle. Distance = 4.2-4.3 mm instead of 6.25
    Is that normal ? Or maybe I don't measure the distance between the two right points?

    FYI here is my eeprom regarding to step per mm:
    X : 80.00
    Y : 80.00
    Z : 2560.00
    E : 97.00

    Also I use for the Z axis M8*300mm threaded rods.

    1/ Any idea why Z0.3 is not 0.3 mm but more something like 3 mm.
    2/ Do I have a problem with my motor (regarding to the above measurement : 4.2-4.3 vs 6.25) ?

    Thanks a lot


    Logs :
    19:14:23.958 : Slic3r command:C:\Program Files\Repetier-Host\Slic3r\slic3r.exe --load "slic3r_settings.ini" --print-center 110.00,110.00 -o "composition.gcode" "composition.amf"
    19:14:24.306 : <Slic3r> => Processing triangulated mesh
    19:14:24.314 : <Slic3r> => Generating perimeters
    19:14:24.931 : <Slic3r> => Preparing infill
    19:14:24.958 : <Slic3r> => Infilling layers
    19:14:25.581 : <Slic3r> => Generating support material
    19:14:25.680 : N96 M105*24
    19:14:26.207 : <Slic3r> => Generating skirt
    19:14:26.208 : <Slic3r> => Generating brim
    19:14:26.209 : <Slic3r> => Exporting G-code to composition.gcode
    19:14:26.638 : <Slic3r> Done. Process took 0 minutes and 2.331 seconds
    19:14:26.639 : <Slic3r> Filament required: 1972.4mm (4.7cm3)
    19:14:28.739 : N97 M105*25
    19:14:31.805 : N98 M105*22
    19:14:34.412 : N99 M107*21
    19:14:34.413 : N100 M190 S35*95
    19:14:34.414 : N101 M104 S217*97
    19:14:34.419 : N102 G28*16
    19:14:34.420 : N103 G1 Z5 F5000*6
    19:14:34.420 : N104 G21*31
    19:14:34.420 : N105 M109 S217*104
    19:15:59.094 : N106 M117 FIN 37m 35s*94
    19:15:59.094 : N107 M105*33
    19:15:59.094 : N108 G21*19
    19:16:02.852 : N109 M117 FIN 37m 35s*81
    19:16:02.852 : N110 M105*39
    19:16:02.852 : N111 G90*17
    19:18:19.461 : N112 M105*37
    19:18:19.461 : N113 M117 FIN 37m 35s*90
    19:18:19.462 : N114 M82*29
    19:18:19.464 : N115 G92 E0*66
    19:18:19.464 : N116 G1 E-2 F4800*62
    19:18:19.464 : N117 G92 E0*64
    19:18:19.485 : N118 G1 Z0.3 F7800*30
    19:18:19.485 : N119 G1 X82.209 Y81.944 F7800*72
    19:18:19.485 : N120 G1 E2 F4800*22
    19:18:19.485 : Impression couche layer 1 sur 110
    19:18:19.485 : N121 G1 X84.615 Y80.172 E2.27411 F1440*6
    19:18:19.723 : N122 M117 FIN 37m 34s*89
    19:18:19.724 : N123 G1 X87.403 Y79.098 E2.54822*110
    19:18:19.835 : N124 G1 X90 Y78.793 E2.78818*124
    19:18:19.835 : N125 G1 X130 Y78.793 E6.4582*119
    19:18:19.851 : N126 G1 X132.961 Y79.191 E6.73231*92
    19:18:19.851 : N127 G1 X135.711 Y80.358 E7.00642 F1440*48
    19:18:19.851 : N128 G1 X138.056 Y82.209 E7.28053*90
    19:18:19.867 : N129 G1 X139.828 Y84.615 E7.55464*94
    19:18:19.867 : N130 G1 X140.902 Y87.403 E7.82875*81
    19:18:19.867 : N131 G1 X141.207 Y90 E8.06871*71
    19:18:19.883 : N132 G1 X141.207 Y130 E11.73873*71
    19:18:19.883 : N133 G1 X140.809 Y132.961 E12.01284*85
    19:18:19.884 : N134 G1 X139.642 Y135.711 E12.28695*92
    19:18:19.908 : N135 G1 X137.791 Y138.056 E12.56106*81
    19:18:19.910 : N136 G1 X135.385 Y139.828 E12.83517*93
    19:18:22.105 : N137 M105*34
    19:18:23.049 : N138 G1 X132.597 Y140.902 E13.10928*93
    19:18:23.225 : N139 G1 X130 Y141.207 E13.34924*78
    19:18:23.226 : N140 G1 X90 Y141.207 E17.01926*123
    19:18:23.257 : N141 G1 X87.039 Y140.809 E17.29337*109
    19:18:23.385 : N142 G1 X84.289 Y139.642 E17.56748*111
    19:18:23.496 : N143 G1 X81.944 Y137.791 E17.84159*105
    19:18:25.159 : N144 M105*38
    19:18:25.159 : N145 M117 FIN 37m 26s*91
  • measure the pitch of your M8 rods, they might be M8 fine pitch ,which is 1mm instead of 1.25mm
  • edited January 2017
    MartinH I measured the pitch. It is 1mm instead of 1.25 mm. Should I modify anything in the settings ? if so, where should I ?

    Also, after measuring the pitch, I wanted to change the step / mm in the eeprom to see what would happen. So I set Z step/mm to 4000 instead of 2560.
    Then I launch G0 Z10. The motor turned much faster.
    - Then I measured the distance between the bed and the tip of the nozzle : 10 cm.
    - Remember, with the initial 2560 step/mm, the distance between the nozzle and the bed : 5.2-5.3 cm
    - But then with 4000 step/mm set up, I launched G0 Z0.3 which is my initial concern, and the distance between the nozzle and the bed is same than with 2560 step/mm.
    Should I use 2560 or 4000 step/mm for Z axis ? knowing that I use the following motor : 200 1.8° 1/16th.

    thank you
  • Just a question, did you calibrate your z-axis steps/mm correctly? I was poking around the web and there was a page that was showing firmware settings for the i3  rework?
    It showed initial settings for the firmware . In step 10 it shows:
    // prusa i3 settings
    #define DEFAULT_AXIS_STEPS_PER_UNIT   {80,80,4000,600}  // default steps per unit for prusa i3 rework 
    #define DEFAULT_MAX_FEEDRATE          {500, 500, 2, 25}    // (mm/sec)
    #define DEFAULT_MAX_ACCELERATION      {2000,2000,20,1000}    // X, Y, Z, E maximum start speed for accelerated moves. E default values are good for skeinforge 40+, for older versions raise them a lot.
    like Repetier stated your initial Z0 setting is very important. Goodluck.
  • You still should do the test with logging command and echo in debug enabled to see what firmware thinks it received with your Z0.3. Also make sure you have no G92 Zxxxx before that command. That would change Z by an offset and could easily create a offset. So please run manually after enabling echo:

    G28 Z0
    G1 Z0.3

    and see what happens.
  • Hi
     4000 s/mm is for a 0.75 pitch

    You need ~3200 for a 1 mm pitch, this may need fine tuning so that sending a 'G1 Z150 F1000' does actually move the Z 150 mm.
  • edited January 2017
    @Repetier :

    I tried to do what you proposed as follows (step/mm Z axis 2560.00) :

    1/ M111 S1 to enable echo
    2/ G28 Z (I forgot to write 0 but not big deal since it understood Z0)
    3/ G28 Z0
    4/ G1 Z0.3

    here are the logs :
    22:48:20.701 : N99 M111 S1*80
    22:48:33.613 : N100 G28 Z0*88
    22:48:33.615 : echo:N100 G28 Z0*88
    22:48:33.993 : N101 M105*39
    22:48:37.430 : echo:N101 M105*39
    22:48:52.405 : N102 G28 Z0*90
    22:48:52.407 : echo:N102 G28 Z0*90
    22:48:54.008 : N103 M105*37
    22:48:56.193 : echo:N103 M105*37
    22:49:02.406 : N104 G1 Z0.3*122
    22:49:02.410 : echo:N104 G1 Z0.3*122

    Conclusion : to me, the firmware understands Z0.3. Do you confirm ?

    ps : I made sure there was no G92 Zxxx before.

    I tried to change the step/mm on Z axis to see what's going on.

    0/ 2560 => G1 Z150 F1000 is out of range !

    So I change 150 to 15. It seems Z axis is in cm not mm. Is it normal ?

    1/ 2560 => G28 Z0 then G1 Z15 F1000 => distance from bed to tip of extruder : 9.5 cm
    2/ 3200 => G28 Z0 then G1 Z15 F1000 => distance from bed to tip of extruder : 13 cm
    3/ 4000 => G28 Z0 then G1 Z15 F1000 => distance from bed to tip of extruder : 15 cm

    but then, no matter what step/mm on z axis :

    4/ with 2560 => G28 Z0 then G1 Z0.3 F1000 => distance from bed to tip of extruder : 3 mm
    5/ with 3200 => G28 Z0 then G1 Z0.3 F1000 => distance from bed to tip of extruder : 3 mm
    6/ with 4000 => G28 Z0 then G1 Z0.3 F1000 => distance from bed to tip of extruder : 3 mm

    Thanks for the tip. That's what I tried above.

    My conclusion : I feel there's some kind of scale problem on z axis. Because no matter what step/mm is set up in eeprom,
    > G28 Z0 then G1 Z0.3 F1000 => distance from bed to tip of extruder : 3 mm
    > G28 Z0 then G1 Z0.03 F1000 => distance from bed to tip of extruder : 0.3 mm

    But I might be wrong too.
    Also, I tried to look for any offset or unit or scale, in Marlin file configuration.h. I re-uploaded the firmware few times, each time with some 1 single change in configuration.h (parameters regarding to z axis) but still the same issue.

    Any idea guys ? I really don't know where I should look into now.

    Many thanks :) !


  • Can you re-try step 3 but with Z15.5 
  • edited January 2017
    looks like halfstep mode and 1mm pitch rod. (so you have 400 steps/mm)

    in 1/16th mode with 1mm pitch rod you should have 3200 steps/ mm

    so two possibilities : check if jumpers are set correctly  or set steps to 400

  • @RAyWB I set steps to 400 and it worked just fine :) !!! waaoou my 1st print !!!!! XD

    @RAyWB @MartinH @Roko @Repetier I wanted to thank you guys for your help !! Much appreciated !

    Enjoy your week-end !

  • anyway, i think you should check jumper settings, now you know that your printer is principally running.
    i don´t know about the electronics used in your printer,so may be you have information in manual
    or you´ll find somewhere in web.
    enjoy printing ;-)

  • Hi,
    I bought recently the Geeetech prusa i3 PRO W.
    I have the same problem at the begining of printig.

    I tried to change the parameter in repetier host -->Manual Control-->G-Code:
    G28 Z0
    G1 Z15 F1000

    and works bad.

  • Saying "works bad" is just like saying does not do what I want but I do not need help. Host just sends the commands and firmware has to do it, so you need to search in firmware or hardware setup depending on what bad means.
  • I now have a similar problem on a Geeetech i3 but it has previously worked fine for a couple of years.  The Repetier generated code always includes these lines near the start:
    G1 Z5 F5000 ; lift nozzle
    G1 Z0.300 F7800.000

    If I change these to a much lower speed, everything is fine.  If not, the motors screech and I have the Z error.    I don't understand how these large values get there because the Configuration settings for the PrusaSlicer have limits of 12mm/s (720mm/min).

    Any clues to what's going on?

  • Might be user generated start code.

    Should not be a problem - firmware has internally a limit speed for z but i guess it is configured too high in your case. Change it real limit speed in firmware and it should not matter any more.
  • Thanks for your comment.  On re reading the discussion above, I realise that although my problem is superficially similar to josharchibal's the cause is obviously different and is only caused by the excessive Z axis speed.

    I don't know how to change the firmware.  But in any case, I wonder why the settings allow the limits to be edited but then ignore them - I'm sure this can't be right, otherwise how  could you know that any settings anywhere were going to be obeyed?

    I think the user start code is in the "scripts" section and these are all empty.     

    Am I right in thinking that the slicer part of the Repetier Host package is supplied for convenience rather than supported by Repetier?  If so maybe I am asking in the wrong forum.

  • Yes, we only include sluc3r but do not develop it, so we can not make any changes to that.

    Most firmwares allow changing max speed in eeprom so no compilation is required.
Sign In or Register to comment.