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

    Testing servomotors in my printer... again.

    Scheduled Pinned Locked Moved
    My Duet controlled machine
    6
    25
    2.2k
    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.
    • mrehorstdmdundefined
      mrehorstdmd
      last edited by mrehorstdmd

      I am trying to test iHSV42-40-07-24 servomotors in my printer in place of steppers in the XY mechanism. The servomotors have belted 3:1 drive reduction. They have integral drivers with DIP switches to set the steps/rev between 800 and 51,200. The motors have 1000 line encoders that I suspect are Hall effect type.

      When the motors are set to 1000 steps per rev, I get 75 steps/mm on my printer, which I set in a config.g file M350 statement. Whenever I change the motor setting I also change the numbers in the M350 statement to set the steps/mm correctly. I made some test prints of a single walled cylinder at 75, 120, 240 and 480 steps/mm and I'm seeing the same surface artifacts at about the same amplitude in all of them.

      Here are two short videos that let you see the surface defects that look like a simple case of low resolution to me.
      75 steps/mm: https://youtu.be/7B3shBJZrqs
      480 steps/mm: https://youtu.be/MflqvsBINZ8

      The STL file is very finely segmented so I don't think the artifacts are built into the STL file. I tried Prusa Slicer and Cura and results looked the same. I've also tried 0.1 and 0.5 mm layers and the result looks the same.

      Am I correct in thinking that matching the steps/rev to the encoders (1000) will get me the most accurate positioning, and that any setting beyond 1000 steps/rev is going to be interpolated and possibly not accurate?

      The motors have multiple operating modes, including the factory default of "positioning". Maybe I can tweak some driver parameters to improve the interpolated positioning (?).

      https://drmrehorst.blogspot.com/

      JoergS5undefined jay_s_ukundefined 2 Replies Last reply Reply Quote 0
      • JoergS5undefined
        JoergS5 @mrehorstdmd
        last edited by JoergS5

        @mrehorstdmd I have iHSV57-30 servos, so the following may fit for you or not.

        Your videos may show belt gear backlash. In my experiments with belt gears I have some play when changing direction and I tried to solve it with additional pulleys. But this helps only partially. One good idea is to protect in both directions:

        belt2direction_small.png

        which was an idea from (link doesn't exist any more: https://www.factorydaily.com/topics/backlash-free-rotary-table)

        The other ideas are about the encoder: according to

        servo.png

        it should be possible to set it to 2500.

        The tool https://github.com/robert-budde/iHSV-Servo-Tool seems promising to help setting.

        Long threads mentioning additional tools are:
        https://www.cnc-aus-holz.at/index.php?thread/899-ihsv57-servos-parametrieren/&pageNo=1
        https://cncwerk.de/forum/viewtopic.php?f=5&t=806&start=770
        https://www.facebook.com/groups/137073107015171/ (invitation needed)

        I found the information somewhere that the encoder uses the chip AM26LS32 datasheet https://www.ti.com/lit/ds/symlink/am26ls32ac.pdf, so to be sure one has to open the encoder and take an oscilloscope. I will probably do so.

        The iHSV57 is sold in two firmware versions V552 and V6. The 552 has less possibilities and cannot be updated, the 6 version can be updated.

        Hope this helps a bit.

        mrehorstdmdundefined 2 Replies Last reply Reply Quote 0
        • jay_s_ukundefined
          jay_s_uk @mrehorstdmd
          last edited by

          @mrehorstdmd said in Testing servomotors in my printer... again.:

          When the motors are set to 1000 steps per rev, I get 75 steps/mm on my printer, which I set in a config.g file M350 statement. Whenever I change the motor setting I also change the numbers in the M350 statement to set the steps/mm correctly. I made some test prints of a single walled cylinder at 75, 120, 240 and 480 steps/mm and I'm seeing the same surface artifacts at about the same amplitude in all of them.

          can I confirm you mean M92? as M350 does nothing when using external drivers

          Owns various duet boards and is the main wiki maintainer for the Teamgloomy LPC/STM32 port of RRF. Assume I'm running whatever the latest beta/stable build is

          mrehorstdmdundefined 1 Reply Last reply Reply Quote 0
          • mrehorstdmdundefined
            mrehorstdmd @jay_s_uk
            last edited by

            @jay_s_uk Yes, M92, not M350. In M350 I just set it to X1 Y1. I set steps/mm in M92-!

            https://drmrehorst.blogspot.com/

            1 Reply Last reply Reply Quote 1
            • mrehorstdmdundefined
              mrehorstdmd @JoergS5
              last edited by

              @joergs5 Good links! I have a lot of studying to do- I don't really understand the terminology or the control scheme.

              It seems that I have to give the printer some gcode that moves a motor back and forth while monitoring the error, and then tweak certain parameters to minimize that error.

              I see approximately 5:1 planetary gear boxes for NEMA-17 motors for sale- would those typically have less backlash than a simple belt reduction?

              Thanks!

              https://drmrehorst.blogspot.com/

              fcwiltundefined JoergS5undefined 2 Replies Last reply Reply Quote 0
              • fcwiltundefined
                fcwilt @mrehorstdmd
                last edited by

                @mrehorstdmd said in Testing servomotors in my printer... again.:

                I see approximately 5:1 planetary gear boxes for NEMA-17 motors for sale- would those typically have less backlash than a simple belt reduction?

                For a bit more money you can buy NEMA-17 steppers fitted with exact 5:1 ratio planetary gear boxes.

                I used these on my triple Z stepper printer:

                Geared Stepper

                Frederick

                Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

                mrehorstdmdundefined 1 Reply Last reply Reply Quote 0
                • mrehorstdmdundefined
                  mrehorstdmd
                  last edited by

                  I opened one of the motors up to see what was inside. It turns out the encoder is optical.

                  alt text

                  Here's the PCB that sits over the end of the motor:

                  alt text

                  https://drmrehorst.blogspot.com/

                  1 Reply Last reply Reply Quote 0
                  • mrehorstdmdundefined
                    mrehorstdmd @fcwilt
                    last edited by

                    @fcwilt Thanks, but I am trying servomotors instead of steppers specifically because I want to understand servomotors better and see if there are any advantages in a 3D printer. One advantage has become apparent with the minimal testing I have done- they are absolutely silent.

                    https://drmrehorst.blogspot.com/

                    fcwiltundefined 1 Reply Last reply Reply Quote 0
                    • fcwiltundefined
                      fcwilt @mrehorstdmd
                      last edited by

                      @mrehorstdmd said in Testing servomotors in my printer... again.:

                      @fcwilt Thanks, but I am trying servomotors instead of steppers specifically because I want to understand servomotors better and see if there are any advantages in a 3D printer. One advantage has become apparent with the minimal testing I have done- they are absolutely silent.

                      Sorry about that. I wasn't clear. Since they make "premium" steppers with 5:1 ration planetary gearboxes I thought you might be able to find separate gear boxes with exact ratios as well.

                      Frederick

                      Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

                      1 Reply Last reply Reply Quote 0
                      • mendenmhundefined
                        mendenmh
                        last edited by

                        A couple of comments on this thread:

                        @fcwilt Are you sure the 'exact' 5:1 planetaries are really that? It's a hard number to get out of a planetary stage.

                        @mrehorstdmd The planetary drives that come with most steppers have rather large backlash, almost certainly worse than a belt system. The reason belts work so well in printers (2d and 3d0 is that they have been engineered to have miraculously low backlash. The planetary reduction drives work fine to give high torque in a single-direction driven systems. They also work well as extruder drives, since you are always pushing, and when you retract you get to remove the backlash when you un-retract. They are never really doing anything when running backwards.

                        fcwiltundefined 1 Reply Last reply Reply Quote 0
                        • JoergS5undefined
                          JoergS5 @mrehorstdmd
                          last edited by JoergS5

                          @mrehorstdmd said in Testing servomotors in my printer... again.:

                          have less backlash than a simple belt reduction

                          I second @mendenmh 's good words about belt gears. That's the reason why I tried it also. The only problem is the compliancy when changing direction, where I found the proposed image. GT2 *) is optimized for low backlash. (T2.5, HTD etc. have higher backlash).

                          Thanks for opening the encoder, intesting.

                          *) unfortunately, GT2 is not standardized, better use the same manufacturer for pulleys and belts..., otherwise you'll get play again.

                          I've reread my post above, it can be misunderstood. I meant belt play of the compliance of the belt, i.e. it is difficult to get high tension, especially when using high torque. The teeth of GT2 have very low play.

                          1 Reply Last reply Reply Quote 0
                          • fcwiltundefined
                            fcwilt @mendenmh
                            last edited by

                            @mendenmh said in Testing servomotors in my printer... again.:

                            A couple of comments on this thread:

                            @fcwilt Are you sure the 'exact' 5:1 planetaries are really that? It's a hard number to get out of a planetary stage.

                            "Economy" device

                            "Precision" device

                            I purchased one of each (economy and precision) to compare.

                            The steps/mm setting I ended up using seems to confirm the "economy" ones are are 5.18 to 1

                            The steps/mm setting I ended up using seems to confirm the "precision" ones are are 5 to 1

                            Frederick

                            Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

                            mendenmhundefined 1 Reply Last reply Reply Quote 0
                            • mrehorstdmdundefined
                              mrehorstdmd
                              last edited by

                              This is one of the motor mounts with 3:1 reduction. The motor has a 20 tooth pulley and the output shaft has 20 and 60 tooth pulleys. The output shaft is supported at top and bottom by F625 bearings. The mount is printed in two pieces without support. I used a pukey color PETG because I didn't know what else I'd ever use it for. The whole mount slides back on the aluminum plate to tension the corexy belt and the motor is mounted on slots to allow it to slide back to tension the loop belt. In the tests I've run so far the motors don't get more than a degree or two above ambient, even after an hour of operation. We'll see what happens with a much longer print.

                              alt text

                              https://drmrehorst.blogspot.com/

                              1 Reply Last reply Reply Quote 0
                              • mendenmhundefined
                                mendenmh @fcwilt
                                last edited by

                                @fcwilt OK, good to know you found both. The 5.18 is the much simpler (and cheaper) one. I have seen exact ones, like the 5.00, but they are more expensive. I think it requires a couple of stages to get 5 exactly, or a lot of teeth on the gears.

                                fcwiltundefined 1 Reply Last reply Reply Quote 0
                                • fcwiltundefined
                                  fcwilt @mendenmh
                                  last edited by

                                  @mendenmh said in Testing servomotors in my printer... again.:

                                  @fcwilt OK, good to know you found both. The 5.18 is the much simpler (and cheaper) one. I have seen exact ones, like the 5.00, but they are more expensive. I think it requires a couple of stages to get 5 exactly, or a lot of teeth on the gears.

                                  My "MarkForged" style printer is using 3 of the 5:1 units on the belt driven Z axis. First time I used belts. I am a convert. Quiet and smooth.

                                  Frederick

                                  Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

                                  1 Reply Last reply Reply Quote 0
                                  • mrehorstdmdundefined
                                    mrehorstdmd @JoergS5
                                    last edited by mrehorstdmd

                                    @joergs5 said in Testing servomotors in my printer... again.:

                                    to set it to 2500.

                                    Set what to 2500?

                                    I looked up electronic gearing and it seems to be about getting multiple motors to sync to one encoder at the same or different speeds. With one motor and encoder, is there some value in using electronic gearing? How does electronic gearing relate to setting the steps per rev via dip switches?

                                    The thing has a 1000 line encoder so I would think that I should be able to set up 1000 steps/rev (assuming that the electronics has that high resolution)...

                                    alt text

                                    https://drmrehorst.blogspot.com/

                                    JoergS5undefined 1 Reply Last reply Reply Quote 0
                                    • JoergS5undefined
                                      JoergS5 @mrehorstdmd
                                      last edited by JoergS5

                                      @mrehorstdmd said in Testing servomotors in my printer... again.:

                                      Set what to 2500?

                                      This seems to be an information from JMC's JASD drivers. There are models with 1000, 1250 and 2500 encoder lines. Please ignore. According to one forum user, JMC confirmed that the iHSV have 1000 encoder lines.

                                      1 Reply Last reply Reply Quote 0
                                      • mrehorstdmdundefined
                                        mrehorstdmd
                                        last edited by

                                        I've been doing a lot of digging into this and found a some useful things:

                                        1. for the curious, here's a teardown with a bunch of photos of an iHSV57 (NEMA-23) servo.

                                        2. I had a lot of problems getting JMC1.7.6 to work on my Windows 10 laptop. It kept throwing error messages about a log file already in use. I finally gave up and installed Robert Budde's python tool on the Lubuntu 20.04 netbook (2007 vintage!) that I use to send files to my printer. I installed the prerequisites per the instructions in the readme file without any trouble at all, and ran the program and it worked.

                                        When you run it, there is a selection box that has you choose either iHSV57 v5x or v6x motors. The v5x selection didn't work with my iHSV42 motors, the v6x selection did.

                                        1. I found two English language videos that explain how to tune these motors using auto tune and manually tuning:
                                          https://www.youtube.com/watch?v=_9Q-VFesnA0
                                          https://www.youtube.com/watch?v=jvbw_PMOs-s

                                        https://drmrehorst.blogspot.com/

                                        mrehorstdmdundefined 1 Reply Last reply Reply Quote 2
                                        • mrehorstdmdundefined
                                          mrehorstdmd @mrehorstdmd
                                          last edited by

                                          I wrote a gcode files that moves the extruder carriage back and forth at 100 mm/sec with 5k acceleration and used the tuning procedures shown in the videos linked above.

                                          When I did the manual tuning (the second video) to minimize errors I didn't get any better reduction than I did with the first procedure using the autotune built into the drivers. So I went back to the first procedure using autotune and got errors down to +/- 2 steps with higher spikes at the points where the motors reverse direction (sort of expected that). The motors are set for 300 steps/mm, so +/-2 steps is <+/-7 um.

                                          When I tried to print with the new tuning, curves looked good and didn't have the salmon skin or wood grain effect that was pretty bad with the factory settings, but I got a lot of layer shifts. I suspect the problem is that we use nonzero jerk in 3D printers because unlike a CNC mill, the tool doesn't meet any resistance other than the inertia of the mechanism. The jerk would also account for the much larger spikes in errors when the mechanism reverses direction. I suspect that 5k acceleration may be a little high, too.

                                          This weekend I'll try tuning at lower jerk and acceleration and see if I can get it to print without shifting.

                                          https://drmrehorst.blogspot.com/

                                          mrehorstdmdundefined 1 Reply Last reply Reply Quote 0
                                          • mrehorstdmdundefined
                                            mrehorstdmd @mrehorstdmd
                                            last edited by

                                            This is what a test print looks like using factory settings of the drivers and 3:1 drive reduction:

                                            alt text

                                            And this is what it looked like about 2 years ago, also factory settings, without the 3:1 drive reduction:

                                            alt text

                                            and this is what it looked like with 0.9 degree steppers:

                                            alt text

                                            https://drmrehorst.blogspot.com/

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