consistent layer shift in both x/y using clear-path servos ?
-
Yes it is not the step signal frequency that is usually the problem, but instead the timings of the direction change in your case.
Imagine we are printing and reversing direction, but the DIR signal does not flip fast enough. We could accidentally move a couple steps in the wrong direction before the motor reverses. Take this event times an entire print and a shift over time might be seen. What we are doing is guaranteeing that we will not send a step signal until the dir signal change is seen and processed.
If you are using external drivers (like the ones integrated on the teknic motors) the interpolation will have no effect. All the interpolation is done internal to the stepper driver on the Duet.
Since we are pulling the step/dir signal before it gets to the internal driver (I assume you are doing this), the setting will not matter.
How do you have the motor connected to the duet board?
-
@thatbigprint Gotcha. It is likely a 3.3v signal there vs a 5V signal which the motor is expecting. Doesn't mean it won't work, but it might cause you some grief.
Try the timing thing, if that doesn't work look into maybe level shifting the signal up to 5v or higher for the motor.
-
; Drives
M569 P0 S1 ; Drive 0 goes forwards
M569 P1 S1 ; Drive 1 goes forwards
M569 P2 S0 ; Drive 2 goes forwards
M569 P3 S0 ; Drive 3 goes forwards
M569 P0.1.2 T1:2:0.25:1
M350 X16 Y16 Z16 E16 ; Configure microstepping with interpolation
M92 X26.666 Y26.666 Z89.91 E804.81 ; Set steps per mm
M566 X1500 Y1500 Z900 E1500 ; Set maximum instantaneous speed changes (mm/min)
M203 X6000 Y6000 Z2000 E2000 ; Set maximum speeds (mm/min)
M201 X800 Y800 Z500 E250 ; Set accelerations (mm/s^2)
M906 X800 Y800 Z800 E800 I30 ; Set motor currents (mA) and motor idle factor in per cent
M84 S30 ; Set idle timeoutthis is how it should be implemented right?
-
Try this instead:
M569 P0 S1 T1:2:0.25:1
M569 P1 S1 T1:2:0.25:1and so on for whichever you are using for the axis drives.
Also note that the duet diagram does specifically say not to use the test points for wiring external drivers. It may be a better idea to use the expansion header as detailed here: https://duet3d.dozuki.com/Wiki/Using_external_stepper_motor_drivers
-
This looks to be right for me then only xyz are servo ? and as for using test points the inputs to the servos are basically optoisolators so I had thought they are safe to go? besides this is one of my older stock boards so if it dies i will take the hit
; Drives
M569 P0 S1 T1:2:0.25:1
M569 P1 S1 T1:2:0.25:1
M569 P2 S0 T1:2:0.25:1
M569 P3 S0
M350 X16 Y16 Z16 E16 ; Configure microstepping with interpolation
M92 X26.666 Y26.666 Z89.91 E804.81 ; Set steps per mm
M566 X1500 Y1500 Z900 E1500 ; Set maximum instantaneous speed changes (mm/min)
M203 X6000 Y6000 Z2000 E2000 ; Set maximum speeds (mm/min)
M201 X800 Y800 Z500 E250 ; Set accelerations (mm/s^2)
M906 X800 Y800 Z800 E800 I30 ; Set motor currents (mA) and motor idle factor in per cent
M84 S30 ; Set idle timeout -
I can't speak to why the test points are not recommended for use on external drivers.
Go ahead and give it a shot see if it helps, certainly won't do worse than before. If it doesn't immediately help try increasing all the T values to 5.
But longer term you might want to look at using the expansion pins to connect. It's simple to do properly and all the axes remap very easily to the expansion header.
-
hmm still just as bad with prev settings i will try upping to 5 as you stated
-
so we may be getting somewhere.... so my bad i did not hit save for the original setting s you suggested but we steps per mm are now messed up no big deal recalibrated those (suppose this is what we want to see ?) only thing is the probe distance "Error: Z probe was not triggered during probing move" is all kaput and the homing distances have changed but if i command 100mm it moves 100mm in all 3 axis ? surely 100mm before is 100mm now ?
-
[link text]; Configuration file for Duet 0.8.5 (firmware version 1.20 or newer)
; executed by the firmware on start-up
;
; generated by RepRapFirmware Configuration Tool on Thu May 17 2018 19:23:49 GMT+0100 (BST); General preferences
G90 ; Send absolute coordinates...
M83 ; ...but relative extruder movesM667 S1 ; Select CoreXY mode
; Network
M550 PMy printer ; Set machine name
M552 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
; Drives
M569 P0 S1 T1:2:0.25:1
M569 P1 S1 T1:2:0.25:1
M569 P2 S0 T1:2:0.25:1
M569 P3 S0
M350 X16 Y16 Z16 E16 ; Configure microstepping with interpolation
M92 X28.366 Y28.366 Z93.82 E804.81 ; Set steps per mm
M566 X1500 Y1500 Z900 E1500 ; Set maximum instantaneous speed changes (mm/min)
M203 X6000 Y6000 Z2000 E2000 ; Set maximum speeds (mm/min)
M201 X800 Y800 Z500 E250 ; Set accelerations (mm/s^2)
M906 X800 Y800 Z800 E800 I30 ; Set motor currents (mA) and motor idle factor in per cent
M84 S30 ; Set idle timeout; Axis Limits
M208 X0 Y0 Z-5 S1 ; Set axis minima
M208 X462 Y500 Z560 S0 ; Set axis maxima; Endstops
M574 X2 Y2 S0 ; Set active high endstops; Z-Probe
M574 Z1 S2 ; Set endstops controlled by probe
M558 P5 H15 F220 T6000 I1 ; Set Z probe type to modulated and the dive height + speeds
G31 P600 X-20 Y-42 Z1.3 ; Set Z probe trigger value, offset and trigger height
M557 X15:447 Y15:485 S100 ; Define mesh grid; Heaters
M305 P0 T100000 B4138 C0 R4700 ; Set thermistor + ADC parameters for heater 0
M143 H0 S135 ; Set temperature limit for heater 0 to 135C
M305 P1 T100000 B4138 C0 R4700 X150 ; Set thermistor + ADC parameters for heater 1 and remap it to channel 100
M143 H1 S280 ; Set temperature limit for heater 1 to 280C; Fans
M106 P0 S0.3 I0 F500 H-1 ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off
M106 P1 S1 I0 F500 H1 T75 ; Set fan 1 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 S50 ; 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; Custom settings are not configured
; Miscellaneous
M501 ; Load saved parameters from non-volatile memory
T0 (link url) -
and i have adjusted the dive hight
-
just checked nozzle hight where it homes with the probe and the z height is spot on but the thing wong mesh level ! still says as above error but dimensionally, in theory, it's not changed? checked 100mm and it repeats spot on also ?
-
@thatbigprint said in consistent layer shift in both x/y using clear-path servos ?:
also, I am using the step/dir/en from the back of the board not the expansion header just soldered ribbon to this straight to the motors inputs
The test points are not suitable for driving external drivers, because the EN signal is actually the CS input to the on-board drivers.
-
@dc42 for the z i have skipped the enable and soldered into 5v so the z is always enabled i will probs do this to the rest in that case ?
-
Right chaps i have modded the servo enables so now they are all always fed from the 5v supply, and the prints appear to be coming out parallel now so getting there one thing I have noticed is that the model exterior is not so smooth is there a way I can up the resolution? its almost like it has a pattern on the outer surface.
-
@thatbigprint Please post a picture of the error you are seeing on the print.
With servo motors it may be possible to up the resolution depending on the encoder resolution of the motor and available configuration settings.
For example, my setup is like so.
My motors have 20,000 cpr encoders (input configured to 10,000 steps/rev in motor driver config)
I have fairly aggressive lead screws with a lead of 25mm (nut will move 25mm per complete turn of screw)
So I just divide (10,000steps/rev)/(25mm/rev) and it comes out to 400 steps/mm.
This gives me a theoretical resolution of 0.0025mm (assuming perfect mechanics and motor response)To contrast are running at 28 steps/mm which gives a max resolution of 0.04mm which is quite a bit lower. I expect your motors can do higher resolution than that but will need some configuration to achieve this.
Look in your motor config software or manual for the encoder resolution and how far it will move for each step pulse, this is likely called Input Resolution or Electronic Gearing or something similar. I think the Teknic ones come with 800cpr or 16,000cpr encoders depending on the model. You would do well to read the data sheet for your motors as it will have all this information specific to your model.
You may also need to tune the PID parameteres of your motor. A poorly tuned motor may have a slow response, oscillate around the setpoint, etc which can cause poor quality prints as well. Check the motor manual for how to do this or look on youtube, there are multiple PID tuning guides available.
Hope this helps, let me know if I can explain anything in more detail.
-
i made an attempt at using clearpaths (not on a duet, but with a mightyboard) and I was able to get it functional, but was never able to get rid of servo tuning related issues. I think the direction you should go (once you get layer shifting figured out) is to have a 2:1 reduction or greater off of the motor before your drive pulley. This should allow for sharper tuning.
-
@thatbigprint said in consistent layer shift in both x/y using clear-path servos ?:
@dc42 for the z i have skipped the enable and soldered into 5v so the z is always enabled i will probs do this to the rest in that case ?
When you upgrade to firmware 2.02 you will get warnings that the motors are disconnected.
-
@nhof apologies for the late reply i have sorted most of the surface finish issues (single wall with an 8mm nozzle and doing infill first) and as for motors mine are 800 count or the lesser model... and for tuning, I had locked down the opposite motor shaft and run the auto-tune feature they seem to be behaving z-axis is a tiny bit noisy but I can tune that in better later this weekend when I have uninterrupted time i think its duet to weight and the fact its belt drive through a jackshaft (totally unideal but easy/cheap for a super quick turn around) but in theory i can wack up the motor counts per rev and have it actually be more accurate ? i had initially thought this would just make the motors always hunt too much?
@timothyz i will be going to a planetary reduction gearbox on all axis although I'm apprehensive due to clearpaths odd choice of motor shaft? the jackshaft on z was a last min thing as a workaround seems to be doing ok so far for a printed pulley moving around 20mm of tooling plate
@dc42 will this be the case for the super early duet wifis ? as in ones without motor feedback? and if not will there be a firmware workaround ? or just don't upgrade?
-
Why don't you connect the servo drives as we instruct on the wiki page instead?
-
@dc42 apologies for late reply reason for doing this is because it looks cleaner in terms of cable management but if it is causing me aforementioned issues I will go to flat flex expansion header
so i am still having the issue where the bed for whatever reason is not remaining level ie goes through probing etc starts printing (you can see it adjusting z) suggesting its trying to work but one end for the print (600x600x20mm) the layer fades out completely and the other end the layer is fine ?
below are my current settings gone way higher on the t values to no avail?
Taa:bb:cc:dd (firmware 1.21 and later) Minimum driver step pulse width, step pulse interval, direction setup time and direction hold time, in microseconds
; Drives
M569 P0 S1 T10:5:1:1
M569 P1 S1 T10:5:1:1
M569 P2 S0 T10:5:1:1
M569 P3 S0
M350 X16 Y16 Z16 E16 ; Configure microstepping with interpolation
M92 X26.676 Y26.676 Z89.233 E804.81 ; Set steps per mm
M566 X1500 Y1500 Z900 E1500 ; Set maximum instantaneous speed changes (mm/min)
M203 X6000 Y6000 Z2000 E2000 ; Set maximum speeds (mm/min)
M201 X800 Y800 Z500 E250 ; Set accelerations (mm/s^2)
M906 X800 Y800 Z800 E800 I30 ; Set motor currents (mA) and motor idle factor in per cent
M84 S30 ; Set idle timeoutgetting pretty desperate now as work needed to go to another company to get 2 done at a huge cost to them
layer hight may also be inaccurate but not sure on that as the test cube i print appears to be over extruding but the actual extrusion is spot on ?
also, I have looked at ways of testing the repeatability of the bed probe but not much info for the duet i did try the.....
;prob testing single point.
G30 P0 X200 Y200 Z-99999 F2000
G30 P1 X200 Y200 Z-99999 F2000
G30 P2 X200 Y200 Z-99999 F2000method but it errors out at the end?