Now i use both pistons.
I changed the markforged kinematics to coreXY, using "HyperCube Evolution"
I only changed Step_X() and Step_Y. My CoreXY has the same behaviour as your markforged kinematics.
Code: Select all
void Step_X()
{
if (X_enabled == 1)
{
digitalWrite(X_motor_step, 1);
digitalWrite(X_motor_step, 0);
boolean tmpY_dir = Y_dir;
Set_Y_direction(X_dir); // CoreXY -> both axis need to move for straight X movement
digitalWrite(Y_motor_step, 1);
digitalWrite(Y_motor_step, 0);
Set_Y_direction(tmpY_dir);
if (GHomed == 1)
{
if (X_dir == 1)
{
X_step_pos++;
}
else if (X_dir == 0)
{
X_step_pos--;
}
}
}
}
void Step_Y()
{
if (Y_enabled == 1)
{
digitalWrite(Y_motor_step, 1);
digitalWrite(Y_motor_step, 0);
digitalWrite(Y_motor_step, 1); // CoreXY-> if only one axis move, diagonal movement, multiply by 2 to get same distance as in markforged-kinematics
digitalWrite(Y_motor_step, 0);
if (GHomed == 1)
{
if (Y_dir == 1)
{
Y_step_pos++;
X_step_pos++;
}
else if (Y_dir == 0)
{
Y_step_pos--;
X_step_pos--;
}
}
}
}
It looks like, that the printer is loosing the position when entering "void New_layer(int NL_X_target, int NL_Y_target, int layer_thickness)".
Homing works, but when new layer the gantry tries to move behind the endstops.
Am i right: G1 Y65.12 Z0.10 D1 -> this line triggers "New_layer(<NL_X_target>, 65.12, 0.10)"?