summaryrefslogtreecommitdiff
path: root/Sprinter/Configuration.h
diff options
context:
space:
mode:
Diffstat (limited to 'Sprinter/Configuration.h')
-rw-r--r--Sprinter/Configuration.h170
1 files changed, 170 insertions, 0 deletions
diff --git a/Sprinter/Configuration.h b/Sprinter/Configuration.h
new file mode 100644
index 0000000..54ea8ea
--- /dev/null
+++ b/Sprinter/Configuration.h
@@ -0,0 +1,170 @@
+#ifndef CONFIGURATION_H
+#define CONFIGURATION_H
+
+
+//BASIC SETTINGS: select your board type, thermistor type, axis scaling, and endstop configuration
+
+// The following define selects which electronics board you have. Please choose the one that matches your setup
+// MEGA/RAMPS up to 1.2 = 3,
+// RAMPS 1.3 = 63
+// Gen6 = 5,
+// Sanguinololu up to 1.1 = 6
+// Sanguinololu 1.2 and above = 62
+#define MOTHERBOARD 3
+
+//Thermistor settings:
+// 1 is 100k thermistor
+// 2 is 200k thermistor
+// 3 is mendel-parts thermistor
+#define THERMISTORHEATER 1
+#define THERMISTORBED 1
+
+
+//Calibration variables
+//X, Y, Z, E steps per unit - Metric Prusa Mendel with Wade extruder:
+float axis_steps_per_unit[] = {80, 80, 3200/1.25,700};
+//Metric Prusa Mendel with Makergear geared stepper extruder:
+//float axis_steps_per_unit[] = {80,80,3200/1.25,1380};
+
+
+////Endstop Settings
+#define ENDSTOPPULLUPS 1 // 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
+
+//This determines the communication speed of the printer
+#define BAUDRATE 115200
+
+//Comment out (using // at the start of the line) to disable SD support:
+#define SDSUPPORT 1
+
+
+
+
+
+//ADVANCED SETTINGS - to tweak parameters
+
+#include "thermistortables.h"
+
+//For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
+const bool X_ENABLE_ON = 0;
+const bool Y_ENABLE_ON = 0;
+const bool Z_ENABLE_ON = 0;
+const bool E_ENABLE_ON = 0;
+
+//Disables axis when it's not being used.
+const bool DISABLE_X = false;
+const bool DISABLE_Y = false;
+const bool DISABLE_Z = true;
+const bool DISABLE_E = false;
+
+const bool INVERT_X_DIR = false;
+const bool INVERT_Y_DIR = false;
+const bool INVERT_Z_DIR = true;
+const bool INVERT_E_DIR = false;
+
+//ENDSTOP SETTINGS:
+// Sets direction of endstops when homing; 1=MAX, -1=MIN
+const int X_HOME_DIR = -1;
+const int Y_HOME_DIR = -1;
+const int Z_HOME_DIR = -1;
+
+const bool min_software_endstops = false; //If true, axis won't move to coordinates less than zero.
+const bool max_software_endstops = true; //If true, axis won't move to coordinates greater than the defined lengths below.
+const int X_MAX_LENGTH = 200;
+const int Y_MAX_LENGTH = 200;
+const int Z_MAX_LENGTH = 100;
+
+
+//MOVEMENT SETTINGS
+const int NUM_AXIS = 4; // The axis order in all axis related arrays is X, Y, Z, E
+float max_feedrate[] = {200000, 200000, 240, 500000};
+bool axis_relative_modes[] = {false, false, false, false};
+
+
+//Min step delay in microseconds. If you are experiencing missing steps, try to raise the delay microseconds, but be aware this
+// If you enable this, make sure STEP_DELAY_RATIO is disabled.
+//#define STEP_DELAY_MICROS 1
+
+//Step delay over interval ratio. If you are still experiencing missing steps, try to uncomment the following line, but be aware this
+//If you enable this, make sure STEP_DELAY_MICROS is disabled.
+//#define STEP_DELAY_RATIO 0.25
+
+//Comment this to disable ramp acceleration
+#define RAMP_ACCELERATION 1
+
+//Acceleration settings
+#ifdef RAMP_ACCELERATION
+//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.
+float max_start_speed_units_per_second[] = {25.0,25.0,0.2,10.0};
+long max_acceleration_units_per_sq_second[] = {1000,1000,50,10000}; // X, Y, Z and E max acceleration in mm/s^2 for printing moves or retracts
+long max_travel_acceleration_units_per_sq_second[] = {500,500,50}; // X, Y, Z max acceleration in mm/s^2 for travel moves
+#endif
+
+// AD595 THERMOCOUPLE SUPPORT UNTESTED... USE WITH CAUTION!!!!
+
+//PID settings:
+//Uncomment the following line to enable PID support. This is untested and could be disastrous. Be careful.
+//#define PIDTEMP 1
+#ifdef PIDTEMP
+#define PID_MAX 255 // limits current to nozzle
+#define PID_INTEGRAL_DRIVE_MAX 220
+#define PID_PGAIN 180 //100 is 1.0
+#define PID_IGAIN 2 //100 is 1.0
+#define PID_DGAIN 100 //100 is 1.0
+#endif
+
+//How often should the heater check for new temp readings, in milliseconds
+#define HEATER_CHECK_INTERVAL 500
+#define BED_CHECK_INTERVAL 5000
+//Comment the following line to enable heat management during acceleration
+#define DISABLE_CHECK_DURING_ACC
+#ifndef DISABLE_CHECK_DURING_ACC
+ //Uncomment the following line to disable heat management during the move
+ //#define DISABLE_CHECK_DURING_MOVE
+#endif
+//Uncomment the following line to disable heat management during travel moves (and extruder-only moves, eg: retracts), strongly recommended if you are missing steps mid print.
+//Probably this should remain commented if are using PID.
+//It also defines the max milliseconds interval after which a travel move is not considered so for the sake of this feature.
+#define DISABLE_CHECK_DURING_TRAVEL 1000
+
+//Experimental temperature smoothing - only uncomment this if your temp readings are noisy
+//#define SMOOTHING 1
+//#define SMOOTHFACTOR 16 //best to use a power of two here - determines how many values are averaged together by the smoothing algorithm
+
+//Experimental watchdog and minimal temp
+//The watchdog waits for the watchperiod in milliseconds whenever an M104 or M109 increases the target temperature
+//If the temperature has not increased at the end of that period, the target temperature is set to zero. It can be reset with another M104/M109
+//#define WATCHPERIOD 5000 //5 seconds
+//The minimal temperature defines the temperature below which the heater will not be enabled
+#define MINTEMP 5
+
+//Experimental max temp
+//When temperature exceeds max temp, your bot will halt.
+//This feature exists to protect your hotend from overheating accidentally, but *NOT* from thermistor short/failure!
+//You should use MINTEMP for thermistor short/failure protection.
+#define MAXTEMP 275
+
+// Select one of these only to define how the nozzle temp is read.
+#define HEATER_USES_THERMISTOR
+//#define HEATER_USES_AD595
+//#define HEATER_USES_MAX6675
+
+// Select one of these only to define how the bed temp is read.
+#define BED_USES_THERMISTOR
+//#define BED_USES_AD595
+
+
+
+//Uncomment the following line to enable debugging. You can better control debugging below the following line
+//#define DEBUG
+#ifdef DEBUG
+ //#define DEBUG_PREPARE_MOVE //Enable this to debug prepare_move() function
+ //#define DEBUG_BRESENHAM //Enable this to debug the Bresenham algorithm
+ //#define DEBUG_RAMP_ACCELERATION //Enable this to debug all constant acceleration info
+ //#define DEBUG_MOVE_TIME //Enable this to time each move and print the result
+ //#define DEBUG_HEAT_MGMT //Enable this to debug heat management. WARNING, this will cause axes to jitter!
+ //#define DEBUG_DISABLE_CHECK_DURING_TRAVEL //Debug the namesake feature, see above in this file
+#endif
+
+#endif