Z Homing Problem



  • I am running a Duet Ethernet on a Tronxy X5SA. Firmware 2.02(not beta). The printer is a mostly stock corexy with the only modifications being the AC bed heater and relay. I also have the two stock Z motors wired independently to the Z and E1 drivers. I initially set it up with a micro switch Z end stop then changed to the stock Tronxy IR probe. I had it printing first with the end stop and then with the probe but I could never get the bed mesh compensation to work properly. So I decided to start fresh with new sys files to eliminate any possibility of conflicting commands related to changing from switch to probe.

    It appears I've made my problems worse. My problem now is that I can home X and Y but when I go to home Z, the carriage remains at 0,0 which in my case means the probe is not above the bed. It runs the G30 command but since the probe isn't over the bed, the Z movement only stops when I trigger the probe with a metal object. It seemed that the XY command to move probe to the probe point was being ignored so I added S2 to the G1 command that sends the probe to the probe location. The only change that made was that it now moves the probe to the X point specified but stays at zero in the Y axis. The other odd behavior is that I cannot command any X or Y movement from the web control even with all axes homed. Requests for movement in the Z axis seem to be processed correctly.

    Any thoughts?

    Here's my config.g:
    ; Configuration file for Duet Ethernet (firmware version 1.21)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool on Wed Apr 17 2019 13:07:38 GMT-0700 (Pacific Daylight Time)

    ; General preferences
    G90 ; Send absolute coordinates...
    M83 ; ...but relative extruder moves

    M667 S1 ; Select CoreXY mode

    ; Network
    M550 PTronxy X5SA ; Set machine name
    M552 P0.0.0.0 S1 ; Enable network and acquire dynamic address via DHCP
    M586 P0 S1 ; Enable HTTP
    M586 P1 S0 ; Disable FTP
    M586 P2 S0 ; Disable Telnet

    ; Drives
    M569 P0 S0 ; Drive 0 goes forwards
    M569 P1 S0 ; Drive 1 goes forwards
    M569 P2 S0 ; Drive 2 goes backwards
    M569 P3 S0 ; Drive 3 goes backwards
    M569 P4 S0
    M350 X16 Y16 Z16 E16 I1 ; Configure microstepping with interpolation
    M92 X80 Y80 Z400 E98 ; Set steps per mm
    M566 X600 Y600 Z12 E120 ; Set maximum instantaneous speed changes (mm/min)
    M203 X18000 Y18000 Z180 E1500 ; Set maximum speeds (mm/min)
    M201 X3000 Y3000 Z100 E10000 ; Set accelerations (mm/s^2)
    M906 X1200 Y1200 Z950 E950 I30 ; Set motor currents (mA) and motor idle factor in per cent
    M84 S30 ; Set idle timeout

    ; Axis Limits
    M208 X0 Y0 Z0 S1 ; Set axis minima
    M208 X330 Y320 Z400 S0 ; Set axis maxima

    ; Endstops
    M574 X1 Y1 S0 ; Set active low endstops

    ; Z-Probe
    M574 Z1 S2 ; Set endstops controlled by probe
    M558 P1 H5 F120 T6000 I1 ; Set Z probe type to unmodulated and the dive height + speeds
    G31 P500 X-10 Y-33 Z2.5 ; Set Z probe trigger value, offset and trigger height
    M557 X35:295 Y35:295 S65 ; Define mesh grid

    ; Heaters
    M305 P0 T100000 B4138 C0 R4700 ; Set thermistor + ADC parameters for heater 0
    M143 H0 S120 ; Set temperature limit for heater 0 to 120C
    M305 P1 T100000 B4138 C0 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 H-1 ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off
    M106 P1 S1 I0 F500 H1 T45 ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on
    M106 P2 S1 I0 F500 H1 T45 ; Set fan 2 value, PWM signal inversion and frequency. Thermostatic control is turned on

    ; 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

    ; Automatic power saving
    M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; Set voltage thresholds and actions to run on power loss

    ; Dual Z Motors
    ...
    M584 X0 Y1 Z2:4 ; two Z motors connected to driver outputs Z and E1
    M671 X-90:420 Y0:0 S0.5 ; leadscrews at left and right of X axis
    M208 X0:320 Y0:330 ; X carriage moves from -5 to 205, Y bed goes from 0 to 200
    ...

    ; Custom settings are not configured

    and my homez.g

    ; homez.g
    ; called to home the Z axis
    ;
    ; generated by RepRapFirmware Configuration Tool on Wed Apr 17 2019 13:07:38 GMT-0700 (Pacific Daylight Time)
    G91 ; relative positioning
    G1 Z5 F6000 S2 ; lift Z relative to current position
    G90 ; absolute positioning
    G1 X165 Y165 F6000 S2 ; go to first probe point
    G30 ; home Z by probing the bed

    ; Uncomment the following lines to lift Z after probing
    ;G91 ; relative positioning
    ;G1 S2 Z5 F100 ; lift Z relative to current position
    ;G90 ; absolute positioning



  • It sounds like you may have some motor directions reversed?

    Do you have the old config files backed up somewhere still to compare against?

    If you read through this section: https://duet3d.dozuki.com/Wiki/ConfiguringRepRapFirmwareCoreXYPrinter#Section_Movement_section
    you'll be able to test that each motor is turning in the right direction.

    Then using the guide that 0,0 is in the front left corner of the bed you can determine the position and direction of the endstops and make sure the homing files are moving them in the right direction.

    M208 X0:320 Y0:330 ; X carriage moves from -5 to 205, Y bed goes from 0 to 200

    This part of your config doesn't make much sense to me since you've already got your Axis limits set farther up.

    Can you post the rest of your homing files as well?

    Using the S2 commands in homez is actually a little risky, because it lets you move X and Y to an absolute location that you can't guarantee is accurate if they aren't homed. It's less risky to allow motion for the Z axis since you can only move it in one axis and it's hopefully just lifting it out of the way.

    It would be far safer to remove the S2 command from the XY move in homez. That would mean you'd have to home X and Y first which shouldn't take long, or use homeall instead.



  • I made some progress finally. I think I was actually on a beta version of firmware so I flashed a stable 2.02 release and that seems to have eliminated most of the problem. I haven't dug into it yet but there still seems to be an issue with movement commands being ignored but I think it only happens during a "tool change". I only have just the one hot end so there's no need for the lockout but I haven't looked into how to disable that.

    I was able to delete the S2 parameter so no worries there.

    I'm not sure about the need for the M208 command either. I copied that in from the Duet3D page regarding dual Z motors and modified the limits to suit my printer. But I'm not sure why its needed.



  • @osubeaver

    M208 defines the axis limits. It defines your end stop switch’s location and the movement allowed away from it.

    There is a list of gcode commands in the duet docs that describes the function of every gcode. I suggest you check it out when you don’t understand what a command is doing. You should ultimately understand every single aspect of every command in all of your /sys files.



  • @bot said in Z Homing Problem:

    There is a list of gcode commands in the duet docs that describes the function of every gcode. I suggest you check it out when you don’t understand what a command is doing. You should ultimately understand every single aspect of every command in all of your /sys files.

    Good advise. With the help from this forum and other online documentation I'm learning as I go. Forgive me if I'm not quite there yet.

    I guess I should have been more clear that I wasn't sure about the need for the additional M208 since it's already defined in my config.g. I was really just replying to Phaedrux's comment. I still don't know but I'll try commenting out the added M208 and see how that works.



  • M208 can be formatted in two ways. The first way uses the S1 and S2 switch to define the min and max values, the second way uses X#:# Y#:# to define the coordinates of the axis limits.

    You can do it either way. I was just curious why you had both ways. It won't affect anything unless they are different. The last command issued chronologically is the one that takes effect.



  • @osubeaver said in Z Homing Problem:

    @bot said in Z Homing Problem:

    There is a list of gcode commands in the duet docs that describes the function of every gcode. I suggest you check it out when you don’t understand what a command is doing. You should ultimately understand every single aspect of every command in all of your /sys files.

    Good advise. With the help from this forum and other online documentation I'm learning as I go. Forgive me if I'm not quite there yet.

    I guess I should have been more clear that I wasn't sure about the need for the additional M208 since it's already defined in my config.g. I was really just replying to Phaedrux's comment. I still don't know but I'll try commenting out the added M208 and see how that works.

    Lol.. oops. Sorry about that!



  • Have a look at my exact same Z-Probe.
    My issue is resolved when printing on the original TronXY bed with 3mm glass:
    https://forum.duet3d.com/topic/10048/adding-a-tronxy-xy-08n-inductive-sensor-min-z-stop

    This will resolve your issue and the thread identifies the electrical hookups and the gcode settings for your config.g

    I'm sure this will solve your issue as well.



  • @dennishall

    Thanks!



  • @bot

    No worries! I appreciate all the help I can get.


 

Looks like your connection to Duet3D was lost, please wait while we try to reconnect.