Tevo Little Monster delta endstopless homing



  • Hi all.
    Putting a 2 wifi in my TLM. Cant seem to tune Stall Guard though. played with the motor current, sensitivity, and acceleration and the the axis slam up into the frame. Appreciate the help on this matter. Current homedelta.g is below.

    ; homedelta.g
    ; called to home all towers on a delta printer
    ;
    ; generated by RepRapFirmware Configuration Tool on Mon May 22 2017 22:56:20 GMT-0400 (Eastern Daylight Time)
    M400
    M574 X2 Y2 Z2 S3
    M913 X50 Y50 Z50
    M201 X1000 Y1000 Z1000
    M915 X S-50 Y S-50 Z S-50 F1 H400 R0
    ; Use relative positioning
    G91
    ; Move all towers to the high end stopping at the endstops (first pass)
    G1 X505 Y505 Z505 F1800 S1
    ; Go down a few mm
    G1 X-5 Y-5 Z-5 F1800 S2
    ; Move all towers up once more (second pass)
    G1 X10 Y10 Z10 F360 S1

    ; Move down a few mm so that the nozzle can be centred
    G1 Z-5 F6000

    ; Switch back to absolute positioning and go to the centre
    G90
    G1 X0 Y0 F6000
    M400 ; wait again
    M913 X100 Y100 ; motor currents back to 100%
    M201 X3000 Y3000 ; accel back to original
    M574 X1 Y1 Z0 S0 ; set endstops back

    ///////////////////////////////////////////////////////////////////////
    Config.g below
    ///////////////////////////////////////////////////////////////////////

    ; General preferences
    M111 S0 ; Debugging off
    G21 ; Work in millimetres
    G90 ; Send absolute coordinates...
    M83 ; ...but relative extruder moves
    M555 P1 ; Set firmware compatibility to look like RepRapFirmare
    M665 R157 L397.1073 B175 H525 ; Set delta radius, diagonal rod length, printable radius and homed height
    M666 X0 Y0 Z0 ; Put your endstop adjustments here, or let auto calibration find them
    M208 Z0 S1 ; Set minimum Z

    ; Endstops
    M574 X2 Y2 Z2 S3 ; Define active high microswitches
    M558 P1 X0 Y0 Z9 H5 F120 T6000 ; Set Z probe type to unmodulated, the axes for which it is used and the probe + travel speeds
    M557 R130 S20 ; Define mesh grid

    ; BL-Touch
    M307 H3 A-1 C-1 D-1 ; reserve pin 21 for M42 or servo use
    M558 P9 X0 Y0 Z1 H3 F200 T5000 A2
    G31 P25 X0 Y0 Z1.3 ; Set Z probe trigger value, offset and trigger height

    ; Drives
    M569 P0 S1 ; Drive 0 goes forwards
    M569 P1 S1 ; Drive 1 goes forwards
    M569 P2 S1 ; Drive 2 goes forwards
    M569 P3 S1 ; Drive 3 goes forwards
    M350 E32 I0 ; Configure microstepping without interpolation
    M350 X32 Y32 Z32 I1 ; Configure microstepping with interpolation
    M92 X160 Y160 Z160 E837 ; Set steps per mm
    M566 X1200 Y1200 Z1200 E3000 ; Set maximum instantaneous speed changes (mm/min)
    M203 X39960 Y39960 Z39960 E3000 ; Set maximum speeds (mm/min)
    M201 X1000 Y1000 Z1000 E1500 ; Set accelerations (mm/s^2)
    M906 X1800 Y1800 Z1800 E1500 I30 ; Set motor currents (mA) and motor idle factor in per cent
    M84 S30 ; Set idle timeout

    ; Heaters
    M143 S285 ; Set maximum heater temperature to 285C
    M301 H0 S1.00 P10 I0.1 D200 T0.4 W180 B30 ; Use PID on bed heater (may require further tuning)
    M305 P0 T100000 B4607 C8.950070e-8 R4700 ; Set thermistor + ADC parameters for heater 0
    M305 P1 T100000 B4138 C0 R4700 ; Set thermistor + ADC parameters for heater 1

    ; Tools
    M563 P0 D0 H1 ; 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

    ; Network
    M550 PThe Fortune Teller ; Set machine name
    M540 PBE:EF:DE:AD:FE:ED ; Set MAC address
    M552 S1 ; Enable network and acquire dynamic address via DHCP
    M586 P0 S1 ; Enable HTTP
    M586 P1 S0 ; Disable FTP
    M586 P2 S0 ; Disable Telnet

    ; Fans
    M106 P0 S0 I0 F500 H-1 ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off
    M106 P1 S0 I0 F500 H-1 ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned off

    ; Custom settings are not configured

    ; Miscellaneous
    M501 ; Load saved parameters from non-volatile memory


  • Moderator

    @DomMilan said in Tevo Little Monster delta endstopless homing:

    M915 X S-50 Y S-50 Z S-50 F1 H400 R0

    Values below -10 are not recommended.

    https://duet3d.dozuki.com/Wiki/Gcode#Section_M915_Configure_motor_stall_detection

    YOu'll need to tune the sensitivity, speed, and motor current.

    https://duet3d.dozuki.com/Wiki/Stall_detection_and_sensorless_homing



  • Is there any other information you can tell me? Ive tried all types of sensitivities, currents and feed rates.

    ; homedelta.g
    ; called to home all towers on a delta printer
    ;
    ; generated by RepRapFirmware Configuration Tool on Mon May 22 2017 22:56:20 GMT-0400 (Eastern Daylight Time)
    M400
    M574 X2 Y2 Z2 S3
    M913 X30 Y30 Z30
    M201 X1000 Y1000 Z1000
    M915 X S2 Y S2 Z S2 F1 H400 R0
    ; Use relative positioning
    G91
    ; Move all towers to the high end stopping at the endstops (first pass)
    G1 X505 Y505 Z505 F1800 H1
    ; Go down a few mm
    G1 X-5 Y-5 Z-5 F1000 S2
    ; Move all towers up once more (second pass)
    G1 X10 Y10 Z10 F360 S1

    ; Move down a few mm so that the nozzle can be centred
    G1 Z-5 F6000

    ; Switch back to absolute positioning and go to the centre
    G90
    G1 X0 Y0 F6000
    M400 ; wait again
    M913 X100 Y100 ; motor currents back to 100%
    M201 X3000 Y3000 ; accel back to original
    M574 X1 Y1 Z0 S0 ; set endstops back


  • administrators

    Looks like you are homing too slowly. Your M915 H parameter says that stall detection is enabled at/above 400 full steps/sec. Your steps/mm is 160 with x16 microstepping, so 10 full steps/mm. Therefore 400 full steps/sec is 40mm/sec, times 60 is 2400 mm/min.



  • No good results. I noticed if I used a really small M915 H parameter the effector wouldn't jam as much into the frame but I would get this error anyway:

    Error: G0/G1: insufficient axes homed

    ; homedelta.g
    ; called to home all towers on a delta printer
    ;
    ; generated by RepRapFirmware Configuration Tool on Mon May 22 2017 22:56:20 GMT-0400 (Eastern Daylight Time)
    M400
    M574 X2 Y2 Z2 S3
    M913 X30 Y30 Z30
    M201 X50 Y50 Z50
    M915 X S2 Y S2 Z S2 F1 H400 R0
    ; Use relative positioning
    G91
    ; Move all towers to the high end stopping at the endstops (first pass)
    G1 X505 Y505 Z505 F2400 H1
    ; Go down a few mm
    G1 X-5 Y-5 Z-5 F500 S2
    ; Move all towers up once more (second pass)
    G1 X10 Y10 Z10 F360 S1

    ; Move down a few mm so that the nozzle can be centred
    G1 Z-5 F6000

    ; Switch back to absolute positioning and go to the centre
    G90
    G1 X0 Y0 F6000
    M400 ; wait again
    M913 X100 Y100 ; motor currents back to 100%
    M201 X3000 Y3000 ; accel back to original
    M574 X1 Y1 Z0 S0 ; set endstops back



  • @DomMilan and this one
    Error: G0/G1: target position not reachable from current position



  • Okay so I spent all day working this out. Its very close but it still grinds at the top a little

    ; homedelta.g
    ; called to home all towers on a delta printer
    ;
    ; generated by RepRapFirmware Configuration Tool v2.1.8 on Sat Apr 25 2020 15:18:05 GMT-0400 (Eastern Daylight Time)
    M915 X Y Z S2 F1 H50
    M400 ; make sure everything has stopped before we make changes
    M201 X300 Y300 Z300
    M574 X2 Y2 Z2 S3 ; set endstops to use motor stall
    M913 X50 Y50 Z50 ; reduce motor current to 50% to prevent belts slipping
    G91 ; relative positioning
    G1 S1 H1 X532 Y532 Z532 F20000 ; move all towers to the high end stopping at the endstops (first pass)
    G1 H2 X-8 Y-8 Z-8 F3600 ; go down a few mm
    G1 H1 X10 Y10 Z10 F360 ; move all towers up once more (second pass)
    G1 Z-5 F2400 ; move down a few mm so that the nozzle can be centred
    G90 ; absolute positioning
    M400 ; make sure everything has stopped before we reset the motor currents
    M913 X100 Y100 Z100 ; motor currents back to normal
    G1 X0 Y0 F2400 ; move X+Y to the centre
    M915 X Y Z S30 R2 F1 ; set X and Y sensitivity high, pause when stall, filtered

    ////////////////////////////////////////////////////////////////////////////////////////////////////

    Also updated the config to use 256 microstepping


  • administrators

    Don't use such a small H parameter, use a faster homing speed. If you set the H parameter too low then stall detection will become temperature-sensitive. I included an example for a delta printer in https://duet3d.dozuki.com/Wiki/Stall_detection_and_sensorless_homing#Section_Procedure.


  • administrators

    @DomMilan said in Tevo Little Monster delta endstopless homing:

    Also updated the config to use 256 microstepping

    NO NO NO!

    (sorry, it's late here. time I turned in.)


  • Moderator

    @DomMilan said in Tevo Little Monster delta endstopless homing:

    Also updated the config to use 256 microstepping

    What DC42 means is that this won't solve your issue at all, and will likely result in performance issues along the road. Use x16 microstepping with interpolation to x256 for best results.



  • So after the changes and DC42s recommendation I am back where I started... I really don't know what to do. I am running the same setup and an Ender 3 and it works perfectly and I cant even get this this thing to home.



  • On top of that all my thermistors are now reading 2000 even though everything is all connected.


  • Moderator

    What settings are you currently using and what exactly is happening?

    Does the Little Monster not have endstops already? I'm not sure what the draw of stall detection homing is for a delta? I'd think you'd want the best reliability and accuracy possible for homing.



  • @Phaedrux said in Tevo Little Monster delta endstopless homing:

    I live near New York City and I have put my 14 3D printers to work printing 250 shields a day. I was running my SBase on the TLM until the board died. Turned out one of my endstops died too, which is why I am trying to run sensor less homing. My temp errors went away when I moved to Firmware 2.03-2.05 from 3, so that's taken care of. Guess ill buy the endstop and wait another week until I bring this thing back to life.


  • Moderator

    I see. Well there is the manual way. You could move the carriage into position and then set the position with g92.

    But as I said before what settings do you currently have and what happens?


  • administrators

    @DomMilan said in Tevo Little Monster delta endstopless homing:

    So after the changes and DC42s recommendation I am back where I started... I really don't know what to do. I am running the same setup and an Ender 3 and it works perfectly and I cant even get this this thing to home.

    What speed are you now using in the G1 homing move in your homedelta.g file? Previously, you had it set too low. Revert to using H400 in your M915 commands, and try a homing speed of 4000 mm/min as in my example file.

    Note, stall homing by itself isn't accurate enough to home a delta, but if you have a Z probe then one or two auto calibration cycles after homing will fix the accuracy.



  • @Phaedrux

    My config

    ; Configuration file for Duet WiFi (firmware version 2.03)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool v2.1.8 on Sat Apr 25 2020 21:37:52 GMT-0400 (Eastern Daylight Time)

    ; General preferences
    G90 ; send absolute coordinates...
    M83 ; ...but relative extruder moves
    M550 P"The Fortune Teller" ; set printer name
    M665 R155 L397.19 B155 H520 ; Set delta radius, diagonal rod length, printable radius and homed height
    M666 X0 Y0 Z0 ; put your endstop adjustments here, or let auto calibration find them

    ; Network
    M551 P"Turnip123!" ; set password
    M552 S1 ; enable network
    M586 P0 S1 ; enable HTTP
    M586 P1 S0 ; disable FTP
    M586 P2 S0 ; disable Telnet

    ; Drives
    M569 P0 S1 ; physical drive 0 goes forwards
    M569 P1 S1 ; physical drive 1 goes forwards
    M569 P2 S1 ; physical drive 2 goes forwards
    M569 P3 S1 ; physical drive 3 goes forwards
    M584 X0 Y1 Z2 E3 ; set drive mapping
    M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation
    M92 X80.00 Y80.00 Z80.00 E403.00 ; set steps per mm
    M566 X1200.00 Y1200.00 Z1200.00 E1200.00 ; set maximum instantaneous speed changes (mm/min)
    M203 X18000.00 Y18000.00 Z18000.00 E9000.00 ; set maximum speeds (mm/min)
    M201 X5000.00 Y5000.00 Z5000.00 E1000.00 ; set accelerations (mm/s^2)
    M906 X1000 Y1000 Z1000 E800 I30 ; set motor currents (mA) and motor idle factor in per cent
    M84 S30 ; Set idle timeout

    ; Axis Limits
    M208 Z0 S1 ; set minimum Z

    ; Endstops
    M574 X2 Y2 Z2 S3 ; set endstops controlled by motor stall detection

    ; Z-Probe
    M307 H3 A-1 C-1 D-1 ; disable heater on PWM channel for BLTouch
    M558 P9 H5 F120 T7200 ; set Z probe type to bltouch and the dive height + speeds
    G31 P500 X0 Y20 Z1.3 ; set Z probe trigger value, offset and trigger height
    M557 R150 S45 ; define mesh grid

    ; Heaters
    M307 H0 B0 S1.00 ; disable bang-bang mode for the bed heater and set PWM limit
    M305 P0 T100000 B4138 R4700 ; set thermistor + ADC parameters for heater 0
    M143 H0 S120 ; set temperature limit for heater 0 to 120C
    M305 P1 T100000 B4138 R4700 ; set thermistor + ADC parameters for heater 1
    M143 H1 S280 ; set temperature limit for heater 1 to 280C

    ; Fans
    M106 P0 S0 I0 F500 H1 T45 ; set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned on
    M106 P1 S1 I0 F500 H1 T45 ; set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on

    ; Tools
    M563 P0 S"Extruder" 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
    M591 D0 C3 P2 E6.0

    My homedelta

    ; homedelta.g
    ; called to home all towers on a delta printer
    ;
    ; generated by RepRapFirmware Configuration Tool v2.1.8 on Sat Apr 25 2020 21:37:52 GMT-0400 (Eastern Daylight Time)
    M400 ; make sure everything has stopped before we make changes
    M915 P0:1:2 S2 F1 H400 R0
    M574 X2 Y2 Z2 S3 ; set endstops to use motor stall
    M913 X55 Y55 Z55 ; reduce motor current to 50% to prevent belts slipping
    G91 ; relative positioning
    G1 H1 X705 Y705 Z705 F4000 ; move all towers to the high end stopping at the endstops (first pass)
    G1 H2 X-5 Y-5 Z-5 F7200 ; go down a few mm
    G1 H1 X10 Y10 Z10 F360 ; move all towers up once more (second pass)
    G1 Z-5 F7200 ; move down a few mm so that the nozzle can be centred
    G90 ; absolute positioning
    G1 X0 Y0 F7200 ; move X+Y to the centre
    M400 ; make sure everything has stopped before we reset the motor currents
    M913 X100 Y100 Z100 ; motor currents back to normal
    G1 X0 Y0 F2000 ; centre the head and set a reasonable feed rate

    What currently happens with this specific homedelta.g is the effector rams itself into the endstop position and returns two errors, target position not reachable from current position and insufficient axis homed.


  • Moderator

    @DomMilan said in Tevo Little Monster delta endstopless homing:

    M400 ; make sure everything has stopped before we make changes
    M915 P0:1:2 S2 F1 H400 R0
    M574 X2 Y2 Z2 S3 ; set endstops to use motor stall
    M913 X55 Y55 Z55 ; reduce motor current to 50% to prevent belts slipping
    G91 ; relative positioning
    G1 H1 X705 Y705 Z705 F4000 ; move all towers to the high end stopping at the endstops (first pass)
    G1 H2 X-5 Y-5 Z-5 F7200 ; go down a few mm
    G1 H1 X10 Y10 Z10 F360 ; move all towers up once more (second pass)
    G1 Z-5 F7200 ; move down a few mm so that the nozzle can be centred
    G90 ; absolute positioning
    G1 X0 Y0 F7200 ; move X+Y to the centre
    M400 ; make sure everything has stopped before we reset the motor currents
    M913 X100 Y100 Z100 ; motor currents back to normal
    G1 X0 Y0 F2000 ; centre the head and set a reasonable feed rate

    Try this instead

    M400 ; make sure everything has stopped before we make changes
    M915 P0:1:2 S2 F0 H200 R0
    M574 X2 Y2 Z2 S3 ; set endstops to use motor stall
    M913 X55 Y55 Z55 ; reduce motor current to 50% to prevent belts slipping
    G91 ; relative positioning
    G1 H1 X705 Y705 Z705 F4000 ; move all towers to the high end stopping at the endstops (first pass)
    G1 X-50 Y-50 Z-50 F7200 ; go down a few mm
    G90 ; absolute positioning
    G1 X0 Y0 F7200 ; move X+Y to the centre
    M400 ; make sure everything has stopped before we reset the motor currents
    M913 X100 Y100 Z100 ; motor currents back to normal
    
    


  • Okay this one was odd.

    Y and Z jumped down a good 50mm but then raised up about half that distance but is now lowering every time I run G28.

    X just lowers to the same height that Y and Z end in one motion.


  • Moderator

    I may have removed too much from your original. I'm not very familiar with the delta homing.

    try removing G1 X0 Y0 F7200 ; move X+Y to the centre

    That should home all towers once and then move down 50mm and stop. What you do with it after that is up to you.

    The important thing is that it sounds like it homed correctly.



  • Now it homes one axis every time I G28 but a different axis every time with a net downward movement still.


  • Moderator

    Two things. First, I may have made an error by removing the H2 from the G1 command to lower the heads a bit. Second, we may be experiencing a limitation of RRF2 and stall detection homing.

    https://duet3d.dozuki.com/Wiki/Gcode#Section_M574_RepRapFirmware_Num_3

    Ok I think we've encountered the limitation of RRF2 and stall detection. As soon as one endstop is triggered, movement stops for all axis.

    You would need to use RRF3 to use multiple motor stall detection (M574 S4). See the link.

    Snnn 1 = switch-type (eg microswitch) endstop input, 2 = Z probe (when used to home an axis other than Z), 3 = single motor load detection, 4 = multiple motor load detection (see Notes).

    However, updating to RRF3 would take some effort on it's own since the config.g would need to be recreated with the web configurator or manually updated.

    If you're not up to that, I think we could get around this limitation by homing each axis with an individual move. This gets a little tricky with a delta though because of the way the axis are linked. But if they started in a semi safe spot you should be able to home each tower individually.

    So first, try this.

    M400 ; make sure everything has stopped before we make changes
    M915 P0:1:2 S2 F0 H200 R0
    M574 X2 Y2 Z2 S3 ; set endstops to use motor stall
    M913 X55 Y55 Z55 ; reduce motor current to 50% to prevent belts slipping
    G91 ; relative positioning
    G1 H1 X705 Y705 Z705 F4000 ; move all towers to the high end stopping at the endstops (first pass)
    G1 H2 X-50 Y-50 Z-50 F7200 ; go down a few mm
    G90 ; absolute positioning
    G1 X0 Y0 F7200 ; move X+Y to the centre
    M400 ; make sure everything has stopped before we reset the motor currents
    M913 X100 Y100 Z100 ; motor currents back to normal
    

    If that doesn't work, try this

    M400 ; make sure everything has stopped before we make changes
    M915 P0:1:2 S2 F0 H200 R0
    M574 X2 Y2 Z2 S3 ; set endstops to use motor stall
    M913 X55 Y55 Z55 ; reduce motor current to 50% to prevent belts slipping
    G91 ; relative positioning
    G1 H1 X705 F4000 ; move X tower
    G1 H1 Y705 F4000 ; move Y tower
    G1 H1 Z705 F4000 ; move Z tower
    G1 H2 X-50 Y-50 Z-50 F7200 ; go down a few mm
    G90 ; absolute positioning
    M400 ; make sure everything has stopped before we reset the motor currents
    M913 X100 Y100 Z100 ; motor currents back to normal
    

    Also before running those try and get the carriages to be more or less even.



  • @Phaedrux Thank you for all your help on this. I bought the endstop and its coming in a few days so no need to waste both our time on this. Sorry for the inconvenience.


  • Moderator

    Awww I was eager to see if that last one would work.


Log in to reply