G31 Changing Z has no effect

  • Hi Guys

    First off I would say that I don't usually ask questions in forums I like to figure it out for myself. But at this point I'm totally stumped 😞 My experience has been for 2 years with the Printrbot Simple metal so I know M212 well 🙂 Clearly need to forget that now with G31.

    I fitted a inductive sensor to my D-Bot build followed the instructions to get it configured & working so far so good. Ive levelled the bed manually & carried out all the relevant steps to get mesh working & a height map built. However when I print my first layer is not quite squished enough, I baby step down 3 clicks & all is good. So m understanding is that I need to adjust the Z offset in the G31 command however it seems that what ever i adjust it to makes absolutely no difference. When I send a G31 T it does show the value stored in the config file but as i said seems to physically do nothing. Ive tried not use mesh & going for normal probing, added & removed G28 from my Simplify Start scripts and about a million other things including re-leveling the bed & doing the whole procedure 4 times now but still I'm stuck. My config file is below would appreciate any help you guys can give as Im at my wits end now 😞



    ; Configuration file for Duet WiFi (firmware version 1.17)
    ; executed by the firmware on start-up
    ; generated by RepRapFirmware Configuration Tool on Mon Mar 27 2017 23:01:45 GMT+0100 (BST)

    ; General preferences
    M111 S0 ; Debugging off
    G21 ; Work in millimetres
    G90 ; Send absolute coordinates…
    M83 ; ...but relative extruder moves
    M555 P2 ; Set firmware compatibility to look like Marlin
    M208 X0 Y0 Z0 S1 ; Set axis minima
    M208 X300 Y270 Z300 S0 ; Set axis maxima

    ; Endstops
    ;M574 X1 Y2 Z1 S0 ; Define active low and unused microswitches
    M574 X1 Y2 Z0 S0 ; Define active low and unused microswitches
    M558 P5 X0 Y0 Z1 H10 F120 T16000 ; Set Z probe type to switch, the axes for which it is used and the probe + travel speeds
    G31 P600 X28 Y10 Z0.49 ; Set Z probe trigger value, offset and trigger height
    ;M557 X15:285 Y15:235 S20 ; Define mesh grid
    M557 X15:300 Y15:255 S20

    ; Drives
    M667 S1 ; switch to CoreXY mode

    M569 P0 S0 ; X motor runs forwards
    M569 P1 S1 ; Y motor runs forwards

    M569 P2 S0 ; Drive 2 goes forwards
    M569 P3 S1 ; Drive 3 goes forwards
    M350 X16 Y16 Z16 E16 I1 ; Configure microstepping with interpolation
    M92 X100 Y100 Z1500 E417 ; Set steps per mm
    M566 X600 Y600 Z12 E150 ; Set maximum instantaneous speed changes (mm/min)
    M203 X8000 Y8000 Z400 E800 ; Set maximum speeds (mm/min)
    ;M201 X500 Y20 Z250 E250 ; Set accelerations (mm/s^2)
    ;M201 X800 Y800 Z250 E2500 ; Set accelerations (mm/s^2)
    M201 X800 Y800 Z200 E1500 ; Accelerations (mm/s^2). The acceleration, speed and jerk is a setting you can alter to try making the printer to print as nice as possible..
    ;M201 X500 Y500 Z100 E1000 ;n

    M906 X800 Y800 Z800 E900 I30 ; Set motor currents (mA) and motor idle factor in per cent
    M84 S30 ; Set idle timeout

    ; Heaters
    M143 S260 ; Set maximum heater temperature to 260C
    M305 P0 T100000 B3988 C0 R4700 ; Set thermistor + ADC parameters for heater 0
    M305 P1 T100000 B4138 C0 R4700 ; Set thermistor + ADC parameters for heater 1

    ; Tools
    M563 P0 D0 H1 ; Define tool 0
    G10 P0 X0 Y0 Z0 ; Set tool 0 axis offsets
    G10 P0 R0 S0 ; Set initial tool 0 active and standby temperatures to 0C

    ; Network
    M550 PDBot ; Set machine name
    M552 P0.0.0.0 S1 ; Enable network and acquire dynamic address via DHCP

    ; Fans
    M106 P0 S0 I0 F500 H-1 ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off
    M106 P1 S1 I0 F500 H1 T45 ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on
    M106 P2 S1 I0 F500 H1 T45 ; Set fan 2 value, PWM signal inversion and frequency. Thermostatic control is turned on

    ; Custom settings are not configured

  • Just a thought but does the offset you enter in G31 require the firmware to move below z=0? Maybe set z-1 as your z minimum. Set low motor current initially I. E. 500mA in case of a head crash.

  • I am having the exact same issue!

  • I think I found out what is happening. When you edit the file in the web console it has no effect but if you use the G code console and enter in G31 P445 X32 Y0 Z1.26 (change the values to the ones you want to use) then use M500, bingo it work and changes. On mine anyways….even after power off. I would think that it should change the config.g but mine did not, not sure if it is supposed to. Good luck hope it helps.

  • After editing config.g, you have to reboot for the changes to be used. I use macros to set the z offset for each type of filament and call the appropriate one in the slicer.

  • I did reboot it had no effect. I had to do it manually with the g code console.

  • I'd say it's because, by initiating M500 you have created a config-overide.g file. So this will over ride whatever settings you have put in your "normal" config.g file and any changes you subsequently make to it. You can edit the config.g file all day long but any values will be overwritten by the congig-overide.g file.

    Either delete the config-overide.g file (and don't use M500 to create a new one) or edit it so that it contains the values you want to use.

  • I did try to edit the config-overide.g but it had no effect. I set it to 10 and rebooted still zeroed at 1.5 then set it 0 then -10 nothing seemed to work but a manual edit. Maybe something is corrupt but it is working now so I am not going to fix it. Over 2 weeks now since I started this upgrade and still working on it! Not 1 great print yet and only 2 fair, Quite a learning curve and mountains of information to sort through, someday maybe…... Never tried deleting the config-overide.g was not sure what it would do.

  • @my67nova:

    …............. Never tried deleting the config-overide.g was not sure what it would do.

    Well the config-overide.g does "just what it says on the tin". That is to say, the values in it override the same parameters that are set in config.g. So deleting config-overide.g would simply mean that everything reverts to whatever values are in config.g. Personally, I never use a config-overide.g file just because it is too easy to forget that it is there, overriding any changes I might make to config.g. So whenever I tune a heater or alter homing parameters, I always make a note of the new values and edit the config.g file, rather than use M500 to create another file. I always like to annotate the config.g file with notes on the date and time and the reason for the changes, as well as commenting out the old values rather than deleting them. That way, when things don't work the way you expect them to, you don't get lost or confused.

Log in to reply