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.
    • gallaghersartundefined
      gallaghersart
      last edited by

      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

      dc42undefined 1 Reply Last reply Reply Quote 0
      • dc42undefined
        dc42 administrators @gallaghersart
        last edited by

        @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

        gallaghersartundefined 1 Reply Last reply Reply Quote 0
        • gallaghersartundefined
          gallaghersart @dc42
          last edited by

          @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

          engikeneerundefined dc42undefined gallaghersartundefined 3 Replies Last reply Reply Quote 0
          • engikeneerundefined
            engikeneer @gallaghersart
            last edited by engikeneer

            @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
            • dc42undefined
              dc42 administrators @gallaghersart
              last edited by dc42

              @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
              • gallaghersartundefined
                gallaghersart @gallaghersart
                last edited by

                @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