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

    CNC Screw Mapping

    Scheduled Pinned Locked Moved Unsolved
    Firmware developers
    4
    19
    1.1k
    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.
    • markzundefined
      markz @dc42
      last edited by markz

      @dc42 Thanks for all the interest. I just ran it quickly doing the following...

      The worst axis is X so I copied the old lookup map from WinCNC to excel, converted to mm, then created a script file... which was too big. So, I added the O option and redid it. This worked.

      I set the cnc to 116,0 (left of table), set down my yardstick horizontally.. then I disabled screw map, went to 15",0 - a known bad area) took a screen capture of the microscope view, return to 0,0 and enabled screw map then went back to (15",0) and took another screen capture.

      I hadn't tried it before - and - first try with no edits. Here's the script and the comparison photo. I know it's a lot of digits, but I'm used to inches. Probably could shrink it a little.

      M801 R"X" A"XY" S116 I25.4 N36
      M802 R"X" X0.00000:-0.04064:0.00000:0.06350:-0.07112:-0.10922:0.02286:-0.04318:0.00508:0.10414:-0.02794:-0.09652:-0.22352:-0.40894:-0.37846:-0.47752
      M802 R"X" Y0.00000:0.01778:0.06858:0.11176:0.14732:0.18034:0.22606:0.29210:0.34544:0.36576:0.40640:0.43942:0.46228:0.51308:0.53594:0.57658
      M802 R"X" O16 X-0.49784:-0.27178:-0.25908:-0.29718:-0.15240:-0.24638:-0.26162:-0.05080:-0.08636:0.01524:0.14224:-0.00508:0.05588:0.09144:0.07366:0.24130
      M802 R"X" O16 Y0.60960:0.59944:0.55372:0.48514:0.40640:0.30480:0.22606:0.19304:0.15748:0.09144:-0.21082:-0.48768:-0.15748:-0.12954:-0.10160:-0.08890
      M802 R"X" O32 X0.25654:0.25146:0.41656:0.78994
      M802 R"X" O32 Y-0.12446:-0.09652:-0.04572:0.01270
      M800 S1
      

      Photo
      FirstDuetComparison.jpg

      1 Reply Last reply Reply Quote 1
      • markzundefined
        markz @dc42
        last edited by

        @dc42 I've forked and updated the github repo. You can see the code changes at: https://github.com/MZachmann/RepRapFirmware/tree/v3.2-screwmap

        and it forks from the 3.02-dev branch (3.2 retail).

        Let me know where you'd like to go from here. Implement (pull request)? Move to M-codes? Change syntax?

        The only thing I couldn't yet figure out from the code base was how to correctly have the ui update the user position when the screw map definition changes.

        Mark

        1 Reply Last reply Reply Quote 3
        • markzundefined
          markz
          last edited by

          Here's a doc file describing the current implementation of screw mapping.

          Screw Mapping in RRF.docx

          1 Reply Last reply Reply Quote 1
          • markzundefined
            markz
            last edited by

            I've posted a video showing a calibration run (in X). It took about 1/2 hour to gather X and Y error terms and improved the CNC accuracy from .033" to .002".

            here: https://youtu.be/wpUOaYwDrvI

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

              Nicely done!

              I just had a thought, though. Make sure your yard-stick is straight. You could be compensating for an error in the yard stick.

              *not actually a robot

              1 Reply Last reply Reply Quote 0
              • markzundefined
                markz
                last edited by

                Sorry, I should have posted that. You're absolutely right.

                The yardstick is one of the most expensive hand tools I own since it's so important.

                https://www.mscdirect.com/product/details/58700246

                botundefined 1 Reply Last reply Reply Quote 1
                • botundefined
                  bot @markz
                  last edited by

                  @markz Oh!!!! That's a nice "yard stick" lol!!!

                  *not actually a robot

                  markzundefined 1 Reply Last reply Reply Quote 0
                  • markzundefined
                    markz @bot
                    last edited by

                    @bot Yeah, Starrett would probably not be happy me calling it that.

                    1 Reply Last reply Reply Quote 1
                    • Phaedruxundefined
                      Phaedrux Moderator
                      last edited by

                      I also spit coffee on my laptop when I saw that price. 😳

                      Z-Bot CoreXY Build | Thingiverse Profile

                      botundefined 1 Reply Last reply Reply Quote 2
                      • botundefined
                        bot @Phaedrux
                        last edited by

                        I suddenly want a yard stick like that... but I couldn't even use such a large one! My print bed is only ~11" x 11". I'll look for it's younger sibling. And possibly metric, too.

                        *not actually a robot

                        markzundefined 1 Reply Last reply Reply Quote 0
                        • markzundefined
                          markz @bot
                          last edited by markz

                          @bot Yeah, I wish I had a metric one - if you watch the video I spend a lot of time converting inches. Kinda dumb.

                          backstory - when I first realized about 10 years ago my CNC had so much error I did this measurement with a normal yardstick, couldn't believe the results (especially the Y error), so in order to root-cause I had no choice.

                          1 Reply Last reply Reply Quote 1
                          • markzundefined
                            markz
                            last edited by markz

                            I've cleaned up the code so setting a screw map entry changes the DRO readout in real-time.

                            Here are a couple of plots of my CNC error curves with increment=25.4mm (1 inch). Note the 2d-ishness of the whole thing.

                            To put this in a worst case if I were just drilling holes the largest X error pre-compensation would be about 1.5mm (or 1/16th of an inch for US). Post-compensation error is 2*repeatability + test measurement error (~.03mm).

                            XAxis Compensation.jpg YAxis Compensation.jpg

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