duet 3 triple z/motor problem
bzad last edited by bzad
hi i recently built a corexy with 3 z screws dono what I'm missing here everything was okay after initial tests everything works fine toolhead moves with simple commands initially the triple z worked as well. after a few attempts I've been having this issue. it will move to first 2 probe points but it has an issue for some reason it wont do a proper move to the 3rd point and I dono if this is a stall or a programing error. I've switched stepper drivers, changed amps, acceleration, speeds, remaking a fresh config, also checked crimps and contacts. I'm lost at this point. any help would be nice. attached is a video of the issue and configs. also trying to do independent z when home alling
Duet 3 6hc
Please get in the habit of copy-and-pasting your files using the </> tag.
That way we don't need to download them to view them.
; Configuration file for Duet 3 (firmware version 3) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.3.0 on Tue Aug 17 2021 19:03:00 GMT-0400 (Eastern Daylight Time) ; General preferences M575 P1 S1 B57600 ; enable support for PanelDue G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"hevort" ; set printer name M669 K1 ; select CoreXY mode ; Network M551 P"1955" ; set password 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.1 S1 ; physical drive 0.1 goes forwards M569 P0.2 S1 ; physical drive 0.2 goes forwards M569 P0.3 S1 ; physical drive 0.3 goes forwards M569 P0.4 S1 ; physical drive 0.4 goes forwards M569 P0.5 S1 ; physical drive 0.5 goes forwards M569 P0.0 S0 ; physical drive 0.0 goes backwards M584 X0.1 Y0.2 Z0.3:0.4:0.5 E0.0 ; set drive mapping M671 X-26.188:200.021:426.23 Y-20.717:407.493:-20.717 S50 ;Z leadscrews map M350 X64 Y64 Z16:16:16 E64 I1 ; configure microstepping with interpolation M92 X640.00 Y640.00 Z800.00:800.00:800.00 E2701.896 ; set steps per mm M566 X900.00 Y900.00 Z105.00:105.00:105.00 E120.00 ; set maximum instantaneous speed changes (mm/min) M203 X60000.00 Y60000.00 Z6000.00:6000.00:6000.00 E1200.00 ; set maximum speeds (mm/min) M201 X6000.00 Y6000.00 Z400.00:400.00:400.00 E250.00 ; set accelerations (mm/s^2) M906 X1300 Y1300 Z1150:1150:1150 E400 I30 ; set motor currents (mA) and motor idle factor in per cent M84 S15 ; Set idle timeout ; Axis Limits M208 X0 Y0 Z0 S1 ; set axis minima M208 X410 Y410 Z400 S0 ; set axis maxima ; Endstops M574 X1 S1 P"io1.in" ; configure active-high endstop for low end on X via pin io1.in M574 Y1 S1 P"io2.in" ; configure active-high endstop for low end on Y via pin io2.in M574 Z1 S2 ; configure Z-probe endstop for low end on Z ; Z-Probe M950 S0 C"io7.out" ; create servo pin 0 for BLTouch M558 P9 C"^io7.in" H15 F480 T9000 ; set Z probe type to bltouch and the dive height + speeds G31 P500 X36 Y0 Z2.3 ; set Z probe trigger value, offset and trigger height M557 X40:375 Y40:400 S40 ; define mesh grid ; Heaters M308 S0 P"temp0" Y"thermistor" T100000 B3950 ; configure sensor 0 as thermistor on pin temp0 M950 H0 C"out0" T0 ; create bed heater output on out0 and map it to sensor 0 M307 H0 B1 S1.00 ; enable bang-bang mode for the bed heater and set PWM limit M140 H0 ; map heated bed to heater 0 M143 H0 S120 ; set temperature limit for heater 0 to 120C M308 S1 P"temp1" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 1 as thermistor on pin temp1 M950 H1 C"out1" T1 ; create nozzle heater output on out1 and map it to sensor 1 M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit M143 H1 S280 ; set temperature limit for heater 1 to 280C ; Fans M950 F0 C"out7" Q500 ; create fan 0 on pin out7 and set its frequency M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off M950 F1 C"out8" Q500 ; create fan 1 on pin out8 and set its frequency M106 P1 S1 H1 T45 ; 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 M911 S22 R23.5 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss T0 ; select first tool
; homeall.g ; called to home all axes ; ; generated by RepRapFirmware Configuration Tool v3.3.0 on Tue Aug 17 2021 19:03:00 GMT-0400 (Eastern Daylight Time) G91 ; relative positioning G1 H2 Z15 F9000 ; lift Z relative to current position G1 H1 X-380 Y-415 F3000 ; move quickly to X or Y endstop and stop there (first pass) G1 H1 X-380 ; home X axis G1 H1 Y-415 ; home Y axis G1 X5 Y5 F9000 ; go back a few mm G1 H1 X-380 F360 ; move slowly to X axis endstop once more (second pass) G1 H1 Y-415 ; then move slowly to Y axis endstop G90 ; absolute positioning G1 X30 Y30 F9000 ; go to first bed probe point and home Z G30 ; home Z by probing the bed G30 P0 X35 Y30 Z-99999 ; probe near a leadscrew G30 P1 X187 Y410 Z-99999 ; probe near a leadscrew G30 P2 X405 Y30 Z-99999 S3 ; probe near a leadscrew and calibrate 3 motors G1 X30 Y30 F9000 ; go to first bed probe point and home Z ; Uncomment the following lines to lift Z after probing ;G91 ; relative positioning ;G1 Z15 F150 ; lift Z relative to current position ;G90 ; absolute positioning
; bed.g ; called to perform automatic bed compensation via G32 ; ; generated by RepRapFirmware Configuration Tool v3.3.0 on Tue Aug 17 2021 19:03:00 GMT-0400 (Eastern Daylight Time) ;M561 ; clear any bed transform ;G29 ; probe the bed and enable compensation M561 ; clear any bed transform G28 ; home all axes G30 P0 X35 Y30 Z-99999 ; probe near a leadscrew G30 P1 X187 Y410 Z-99999 ; probe near a leadscrew G30 P2 X405 Y30 Z-99999 S3 ; probe near a leadscrew and calibrate 3 motors ;G30 P0 X35 Y30 Z-99999 ; probe near a leadscrew ;G30 P1 X187 Y410 Z-99999 ; probe near a leadscrew ;G30 P2 X405 Y30 Z-99999 S3 ; probe near a leadscrew and calibrate 3 motors G28 ; home all axes G29 ; probe the bed and enable compensation G28 Z
@fcwilt thanks yea will do
In your bed.g file after you try to level the bed with the G30 commands you are calling G29 to create the height map for mesh bed compensation.
Do you really want to do both of these together?
I keep them separate as I level the bed when homing but only probe the bed to create the height map manually using a macro.
In your homeall.g file if you wish to level the bed during homing you should use a G32 command to invoke bed.g rather than the three G30 Px commands - no point in having those commands duplicated in different files.
The video is a bit hard to follow when it comes to determining what moves are associated with what commands.
@fcwilt I’ll try your way see what happens as for the video
Home all is done
G30 P0 X35 Y30 Z-99999
Done and moves on to
G30 P1 X187 Y410 Z-99999
Done but the stuffer or whatever u call that happens and won’t move to
G30 P2 X405 Y30 Z-99999 S3
In your config.g file you specify that the Z probe is 36 mm to the right of the nozzle - is that correct?
@fcwilt thx for your help i removed all g30's and isolated it in a macro and played around with numbers based on what was happening my understanding is that in my config g i set my build area as 400 or wahat ever and based on probe offset even though the probe had space it was trying to probe 2 far outside of the build volume and it was confusing the system so i just had to add 15 to config file for volume making it 415 even though my print area is only 375 ish
i just had to add 15 to config file for volume making it 415 even though my print area is only 375 ish
Telling it that it can move to 415 when it can only physically move 375 will likely lead to a crash.
Your points to probe need to be within the safe travel volume and allow for the probe offset.
fcwilt last edited by fcwilt
@fcwilt thx for your help i removed all g30's and isolated it in a macro
The firmware, version 3.3 at least, has already established the use of bed.g which is invoked by G32 and mesh.g which is invoked by G29.
Everything needed to perform leveling can be put in bed.g.
Everything needed to create the height for mesh compensation can be put in mesh.g.
When I say "everything" I mean that I put all of the commands needed so bed.g or mesh.g can be called at anytime and they will work as expected.
it was trying to probe 2 far outside of the build volume and it was confusing the system so i just had to add 15 to config file for volume making it 415 even though my print area is only 375 ish
That is one way to do it.
My axis min/max values are always set to the actual printing volume.
To deal with Z probe offset I either temporarily lift the min/max limits using M564 or pick probe points that are reachable despite the probe offsets.
@phaedrux yup thought of that and found m564 in gcode commands and adde s0 and s1 before and after and put actual area to what is intended thanks
@fcwilt yup id like to do z level at start of a print so when i turn on printer or a job i know at least thats right (since the bed is a bit heavy it may roll down a bit just to be safe) and since bed g calls home all it will do that anyway and i also skimmed and found the m564 command added it and just saw your msg thanks for the recommendations and help