diff options
Diffstat (limited to 'Tonokip_Firmware/configuration.h')
-rw-r--r-- | Tonokip_Firmware/configuration.h | 38 |
1 files changed, 26 insertions, 12 deletions
diff --git a/Tonokip_Firmware/configuration.h b/Tonokip_Firmware/configuration.h index a658412..2643338 100644 --- a/Tonokip_Firmware/configuration.h +++ b/Tonokip_Firmware/configuration.h @@ -10,7 +10,7 @@ //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 +//#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. @@ -19,14 +19,17 @@ //Comment this to disable ramp acceleration #define RAMP_ACCELERATION 1 -//Uncomment this to enable exponential acceleration +//Uncomment this to enable exponential acceleration. WARNING!! This is not supported in the current version, and will be fixed before +// merging it to the stable branch. +// TODO: fix exp acceleration to correctly perform N bresenham. //#define EXP_ACCELERATION 1 //Acceleration settings #ifdef RAMP_ACCELERATION -float min_units_per_second = 35.0; // the minimum feedrate -long max_acceleration_units_per_sq_second = 750; // Max acceleration in mm/s^2 for printing moves -long max_travel_acceleration_units_per_sq_second = 1500; // Max acceleration in mm/s^2 for travel moves +//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[] = {35.0,35.0,0.2,10.0}; +long max_acceleration_units_per_sq_second[] = {750,750,50,4000}; // X, Y, Z and E max acceleration in mm/s^2 for printing moves or retracts +long max_travel_acceleration_units_per_sq_second[] = {1500,1500,50}; // X, Y, Z max acceleration in mm/s^2 for travel moves #endif #ifdef EXP_ACCELERATION float full_velocity_units = 10; // the units between minimum and G1 move feedrate @@ -53,6 +56,12 @@ float min_constant_speed_units = 2; // the minimum units of an accelerated move //How often should the heater check for new temp readings, in milliseconds #define HEATER_CHECK_INTERVAL 50 #define BED_CHECK_INTERVAL 5000 +//Uncomment the following line to disable 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 //Experimental temperature smoothing - only uncomment this if your temp readings are noisy //#define SMOOTHING 1 @@ -86,12 +95,10 @@ float min_constant_speed_units = 2; // the minimum units of an accelerated move // units are in millimeters or whatever length unit you prefer: inches,football-fields,parsecs etc //Calibration variables -float x_steps_per_unit = 80.376; -float y_steps_per_unit = 80.376; -float z_steps_per_unit = 3200/1.25; -float e_steps_per_unit = 16; -float max_feedrate = 200000; //mmm, acceleration! -float max_z_feedrate = 120; +const int NUM_AXIS = 4; // The axis order in all axis related arrays is X, Y, Z, E +bool axis_relative_modes[] = {false, false, false, false}; +float axis_steps_per_unit[] = {80.376,80.376,3200/1.25,16}; +float max_feedrate[] = {200000, 200000, 240, 500000}; //mmm, acceleration! //float x_steps_per_unit = 10.047; //float y_steps_per_unit = 10.047; @@ -150,6 +157,13 @@ const int Z_MAX_LENGTH = 100; #define BAUDRATE 115200 - +//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 +#endif #endif |