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

CNC Screw Mapping

Scheduled Pinned Locked Moved Unsolved
Firmware developers
4
19
972
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
    markz
    last edited by 24 Jan 2021, 17:15

    Ok, even this M802 line is too long. There seems to be a 200 character upper limit and mine are over 300. I guess I should allow an offset in the M802 command.

    undefined 1 Reply Last reply 24 Jan 2021, 17:21 Reply Quote 1
    • undefined
      dc42 administrators @markz
      last edited by dc42 24 Jan 2021, 17:21

      @markz said in CNC Screw Mapping:

      Ok, even this M802 line is too long. There seems to be a 200 character upper limit and mine are over 300. I guess I should allow an offset in the M802 command.

      Is 200 characters not sufficient to describe the mapping for a single axis? A separate command for each axis seems reasonable to me.

      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 2 Replies Last reply 24 Jan 2021, 20:14 Reply Quote 0
      • undefined
        markz @dc42
        last edited by markz 24 Jan 2021, 20:14

        @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
        • undefined
          markz @dc42
          last edited by 26 Jan 2021, 14:40

          @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
          • undefined
            markz
            last edited by 27 Jan 2021, 12:24

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

            Screw Mapping in RRF.docx

            1 Reply Last reply Reply Quote 1
            • undefined
              markz
              last edited by 29 Jan 2021, 16:49

              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
              • undefined
                bot
                last edited by 29 Jan 2021, 16:53

                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
                • undefined
                  markz
                  last edited by 29 Jan 2021, 16:57

                  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

                  undefined 1 Reply Last reply 29 Jan 2021, 16:58 Reply Quote 1
                  • undefined
                    bot @markz
                    last edited by 29 Jan 2021, 16:58

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

                    *not actually a robot

                    undefined 1 Reply Last reply 29 Jan 2021, 16:59 Reply Quote 0
                    • undefined
                      markz @bot
                      last edited by 29 Jan 2021, 16:59

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

                      1 Reply Last reply Reply Quote 1
                      • undefined
                        Phaedrux Moderator
                        last edited by 29 Jan 2021, 17:01

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

                        Z-Bot CoreXY Build | Thingiverse Profile

                        undefined 1 Reply Last reply 29 Jan 2021, 17:04 Reply Quote 2
                        • undefined
                          bot @Phaedrux
                          last edited by 29 Jan 2021, 17:04

                          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

                          undefined 1 Reply Last reply 29 Jan 2021, 17:05 Reply Quote 0
                          • undefined
                            markz @bot
                            last edited by markz 29 Jan 2021, 17:05

                            @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
                            • undefined
                              markz
                              last edited by markz 2 Nov 2021, 16:49 11 Feb 2021, 16:46

                              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