• Tags
  • Documentation
  • Order
  • Register
  • Login
Duet3D Logo Duet3D
  • Tags
  • Documentation
  • Order
  • Register
  • Login

Co-ordinate system

Scheduled Pinned Locked Moved
Gcode meta commands
3
5
174
Loading More Posts
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • undefined
    St Taw
    last edited by 6 Dec 2024, 17:49

    In my attempt to diagnose a z height problem (using BL Touch) on my machine I have embarked on a quest to understand the co-ordinate system.
    By this I mean how the co-ordinates are acted upon and reported. What are machine co-ordiantes and user co-ordinates. If their is a document that explains this can someone reference it please.

    With no mesh compensation (G29 S2) and no offsets (G10 P0 X0 Y0 Z0) .

    I send the tool to Z10. The obect model reports
    move.axes[2].machinePosition = 10
    move.axes[2].userPosition = 10
    The DWC reports Z10

    In the Console I then enable bed mesh compensation from a previous learn (G29 S1) load mesh.
    move.axes[2].machinePosition = 10
    move.axes[2].userPosition = 10.137
    The DWC reports Z10.14
    So by implication its showing the mesh offset by the difference in machine and user positions.

    However if I now send the Tool to 10 (G1 Z10) I get
    move.axes[2].machinePosition = 10
    move.axes[2].userPosition = 10
    The DWC reports Z10

    So this suggests the Mesh compensation offsets are hidden thereafter.

    I have yet to figure how the BL Touch (sensors.probes[0].lastStopHeight) affects the machine to user co-ordinates reporting.

    undefined undefined 2 Replies Last reply 6 Dec 2024, 20:41 Reply Quote 0
    • undefined
      OwenD @St Taw
      last edited by 6 Dec 2024, 20:41

      @St-Taw
      The mesh offset is typically set to taper off as the Z height increases.

      This is set by M376 in config.g (usually)

      https://docs.duet3d.com/en/User_manual/Reference/Gcodes#m376-set-bed-compensation-taper

      Any baby steps applied will also result in a difference between user and machine positions.

      Last stop height reports the Z height when the sensor triggered. No mesh offset is applied. However for it to be accurate, you must calibrate it.
      https://docs.duet3d.com/User_manual/Connecting_hardware/Z_probe_testing

      1 Reply Last reply Reply Quote 0
      • undefined
        dc42 administrators @St Taw
        last edited by dc42 12 Aug 2024, 07:39 8 Dec 2024, 07:34

        @St-Taw the bed compensation is hidden in machine coordinates. However, when you change from not having a mesh loaded to having a mesh loaded, the firmware has to allow for the compensation where the head currently is, which is why you see the machine and user coordinates change. The alternative would have been to execute a Z move to apply the compensation.

        There are 4 sets of coordinates: user coordinates (what the GCode commands specify), machine coordinates (with tool offsets, tool axis mapping, workplace offsets, G68 rotation and axis scaling applied), compensated coordinates (with bed compensation and axis skew compensation applied), and motor coordinates (with inverse kinematics transform applied).

        Duet WiFi hardware designer and firmware engineer
        Please do not ask me for Duet support via PM or email, use the forum
        http://www.escher3d.com, https://miscsolutions.wordpress.com

        undefined 1 Reply Last reply 9 Dec 2024, 10:26 Reply Quote 0
        • undefined
          St Taw @dc42
          last edited by 9 Dec 2024, 10:26

          @dc42

          Thanks for the explanation. Does the object model have anywhere, the hidden value applied to the machine co-ordinates? Not that is will actually help me, just interesting.

          I will turn off bed compensation whilst investigating my BL Touch problem just for clarity.

          On a slight aside. it occured to me that, as the term implies, 'Bed compensation' assumes the error in height is due to the bed shape. If the error was actually due to the X gantry being in error, say lower in the middle), then applying bed compensation to correct it would result in other errors. It would be expected to improve bed adhesion but as the the correction tapers off the top surface of the print could be dished. I not sayinbg this needs to be addressed, just a thought experiment.

          undefined 1 Reply Last reply 9 Dec 2024, 18:41 Reply Quote 0
          • undefined
            dc42 administrators @St Taw
            last edited by 9 Dec 2024, 18:41

            @St-Taw regarding your aside, yes that is true.

            Duet WiFi hardware designer and firmware engineer
            Please do not ask me for Duet support via PM or email, use the forum
            http://www.escher3d.com, https://miscsolutions.wordpress.com

            1 Reply Last reply Reply Quote 0
            5 out of 5
            • First post
              5/5
              Last post
            Unless otherwise noted, all forum content is licensed under CC-BY-SA