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

How decimal places after . for firmware config?

Scheduled Pinned Locked Moved
Firmware installation
3
6
421
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
    gallaghersart
    last edited by 13 Jan 2022, 01:08

    I’m tuning my 556 (Axis skew compensation) and was wondering how many decimal places can the firmware work with past the (.)? 2.57 3.456, 4.7812, 5.12398? more?

    Would it be the same for steps and other settings?

    Thanks
    `mike

    undefined 1 Reply Last reply 13 Jan 2022, 10:28 Reply Quote 0
    • undefined
      dc42 administrators @gallaghersart
      last edited by 13 Jan 2022, 10:28

      @gallaghersart RRF uses 32-bit IEEE standard floating point numbers to represent these quantities. The number of decimal digits that can be accurately represented (including digits before the decimal point) is 6 or 7 depending on the leading digit.

      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 13 Jan 2022, 15:04 Reply Quote 0
      • undefined
        gallaghersart @dc42
        last edited by 13 Jan 2022, 15:04

        @dc42 did some googling on this, out of my math scope. I have some 7 digits will these work?

        For my steps I have E set to 142.3188 (7 digits and a .)
        and want to make my M556 be 0.1172 (5 digits plus .) (this is my most wanted)
        then I have Z steps at 4814.125 (7 digits plus .)

        Do these work? or they too long?
        or could they be E 142.318854 (some before . then 6 after)?

        FYI, I'm about to share a setup that use dial gauges to measure M556, I'm finding even good belts stretch within a weekly basis. Once my M556 is (+-)0.2+ I then re-tighten the belts and rerun my calibration for M556.

        Thanks Again!
        `mike

        undefined undefined undefined 3 Replies Last reply 13 Jan 2022, 17:28 Reply Quote 0
        • undefined
          engikeneer @gallaghersart
          last edited by engikeneer 13 Jan 2022, 17:28

          @gallaghersart 6-7 is the number of decimal digits (I.e. the number of digits after the decimal point). So you could have 142.318779.

          In reality you can specify more decimal places, but they will loose precision (e.g. 142.318800011 may actually become 142.3188000125). Not sure if I've got the bit representation 100% correct there but you get the idea.

          You can always try setting a much higher number of decimal places, then just send the command on its own to see what the Duet returns.

          With your M556 variation, I wonder if there is also some level of thermal distortion going on? Unless you've got some impressive high grade industrial machine, you might also be running into the accuracy limits of your system (backlash in rails, clearance in bearings, flex in the frame/joints etc)

          Edit: seems I was not correct!

          E3D TC with D3Mini and Toolboards.
          Home-built CoreXY, Duet Wifi, Chimera direct drive, 2x BMG, 300x300x300 build volume
          i3 clone with a bunch of mods

          1 Reply Last reply Reply Quote 0
          • undefined
            dc42 administrators @gallaghersart
            last edited by dc42 13 Jan 2022, 17:35

            @gallaghersart said in How decimal places after . for firmware config?:

            @dc42 did some googling on this, out of my math scope. I have some 7 digits will these work?

            For my steps I have E set to 142.3188 (7 digits and a .)

            That is OK. If you run this:

            echo move.extruders[0].stepsPerMm+0.00000000
            

            then it will print the 7-digit representation of the actual value, which in this case is 142.3188.

            and want to make my M556 be 0.1172 (5 digits plus .) (this is my most wanted)

            That's OK because you have provided only 4 significant digits. Leading zeros don't count.

            then I have Z steps at 4814.125 (7 digits plus .)

            That looks OK too, I ran "echo move.axes[2].stepsPerMm+0.00000000" and got the same value back. Bit if I set the Z steps/mm to 4814.1258 then I get 48124.126 back.

            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
            • undefined
              gallaghersart @gallaghersart
              last edited by 20 Jan 2022, 18:04

              @gallaghersart
              Thanks For your reply's guys, I have my units in chambers and do not print till all parts and frame are at 40-50deg C. Thermal distortion is measurable from cold to hot. even though printer will "print" at all temps in a chamber. I found the Z axis has the most Thermal distortion.

              I'm about to share my designs of a series of printers soon (Bricked3D), all chambered except 2. with a larger 525x525 bed that I need to be perfect. I have found that a third digit after the (.0) ie 0.234 has a measurably difference from 0.23. on my 300mm bed.

              Just posted my take on the Skew test https://forum.duet3d.com/topic/26915/skew-test-and-adjustment-with-dial-gauges and I have all the pictures and source files for free and no requirements to download on my personal website https://gallaghersart.com/page/miscellaneous_3d_prints_and_source_files

              thanks!
              `mike

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