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 movesM667 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.
-
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-stopThis 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.
-
Thanks!
-
No worries! I appreciate all the help I can get.