Duet3D Logo

    Duet3D

    • Register
    • Login
    • Search
    • Categories
    • Tags
    • Documentation
    • Order

    Resolution in positioning math

    Using Duet Controllers
    2
    2
    94
    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.
    • mrehorstdmd
      mrehorstdmd last edited by

      I want to set up a test in which I will be checking bed movement when power cycles in my printer. The Z axis uses 16:1 ustepping, and moves 20 um per full step. I'd like to step the bed in 1 ustep increments (1.25 um) through at least 4 full steps to see where the Z motor (and the bed) jumps when power is cycled.

      If I specify Z ordinates in 1.25 um increments, will it step one ustep at a time? I realize the motor may not move with a single ustep, but will the driver at least push the current for 1 ustep?

      I'd be specifying the Z ordinate like Z5.000, Z5.00125, Z5.0025, etc. Is 5 digits to the right of the decimal going to work?

      https://drmrehorst.blogspot.com/

      1 Reply Last reply Reply Quote 0
      • bot
        bot last edited by bot

        Yes. The display is often truncated and/or rounded, but the underlying math uses single precision floats, which guarantee, in most cases, 6 or 7 significant digits of floating point. This means that the translation from base-10, to binary, and back to base-10 does not change the value of those 6 digits. Beyond that, there will be small errors.

        In practice, this means that if you are specifying 5.0025 as a value, you still have an extra digit. If you specify 100.0025, that last 5 is not guaranteed to translate to binary and back cleanly (though, in some cases you are guaranteed 7 digits), it might turn out as 100.00250244140625 or something. That said, since it would be close enough, the step generator would likely round it to the intended value and there may be no problem whatsoever.

        This nifty calculator helps illustrate what happens: https://www.h-schmidt.net/FloatConverter/IEEE754.html

        I guess you're not always guaranteed to have 6 digits, as in the case of 1.02, but it's close enough and you're guaranteed to NOT have precision past 7 digits.

        *not actually a robot

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