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.
    • 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