repetier / Repetier-Firmware

Firmware for Arduino based RepRap 3D printer.
815 stars 734 forks source link

one axis is slower than the others in delta printer #916

Open mj996 opened 4 years ago

mj996 commented 4 years ago

Hello everybody,I have a problem with my delta printer and I would be very grateful if you help me to solve it. I'm using Arduino due + RADDS with Repetier firmware. The problem started when the Z stepper motor only moved in one direction.I've tried loads of methods non of them helped me to solve that. I checked all of the endstops.They worked fine. I checked the stepper drivers ,all of them had the same voltage 0.7 v . and finally I found out that the problem was with the dir pin on the board So I decided to use E1 socket for Z axis stepper motor.I change it in my firmware and i plugged the stepper cable and the driver into E1.when I swapped the Z axis with E1,the Z carriage moved correctly up and down but the speed of that carriage is lower than the others now.so the things that I did :

repetier commented 4 years ago

Apparently the driver is using a different microstep setting. Check the MS1, MS2, MS3 pins on the socket if they mirror the switch settings. Maybe one of the switches is not 100% in position and still gives wrong signal. Just test voltage agains GND and compare it with Z socket. 5V over usb is enough for the test.

mj996 commented 4 years ago

Apparently the driver is using a different microstep setting. Check the MS1, MS2, MS3 pins on the socket if they mirror the switch settings. Maybe one of the switches is not 100% in position and still gives wrong signal. Just test voltage agains GND and compare it with Z socket. 5V over usb is enough for the test.

Thanks.You made my day.There's another thing now.When I home the printer and command to lower the Z for 10 mm The carriages move 80mm downward and this will just happen for the first command after homing. should I open another issue for it? I noticed that when I press home button in the Host my last Max z height number will appear but when the carriages hit the endstops my new Max Z height will appear in the Host.So when i command to lower the Z for 10mm it will lower the Z 10 mm from my last Max Z height number.I commanded M502 , M500 but nothing changed.

repetier commented 4 years ago

That is no bug I think. Check in host what you have set as z position for homing. My guess is that it is 70 less then what you really have. So it sends lower Z coordinates to printer and hence the move is longer then expected since firmware knows where it was. Here M502/M500 does not help since it is the host having wrong coordinates. It does not know correct homing position and does not read returned coordinates in all cases.

mj996 commented 4 years ago

That is no bug I think. Check in host what you have set as z position for homing. My guess is that it is 70 less then what you really have. So it sends lower Z coordinates to printer and hence the move is longer then expected since firmware knows where it was. Here M502/M500 does not help since it is the host having wrong coordinates. It does not know correct homing position and does not read returned coordinates in all cases.

Sorry for the delay.I checked that and you were right the Z home position was different in the host.Now I don't have that Homing problem but still when I press home button the Host (manual control part) shows number of Z 1mm less than what i set it to be. I checked the printer setting in the host the Z home position was ok.There's another thing in those settings called printable height. I set that 1 mm less than Z home position.Can this cause the problem? So when I command g1 z0 the distance between the nozzle and the bed is more than what I expected and if I home the printer again and command g1 z0 one more time the distance between the nozzle and the bed is different from last time.

Regards

repetier commented 4 years ago

Do you mean Print Area Height - that is a limit for positions in z direction. So that can be limiting it. On the other side as soon as you send explizit Z coodinate like G1 Z0 host takes that position same as firmware and firmware will do it correctly even if host had different value before. Host is just showing what it thinks you are at but relevant for moves is what firmware says.

mj996 commented 4 years ago

Do you mean Print Area Height - that is a limit for positions in z direction. So that can be limiting it. On the other side as soon as you send explizit Z coodinate like G1 Z0 host takes that position same as firmware and firmware will do it correctly even if host had different value before. Host is just showing what it thinks you are at but relevant for moves is what firmware says.

Yes I mean the Print area height or Printable height in the host .I can't understand why I get different distances from the bed( G1 Z0) each time I home the printer !! Another thing that seems unusual is the weird sound from Z stepper motor when I turn off the printer

repetier commented 4 years ago

Yes G1 Z0 should always move to same height at same xy position. If you had autoleveling active there are some ways to get different results if you home to z max which I think you do, right? When homing z max you need to move back from z endstop at the end so you can correct z over xy without hitting endstop - otherwise z would not adjust leading to wrong z. But sequence G28 G1 Z0 should always lead to exactly same position and height. If not the end stop is triggering at different positions or z moves loose steps (which you should be able to hear).

When you power off printer there is no power to make sound, so not sure what I should think about the weird sound problem. Also it would not start a move so why should it make any sounds.

mj996 commented 4 years ago

Yes G1 Z0 should always move to same height at same xy position. If you had autoleveling active there are some ways to get different results if you home to z max which I think you do, right? When homing z max you need to move back from z endstop at the end so you can correct z over xy without hitting endstop - otherwise z would not adjust leading to wrong z. But sequence G28 G1 Z0 should always lead to exactly same position and height. If not the end stop is triggering at different positions or z moves loose steps (which you should be able to hear).

When you power off printer there is no power to make sound, so not sure what I should think about the weird sound problem. Also it would not start a move so why should it make any sounds.

Yes I home to Z max.I set the Endstop distance after homing 5mm for all x,y,z axis in the firmware. I can hear some knock sounds from y stepper motor which I can sense it's vibration on the tower.So if we consider this as loosing steps here are things that I checked :

by the weird sound from steppers when powering it off I mean right at the moment I press power button on my printer I hear that (fisss) sound and I also can see some little movements on the belt of Z axes at that moment.

repetier commented 4 years ago

Loosing steps is normally a high pitched sound. Knocking sound is more if you go back a step due to being held by some force. Can also be overheating driver then you hear it going off and on.

Dispowering sounds like no error. When motors loose power the can not hold microstep position and that can be heard sometimes.

mj996 commented 4 years ago

Loosing steps is normally a high pitched sound. Knocking sound is more if you go back a step due to being held by some force. Can also be overheating driver then you hear it going off and on.

Dispowering sounds like no error. When motors loose power the can not hold microstep position and that can be heard sometimes.

The sound is like a car crossing some rumble stripes on the road . There's fan for cooling the stepper drivers so I don't think that's an overheating issue and I can't see any obvious backward movements in pulleys and carriages.

mj996 commented 4 years ago

Loosing steps is normally a high pitched sound. Knocking sound is more if you go back a step due to being held by some force. Can also be overheating driver then you hear it going off and on.

Dispowering sounds like no error. When motors loose power the can not hold microstep position and that can be heard sometimes.

what issues can cause the carriages to go back a step?If they are held by some force ,which force can cause this?belts? Are there any items to check to find the problem?

repetier commented 4 years ago

Normally only if you move behind physical possible position. Then you hit something. E.g. endstop reachend and move toward endstop without endstop check. But that is so loud you know that it is that.

mj996 commented 4 years ago

Normally only if you move behind physical possible position. Then you hit something. E.g. endstop reachend and move toward endstop without endstop check. But that is so loud you know that it is that.

ok I'm sure that the carriages don't hit anything (including endstop) .Can this happen because of the speed or acceleration? current travel speed : 300 mm/s I lowered the speed in firmware but the actual speed of printer didn't change ! (I changed EEPROM and Host setting to match the firmware too)

repetier commented 4 years ago

It can also be jerk too high - in that case you loose steps and with some luck it starts moving or it keeps staying. That is at start/end. Max speed is an issue mid move if you start loosing steps there.

mj996 commented 4 years ago

So here is what I observed.I lowered the speed by the command G1 Z0 F3000 and I didn't hear shock or knock sounds anymore!

repetier commented 4 years ago

50mm/s is not really fast for a delta. At which point do you hear the sound exactly? During full move/start/end? And why only Y axis. G28 G1 Z0 F6000

moves all axis equally so they should also sound all the same.

mj996 commented 4 years ago

50mm/s is not really fast for a delta. At which point do you hear the sound exactly? During full move/start/end? And why only Y axis. G28 G1 Z0 F6000

moves all axis equally so they should also sound all the same.

I can't say this exactly but I tried G28 G1 Z0 F6000 for 5 times and most of the times I hear the sound when the carriages are close to their endpoint (z=0) and when they are going up for homing I can hear another one at the middle of the way. And it's just for Y carriage.I don't know why !

Thanks for all these helps.I'm so glad for your support.

mj996 commented 4 years ago

Here is my log in the host :

15:20:51.066 : Info:Watchdog Reset 15:20:51.066 : Free RAM:80316 15:20:51.066 : Autoretract:0 15:20:51.066 : X:0.00 Y:0.00 Z:0.000 E:0.0000 15:20:51.066 : SelectExtruder:0 15:20:51.070 : Error:Format error 15:20:54.870 : Warning: Seems like we missed a ok, got a wait - continue sending. 15:20:54.874 : Error:expected line 1 got 11 15:20:54.875 : Resend:1 15:20:54.892 : FIRMWARE_NAME:Repetier_0.92.9 FIRMWARE_URL:https://github.com/repetier/Repetier-Firmware/ PROTOCOL_VERSION:1.0 MACHINE_TYPE:Delta EXTRUDER_COUNT:1 REPETIER_PROTOCOL:3 15:20:54.895 : Printed filament:0.59m Printing time:0 days 0 hours 12 min 15:20:54.895 : PrinterMode:FFF 15:20:54.899 : X:0.00 Y:0.00 Z:0.000 E:0.0000 15:20:54.899 : DebugLevel:6 15:20:54.900 : SelectExtruder:0 15:20:54.912 : Error:Wrong checksum 15:20:54.913 : Resend:11 15:20:54.918 : skip 12 15:20:54.918 : skip 13 15:20:54.918 : skip 14 15:20:54.918 : skip 15 15:20:54.925 : DebugLevel:6 15:20:54.928 : SelectExtruder:0 15:21:03.802 : SelectExtruder:0 15:21:03.802 : X:0.00 Y:0.00 Z:616.200 E:0.0000 15:21:37.077 : SelectExtruder:0 15:21:37.082 : X:0.00 Y:0.00 Z:616.200 E:0.0000 15:24:41.530 : Reduced visual quality for better framerates and to protect print quality. 15:24:41.530 : You can disable this in Config->Preferences->Basic Settings->Behaviour.

repetier commented 4 years ago

Any reason you start with such an old firmware version? 1.0.4dev is what I would start with. Or even V2 firmware (only available on github). Could really need a tester for new V2 on delta and delta code is working already also I still need to calibrate my delta. But that is the printer type benefitting most of new V2 system and it has already RADDS support. Only thing is no config tool - you need to write 2 config files instead, but with sample configs this is not that difficult if you have some programming background.

mj996 commented 4 years ago

Oh sorry we accidentally switched to that version on our last edit of settings in firmware.Now we're runnig 1.0.4 dev but our problem is still there. I changed the driver but the problem is still on Y axis and there's another problem now. When I home the printer all of the carriages start going up but Y carriage stops in the middle of the way !!

repetier commented 4 years ago

Please try using the E2 socket for Y axis. Maybe there is a bad contact also it sound quite repeatable where things happen. And switch X and Y stepper driver so it is new socket with working driver.

Was the Y speed different? If it has double microsteps it might not reach the top. Otherwise only reason to stop is the y axis gets triggered. That can also be a problem for normal moves if you have ALWAYS_CHECK_ENDSTOPS enabled. Please make sure it is disabled. Maybe it is just crosstalk from endstop blocking a short segment on y axis.

mj996 commented 4 years ago

Ok I swapped Y with E2 and now there's no sign of knocking or any other sounds anymore.So what's wrong with my Y socket?

PS : I also disabled ALWAYS_CHECK_ENDSTOPS in firmware and for now that problem is gone.

repetier commented 4 years ago

Great so it is hardware related. Either socket since swap helped or endstop related as you changed that as well. You can remove one of them if you want to know which one was real cause.

mj996 commented 4 years ago

Great so it is hardware related. Either socket since swap helped or endstop related as you changed that as well. You can remove one of them if you want to know which one was real cause.

I tested the always check endstops option and the problem was not that. It was with the Y socket.So does it mean that Y socket is defected? Can I use the Y socket anymore? And there is one more problem,When I command the printer to go to a specified coordinates (G1 X-140 Y-84 Z25), it will go there but after that the printer doesn't do any more commands ,no matter It's home command or other specified coordinates. and Sometimes when I disconnect the printer and connect it again and command G28,the printer first goes to the coordinates that I commanded last time(G1 X-140 Y-84 Z25) and after that it will go to home position!!

repetier commented 4 years ago

I tested the always check endstops option and the problem was not that. It was with the Y socket.So does it mean that Y socket is defected? Can I use the Y socket anymore? I would avoid it if possible. If you need the socket use it for extrusion - there it is not as bad as for motion to miss a few steps. It's strange from the repeatablility, but can't say why it makes a difference. As you see the algorithms are working correct. So maybe it has a bad soldering with connection to another pin causing the problems. Would explain repeatablity.

Regarding commands - check the host log with ack/commands enabled. That sounds like communication stack is broken and after reconnect it sends the missend motion.

mj996 commented 4 years ago

I tested the always check endstops option and the problem was not that. It was with the Y socket.So does it mean that Y socket is defected? Can I use the Y socket anymore? I would avoid it if possible. If you need the socket use it for extrusion - there it is not as bad as for motion to miss a few steps. It's strange from the repeatablility, but can't say why it makes a difference. As you see the algorithms are working correct. So maybe it has a bad soldering with connection to another pin causing the problems. Would explain repeatablity.

Regarding commands - check the host log with ack/commands enabled. That sounds like communication stack is broken and after reconnect it sends the missend motion.

The ack/commands was disabled so I enable it.Now we can say that the problem is almost gone but not completely. G1 X-140 Y-84 Z25 printer moves G1 X140 Y-84 Z25 printer moves G1 X0 Y84 Z25 printer moves Now we want to return to our start point So G1 X-140 Y-84 Z25 printer doesn't move and here is what we see in the log

12:28:00.577 : Error:B hit floor 12:28:00.593 : Warning:Invalid delta coordinate - move ignored x:-8885 y:-5128 z:2000 12:28:00.593 : Warning:in queueDeltaMove to calculateDeltaSubSegments returns error. 12:28:00.593 : Warning:executeGCode / queueDeltaMove returns error 12:28:01.562 : Reduced visual quality for better framerates and to protect print quality. 12:28:01.562 : You can disable this in Config->Preferences->Basic Settings->Behaviour. 12:28:01.578 : wait 12:28:01.640 : T:-22.05 /0 B:5.85 /0 B@:0 @:0 12:28:02.578 : wait

And When We command G1 X0 Y0 z25 , first the printer wants to go to (G1 X-140 Y-84 Z25) coordinates that we commanded last time and after that it wants to run current command(G1 X0 Y0 z25).

repetier commented 4 years ago

.. hit floor comes if one of the slider is closer then DELTA_FLOOR_SAFETY_MARGIN_MM to the floor. This sounds like you are going very close to the physical limits of the delta. Maybe even an area where you should not be. When one of the arms need to be nearly vertical that is a very bad position. Due to angle it needs to move much faster then the others and that can easily be too much. That is also where the sliders are closest to bottom.

mj996 commented 4 years ago

Ok I think we're in the hardest level of calibrating a delta which we should have the same distance from nozzle to bed in different spots of the bed.

So I started it by computing the appropriate Z height when we are at the center of the bed and Z=0 So the gap between the nozzle and the bed should be as the thickness of a paper (0.1mm with a bit dragging on the paper).I set it and till here everything was ok.

I understood that I have a concave surface because when I homed the printer and commanded (G1 X-140 Y-84 Z0) to move the nozzle toward X Tower ,the distance between the nozzle and the bed was about 60mm !! I think that's a huge error and something is wrong here because if I want to continue with these situation it means that I should lower my endstop too much.(~60 mm). I even tried that and I lowered the endstop but that was a mess because when I homed the printer,the effector was too much close to the edge.I don't know what's the problem?

( As far as I know the standard way of calibrating a delta is that we should have the correct Z height in the middle and then set the gap between the nozzle and the bed in different spots and after all of these when we come back to the center position we may face another distance from nozzle to bed ,from the one that we had first time and we finally should fix this by changing the DELTA SMOOTH ROD OFFSET which is MAX DELTA RADIOUS in repetier firmware.Did I miss something?)

repetier commented 4 years ago

Ok that explains a lot. The convex/concave motion when moving away from xy 0,0 means the ratio DELTA_DIAGONAL_ROD and PRINTER_RADIUS is way off. DELTA_DIAGONAL_ROD is distance of the rotation points connecting slider with carrier. PRINTER_RADIUS is the horzontal distance of these 2 points when carrier is at 0,0 and hence much smaller then DELTA_DIAGONAL_ROD. While it is easy to measure diagonal it is hard to exactly measure PRINTER_RADIUS but it should be possible within a few mm so you do not get 60mm error.

Use escher delta calibration with 6 factors to calibrate the delta parameter further.

mj996 commented 4 years ago

Ok that explains a lot. The convex/concave motion when moving away from xy 0,0 means the ratio DELTA_DIAGONAL_ROD and PRINTER_RADIUS is way off. DELTA_DIAGONAL_ROD is distance of the rotation points connecting slider with carrier. PRINTER_RADIUS is the horzontal distance of these 2 points when carrier is at 0,0 and hence much smaller then DELTA_DIAGONAL_ROD. While it is easy to measure diagonal it is hard to exactly measure PRINTER_RADIUS but it should be possible within a few mm so you do not get 60mm error.

Use escher delta calibration with 6 factors to calibrate the delta parameter further.

Thanks alot I'm working on it. Since this morning I receive ''no start signal detected '' in repetier host log and I think that's a common issue among the users cause I found so many issues with this title. and here are the things which I tried :

mj996 commented 4 years ago

The strange thing is that I connected to the printer so many times before this with current settings and I didn't change anything ,I don't know where did this problem come from !

mj996 commented 4 years ago

Ok here is an update :

repetier commented 4 years ago

Please try EEPROM_MODE 0 instead and see if it connects. When eeprom does not work it will block forever communication and firmware. Especially if you did not change anything eeprom is always a possible reason.

mj996 commented 4 years ago

Thanks a million . Now it works again. So does this mean that if I wanted to upload new settings later I should continue with EEPROM_MODE_0 ?

repetier commented 4 years ago

EEPROM_MODE 0 means you have no eeprom to store data. If you set it to a new value not used last time like 5 and it again does not work then eeprom or connections to eeprom are defect. Since you already had problems with one axis it looks like the radds is badly soldered or you have some other problems. I mean eeprom worked a few days ago and now it seems defect.

If you always have a sd card inserted you can modify in pins.h in radds section

define EEPROM_AVAILABLE EEPROM_SDCARD

then you use the sd card as eeprom replacement. Better then loosing all settings every reset.

mj996 commented 4 years ago

Ok I remeasured my parameters for calibrating and change them in firmware and put them in Escher calibration calculator and here they are : Steps/mm (for Repetier only): 80 Initial endstop corrections: 0 Initial diagonal rod length: 444 Initial delta radius: 202.76 Initial homed height: 618.84 Initial tower angular position corrections: X : 3 Y : 5 Z : 0 Printable bed radius: 170 Number of probe points: 7 Number of factors to calibrate:  6 Normalise endstop corrections? yes  

and I also measured the Z height errors at different suggested spots :

Point 0 | X:0 |   | Y:170 |   |   | Nozzle height error: 48 Point 1 | X:147.22 |   | Y:85 |   |   | Nozzle height error: 81.5 Point 2 | X:147.22 |   | Y:-85 |   |   | Nozzle height error: 52.5 Point 3 | X:0 |   | Y:-170 |   |   | Nozzle height error: 79 Point 4 | X:-147.22 |   | Y:-85 |   |   | Nozzle height error: 42.5 Point 5 | X:-147.22 |   | Y:85 |   |   | Nozzle height error: 72 Point 6 | X:0 |   | Y:0 |   |   | Nozzle height error: 0

and here are the results :

New endstop corrections: | X:85 |   | Y:0 |   | Z:392 |   New diagonal rod length: 444 New delta radius:87.55 New homed height:638.08   New tower position angle corrections: | X:9.12 |   | Y:8.41 |   | Z:0 |  

The thing that I don't undrstand is New endstop correction.Does this mean that I should move my endstops that much physically?For example should I move my Z endstop 391mm Upward?!

PS : I measured my DELTA_DIAGONAL_ROD and PRINTER_RADIUS as precise as I could.

repetier commented 4 years ago

As I said the delta radius was completely of and escher algortith sees it similar changin it from 202.76 to 87.55 so that is surely the main error.

Endstop corrections are parameter how many steps to go down after reaching end stop to center delta correctly. It is a eeprom parameter and in configuration.h I think it means these: /* To allow software correction of misaligned endstops, you can set the correction in steps here. If you have EEPROM enabled you can also change the values online and autoleveling will store the results here. /

define DELTA_X_ENDSTOP_OFFSET_STEPS 0

define DELTA_Y_ENDSTOP_OFFSET_STEPS 0

define DELTA_Z_ENDSTOP_OFFSET_STEPS 0

Once you have adjusted you should see big improvement but also should redo calibration. Next iteration will change a lot less and it should converge to a stable set of values.

mj996 commented 4 years ago

Ok,after 6 attempts in escher calibration calculator I got error message the second attempt had good results as I got about 30mm errors at corners.but the fact is that the PRINTER RADIOUS in that attempt was too close to the one that I measured myself.(about 190 mm).I believe that my real PRINTER RADIOUS is somthing between 200-202 mm.Further attempts had strange PRINTER RADIOUS (like 45.4mm , 12.5mm .etc !!).I sent some images to your technical-support Email address that show an estimation of my measurements.Maybe I'm making a mistake of measurments that I can't understand it.

mj996 commented 4 years ago

I was thinking that maybe I put measurements in wrong places .There are three parameters in the firmware as ROD RADIUS , PRINTER RADIUS and DELTA_MAX_RADIUS and there is one parameter in Repetier host called PRINTABLE RADIUS.I don't know which of them is the real DELTA RADIUS and what should I put in those two other parameters.

repetier commented 4 years ago

ROD_RADIUS is the real horizontal distance as you measured it. If not set explicitly it gets computed like this:

#define ROD_RADIUS \
    (PRINTER_RADIUS - END_EFFECTOR_HORIZONTAL_OFFSET - CARRIAGE_HORIZONTAL_OFFSET)
#endif

/* Max. radius (mm) the printer should be able to reach. /

define DELTA_MAX_RADIUS 200

That is the limits where firmware will refuse to move to, so this limits xy independent of what is physically reachable but should of course be less.

mj996 commented 4 years ago

ROD_RADIUS is the real horizontal distance as you measured it. If not set explicitly it gets computed like this:

#define ROD_RADIUS \
    (PRINTER_RADIUS - END_EFFECTOR_HORIZONTAL_OFFSET - CARRIAGE_HORIZONTAL_OFFSET)
#endif

/* Max. radius (mm) the printer should be able to reach. /

define DELTA_MAX_RADIUS 200

That is the limits where firmware will refuse to move to, so this limits xy independent of what is physically reachable but should of course be less.

ROD_RADIUS is the real horizontal distance as you measured it. If not set explicitly it gets computed like this:

#define ROD_RADIUS \
    (PRINTER_RADIUS - END_EFFECTOR_HORIZONTAL_OFFSET - CARRIAGE_HORIZONTAL_OFFSET)
#endif

/* Max. radius (mm) the printer should be able to reach. /

define DELTA_MAX_RADIUS 200

That is the limits where firmware will refuse to move to, so this limits xy independent of what is physically reachable but should of course be less.

Ok after several days I found the problem.DELTA FLOOR SAFETY MARGINE ! it was a high number that was preventing the carriages from moving downward to get to the correct coordinates. While I was cheering for finding the problem suddenly another problem came out from no where. I was checking the Vref of stepper drivers and I recognized that the LED on due board went off and the Vref of the drivers decreased from 0.7v to 0.18v . I couldn't turn on my arduino due board anymore.I tested several things (i.e Regulator ) but non of them worked. So I thought that my due board is no more alive.I bought another due,connected it to the printer,checked the settings and I changed my microstepping from 1/16 to 1/32 with dip switches and my steps per mm for all steppers from 80 to 200 in the firmware. I tested the G28 command but only my y axis started going up.I changed the X stepper wire with X and this time only X axis started going upward.next time I changed the X driver with Y and I saw that the Y axis is moving !! I'm afraid that the same problem would happen to my new board too and I burn another one. I couldn't figer out the problem So I would be very thankful if you help me to solve this.

repetier commented 4 years ago

Did you ever move the motors by hand? That causes back power and can destroy electronics if you move too fast. If you do not connect to usb do you have 5V and 3.3V on the pins where it should be? You can try and move Y stepper driver to X or Z and see if it works there. Or X and Z driver to Y, so not switching motors. Then you know the drivers are ok. But for electronic problems I'm the wrong person - only limited experience here.

mj996 commented 4 years ago

Did you ever move the motors by hand? That causes back power and can destroy electronics if you move too fast. If you do not connect to usb do you have 5V and 3.3V on the pins where it should be? You can try and move Y stepper driver to X or Z and see if it works there. Or X and Z driver to Y, so not switching motors. Then you know the drivers are ok. But for electronic problems I'm the wrong person - only limited experience here.

Yes I moved carriages but only when there was no power in electronics and the cables were totally out of sockets.

So I placed the Y driver on X socket and now the X stepper works fine and the Y stepper won’t move So should we conclude this as a defective driver on Y axis? Could it be a defect on Enable pin of driver?

I measured the voltage between EN and GND pins of all drivers and all of them were near to 5 volts.

repetier commented 4 years ago

If driver works on Y all pins required on Y and driver are ok. If same tested driver works on x axis also X pins are ok. If untested X driver on working Y place does not work the driver is defect and must be replaced. So says my logic.

mj996 commented 4 years ago

If driver works on Y all pins required on Y and driver are ok. If same tested driver works on x axis also X pins are ok. If untested X driver on working Y place does not work the driver is defect and must be replaced. So says my logic.

Ok the problem was with the driver or it's better to say with drivers !! I don't know how did I destroy 3 drivers !! Maybe at the times the nozzel hit the bed and I powered off the printer after some seconds.

Anyway,something seems weird here.When I switch micro stepping from 1/16 to 1/32 something goes wrong because at 1/32 microstepping ,When I command to lower the Z for 10mm all the sliders actually move 13mm.As far as I know this can be from a wrong Resolution number in firmware or Loosen belts and I checked them and everything seemed ok to me.I set Resolution at 200 and set the tension on belts(I also checked dip switches on Radds and set them to 1/32 correctly) but I still have that problem when I'm in 1/32 microstepping and if I set it back to 1/16(and of course the resolution to 80) everything become ok.

RAyWB commented 4 years ago

if your resolution is 80 steps/mm at 1/16 you have to set it to 160 at 1/32 as you just double steps. if you set to 200 you will get a move of 12.5mm instead of wanted 10mm

mj996 commented 4 years ago

if your resolution is 80 steps/mm at 1/16 you have to set it to 160 at 1/32 as you just double steps. if you set to 200 you will get a move of 12.5mm instead of wanted 10mm

Oh You were right that was my fault.Thank you so much for that.

mj996 commented 4 years ago

If driver works on Y all pins required on Y and driver are ok. If same tested driver works on x axis also X pins are ok. If untested X driver on working Y place does not work the driver is defect and must be replaced. So says my logic.

Ok I replaced new drivers and set the microstepping to 1/32. To continue the calibration I used escher calculator again .I tried the 7 factor mode several times but I couldn't get to zero error.So I tried 4 factor calibration and My best try was when I had -0.81 , 0.03 , 0.1 nozzle height error for Z,Y,X corners and -0.06 for the center.After this try I got worse errors each time.

So I decided to calibrate my delta manually step by step to find the problem :

  1. I lowered the nozzle at center point and corrected the Z_MAX_LENGTH to have a nice gap between the nozzle and the bed at the center of the bed .(I had a nice and smooth drag on the paper which I was crossing it under the nozzle)

  2. I lowered the nozzle at the X,Y,Z corners (the 3 probe points which escher offered).These points were higher than the center so I have a concave surface and I should fix these offsets by these parameters in firmware : DELTA_X_ENDSTOP_OFFSET_STEPS , DELTA_Y_ENDSTOP_OFFSET_STEPS , DELTA_X_ENDSTOP_OFFSET_STEPS .At the beginning I thought that each of these parameters will only effect its axis but I was wrong.if you change Each of these parameters it will affect the other axes too. anyway after several attempts I could get to a fair nozzle height at the corner points.

  3. I lowered the nozzle at the center of the bed again and It was obvious that the nozzle height was different from the first time I corrected it.( I have a concave bed so the nozzle was to high from the bed this time).So I had to fix this by changing the DELTA SMOOTH ROD OFFSET which in Repetier firmware this is the the ratio DELTA_DIAGONAL_ROD and PRINTER_RADIUS.

I'm sure about my DELTA_DIAGONAL_ROD cause I measured my Rods several times and they were all the same. So I have to change the PRINTER_RADIUS to get to the good result.As far as I know if you want to lower the nozzle you should increase the PRINTER_RADIUS and vise versa. So i increased the PRINTER_RADIUS for several times but that didn't do anything and I had the same nozzle height at the center. No matter how much I increase the PRINTER_RADIUS it doesn't do any thing

So that's my problem and if I make this solved I have to lower the nozzle at the corner points again and I guess I will face less nozzle height and I should fix that by changing the Z_MAX_LENGTH.

I would appreciate any help and if you see any mistakes in my calibration process please tell me.

PS : I have no EEPROM enabled because if I set that I will get the ''No start signal detected '' error at the host.

mj996 commented 4 years ago

Here is my config file ( movement and misc setting) :

// ################# XYZ movements ###################

define X_ENABLE_ON 0

define Y_ENABLE_ON 0

define Z_ENABLE_ON 0

define DISABLE_X 0

define DISABLE_Y 0

define DISABLE_Z 0

define DISABLE_E 0

define INVERT_X_DIR 0

define INVERT_X2_DIR 0

define INVERT_Y_DIR 0

define INVERT_Y2_DIR 0

define INVERT_Z_DIR 0

define INVERT_Z2_DIR 0

define INVERT_Z3_DIR 0

define INVERT_Z4_DIR 0

define X_HOME_DIR -1

define Y_HOME_DIR -1

define Z_HOME_DIR 1

define X_MAX_LENGTH 200

define Y_MAX_LENGTH 200

define Z_MAX_LENGTH 612

define X_MIN_POS 0

define Y_MIN_POS 0

define Z_MIN_POS 0

define PARK_POSITION_X 0

define PARK_POSITION_Y 0

define PARK_POSITION_Z_RAISE 10

define DISTORTION_CORRECTION 0

define DISTORTION_CORRECTION_POINTS 5

define DISTORTION_LIMIT_TO 2

define DISTORTION_CORRECTION_R 100

define DISTORTION_PERMANENT 1

define DISTORTION_UPDATE_FREQUENCY 15

define DISTORTION_START_DEGRADE 0.5

define DISTORTION_END_HEIGHT 1

define DISTORTION_EXTRAPOLATE_CORNERS 0

define DISTORTION_XMIN 10

define DISTORTION_YMIN 10

define DISTORTION_XMAX 190

define DISTORTION_YMAX 190

// ########################################################################################## // ## Movement settings ## // ##########################################################################################

define FEATURE_BABYSTEPPING 0

define BABYSTEP_MULTIPLICATOR 1

define DELTA_SEGMENTS_PER_SECOND_PRINT 180 // Move accurate setting for print moves

define DELTA_SEGMENTS_PER_SECOND_MOVE 70 // Less accurate setting for other moves

define EXACT_DELTA_MOVES 1

// Delta settings

define DELTA_DIAGONAL_ROD 444 // mm

define DELTA_ALPHA_A 213.55

define DELTA_ALPHA_B 335.57

define DELTA_ALPHA_C 90

define DELTA_RADIUS_CORRECTION_A 0

define DELTA_RADIUS_CORRECTION_B 0

define DELTA_RADIUS_CORRECTION_C 0

define DELTA_DIAGONAL_CORRECTION_A 0

define DELTA_DIAGONAL_CORRECTION_B 0

define DELTA_DIAGONAL_CORRECTION_C 0

define END_EFFECTOR_HORIZONTAL_OFFSET 0

define CARRIAGE_HORIZONTAL_OFFSET 0

define DELTA_MAX_RADIUS 170

define ROD_RADIUS 209

define PRINTER_RADIUS 209

define DELTA_HOME_ON_POWER 0

define STEP_COUNTER

define DELTA_X_ENDSTOP_OFFSET_STEPS 630

define DELTA_Y_ENDSTOP_OFFSET_STEPS 1905

define DELTA_Z_ENDSTOP_OFFSET_STEPS 0

define DELTA_FLOOR_SAFETY_MARGIN_MM 60

//#define SOFTWARE_LEVELING

define DELTASEGMENTS_PER_PRINTLINE 20

define STEPPER_INACTIVE_TIME 360L

define MAX_INACTIVE_TIME 0L

define MAX_FEEDRATE_X 150

define MAX_FEEDRATE_Y 150

define MAX_FEEDRATE_Z 150

define HOMING_FEEDRATE_X 100

define HOMING_FEEDRATE_Y 100

define HOMING_FEEDRATE_Z 100

define HOMING_ORDER HOME_ORDER_ZXY

define ZHOME_PRE_RAISE 0

define ZHOME_PRE_RAISE_DISTANCE 10

define RAISE_Z_ON_TOOLCHANGE 0

define ZHOME_MIN_TEMPERATURE 0

define ZHOME_HEAT_ALL 1

define ZHOME_HEAT_HEIGHT 20

define ZHOME_X_POS 999999

define ZHOME_Y_POS 999999

define ENABLE_BACKLASH_COMPENSATION 0

define X_BACKLASH 0

define Y_BACKLASH 0

define Z_BACKLASH 0

define RAMP_ACCELERATION 1

define STEPPER_HIGH_DELAY 1

define DIRECTION_DELAY 1

define STEP_DOUBLER_FREQUENCY 80000

define ALLOW_QUADSTEPPING 1

define DOUBLE_STEP_DELAY 1 // time in microseconds

define MAX_ACCELERATION_UNITS_PER_SQ_SECOND_X 1500

define MAX_ACCELERATION_UNITS_PER_SQ_SECOND_Y 1500

define MAX_ACCELERATION_UNITS_PER_SQ_SECOND_Z 1500

define MAX_TRAVEL_ACCELERATION_UNITS_PER_SQ_SECOND_X 1500

define MAX_TRAVEL_ACCELERATION_UNITS_PER_SQ_SECOND_Y 1500

define MAX_TRAVEL_ACCELERATION_UNITS_PER_SQ_SECOND_Z 1500

define INTERPOLATE_ACCELERATION_WITH_Z 0

define ACCELERATION_FACTOR_TOP 100

define MAX_JERK 5

define MAX_ZJERK 0.3

define PRINTLINE_CACHE_SIZE 16

define MOVE_CACHE_LOW 10

define LOW_TICKS_PER_MOVE 250000

define EXTRUDER_SWITCH_XY_SPEED 100

define DUAL_X_AXIS 0

define DUAL_X_RESOLUTION 0

define X2AXIS_STEPS_PER_MM 100

define FEATURE_TWO_XSTEPPER 0

define X2_STEP_PIN ORIG_E1_STEP_PIN

define X2_DIR_PIN ORIG_E1_DIR_PIN

define X2_ENABLE_PIN ORIG_E1_ENABLE_PIN

define FEATURE_TWO_YSTEPPER 0

define Y2_STEP_PIN ORIG_E1_STEP_PIN

define Y2_DIR_PIN ORIG_E1_DIR_PIN

define Y2_ENABLE_PIN ORIG_E1_ENABLE_PIN

define FEATURE_TWO_ZSTEPPER 0

define Z2_STEP_PIN ORIG_E0_STEP_PIN

define Z2_DIR_PIN ORIG_E0_DIR_PIN

define Z2_ENABLE_PIN ORIG_E0_ENABLE_PIN

define FEATURE_THREE_ZSTEPPER 0

define Z3_STEP_PIN ORIG_E2_STEP_PIN

define Z3_DIR_PIN ORIG_E2_DIR_PIN

define Z3_ENABLE_PIN ORIG_E2_ENABLE_PIN

define FEATURE_FOUR_ZSTEPPER 0

define Z4_STEP_PIN ORIG_E3_STEP_PIN

define Z4_DIR_PIN ORIG_E3_DIR_PIN

define Z4_ENABLE_PIN ORIG_E3_ENABLE_PIN

define FEATURE_DITTO_PRINTING 0

define USE_ADVANCE 0

define ENABLE_QUADRATIC_ADVANCE 0

// ################# Misc. settings ##################

define BAUDRATE 115200

define ENABLE_POWER_ON_STARTUP 1

define POWER_INVERTING 0

define AUTOMATIC_POWERUP 0

define KILL_METHOD 0

define ACK_WITH_LINENUMBER 1

define KEEP_ALIVE_INTERVAL 2000

define WAITING_IDENTIFIER "wait"

define ECHO_ON_EXECUTE 1

define EEPROM_MODE 0

undef PS_ON_PIN

define PS_ON_PIN -1

define STARTUP_GCODE "00"

define JSON_OUTPUT 1

repetier commented 4 years ago

Actually it is ROD_RADIUS that gets used for computation. In the original config it get scomputed by subtracting CARRIAGE_HORIZONTAL_OFFSET and END_EFFECTOR_HORIZONTAL_OFFSET from PRINTER_RADIUS but not in config tool.

You should use the 6 point escher solution which keeps diagonal length constant. It is bad to adjust this as well as then object size will get wrong. Main problem is that each modification changes height at all positions. But some are symmetric and some have more effect in one region. So angles have an effect in neighbouring areas while ROD_RADIUS is symmetric changing the dome effect middle vs. at the end.

For eeprom you can switch also to sd card solution. Only requires you have a sd card in the printer. We use that for boards without eeprom. In pins.h for that board set

define EEPROM_AVAILABLE EEPROM_SDCARD

to tell it to use sd card instead. Do NOT change it in configuration.h - will not work.