Moved SLOWDOWN function. (jetty840)
Included AD595 calibration options. (daid)
This commit is contained in:
		| @@ -28,7 +28,7 @@ | |||||||
| // Ultimaker = 7 | // Ultimaker = 7 | ||||||
| // Teensylu = 8 | // Teensylu = 8 | ||||||
| // Gen3+ =9 | // Gen3+ =9 | ||||||
| #define MOTHERBOARD 51 | #define MOTHERBOARD 7 | ||||||
|  |  | ||||||
| //=========================================================================== | //=========================================================================== | ||||||
| //=============================Thermal Settings  ============================ | //=============================Thermal Settings  ============================ | ||||||
| @@ -46,13 +46,13 @@ | |||||||
| // 6 is EPCOS 100k | // 6 is EPCOS 100k | ||||||
| // 7 is 100k Honeywell thermistor 135-104LAG-J01 | // 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_1 0 | ||||||
| #define TEMP_SENSOR_2 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 | // 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 | #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 | // 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 HEATER_2_MAXTEMP 275 | ||||||
| #define BED_MAXTEMP 150 | #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: | // PID settings: | ||||||
| // Comment the following line to disable PID and enable bang-bang. | // 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 | #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. | // 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 X_ENDSTOPS_INVERTING = true; // 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 Y_ENDSTOPS_INVERTING = true; // 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 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 | // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1 | ||||||
| #define X_ENABLE_ON 0 | #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_Z false | ||||||
| #define DISABLE_E false // For all extruders | #define DISABLE_E false // For all extruders | ||||||
|  |  | ||||||
| #define INVERT_X_DIR false    // 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 | ||||||
| @@ -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 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 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 max_software_endstops true  //If true, axis won't move to coordinates greater than the defined lengths below. | ||||||
| #define X_MAX_LENGTH 175 | #define X_MAX_LENGTH 205 | ||||||
| #define Y_MAX_LENGTH 185 | #define Y_MAX_LENGTH 205 | ||||||
| #define Z_MAX_LENGTH 90 | #define Z_MAX_LENGTH 200 | ||||||
|  |  | ||||||
| // The position of the homing switches. Use MAX_LENGTH * -0.5 if the center should be 0, 0, 0 | // The position of the homing switches. Use MAX_LENGTH * -0.5 if the center should be 0, 0, 0 | ||||||
| #define X_HOME_POS 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 | //// MOVEMENT SETTINGS | ||||||
| #define NUM_AXIS 4 // The axis order in all axis related arrays is X, Y, Z, E | #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  | // 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_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_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_ACCELERATION          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_RETRACT_ACCELERATION  3000   // X, Y, Z and E max acceleration in mm/s^2 for r retracts | ||||||
|  |  | ||||||
| //  | //  | ||||||
| #define DEFAULT_XYJERK                20.0    // (mm/sec) | #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).   | // 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. | // 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 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: | //to disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out: | ||||||
| // please keep turned on if you can. | // please keep turned on if you can. | ||||||
| #define EEPROM_CHITCHAT | //#define EEPROM_CHITCHAT | ||||||
|  |  | ||||||
| //LCD and SD support | //LCD and SD support | ||||||
| //#define ULTRA_LCD  //general lcd support, also 16x2 | //#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 | //#define ULTIPANEL | ||||||
| #ifdef ULTIPANEL | #ifdef ULTIPANEL | ||||||
|   | |||||||
| @@ -59,6 +59,11 @@ | |||||||
| #define EXTRUDER_RUNOUT_SPEED 1500.  //extrusion speed | #define EXTRUDER_RUNOUT_SPEED 1500.  //extrusion speed | ||||||
| #define EXTRUDER_RUNOUT_EXTRUDE 100 | #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=========================== | //=============================Mechanical Settings=========================== | ||||||
| //=========================================================================== | //=========================================================================== | ||||||
|   | |||||||
| @@ -529,6 +529,13 @@ void plan_buffer_line(float &x, float &y, float &z, float &e, float feed_rate, u | |||||||
|   // Enable all |   // Enable all | ||||||
|   if(block->steps_e != 0) { enable_e0();enable_e1();enable_e2(); } |   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]; |   float delta_mm[4]; | ||||||
|   delta_mm[X_AXIS] = (target[X_AXIS]-position[X_AXIS])/axis_steps_per_unit[X_AXIS]; |   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]; |   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; |     	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 |   //  segment time im micro seconds | ||||||
|   long segment_time = lround(1000000.0/inverse_second); |   long segment_time = lround(1000000.0/inverse_second); | ||||||
|   | |||||||
							
								
								
									
										20
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								README.md
									
									
									
									
									
								
							| @@ -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:  | WARNING:  | ||||||
| -------- | -------- | ||||||
| THIS IS RELEASE CANDIDATE 1 FOR MARLIN 1.0.0 | THIS IS RELEASE CANDIDATE 1 FOR MARLIN 1.0.0 | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user