#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 = 33
#define MOTHERBOARD 33
//// Thermistor settings:
// 1 is 100k thermistor
#define THERMISTORHEATER 1
#define THERMISTORBED 1
//// Calibration variables
// X, Y, Z, E steps per unit - Metric Prusa Mendel
//float axis_steps_per_unit[] = {52.4934, 52.4934, 3200/1.25, 1487}; // original figs from MakerGear Rick
float axis_steps_per_unit[] = {52.4934, 52.4934, 3200/1.25, 1487 / 1.16}; // reduce e-steps per mm for extruder
//// Endstop Settings
#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 ENDSTOPS_INVERTING = true; //set to true to invert the logic of the endstops
//If your axes are only moving in one direction, make sure the endstops are connected properly.
//If your axes move in one direction ONLY when the endstops are triggered, set ENDSTOPS_INVERTING to true here
// This determines the communication speed of the printer
#define BAUDRATE 250000
// Comment out (using // at the start of the line) to disable SD support:
//#define SDSUPPORT
//// ADVANCED SETTINGS - to tweak parameters
#include "thermistortables.h"
// For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
#define X_ENABLE_ON 0
#define Y_ENABLE_ON 0
#define Z_ENABLE_ON 0
#define 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;
// Inverting axis direction
const bool INVERT_X_DIR = true;
const bool INVERT_Y_DIR = true;
const bool INVERT_Z_DIR = true;
const bool INVERT_E_DIR = false;
//// ENDSTOP SETTINGS:
// Sets direction of endstops when homing; 1=MAX, -1=MIN
#define X_HOME_DIR -1
#define Y_HOME_DIR -1
#define 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 = 180;
const int Y_MAX_LENGTH = 180;
const int Z_MAX_LENGTH = 110;
//// 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};
float homing_feedrate[] = {1500,1500,120};
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. (except for Gen6: both need to be enabled.)
//#define STEP_DELAY_RATIO 0.25
// Comment this to disable ramp acceleration
#define RAMP_ACCELERATION
//// 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}; //0.2 //10 for mosaic?
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 //100 Z for mosaic
long max_travel_acceleration_units_per_sq_second[] = {500,500,50,500}; // X, Y, Z max acceleration in mm/s^2 for travel moves //100 Z for mosaic
#endif
// Machine UUID
// This may be useful if you have multiple machines and wish to identify them by using the M115 command.
// By default we set it to zeros.
char uuid[] = "00000000-0000-0000-0000-000000000000";
//// 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
#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 moves
//#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
//// Temperature smoothing - only uncomment this if your temp readings are noisy (Gen6 without EvdZ's 5V hack)
//#define SMOOTHING
//#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 heater will be switched off.
// 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 245
// Select one of these only to define how the nozzle temp is read.
#define HEATER_USES_THERMISTOR
// Select one of these only to define how the bed temp is read.
#define BED_USES_THERMISTOR
#endif
What is Desktop 3D Printing?
Imagine a robot that sits on your desk, and builds anything you tell it to from a spool of bioplastic.
Imagine that it makes these things by heating up the plastic then squeezing it out like toothpaste from a tube. Imagine it smells faintly of caramelizing sugar.
Imagine that the designs for the printer, the software that runs it, the software that designs things to be printed, and almost infinite quantities of pre-made designs, are all free.
And imagine that if you are smart, you can buy the parts to build the printer for $500. Or if you are smarter, you can buy a kit of guaranteed compatible parts for $825.
I don't have to imagine any of that, I've got it sitting on my desk right now.
Tags I use
3D architecture assembly ATX bronze bruthead building crimps Dalek Dragon electronics extruder extrusion filament firmware Heated Build Platform kit Lego Magic MakerGear Marlin Mendel Mendel Prusa model Netfabb OpenSCAD PLA plastruder Pronterface Prusa RAMPS Raygun RepRap retraction sculpture settings Skimbal Slic3r Spanner Sprinter TARDIS Thingiverse Troubleshooting warping WrenchPages
Post Categories
- 3d printing (47)
- Assembly (17)
- Objects (12)
- Science (1)
- Software (15)
- Uncategorized (1)
-
Most recent posts
Top Posts & Pages
- RAMPS v1.4 connection photographs
- ATX power supply 5V load resistor for better 12V regulation
- Retraction solution with Marlin, Pronterface and Slic3r
- My Slic3r config file
- My Marlin non-gen6 configuration.h file
- MakerGear Mendel Prusa electronics assembly notes
- RepRap 3D printers, PLA, and moisture problems
- Retraction, Huh! What is it good for?
- My Sprinter configuration.h file
- Getting your motors moving on a MakerGear Mendel Prusa
Filament
IRC channels
Machines
MakerGear
Models
Post Processing
Setup advice
Software
Calendar
May 2013 M T W T F S S « Jun 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Archives
- June 2012 (2)
- March 2012 (3)
- February 2012 (3)
- January 2012 (5)
- December 2011 (24)
- November 2011 (11)
- October 2011 (2)
RSS Links
Pingback: Getting your motors moving on a MakerGear Mendel Prusa | Brazen Artifice
I’m getting the following error when I try compiling your Configuration.h:
In file included from Sprinter.cpp:5:0:
Configuration.h:1:0: error: unterminated #ifndef
I’m not having any compile issues with Rick’s Configuration.h. Do you know what might be wrong? I’ve tried adding one and two #endif at the end with no luck.
Arrg. Thanks for catching this.
an extra #endif at the end of the file should have fixed it.
My fault for chopping out bits that aren’t useful for the MakerGear Prusa, and not testing. I was using Marlin at the time.
I’ll fix it right away.