Traveling Z offset



  • Hello everyone,

    A friend of mine and I recently observed some strange behavior relating to the Z offset. We both use G10 to set our Z offset from config.g and it generally works great. However, what both he and I observed was that whenever we either reboot the Duet controller or physically power cycle the power on the PSU the z offset ends up being off by some amount causing the bed to be too high or too low which means the offset has to be reset to 0 and re-measured.

    I have a Duet2 Wifi with Duex5 board, my friend has a Duet2 ethernet with Duex5. I'm on Firmware 2.02(RTOS) (2018-12-24b1) he is on 2.03 (2019-06-13b2)

    Any ideas what may be happening here?



  • I'm the friend 🙂



  • what kind of probe are you using?

    it could be because of misalignment due to the power loss for the z motors.
    one way is to use this
    https://duet3d.dozuki.com/Wiki/Bed_levelling_using_multiple_independent_Z_motors



  • We are using BLtouch version 2. We have Railcore II 300zl printers and do use G32 to level the bed. It levels fine but we need to adjust the starting height often that's what the issue is



  • The offset should be adjusted via the G31 Z Parameter.

    can you post a picture of a mesh bed leveling?



  • Sure
    0_1561813680053_mesh.png



  • @bmveee said in Traveling Z offset:

    G10

    thats seems perfectly flat.

    my suggestion is to try using G31 instead of G10 for the offset.



  • We were initially using G31 and switched to G10 on suggestion of a couple of members of Railcore team. What is the difference between the two in terms of accuracy and purpose?



  • the g10 is for multible tools. as far as i know there railcore ii only has 1 extruder



  • also please post your config, overwrite and all your homing files



  • Config-override.g
    ; config-override.g file generated in response to M500 at 2019-06-28 20:57
    ; This is a system-generated file - do not edit
    ; Heater model parameters
    M307 H0 A274.3 C798.5 D9.1 S1.00 V24.1 B0
    M307 H1 A304.7 C170.2 D4.6 S1.00 V0.0 B0
    M307 H2 A340.0 C140.0 D5.5 S1.00 V0.0 B0
    M307 H4 A340.0 C140.0 D5.5 S1.00 V0.0 B0
    M307 H5 A340.0 C140.0 D5.5 S1.00 V0.0 B0
    M307 H6 A340.0 C140.0 D5.5 S1.00 V0.0 B0
    M307 H7 A340.0 C140.0 D5.5 S1.00 V0.0 B0
    G10 L2 P1 X0.00 Y0.00 Z0.00
    G10 L2 P2 X0.00 Y0.00 Z0.00
    G10 L2 P3 X0.00 Y0.00 Z0.00
    G10 L2 P4 X0.00 Y0.00 Z0.00
    G10 L2 P5 X0.00 Y0.00 Z0.00
    G10 L2 P6 X0.00 Y0.00 Z0.00
    G10 L2 P7 X0.00 Y0.00 Z0.00
    G10 L2 P8 X0.00 Y0.00 Z0.00
    G10 L2 P9 X0.00 Y0.00 Z0.00

    Homez.g
    G91
    G1 Z5 F800 S2
    G90
    G1 X150 Y150 F2400
    G30
    G1 Z2 F200

    homey.g
    G91
    G1 Z4 F200 S2
    G1 Y-320 F3000 S1
    G1 Y4 F600
    G1 Y-10 S1
    G1 Z-4 F200 S2
    G90

    homex.g
    G91
    G1 Z4 F200 S2
    G1 X-320 F3000 S1
    G1 X4 F600
    G1 X-10 S1
    G1 Z-4 F200 S2
    G90

    homeall.g
    M98 P"homex.g"
    M98 P"homey.g"
    M98 P"homez.g"

    config.g
    ; Configuration file for My Printer
    ; Communication and general
    M111 S1 ; Debug (S1 is on S0 is off)
    M929 P"eventlog.txt" S1 ; start logging to file eventlog.txt
    M550 PRailCore ; Machine name and Netbios name (can be anything you like)
    M586 P1 S1
    ;M551 Pmyrap ; Machine password (used for FTP)
    ;*** If you have more than one Duet on your network, they must all have different MAC addresses, so change the last digits
    M540 P0xBE:0xEF:0xDE:0xAD:0xFE:0xEE ; MAC Address
    ;*** Wifi Networking
    M552 S1 ; Enable WiFi
    M555 P2 ; Set output to look like Marlin
    M575 P1 B57600 S1 ; Comms parameters for PanelDue

    G21 ; Work in millimetres
    G90 ; Send absolute coordinates...
    M83 ; ...but relative extruder moves

    ; Axis and motor configuration
    M667 S1 ; CoreXY mode

    M584 X0 Y1 Z5:6:7 E3:4:8:9 ; Map Z to drivers 5, 6, 7. Define unused drivers 3,4,8 and 9 as extruders
    M569 P0 S1 ; Drive 0 goes forwards (change to S0 to reverse it) X stepper
    M569 P1 S0 ; Drive 1 goes backwards Y Stepper
    M569 P2 S1 ; Drive 2 goes forwards Unused
    M569 P3 S1 ; Drive 3 goes forwards Extruder
    M569 P4 S1 ; Drive 4 goes forwards Extruder (unused)
    M569 P5 S1 ; Drive 5 goes backwards Front Left Z
    M569 P6 S1 ; Drive 6 goes backwards Rear Left Z
    M569 P7 S0 ; Drive 7 goes backwards Right Z

    ;Leadscrew locations
    M671 X-10:-10:333 Y22.5:277.5:150 S7.5 ;Front left, Rear Left, Right S7.5 is the max correction - measure your own offsets, to the bolt for the yoke of each leadscrew

    M350 X16 Y16 Z16 E16 I1 ; set 16x microstepping for axes& extruder, with interpolation
    M574 X1 Y1 Z0 S1 ; set homing switch configuration (x,y at min, z at max) IF YOU NEED TO REVERSE YOUR HOMING SWITCHES CHANGE S1 to S0
    M906 X1400 Y1400 Z1000 E940 I60 ; Set motor currents (mA) - 6/26/2019 LDO E940 from E1250 Per John
    M201 X1750 Y1750 Z100 E1500 ; Accelerations (mm/s^2) Original 3000
    M203 X24000 Y24000 Z900 E3600 ; Maximum speeds (mm/min) Original 1000
    M566 X600 Y600 Z100 E1500 ; Maximum jerk speeds mm/minute - Original E20 changed on 2/27/2019
    M208 X290 Y290 Z300 ; set axis maxima and high homing switch positions (adjust to suit your machine)
    M208 X0 Y0 Z-0.5 S1 ; set axis minima and low homing switch positions (adjust to make X=0 and Y=0 the edges of the bed)
    M92 X200 Y200 Z1600 E828 ; steps/mm, X/Y may be more around 201.5 for accuracy old: E837
    M557 X25:275 Y45:275 S75

    ; Thermistors
    ;M305 P0 T100000 B4240 R4700 H0 L0 ; Put your own H and/or L values here to set the bed thermistor ADC correction
    ;M305 P1 T100000 B4240 R4700 H0 L0 ; Put your own H and/or L values here to set the first nozzle thermistor ADC correction
    M305 P0 S"Kenovo-Bed" T100000 B3950 R4700 H0 L0 ; as per FB/discord discussion
    M305 P1 S"E3D30WHotend" T100000 B4725 C7.06e-8 R4700 H0 L0 ; on 5/2/2019

    M307 H0 A274.3 C798.5 D9.1 S1.00 V24.1 B0 ; Bed Heaters original value M307 H0 A283.4 C955.7 D8.5 S1.00 V24.1 B0 PID Tuned: 5/2/2019 ak
    M307 H1 A304.7 C170.2 D4.6 B0 S1.0 ;Heater 1 model - original value M307 H1 A327.2 C173.2 D5.4 B0 S1.0 PID tuned: 2/28/2019 ak
    M570 S360 ; Hot end may be a little slow to heat up so allow it 180 seconds
    M143 S300

    ; Fans
    M106 P0 H-1 ; disable thermostatic mode for fan 0
    M106 P4 T35 S255 H1 ; P1 to P3
    M106 P2 H-1
    M106 P0 S0 ; turn off fans
    ;M106 P1 S0
    M106 P2 S0

    ; Tool definitions
    M563 P0 D0 H1 S"E3D Gold" ; Define tool 0
    G10 P0 S0 R0 ; Set tool 0 operating and standby temperatures
    M591 D0 P1 C10 S1 ; Filament runout sensor Duex5 E2 endstop 3/19/2019
    ;*** If you have a single-nozzle build, comment the next 2 lines
    ;M563 P1 D1 H2 ; Define tool 1
    ;G10 P1 S0 R0 X0 Y17 ; Set tool 1 operating and standby temperatures

    ; Z probe and compensation definition
    ;*** If you have a switch instead of an IR probe, change P1 to P4 in the following M558 command
    ; M558 P1 X0 Y0 Z1 ; Z probe is an IR probe and is not used for homing any axes
    ; G31 X0 Y30 Z2.00 P500 ; Set the zprobe height and threshold (put your own values here)

    ;BLTouch - leave commented out if using a IR Probe
    M307 H3 A-1 C-1 D-1
    M558 P9 H5 R1 F50 T6000 A5 S0.02 B1
    ;G31 X2 Y42 Z2.6 P25 ; Customize your offsets appropriately. 2/28/2019 plated copper nozzle 3/15/2019 -commented out for G10

    M208 S1 Z-5 ; set minimum Z 3/15/2019 M208 S1 Z-0.2
    ;
    T0 ; select first hot end
    G31 X2 Y42 Z0 P25 ; reset Z0 for G10
    G10 L1 P0 Z2.55 ; added 3/15/2019 2.65, 6/26/2019 - 2.25



  • I'd definitely stick to G31 for the Z offset.

    I'm not sure what kinds of weird behaviour you'd be getting. G30 and G29 would be using the offset from G31, and then your G10 offset would be getting applied after. That's a confusing way to go about it.

    What was the reasoning around using G10 instead of G31? @jstevewhite @kraegar



  • @phaedrux no reasoning other then reading @jstevewhite suggestion. I took out G31 offset and only G10 L1 gets applied. I can switch it back to G31 but same behavior was present with G31 before switching to G10



  • This may be the same issue that he had been posting about here just the other week.

    https://forum.duet3d.com/topic/10916/weird-bed-mesh-behavior-after-z-leveling



  • This post is deleted!


  • This post is deleted!


  • @phaedrux interesting didn't see that one. let me read it. Thank you



  • @phaedrux

    Tool offsets are critical to the eventual application of the tool changer to the RailCore chassis. G31 is for PROBE offset - which is fine if you have only one tool, but if you have multiple tools, it's insufficient for configuration.

    That's what got me testing it. While testing it, it became clear that the tool offset is MUCH more user friendly. You'll note that bmveee had the same issue prior to switching to the G10 tool offset process, and the issue in the other post that you mention occurred with G31 and G10 tool offset as well.

    If G10 doesn't function properly, it's still broken, even if you can work around it with G31. I don't think that's related to this issue, though, but there's certainly something strange going on. The M500 wasn't saving the tool offset like it's supposed to. Specifically, in my gcode console I can issue:

    G10 L1 P0

    and get:

    G10 L1 P0
    Tool 0 offsets: X0.00 Y0.00 Z1.70, active/standby temperature(s): 0.0/0.0

    This is mirrored in my config-override.g:

    ; config-override.g file generated in response to M500 at 2019-06-27 16:10
    ; This is a system-generated file - do not edit
    ; Heater model parameters
    M307 H0 A90.0 C700.0 D10.0 S1.00 V0.0 B0
    M307 H1 A618.9 C194.1 D4.1 S1.00 V24.3 B0
    M307 H2 A340.0 C140.0 D5.5 S1.00 V0.0 B0
    M307 H5 A340.0 C140.0 D5.5 S1.00 V0.0 B0
    M307 H6 A340.0 C140.0 D5.5 S1.00 V0.0 B0
    M307 H7 A340.0 C140.0 D5.5 S1.00 V0.0 B0
    ; Probed tool offsets
    G10 P0 Z1.70
    G10 L2 P1 X0.00 Y0.00 Z0.00
    G10 L2 P2 X0.00 Y0.00 Z0.00
    G10 L2 P3 X0.00 Y0.00 Z0.00
    G10 L2 P4 X0.00 Y0.00 Z0.00
    G10 L2 P5 X0.00 Y0.00 Z0.00
    G10 L2 P6 X0.00 Y0.00 Z0.00
    G10 L2 P7 X0.00 Y0.00 Z0.00
    G10 L2 P8 X0.00 Y0.00 Z0.00
    G10 L2 P9 X0.00 Y0.00 Z0.00

    while troubleshooting with bmveee or duetal (I think that's mspal from our discord 😄 ) I noted that M500 never wrote their tool offset to the config-override.g. This is unexpected behavior, and is sufficient in and of itself to result in unpredictable behavior. That's when I recommended they post in the duet forums.

    Specifically, I had one of them put M501 at the end of their config.g (This should load config override). Then issue:

    G10 L1 P0 Znnn.n (insert number here)
    then
    M500
    and the entry does not appear in config-override.g as it should. This is clearly a problem, but I can't seem to figure out why. Mine works as expected.



  • yep thats me 🙂 My config-override.g file was time stamped when i did M500 but G10 L1 P0 was not saved into it. I tried it multiple times and ended up removing M501 from the config.g

    This is my config-override.g
    ; config-override.g file generated in response to M500 at 2019-06-28 20:57
    ; This is a system-generated file - do not edit
    ; Heater model parameters
    M307 H0 A274.3 C798.5 D9.1 S1.00 V24.1 B0
    M307 H1 A304.7 C170.2 D4.6 S1.00 V0.0 B0
    M307 H2 A340.0 C140.0 D5.5 S1.00 V0.0 B0
    M307 H4 A340.0 C140.0 D5.5 S1.00 V0.0 B0
    M307 H5 A340.0 C140.0 D5.5 S1.00 V0.0 B0
    M307 H6 A340.0 C140.0 D5.5 S1.00 V0.0 B0
    M307 H7 A340.0 C140.0 D5.5 S1.00 V0.0 B0
    G10 L2 P1 X0.00 Y0.00 Z0.00
    G10 L2 P2 X0.00 Y0.00 Z0.00
    G10 L2 P3 X0.00 Y0.00 Z0.00
    G10 L2 P4 X0.00 Y0.00 Z0.00
    G10 L2 P5 X0.00 Y0.00 Z0.00
    G10 L2 P6 X0.00 Y0.00 Z0.00
    G10 L2 P7 X0.00 Y0.00 Z0.00
    G10 L2 P8 X0.00 Y0.00 Z0.00
    G10 L2 P9 X0.00 Y0.00 Z0.00


  • administrators

    G10 tool offsets are only written by M500 if they were measured by probing or they were read from config-override.g.


 

Looks like your connection to Duet3D was lost, please wait while we try to reconnect.