Permalink
Browse files

Moved SLOWDOWN function. (jetty840)

Included AD595 calibration options. (daid)
  • Loading branch information...
1 parent 4fbda5c commit 018c567abf46ec683b404c841402d6096b775390 @ErikZalm ErikZalm committed Feb 26, 2012
Showing with 31 additions and 50 deletions.
  1. +19 −24 Marlin/Configuration.h
  2. +5 −0 Marlin/Configuration_adv.h
  3. +7 −6 Marlin/planner.cpp
  4. +0 −20 README.md
View
@@ -28,7 +28,7 @@
// Ultimaker = 7
// Teensylu = 8
// Gen3+ =9
-#define MOTHERBOARD 51
+#define MOTHERBOARD 7
//===========================================================================
//=============================Thermal Settings ============================
@@ -46,13 +46,13 @@
// 6 is EPCOS 100k
// 7 is 100k Honeywell thermistor 135-104LAG-J01
-#define TEMP_SENSOR_0 1
+#define TEMP_SENSOR_0 -1
#define TEMP_SENSOR_1 0
#define TEMP_SENSOR_2 0
-#define TEMP_SENSOR_BED 1
+#define TEMP_SENSOR_BED 0
// Actual temperature must be close to target for this long before M109 returns success
-#define TEMP_RESIDENCY_TIME 10 // 30 // (seconds) 30 seconds was too long
+#define TEMP_RESIDENCY_TIME 10 // (seconds)
#define TEMP_HYSTERESIS 3 // (degC) range of +/- temperatures considered "close" to the target one
// The minimal temperature defines the temperature below which the heater will not be enabled It is used
@@ -71,11 +71,6 @@
#define HEATER_2_MAXTEMP 275
#define BED_MAXTEMP 150
-//These defines help to calibrate the AD595 sensor in case you get wrong temperature measurements.
-//The measured temperature is defined as "actualTemp = (measuredTemp * TEMP_SENSOR_AD595_GAIN) + TEMP_SENSOR_AD595_OFFSET"
-#define TEMP_SENSOR_AD595_OFFSET 0.0
-#define TEMP_SENSOR_AD595_GAIN 1.0
-
// PID settings:
// Comment the following line to disable PID and enable bang-bang.
@@ -119,9 +114,9 @@
#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 X_ENDSTOPS_INVERTING = false; // set to true to invert the logic of the endstops.
-const bool Y_ENDSTOPS_INVERTING = false; // set to true to invert the logic of the endstops.
-const bool Z_ENDSTOPS_INVERTING = false; // set to true to invert the logic of the endstops.
+const bool X_ENDSTOPS_INVERTING = true; // set to true to invert the logic of the endstops.
+const bool Y_ENDSTOPS_INVERTING = true; // set to true to invert the logic of the endstops.
+const bool Z_ENDSTOPS_INVERTING = true; // set to true to invert the logic of the endstops.
// For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
#define X_ENABLE_ON 0
@@ -135,8 +130,8 @@ const bool Z_ENDSTOPS_INVERTING = false; // set to true to invert the logic of t
#define DISABLE_Z false
#define DISABLE_E false // For all extruders
-#define INVERT_X_DIR false // 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_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_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
@@ -148,11 +143,11 @@ const bool Z_ENDSTOPS_INVERTING = false; // set to true to invert the logic of t
#define Y_HOME_DIR -1
#define Z_HOME_DIR -1
-#define min_software_endstops false //If true, axis won't move to coordinates less than zero.
+#define min_software_endstops true //If true, axis won't move to coordinates less than HOME_POS.
#define max_software_endstops true //If true, axis won't move to coordinates greater than the defined lengths below.
-#define X_MAX_LENGTH 175
-#define Y_MAX_LENGTH 185
-#define Z_MAX_LENGTH 90
+#define X_MAX_LENGTH 205
+#define Y_MAX_LENGTH 205
+#define Z_MAX_LENGTH 200
// The position of the homing switches. Use MAX_LENGTH * -0.5 if the center should be 0, 0, 0
#define X_HOME_POS 0
@@ -161,16 +156,16 @@ const bool Z_ENDSTOPS_INVERTING = false; // set to true to invert the logic of t
//// MOVEMENT SETTINGS
#define NUM_AXIS 4 // The axis order in all axis related arrays is X, Y, Z, E
-#define HOMING_FEEDRATE {1500, 1500, 80, 0} // {50*60, 50*60, 4*60, 0} // set the homing speeds (mm/min)
+#define HOMING_FEEDRATE {50*60, 50*60, 4*60, 0} // set the homing speeds (mm/min)
// default settings
#define DEFAULT_AXIS_STEPS_PER_UNIT {78.7402,78.7402,200*8/3,760*1.1} // default steps per unit for ultimaker
#define DEFAULT_MAX_FEEDRATE {500, 500, 5, 45} // (mm/sec)
#define DEFAULT_MAX_ACCELERATION {9000,9000,100,10000} // X, Y, Z, E maximum start speed for accelerated moves. E default values are good for skeinforge 40+, for older versions raise them a lot.
-#define DEFAULT_ACCELERATION 1500 // 3000 // X, Y, Z and E max acceleration in mm/s^2 for printing moves
-#define DEFAULT_RETRACT_ACCELERATION 1500 // 3000 // X, Y, Z and E max acceleration in mm/s^2 for r retracts
+#define DEFAULT_ACCELERATION 3000 // X, Y, Z and E max acceleration in mm/s^2 for printing moves
+#define DEFAULT_RETRACT_ACCELERATION 3000 // X, Y, Z and E max acceleration in mm/s^2 for r retracts
//
#define DEFAULT_XYJERK 20.0 // (mm/sec)
@@ -186,14 +181,14 @@ const bool Z_ENDSTOPS_INVERTING = false; // set to true to invert the logic of t
// M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily).
// M502 - reverts to the default "factory settings". You still need to store them in EEPROM afterwards if you want to.
//define this to enable eeprom support
-#define EEPROM_SETTINGS
+//#define EEPROM_SETTINGS
//to disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
// please keep turned on if you can.
-#define EEPROM_CHITCHAT
+//#define EEPROM_CHITCHAT
//LCD and SD support
//#define ULTRA_LCD //general lcd support, also 16x2
-//#define SDSUPPORT // Enable SD Card Support in Hardware Console
+#define SDSUPPORT // Enable SD Card Support in Hardware Console
//#define ULTIPANEL
#ifdef ULTIPANEL
@@ -59,6 +59,11 @@
#define EXTRUDER_RUNOUT_SPEED 1500. //extrusion speed
#define EXTRUDER_RUNOUT_EXTRUDE 100
+//These defines help to calibrate the AD595 sensor in case you get wrong temperature measurements.
+//The measured temperature is defined as "actualTemp = (measuredTemp * TEMP_SENSOR_AD595_GAIN) + TEMP_SENSOR_AD595_OFFSET"
+#define TEMP_SENSOR_AD595_OFFSET 0.0
+#define TEMP_SENSOR_AD595_GAIN 1.0
+
//===========================================================================
//=============================Mechanical Settings===========================
//===========================================================================
View
@@ -529,6 +529,13 @@ void plan_buffer_line(float &x, float &y, float &z, float &e, float feed_rate, u
// Enable all
if(block->steps_e != 0) { enable_e0();enable_e1();enable_e2(); }
+
+ // slow down when de buffer starts to empty, rather than wait at the corner for a buffer refill
+ int moves_queued=(block_buffer_head-block_buffer_tail + BLOCK_BUFFER_SIZE) & (BLOCK_BUFFER_SIZE - 1);
+ #ifdef SLOWDOWN
+ if(moves_queued < (BLOCK_BUFFER_SIZE * 0.5) && moves_queued > 1) feed_rate = feed_rate*moves_queued / (BLOCK_BUFFER_SIZE * 0.5);
+ #endif
+
float delta_mm[4];
delta_mm[X_AXIS] = (target[X_AXIS]-position[X_AXIS])/axis_steps_per_unit[X_AXIS];
delta_mm[Y_AXIS] = (target[Y_AXIS]-position[Y_AXIS])/axis_steps_per_unit[Y_AXIS];
@@ -554,12 +561,6 @@ void plan_buffer_line(float &x, float &y, float &z, float &e, float feed_rate, u
if(feed_rate<minimumfeedrate) feed_rate=minimumfeedrate;
}
- // slow down when de buffer starts to empty, rather than wait at the corner for a buffer refill
- int moves_queued=(block_buffer_head-block_buffer_tail + BLOCK_BUFFER_SIZE) & (BLOCK_BUFFER_SIZE - 1);
-#ifdef SLOWDOWN
- if(moves_queued < (BLOCK_BUFFER_SIZE * 0.5) && moves_queued > 1) feed_rate = feed_rate*moves_queued / (BLOCK_BUFFER_SIZE * 0.5);
-#endif
-
/*
// segment time im micro seconds
long segment_time = lround(1000000.0/inverse_second);
View
@@ -1,23 +1,3 @@
-SCUBA82's fork:
------------------
-
-The main goal of my fork is porting the brilliant Marlin firmware to GEN7 Boards.
-I'm working on a 16MHz GEN7 board and have only tested with this configuration.
-But there were reports about successfully running it at 20 MHz. Expect 25% faster moves and maybe some other issues.
-
-Using lcd and sdcard support on an ATMega644(P) is not possible cause the sketch is way too big for its memory.
-I switched to an ATMega1284P which has double size program memory. Unfortunately it's not supported in Arduino IDE out of the box but expect a tutorial on how to compile for it soon.
-For the necessary pin breakouts I used Alfons3 design of GEN7 (https://github.com/Alfons3/Generation_7_Electronics) with an additional breakout for pin A0/D31.
-I'll publish my desing as soon as possible.
-
-You have to use different chip fuses to get Marlin running.
-The fuses I'm using are lfuse: 0xF7 hfuse: 0xD4 efuse: 0xFD
-
-For questions take a look into http://forums.reprap.org/read.php?181,118329 or send me an e-mail: christian_thalhammer@gmx.at
-
-
-Expect this fork to be highly experimental.
-
WARNING:
--------
THIS IS RELEASE CANDIDATE 1 FOR MARLIN 1.0.0

0 comments on commit 018c567

Please sign in to comment.