Wierd homing behaviour



  • Hi All,

    I've been having difficulties with setting up my machine and i'm now getting some really weird behavior out of it.

    I recently updated from firmware 2.03 to 3.1.1, and did a fresh setup of the machine. I'm using the standard setup from the reprap configurator.

    Hardware is a duet 2 wifi, Anycubic predator (delta), BL touch.

    I have found that sometimes on power-on it will refuse to home and says "position not reachable from current location" (or similar). I find this happens when it power-on resets with a Z position that is technically higher than the Z travel. In addition, i've found that it will refuse to G92 the Z height close to the maximum Z. For example, on my Z stop, i want to set a G92 height of 451mm, but it instead sets is some random figure about 10mm below this. I've also found it does this with the homing script, so the maximum height gets reset to some random number, close to but not quite the actual Z height limit.

    I found by modifying the Z height to be larger than it actually is in the startup M556 command would make this o away, but that caused other issues. Instead, i've been trying to home against the switches, then drop 50mm and G92 the position, but that now gives the below really weird behavior. Homing script:

    ; homedelta.g
    ; called to home all towers on a delta printer
    ;
    ; generated by RepRapFirmware Configuration Tool v3.1.4 on Mon Jul 20 2020 14:35:08 GMT+1000 (Australian Eastern Standard Time)
    G91 ; relative positioning
    G1 H1 X705 Y705 Z705 F1800 ; move all towers to the high end stopping at the endstops (first pass)
    G1 H2 X-5 Y-5 Z-5 F1800 ; go down a few mm
    G1 H1 X10 Y10 Z10 F360 ; move all towers up once more (second pass)
    G4 P200
    G92 Z400
    G1 H0 Z-50 F1800 ; move down a few mm so that the nozzle can be centred
    G4 P200
    G90
    G92 Z400
    G1 H0 Z5 X0 Y0
    G4 P200
    G30
    G1 H0 Z100 X0 Y0
    G4 P200

    I recently updated from 2.03 to 3.1.1 because I found when i homed the machine and then did a G1 X0 Y0 Z0, or similar move, the effector would sometimes move about 30mm above the bed, but in a random X and Y position. This was especially weird because sometimes it would work perfectly after a power reset, but most of the time it behaved badly.

    Earlier today, i powered it on and got a G28 "failed to enable endstop" error, which was new for me and especially worrying because it wasn't doing it last night, and i haven't changed anything.

    I was worried i'd screwed up the firmware update anyway from previous, so i took it out of the machine earlier today and followed the fallback update procedure #1 from the firmware update page, and i was initially pleased i might have fixed it, but i'm still getting the G28 end stop error and now can't make the machine move at all.

    Not sure how to upload config.g directly, so print out below. All i've changed from the configurator setup (apart from homing script) is to comment out the M501 command because i thought i might have some weird auto calibration settings that were causing the random moves.

    Thanks in advance for any help.

    ; Configuration file for Duet WiFi (firmware version 3)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool v3.1.4 on Mon Jul 20 2020 14:35:06 GMT+1000 (Australian Eastern Standard Time)

    ; General preferences
    G90 ; send absolute coordinates...
    M83 ; ...but relative extruder moves
    M550 P"Goyds_delta" ; set printer name
    M665 R227 L440 B160 H451 ; 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
    M552 S1 ; enable network
    M586 P0 S1 ; enable HTTP
    M586 P1 S0 ; disable FTP
    M586 P2 S0 ; disable Telnet

    ; Drives
    M569 P0 S0 ; physical drive 0 goes backwards
    M569 P1 S0 ; physical drive 1 goes backwards
    M569 P2 S0 ; physical drive 2 goes backwards
    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 E837.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 E1200.00 ; set maximum speeds (mm/min)
    M201 X3000.00 Y3000.00 Z3000.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 X1 S2 P"xstop" ; configure active-high endstop for high end on X via pin xstop
    M574 Y1 S2 P"ystop" ; configure active-high endstop for high end on Y via pin ystop
    M574 Z1 S2 P"zstop" ; configure active-high endstop for high end on Z via pin zstop

    ; Z-Probe
    M950 S0 C"exp.heater3" ; create servo pin 8 for BLTouch
    M558 P9 C"^zprobe.in" H5 F100 T1000 ; set Z probe type to bltouch and the dive height + speeds
    G31 P25 X0 Y-40 Z2.4 ; set Z probe trigger value, offset and trigger height
    M557 R120 S20 ; define mesh grid

    ; Heaters
    M308 S0 P"bedtemp" Y"thermistor" T100000 B4138 ; 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 B0 S1.00 ; disable bang-bang mode for the bed heater and set PWM limit
    M140 H0 ; map heated bed to heater 0
    M143 H0 S80 ; set temperature limit for heater 0 to 80C
    M308 S1 P"e0temp" Y"thermistor" T100000 B4138 ; 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 S1.00 ; disable bang-bang mode for heater and set PWM limit

    ; Fans
    M950 F0 C"fan0" Q500 ; create fan 0 on pin fan0 and set its frequency
    M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off
    M950 F1 C"fan1" Q500 ; create fan 1 on pin fan1 and set its frequency
    M106 P1 S1 H1 T60 ; set fan 1 value. Thermostatic control is turned on

    ; 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


  • Moderator

    @lloyd-morrissey said in Wierd homing behaviour:

    ; Endstops
    M574 X1 S2 P"xstop" ; configure active-high endstop for high end on X via pin xstop
    M574 Y1 S2 P"ystop" ; configure active-high endstop for high end on Y via pin ystop
    M574 Z1 S2 P"zstop" ; configure active-high endstop for high end on Z via pin zstop

    Your endstops are all defined for the low end, and using a probe! See https://duet3d.dozuki.com/Wiki/Gcode#Section_M574_RepRapFirmware_Num_3
    I expect this is causing the weird behaviour. Change to:

    ; Endstops
    M574 X2 S1 P"xstop"                            ; configure active-high endstop for high end on X via pin xstop
    M574 Y2 S1 P"ystop"                            ; configure active-high endstop for high end on Y via pin ystop
    M574 Z2 S1 P"zstop"                            ; configure active-high endstop for high end on Z via pin zstop
    

    Ian


  • Moderator

    I think what's happening is that in the config tool you must select the High end button for the endstops. It's the only selectable option, but it's not actually selected even though when choosing delta it's the only allowed option. This leads to defaulting to low end endstops when the config is finally generated. Will look into that.



  • Oooh, thansk all, that makes sense.

    looks like i've miss assigned my end stops as low end, shoudl be M574 X2 A1 P"xstop" etc.

    I'll give this a try and report back.



  • @droftarts and @Phaedrux
    Yes it was exaclty this, Thankyou. I'm not sure how i got there, but i spent the best part of two full weekends battling over this. You've saved me from insanity.


Log in to reply