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

    3.2 Servo making a grinding noise on reboot/M999

    Scheduled Pinned Locked Moved Solved
    Beta Firmware
    5
    43
    2.0k
    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.
    • Reefwarriorundefined
      Reefwarrior @Phaedrux
      last edited by

      @Phaedrux None, whatsoever.

      1 Reply Last reply Reply Quote 0
      • vasparshinundefined
        vasparshin
        last edited by

        Seems like I may be having a similar issue - I am using the exp.e3stop and exp.e4stop pins on the Duet WiFi as external signals for Arduino control, I just updated to RRF release 3.2. In my config.g I have:

        M950 P0 C"exp.e3stop" Q500
        M950 P1 C"exp.e4stop" Q500
        M42 P0 S0 F500
        M42 P1 S0 F500
        

        After reboot, for about 1 second the pins are set high, and also they try to go high after reboot has been triggered just before the shut off. You can see in this video (apologies for birds nest of wiring). I do not believe this behaviour was present on RRF 2, but since I upgraded I am not keen on reverting and for time being will try to just use some fan pins and see if they have the same issue.

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

          @vasparshin said in 3.2 Servo making a grinding noise on reboot/M999:

          Seems like I may be having a similar issue - I am using the exp.e3stop and exp.e4stop pins on the Duet WiFi as external signals for Arduino control, I just updated to RRF release 3.2. In my config.g I have:

          M950 P0 C"exp.e3stop" Q500
          M950 P1 C"exp.e4stop" Q500
          M42 P0 S0 F500
          M42 P1 S0 F500
          

          After reboot, for about 1 second the pins are set high, and also they try to go high after reboot has been triggered just before the shut off. You can see in this video (apologies for birds nest of wiring). I do not believe this behaviour was present on RRF 2, but since I upgraded I am not keen on reverting and for time being will try to just use some fan pins and see if they have the same issue.

          The pins of the microprocessor default to inputs with pullup resistors enabled when the processor is reset. That is why you are seeing them go high. If you need to avoid this, either use an inverter or inverting gate between the output and the device (which is how the on-board heaters are driven), or add a pulldown resistor between 3.3K and 10K between the pin and ground.

          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

          vasparshinundefined Reefwarriorundefined 3 Replies Last reply Reply Quote 0
          • vasparshinundefined
            vasparshin @dc42
            last edited by vasparshin

            @dc42

            Thank you for explaining, I will try your suggestions. Just to be clear, do you mean putting a resistor between ground and the pin I wish to use as external IO signal (not sure what you mean by pni)? Is there a benefit to using an inverter/gate VS the resistor?

            Did this behaviour change from RRF 2? I do not believe this was the case before but perhaps I haven't noticed it.

            Also, I just tried to use the Fan0 pins for IO control but realised why I didn't originally - I am unable to get a signal below 0.4V and it maxes out at 12V, which is too high for Arduino (with max PWM set to 40% I could make it work). I am not sure why the voltage minimum is 0.4V - is this PWM related (shouldn't be a massive issue as Arduino threshold is over 2V)?
            In any case, the voltage spikes to ~3.3 for about 1 second upon reboot - same issue as with the extra IO pins.

            1 Reply Last reply Reply Quote 0
            • Reefwarriorundefined
              Reefwarrior @dc42
              last edited by

              @dc42 I have soldered a 6.6k resistor in the wiring for the pwm signal - same thing still....

              1 Reply Last reply Reply Quote 0
              • Reefwarriorundefined
                Reefwarrior @dc42
                last edited by

                @dc42 Also I don't know if this is by chance, but if I use Q50 in the declaration, then the grinding noise is still there, but of a shorter duration.

                Reefwarriorundefined 1 Reply Last reply Reply Quote 0
                • Reefwarriorundefined
                  Reefwarrior @Reefwarrior
                  last edited by

                  Anybody any other ideas perhaps?

                  1 Reply Last reply Reply Quote 0
                  • alankilianundefined
                    alankilian
                    last edited by

                    How about connecting the servo GND pin to a FAN control signal?

                    That way, (hopefully, @dc42 could verify) power would be removed from the servo during reboot and you'd need to "turn on the fan" with GCODE to power the servo again.

                    I would think a FAN output could handle the power requirements of a servo.

                    SeemeCNC Rostock Max V3 converted to V3.2 with a Duet2 Ethernet Firmware 3.2 and SE300

                    Reefwarriorundefined 1 Reply Last reply Reply Quote 0
                    • Reefwarriorundefined
                      Reefwarrior @alankilian
                      last edited by

                      @alankilian Thank you for the reply. Seems the issue is with the PWM signal that gets generated. I have gone and started playing around with the PWM's Hz parameter on the declaration and that does change the amount of grinding - although I am beginning to think that it is just luck...

                      alankilianundefined 1 Reply Last reply Reply Quote 0
                      • alankilianundefined
                        alankilian @Reefwarrior
                        last edited by

                        @Reefwarrior Yes, But I don't think changing the PWM frequency is the way to go.

                        Hobby servos like this should have a 50Hz update rate to function properly.

                        When the board resets and the signal value goes HIGH, the servo is going to mistakenly read that as a very long position pulse and will try to go all the way to one end of the travel.

                        Disconnecting toe power to the servo will prevent it from moving.

                        You could also build some external circuitry that blocks the constant-high signal during reboot. (I can describe that in another message if you're interested in going that way.)

                        But I think trying to disconnect the power would get you the results you like.

                        SeemeCNC Rostock Max V3 converted to V3.2 with a Duet2 Ethernet Firmware 3.2 and SE300

                        Reefwarriorundefined 1 Reply Last reply Reply Quote 0
                        • Reefwarriorundefined
                          Reefwarrior @alankilian
                          last edited by

                          @alankilian Hi! Thank you 🙂 Will tinker with this tomorrow - now I need to see which fan to substitute, as I am basically using all the fan's with PWM control....

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

                            avoid Fan1 since it powers on briefly at power up because it's intended for the heatsink fan in case the hotend was hot when power was cycled.

                            Z-Bot CoreXY Build | Thingiverse Profile

                            Reefwarriorundefined 1 Reply Last reply Reply Quote 0
                            • Reefwarriorundefined
                              Reefwarrior @Phaedrux
                              last edited by

                              @Phaedrux Any specific recommendation? Or alternatively I can use an external mosfet connected to the expansion port for that too?

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

                                I'm not sure. This is uncharted territory for me.

                                Z-Bot CoreXY Build | Thingiverse Profile

                                Reefwarriorundefined 1 Reply Last reply Reply Quote 0
                                • Reefwarriorundefined
                                  Reefwarrior @Phaedrux
                                  last edited by

                                  @Phaedrux hahah ok 🙂 No problem 🙂 Thank you for the advice! 🙂

                                  1 Reply Last reply Reply Quote 0
                                  • vasparshinundefined
                                    vasparshin
                                    last edited by

                                    As per DC42 comment, I have added a 5K resistor between the pin (exp.e3stop) and GND and my issue is solved - the voltage spike at startup/shutdown is minimized and the pin can be used to send signals to an Arduino during operation without hazard of stray signal being send from reboot.

                                    Reefwarriorundefined 1 Reply Last reply Reply Quote 1
                                    • alankilianundefined
                                      alankilian
                                      last edited by

                                      @vasparshin said in 3.2 Servo making a grinding noise on reboot/M999:

                                      my issue is solved

                                      YEAH!!!

                                      SeemeCNC Rostock Max V3 converted to V3.2 with a Duet2 Ethernet Firmware 3.2 and SE300

                                      1 Reply Last reply Reply Quote 0
                                      • Reefwarriorundefined
                                        Reefwarrior @vasparshin
                                        last edited by

                                        @vasparshin Hi. So you literally connected ground and the exp.e3stop with a 5k resistor? (ie. between ground and the exp.e3stop pin)? Mind sending a photo? 🙂

                                        Tinus

                                        vasparshinundefined 1 Reply Last reply Reply Quote 0
                                        • vasparshinundefined
                                          vasparshin @Reefwarrior
                                          last edited by

                                          @Reefwarrior

                                          Yes that is correct. 5K resistor between ground and the exp.e3stop and taking the signal from exp.e3stop to Arduino. My wiring is a complete mess so I've provided a diagram instead.
                                          IMG_20210129_125544.jpg

                                          1 Reply Last reply Reply Quote 0
                                          • Reefwarriorundefined
                                            Reefwarrior
                                            last edited by

                                            Brilliant thanx, got it like that. Working like a dream.

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