Moved SLOWDOWN function. (jetty840)
Included AD595 calibration options. (daid)
This commit is contained in:
		| @@ -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,7 +156,7 @@ 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  | ||||
|  | ||||
| @@ -169,8 +164,8 @@ const bool Z_ENDSTOPS_INVERTING = false; // set to true to invert the logic of t | ||||
| #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=========================== | ||||
| //=========================================================================== | ||||
|   | ||||
| @@ -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); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user