Home all: X/Y axis is driving against endstop

If i start to home the axis by pressing home all, it first seems to work correctly. If the z axis starts to home, the last axis which was homed is driving slowly (z axis speed?) against the already triggered endstop. After the z axis is homed, y is driving to the correct position. I had the homing order xyz. I suspected a crosstalk between the wires so i separated them but the problem still existed. I changed the homing order to yxz. Now the x axis was driving against the triggered endstop. I thought i had a wrong configuration but i didnt found an option to solve this problem so maybe its a bug. If i try to home every axis separetly it seems to work correctly (at least i think so). The prints are looking great so i dont think the printing process is affected. 

My configuration:
Repetier fw 1.0.3
Arduino due with Ramps configured as Smart Ramps
Microswitches as endstops for x and y

Comments

  • Yes, homing and printing are independent. If you have good position set print will work.

    Homing order is just calling the 3 homings which work in the order
    #if HOMING_ORDER == HOME_ORDER_XYZ
    if (xaxis)
    homeXAxis();
    if (yaxis)
    homeYAxis();
    if (zaxis)
    homeZAxis();
    #elif HOMING_ORDER == HOME_ORDER_XZY
    if (xaxis)
    homeXAxis();
    if (zaxis)
    homeZAxis();
    if (yaxis)
    homeYAxis();

    I admit I got a bit confused when the wrong move happens. Would you say all moves first finish correctly and then you get an extra move ignoring end stop? I ask because if you look into void Printer::homeAxis(bool xaxis, bool yaxis, bool zaxis) for cartesian printers you see there are many possible conditions where at the end a new position is targeted for. So my guess is that one of those is causing the extra move.
  • No the error is not because of an extra move at the end. With homing order xyz, the x and y homing is working correctly and if the z axis starts the homing, the y and the z axis are driving "synchronous" until the y axis loses steps because there is no more room to move. The same with homing order yxz except x is driving synchronous with z. After this procedure the failing axis gets to the correct position like it knows that there was a not allowed moving.
     Its realy confusing. I also changed the y stepperdriver and the position of it to the Extruder 1 slot to exclude hardware errors but no change. 
    The more confusing point but not confirmed: I started home all at a high z position and there was no error (not confirmed because im not realy sure if it was home all or i homed every axis separetly.

    Today i found the parameter "#define min_software_endstop_x/y/z" (which is not represented in the online configurator?) in the configuration.h which should prevent moving below 0 coordinate but i cant check it now if its true in the used file. Do you think this could be the solution?
  • Also look at the setting  'ENDSTOP_(X|Y|Z)_BACK_ON_HOME'  make sure x and y are set to 1 so that the endstops are not still triggered after they have homed
  • These are the default values right? I think i didnt change them but i will check it. Correct me if im wrong but the axis shouldnt move if the endstops are already triggered?
    The next option i already considered and wanted to try is to set a big enough value for these parameters to avoid the collision. But if its really a bug then its a workaround and not the solution. 
    Today or tomorrow I will try some other settings.

  • Problem solved thank you... ENDSTOP_(X|Y|Z)_BACK_ON_HOME for x and y was set to 1mm. I changed it to 2mm and there is no collision but if z is homing, y also drives against the endstop until it triggers. I dont know if it is supposed to work like that but ok. Its working.
    I have another problem now. If distortion correction is activated, the xy endstops are ignored. If disabled everything works correctly.
  • Sorry for bothering you guys. Its not really a problem. I will activate and deactivate it in the starting script, so its ok.
  • XY end stops are not always tested. Especially during print you might want them disabled to prevent wrong triggering that will ruin the print.

    // You can disable endstop checking for print moves. This is needed, if you get sometimes
    // false signals from your endstops. If your endstops don't give false signals, you
    // can set it on for safety.
    #define ALWAYS_CHECK_ENDSTOPS 1

    There is no dependency distortion correction - end stop testing.

    From your description I take that y axis is moved much slower then z axis, also z axis has more steps, correct? I mean if 2mm back move are sufficient it can't be much. Of course it should be zero steps during z move. But it can in deed move a bit when autoleveling is enabled depending on the rotation of bed. But not on the testing move as they are axis only. Only when positioning afterwards. So still a strange issue.
Sign In or Register to comment.