Something odd going on sudden homing problems. (solved? unknown cause)



  • So printing last night no problems. Start the machine https://www.duet3d.com/forum/thread.php?id=202 up just now and hit home. The first move upwards works, then on the second it crashes the y-tower and grinds to a stop.

    Presuming it was some corruption of the firmware, I've uploaded firmware 1.17c via the web interface, same problem, and resetting the board and uploading 1.17c via samBA - same issue.

    I made a video of the issue https://www.youtube.com/watch?v=Sq8r3biNoDs at first I am manually testing the endstop (I have also removed the bed and checked the Y endstop light is going out when it is physically triggered on the duetwifi, which it is.

    My config.g:
    ; Configuration file for Mini Kossel kit from Think3DPrint3D for testing Duet WiFi

    ; Communication and general
    M111 S0 ; Debug off
    M550 LargeKossel ; Machine name and Netbios name (can be anything you like)
    M551 ***************** ; Machine password (used for FTP)
    ;*** If you have more than one Duet on your network, they must all have different MAC addresses, so change the last digits
    M540 P0xBE:0xEF:0xDE:0xAD:0xFE:0xED ; MAC Address
    ;*** Wifi Networking
    M552 S1 ; Enable WiFi

    M555 P2 ; Set output to look like Marlin
    M575 P1 B57600 S1 ; Comms parameters for PanelDue

    G21 ; Work in millimetres
    G90 ; Send absolute coordinates…
    M83 ; ...but relative extruder moves

    ; Axis and motor configuration
    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
    M569 P4 S1 ; Drive 4 goes forwards
    M574 X2 Y2 Z2 S1 ; set endstop configuration (all endstops at high end, active high)
    ;*** The homed height is deliberately set too high in the following - you will adjust it during calibration
    M665 L358.000 R145.480 H431 B140.0 X-0.290 Y0.122 Z0.000 ; calibration parameters
    M666 X1.179 Y-1.087 Z-0.092 A0.00 B0.00 ; put your endstop adjustments here, or let auto calibration find them
    M350 X16 Y16 Z16 E16 I1 ; Set 16x microstepping with interpolation
    M92 X200 Y200 Z200 ; Set axis steps/mm
    M906 X1100 Y1100 Z1100 E800 I60 ; Set motor currents (mA) and increase idle current to 60%
    ;Remember if changing the speeds/accels/jerks below to change bed.g also
    M201 X3000 Y3000 Z3000 E1000 ; Accelerations (mm/s^2)
    M203 X15000 Y15000 Z15000 E3600 ; Maximum speeds (mm/min)
    M566 X1200 Y1200 Z1200 E1200 ; Maximum instant speed changes mm/minute

    ; Thermistors
    M305 P0 T100000 B4300 R4700 H30 L0 ; Put your own H and/or L values here to set the bed thermistor ADC correction
    M305 P1 T100000 B4388 R4700 H30 L0 ; Put your own H and/or L values here to set the first nozzle thermistor ADC correction
    M305 P2 T100000 B3974 R4700 H30 L0 ; Put your own H and/or L values here to set the second nozzle thermistor ADC correction
    M307 H1 A423.4 C203.6 D5.1 S1 B0 ;autotune parameters for extruder 0 heater (H1) tuned 23-10-16
    M307 H0 A311.7 C649.8 D3.1 S1 B0 ;autotune for bed heater H0 tuned 23-10-16

    ; Fans
    M106 P1 T45 H1 ; enables thermostatic mode for fan 1, will be on if heater 1/hotend is above 45 deg C

    ; LEDs
    M106 P2 S255 ;set leds on at max brightness. (runs off fan 1 PWM)

    ; Tool definitions
    M563 P0 D0 H1 ; Define tool 0 (extruder)
    G10 P0 S2235 R160 ; Set tool 0 operating and standby temperatures
    ;*** If you have a single-nozzle build, comment the next 2 lines
    ;M563 P1 D1 H2 ; Define tool 1 (extruder)
    ;G10 P1 S235 R160 ; Set tool 1 operating and standby temperatures
    M92 E333 ; Set extruder steps per mm

    ; Z probe and compensation definition
    ;*** If you have a switch instead of an IR probe, change P1 to P4 in the following M558 command
    ;M558 P1 X0 Y0 Z0 H20 ; Z probe is an IR probe and is not used for homing any axes
    ;G31 X10 Y-5 Z2.60 P500 ; Set the zprobe height and threshold (put your own values here)

    M558 P1 I1 F500 X0 Y0 Z0 ;analogue piezo sensor output falls on contact, probing speed, not used to home axes
    G31 X0 Y0 Z0 P600 ;sensor is nozzle and trigger value.

    ;*** If you are using axis compensation, put the figures in the following command
    M556 S78 X0 Y0 Z0 ; Axis compensation here

    M208 S1 Z-3 ; set minimum Z
    ;
    T0 ; select first hot end
    M140 S0 ; set extruder to 0 for paneldue

    M572 D0 S0.05 ;set extruder pressure advance

    M501 ;load config_override.g

    My homedelta.g
    ; Homing file for RepRapFirmware on Large Kossel
    G91 ; use relative positioning
    ;******* Change F250 in the following line to F2500 when you are finished commissioning
    ;******* Change 320 in the following to a higher value if your Kossel has taller towers
    G1 S1 X700 Y700 Z700 F2500 ; move all carriages up 700mm, stopping at the endstops
    G1 S2 X-3 Y-3 Z-3 ; move all carriages down 3mm
    G1 S1 X6 Y6 Z6 F150 ; move carriages slowly up 6mm, stopping at the endstops
    G1 Z-5 F300 ; down a few mm so that we can centre the head
    G90 ; back to absolute positioning
    G1 X0 Y0 F2000 ; centre the head and set a reasonable feed rate

    Any thoughts?



  • I've tried homing with the bed removed so I can see the endstop lights on the duetwifi and slowing it all down to a snail's pace 150mm/min. The homing moves complete normally, its when it goes to centre the head (G1 X0 Y0 F2000) at the end that it moves just the y axis and crashes the endstop. If I remove this line homing completes normally but I have X-63.0 Y25.4 Z426.88 showing on the webinterface and paneldue despite the head being roughly centred. So its doing the homing moves but not setting x0,y0,when it homes.

    Just to help my understanding of how it works, the homedelta.g file move the carriages back and to triggering endstops but where in the file is the command to set coordinates? How does the firmware know the next endstop trigger is for the purpose of homing? Clearly it ignores the endstops after homing or I would not get the crash.



  • Now working. Began working normally after I tried an autocalibration run even though it was starting at the wrong x,y coordinates. I let it run the first few probing points until it looked like it was about to go outside of the bed, I killed the power. On restart it is now homing properly.

    I wonder if it was an aborted attempt at autocalibration earlier which I was trying to video to help people setup the piezo sensors, which changed/overwrote/corrupted some parameter somewhere (not config.g or config_override.g as these were normal) which caused the problem. Pretty strange - but fixed. Back to the filming.


Log in to reply