2be0d66872
- The long standing issue of a long slope at deceleration is likely fixed. The stepper program was not tracking and timing the end of acceleration and start of deceleration exactly and now is fixed to start and stop on time. Also, to ensure a better acceleration curve fit used by the planner, the stepper program delays the start of the accelerations by a half trapezoid tick to employ the midpoint rule. - Settings version 3 migration (not fully tested, but should work) - Added a MINIMUM_PLANNER_SPEED user-defined parameter to planner to let a user change this if problems arise for some reason. - Moved all user-definable #define parameters into config.h with clear comments on what they do and recommendations of how to change them. - Minor housekeeping.
117 lines
4.6 KiB
C
117 lines
4.6 KiB
C
/*
|
|
config.h - compile time configuration
|
|
Part of Grbl
|
|
|
|
Copyright (c) 2009-2011 Simen Svale Skogsrud
|
|
Copyright (c) 2011 Sungeun K. Jeon
|
|
|
|
Grbl is free software: you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation, either version 3 of the License, or
|
|
(at your option) any later version.
|
|
|
|
Grbl is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with Grbl. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
#ifndef config_h
|
|
#define config_h
|
|
|
|
// IMPORTANT: Any changes here requires a full re-compiling of the source code to propagate them.
|
|
|
|
#define BAUD_RATE 9600
|
|
|
|
// Updated default pin-assignments from 0.6 onwards
|
|
// (see bottom of file for a copy of the old config)
|
|
|
|
#define STEPPERS_DISABLE_DDR DDRB
|
|
#define STEPPERS_DISABLE_PORT PORTB
|
|
#define STEPPERS_DISABLE_BIT 0
|
|
|
|
#define STEPPING_DDR DDRD
|
|
#define STEPPING_PORT PORTD
|
|
#define X_STEP_BIT 2
|
|
#define Y_STEP_BIT 3
|
|
#define Z_STEP_BIT 4
|
|
#define X_DIRECTION_BIT 5
|
|
#define Y_DIRECTION_BIT 6
|
|
#define Z_DIRECTION_BIT 7
|
|
|
|
#define LIMIT_DDR DDRB
|
|
#define LIMIT_PIN PINB
|
|
#define X_LIMIT_BIT 1
|
|
#define Y_LIMIT_BIT 2
|
|
#define Z_LIMIT_BIT 3
|
|
|
|
#define SPINDLE_ENABLE_DDR DDRB
|
|
#define SPINDLE_ENABLE_PORT PORTB
|
|
#define SPINDLE_ENABLE_BIT 4
|
|
|
|
#define SPINDLE_DIRECTION_DDR DDRB
|
|
#define SPINDLE_DIRECTION_PORT PORTB
|
|
#define SPINDLE_DIRECTION_BIT 5
|
|
|
|
// The temporal resolution of the acceleration management subsystem. Higher number
|
|
// give smoother acceleration but may impact performance
|
|
// NOTE: Increasing this parameter will help any resolution related issues, especially with machines
|
|
// requiring very high accelerations and/or very fast feedrates. In general, this will reduce the
|
|
// error between how the planner plans the motions and how the stepper program actually performs them.
|
|
// However, at some point, the resolution can be high enough, where the errors related to numerical
|
|
// round-off can be great enough to cause problems and/or it's too fast for the Arduino. The correct
|
|
// value for this parameter is machine dependent, so it's advised to set this only as high as needed.
|
|
// Approximate successful values can range from 30L to 100L or more.
|
|
#define ACCELERATION_TICKS_PER_SECOND 50L
|
|
|
|
// Minimum planner junction speed. Sets the default minimum speed the planner plans for at the end
|
|
// of the buffer and all stops. This should not be much greater than zero and should only be changed
|
|
// if unwanted behavior is observed on a user's machine when running at very slow speeds.
|
|
#define MINIMUM_PLANNER_SPEED 0.0 // (mm/min)
|
|
|
|
// Minimum stepper rate. Sets the absolute minimum stepper rate in the stepper program and never run
|
|
// slower than this value, except when sleeping. This parameter overrides the minimum planner speed.
|
|
// This is primarily used to guarantee that the end of a movement is always reached and not stop to
|
|
// never reach its target. This parameter should always be greater than zero.
|
|
#define MINIMUM_STEPS_PER_MINUTE 800 // (steps/min) - Integer value only
|
|
|
|
// Number of arc generation iterations by small angle approximation before exact arc
|
|
// trajectory correction. Value must be 1-255. This parameter maybe decreased if there are issues
|
|
// with the accuracy of the arc generations. In general, the default value is more than enough for
|
|
// the intended CNC applications of grbl, and should be on the order or greater than the size of
|
|
// the buffer to help with the computational efficiency of generating arcs.
|
|
#define N_ARC_CORRECTION 25
|
|
|
|
#endif
|
|
|
|
// Pin-assignments from Grbl 0.5
|
|
|
|
// #define STEPPERS_DISABLE_DDR DDRD
|
|
// #define STEPPERS_DISABLE_PORT PORTD
|
|
// #define STEPPERS_DISABLE_BIT 2
|
|
//
|
|
// #define STEPPING_DDR DDRC
|
|
// #define STEPPING_PORT PORTC
|
|
// #define X_STEP_BIT 0
|
|
// #define Y_STEP_BIT 1
|
|
// #define Z_STEP_BIT 2
|
|
// #define X_DIRECTION_BIT 3
|
|
// #define Y_DIRECTION_BIT 4
|
|
// #define Z_DIRECTION_BIT 5
|
|
//
|
|
// #define LIMIT_DDR DDRD
|
|
// #define LIMIT_PORT PORTD
|
|
// #define X_LIMIT_BIT 3
|
|
// #define Y_LIMIT_BIT 4
|
|
// #define Z_LIMIT_BIT 5
|
|
//
|
|
// #define SPINDLE_ENABLE_DDR DDRD
|
|
// #define SPINDLE_ENABLE_PORT PORTD
|
|
// #define SPINDLE_ENABLE_BIT 6
|
|
//
|
|
// #define SPINDLE_DIRECTION_DDR DDRD
|
|
// #define SPINDLE_DIRECTION_PORT PORTD
|
|
// #define SPINDLE_DIRECTION_BIT 7
|