1 #ifndef CONFIGURATION_H
2 #define CONFIGURATION_H
6 #define STR_HELPER(x) #x
7 #define STR(x) STR_HELPER(x)
8 #define _CONCAT(x,y) x##y
9 #define CONCAT(x,y) _CONCAT(x,y)
11 #include <avr/pgmspace.h>
12 extern const uint16_t _nPrinterType;
13 extern const char _sPrinterName[] PROGMEM;
14 extern const uint16_t _nPrinterMmuType;
15 extern const char _sPrinterMmuName[] PROGMEM;
24 #define FW_COMMITNR 8066
30 #define FW_TWEAK (FIRMWARE_REVISION_RELEASED)
31 #define FW_VERSION STR(FW_MAJOR) "." STR(FW_MINOR) "." STR(FW_REVISION)
32 #define FW_VERSION_FULL STR(FW_MAJOR) "." STR(FW_MINOR) "." STR(FW_REVISION) "-" STR(FW_COMMITNR)
35 #define FW_TWEAK (CONCAT(FIRMWARE_REVISION_,FW_FLAVOR) + FW_FLAVERSION)
36 #define FW_VERSION STR(FW_MAJOR) "." STR(FW_MINOR) "." STR(FW_REVISION) "-" STR(FW_FLAVOR) "" STR(FW_FLAVERSION)
37 #define FW_VERSION_FULL STR(FW_MAJOR) "." STR(FW_MINOR) "." STR(FW_REVISION) "-" STR(FW_FLAVOR) "" STR(FW_FLAVERSION) "+" STR(FW_COMMITNR)
42 #define FW_COMMIT_HASH_LENGTH 1
43 #define FW_COMMIT_HASH "0"
44 #define FW_REPOSITORY "Unknown"
50 #ifndef SOURCE_DATE_EPOCH
51 #define SOURCE_DATE_EPOCH __DATE__
53 #ifndef SOURCE_TIME_EPOCH
54 #define SOURCE_TIME_EPOCH __TIME__
57 #include "Configuration_var.h"
59 #define FW_PRUSA3D_MAGIC "PRUSA3DFW"
60 #define FW_PRUSA3D_MAGIC_LEN 10
72 #define STRING_VERSION_CONFIG_H SOURCE_DATE_EPOCH " " SOURCE_TIME_EPOCH
73 #define STRING_CONFIG_H_AUTHOR FW_REPOSITORY
81 #define BAUDRATE 115200
84 #define ENABLE_MEATPACK
109 #define POWER_SUPPLY 1
120 #define TEMP_RESIDENCY_TIME 3
121 #define TEMP_HYSTERESIS 5
122 #define TEMP_WINDOW 1
139 #define PID_MAX BANG_MAX
144 #define PID_INTEGRAL_DRIVE_MAX PID_MAX
146 #define PID_dT ((OVERSAMPLENR * 10.0)/(F_CPU / 64.0 / 256.0))
166 #define PREVENT_DANGEROUS_EXTRUDE
168 #define PREVENT_LENGTHY_EXTRUDE
170 #ifdef DEBUG_DISABLE_PREVENT_EXTRUDER
171 #undef PREVENT_DANGEROUS_EXTRUDE
172 #undef PREVENT_LENGTHY_EXTRUDE
175 #define EXTRUDE_MAXLENGTH (X_MAX_LENGTH+Y_MAX_LENGTH)
223 #define ENDSTOPPULLUPS
225 #ifndef ENDSTOPPULLUPS
235 #ifdef ENDSTOPPULLUPS
236 #define ENDSTOPPULLUP_XMAX
237 #define ENDSTOPPULLUP_YMAX
238 #define ENDSTOPPULLUP_ZMAX
239 #define ENDSTOPPULLUP_XMIN
240 #define ENDSTOPPULLUP_YMIN
241 #define ENDSTOPPULLUP_ZMIN
246 #define X_MAX_ENDSTOP_INVERTING 0
247 #define Y_MAX_ENDSTOP_INVERTING 0
248 #define Z_MAX_ENDSTOP_INVERTING 1
253 #if defined(COREXY) && !defined(DISABLE_MAX_ENDSTOPS)
254 #define DISABLE_MAX_ENDSTOPS
258 #define X_ENABLE_ON 0
259 #define Y_ENABLE_ON 0
260 #define Z_ENABLE_ON 0
261 #define E_ENABLE_ON 0
272 #define X_HOME_DIR -1
273 #define Y_HOME_DIR -1
274 #define Z_HOME_DIR -1
276 #ifdef DEBUG_DISABLE_SWLIMITS
277 #define min_software_endstops 0
278 #define max_software_endstops 0
280 #define min_software_endstops 1
281 #define max_software_endstops 1
285 #define X_MAX_LENGTH (X_MAX_POS - X_MIN_POS)
286 #define Y_MAX_LENGTH (Y_MAX_POS - Y_MIN_POS)
287 #define Z_MAX_LENGTH (Z_MAX_POS - Z_MIN_POS)
289 #define Z_HEIGHT_HIDE_LIVE_ADJUST_MENU 2.0f
291 #define HOME_Z_SEARCH_THRESHOLD 0.15f
296 #define Z_PROBE_REPEATABILITY_TEST
298 #ifdef ENABLE_AUTO_BED_LEVELING
312 #define AUTO_BED_LEVELING_GRID
317 #ifdef AUTO_BED_LEVELING_GRID
320 #define LEFT_PROBE_BED_POSITION 15
321 #define RIGHT_PROBE_BED_POSITION 170
322 #define BACK_PROBE_BED_POSITION 180
323 #define FRONT_PROBE_BED_POSITION 20
327 #define AUTO_BED_LEVELING_GRID_POINTS 2
334 #define ABL_PROBE_PT_1_X 15
335 #define ABL_PROBE_PT_1_Y 180
336 #define ABL_PROBE_PT_2_X 15
337 #define ABL_PROBE_PT_2_Y 20
338 #define ABL_PROBE_PT_3_X 170
339 #define ABL_PROBE_PT_3_Y 20
346 #define X_PROBE_OFFSET_FROM_EXTRUDER -25
347 #define Y_PROBE_OFFSET_FROM_EXTRUDER -29
348 #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35
350 #define Z_RAISE_BEFORE_HOMING 5
353 #define XY_TRAVEL_SPEED 8000
355 #define Z_RAISE_BEFORE_PROBING 15
356 #define Z_RAISE_BETWEEN_PROBINGS 5
380 #define Z_SAFE_HOMING_X_POINT (X_MAX_LENGTH/2)
381 #define Z_SAFE_HOMING_Y_POINT (Y_MAX_LENGTH/2)
385 #ifdef AUTO_BED_LEVELING_GRID
386 #if X_PROBE_OFFSET_FROM_EXTRUDER < 0
387 #if (-(X_PROBE_OFFSET_FROM_EXTRUDER * AUTO_BED_LEVELING_GRID_POINTS) >= (RIGHT_PROBE_BED_POSITION - LEFT_PROBE_BED_POSITION))
388 #error "The X axis probing range is not enough to fit all the points defined in AUTO_BED_LEVELING_GRID_POINTS"
391 #if ((X_PROBE_OFFSET_FROM_EXTRUDER * AUTO_BED_LEVELING_GRID_POINTS) >= (RIGHT_PROBE_BED_POSITION - LEFT_PROBE_BED_POSITION))
392 #error "The X axis probing range is not enough to fit all the points defined in AUTO_BED_LEVELING_GRID_POINTS"
395 #if Y_PROBE_OFFSET_FROM_EXTRUDER < 0
396 #if (-(Y_PROBE_OFFSET_FROM_EXTRUDER * AUTO_BED_LEVELING_GRID_POINTS) >= (BACK_PROBE_BED_POSITION - FRONT_PROBE_BED_POSITION))
397 #error "The Y axis probing range is not enough to fit all the points defined in AUTO_BED_LEVELING_GRID_POINTS"
400 #if ((Y_PROBE_OFFSET_FROM_EXTRUDER * AUTO_BED_LEVELING_GRID_POINTS) >= (BACK_PROBE_BED_POSITION - FRONT_PROBE_BED_POSITION))
401 #error "The Y axis probing range is not enough to fit all the points defined in AUTO_BED_LEVELING_GRID_POINTS"
419 #define DEFAULT_XJERK 10
420 #define DEFAULT_YJERK 10
421 #define DEFAULT_ZJERK 0.4
422 #define DEFAULT_EJERK 4.5
429 #define CUSTOM_M_CODES
430 #ifdef CUSTOM_M_CODES
431 #ifdef ENABLE_AUTO_BED_LEVELING
432 #define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851
433 #define Z_PROBE_OFFSET_RANGE_MIN -15
434 #define Z_PROBE_OFFSET_RANGE_MAX -5
444 #ifndef HEATBED_ANALYSIS
445 #define HOST_KEEPALIVE_FEATURE
447 #define HOST_KEEPALIVE_INTERVAL 2
452 #define SD_CHECK_AND_RETRY
453 #define ENCODER_PULSES_PER_STEP 4
458 #define REPRAP_DISCOUNT_SMART_CONTROLLER
471 #define FAN_SOFT_PWM_BITS 4
474 #define HEATER_BED_SOFT_PWM_BITS 5
480 #define SOFT_PWM_SCALE 0
506 #define DEFAULT_NOMINAL_FILAMENT_DIA 1.75
510 #define MIN_Z_FOR_LOAD 50
511 #define MIN_Z_FOR_UNLOAD 50
512 #define MIN_Z_FOR_SWAP 27
513 #define MIN_Z_FOR_PREHEAT 10
515 #include "Configuration_adv.h"
516 #include "thermistortables.h"