Added CoreXY support (Thanks Ilan Moyer)
This commit is contained in:
parent
aa65fe22ed
commit
ea2c19f978
3 changed files with 16 additions and 14 deletions
|
@ -35,9 +35,7 @@
|
||||||
#define MOTHERBOARD 7
|
#define MOTHERBOARD 7
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/// Comment out the following line to enable normal kinematics
|
|
||||||
|
|
||||||
#define COREXY
|
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
//=============================Thermal Settings ============================
|
//=============================Thermal Settings ============================
|
||||||
|
@ -131,6 +129,9 @@
|
||||||
//=============================Mechanical Settings===========================
|
//=============================Mechanical Settings===========================
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
|
|
||||||
|
// Uncomment the following line to enable CoreXY kinematics
|
||||||
|
// #define COREXY
|
||||||
|
|
||||||
// corse Endstop Settings
|
// corse Endstop Settings
|
||||||
#define ENDSTOPPULLUPS // Comment this out (using // at the start of the line) to disable the endstop pullup resistors
|
#define ENDSTOPPULLUPS // Comment this out (using // at the start of the line) to disable the endstop pullup resistors
|
||||||
|
|
||||||
|
@ -172,7 +173,7 @@ const bool Z_ENDSTOPS_INVERTING = true; // set to true to invert the logic of th
|
||||||
#define DISABLE_E false // For all extruders
|
#define DISABLE_E false // For all extruders
|
||||||
|
|
||||||
#define INVERT_X_DIR true // for Mendel set to false, for Orca set to true
|
#define INVERT_X_DIR true // for Mendel set to false, for Orca set to true
|
||||||
#define INVERT_Y_DIR true // for Mendel set to true, for Orca set to false
|
#define INVERT_Y_DIR false // for Mendel set to true, for Orca set to false
|
||||||
#define INVERT_Z_DIR true // for Mendel set to false, for Orca set to true
|
#define INVERT_Z_DIR true // for Mendel set to false, for Orca set to true
|
||||||
#define INVERT_E0_DIR false // for direct drive extruder v9 set to true, for geared extruder set to false
|
#define INVERT_E0_DIR false // for direct drive extruder v9 set to true, for geared extruder set to false
|
||||||
#define INVERT_E1_DIR false // for direct drive extruder v9 set to true, for geared extruder set to false
|
#define INVERT_E1_DIR false // for direct drive extruder v9 set to true, for geared extruder set to false
|
||||||
|
@ -184,8 +185,8 @@ const bool Z_ENDSTOPS_INVERTING = true; // set to true to invert the logic of th
|
||||||
#define Y_HOME_DIR -1
|
#define Y_HOME_DIR -1
|
||||||
#define Z_HOME_DIR -1
|
#define Z_HOME_DIR -1
|
||||||
|
|
||||||
#define min_software_endstops false //If true, axis won't move to coordinates less than HOME_POS.
|
#define min_software_endstops true //If true, axis won't move to coordinates less than HOME_POS.
|
||||||
#define max_software_endstops false //If true, axis won't move to coordinates greater than the defined lengths below.
|
#define max_software_endstops true //If true, axis won't move to coordinates greater than the defined lengths below.
|
||||||
#define X_MAX_LENGTH 205
|
#define X_MAX_LENGTH 205
|
||||||
#define Y_MAX_LENGTH 205
|
#define Y_MAX_LENGTH 205
|
||||||
#define Z_MAX_LENGTH 200
|
#define Z_MAX_LENGTH 200
|
||||||
|
|
|
@ -488,16 +488,16 @@ ISR(TIMER1_COMPA_vect)
|
||||||
if (counter_x > 0) {
|
if (counter_x > 0) {
|
||||||
WRITE(X_STEP_PIN, HIGH);
|
WRITE(X_STEP_PIN, HIGH);
|
||||||
counter_x -= current_block->step_event_count;
|
counter_x -= current_block->step_event_count;
|
||||||
WRITE(X_STEP_PIN, LOW);
|
|
||||||
count_position[X_AXIS]+=count_direction[X_AXIS];
|
count_position[X_AXIS]+=count_direction[X_AXIS];
|
||||||
|
WRITE(X_STEP_PIN, LOW);
|
||||||
}
|
}
|
||||||
|
|
||||||
counter_y += current_block->steps_y;
|
counter_y += current_block->steps_y;
|
||||||
if (counter_y > 0) {
|
if (counter_y > 0) {
|
||||||
WRITE(Y_STEP_PIN, HIGH);
|
WRITE(Y_STEP_PIN, HIGH);
|
||||||
|
counter_y -= current_block->step_event_count;
|
||||||
|
count_position[Y_AXIS]+=count_direction[Y_AXIS];
|
||||||
WRITE(Y_STEP_PIN, LOW);
|
WRITE(Y_STEP_PIN, LOW);
|
||||||
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -509,18 +509,18 @@ ISR(TIMER1_COMPA_vect)
|
||||||
WRITE(X_STEP_PIN, HIGH);
|
WRITE(X_STEP_PIN, HIGH);
|
||||||
WRITE(Y_STEP_PIN, HIGH);
|
WRITE(Y_STEP_PIN, HIGH);
|
||||||
counter_x -= current_block->step_event_count;
|
counter_x -= current_block->step_event_count;
|
||||||
|
count_position[X_AXIS]+=count_direction[X_AXIS];
|
||||||
WRITE(X_STEP_PIN, LOW);
|
WRITE(X_STEP_PIN, LOW);
|
||||||
WRITE(Y_STEP_PIN, LOW);
|
WRITE(Y_STEP_PIN, LOW);
|
||||||
count_position[X_AXIS]+=count_direction[X_AXIS];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(counter_x > 0)&&(counter_y>0)){ //Y step only
|
if (!(counter_x > 0)&&(counter_y>0)){ //Y step only
|
||||||
WRITE(X_STEP_PIN, HIGH);
|
WRITE(X_STEP_PIN, HIGH);
|
||||||
WRITE(Y_STEP_PIN, HIGH);
|
WRITE(Y_STEP_PIN, HIGH);
|
||||||
counter_y -= current_block->step_event_count;
|
counter_y -= current_block->step_event_count;
|
||||||
|
count_position[Y_AXIS]+=count_direction[Y_AXIS];
|
||||||
WRITE(X_STEP_PIN, LOW);
|
WRITE(X_STEP_PIN, LOW);
|
||||||
WRITE(Y_STEP_PIN, LOW);
|
WRITE(Y_STEP_PIN, LOW);
|
||||||
count_position[Y_AXIS]+=count_direction[Y_AXIS];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((counter_x > 0)&&(counter_y>0)){ //step in both axes
|
if ((counter_x > 0)&&(counter_y>0)){ //step in both axes
|
||||||
|
@ -553,8 +553,8 @@ ISR(TIMER1_COMPA_vect)
|
||||||
if (counter_z > 0) {
|
if (counter_z > 0) {
|
||||||
WRITE(Z_STEP_PIN, HIGH);
|
WRITE(Z_STEP_PIN, HIGH);
|
||||||
counter_z -= current_block->step_event_count;
|
counter_z -= current_block->step_event_count;
|
||||||
WRITE(Z_STEP_PIN, LOW);
|
|
||||||
count_position[Z_AXIS]+=count_direction[Z_AXIS];
|
count_position[Z_AXIS]+=count_direction[Z_AXIS];
|
||||||
|
WRITE(Z_STEP_PIN, LOW);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef ADVANCE
|
#ifndef ADVANCE
|
||||||
|
@ -562,8 +562,8 @@ ISR(TIMER1_COMPA_vect)
|
||||||
if (counter_e > 0) {
|
if (counter_e > 0) {
|
||||||
WRITE_E_STEP(HIGH);
|
WRITE_E_STEP(HIGH);
|
||||||
counter_e -= current_block->step_event_count;
|
counter_e -= current_block->step_event_count;
|
||||||
WRITE_E_STEP(LOW);
|
|
||||||
count_position[E_AXIS]+=count_direction[E_AXIS];
|
count_position[E_AXIS]+=count_direction[E_AXIS];
|
||||||
|
WRITE_E_STEP(LOW);
|
||||||
}
|
}
|
||||||
#endif //!ADVANCE
|
#endif //!ADVANCE
|
||||||
step_events_completed += 1;
|
step_events_completed += 1;
|
||||||
|
|
|
@ -44,6 +44,7 @@ Features:
|
||||||
* Updated sdcardlib
|
* Updated sdcardlib
|
||||||
* Heater power reporting. Useful for PID monitoring.
|
* Heater power reporting. Useful for PID monitoring.
|
||||||
* PID tuning
|
* PID tuning
|
||||||
|
* CoreXY kinematics (www.corexy.com/theory.html)
|
||||||
|
|
||||||
The default baudrate is 250000. This baudrate has less jitter and hence errors than the usual 115200 baud, but is less supported by drivers and host-environments.
|
The default baudrate is 250000. This baudrate has less jitter and hence errors than the usual 115200 baud, but is less supported by drivers and host-environments.
|
||||||
|
|
||||||
|
|
Reference in a new issue