diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h
index d66b204d1768cdc91f05efc2a5b05737f22b09e6..134dff961ac4c9f755d43fa5d279cb6d4aad8807 100644
--- a/Marlin/Configuration.h
+++ b/Marlin/Configuration.h
@@ -15,15 +15,17 @@
//// Calibration variables
-// X, Y, Z, E steps per unit - Metric Prusa Mendel with V9 extruder:
-float axis_steps_per_unit[] = {40, 40, 3333.92,76.2};
+// X, Y, Z, E steps per unit - Metric Mendel / Orca with V9 extruder:
+float axis_steps_per_unit[] = {40, 40, 3333.92, 67};
+// For E steps per unit = 67 for v9 with direct drive (needs finetuning) for other extruders this needs to be changed
// Metric Prusa Mendel with Makergear geared stepper extruder:
//float axis_steps_per_unit[] = {80,80,3200/1.25,1380};
//// Endstop Settings
#define ENDSTOPPULLUPS // Comment this out (using // at the start of the line) to disable the endstop pullup resistors
// The pullups are needed if you directly connect a mechanical endswitch between the signal and ground pins.
-const bool ENDSTOPS_INVERTING = false; //set to true to invert the logic of the endstops
+const bool ENDSTOPS_INVERTING = false; // set to true to invert the logic of the endstops.
+// For optos H21LOB set to true, for Mendel-Parts newer optos TCST2103 set to false
// This determines the communication speed of the printer
#define BAUDRATE 250000
@@ -49,10 +51,10 @@ const bool ENDSTOPS_INVERTING = false; //set to true to invert the logic of the
#define DISABLE_E false
// Inverting axis direction
-#define INVERT_X_DIR false
-#define INVERT_Y_DIR true
-#define INVERT_Z_DIR false
-#define INVERT_E_DIR true
+#define INVERT_X_DIR true // for Mendel set to false, for Orca set to true
+#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_E_DIR true // for direct drive extruder v9 set to true, for geared extruder set to false
//// ENDSTOP SETTINGS:
// Sets direction of endstops when homing; 1=MAX, -1=MIN
@@ -68,8 +70,8 @@ const bool ENDSTOPS_INVERTING = false; //set to true to invert the logic of the
//// MOVEMENT SETTINGS
#define NUM_AXIS 4 // The axis order in all axis related arrays is X, Y, Z, E
-float max_feedrate[] = {60000, 60000, 170, 500000};
-float homing_feedrate[] = {1500,1500,120,0};
+float max_feedrate[] = {60000, 60000, 100, 500000}; // set the max speeds
+float homing_feedrate[] = {2400, 2400, 80, 0}; // set the homing speeds
bool axis_relative_modes[] = {false, false, false, false};
//// Acceleration settings
diff --git a/Marlin/Marlin.pde b/Marlin/Marlin.pde
index 24f72afe1297667f0af8c7351142bd8c02a8f7f3..d1a98565edf5a78315d0bae8837b49be4ac158ff 100644
--- a/Marlin/Marlin.pde
+++ b/Marlin/Marlin.pde
@@ -33,7 +33,7 @@
#include "Marlin.h"
#include "speed_lookuptable.h"
-char version_string[] = "0.9.2";
+char version_string[] = "0.9.3";
#ifdef SDSUPPORT
#include "SdFat.h"
@@ -947,7 +947,7 @@ inline void get_coordinates()
void prepare_move()
{
- plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate/60);
+ plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate/60.0);
for(int i=0; i < NUM_AXIS; i++) {
current_position[i] = destination[i];
}
@@ -1490,9 +1490,9 @@ void plan_buffer_line(float x, float y, float z, float e, float feed_rate) {
block->speed_x = delta_x_mm * multiplier;
block->speed_y = delta_y_mm * multiplier;
block->speed_e = delta_e_mm * multiplier;
-
block->nominal_speed = block->millimeters * multiplier;
block->nominal_rate = ceil(block->step_event_count * multiplier / 60);
+
if(block->nominal_rate < 120) block->nominal_rate = 120;
block->entry_speed = safe_speed(block);