3.2 Servo making a grinding noise on reboot/M999



  • Hi all,

    So I have a servo to reploy/retract my Z probe. However, when I issue a M999 or simply reboot the duet2wifi, it makes a GRINDING noise (the servo). I have replaced it, as I have thought it's the servo itself, but multiple other ones does exactly the same - it is almost asif it tries to go beyond it's limits.

    The command in my config.g looks as follows to create the servo:

    M950 S0 C"exp.heater3"

    Any/all help appreciated!
    Tinus

    *Edited to change topic to 'Grinding' instead of 'Grounding'


  • Moderator

    Can you post your full config.g? Do you have any servo movement commands in there as well?

    If you comment out that M950 line in config.g does it stop making the grinding noise?

    What firmware version and what Duet board?



  • Hi,

    I have commented it out, no grinding noise. Sorry for the mess of the config.g file (pasted below) - I recently (SOMEHOW!) got a corrupt SD card (Duet2 Wifi) and most of my files were damaged... so this is basically a patched one from different bits I could make out...

    Config.g ->

    ; Configuration file for Duet WiFi (firmware version 3)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool v3.1.4 on Tue Nov 03 2020 07:37:18 GMT-0800 (Pacific Standard Time)

    ; General preferences
    G90 ; send absolute coordinates...
    M83 ; ...but relative extruder moves
    M550 P"Ender3" ; set printer name
    ;M918 P1 E4 F2000000 ; configure direct-connect display

    ; Network
    M552 S1 ; enable network
    M586 P0 S1 ; enable HTTP
    M586 P1 S0 ; disable FTP
    M586 P2 S0 ; disable Telnet

    ; Drives
    M569 P0 S1 ; X Stepper
    M569 P1 S1 ; Y Stepper
    M569 P2 S0 ; Z Stepper
    M569 P3 S1 ; not X Stepper
    M584 X0 Y1 Z2 E3 ; set drive mapping
    M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation
    M92 X80.00 Y80.00 Z400.00 E381.38 ; set steps per mm
    M566 X800.00 Y800.00 Z24.00 E300.00 ; set maximum instantaneous speed changes (mm/min)
    M203 X15000.00 Y15000.00 Z800.00 E6000.00 ; set maximum speeds (mm/min)
    M201 X500.00 Y500.00 Z250.00 E5000.00 ; set accelerations (mm/s^2)
    M906 X800 Y800 Z800 E1200 I50 ; set motor currents (mA) and motor idle factor in per cent
    M84 S30 ; Set idle timeout

    ; Axis Limits
    M208 X-6 Y0 Z0 S1 ; set axis minima
    M208 X220 Y235 Z335 S0 ; set axis maxima

    ; Endstops
    M574 X1 S1 P"!xstop" ; x-end stop with inverse operation
    M574 Y1 S1 P"!ystop" ; y-end stop with inverse operation

    ; Z-Probe
    ;M950 S0 C"exp.heater3" ; define servo
    M558 P9 C"^zprobe.in" H5 F3000 T6000 A20 S0.06 ; set Z probe type to switch and the dive height + speeds
    G31 X-36.6 Y-11.55 Z3.242 ; set Z probe trigger value, offset and trigger height // Z3.092
    M557 X15:215 Y15:195 S20 ; define mesh grid

    ;LED Light
    ;M950 F3 C"e1heat" Q500 ; create LED using PWM as fan and set frequency
    ;M106 P3 C"LED Light" S0 ; set fan 3 value. Thermostatic control is turned off.

    ; Heaters
    M308 S0 P"bedtemp" Y"thermistor" T100000 B4092 ; configure sensor 0 as thermistor on pin bedtemp
    M950 H0 C"bedheat" T0 ; create bed heater output on bedheat and map it to sensor 0
    M307 H0 B1 S0.85 ; enable bang-bang mode for the bed heater and set PWM limit
    M140 H0 ; map heated bed to heater 0
    M143 H0 S150 ; set temperature limit for heater 0 to 150C
    M308 S1 P"e0temp" Y"thermistor" T100000 B4092 ; configure sensor 1 as thermistor on pin e0temp
    M950 H1 C"e0heat" T1 ; create nozzle heater output on e0heat and map it to sensor 1
    M307 H1 B0 S0.85 ; disable bang-bang mode for heater and set PWM limit
    M302 S180 R180 ; Set retraction/extruding temperature limits. Extruding 180, Retraction 180.
    M143 H1 S320 ; Set maximum heater temperature to 320C

    ; Fans

    M950 H1 C"e0heat" T1 ; create nozzle heater output on e0heat and map it to sensor 1
    M307 H1 B0 S0.85 ; disable bang-bang mode for heater and set PWM limit
    M302 S180 R180 ; Set retraction/extruding temperature limits. Extruding 180, Retraction 180.
    M143 H1 S320 ; Set maximum heater temperature to 320C

    ; Fans
    M950 F0 C"fan0" Q500 ; create fan 0ler Fan" H-1 ; set fan 2 value. Thermostatic control is turned on @ 0.8Factor and 180C
    M106 P0 C"Hot End Fan" T45 H1
    M950 F1 C"fan1" Q500 ; create fan 1
    M106 P1 C"Stepper Fan" T130 H1 ; set fan1 value and rename to "Stepper Fan"
    M950 F2 C"fan2" Q500 ; create fan 2
    M106 P2 C"Part Cooling" H-1 ;
    M950 F3 C"exp.heater3" Q500 ; create fan 4 on pin exp.heater3 and set its frequency
    M106 P3 C"Case Fan" H-1 ; set fan 4 value. Thermostatic control is turned off

    ; Light
    M950 F4 C"e1heat"
    M106 P4 C"LED 12V" H-1
    ;M950 J1 C"!exp.e2stop"
    ;M581 P1 T2

    ; Tools
    M563 P0 D0 H1 F0 ; define tool 0
    G10 P0 X0 Y0 Z0 ; set tool 0 axis offsets
    G10 P0 R0 S0 ; set initial tool 0 active and standby temperatures to 0C

    ; Custom settings are not defined

    ; Miscellaneous
    M501 ; load saved parameters from non-volatile memory
    T0 ; select first tool
    ;M581 P"!exp.e2stop" T2

    ; Signal to user that probe and loading is complete

    M501 ; Load EEPROM details
    M575 P1 S1 B57600
    M402
    M401
    M402
    ; Fully retract probe


  • Moderator

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

    Do you have any servo movement commands in there as well?

    Yes you do.

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

    M402
    M401
    M402

    Maybe try adding a few G4 pause commands in between those deploy and retract commands.



  • @Phaedrux Sorry I was too hasty in my reply. 🙂 Even without the M402/401 commands, it does the same. It's asif there is a PWM spike to the servo just prior to the 'reset' command actually being initiated by the firmware.



  • What I also did notice is that all my fans goes on / off for a fraction of a second when sending the M999 command....


  • Moderator

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

    What firmware version and what Duet board?

    Also, is this an actual BLTouch?

    Does it do this on a normal power cycle, or only when doing a M999?



  • @Phaedrux No it's not a BL touch. It's basically a servo that moves my optical sensor's probe into position/out of position, to commence a probe for the Z axis.

    It happens only during M999 or when it is rebooted (or emergency stop) from the webgui (eg. after editing the config.g file)

    Switching the machine off/on with the physical switch does not give this problem.

    Also:
    Board: Duet 2 WiFi (2WiFi)
    Firmware: RepRapFirmware for Duet 2 WiFi/Ethernet 3.2 (2021-01-05)
    Duet WiFi Server Version: 1.25


  • Moderator

    And did this behaviour only start after updating to 3.2?



  • As far as I can recall, yes. Printer has been out of action for quite some time doing upgrades on the Z-axis - so I did go and flash the newest firmware before commencing the configuration of it - though before I worked on the printer, I did not have this issue... Think it was firmware 3.0 or something. Not too sure.

    Just downgraded to 3.1.1; and still the same....


  • Moderator

    Would you be able to test the behaviour in 3.1.1?

    It should be pretty easy to switch between versions by uploading the respective release zip files to the system tab in DWC.

    https://github.com/Duet3D/RepRapFirmware/releases/download/3.1.1/Duet2and3Firmware-3.1.1.zip

    https://github.com/Duet3D/RepRapFirmware/releases/download/3.2/Duet2and3Firmware-3.2.zip


  • Moderator

    nevermind, looks like you beat me to it.



  • @Phaedrux haha nothing more than luck on my side 🙂 But yes, still the same is being observed.... Even if I go and issue M280 P0 S180 before the M999; it still does the same....


  • Moderator

    Thanks. Will add this to the list to investigate.



  • @Phaedrux Thank you 🙂


  • Moderator

    Would you be able to make a short video showing what it's doing?



  • sure. Where must I upload it?



  • Also a bit off topic, but with 3.2 the end-stop status on the 'Machine-Specific' tab is also missing....



  • Also found something else now. If I don't send any commands to the servo, and then issue M999; then there is no grinding or any activity. But as soon as I have issued a command to the servo; and then reboot, then this phenomenon occurs....


  • Moderator

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

    Where must I upload it?

    you can upload a small mp4 here to the forum or use dropbox or the like.

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

    end-stop status on the 'Machine-Specific' tab is also missing....

    yes. hoping that will make a come back soon.

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

    If I don't send any commands to the servo, and then issue M999; then there is no grinding or any activity. But as soon as I have issued a command to the servo; and then reboot, then this phenomenon occurs

    And that is true regardless of whether you have the M401/M402 commands present?



  • @Phaedrux Yes, Issued M280 instead of M401/2 and it does the same. So seems it is not linked to the M280/401/402 code; but perhaps something in the M999 code? Like basically sending a PWM pulse to the servo upon 'flushing' the memory before reboot or something.



  • @Phaedrux Attached the clip. Hope it is of some help - I have taken the 'arm' off the turning mechanism on the servo so it doesn't damage the gears inside...VID_20210114_193516 (1).mp4


  • Moderator

    Just to be super clear, you have no M401/M402/M280 commands at all in config.g, right?



  • @Phaedrux None, whatsoever.


Log in to reply