Compare commits
127 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
0757a57122 | ||
|
dab8b979bf | ||
|
e7239ba96f | ||
|
9140808f2d | ||
|
0f53591818 | ||
|
f363260a49 | ||
|
bd2cb8080a | ||
|
697bc6f45c | ||
|
55521d3ab1 | ||
|
4801858c19 | ||
|
613d352308 | ||
|
c7373ccc8e | ||
|
e12fb83b78 | ||
|
5600a71514 | ||
|
52126609af | ||
|
aa57f4be9d | ||
|
f27545aee4 | ||
|
e4a828f32a | ||
|
5c0841a139 | ||
|
c65ec66cb1 | ||
|
fb65790f4d | ||
|
f627c62df2 | ||
|
0c841d8d18 | ||
|
e53792cbce | ||
|
d6a74a59dd | ||
|
10987b38ba | ||
|
3f4825db12 | ||
|
e9fbd33fbe | ||
|
25c776aec3 | ||
|
ef3a102902 | ||
|
3fce6790fc | ||
|
b8cbfd7569 | ||
|
2ef275c95b | ||
|
98852f7164 | ||
|
810526e377 | ||
|
f663765c7e | ||
|
1ef285fa1d | ||
|
a35eba79cc | ||
|
21d5e7ecf7 | ||
|
8a3eef85b1 | ||
|
1db797f7e3 | ||
|
7872416018 | ||
|
87ba51d21f | ||
|
27c074ba25 | ||
|
2c630117c1 | ||
|
4e22347e8c | ||
|
fb22e90d6d | ||
|
14c90915b0 | ||
|
f078706442 | ||
|
fe734e1152 | ||
|
4d5d068a99 | ||
|
919814c0d7 | ||
|
a4cd712b02 | ||
|
6ffd8dd31d | ||
|
c1b3d4afec | ||
|
083894f518 | ||
|
81ed8a1d9f | ||
|
f91882400b | ||
|
abf7f93bda | ||
|
bcc3964aed | ||
|
9c59d44e9f | ||
|
e08673ac8d | ||
|
c1f9a5edaf | ||
|
54caef61a4 | ||
|
574357b47a | ||
|
9f76b31a19 | ||
|
86ec69c1b0 | ||
|
8d8d46a2b8 | ||
|
b00040c25d | ||
|
640842da67 | ||
|
97a756e057 | ||
|
101fd49a1e | ||
|
5fd5f46388 | ||
|
5bc9763aa4 | ||
|
25364c7f2f | ||
|
53b0ac3c3a | ||
|
bf8e0bab9c | ||
|
bd757d55c8 | ||
|
3be60ff20c | ||
|
a0e098c85f | ||
|
0ce6fff5d2 | ||
|
afdb93e0f6 | ||
|
bf9805ca9f | ||
|
c9c1dffaff | ||
|
13c2400089 | ||
|
e6fa28456c | ||
|
894af4616f | ||
|
491dadb706 | ||
|
45816ee091 | ||
|
a709457baa | ||
|
a7094a923d | ||
|
32d498e26c | ||
|
88c93102fa | ||
|
790c5191c8 | ||
|
813166d705 | ||
|
36e2e5be91 | ||
|
d70a585be8 | ||
|
3c2d6f7965 | ||
|
cedcbc01a0 | ||
|
2dafb2a90d | ||
|
946abb5c6f | ||
|
710ab1b2d3 | ||
|
4acb60ed54 | ||
|
e8c0b4a9ef | ||
|
77f77a58e8 | ||
|
168e2f8305 | ||
|
6fff254817 | ||
|
79c5924e28 | ||
|
a3a47856c2 | ||
|
1c3f1e9ada | ||
|
ed18a4a3ff | ||
|
e0a9012556 | ||
|
80602aa43f | ||
|
620052b991 | ||
|
8232232235 | ||
|
159663797e | ||
|
6118fe84d8 | ||
|
d174e84f4e | ||
|
e9515c89f2 | ||
|
ca41c9a310 | ||
|
68338f49ec | ||
|
a7b4298ffd | ||
|
68cc5ef87d | ||
|
97d6db15cf | ||
|
d88d98d691 | ||
|
73c98e400b | ||
|
73e750d697 |
@@ -38,10 +38,123 @@
|
||||
*/
|
||||
#define CONFIGURATION_H_VERSION 020005
|
||||
|
||||
#define KNUTWURST_MEGAS
|
||||
#define KNUTWURST_TMC
|
||||
#define ANYCUBIC_TOUCHSCREEN
|
||||
#define ANYCUBIC_FILAMENT_RUNOUT_SENSOR
|
||||
//#define ANYCUBIC_TFT_DEBUG
|
||||
//#define POWER_OUTAGE_TEST
|
||||
|
||||
/*******************************************************************************************
|
||||
** **
|
||||
** **
|
||||
** WARNING: **
|
||||
** THE FOLLOWING SETTINGS ARE NORMALLY SET BY PLATFORMIO! **
|
||||
** **
|
||||
** IF YOU CHANGE THEM WITHIN THE SOURCECODE, DO NOT COMMIT **
|
||||
** TO MASTER BRANCH OR BUILD WITH PLATFORMIO ENVIRONMENT! **
|
||||
** OTHERWISE SOME SETTINGS MIGHT BE OVERWRITTEN AND YOU END **
|
||||
** UP WITH A NON FUNCTIONING FIRMWARE! **
|
||||
** **
|
||||
** If you want to select a specific configuration for your **
|
||||
** printer, just open the PlatformIO tab on the left, select **
|
||||
** PROJECT TASKS and then "env:i3_MEGA*" (your desired config) **
|
||||
** From there you can build and upload your code. **
|
||||
** **
|
||||
** **
|
||||
*******************************************************************************************/
|
||||
|
||||
|
||||
/*
|
||||
* Select your printer.
|
||||
* DO NOT ENABLE MORE THAN ONE LINE!
|
||||
*
|
||||
* MEGA is the normal i3 Version without spool holder and the cassic extruder
|
||||
* MEGA_S is the S version with Titan clone extruder
|
||||
* MEGA_X is the big version with 310x310mm Bed
|
||||
*
|
||||
* PLEASE READ THE WARNING ABOVE!
|
||||
*
|
||||
*/
|
||||
//#define KNUTWURST_MEGA
|
||||
//#define KNUTWURST_MEGA_S
|
||||
//#define KNUTWURST_MEGA_X
|
||||
|
||||
/*
|
||||
* If you have defined the MEGA_X or if
|
||||
* you have the "new" Mega S with the blue/yellow
|
||||
* Touchscreen display, you need to enable the
|
||||
* DGUS2 switch to get the special menu to work
|
||||
*
|
||||
* PLEASE READ THE WARNING ABOVE!
|
||||
*
|
||||
*/
|
||||
//#define KNUTWURST_DGUS2_TFT
|
||||
|
||||
/*
|
||||
* Enable Support for Trinamic Stepper drivers.
|
||||
* This also inverts the X,Y,Z and Extruder motor
|
||||
* outputs/directions.
|
||||
*
|
||||
* PLEASE READ THE WARNING ABOVE!
|
||||
*/
|
||||
//#define KNUTWURST_TMC
|
||||
|
||||
/*
|
||||
* This enables the BLTouch Support and also
|
||||
* activates the BLTouch Menu item in the
|
||||
* special menu. It also removes all manual
|
||||
* leveling features because they are not
|
||||
* neccessary at all.
|
||||
*
|
||||
* PLEASE READ THE WARNING ABOVE!
|
||||
*
|
||||
*/
|
||||
//#define KNUTWURST_BLTOUCH // see <https://github.com/DerDominik/Marlin-AnycubicI3Mega-BLTouch/wiki/Aufbauplan_BLTouch>
|
||||
|
||||
/*
|
||||
* This feature is for debugging purpose only.
|
||||
* It enabled more console output and should be
|
||||
* disabled in production. It can cause the
|
||||
* printer to stutter.
|
||||
*
|
||||
* PLEASE READ THE WARNING ABOVE!
|
||||
*
|
||||
*/
|
||||
//#define KNUTWURST_DEBUG
|
||||
|
||||
|
||||
/*******************************************************************************************
|
||||
** **
|
||||
** **
|
||||
** WARNING: **
|
||||
** THE SETTINGS ABOVE ARE NORMALLY SET BY PLATFORMIO! **
|
||||
** **
|
||||
** IF YOU CHANGE THEM WITHIN THE SOURCECODE, DO NOT COMMIT **
|
||||
** TO MASTER BRANCH OR BUILD WITH PLATFORMIO ENVIRONMENT! **
|
||||
** OTHERWISE SOME SETTINGS MIGHT BE OVERWRITTEN AND YOU END **
|
||||
** UP WITH A NON FUNCTIONING FIRMWARE! **
|
||||
** **
|
||||
** If you want to select a specific configuration for your **
|
||||
** printer, just open the PlatformIO tab on the left, select **
|
||||
** PROJECT TASKS and then "env:i3_MEGA*" (your desired config) **
|
||||
** From there you can build and upload your code. **
|
||||
** **
|
||||
** **
|
||||
*******************************************************************************************/
|
||||
|
||||
|
||||
/*
|
||||
* Here you can set the default preheat-Temperatures
|
||||
* which are set when you use the builtin preheat
|
||||
* functions in the TFT.
|
||||
*
|
||||
* These settings are required and not set by PlatformIO.
|
||||
*/
|
||||
#define KNUTWURST_PRHEAT_NOZZLE_PLA 200
|
||||
#define KNUTWURST_PRHEAT_BED_PLA 60
|
||||
#define KNUTWURST_PRHEAT_NOZZLE_ABS 240
|
||||
#define KNUTWURST_PRHEAT_BED_ABS 90
|
||||
|
||||
|
||||
//===========================================================================
|
||||
//============================= Getting Started =============================
|
||||
//===========================================================================
|
||||
@@ -76,6 +189,7 @@
|
||||
|
||||
// Author info of this build printed to the host during boot and M115
|
||||
#define STRING_CONFIG_H_AUTHOR "(knutwurst)" // Who made the changes.
|
||||
//#define CUSTOM_VERSION_FILE Version.h // Path from the root directory (no quotes)
|
||||
|
||||
/**
|
||||
* *** VENDORS PLEASE READ ***
|
||||
@@ -143,7 +257,7 @@
|
||||
* on the upper left of the PCB silkscreen.
|
||||
*/
|
||||
#ifndef MOTHERBOARD
|
||||
#define MOTHERBOARD BOARD_TRIGORILLA_14
|
||||
//#define MOTHERBOARD BOARD_TRIGORILLA_14 // Is normally set by PlatformIO
|
||||
#endif
|
||||
|
||||
// Name displayed in the LCD "Ready" message and Info menu
|
||||
@@ -664,14 +778,27 @@
|
||||
//#define ENDSTOPPULLDOWN_ZMIN_PROBE
|
||||
#endif
|
||||
|
||||
// Mechanical endstop with COM to ground and NC to Signal uses "false" here (most common setup).
|
||||
#define X_MIN_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.
|
||||
#define Y_MIN_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.
|
||||
#define Z_MIN_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.
|
||||
#define X_MAX_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.
|
||||
#define Y_MAX_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.
|
||||
#define Z_MAX_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.
|
||||
#define Z_MIN_PROBE_ENDSTOP_INVERTING true // set to true to invert the logic of the probe.
|
||||
#if ENABLED(KNUTWURST_MEGA_X)
|
||||
// Mechanical endstop with COM to ground and NC to Signal uses "false" here (most common setup).
|
||||
#define X_MIN_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.
|
||||
#define Y_MIN_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
|
||||
#define Z_MIN_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.
|
||||
#define X_MAX_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.
|
||||
#define Y_MAX_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.
|
||||
#define Z_MAX_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.
|
||||
//#define Z_MIN_PROBE_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.
|
||||
#endif
|
||||
|
||||
#if EITHER(KNUTWURST_MEGA, KNUTWURST_MEGA_S)
|
||||
// Mechanical endstop with COM to ground and NC to Signal uses "false" here (most common setup).
|
||||
#define X_MIN_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.
|
||||
#define Y_MIN_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.
|
||||
#define Z_MIN_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.
|
||||
#define X_MAX_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.
|
||||
#define Y_MAX_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.
|
||||
#define Z_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
|
||||
//#define Z_MIN_PROBE_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Stepper Drivers
|
||||
@@ -693,35 +820,35 @@
|
||||
#define X_DRIVER_TYPE TMC2208_STANDALONE
|
||||
#define Y_DRIVER_TYPE TMC2208_STANDALONE
|
||||
#define Z_DRIVER_TYPE TMC2208_STANDALONE
|
||||
#define X2_DRIVER_TYPE TMC2208_STANDALONE
|
||||
#define Y2_DRIVER_TYPE TMC2208_STANDALONE
|
||||
#define Z2_DRIVER_TYPE TMC2208_STANDALONE
|
||||
#define Z3_DRIVER_TYPE TMC2208_STANDALONE
|
||||
#define Z4_DRIVER_TYPE TMC2208_STANDALONE
|
||||
//#define X2_DRIVER_TYPE TMC2208_STANDALONE
|
||||
//#define Y2_DRIVER_TYPE TMC2208_STANDALONE
|
||||
//#define Z2_DRIVER_TYPE TMC2208_STANDALONE
|
||||
//#define Z3_DRIVER_TYPE TMC2208_STANDALONE
|
||||
//#define Z4_DRIVER_TYPE TMC2208_STANDALONE
|
||||
#define E0_DRIVER_TYPE TMC2208_STANDALONE
|
||||
#define E1_DRIVER_TYPE TMC2208_STANDALONE
|
||||
#define E2_DRIVER_TYPE TMC2208_STANDALONE
|
||||
#define E3_DRIVER_TYPE TMC2208_STANDALONE
|
||||
#define E4_DRIVER_TYPE TMC2208_STANDALONE
|
||||
//#define E5_DRIVER_TYPE A4988
|
||||
//#define E6_DRIVER_TYPE A4988
|
||||
//#define E7_DRIVER_TYPE A4988
|
||||
//#define E2_DRIVER_TYPE TMC2208_STANDALONE
|
||||
//#define E3_DRIVER_TYPE TMC2208_STANDALONE
|
||||
//#define E4_DRIVER_TYPE TMC2208_STANDALONE
|
||||
//#define E5_DRIVER_TYPE TMC2208_STANDALONE
|
||||
//#define E6_DRIVER_TYPE TMC2208_STANDALONE
|
||||
//#define E7_DRIVER_TYPE TMC2208_STANDALONE
|
||||
#endif
|
||||
|
||||
#if DISABLED(KNUTWURST_TMC)
|
||||
#define X_DRIVER_TYPE A4988
|
||||
#define Y_DRIVER_TYPE A4988
|
||||
#define Z_DRIVER_TYPE A4988
|
||||
#define X2_DRIVER_TYPE A4988
|
||||
#define Y2_DRIVER_TYPE A4988
|
||||
#define Z2_DRIVER_TYPE A4988
|
||||
#define Z3_DRIVER_TYPE A4988
|
||||
#define Z4_DRIVER_TYPE A4988
|
||||
//#define X2_DRIVER_TYPE A4988
|
||||
//#define Y2_DRIVER_TYPE A4988
|
||||
//#define Z2_DRIVER_TYPE A4988
|
||||
//#define Z3_DRIVER_TYPE A4988
|
||||
//#define Z4_DRIVER_TYPE A4988
|
||||
#define E0_DRIVER_TYPE A4988
|
||||
#define E1_DRIVER_TYPE A4988
|
||||
#define E2_DRIVER_TYPE A4988
|
||||
#define E3_DRIVER_TYPE A4988
|
||||
#define E4_DRIVER_TYPE A4988
|
||||
//#define E2_DRIVER_TYPE A4988
|
||||
//#define E3_DRIVER_TYPE A4988
|
||||
//#define E4_DRIVER_TYPE A4988
|
||||
//#define E5_DRIVER_TYPE A4988
|
||||
//#define E6_DRIVER_TYPE A4988
|
||||
//#define E7_DRIVER_TYPE A4988
|
||||
@@ -770,13 +897,16 @@
|
||||
* Override with M92
|
||||
* X, Y, Z, E0 [, E1[, E2...]]
|
||||
*/
|
||||
|
||||
#if ENABLED(KNUTWURST_MEGAS)
|
||||
#define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 400, 392 }
|
||||
#if ENABLED(KNUTWURST_MEGA)
|
||||
#define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 400, 96 }
|
||||
#endif
|
||||
|
||||
#if DISABLED(KNUTWURST_MEGAS)
|
||||
#define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 400, 96 }
|
||||
#if ENABLED(KNUTWURST_MEGA_S)
|
||||
#define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 400, 392 }
|
||||
#endif
|
||||
|
||||
#if ENABLED(KNUTWURST_MEGA_X)
|
||||
#define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 800, 400 }
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -784,12 +914,16 @@
|
||||
* Override with M203
|
||||
* X, Y, Z, E0 [, E1[, E2...]]
|
||||
*/
|
||||
#if ENABLED(KNUTWURST_MEGAS)
|
||||
#define DEFAULT_MAX_FEEDRATE { 500, 500, 6, 30 }
|
||||
#if ENABLED(KNUTWURST_MEGA)
|
||||
#define DEFAULT_MAX_FEEDRATE { 500, 500, 8, 60 }
|
||||
#endif
|
||||
|
||||
#if DISABLED(KNUTWURST_MEGAS)
|
||||
#define DEFAULT_MAX_FEEDRATE { 500, 500, 6, 60 }
|
||||
#if ENABLED(KNUTWURST_MEGA_S)
|
||||
#define DEFAULT_MAX_FEEDRATE { 500, 500, 8, 30 }
|
||||
#endif
|
||||
|
||||
#if ENABLED(KNUTWURST_MEGA_X)
|
||||
#define DEFAULT_MAX_FEEDRATE { 120, 120, 18, 80 } // thanks to Simon Geis
|
||||
#endif
|
||||
|
||||
|
||||
@@ -805,7 +939,16 @@
|
||||
* Override with M201
|
||||
* X, Y, Z, E0 [, E1[, E2...]]
|
||||
*/
|
||||
#define DEFAULT_MAX_ACCELERATION { 3000, 2000, 60, 10000 }
|
||||
#if EITHER(KNUTWURST_MEGA, KNUTWURST_MEGA_S)
|
||||
#define DEFAULT_MAX_ACCELERATION { 3000, 2000, 60, 10000 }
|
||||
#endif
|
||||
|
||||
#if ENABLED(KNUTWURST_MEGA_X)
|
||||
#define DEFAULT_MAX_ACCELERATION { 400, 400, 60, 10000 }
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
//#define LIMITED_MAX_ACCEL_EDITING // Limit edit via M201 or LCD to DEFAULT_MAX_ACCELERATION * 2
|
||||
#if ENABLED(LIMITED_MAX_ACCEL_EDITING)
|
||||
@@ -821,17 +964,24 @@
|
||||
* M204 T Travel Acceleration
|
||||
*/
|
||||
|
||||
#if ENABLED(KNUTWURST_MEGAS)
|
||||
#define DEFAULT_ACCELERATION 1600 // X, Y, Z and E acceleration for printing moves
|
||||
#define DEFAULT_RETRACT_ACCELERATION 1500 // E acceleration for retracts
|
||||
#define DEFAULT_TRAVEL_ACCELERATION 3000 // X, Y, Z acceleration for travel (non printing) moves
|
||||
#if ENABLED(KNUTWURST_MEGA)
|
||||
#define DEFAULT_ACCELERATION 1600 // X, Y, Z and E acceleration for printing moves
|
||||
#define DEFAULT_RETRACT_ACCELERATION 3000 // E acceleration for retracts
|
||||
#define DEFAULT_TRAVEL_ACCELERATION 3000 // X, Y, Z acceleration for travel (non printing) moves
|
||||
#endif
|
||||
|
||||
#if DISABLED(KNUTWURST_MEGAS)
|
||||
#define DEFAULT_ACCELERATION 1600 // X, Y, Z and E acceleration for printing moves
|
||||
#define DEFAULT_RETRACT_ACCELERATION 3000 // E acceleration for retracts
|
||||
#define DEFAULT_TRAVEL_ACCELERATION 3000 // X, Y, Z acceleration for travel (non printing) moves
|
||||
#if ENABLED(KNUTWURST_MEGA_S)
|
||||
#define DEFAULT_ACCELERATION 1600 // X, Y, Z and E acceleration for printing moves
|
||||
#define DEFAULT_RETRACT_ACCELERATION 1500 // E acceleration for retracts
|
||||
#define DEFAULT_TRAVEL_ACCELERATION 3000 // X, Y, Z acceleration for travel (non printing) moves
|
||||
#endif
|
||||
|
||||
#if ENABLED(KNUTWURST_MEGA_X)
|
||||
#define DEFAULT_ACCELERATION 400 // X, Y, Z and E acceleration for printing moves
|
||||
#define DEFAULT_RETRACT_ACCELERATION 3000 // E acceleration for retracts
|
||||
#define DEFAULT_TRAVEL_ACCELERATION 400 // X, Y, Z acceleration for travel (non printing) moves
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Default Jerk limits (mm/s)
|
||||
* Override with M205 X Y Z E
|
||||
@@ -841,10 +991,31 @@
|
||||
* value set here, it may happen instantaneously.
|
||||
*/
|
||||
//#define CLASSIC_JERK
|
||||
|
||||
// I Know.. it's useless to put it here ;)
|
||||
#if EITHER(KNUTWURST_MEGA, KNUTWURST_MEGA_S)
|
||||
//#define CLASSIC_JERK
|
||||
#endif
|
||||
|
||||
#if ENABLED(KNUTWURST_MEGA_X)
|
||||
//#define CLASSIC_JERK
|
||||
#endif
|
||||
|
||||
#if ENABLED(CLASSIC_JERK)
|
||||
#define DEFAULT_XJERK 10.0
|
||||
#define DEFAULT_YJERK 10.0
|
||||
#define DEFAULT_ZJERK 0.4
|
||||
|
||||
#if EITHER(KNUTWURST_MEGA, KNUTWURST_MEGA_S)
|
||||
#define DEFAULT_XJERK 10.0
|
||||
#define DEFAULT_YJERK 10.0
|
||||
#define DEFAULT_ZJERK 0.4
|
||||
#endif
|
||||
|
||||
#if ENABLED(KNUTWURST_MEGA_X)
|
||||
#define DEFAULT_XJERK 4.0
|
||||
#define DEFAULT_YJERK 4.0
|
||||
#define DEFAULT_ZJERK 0.2
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
//#define TRAVEL_EXTRA_XYJERK 0.0 // Additional jerk allowance for all travel moves
|
||||
|
||||
@@ -854,7 +1025,13 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#define DEFAULT_EJERK 5.0 // May be used by Linear Advance
|
||||
#if EITHER(KNUTWURST_MEGA, KNUTWURST_MEGA_S)
|
||||
#define DEFAULT_EJERK 5.0 // May be used by Linear Advance
|
||||
#endif
|
||||
|
||||
#if ENABLED(KNUTWURST_MEGA_X)
|
||||
#define DEFAULT_EJERK 8.0 // May be used by Linear Advance
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Junction Deviation Factor
|
||||
@@ -864,7 +1041,13 @@
|
||||
* http://blog.kyneticcnc.com/2018/10/computing-junction-deviation-for-marlin.html
|
||||
*/
|
||||
#if DISABLED(CLASSIC_JERK)
|
||||
#define JUNCTION_DEVIATION_MM 0.013 // (mm) Distance from real junction edge
|
||||
#if EITHER(KNUTWURST_MEGA, KNUTWURST_MEGA_S)
|
||||
#define JUNCTION_DEVIATION_MM 0.013 // (mm) Distance from real junction edge
|
||||
#endif
|
||||
|
||||
#if ENABLED(KNUTWURST_MEGA_X)
|
||||
#define JUNCTION_DEVIATION_MM 0.16 // (mm) Distance from real junction edge
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -909,7 +1092,9 @@
|
||||
* - normally-open switches to 5V and D32.
|
||||
*
|
||||
*/
|
||||
//#define Z_MIN_PROBE_PIN 32 // Pin 32 is the RAMPS default
|
||||
#if ENABLED(KNUTWURST_BLTOUCH)
|
||||
#define Z_MIN_PROBE_PIN 2 // Pin 32 is the RAMPS default
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Probe Type
|
||||
@@ -923,7 +1108,10 @@
|
||||
* Use G29 repeatedly, adjusting the Z height at each point with movement commands
|
||||
* or (with LCD_BED_LEVELING) the LCD controller.
|
||||
*/
|
||||
#if DISABLED(KNUTWURST_BLTOUCH)
|
||||
#define PROBE_MANUALLY
|
||||
#endif
|
||||
|
||||
//#define MANUAL_PROBE_START_Z 0.2
|
||||
|
||||
/**
|
||||
@@ -947,7 +1135,9 @@
|
||||
/**
|
||||
* The BLTouch probe uses a Hall effect sensor and emulates a servo.
|
||||
*/
|
||||
//#define BLTOUCH
|
||||
#if ENABLED(KNUTWURST_BLTOUCH)
|
||||
#define BLTOUCH
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Touch-MI Probe by hotends.fr
|
||||
@@ -1019,11 +1209,18 @@
|
||||
*
|
||||
* Specify a Probe position as { X, Y, Z }
|
||||
*/
|
||||
#if ENABLED(KNUTWURST_BLTOUCH)
|
||||
#define NOZZLE_TO_PROBE_OFFSET { -2, -25, 0 } //https://www.thingiverse.com/thing:2824005
|
||||
//#define NOZZLE_TO_PROBE_OFFSET { 29, -15, 0 } //X-Carriage
|
||||
#endif
|
||||
|
||||
#if DISABLED(KNUTWURST_BLTOUCH)
|
||||
#define NOZZLE_TO_PROBE_OFFSET { 10, 10, 0 }
|
||||
#endif
|
||||
|
||||
// Most probes should stay away from the edges of the bed, but
|
||||
// with NOZZLE_AS_PROBE this can be negative for a wider probing area.
|
||||
#define MIN_PROBE_EDGE 10
|
||||
#define MIN_PROBE_EDGE 30
|
||||
|
||||
// X and Y axis travel speed (mm/m) between probes
|
||||
#define XY_PROBE_SPEED 8000
|
||||
@@ -1065,14 +1262,23 @@
|
||||
#define Z_CLEARANCE_MULTI_PROBE 5 // Z Clearance between multiple probes
|
||||
//#define Z_AFTER_PROBING 5 // Z position after probing is done
|
||||
|
||||
#if ENABLED(KNUTWURST_BLTOUCH)
|
||||
#define Z_PROBE_LOW_POINT -5 // Farthest distance below the trigger-point to go before stopping
|
||||
#endif
|
||||
|
||||
#if DISABLED(KNUTWURST_BLTOUCH)
|
||||
#define Z_PROBE_LOW_POINT -2 // Farthest distance below the trigger-point to go before stopping
|
||||
#endif
|
||||
|
||||
|
||||
// For M851 give a range for adjusting the Z probe offset
|
||||
#define Z_PROBE_OFFSET_RANGE_MIN -20
|
||||
#define Z_PROBE_OFFSET_RANGE_MAX 20
|
||||
|
||||
// Enable the M48 repeatability test to test probe accuracy
|
||||
//#define Z_MIN_PROBE_REPEATABILITY_TEST
|
||||
#if ENABLED(KNUTWURST_BLTOUCH)
|
||||
#define Z_MIN_PROBE_REPEATABILITY_TEST
|
||||
#endif
|
||||
|
||||
// Before deploy/stow pause for user confirmation
|
||||
//#define PAUSE_BEFORE_DEPLOY_STOW
|
||||
@@ -1176,8 +1382,17 @@
|
||||
// @section machine
|
||||
|
||||
// The size of the print bed
|
||||
#define X_BED_SIZE 225
|
||||
#define Y_BED_SIZE 220
|
||||
#if EITHER(KNUTWURST_MEGA, KNUTWURST_MEGA_S)
|
||||
#define X_BED_SIZE 225
|
||||
#define Y_BED_SIZE 220
|
||||
#define Z_BED_HEIGHT 210
|
||||
#endif
|
||||
|
||||
#if ENABLED(KNUTWURST_MEGA_X)
|
||||
#define X_BED_SIZE 310
|
||||
#define Y_BED_SIZE 310
|
||||
#define Z_BED_HEIGHT 305
|
||||
#endif
|
||||
|
||||
// Travel limits (mm) after homing, corresponding to endstop positions.
|
||||
#define X_MIN_POS 0
|
||||
@@ -1185,7 +1400,7 @@
|
||||
#define Z_MIN_POS 0
|
||||
#define X_MAX_POS X_BED_SIZE
|
||||
#define Y_MAX_POS Y_BED_SIZE
|
||||
#define Z_MAX_POS 210
|
||||
#define Z_MAX_POS Z_BED_HEIGHT
|
||||
|
||||
/**
|
||||
* Software Endstops
|
||||
@@ -1286,11 +1501,21 @@
|
||||
* leveling in steps so you can manually adjust the Z height at each grid-point.
|
||||
* With an LCD controller the process is guided step-by-step.
|
||||
*/
|
||||
#if ENABLED(KNUTWURST_BLTOUCH)
|
||||
//#define AUTO_BED_LEVELING_3POINT
|
||||
//#define AUTO_BED_LEVELING_LINEAR
|
||||
#define AUTO_BED_LEVELING_BILINEAR
|
||||
//#define AUTO_BED_LEVELING_UBL
|
||||
//#define MESH_BED_LEVELING
|
||||
#endif
|
||||
|
||||
#if DISABLED(KNUTWURST_BLTOUCH)
|
||||
//#define AUTO_BED_LEVELING_3POINT
|
||||
//#define AUTO_BED_LEVELING_LINEAR
|
||||
//#define AUTO_BED_LEVELING_BILINEAR
|
||||
//#define AUTO_BED_LEVELING_UBL
|
||||
#define MESH_BED_LEVELING
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Normally G28 leaves leveling disabled on completion. Enable
|
||||
@@ -1303,7 +1528,9 @@
|
||||
* Turn on with the command 'M111 S32'.
|
||||
* NOTE: Requires a lot of PROGMEM!
|
||||
*/
|
||||
//#define DEBUG_LEVELING_FEATURE
|
||||
#if ENABLED(KNUTWURST_DEBUG)
|
||||
#define DEBUG_LEVELING_FEATURE
|
||||
#endif
|
||||
|
||||
#if ANY(MESH_BED_LEVELING, AUTO_BED_LEVELING_BILINEAR, AUTO_BED_LEVELING_UBL)
|
||||
// Gradually reduce leveling correction until a set height is reached,
|
||||
@@ -1335,7 +1562,7 @@
|
||||
#if EITHER(AUTO_BED_LEVELING_LINEAR, AUTO_BED_LEVELING_BILINEAR)
|
||||
|
||||
// Set the number of grid points per dimension.
|
||||
#define GRID_MAX_POINTS_X 3
|
||||
#define GRID_MAX_POINTS_X 5
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
|
||||
// Probe along the Y axis, advancing X after each column
|
||||
@@ -1447,9 +1674,18 @@
|
||||
#define Z_SAFE_HOMING_Y_POINT ((Y_BED_SIZE) / 2) // Y point for Z homing when homing all axes (G28).
|
||||
#endif
|
||||
|
||||
// Homing speeds (mm/m)
|
||||
#define HOMING_FEEDRATE_XY (50*60)
|
||||
#define HOMING_FEEDRATE_Z (4*60)
|
||||
#if EITHER(KNUTWURST_MEGA, KNUTWURST_MEGA_S)
|
||||
// Homing speeds (mm/m)
|
||||
#define HOMING_FEEDRATE_XY (50*60)
|
||||
#define HOMING_FEEDRATE_Z (5*60)
|
||||
#endif
|
||||
|
||||
#if ENABLED(KNUTWURST_MEGA_X)
|
||||
// Homing speeds (mm/m)
|
||||
#define HOMING_FEEDRATE_XY (40*60)
|
||||
#define HOMING_FEEDRATE_Z (6*60)
|
||||
#endif
|
||||
|
||||
|
||||
// Validate that endstops are triggered on homing moves
|
||||
#define VALIDATE_HOMING_ENDSTOPS
|
||||
@@ -2350,9 +2586,3 @@
|
||||
|
||||
// Allow servo angle to be edited and saved to EEPROM
|
||||
//#define EDITABLE_SERVO_ANGLES
|
||||
|
||||
#define ANYCUBIC_TOUCHSCREEN
|
||||
#define ANYCUBIC_FILAMENT_RUNOUT_SENSOR
|
||||
//#define ANYCUBIC_TFT_DEBUG
|
||||
//#define KNUTWURST_MEGAS_DEBUG
|
||||
//#define KNUTWURST_TMC_DEBUG
|
||||
|
@@ -423,13 +423,27 @@
|
||||
* Multiple extruders can be assigned to the same pin in which case
|
||||
* the fan will turn on when any selected extruder is above the threshold.
|
||||
*/
|
||||
#define E0_AUTO_FAN_PIN FAN2_PIN
|
||||
#define E1_AUTO_FAN_PIN -1
|
||||
#define E2_AUTO_FAN_PIN -1
|
||||
#define E3_AUTO_FAN_PIN -1
|
||||
#define E4_AUTO_FAN_PIN -1
|
||||
#define E5_AUTO_FAN_PIN -1
|
||||
#define CHAMBER_AUTO_FAN_PIN -1
|
||||
|
||||
#if EITHER(KNUTWURST_MEGA, KNUTWURST_MEGA_S)
|
||||
#define E0_AUTO_FAN_PIN FAN2_PIN
|
||||
#define E1_AUTO_FAN_PIN -1
|
||||
#define E2_AUTO_FAN_PIN -1
|
||||
#define E3_AUTO_FAN_PIN -1
|
||||
#define E4_AUTO_FAN_PIN -1
|
||||
#define E5_AUTO_FAN_PIN -1
|
||||
#define CHAMBER_AUTO_FAN_PIN -1
|
||||
#endif
|
||||
|
||||
#if ENABLED(KNUTWURST_MEGAX)
|
||||
#define E0_AUTO_FAN_PIN -1
|
||||
#define E1_AUTO_FAN_PIN -1
|
||||
#define E2_AUTO_FAN_PIN -1
|
||||
#define E3_AUTO_FAN_PIN -1
|
||||
#define E4_AUTO_FAN_PIN -1
|
||||
#define E5_AUTO_FAN_PIN -1
|
||||
#define CHAMBER_AUTO_FAN_PIN -1
|
||||
#endif
|
||||
|
||||
|
||||
#define EXTRUDER_AUTO_FAN_TEMPERATURE 50
|
||||
#define EXTRUDER_AUTO_FAN_SPEED 255 // 255 == full speed
|
||||
@@ -1471,7 +1485,9 @@
|
||||
*
|
||||
* Warning: Does not respect endstops!
|
||||
*/
|
||||
//#define BABYSTEPPING
|
||||
#if ENABLED(KNUTWURST_BLTOUCH)
|
||||
#define BABYSTEPPING
|
||||
#endif
|
||||
#if ENABLED(BABYSTEPPING)
|
||||
//#define INTEGRATED_BABYSTEPPING // EXPERIMENTAL integration of babystepping into the Stepper ISR
|
||||
//#define BABYSTEP_WITHOUT_HOMING
|
||||
@@ -1520,6 +1536,7 @@
|
||||
*/
|
||||
#define LIN_ADVANCE
|
||||
#if ENABLED(LIN_ADVANCE)
|
||||
//#define EXTRA_LIN_ADVANCE_K // Enable for second linear advance constants
|
||||
#define LIN_ADVANCE_K 0 // Unit: mm compression per 1mm/s extruder speed
|
||||
//#define LA_DEBUG // If enabled, this will generate debug information output over USB.
|
||||
#endif
|
||||
@@ -1556,12 +1573,23 @@
|
||||
* probe points will follow. This prevents any change from causing
|
||||
* the probe to be unable to reach any points.
|
||||
*/
|
||||
#if ENABLED(KNUTWURST_BLTOUCH)
|
||||
#if PROBE_SELECTED && !IS_KINEMATIC
|
||||
#define MIN_PROBE_EDGE_LEFT 10
|
||||
#define MIN_PROBE_EDGE_RIGHT 10
|
||||
#define MIN_PROBE_EDGE_FRONT 10
|
||||
#define MIN_PROBE_EDGE_BACK 10
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if DISABLED(KNUTWURST_BLTOUCH)
|
||||
#if PROBE_SELECTED && !IS_KINEMATIC
|
||||
//#define MIN_PROBE_EDGE_LEFT MIN_PROBE_EDGE
|
||||
//#define MIN_PROBE_EDGE_RIGHT MIN_PROBE_EDGE
|
||||
//#define MIN_PROBE_EDGE_FRONT MIN_PROBE_EDGE
|
||||
//#define MIN_PROBE_EDGE_BACK MIN_PROBE_EDGE
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if EITHER(MESH_BED_LEVELING, AUTO_BED_LEVELING_UBL)
|
||||
// Override the mesh area if the automatic (max) area is too large
|
||||
|
@@ -28,7 +28,7 @@
|
||||
/**
|
||||
* Marlin release version identifier
|
||||
*/
|
||||
//#define SHORT_BUILD_VERSION "2.0.5.3"
|
||||
//#define SHORT_BUILD_VERSION "2.0.5.4"
|
||||
|
||||
/**
|
||||
* Verbose version identifier which should contain a reference to the location
|
||||
@@ -41,7 +41,7 @@
|
||||
* here we define this default string as the date where the latest release
|
||||
* version was tagged.
|
||||
*/
|
||||
//#define STRING_DISTRIBUTION_DATE "2020-01-31"
|
||||
//#define STRING_DISTRIBUTION_DATE "2020-07-09"
|
||||
|
||||
/**
|
||||
* Defines a generic printer name to be output to the LCD after booting Marlin.
|
||||
|
@@ -126,7 +126,7 @@
|
||||
#define STR_INVALID_E_STEPPER "Invalid E stepper"
|
||||
#define STR_E_STEPPER_NOT_SPECIFIED "E stepper not specified"
|
||||
#define STR_INVALID_SOLENOID "Invalid solenoid"
|
||||
#define STR_M115_REPORT "FIRMWARE_NAME:Marlin " DETAILED_BUILD_VERSION " MARLIN-AI3M_VERSION:" CUSTOM_BUILD_VERSION " SOURCE_CODE_URL:" SOURCE_CODE_URL " PROTOCOL_VERSION:" PROTOCOL_VERSION " MACHINE_TYPE:" MACHINE_NAME " EXTRUDER_COUNT:" STRINGIFY(EXTRUDERS) " UUID:" MACHINE_UUID
|
||||
#define STR_M115_REPORT "FIRMWARE_NAME:Marlin " DETAILED_BUILD_VERSION " KNUTWURST_AI3M_VERSION:" CUSTOM_BUILD_VERSION " DISTRIBUTION_DATE:" STRING_DISTRIBUTION_DATE " SOURCE_CODE_URL:" SOURCE_CODE_URL " PROTOCOL_VERSION:" PROTOCOL_VERSION " MACHINE_TYPE:" MACHINE_NAME " EXTRUDER_COUNT:" STRINGIFY(EXTRUDERS) " UUID:" MACHINE_UUID
|
||||
#define STR_MARLIN_AI3M "Marlin-AI3M"
|
||||
#define STR_COUNT_X " Count X:"
|
||||
#define STR_COUNT_A " Count A:"
|
||||
|
@@ -347,14 +347,14 @@ struct XYZval {
|
||||
FI XYZval<T> operator* (const XYZEval<T> &rs) { XYZval<T> ls = *this; ls.x *= rs.x; ls.y *= rs.y; ls.z *= rs.z; return ls; }
|
||||
FI XYZval<T> operator/ (const XYZEval<T> &rs) const { XYZval<T> ls = *this; ls.x /= rs.x; ls.y /= rs.y; ls.z /= rs.z; return ls; }
|
||||
FI XYZval<T> operator/ (const XYZEval<T> &rs) { XYZval<T> ls = *this; ls.x /= rs.x; ls.y /= rs.y; ls.z /= rs.z; return ls; }
|
||||
FI XYZval<T> operator* (const float &v) const { XYZval<T> ls = *this; ls.x *= v; ls.y *= v; ls.z *= z; return ls; }
|
||||
FI XYZval<T> operator* (const float &v) { XYZval<T> ls = *this; ls.x *= v; ls.y *= v; ls.z *= z; return ls; }
|
||||
FI XYZval<T> operator* (const int &v) const { XYZval<T> ls = *this; ls.x *= v; ls.y *= v; ls.z *= z; return ls; }
|
||||
FI XYZval<T> operator* (const int &v) { XYZval<T> ls = *this; ls.x *= v; ls.y *= v; ls.z *= z; return ls; }
|
||||
FI XYZval<T> operator/ (const float &v) const { XYZval<T> ls = *this; ls.x /= v; ls.y /= v; ls.z /= z; return ls; }
|
||||
FI XYZval<T> operator/ (const float &v) { XYZval<T> ls = *this; ls.x /= v; ls.y /= v; ls.z /= z; return ls; }
|
||||
FI XYZval<T> operator/ (const int &v) const { XYZval<T> ls = *this; ls.x /= v; ls.y /= v; ls.z /= z; return ls; }
|
||||
FI XYZval<T> operator/ (const int &v) { XYZval<T> ls = *this; ls.x /= v; ls.y /= v; ls.z /= z; return ls; }
|
||||
FI XYZval<T> operator* (const float &v) const { XYZval<T> ls = *this; ls.x *= v; ls.y *= v; ls.z *= v; return ls; }
|
||||
FI XYZval<T> operator* (const float &v) { XYZval<T> ls = *this; ls.x *= v; ls.y *= v; ls.z *= v; return ls; }
|
||||
FI XYZval<T> operator* (const int &v) const { XYZval<T> ls = *this; ls.x *= v; ls.y *= v; ls.z *= v; return ls; }
|
||||
FI XYZval<T> operator* (const int &v) { XYZval<T> ls = *this; ls.x *= v; ls.y *= v; ls.z *= v; return ls; }
|
||||
FI XYZval<T> operator/ (const float &v) const { XYZval<T> ls = *this; ls.x /= v; ls.y /= v; ls.z /= v; return ls; }
|
||||
FI XYZval<T> operator/ (const float &v) { XYZval<T> ls = *this; ls.x /= v; ls.y /= v; ls.z /= v; return ls; }
|
||||
FI XYZval<T> operator/ (const int &v) const { XYZval<T> ls = *this; ls.x /= v; ls.y /= v; ls.z /= v; return ls; }
|
||||
FI XYZval<T> operator/ (const int &v) { XYZval<T> ls = *this; ls.x /= v; ls.y /= v; ls.z /= v; return ls; }
|
||||
FI XYZval<T> operator>>(const int &v) const { XYZval<T> ls = *this; _RS(ls.x); _RS(ls.y); _RS(ls.z); return ls; }
|
||||
FI XYZval<T> operator>>(const int &v) { XYZval<T> ls = *this; _RS(ls.x); _RS(ls.y); _RS(ls.z); return ls; }
|
||||
FI XYZval<T> operator<<(const int &v) const { XYZval<T> ls = *this; _LS(ls.x); _LS(ls.y); _LS(ls.z); return ls; }
|
||||
|
@@ -25,23 +25,26 @@
|
||||
* Release version. Leave the Marlin version or apply a custom scheme.
|
||||
*/
|
||||
#ifndef SHORT_BUILD_VERSION
|
||||
#define SHORT_BUILD_VERSION "2.0.5.3"
|
||||
#define SHORT_BUILD_VERSION "2.0.5.4"
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Verbose version identifier which should contain a reference to the location
|
||||
* from where the binary was downloaded or the source code was compiled.
|
||||
*/
|
||||
/**
|
||||
* Verbose version identifier containing a unique identifier, such as the
|
||||
* vendor name, download location, GitHub account, etc.
|
||||
*/
|
||||
#ifndef DETAILED_BUILD_VERSION
|
||||
#define DETAILED_BUILD_VERSION SHORT_BUILD_VERSION " (knutwurst, Github)"
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Defines the version of the Marlin build. Not to be confused with
|
||||
* Marlin's own build number, e.g. 2.0.x.
|
||||
* The STRING_DISTRIBUTION_DATE represents when the binary file was built,
|
||||
* here we define this default string as the date where the latest release
|
||||
* version was tagged.
|
||||
*/
|
||||
#define CUSTOM_BUILD_VERSION "1.0.6"
|
||||
#define CUSTOM_BUILD_VERSION "1.1.5"
|
||||
|
||||
#ifndef STRING_DISTRIBUTION_DATE
|
||||
#define STRING_DISTRIBUTION_DATE "2020-03-31"
|
||||
#define STRING_DISTRIBUTION_DATE "2020-08-27"
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -68,18 +71,21 @@
|
||||
#define PROTOCOL_VERSION "1.0"
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Defines a generic printer name to be output to the LCD after booting Marlin.
|
||||
*/
|
||||
/**
|
||||
* Define a generic printer name to be output to the LCD after booting Marlin.
|
||||
*/
|
||||
#ifndef MACHINE_NAME
|
||||
#define MACHINE_NAME "Knutwurst's Anycubic i3 MEGA"
|
||||
#endif
|
||||
|
||||
/**
|
||||
* The SOURCE_CODE_URL is the location where users will find the Marlin Source
|
||||
* Code which is installed on the device. In most cases —unless the manufacturer
|
||||
* has a distinct Github fork— the Source Code URL should just be the main
|
||||
* Marlin repository.
|
||||
*/
|
||||
/**
|
||||
* Website where users can find Marlin source code for the binary installed on the
|
||||
* device. Override this if you provide public source code download. (GPLv3 requires
|
||||
* providing the source code to your customers.)
|
||||
*/
|
||||
#ifndef SOURCE_CODE_URL
|
||||
#define SOURCE_CODE_URL "https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S"
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Default generic printer UUID.
|
||||
|
@@ -37,6 +37,8 @@
|
||||
|
||||
#include "HardwareSerial.h"
|
||||
|
||||
millis_t previous_cmd_ms = 0;
|
||||
|
||||
// Define constants and variables for buffering incoming serial data. We're
|
||||
// using a ring buffer (I think), in which head is the index of the location
|
||||
// to which to write the next incoming character and tail is the index of the
|
||||
|
@@ -54,11 +54,9 @@ int Temp_Buf_Bed_Temperature = 0;
|
||||
unsigned char ResumingFlag = 0;
|
||||
#endif
|
||||
|
||||
#define MAX_PRINTABLE_FILENAME_LEN 21
|
||||
|
||||
void setup_OutageTestPin()
|
||||
{
|
||||
#if defined(POWER_OUTAGE_TEST)
|
||||
#ifdef POWER_OUTAGE_TEST
|
||||
pinMode(OUTAGETEST_PIN, INPUT);
|
||||
pinMode(OUTAGECON_PIN, OUTPUT);
|
||||
WRITE(OUTAGECON_PIN, LOW);
|
||||
@@ -112,6 +110,7 @@ AnycubicTouchscreenClass::AnycubicTouchscreenClass()
|
||||
void AnycubicTouchscreenClass::Setup()
|
||||
{
|
||||
HardwareSerial.begin(115200);
|
||||
HARDWARE_SERIAL_ENTER();
|
||||
HARDWARE_SERIAL_PROTOCOLPGM("J17"); // J17 Main board reset
|
||||
HARDWARE_SERIAL_ENTER();
|
||||
delay(10);
|
||||
@@ -122,11 +121,10 @@ void AnycubicTouchscreenClass::Setup()
|
||||
pinMode(SD_DETECT_PIN, INPUT);
|
||||
WRITE(SD_DETECT_PIN, HIGH);
|
||||
#endif
|
||||
|
||||
pinMode(FILAMENT_RUNOUT_PIN, INPUT);
|
||||
WRITE(FILAMENT_RUNOUT_PIN, HIGH);
|
||||
#if ENABLED(ANYCUBIC_FILAMENT_RUNOUT_SENSOR)
|
||||
pinMode(19, INPUT);
|
||||
WRITE(19, HIGH);
|
||||
if ((READ(19) == true) && FilamentSensorEnabled)
|
||||
if ((READ(FILAMENT_RUNOUT_PIN) == true) && FilamentSensorEnabled)
|
||||
{
|
||||
HARDWARE_SERIAL_PROTOCOLPGM("J15"); //J15 FILAMENT LACK
|
||||
HARDWARE_SERIAL_ENTER();
|
||||
@@ -137,8 +135,11 @@ void AnycubicTouchscreenClass::Setup()
|
||||
#endif
|
||||
|
||||
currentTouchscreenSelection[0] = 0;
|
||||
currentFileOrDirectory[0] = '\0';
|
||||
SpecialMenu = false;
|
||||
MMLMenu = false;
|
||||
FilamentSensorEnabled = true;
|
||||
MyFileNrCnt = 0;
|
||||
|
||||
#ifdef STARTUP_CHIME
|
||||
buzzer.tone(100, 554);
|
||||
@@ -438,90 +439,131 @@ void AnycubicTouchscreenClass::HandleSpecialMenu()
|
||||
SERIAL_ECHOPAIR(" DEBUG: Special Menu Selection: ", currentTouchscreenSelection);
|
||||
SERIAL_EOL();
|
||||
#endif
|
||||
if (strcasestr(currentTouchscreenSelection, "<Special Menu>") != NULL)
|
||||
if ((strcasestr(currentTouchscreenSelection, SM_SPECIAL_MENU_L) != NULL)
|
||||
|| (strcasestr(currentTouchscreenSelection, SM_SPECIAL_MENU_S) != NULL))
|
||||
{
|
||||
SpecialMenu = true;
|
||||
}
|
||||
else if (strcasestr(currentTouchscreenSelection, "<PID Tune Hotend>") != NULL)
|
||||
else if ((strcasestr(currentTouchscreenSelection, SM_PID_HOTEND_L) != NULL)
|
||||
|| (strcasestr(currentTouchscreenSelection, SM_PID_HOTEND_S) != NULL))
|
||||
{
|
||||
SERIAL_ECHOLNPGM("Special Menu: PID Tune Hotend");
|
||||
queue.inject_P(PSTR("M106 S204\nM303 E0 S210 C15 U1"));
|
||||
queue.inject_P(PSTR("G28\nG90\nG1 Z20\nG1 X110 Y110 F4000\nG1 Z5\nM106 S172\nG4 P500\nM303 E0 S215 C15 U1\nG4 P500\nM107\nG28\nG1 Z10\nM84\nM500"));
|
||||
buzzer.tone(200, 1108);
|
||||
buzzer.tone(200, 1661);
|
||||
buzzer.tone(200, 1108);
|
||||
buzzer.tone(600, 1661);
|
||||
}
|
||||
else if (strcasestr(currentTouchscreenSelection, "<PID Tune Ultrabase>") != NULL)
|
||||
else if ((strcasestr(currentTouchscreenSelection, SM_PID_BED_L) != NULL)
|
||||
|| (strcasestr(currentTouchscreenSelection, SM_PID_BED_S) != NULL))
|
||||
{
|
||||
SERIAL_ECHOLNPGM("Special Menu: PID Tune Ultrabase");
|
||||
queue.inject_P(PSTR("M303 E-1 S60 C6 U1"));
|
||||
queue.inject_P(PSTR("M303 E-1 S60 C6 U1\nM500"));
|
||||
buzzer.tone(200, 1108);
|
||||
buzzer.tone(200, 1661);
|
||||
buzzer.tone(200, 1108);
|
||||
buzzer.tone(600, 1661);
|
||||
}
|
||||
else if (strcasestr(currentTouchscreenSelection, "<Save EEPROM>") != NULL)
|
||||
else if ((strcasestr(currentTouchscreenSelection, SM_SAVE_EEPROM_L) != NULL)
|
||||
|| (strcasestr(currentTouchscreenSelection, SM_SAVE_EEPROM_S) != NULL))
|
||||
{
|
||||
SERIAL_ECHOLNPGM("Special Menu: Save EEPROM");
|
||||
queue.inject_P(PSTR("M500"));
|
||||
buzzer.tone(105, 1108);
|
||||
buzzer.tone(210, 1661);
|
||||
}
|
||||
else if (strcasestr(currentTouchscreenSelection, "<Load FW Defaults>") != NULL)
|
||||
else if ((strcasestr(currentTouchscreenSelection, SM_LOAD_DEFAULTS_L) != NULL)
|
||||
|| (strcasestr(currentTouchscreenSelection, SM_LOAD_DEFAULTS_S) != NULL))
|
||||
{
|
||||
SERIAL_ECHOLNPGM("Special Menu: Load FW Defaults");
|
||||
queue.inject_P(PSTR("M502"));
|
||||
buzzer.tone(105, 1661);
|
||||
buzzer.tone(210, 1108);
|
||||
}
|
||||
else if (strcasestr(currentTouchscreenSelection, "<Preheat Ultrabase>") != NULL)
|
||||
else if ((strcasestr(currentTouchscreenSelection, SM_PREHEAT_BED_L) != NULL)
|
||||
|| (strcasestr(currentTouchscreenSelection, SM_PREHEAT_BED_S) != NULL))
|
||||
{
|
||||
SERIAL_ECHOLNPGM("Special Menu: Preheat Ultrabase");
|
||||
queue.inject_P(PSTR("M140 S60"));
|
||||
}
|
||||
else if (strcasestr(currentTouchscreenSelection, "<Start Mesh Leveling>") != NULL)
|
||||
|
||||
#if DISABLED(KNUTWURST_BLTOUCH)
|
||||
else if ((strcasestr(currentTouchscreenSelection, SM_MESH_START_L) != NULL)
|
||||
|| (strcasestr(currentTouchscreenSelection, SM_MESH_START_S) != NULL))
|
||||
{
|
||||
SERIAL_ECHOLNPGM("Special Menu: Start Mesh Leveling");
|
||||
queue.inject_P(PSTR("G29 S1"));
|
||||
MMLMenu = true;
|
||||
}
|
||||
else if (strcasestr(currentTouchscreenSelection, "<Next Mesh Point>") != NULL)
|
||||
else if ((strcasestr(currentTouchscreenSelection, SM_MESH_NEXT_L) != NULL)
|
||||
|| (strcasestr(currentTouchscreenSelection, SM_MESH_NEXT_S) != NULL))
|
||||
{
|
||||
SERIAL_ECHOLNPGM("Special Menu: Next Mesh Point");
|
||||
queue.inject_P(PSTR("G29 S2"));
|
||||
}
|
||||
else if (strcasestr(currentTouchscreenSelection, "<Z Up 0.1>") != NULL)
|
||||
else if ((strcasestr(currentTouchscreenSelection, SM_Z_UP_01_L) != NULL)
|
||||
|| (strcasestr(currentTouchscreenSelection, SM_Z_UP_01_S) != NULL))
|
||||
{
|
||||
SERIAL_ECHOLNPGM("Special Menu: Z Up 0.1");
|
||||
queue.inject_P(PSTR("G91\nG1 Z+0.1\nG90"));
|
||||
}
|
||||
else if (strcasestr(currentTouchscreenSelection, "<Z Down 0.1>") != NULL)
|
||||
else if ((strcasestr(currentTouchscreenSelection, SM_Z_DN_01_L) != NULL)
|
||||
|| (strcasestr(currentTouchscreenSelection, SM_Z_DN_01_S) != NULL))
|
||||
{
|
||||
SERIAL_ECHOLNPGM("Special Menu: Z Down 0.1");
|
||||
queue.inject_P(PSTR("G91\nG1 Z-0.1\nG90"));
|
||||
}
|
||||
else if (strcasestr(currentTouchscreenSelection, "<Z Up 0.02>") != NULL)
|
||||
else if ((strcasestr(currentTouchscreenSelection, SM_Z_UP_002_L) != NULL)
|
||||
|| (strcasestr(currentTouchscreenSelection, SM_Z_UP_002_S) != NULL))
|
||||
{
|
||||
SERIAL_ECHOLNPGM("Special Menu: Z Up 0.02");
|
||||
queue.inject_P(PSTR("G91\nG1 Z+0.02\nG90"));
|
||||
}
|
||||
else if (strcasestr(currentTouchscreenSelection, "<Z Down 0.02>") != NULL)
|
||||
else if ((strcasestr(currentTouchscreenSelection, SM_Z_DN_002_L) != NULL)
|
||||
|| (strcasestr(currentTouchscreenSelection, SM_Z_DN_002_S) != NULL))
|
||||
{
|
||||
SERIAL_ECHOLNPGM("Special Menu: Z Down 0.02");
|
||||
queue.inject_P(PSTR("G91\nG1 Z-0.02\nG90"));
|
||||
}
|
||||
else if (strcasestr(currentTouchscreenSelection, "<Z Up 0.01>") != NULL)
|
||||
else if ((strcasestr(currentTouchscreenSelection, SM_Z_UP_001_L) != NULL)
|
||||
|| (strcasestr(currentTouchscreenSelection, SM_Z_UP_001_S) != NULL))
|
||||
{
|
||||
SERIAL_ECHOLNPGM("Special Menu: Z Up 0.01");
|
||||
queue.inject_P(PSTR("G91\nG1 Z+0.01\nG90"));
|
||||
queue.inject_P(PSTR("G91\nG1 Z+0.03\nG4 P250\nG1 Z-0.02\nG90"));
|
||||
}
|
||||
else if (strcasestr(currentTouchscreenSelection, "<Z Down 0.01>") != NULL)
|
||||
else if ((strcasestr(currentTouchscreenSelection, SM_Z_DN_001_L) != NULL)
|
||||
|| (strcasestr(currentTouchscreenSelection, SM_Z_DN_001_S) != NULL))
|
||||
{
|
||||
SERIAL_ECHOLNPGM("Special Menu: Z Down 0.01");
|
||||
queue.inject_P(PSTR("G91\nG1 Z-0.01\nG90"));
|
||||
queue.inject_P(PSTR("G91\nG1 Z+0.02\nG4 P250\nG1 Z-0.03\nG90"));
|
||||
}
|
||||
else if (strcasestr(currentTouchscreenSelection, "<Fil. Change Pause>") != NULL)
|
||||
#endif
|
||||
|
||||
#if ENABLED(KNUTWURST_BLTOUCH)
|
||||
else if ((strcasestr(currentTouchscreenSelection, SM_BLTOUCH_L) != NULL)
|
||||
|| (strcasestr(currentTouchscreenSelection, SM_BLTOUCH_S) != NULL))
|
||||
{
|
||||
SERIAL_ECHOLNPGM("Special Menu: BLTouch Leveling");
|
||||
queue.inject_P(PSTR("G28\nG29\nM500\nG90\nG1 Z30 F4000\nG1 X0 F4000\nG91\nM84"));
|
||||
buzzer.tone(105, 1108);
|
||||
buzzer.tone(210, 1661);
|
||||
}
|
||||
#endif
|
||||
|
||||
else if ((strcasestr(currentTouchscreenSelection, SM_PAUSE_L) != NULL)
|
||||
|| (strcasestr(currentTouchscreenSelection, SM_PAUSE_L) != NULL))
|
||||
{
|
||||
SERIAL_ECHOLNPGM("Special Menu: Fil. Change Pause");
|
||||
FilamentChangePause();
|
||||
}
|
||||
else if (strcasestr(currentTouchscreenSelection, "<Fil. Change Resume>") != NULL)
|
||||
else if ((strcasestr(currentTouchscreenSelection, SM_RESUME_L) != NULL)
|
||||
|| (strcasestr(currentTouchscreenSelection, SM_RESUME_S) != NULL))
|
||||
{
|
||||
SERIAL_ECHOLNPGM("Special Menu: Fil. Change Resume");
|
||||
FilamentChangeResume();
|
||||
}
|
||||
else if (strcasestr(currentTouchscreenSelection, "<Disable Fil. Sensor>") != NULL)
|
||||
else if ((strcasestr(currentTouchscreenSelection, SM_DIS_FILSENS_L) != NULL)
|
||||
|| (strcasestr(currentTouchscreenSelection, SM_DIS_FILSENS_S) != NULL))
|
||||
{
|
||||
SERIAL_ECHOLNPGM("Special Menu: Disable Filament Sensor");
|
||||
FilamentSensorEnabled = false;
|
||||
@@ -529,94 +571,137 @@ void AnycubicTouchscreenClass::HandleSpecialMenu()
|
||||
buzzer.tone(105, 1108);
|
||||
buzzer.tone(105, 1108);
|
||||
}
|
||||
else if (strcasestr(currentTouchscreenSelection, "<Enable Fil. Sensor>") != NULL)
|
||||
else if ((strcasestr(currentTouchscreenSelection, SM_EN_FILSENS_L) != NULL)
|
||||
|| (strcasestr(currentTouchscreenSelection, SM_EN_FILSENS_S) != NULL))
|
||||
{
|
||||
SERIAL_ECHOLNPGM("Special Menu: Enable Filament Sensor");
|
||||
FilamentSensorEnabled = true;
|
||||
buzzer.tone(105, 1108);
|
||||
buzzer.tone(105, 1108);
|
||||
}
|
||||
else if (strcasestr(currentTouchscreenSelection, "<Exit>") != NULL)
|
||||
else if ((strcasestr(currentTouchscreenSelection, SM_EXIT_L) != NULL)
|
||||
|| (strcasestr(currentTouchscreenSelection, SM_EXIT_S) != NULL))
|
||||
{
|
||||
SpecialMenu = false;
|
||||
}
|
||||
else if ((strcasestr(currentTouchscreenSelection, SM_BACK_L) != NULL)
|
||||
|| (strcasestr(currentTouchscreenSelection, SM_BACK_S) != NULL))
|
||||
{
|
||||
MMLMenu = false;
|
||||
}
|
||||
}
|
||||
|
||||
void AnycubicTouchscreenClass::AnycubicTouchscreen()
|
||||
|
||||
void AnycubicTouchscreenClass::PrintList()
|
||||
{
|
||||
if (SpecialMenu)
|
||||
if(MMLMenu)
|
||||
{
|
||||
switch (filenumber)
|
||||
{
|
||||
case 0: // Page 1
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_Z_UP_01_S);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_Z_UP_01_L);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_Z_DN_01_S);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_Z_DN_01_L);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_Z_UP_002_S);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_Z_UP_002_L);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_Z_DN_002_S);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_Z_DN_002_L);
|
||||
break;
|
||||
|
||||
case 4: // Page 2
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_Z_UP_001_S);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_Z_UP_001_L);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_Z_DN_001_S);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_Z_DN_001_L);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_MESH_NEXT_S);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_MESH_NEXT_L);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_BACK_S);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_BACK_L);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if (SpecialMenu)
|
||||
{
|
||||
switch (filenumber)
|
||||
{
|
||||
case 0: // Page 1
|
||||
HARDWARE_SERIAL_PROTOCOLLN("<Exit>");
|
||||
HARDWARE_SERIAL_PROTOCOLLN("<Exit>");
|
||||
HARDWARE_SERIAL_PROTOCOLLN("<Preheat Ultrabase>");
|
||||
HARDWARE_SERIAL_PROTOCOLLN("<Preheat Ultrabase>");
|
||||
HARDWARE_SERIAL_PROTOCOLLN("<Fil. Change Pause>");
|
||||
HARDWARE_SERIAL_PROTOCOLLN("<Fil. Change Pause>");
|
||||
HARDWARE_SERIAL_PROTOCOLLN("<Fil. Change Resume>");
|
||||
HARDWARE_SERIAL_PROTOCOLLN("<Fil. Change Resume>");
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_EXIT_S);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_EXIT_L);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_PREHEAT_BED_S);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_PREHEAT_BED_L);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_PAUSE_S);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_PAUSE_L);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_RESUME_S);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_RESUME_L);
|
||||
break;
|
||||
|
||||
#if DISABLED(KNUTWURST_BLTOUCH)
|
||||
case 4: // Page 2
|
||||
HARDWARE_SERIAL_PROTOCOLLN("<Start Mesh Leveling>");
|
||||
HARDWARE_SERIAL_PROTOCOLLN("<Start Mesh Leveling>");
|
||||
HARDWARE_SERIAL_PROTOCOLLN("<Next Mesh Point>");
|
||||
HARDWARE_SERIAL_PROTOCOLLN("<Next Mesh Point>");
|
||||
HARDWARE_SERIAL_PROTOCOLLN("<Z Up 0.1>");
|
||||
HARDWARE_SERIAL_PROTOCOLLN("<Z Up 0.1>");
|
||||
HARDWARE_SERIAL_PROTOCOLLN("<Z Down 0.1>");
|
||||
HARDWARE_SERIAL_PROTOCOLLN("<Z Down 0.1>");
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_MESH_START_S);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_MESH_START_L);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_PID_HOTEND_S);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_PID_HOTEND_L);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_PID_BED_S);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_PID_BED_L);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_SAVE_EEPROM_S);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_SAVE_EEPROM_L);
|
||||
break;
|
||||
|
||||
case 8: // Page 3
|
||||
HARDWARE_SERIAL_PROTOCOLLN("<Z Up 0.02>");
|
||||
HARDWARE_SERIAL_PROTOCOLLN("<Z Up 0.02>");
|
||||
HARDWARE_SERIAL_PROTOCOLLN("<Z Down 0.02>");
|
||||
HARDWARE_SERIAL_PROTOCOLLN("<Z Down 0.02>");
|
||||
HARDWARE_SERIAL_PROTOCOLLN("<Z Up 0.01>");
|
||||
HARDWARE_SERIAL_PROTOCOLLN("<Z Up 0.01>");
|
||||
HARDWARE_SERIAL_PROTOCOLLN("<Z Down 0.01>");
|
||||
HARDWARE_SERIAL_PROTOCOLLN("<Z Down 0.01>");
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_LOAD_DEFAULTS_S);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_LOAD_DEFAULTS_L);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_DIS_FILSENS_S);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_DIS_FILSENS_L);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_EN_FILSENS_S);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_EN_FILSENS_L);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_EXIT_S);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_EXIT_L);
|
||||
break;
|
||||
#endif
|
||||
|
||||
#if ENABLED(KNUTWURST_BLTOUCH)
|
||||
case 4: // Page 2
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_BLTOUCH_S);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_BLTOUCH_L);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_PID_HOTEND_S);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_PID_HOTEND_L);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_PID_BED_S);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_PID_BED_L);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_DIS_FILSENS_S);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_DIS_FILSENS_L);
|
||||
break;
|
||||
|
||||
case 12: // Page 4
|
||||
HARDWARE_SERIAL_PROTOCOLLN("<PID Tune Hotend>");
|
||||
HARDWARE_SERIAL_PROTOCOLLN("<PID Tune Hotend>");
|
||||
HARDWARE_SERIAL_PROTOCOLLN("<PID Tune Ultrabase>");
|
||||
HARDWARE_SERIAL_PROTOCOLLN("<PID Tune Ultrabase>");
|
||||
HARDWARE_SERIAL_PROTOCOLLN("<Save EEPROM>");
|
||||
HARDWARE_SERIAL_PROTOCOLLN("<Save EEPROM>");
|
||||
HARDWARE_SERIAL_PROTOCOLLN("<Load FW Defaults>");
|
||||
HARDWARE_SERIAL_PROTOCOLLN("<Load FW Defaults>");
|
||||
case 8: // Page 3
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_EN_FILSENS_S);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_EN_FILSENS_L);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_SAVE_EEPROM_S);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_SAVE_EEPROM_L);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_LOAD_DEFAULTS_S);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_LOAD_DEFAULTS_L);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_EXIT_S);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_EXIT_L);
|
||||
break;
|
||||
|
||||
case 16: // Page 5
|
||||
HARDWARE_SERIAL_PROTOCOLLN("<Disable Fil. Sensor>");
|
||||
HARDWARE_SERIAL_PROTOCOLLN("<Disable Fil. Sensor>");
|
||||
HARDWARE_SERIAL_PROTOCOLLN("<Enable Fil. Sensor>");
|
||||
HARDWARE_SERIAL_PROTOCOLLN("<Enable Fil. Sensor>");
|
||||
HARDWARE_SERIAL_PROTOCOLLN("<Exit>");
|
||||
HARDWARE_SERIAL_PROTOCOLLN("<Exit>");
|
||||
break;
|
||||
|
||||
#endif
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
#ifdef SDSUPPORT
|
||||
#ifdef SDSUPPORT
|
||||
else if (card.isMounted())
|
||||
{
|
||||
uint16_t count = filenumber;
|
||||
uint16_t max_files;
|
||||
uint16_t dir_files = card.countFilesInWorkDir();
|
||||
uint16_t MyFileNrCnt = card.countFilesInWorkDir();
|
||||
|
||||
// What is this shit? What if there are exactely 3 files+folders?
|
||||
// TODO: find something better than this crap.
|
||||
if ((dir_files - filenumber) < 4)
|
||||
if ((MyFileNrCnt - filenumber) < 4)
|
||||
{
|
||||
max_files = dir_files;
|
||||
max_files = MyFileNrCnt;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -625,21 +710,32 @@ void AnycubicTouchscreenClass::AnycubicTouchscreen()
|
||||
|
||||
for (count = filenumber; count <= max_files; count++)
|
||||
{
|
||||
#ifdef ANYCUBIC_TFT_DEBUG
|
||||
SERIAL_ECHOPGM("filenumber: ");
|
||||
SERIAL_ECHOLN(filenumber);
|
||||
SERIAL_ECHOPGM("max_files: ");
|
||||
SERIAL_ECHOLN(max_files);
|
||||
SERIAL_ECHOPGM("count: ");
|
||||
SERIAL_ECHOLN(count);
|
||||
#endif
|
||||
|
||||
if (count == 0) // Special Entry
|
||||
{
|
||||
if (strcmp(card.getWorkDirName(), "/") == 0)
|
||||
{
|
||||
HARDWARE_SERIAL_PROTOCOLLN("<Special Menu>");
|
||||
HARDWARE_SERIAL_PROTOCOLLN("<Special Menu>");
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_SPECIAL_MENU_S);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_SPECIAL_MENU_L);
|
||||
SERIAL_ECHO(count);
|
||||
SERIAL_ECHOLNPGM("<Special_Menu>");
|
||||
SERIAL_ECHO(": ");
|
||||
SERIAL_ECHOLNPGM(SM_SPECIAL_MENU_L);
|
||||
}
|
||||
else
|
||||
{
|
||||
HARDWARE_SERIAL_PROTOCOLLN("/..");
|
||||
HARDWARE_SERIAL_PROTOCOLLN("/..");
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_DIR_UP_S);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_DIR_UP_L);
|
||||
SERIAL_ECHO(count);
|
||||
SERIAL_ECHOLNPGM("/..");
|
||||
SERIAL_ECHO(": ");
|
||||
SERIAL_ECHOLNPGM(SM_DIR_UP_L);
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -652,37 +748,58 @@ void AnycubicTouchscreenClass::AnycubicTouchscreen()
|
||||
|
||||
// Cut off too long filenames.
|
||||
// They don't fit on the screen anyways.
|
||||
if(fileNameLen > MAX_PRINTABLE_FILENAME_LEN)
|
||||
fileNameLen = MAX_PRINTABLE_FILENAME_LEN;
|
||||
//if(fileNameLen > MAX_PRINTABLE_FILENAME_LEN)
|
||||
// fileNameLen = MAX_PRINTABLE_FILENAME_LEN;
|
||||
|
||||
char buffer[fileNameLen];
|
||||
char outputString[fileNameLen];
|
||||
|
||||
for (unsigned char i = 0; i < fileNameLen; i++)
|
||||
for (unsigned char i = 0; i <= fileNameLen; i++)
|
||||
{
|
||||
buffer[i] = card.longFilename[i];
|
||||
if (!isPrintable(buffer[i]))
|
||||
if(i >= fileNameLen)
|
||||
{
|
||||
buffer[i] = '_';
|
||||
outputString[i] = ' ';
|
||||
}
|
||||
else
|
||||
{
|
||||
outputString[i] = card.longFilename[i];
|
||||
if (!isPrintable(outputString[i]))
|
||||
{
|
||||
outputString[i] = '_';
|
||||
}
|
||||
}
|
||||
}
|
||||
buffer[fileNameLen] = '\0';
|
||||
|
||||
outputString[fileNameLen] = '\0';
|
||||
|
||||
if (card.flag.filenameIsDir)
|
||||
{
|
||||
#if ENABLED(KNUTWURST_DGUS2_TFT)
|
||||
HARDWARE_SERIAL_PROTOCOLPGM("/");
|
||||
HARDWARE_SERIAL_PROTOCOLLN(card.filename);
|
||||
HARDWARE_SERIAL_PROTOCOL(card.filename);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(".GCO");
|
||||
HARDWARE_SERIAL_PROTOCOLPGM("/");
|
||||
HARDWARE_SERIAL_PROTOCOLLN(buffer);
|
||||
HARDWARE_SERIAL_PROTOCOL(outputString);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(".gcode");
|
||||
SERIAL_ECHO(count);
|
||||
SERIAL_ECHOPGM("/");
|
||||
SERIAL_ECHOLN(buffer);
|
||||
SERIAL_ECHOPGM(": /");
|
||||
SERIAL_ECHOLN(outputString);
|
||||
#else
|
||||
HARDWARE_SERIAL_PROTOCOL("/");
|
||||
HARDWARE_SERIAL_PROTOCOLLN(card.filename);
|
||||
HARDWARE_SERIAL_PROTOCOL("/");
|
||||
HARDWARE_SERIAL_PROTOCOLLN(outputString);
|
||||
SERIAL_ECHO(count);
|
||||
SERIAL_ECHOPGM(": /");
|
||||
SERIAL_ECHOLN(outputString);
|
||||
#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
HARDWARE_SERIAL_PROTOCOLLN(card.filename);
|
||||
HARDWARE_SERIAL_PROTOCOLLN(buffer);
|
||||
HARDWARE_SERIAL_PROTOCOLLN(outputString);
|
||||
SERIAL_ECHO(count);
|
||||
SERIAL_ECHOLN(buffer);
|
||||
SERIAL_ECHOPGM(": ");
|
||||
SERIAL_ECHOLN(outputString);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -690,7 +807,8 @@ void AnycubicTouchscreenClass::AnycubicTouchscreen()
|
||||
#endif
|
||||
else
|
||||
{
|
||||
// Do nothing?
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_SPECIAL_MENU_S);
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_SPECIAL_MENU_L);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -872,7 +990,7 @@ void AnycubicTouchscreenClass::FilamentRunout()
|
||||
if (FilamentSensorEnabled == true)
|
||||
{
|
||||
#if ENABLED(ANYCUBIC_FILAMENT_RUNOUT_SENSOR)
|
||||
FilamentTestStatus = READ(19) & 0xff;
|
||||
FilamentTestStatus = READ(FILAMENT_RUNOUT_PIN) & 0xff;
|
||||
|
||||
if (FilamentTestStatus > FilamentTestLastStatus)
|
||||
{
|
||||
@@ -886,8 +1004,8 @@ void AnycubicTouchscreenClass::FilamentRunout()
|
||||
#ifdef ANYCUBIC_TFT_DEBUG
|
||||
SERIAL_ECHOLNPGM("DEBUG: Set filament trigger time");
|
||||
#endif
|
||||
// set the delayed timestamp to 3000ms later
|
||||
fil_delay = fil_ms + 3000UL;
|
||||
// set the delayed timestamp to 5000ms later
|
||||
fil_delay = fil_ms + 5000UL;
|
||||
// this doesn't need to run until the filament is recovered again
|
||||
FilamentSetMillis = false;
|
||||
}
|
||||
@@ -899,7 +1017,7 @@ void AnycubicTouchscreenClass::FilamentRunout()
|
||||
if (!IsParked)
|
||||
{
|
||||
#ifdef ANYCUBIC_TFT_DEBUG
|
||||
SERIAL_ECHOLNPGM("DEBUG: 3000ms delay done");
|
||||
SERIAL_ECHOLNPGM("DEBUG: 5000ms delay done");
|
||||
#endif
|
||||
if (card.isPrinting())
|
||||
{
|
||||
@@ -936,36 +1054,72 @@ void AnycubicTouchscreenClass::FilamentRunout()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static boolean TFTcomment_mode = false;
|
||||
|
||||
void AnycubicTouchscreenClass::GetCommandFromTFT()
|
||||
{
|
||||
|
||||
char *starpos = NULL;
|
||||
while (HardwareSerial.available() > 0 && TFTbuflen < TFTBUFSIZE)
|
||||
{
|
||||
serial3_char = HardwareSerial.read();
|
||||
if (serial3_char == '\n' ||
|
||||
serial3_char == '\r' ||
|
||||
serial3_char == ':' ||
|
||||
serial3_count >= (TFT_MAX_CMD_SIZE - 1))
|
||||
while( HardwareSerial.available() > 0 && TFTbuflen < TFTBUFSIZE)
|
||||
{
|
||||
serial3_char = HardwareSerial.read();
|
||||
if(serial3_char == '\n' || serial3_char == '\r' || (serial3_char == ':' && TFTcomment_mode == false) || serial3_count >= (TFT_MAX_CMD_SIZE - 1) )
|
||||
{
|
||||
if (!serial3_count)
|
||||
{ //if empty line
|
||||
if(!serial3_count) { //if empty line
|
||||
TFTcomment_mode = false; //for new command
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
TFTcmdbuffer[TFTbufindw][serial3_count] = 0; //terminate string
|
||||
if(!TFTcomment_mode)
|
||||
{
|
||||
TFTcomment_mode = false; //for new command
|
||||
|
||||
TFTcmdbuffer[TFTbufindw][serial3_count] = 0; //terminate string
|
||||
|
||||
if ((strchr(TFTcmdbuffer[TFTbufindw], 'A') != NULL))
|
||||
if(strchr(TFTcmdbuffer[TFTbufindw], 'N') != NULL)
|
||||
{
|
||||
if(strchr(TFTcmdbuffer[TFTbufindw], '*') != NULL)
|
||||
{
|
||||
byte checksum = 0;
|
||||
byte count = 0;
|
||||
while(TFTcmdbuffer[TFTbufindw][count] != '*') checksum = checksum^TFTcmdbuffer[TFTbufindw][count++];
|
||||
TFTstrchr_pointer = strchr(TFTcmdbuffer[TFTbufindw], '*');
|
||||
|
||||
if( (int)(strtod(&TFTcmdbuffer[TFTbufindw][TFTstrchr_pointer - TFTcmdbuffer[TFTbufindw] + 1], NULL)) != checksum)
|
||||
{
|
||||
HARDWARE_SERIAL_ERROR_START;
|
||||
HardwareSerial.flush();
|
||||
HARDWARE_SERIAL_ERROR_START;
|
||||
HardwareSerial.flush();
|
||||
serial3_count = 0;
|
||||
return;
|
||||
}
|
||||
//if no errors, continue parsing
|
||||
}
|
||||
else
|
||||
{
|
||||
HARDWARE_SERIAL_ERROR_START;
|
||||
HardwareSerial.flush();
|
||||
serial3_count = 0;
|
||||
return;
|
||||
}
|
||||
//if no errors, continue parsing
|
||||
}
|
||||
else // if we don't receive 'N' but still see '*'
|
||||
{
|
||||
if((strchr(TFTcmdbuffer[TFTbufindw], '*') != NULL))
|
||||
{
|
||||
HARDWARE_SERIAL_ERROR_START;
|
||||
serial3_count = 0;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if((strchr(TFTcmdbuffer[TFTbufindw], 'A') != NULL))
|
||||
{
|
||||
int16_t a_command;
|
||||
TFTstrchr_pointer = strchr(TFTcmdbuffer[TFTbufindw], 'A');
|
||||
a_command = ((int)((strtod(&TFTcmdbuffer[TFTbufindw][TFTstrchr_pointer - TFTcmdbuffer[TFTbufindw] + 1], NULL))));
|
||||
|
||||
#ifdef ANYCUBIC_TFT_DEBUG
|
||||
if ((a_command > 7) && (a_command != 20)) // No debugging of status polls, please!
|
||||
SERIAL_ECHOLNPAIR("TFT Serial Command: ", TFTcmdbuffer[TFTbufindw]);
|
||||
#endif
|
||||
|
||||
switch (a_command)
|
||||
switch((int)((strtod(&TFTcmdbuffer[TFTbufindw][TFTstrchr_pointer - TFTcmdbuffer[TFTbufindw] + 1], NULL))))
|
||||
{
|
||||
|
||||
case 0: //A0 GET HOTEND TEMP
|
||||
@@ -1029,7 +1183,7 @@ void AnycubicTouchscreenClass::GetCommandFromTFT()
|
||||
}
|
||||
else
|
||||
{
|
||||
HARDWARE_SERIAL_PROTOCOLPGM("J02");
|
||||
HARDWARE_SERIAL_PROTOCOLPGM("J02"); // J02 SD Card initilized
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -1063,22 +1217,16 @@ void AnycubicTouchscreenClass::GetCommandFromTFT()
|
||||
case 8: // A8 GET SD LIST
|
||||
#ifdef SDSUPPORT
|
||||
currentTouchscreenSelection[0] = 0;
|
||||
if (!IS_SD_INSERTED())
|
||||
{
|
||||
HARDWARE_SERIAL_PROTOCOLPGM("J02");
|
||||
HARDWARE_SERIAL_ENTER();
|
||||
}
|
||||
else
|
||||
{
|
||||
if (CodeSeen('S'))
|
||||
filenumber = CodeValue();
|
||||
|
||||
HARDWARE_SERIAL_PROTOCOLPGM("FN "); // Filelist start
|
||||
HARDWARE_SERIAL_ENTER();
|
||||
AnycubicTouchscreen();
|
||||
HARDWARE_SERIAL_PROTOCOLPGM("END"); // Filelist stop
|
||||
HARDWARE_SERIAL_ENTER();
|
||||
}
|
||||
if (CodeSeen('S'))
|
||||
filenumber = CodeValue();
|
||||
|
||||
HARDWARE_SERIAL_PROTOCOLPGM("FN "); // Filelist start
|
||||
HARDWARE_SERIAL_ENTER();
|
||||
PrintList();
|
||||
HARDWARE_SERIAL_PROTOCOLPGM("END"); // Filelist stop
|
||||
HARDWARE_SERIAL_ENTER();
|
||||
|
||||
#endif
|
||||
break;
|
||||
case 9: // A9 pause sd print
|
||||
@@ -1142,9 +1290,15 @@ void AnycubicTouchscreenClass::GetCommandFromTFT()
|
||||
if ((TFTstate != ANYCUBIC_TFT_STATE_SDOUTAGE))
|
||||
{
|
||||
starpos = (strchr(TFTstrchr_pointer + 4, '*'));
|
||||
|
||||
if (TFTstrchr_pointer[4] == '/')
|
||||
{
|
||||
strcpy(currentTouchscreenSelection, TFTstrchr_pointer + 5);
|
||||
|
||||
#ifdef ANYCUBIC_TFT_DEBUG
|
||||
SERIAL_ECHOPAIR(" TFT Serial Debug: currentTouchscreenSelection: ",currentTouchscreenSelection);
|
||||
SERIAL_EOL();
|
||||
#endif
|
||||
}
|
||||
else if (TFTstrchr_pointer[4] == '<')
|
||||
{
|
||||
@@ -1154,6 +1308,10 @@ void AnycubicTouchscreenClass::GetCommandFromTFT()
|
||||
{
|
||||
currentTouchscreenSelection[0] = 0;
|
||||
|
||||
#ifdef ANYCUBIC_TFT_DEBUG
|
||||
SERIAL_ECHOLNPGM("TFT Serial Debug: Normal file open path");
|
||||
#endif
|
||||
|
||||
if (starpos != NULL)
|
||||
*(starpos - 1) = '\0';
|
||||
card.openFileRead(TFTstrchr_pointer + 4);
|
||||
@@ -1381,8 +1539,8 @@ void AnycubicTouchscreenClass::GetCommandFromTFT()
|
||||
{
|
||||
if ((current_position[Z_AXIS] < 10))
|
||||
queue.inject_P(PSTR("G1 Z10")); // RAISE Z AXIS
|
||||
thermalManager.setTargetBed(50);
|
||||
thermalManager.setTargetHotend(200, 0);
|
||||
thermalManager.setTargetBed(KNUTWURST_PRHEAT_BED_PLA);
|
||||
thermalManager.setTargetHotend(KNUTWURST_PRHEAT_NOZZLE_PLA, 0);
|
||||
HARDWARE_SERIAL_SUCC_START;
|
||||
HARDWARE_SERIAL_ENTER();
|
||||
}
|
||||
@@ -1392,9 +1550,8 @@ void AnycubicTouchscreenClass::GetCommandFromTFT()
|
||||
{
|
||||
if ((current_position[Z_AXIS] < 10))
|
||||
queue.inject_P(PSTR("G1 Z10")); //RAISE Z AXIS
|
||||
thermalManager.setTargetBed(80);
|
||||
thermalManager.setTargetHotend(240, 0);
|
||||
|
||||
thermalManager.setTargetBed(KNUTWURST_PRHEAT_BED_ABS);
|
||||
thermalManager.setTargetHotend(KNUTWURST_PRHEAT_NOZZLE_ABS, 0);
|
||||
HARDWARE_SERIAL_SUCC_START;
|
||||
HARDWARE_SERIAL_ENTER();
|
||||
}
|
||||
@@ -1413,39 +1570,52 @@ void AnycubicTouchscreenClass::GetCommandFromTFT()
|
||||
break;
|
||||
case 26: // A26 refresh SD
|
||||
#ifdef SDSUPPORT
|
||||
#ifdef ANYCUBIC_TFT_DEBUG
|
||||
SERIAL_ECHOPAIR(" TFT Serial Debug: currentTouchscreenSelection: ",currentTouchscreenSelection);
|
||||
SERIAL_EOL();
|
||||
#endif
|
||||
if (currentTouchscreenSelection[0] == 0)
|
||||
{
|
||||
card.mount();
|
||||
}
|
||||
else
|
||||
{
|
||||
if ((currentTouchscreenSelection[0] == '.') && (currentTouchscreenSelection[1] == '.'))
|
||||
if ((strcasestr(currentTouchscreenSelection, SM_DIR_UP_S) != NULL)
|
||||
|| (strcasestr(currentTouchscreenSelection, SM_DIR_UP_L) != NULL))
|
||||
{
|
||||
#ifdef ANYCUBIC_TFT_DEBUG
|
||||
SERIAL_ECHOLNPGM("TFT Serial Debug: Directory UP (cd ..)");
|
||||
#endif
|
||||
card.cdup();
|
||||
}
|
||||
else
|
||||
{
|
||||
if (currentTouchscreenSelection[0] == '<')
|
||||
{
|
||||
#ifdef ANYCUBIC_TFT_DEBUG
|
||||
SERIAL_ECHOLNPGM("TFT Serial Debug: Enter Special Menu");
|
||||
#endif
|
||||
HandleSpecialMenu();
|
||||
}
|
||||
else
|
||||
{
|
||||
#ifdef ANYCUBIC_TFT_DEBUG
|
||||
SERIAL_ECHOLNPGM("TFT Serial Debug: Not a menu. Must be a directory!");
|
||||
#endif
|
||||
|
||||
#if ENABLED(KNUTWURST_DGUS2_TFT)
|
||||
strcpy(currentFileOrDirectory, currentTouchscreenSelection);
|
||||
int currentFileLen = strlen(currentFileOrDirectory);
|
||||
currentFileOrDirectory[currentFileLen - 4] = '\0';
|
||||
card.cd(currentFileOrDirectory);
|
||||
#else
|
||||
card.cd(currentTouchscreenSelection);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
currentTouchscreenSelection[0] = 0;
|
||||
|
||||
if (!IS_SD_INSERTED())
|
||||
{
|
||||
HARDWARE_SERIAL_PROTOCOLPGM("J02"); // J02 SD Card initilized
|
||||
HARDWARE_SERIAL_ENTER();
|
||||
#ifdef ANYCUBIC_TFT_DEBUG
|
||||
SERIAL_ECHOLNPGM("TFT Serial Debug: SD card initialized... J02");
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
break;
|
||||
#ifdef SERVO_ENDSTOPS
|
||||
@@ -1464,25 +1634,29 @@ void AnycubicTouchscreenClass::GetCommandFromTFT()
|
||||
case 33: // A33 get version info
|
||||
{
|
||||
HARDWARE_SERIAL_PROTOCOLPGM("J33 ");
|
||||
HARDWARE_SERIAL_PROTOCOLPGM("KW-");
|
||||
HARDWARE_SERIAL_PROTOCOLPGM(MSG_MY_VERSION);
|
||||
HARDWARE_SERIAL_ENTER();
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
TFTbufindw = (TFTbufindw + 1) % TFTBUFSIZE;
|
||||
TFTbuflen += 1;
|
||||
serial3_count = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
TFTcmdbuffer[TFTbufindw][serial3_count++] = serial3_char;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
TFTbufindw = (TFTbufindw + 1)%TFTBUFSIZE;
|
||||
TFTbuflen += 1;
|
||||
}
|
||||
serial3_count = 0; //clear buffer
|
||||
}
|
||||
else
|
||||
{
|
||||
if(serial3_char == ';') TFTcomment_mode = true;
|
||||
if(!TFTcomment_mode) TFTcmdbuffer[TFTbufindw][serial3_count++] = serial3_char;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void AnycubicTouchscreenClass::CommandScan()
|
||||
{
|
||||
CheckHeaterError();
|
||||
|
@@ -33,7 +33,10 @@ char *ftostr32(const float &);
|
||||
|
||||
#define TFTBUFSIZE 4
|
||||
#define TFT_MAX_CMD_SIZE 96
|
||||
#define MSG_MY_VERSION "Knutwurst-1.0.5"
|
||||
#define MSG_MY_VERSION CUSTOM_BUILD_VERSION
|
||||
#define MAX_PRINTABLE_FILENAME_LEN 30
|
||||
|
||||
#define FILAMENT_RUNOUT_PIN 19
|
||||
|
||||
#define ANYCUBIC_TFT_STATE_IDLE 0
|
||||
#define ANYCUBIC_TFT_STATE_SDPRINT 1
|
||||
@@ -43,6 +46,101 @@ char *ftostr32(const float &);
|
||||
#define ANYCUBIC_TFT_STATE_SDSTOP_REQ 5
|
||||
#define ANYCUBIC_TFT_STATE_SDOUTAGE 99
|
||||
|
||||
#if DISABLED(KNUTWURST_DGUS2_TFT)
|
||||
#define SM_DIR_UP_L "/.."
|
||||
#define SM_DIR_UP_S ".."
|
||||
#define SM_SPECIAL_MENU_L "<Special Menu>"
|
||||
#define SM_SPECIAL_MENU_S "<SPECM>"
|
||||
#define SM_PID_HOTEND_L "<PID Tune Hotend>"
|
||||
#define SM_PID_HOTEND_S "<PIDHE>"
|
||||
#define SM_PID_BED_L "<PID Tune Ultrabase>"
|
||||
#define SM_PID_BED_S "<PIDUB>"
|
||||
#define SM_SAVE_EEPROM_L "<Save EEPROM>"
|
||||
#define SM_SAVE_EEPROM_S "<SAVEE>"
|
||||
#define SM_LOAD_DEFAULTS_L "<Load FW Defaults>"
|
||||
#define SM_LOAD_DEFAULTS_S "<LDDEF>"
|
||||
#define SM_PREHEAT_BED_L "<Preheat Ultrabase>"
|
||||
#define SM_PREHEAT_BED_S "<PREHE>"
|
||||
#define SM_MESH_START_L "<Start Mesh Leveling>"
|
||||
#define SM_MESH_START_S "<SMESH>"
|
||||
#define SM_MESH_NEXT_L "<Next Mesh Point>"
|
||||
#define SM_MESH_NEXT_S "<NEXTM>"
|
||||
#define SM_Z_UP_01_L "<Z Up 0.1>"
|
||||
#define SM_Z_UP_01_S "<ZUP01>"
|
||||
#define SM_Z_DN_01_L "<Z Down 0.1>"
|
||||
#define SM_Z_DN_01_S "<ZDN01>"
|
||||
#define SM_Z_UP_002_L "<Z Up 0.02>"
|
||||
#define SM_Z_UP_002_S "<ZUP002>"
|
||||
#define SM_Z_DN_002_L "<Z Down 0.02>"
|
||||
#define SM_Z_DN_002_S "<ZDN002>"
|
||||
#define SM_Z_UP_001_L "<Z Up 0.01>"
|
||||
#define SM_Z_UP_001_S "<ZUP001>"
|
||||
#define SM_Z_DN_001_L "<Z Down 0.01>"
|
||||
#define SM_Z_DN_001_S "<ZDN001>"
|
||||
#define SM_BLTOUCH_L "<BLTouch Leveling>"
|
||||
#define SM_BLTOUCH_S "<BLTCH>"
|
||||
#define SM_PAUSE_L "<Fil. Change Pause>"
|
||||
#define SM_PAUSE_S "<PAUSE>"
|
||||
#define SM_RESUME_L "<Fil. Change Resume>"
|
||||
#define SM_RESUME_S "<RESUM>"
|
||||
#define SM_DIS_FILSENS_L "<Disable Fil. Sensor>"
|
||||
#define SM_DIS_FILSENS_S "<DISSEN>"
|
||||
#define SM_EN_FILSENS_L "<Enable Fil. Sensor>"
|
||||
#define SM_EN_FILSENS_S "<ENSEN>"
|
||||
#define SM_EXIT_L "<Exit>"
|
||||
#define SM_EXIT_S "<EXIT>"
|
||||
#define SM_BACK_L "<End Mesh Leveling>"
|
||||
#define SM_BACK_S "<BACK>"
|
||||
#endif
|
||||
|
||||
#if ENABLED(KNUTWURST_DGUS2_TFT)
|
||||
#define SM_DIR_UP_L "<<< BACK <<< .gcode"
|
||||
#define SM_DIR_UP_S "DIR_UP~1.GCO"
|
||||
#define SM_SPECIAL_MENU_L "<Special Menu> .gcode"
|
||||
#define SM_SPECIAL_MENU_S "<SPECI~1.GCO"
|
||||
#define SM_PID_HOTEND_L "<PID Tune Hotend> .gcode"
|
||||
#define SM_PID_HOTEND_S "<PIDTU~1.GCO"
|
||||
#define SM_PID_BED_L "<PID Tune Ultrabase>.gcode"
|
||||
#define SM_PID_BED_S "<PIDTU~2.GCO"
|
||||
#define SM_SAVE_EEPROM_L "<Save EEPROM> .gcode"
|
||||
#define SM_SAVE_EEPROM_S "<SAVEE~1.GCO"
|
||||
#define SM_LOAD_DEFAULTS_L "<Load FW Defaults> .gcode"
|
||||
#define SM_LOAD_DEFAULTS_S "<LOADF~1.GCO"
|
||||
#define SM_PREHEAT_BED_L "<Preheat Ultrabase> .gcode"
|
||||
#define SM_PREHEAT_BED_S "<PREHE~1.GCO"
|
||||
#define SM_MESH_START_L "<Mesh Leveling> .gcode"
|
||||
#define SM_MESH_START_S "<START~1.GCO"
|
||||
#define SM_MESH_NEXT_L "<Next Mesh Point> .gcode"
|
||||
#define SM_MESH_NEXT_S "<NEXTM~1.GCO"
|
||||
#define SM_Z_UP_01_L "<Z Up 0.1> .gcode"
|
||||
#define SM_Z_UP_01_S "<ZUP01~1.GCO"
|
||||
#define SM_Z_DN_01_L "<Z Down 0.1> .gcode"
|
||||
#define SM_Z_DN_01_S "<ZDOWN~1.GCO"
|
||||
#define SM_Z_UP_002_L "<Z Up 0.02> .gcode"
|
||||
#define SM_Z_UP_002_S "<ZUP00~1.GCO"
|
||||
#define SM_Z_DN_002_L "<Z Down 0.02> .gcode"
|
||||
#define SM_Z_DN_002_S "<ZDOWN~2.GCO"
|
||||
#define SM_Z_UP_001_L "<Z Up 0.01> .gcode"
|
||||
#define SM_Z_UP_001_S "<ZUP00~2.GCO"
|
||||
#define SM_Z_DN_001_L "<Z Down 0.01> .gcode"
|
||||
#define SM_Z_DN_001_S "<ZDOWN~3.GCO"
|
||||
#define SM_BLTOUCH_L "<BLTouch Leveling> .gcode"
|
||||
#define SM_BLTOUCH_S "<BLTOU~1.GCO"
|
||||
#define SM_PAUSE_L "<Fil. Change Pause> .gcode"
|
||||
#define SM_PAUSE_S "<FILCH~2.GCO"
|
||||
#define SM_RESUME_L "<Fil. Change Resume>.gcode"
|
||||
#define SM_RESUME_S "<FILCH~1.GCO"
|
||||
#define SM_DIS_FILSENS_L "<Disable Fil.Sensor>.gcode"
|
||||
#define SM_DIS_FILSENS_S "<DISAB~1.GCO"
|
||||
#define SM_EN_FILSENS_L "<Enable Fil. Sensor>.gcode"
|
||||
#define SM_EN_FILSENS_S "<ENABL~1.GCO"
|
||||
#define SM_EXIT_L "<Exit> .gcode"
|
||||
#define SM_EXIT_S "<EXIT_~1.GCO"
|
||||
#define SM_BACK_L "<End Mesh Leveling> .gcode"
|
||||
#define SM_BACK_S "<BACK_~1.GCO"
|
||||
#endif
|
||||
|
||||
|
||||
class AnycubicTouchscreenClass
|
||||
{
|
||||
public:
|
||||
@@ -101,7 +199,7 @@ private:
|
||||
|
||||
float CodeValue();
|
||||
bool CodeSeen(char);
|
||||
void AnycubicTouchscreen();
|
||||
void PrintList();
|
||||
void StartPrint();
|
||||
void PausePrint();
|
||||
void StopPrint();
|
||||
@@ -115,9 +213,13 @@ private:
|
||||
void ReheatNozzle();
|
||||
void ParkAfterStop();
|
||||
|
||||
char currentTouchscreenSelection[30];
|
||||
char currentTouchscreenSelection[64];
|
||||
char currentFileOrDirectory[64];
|
||||
uint16_t MyFileNrCnt = 0;
|
||||
uint8_t SpecialMenu = false;
|
||||
uint8_t MMLMenu = false;
|
||||
uint8_t FilamentSensorEnabled = true;
|
||||
|
||||
|
||||
#if ENABLED(ANYCUBIC_FILAMENT_RUNOUT_SENSOR)
|
||||
char FilamentTestStatus = false;
|
||||
|
@@ -835,7 +835,7 @@ void Temperature::min_temp_error(const heater_ind_t heater) {
|
||||
|
||||
#if HOTENDS
|
||||
#if ENABLED(PID_DEBUG)
|
||||
extern bool PID_Debug_Flag;
|
||||
extern bool pid_debug_flag;
|
||||
#endif
|
||||
|
||||
float Temperature::get_pid_output_hotend(const uint8_t E_NAME) {
|
||||
@@ -918,7 +918,7 @@ void Temperature::min_temp_error(const heater_ind_t heater) {
|
||||
#endif // PID_OPENLOOP
|
||||
|
||||
#if ENABLED(PID_DEBUG)
|
||||
if (ee == active_extruder && PID_Debug_Flag) {
|
||||
if (ee == active_extruder && pid_debug_flag) {
|
||||
SERIAL_ECHO_START();
|
||||
SERIAL_ECHOPAIR(STR_PID_DEBUG, ee, STR_PID_DEBUG_INPUT, temp_hotend[ee].celsius, STR_PID_DEBUG_OUTPUT, pid_output);
|
||||
#if DISABLED(PID_OPENLOOP)
|
||||
|
214
README.md
@@ -1,27 +1,60 @@
|
||||
# Knutwurst's i3 MEGA S Firmware (based on Marlin 2.0.5.3)
|
||||
# Knutwurst's i3 MEGA (M/S/X) Firmware <br>(based on Marlin 2.0.x)
|
||||
|
||||
<span style="color: red;">(BITTE GENAU DURCHLESEN! / PLEASE READ CAREFULLY!)</span>
|
||||
|
||||
## Readme - German (english below)
|
||||
### Wenn dir gefällt, was ich mache, kannst du mir hier einen Kaffee spendieren*: [](https://paypal.me/oliverkoester)
|
||||
<sub>*Es muss jetzt keine großzügige Spende sein. Ein paar Cent reichen um mir zu zeigen, wer überhaupt Interesse daran hat und wem die Weiterentwicklung wichtig ist. So bleibt die Motivation da und ich weiß einfach, dass ich nicht für die Tonne programmiere ;)<sub>
|
||||
|
||||
Diese Firmwarekonfiguration aktiviert viele neue erweitere Funktionen der Marlin Firmware:
|
||||
|
||||
* Mesh-Bed Kalibrierung
|
||||
### Wenn du Fragen hast, schaue gern in der offiziellen [Facebook-Gruppe](https://www.facebook.com/groups/3094090037303577/) vorbei.
|
||||
|
||||
|
||||
# Inhaltsverzeichnis (Deutsch)
|
||||
- [Funktionen](#funktionen)
|
||||
- [Was ist besser?](#besser-im-vergleich-zu-anderen-firmwares-bugfixes)
|
||||
- [Häufig gestellte Fragen (FAQ)](#häufig-gesellte-fragen-faq)
|
||||
- [Fotos / Bilder](#bilder)
|
||||
- [Spezial Menü](#spezial-menü)
|
||||
- [Manual Mesh Bed Leveling](#manuelles-leveln)
|
||||
- [BLTouch Bed Leveling](#automatisches-bltouch-leveln)
|
||||
- [Downloads](#downloads)
|
||||
|
||||
|
||||
# Table of Contets (english)
|
||||
- [Features](#features)
|
||||
- [What's better?](#whats-better-in-coparison-to-other-firmwares-bug-fixes)
|
||||
- [Frequently asked questions (FAQ)](#faq)
|
||||
- [Photos / Pictures](#pictures)
|
||||
- [Special Menü](#special-menu)
|
||||
- [Manual Mesh Bed Leveling](#manual-mesh-bed-leveling)
|
||||
- [BLTouch Bed Leveling](#bltouch-bed-leveling)
|
||||
- [Download](#download)
|
||||
|
||||
|
||||
# Readme - German
|
||||
|
||||
## Funktionen
|
||||
|
||||
* Mesh-Bed Kalibrierung / Autokalibrierung mit [BLTouch (Installations-Anleitung)](https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/wiki/BLTouch-Installation-(deutsch))
|
||||
* S-Kurven Beschleunigung
|
||||
* "Juction Deviation" statt des klassischen "Jerk"
|
||||
* "Linear Pressure Control v1.5" aktiviert (kann mit M900 konfiguriert werden)
|
||||
* Babystepping während des Druckvorgangs
|
||||
* Bilinear Bed Leveling (BBL)
|
||||
* Manuelles Editieren der Messpunkte
|
||||
* Volle Anycubic Touchscreen Unterstützung
|
||||
* Spannung vom Bauteillüfter von 8V auf 12V
|
||||
* Volle Unterstützung aller [Anycubic Touchscreens](https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/wiki/Types-of-Anycubic-Touchscreens)
|
||||
* Bauteilkühler läuft nun auf 100% statt maximal 70%
|
||||
* Pause & Filamentwechselfunktion
|
||||
* Automatische EEPROM Initialisierung
|
||||
* Filament Runout Sensor kann im Menü deaktiviert werden
|
||||
* Filament Runout Sensor kann im Menü temporär deaktiviert werden
|
||||
* Wiederaufnahme des Drucks nach Stromausfall (WiP)
|
||||
* Druckbettgröße erweitert auf 220 x 225 x 210 mm
|
||||
* [Druckbettgröße erweitert auf 225 x 220 x 210 mm](https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/wiki/Set-new-print-bed-size)
|
||||
* Automatischer 'Slowdown', falls Daten nicht schnell genug fließen
|
||||
* Vollautomatisches Hotend und Ultrabase PID Tuning
|
||||
* Optimierungen für [Trinamic TMC Schrittmotortreiber](https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/wiki/Schrittmotortreiber-gegen-TMC2xxx-tauschen)
|
||||
|
||||
Besser im Vergleich zu anderen Firmwares (Bugfixes):
|
||||
|
||||
## Besser im Vergleich zu anderen Firmwares (Bugfixes):
|
||||
* Aufgeräumtes Special-Menü
|
||||
* Drucker hängt sich nicht auf, wenn man Dateien mit Sonderzeichen (Umlaute, Chinesisch etc.) auf der SD Karte hat
|
||||
* Kein dummes "wackeln" der Düse nach Stoppen eines Druckvorgangs
|
||||
@@ -30,20 +63,28 @@ Besser im Vergleich zu anderen Firmwares (Bugfixes):
|
||||
* Fehler "Melodie" bei Thermal Runaway Protection
|
||||
* Kein Aufhängen, wenn SD Karte + USB gleichzeitig genutzt wird
|
||||
* Kein Aufhängen wenn man Pause drückt
|
||||
* Kein Aufhängen, wenn das Filament leer ist.
|
||||
|
||||
Bekannte Bugs:
|
||||
* Filament Runout Sensor wird bei jedem Neustart wieder aktiviert
|
||||
* Wiederaufnahme nach Stromausfall funktioniert nur sehr unzuverlässig
|
||||
* Kein Aufhängen, wenn das Filament leer ist
|
||||
* Keine "spezielle" BLTouch Firmware nötig. Hier ist alles drin
|
||||
* Konfiguration ganz einfach über Feature-Toggles
|
||||
* Man muss keine Grundkonfiguration per GCODE machen.
|
||||
* Man muss keinen Werksreset durchführen
|
||||
|
||||
---
|
||||
|
||||
### FAQ:
|
||||
# Häufig gesellte Fragen (FAQ):
|
||||
|
||||
>Knutwurst, wieso machst du auch noch so eine Firmware? Es gibt doch schon so viele?
|
||||
|
||||
Weil ich bisher keine gesehen habe, die nicht die blöden Bugs enthält, wie z.B. dass sie abstürzt, wenn man Dateien mit Sonderzeichen auf der SD Karte hat.
|
||||
|
||||
>Ist es richtig, dass du mehr Wert auf den Druck von SD-Karte legst und andere eher auf USB?
|
||||
|
||||
ich lege nicht "mehr Wert auf SD", sondern habe einfach die zahlreichen Bugs dahingehend gefixed. Die kleinen Anpassungen mit dem USB Puffer etc sind sowieso drin. Die sind aber in meinen Augen so uninteressant, dass ich es nicht erwähne, denn das wirklich komplizierte ist es, das proprietäre Display und den Cardreader korrekt anzusteuern. Alles andere ist Pillepalle.
|
||||
|
||||
>Was ist dieser "Slowdown"?
|
||||
|
||||
Der automatische Slowdown wird aktiv, falls der Drucker nicht schnell genug Daten bekommt. Dann fährt er automatisch mit der Geschwindigkeit auf 50% runter, satt unbehelligt weiterzumachen und dann zu ruckeln und Blobs zu verursachen.
|
||||
|
||||
>Wieso ist mein Drucker plötzlich lauter als vorher?
|
||||
|
||||
Dein Bauteillüfter läuft jetzt mit voller Drehzahl, was er vorher nicht tat. Stelle im Slicer (z.B. Cura) die Geschwindigkeit einfach auf 70% und schon hast du die alte Lautstärke wieder. Diese Modifikation ist notwendig, falls man den Lüfter tauschen möchte und viele Lüfter mit den originalen 8V nicht oder nur unzureichend laufen.
|
||||
@@ -88,52 +129,85 @@ Bei diesem Mapping ist man eben darauf angewiesen, dass die Funktionen, die man
|
||||
|
||||
---
|
||||
|
||||
### Bilder
|
||||
# Bilder
|
||||
## Spezial Menü
|
||||
|
||||

|
||||

|
||||

|
||||
|
||||

|
||||
## Manuelles Leveln
|
||||
|
||||

|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||
## Automatisches BLTouch Leveln
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
---
|
||||
|
||||
### Download
|
||||
# Downloads
|
||||
|
||||
Du kannst die fertigen Binärdateien hier herunterladen: https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/releases. Natürlich kannst du die Firmware mit PlatformIO oder der Arduino IDE auch selbst kompilieren.
|
||||
Du kannst die fertigen Binärdateien hier herunterladen: https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/releases. Natürlich kannst du die Firmware mit PlatformIO oder der Arduino IDE auch [selbst kompilieren](https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/wiki/Howto:-Compile-Firmware-with-PlatformIO).
|
||||
|
||||
-> `i3_Mega.hex` ist für den unmodifizierten originalen Anycubic i3 MEGA (ohne S).
|
||||
Um es übersichtlich zu gestalten, beinhalten die Dateinamen die einzelnen Features.
|
||||
|
||||
-> `i3_Mega_TMC.hex` hat Optimierungen und invertierte Ausgänge für TMC2100 and TMC2208 Motortreiber.
|
||||
`_S` steht für den Mega S mit dem Titan Extruder.
|
||||
|
||||
-> `i3_Mega_S.hex` wird verwendet, wenn du den neuere "S" Version mit Titan-Extruder verwendest.
|
||||
`_X` steht für den Mega X.
|
||||
|
||||
-> `i3_Mega_S_TMC.hex` benutzt du, wenn du sowohl die "S" Version mit Titan-Extruder und TMC Motortreiber verwendest.
|
||||
`_TMC` steht für Trinamic TMC Motortreiber. Hierbei wird auch die Drehrichtung der Motoren invertiert.
|
||||
|
||||
`_DGUS` steht für das "neue" blau/gelbe DGUS II Display, welches sonst kein Special-Menü anzeigen kann.
|
||||
|
||||
`_BLTOUCH` steht für die BL-Touch Version mit Autoleveling-Sensor. Das manuelle Mesh-Leveling ist hier deaktiviert.
|
||||
|
||||
`_10` steht für das Trigorilla_14 v1.0 Mainboard, welches normalerweise der Standard sein sollte.
|
||||
|
||||
`_11` steht für das Trigorilla_14 v1.1 Mainboard, bei welchem sich die Pinbelegung für den Server-Port geändert hat.
|
||||
|
||||
|
||||
Für (fast) jede Kombination gibt es eine passende Firmware im Download-Bereich. ;)
|
||||
|
||||
---
|
||||
|
||||
## Readme - English
|
||||
### If you like what I do you can buy me a coffee: [](https://paypal.me/oliverkoester)
|
||||
<sub>*It doesn't have to be a generous donation. A few cents are enough to show me who is interested in further development. So the motivation stays and I just know that I am not programming for the bin ;)<sub>
|
||||
|
||||
# Readme - English
|
||||
|
||||
## Features:
|
||||
|
||||
This firmware configuration activates many new features of the Marlin firmware:
|
||||
|
||||
* Mesh bed calibration
|
||||
* Mesh bed calibration / Auto calibration with [BLTouch (Installation Manual)](https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/wiki/BLTouch-Installation-(english))
|
||||
* S-curve acceleration
|
||||
* "Juction Deviation" instead of the classic "Jerk"
|
||||
* "Linear Pressure Control v1.5" enabled (can be configured with M900)
|
||||
* Baby stepping during printing
|
||||
* "Linear Pressure Control v1.5" activated (can be configured with M900)
|
||||
* Baby stepping during the printing process
|
||||
* Bilinear Bed Leveling (BBL)
|
||||
* Manual editing of the measuring points
|
||||
* Full Anycubic touchscreen support
|
||||
* Full Support for all [Anycubic Touchscreens](https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/wiki/Types-of-Anycubic-Touchscreens)
|
||||
* Part cooling fan now runs at 100% instead of 70%
|
||||
* Pause & filament change function
|
||||
* Automatic EEPROM initialization
|
||||
* Filament Runout Sensor can be deactivated in the menu
|
||||
* Power outage support
|
||||
* Print bed size enlarged to 220 x 225 x 210 mm
|
||||
* Filament runout sensor can be temporarily deactivated in the menu
|
||||
* Resumption of printing after a power failure (WiP)
|
||||
* [Print bed size enlarged to 225 x 220 x 210 mm](https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/wiki/Set-new-print-bed-size)
|
||||
* Automatic 'slowdown' if data does not flow fast enough
|
||||
* Fully automatic hotend and ultrabase PID tuning
|
||||
* Optimizations for [Trinamic TMC Stepper drivers](https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/wiki/Swap-stepper-motor-driver-for-TMC2xxx)
|
||||
|
||||
What's better in coparison to other firmwares (bug fixes):
|
||||
### What's better in coparison to other firmwares (bug fixes):
|
||||
* Tidy special menu
|
||||
* Printer does not freeze if you have files with special characters (umlauts, Chinese..) on your SD card
|
||||
* No stupid "wobble" of the nozzle after stopping printing
|
||||
@@ -143,19 +217,25 @@ What's better in coparison to other firmwares (bug fixes):
|
||||
* No freezing when SD card + USB is used at the same time
|
||||
* No freezing when you press pause and try to resume
|
||||
* No freezing when the filament is empty
|
||||
|
||||
Known bugs:
|
||||
* Filament Runout Sensor is reactivated with every reboot
|
||||
* Power outage support does not work reliably
|
||||
* No need for a "special" BLTouch firmware. In this firmware is everything included
|
||||
* Configuration made easy via feature toggles
|
||||
|
||||
---
|
||||
|
||||
### FAQ:
|
||||
# FAQ:
|
||||
|
||||
> Knutwurst, why are you still doing such a firmware? Aren't there already so many?
|
||||
|
||||
Because I've never seen one that doesn't contain the stupid bugs like the crashes when you have files with special characters on the SD card.
|
||||
|
||||
> Is it correct that you put more emphasis on printing from SD card and others more on USB?
|
||||
|
||||
I don't put "more emphasis on SD", but just fixed the numerous bugs. The small adjustments with the USB buffer etc are included anyway. But they are so uninteresting in my eyes that I don't mention it, because the really complicated thing is to control the proprietary display and the card reader correctly. Everything else is easy-peasy.
|
||||
|
||||
> What is this "slowdown"?
|
||||
|
||||
The automatic slowdown is activated if the printer does not receive data quickly enough (e.g. via USB). Then it automatically goes down to 50%. This prevents stuttering and eliminated blobs.
|
||||
|
||||
>Why is my printer so much louder than before?
|
||||
|
||||
Your component fan is now running at full speed, which it did no before. Simply set the speed to 70% in the slicer (e.g. Cura) and you will have the old speed again. This modification is necessary if you want to replace the fan. Many aftermarket fans do not run properly or at all with the original 8V.
|
||||
@@ -200,26 +280,58 @@ With this mapping, you have to rely on the fact that the functions you want to u
|
||||
|
||||
---
|
||||
|
||||
### Pictures
|
||||
# Pictures
|
||||
## Special Menu
|
||||
|
||||

|
||||

|
||||

|
||||
|
||||

|
||||
## Manual Mesh Bed Leveling
|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||
## BLTouch Bed Leveling
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
---
|
||||
|
||||
### Download
|
||||
# Download
|
||||
|
||||
You can download the precompiled binary files from here: https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/releases. Of course you can also compile the firmware yourself with PlatformIO or the Arduino IDE.
|
||||
You can download the precompiled binary files from here: https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/releases. Of course you can also [compile the firmware yourself](https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/wiki/Howto:-Compile-Firmware-with-PlatformIO) with PlatformIO or the Arduino IDE.
|
||||
|
||||
-> `i3_Mega.hex` is for the unmodified original Anycubic i3 MEGA (without S).
|
||||
In order to make it clear, the file names contain the individual features.
|
||||
|
||||
-> `i3_Mega_TMC.hex` has optimizations and inverted outputs for TMC2100 and TMC2208 motor drivers.
|
||||
`_S` stands for the Mega S with the titan extruder.
|
||||
|
||||
-> `i3_Mega_S.hex` is used if you use the newer "S" version with titan extruder.
|
||||
`_X` stands for the Mega X.
|
||||
|
||||
-> `i3_Mega_S_TMC.hex` you use if you use both the "S" version with titan extruder and TMC motor driver.
|
||||
`_TMC` stands for Trinamic TMC motor driver. The direction of rotation of the motors is also inverted.
|
||||
|
||||
`_DGUS` stands for the "new" blue / yellow DGUS II display, which otherwise cannot show a special menu.
|
||||
|
||||
`_BLTOUCH` stands for the BL-Touch version with auto-leveling sensor. Manual mesh leveling is deactivated here.
|
||||
|
||||
`_10` stands for the Trigorilla_14 v1.0 mainboard, which should normally be the standard.
|
||||
|
||||
`_11` stands for the Trigorilla_14 v1.1 mainboard, on which the pin assignment for the server port has changed.
|
||||
|
||||
|
||||
For (almost) every combination there is a suitable firmware in the download area. ;)
|
||||
|
||||
|
||||
### If you like what I do you can buy me a coffee: [](https://paypal.me/oliverkoester)
|
||||
<sub>*It doesn't have to be a generous donation. A few cents are enough to show me who is interested in further development. So the motivation stays and I just know that I am not programming for the bin ;)<sub>
|
||||
|
23
deploy_firmware_files.sh
Executable file
@@ -0,0 +1,23 @@
|
||||
#!/bin/bash
|
||||
|
||||
VERSION_FILE="/Users/OKoester/Documents/Arduino/Marlin-2-0-x-Anycubic-i3-MEGA-S-Master/Marlin/src/inc/Version.h"
|
||||
FIRMWARE_FOLDER="/Users/OKoester/Documents/Arduino/Marlin-2-0-x-Anycubic-i3-MEGA-S-Master/.pio/build/"
|
||||
OUTPUT_FOLDER="/Users/OKoester/Desktop/i3_FIRMWARE"
|
||||
|
||||
CUSTOM_BUILD_VERSION=$(egrep -o "([0-9]{1,}\.)+[0-9]{1,}" $VERSION_FILE -m2 | tail -n1)
|
||||
|
||||
if [ -d "$$OUTPUT_FOLDER/v$CUSTOM_BUILD_VERSION" ]; then
|
||||
echo "$$OUTPUT_FOLDER/$CUSTOM_BUILD_VERSION already exists."
|
||||
else
|
||||
mkdir $OUTPUT_FOLDER/$CUSTOM_BUILD_VERSION
|
||||
fi
|
||||
|
||||
echo "Knutwurst's Mega Firmware Version: $CUSTOM_BUILD_VERSION"
|
||||
|
||||
cd $FIRMWARE_FOLDER
|
||||
for dir in $FIRMWARE_FOLDER/*/
|
||||
do
|
||||
dir=${dir%*/}
|
||||
echo ${dir##*/}
|
||||
cp ${dir##*/}/firmware.hex /$OUTPUT_FOLDER/$CUSTOM_BUILD_VERSION/${dir##*/}_v$CUSTOM_BUILD_VERSION.hex
|
||||
done
|
313
i3_mega_envs.ini
Executable file
@@ -0,0 +1,313 @@
|
||||
###########################################################
|
||||
# #
|
||||
# Manual Leveling Configurations #
|
||||
# #
|
||||
###########################################################
|
||||
|
||||
#
|
||||
# i3 Mega (normal Version)
|
||||
#
|
||||
[env:i3_MEGA]
|
||||
platform = atmelavr
|
||||
board = megaatmega2560
|
||||
board_build.f_cpu = 16000000L
|
||||
lib_deps = ${common.lib_deps}
|
||||
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
|
||||
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14 -DKNUTWURST_MEGA
|
||||
build_unflags = -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_X -DKNUTWURST_DGUS2_TFT -DKNUTWURST_TMC -DKNUTWURST_BLTOUCH
|
||||
|
||||
|
||||
|
||||
[env:i3_MEGA_TMC]
|
||||
platform = atmelavr
|
||||
board = megaatmega2560
|
||||
board_build.f_cpu = 16000000L
|
||||
lib_deps = ${common.lib_deps}
|
||||
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
|
||||
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14 -DKNUTWURST_MEGA -DKNUTWURST_TMC
|
||||
build_unflags = -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_X -DKNUTWURST_DGUS2_TFT -DKNUTWURST_BLTOUCH
|
||||
|
||||
|
||||
#
|
||||
# i3 Mega S
|
||||
#
|
||||
[env:i3_MEGA_S]
|
||||
platform = atmelavr
|
||||
board = megaatmega2560
|
||||
board_build.f_cpu = 16000000L
|
||||
lib_deps = ${common.lib_deps}
|
||||
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
|
||||
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14 -DKNUTWURST_MEGA_S
|
||||
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_X -DKNUTWURST_DGUS2_TFT -DKNUTWURST_TMC -DKNUTWURST_BLTOUCH
|
||||
|
||||
|
||||
|
||||
[env:i3_MEGA_S_DGUS]
|
||||
platform = atmelavr
|
||||
board = megaatmega2560
|
||||
board_build.f_cpu = 16000000L
|
||||
lib_deps = ${common.lib_deps}
|
||||
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
|
||||
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14 -DKNUTWURST_MEGA_S -DKNUTWURST_DGUS2_TFT
|
||||
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_X -DKNUTWURST_TMC -DKNUTWURST_BLTOUCH
|
||||
|
||||
|
||||
|
||||
[env:i3_MEGA_S_DGUS_TMC]
|
||||
platform = atmelavr
|
||||
board = megaatmega2560
|
||||
board_build.f_cpu = 16000000L
|
||||
lib_deps = ${common.lib_deps}
|
||||
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
|
||||
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14 -DKNUTWURST_MEGA_S -DKNUTWURST_DGUS2_TFT -DKNUTWURST_TMC
|
||||
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_X -DKNUTWURST_BLTOUCH
|
||||
|
||||
|
||||
|
||||
[env:i3_MEGA_S_TMC]
|
||||
platform = atmelavr
|
||||
board = megaatmega2560
|
||||
board_build.f_cpu = 16000000L
|
||||
lib_deps = ${common.lib_deps}
|
||||
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
|
||||
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14 -DKNUTWURST_MEGA_S -DKNUTWURST_TMC
|
||||
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_X -DKNUTWURST_DGUS2_TFT -DKNUTWURST_BLTOUCH
|
||||
|
||||
|
||||
#
|
||||
# i3 Mega X
|
||||
#
|
||||
[env:i3_MEGA_X]
|
||||
platform = atmelavr
|
||||
board = megaatmega2560
|
||||
board_build.f_cpu = 16000000L
|
||||
lib_deps = ${common.lib_deps}
|
||||
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
|
||||
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14 -DKNUTWURST_MEGA_X
|
||||
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_S -DKNUTWURST_TMC -DKNUTWURST_BLTOUCH -DKNUTWURST_DGUS2_TFT
|
||||
|
||||
|
||||
|
||||
[env:i3_MEGA_X_TMC]
|
||||
platform = atmelavr
|
||||
board = megaatmega2560
|
||||
board_build.f_cpu = 16000000L
|
||||
lib_deps = ${common.lib_deps}
|
||||
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
|
||||
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14 -DKNUTWURST_MEGA_X -DKNUTWURST_TMC
|
||||
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_S -DKNUTWURST_BLTOUCH -DKNUTWURST_DGUS2_TFT
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
###########################################################
|
||||
# #
|
||||
# BL Touch Configurations ( TRIGORILLA_14 ) #
|
||||
# #
|
||||
###########################################################
|
||||
[env:i3_MEGA_BLTOUCH_10]
|
||||
platform = atmelavr
|
||||
board = megaatmega2560
|
||||
board_build.f_cpu = 16000000L
|
||||
lib_deps = ${common.lib_deps}
|
||||
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
|
||||
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14 -DKNUTWURST_MEGA -DKNUTWURST_BLTOUCH
|
||||
build_unflags = -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_X -DKNUTWURST_DGUS2_TFT -DKNUTWURST_TMC
|
||||
|
||||
|
||||
[env:i3_MEGA_TMC_BLTOUCH_10]
|
||||
platform = atmelavr
|
||||
board = megaatmega2560
|
||||
board_build.f_cpu = 16000000L
|
||||
lib_deps = ${common.lib_deps}
|
||||
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
|
||||
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14 -DKNUTWURST_MEGA -DKNUTWURST_TMC -DKNUTWURST_BLTOUCH
|
||||
build_unflags = -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_X -DKNUTWURST_DGUS2_TFT
|
||||
|
||||
|
||||
[env:i3_MEGA_S_BLTOUCH_10]
|
||||
platform = atmelavr
|
||||
board = megaatmega2560
|
||||
board_build.f_cpu = 16000000L
|
||||
lib_deps = ${common.lib_deps}
|
||||
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
|
||||
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14 -DKNUTWURST_MEGA_S -DKNUTWURST_BLTOUCH
|
||||
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_X -DKNUTWURST_DGUS2_TFT -DKNUTWURST_TMC
|
||||
|
||||
|
||||
|
||||
[env:i3_MEGA_S_DGUS_BLTOUCH_10]
|
||||
platform = atmelavr
|
||||
board = megaatmega2560
|
||||
board_build.f_cpu = 16000000L
|
||||
lib_deps = ${common.lib_deps}
|
||||
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
|
||||
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14 -DKNUTWURST_MEGA_S -DKNUTWURST_DGUS2_TFT -DKNUTWURST_BLTOUCH
|
||||
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_X -DKNUTWURST_TMC
|
||||
|
||||
|
||||
|
||||
[env:i3_MEGA_S_DGUS_TMC_BLTOUCH_10]
|
||||
platform = atmelavr
|
||||
board = megaatmega2560
|
||||
board_build.f_cpu = 16000000L
|
||||
lib_deps = ${common.lib_deps}
|
||||
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
|
||||
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14 -DKNUTWURST_MEGA_S -DKNUTWURST_DGUS2_TFT -DKNUTWURST_TMC -DKNUTWURST_BLTOUCH
|
||||
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_X
|
||||
|
||||
|
||||
|
||||
[env:i3_MEGA_S_TMC_BLTOUCH_10]
|
||||
platform = atmelavr
|
||||
board = megaatmega2560
|
||||
board_build.f_cpu = 16000000L
|
||||
lib_deps = ${common.lib_deps}
|
||||
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
|
||||
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14 -DKNUTWURST_MEGA_S -DKNUTWURST_TMC -DKNUTWURST_BLTOUCH
|
||||
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_X -DKNUTWURST_DGUS2_TFT
|
||||
|
||||
|
||||
[env:i3_MEGA_X_BLTOUCH_10]
|
||||
platform = atmelavr
|
||||
board = megaatmega2560
|
||||
board_build.f_cpu = 16000000L
|
||||
lib_deps = ${common.lib_deps}
|
||||
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
|
||||
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14 -DKNUTWURST_MEGA_X -DKNUTWURST_BLTOUCH
|
||||
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_S -DKNUTWURST_TMC -DKNUTWURST_DGUS2_TFT
|
||||
|
||||
|
||||
|
||||
[env:i3_MEGA_X_TMC_BLTOUCH_10]
|
||||
platform = atmelavr
|
||||
board = megaatmega2560
|
||||
board_build.f_cpu = 16000000L
|
||||
lib_deps = ${common.lib_deps}
|
||||
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
|
||||
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14 -DKNUTWURST_MEGA_X -DKNUTWURST_TMC -DKNUTWURST_BLTOUCH
|
||||
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_S -DKNUTWURST_DGUS2_TFT
|
||||
|
||||
|
||||
###########################################################
|
||||
# #
|
||||
# BL Touch Configurations ( TRIGORILLA_14_11 ) #
|
||||
# #
|
||||
###########################################################
|
||||
|
||||
#
|
||||
# i3 Mega (normal Version)
|
||||
#
|
||||
[env:i3_MEGA_BLTOUCH_11]
|
||||
platform = atmelavr
|
||||
board = megaatmega2560
|
||||
board_build.f_cpu = 16000000L
|
||||
lib_deps = ${common.lib_deps}
|
||||
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
|
||||
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14_11 -DKNUTWURST_MEGA -DKNUTWURST_BLTOUCH
|
||||
build_unflags = -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_X -DKNUTWURST_DGUS2_TFT -DKNUTWURST_TMC
|
||||
|
||||
|
||||
[env:i3_MEGA_TMC_BLTOUCH_11]
|
||||
platform = atmelavr
|
||||
board = megaatmega2560
|
||||
board_build.f_cpu = 16000000L
|
||||
lib_deps = ${common.lib_deps}
|
||||
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
|
||||
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14_11 -DKNUTWURST_MEGA -DKNUTWURST_TMC -DKNUTWURST_BLTOUCH
|
||||
build_unflags = -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_X -DKNUTWURST_DGUS2_TFT
|
||||
|
||||
|
||||
#
|
||||
# i3 Mega S
|
||||
#
|
||||
[env:i3_MEGA_S_BLTOUCH_11]
|
||||
platform = atmelavr
|
||||
board = megaatmega2560
|
||||
board_build.f_cpu = 16000000L
|
||||
lib_deps = ${common.lib_deps}
|
||||
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
|
||||
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14_11 -DKNUTWURST_MEGA_S -DKNUTWURST_BLTOUCH
|
||||
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_X -DKNUTWURST_DGUS2_TFT -DKNUTWURST_TMC
|
||||
|
||||
|
||||
|
||||
[env:i3_MEGA_S_DGUS_BLTOUCH_11]
|
||||
platform = atmelavr
|
||||
board = megaatmega2560
|
||||
board_build.f_cpu = 16000000L
|
||||
lib_deps = ${common.lib_deps}
|
||||
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
|
||||
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14_11 -DKNUTWURST_MEGA_S -DKNUTWURST_DGUS2_TFT -DKNUTWURST_BLTOUCH
|
||||
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_X -DKNUTWURST_TMC
|
||||
|
||||
|
||||
|
||||
[env:i3_MEGA_S_DGUS_TMC_BLTOUCH_11]
|
||||
platform = atmelavr
|
||||
board = megaatmega2560
|
||||
board_build.f_cpu = 16000000L
|
||||
lib_deps = ${common.lib_deps}
|
||||
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
|
||||
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14_11 -DKNUTWURST_MEGA_S -DKNUTWURST_DGUS2_TFT -DKNUTWURST_TMC -DKNUTWURST_BLTOUCH
|
||||
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_X
|
||||
|
||||
|
||||
|
||||
[env:i3_MEGA_S_TMC_BLTOUCH_11]
|
||||
platform = atmelavr
|
||||
board = megaatmega2560
|
||||
board_build.f_cpu = 16000000L
|
||||
lib_deps = ${common.lib_deps}
|
||||
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
|
||||
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14_11 -DKNUTWURST_MEGA_S -DKNUTWURST_TMC -DKNUTWURST_BLTOUCH
|
||||
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_X -DKNUTWURST_DGUS2_TFT
|
||||
|
||||
|
||||
#
|
||||
# i3 Mega X
|
||||
#
|
||||
[env:i3_MEGA_X_BLTOUCH_11]
|
||||
platform = atmelavr
|
||||
board = megaatmega2560
|
||||
board_build.f_cpu = 16000000L
|
||||
lib_deps = ${common.lib_deps}
|
||||
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
|
||||
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14_11 -DKNUTWURST_MEGA_X -DKNUTWURST_BLTOUCH
|
||||
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_S -DKNUTWURST_TMC -DKNUTWURST_DGUS2_TFT
|
||||
|
||||
|
||||
|
||||
[env:i3_MEGA_X_TMC_BLTOUCH_11]
|
||||
platform = atmelavr
|
||||
board = megaatmega2560
|
||||
board_build.f_cpu = 16000000L
|
||||
lib_deps = ${common.lib_deps}
|
||||
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
|
||||
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14_11 -DKNUTWURST_MEGA_X -DKNUTWURST_TMC -DKNUTWURST_BLTOUCH
|
||||
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_S -DKNUTWURST_DGUS2_TFT
|
BIN
images/1N4733.jpg
Normal file
After Width: | Height: | Size: 549 KiB |
BIN
images/BL_Page1.jpg
Normal file
After Width: | Height: | Size: 60 KiB |
BIN
images/BL_Page2.jpg
Normal file
After Width: | Height: | Size: 59 KiB |
Before Width: | Height: | Size: 72 KiB |
Before Width: | Height: | Size: 72 KiB |
BIN
images/MN_Page1.jpg
Normal file
After Width: | Height: | Size: 56 KiB |
BIN
images/MN_Page1_DGUS.jpg
Normal file
After Width: | Height: | Size: 82 KiB |
BIN
images/MN_Page2.jpg
Normal file
After Width: | Height: | Size: 53 KiB |
BIN
images/MN_Page2_DGUS.jpg
Normal file
After Width: | Height: | Size: 80 KiB |
BIN
images/MN_Page3.jpg
Normal file
After Width: | Height: | Size: 61 KiB |
BIN
images/MN_Page3_DGUS.jpg
Normal file
After Width: | Height: | Size: 84 KiB |
BIN
images/MN_Page4.jpg
Normal file
After Width: | Height: | Size: 55 KiB |
BIN
images/MN_Page4_DGUS.jpg
Normal file
After Width: | Height: | Size: 79 KiB |
BIN
images/MenuHome.jpg
Normal file
After Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 80 KiB |
BIN
images/SpecialMenu.jpg
Normal file
After Width: | Height: | Size: 57 KiB |
BIN
images/SpecialMenu_DGUS.jpg
Normal file
After Width: | Height: | Size: 87 KiB |
BIN
images/anycubic_touchscreen_back.jpg
Normal file
After Width: | Height: | Size: 1.1 MiB |
BIN
images/anycubic_touchscreen_front.jpg
Normal file
After Width: | Height: | Size: 857 KiB |
BIN
images/bed_size_cura.jpg
Normal file
After Width: | Height: | Size: 234 KiB |
BIN
images/bltouch_01.jpg
Normal file
After Width: | Height: | Size: 269 KiB |
BIN
images/bltouch_02.jpg
Normal file
After Width: | Height: | Size: 568 KiB |
BIN
images/bltouch_03.jpg
Normal file
After Width: | Height: | Size: 340 KiB |
BIN
images/bltouch_04.jpg
Normal file
After Width: | Height: | Size: 362 KiB |
BIN
images/bltouch_05.jpg
Normal file
After Width: | Height: | Size: 442 KiB |
BIN
images/bltouch_06.jpg
Normal file
After Width: | Height: | Size: 265 KiB |
BIN
images/bltouch_07.jpg
Normal file
After Width: | Height: | Size: 420 KiB |
BIN
images/bltouch_08.jpg
Normal file
After Width: | Height: | Size: 367 KiB |
BIN
images/bltouch_09.jpg
Normal file
After Width: | Height: | Size: 627 KiB |
BIN
images/bltouch_10.jpg
Normal file
After Width: | Height: | Size: 405 KiB |
BIN
images/bltouch_switch_cable.jpg
Normal file
After Width: | Height: | Size: 72 KiB |
BIN
images/bltouch_wiring.jpg
Normal file
After Width: | Height: | Size: 376 KiB |
BIN
images/bltouch_wiring_alt.jpg
Normal file
After Width: | Height: | Size: 112 KiB |
BIN
images/burnt_diode_closeup.jpg
Normal file
After Width: | Height: | Size: 591 KiB |
BIN
images/burnt_stepper.jpg
Normal file
After Width: | Height: | Size: 374 KiB |
BIN
images/diode_closeup.jpg
Normal file
After Width: | Height: | Size: 752 KiB |
BIN
images/howto_build.jpg
Normal file
After Width: | Height: | Size: 834 KiB |
BIN
images/mobo_with_stepperdrivers.jpg
Normal file
After Width: | Height: | Size: 888 KiB |
BIN
images/mobo_without_stepperdrivers.jpg
Normal file
After Width: | Height: | Size: 776 KiB |
BIN
images/new_diode_closeup.jpg
Normal file
After Width: | Height: | Size: 571 KiB |
BIN
images/new_mobo_fans.jpg
Normal file
After Width: | Height: | Size: 559 KiB |
BIN
images/printer_open.jpg
Normal file
After Width: | Height: | Size: 607 KiB |
BIN
images/servo_futaba.jpg
Normal file
After Width: | Height: | Size: 5.7 KiB |
BIN
images/servo_graupner.jpg
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
images/stepper_closeup.jpg
Normal file
After Width: | Height: | Size: 596 KiB |
BIN
images/stepper_vdd_gnd.jpg
Normal file
After Width: | Height: | Size: 602 KiB |
BIN
images/stepper_vmot_gnd.jpg
Normal file
After Width: | Height: | Size: 577 KiB |
132
platformio.ini
@@ -15,26 +15,50 @@
|
||||
# Remove '-fmax-errors=5' from build_flags below to see all.
|
||||
#
|
||||
|
||||
|
||||
|
||||
# *******************************************************************************************
|
||||
# ** **
|
||||
# ** If you want to select a specific configuration for your **
|
||||
# ** printer, just open the PlatformIO tab on the left, select **
|
||||
# ** PROJECT TASKS and then "env:i3_MEGA*" (your desired config) **
|
||||
# ** From there you can build and upload your code. **
|
||||
# ** **
|
||||
# *******************************************************************************************
|
||||
|
||||
[platformio]
|
||||
src_dir = Marlin
|
||||
boards_dir = buildroot/share/PlatformIO/boards
|
||||
default_envs = mega2560
|
||||
#default_envs = mega2560
|
||||
extra_configs = i3_mega_envs.ini
|
||||
default_envs = i3_MEGA, i3_MEGA_TMC, i3_MEGA_S, i3_MEGA_S_DGUS, i3_MEGA_S_DGUS_TMC, i3_MEGA_S_TMC, i3_MEGA_X, i3_MEGA_X_TMC, i3_MEGA_BLTOUCH_10, i3_MEGA_TMC_BLTOUCH_10, i3_MEGA_S_BLTOUCH_10, i3_MEGA_S_DGUS_BLTOUCH_10, i3_MEGA_S_DGUS_TMC_BLTOUCH_10, i3_MEGA_S_TMC_BLTOUCH_10, i3_MEGA_X_BLTOUCH_10, i3_MEGA_X_TMC_BLTOUCH_10, i3_MEGA_BLTOUCH_11, i3_MEGA_TMC_BLTOUCH_11, i3_MEGA_S_BLTOUCH_11, i3_MEGA_S_DGUS_BLTOUCH_11, i3_MEGA_S_DGUS_TMC_BLTOUCH_11, i3_MEGA_S_TMC_BLTOUCH_11, i3_MEGA_X_BLTOUCH_11, i3_MEGA_X_TMC_BLTOUCH_11
|
||||
|
||||
# *******************************************************************************************
|
||||
# ** **
|
||||
# ** If you want to select a specific configuration for your **
|
||||
# ** printer, just open the PlatformIO tab on the left, select **
|
||||
# ** PROJECT TASKS and then "env:i3_MEGA*" (your desired config) **
|
||||
# ** From there you can build and upload your code. **
|
||||
# ** **
|
||||
# *******************************************************************************************
|
||||
|
||||
|
||||
|
||||
[common]
|
||||
default_src_filter = +<src/*> -<src/config> -<src/HAL> +<src/HAL/shared>
|
||||
extra_scripts = pre:buildroot/share/PlatformIO/scripts/common-cxxflags.py
|
||||
build_flags = -fmax-errors=5 -g -D__MARLIN_FIRMWARE__ -fmerge-all-constants
|
||||
lib_deps =
|
||||
LiquidCrystal
|
||||
TMCStepper@>=0.6.2,<1.0.0
|
||||
Adafruit NeoPixel
|
||||
U8glib-HAL=https://github.com/MarlinFirmware/U8glib-HAL/archive/bugfix.zip
|
||||
Adafruit_MAX31865=https://github.com/adafruit/Adafruit_MAX31865/archive/master.zip
|
||||
LiquidTWI2=https://github.com/lincomatic/LiquidTWI2/archive/master.zip
|
||||
Arduino-L6470=https://github.com/ameyer/Arduino-L6470/archive/0.8.0.zip
|
||||
LiquidCrystal@1.5.0
|
||||
TMCStepper@~0.7.1
|
||||
Adafruit NeoPixel@1.5.0
|
||||
U8glib-HAL@0.4.1
|
||||
Adafruit MAX31865 library@~1.1.0
|
||||
LiquidTWI2@1.2.7
|
||||
Arduino-L6470@0.8.0
|
||||
SlowSoftI2CMaster
|
||||
SailfishLCD=https://github.com/mikeshub/SailfishLCD/archive/master.zip
|
||||
SailfishRGB_LED=https://github.com/mikeshub/SailfishRGB_LED/archive/master.zip
|
||||
SlowSoftI2CMaster=https://github.com/mikeshub/SlowSoftI2CMaster/archive/master.zip
|
||||
|
||||
# Globally defined properties
|
||||
# inherited by all environments
|
||||
@@ -221,10 +245,10 @@ lib_compat_mode = strict
|
||||
extra_scripts = Marlin/src/HAL/LPC1768/upload_extra_script.py
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/LPC1768>
|
||||
lib_deps = Servo
|
||||
LiquidCrystal
|
||||
U8glib-HAL=https://github.com/MarlinFirmware/U8glib-HAL/archive/bugfix.zip
|
||||
TMCStepper@>=0.6.1,<1.0.0
|
||||
Adafruit NeoPixel=https://github.com/p3p/Adafruit_NeoPixel/archive/release.zip
|
||||
LiquidCrystal@1.0.0
|
||||
U8glib-HAL@0.4.1
|
||||
TMCStepper@~0.7.1
|
||||
Adafruit NeoPixel=https://github.com/p3p/Adafruit_NeoPixel/archive/1.5.0.zip
|
||||
SailfishLCD=https://github.com/mikeshub/SailfishLCD/archive/master.zip
|
||||
|
||||
[env:LPC1769]
|
||||
@@ -239,17 +263,17 @@ lib_compat_mode = strict
|
||||
extra_scripts = Marlin/src/HAL/LPC1768/upload_extra_script.py
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/LPC1768>
|
||||
lib_deps = Servo
|
||||
LiquidCrystal
|
||||
U8glib-HAL=https://github.com/MarlinFirmware/U8glib-HAL/archive/bugfix.zip
|
||||
TMCStepper@>=0.6.1,<1.0.0
|
||||
Adafruit NeoPixel=https://github.com/p3p/Adafruit_NeoPixel/archive/release.zip
|
||||
LiquidCrystal@1.0.0
|
||||
U8glib-HAL@0.4.1
|
||||
TMCStepper@~0.7.1
|
||||
Adafruit NeoPixel=https://github.com/p3p/Adafruit_NeoPixel/archive/1.5.0.zip
|
||||
SailfishLCD=https://github.com/mikeshub/SailfishLCD/archive/master.zip
|
||||
|
||||
#
|
||||
# STM32F103RC
|
||||
#
|
||||
[env:STM32F103RC]
|
||||
platform = ststm32
|
||||
platform = ststm32@<6.2.0
|
||||
board = genericSTM32F103RC
|
||||
platform_packages = tool-stm32duino
|
||||
build_flags = !python Marlin/src/HAL/STM32F1/build_flags.py
|
||||
@@ -265,7 +289,7 @@ monitor_speed = 115200
|
||||
# STM32F103RC_fysetc
|
||||
#
|
||||
[env:STM32F103RC_fysetc]
|
||||
platform = ststm32
|
||||
platform = ststm32@<6.2.0
|
||||
board = genericSTM32F103RC
|
||||
#board_build.core = maple
|
||||
platform_packages = tool-stm32duino
|
||||
@@ -291,7 +315,7 @@ upload_protocol = serial
|
||||
#
|
||||
|
||||
[env:STM32F103RC_btt]
|
||||
platform = ststm32
|
||||
platform = ststm32@<6.2.0
|
||||
board = genericSTM32F103RC
|
||||
platform_packages = tool-stm32duino
|
||||
build_flags = !python Marlin/src/HAL/STM32F1/build_flags.py
|
||||
@@ -306,7 +330,7 @@ lib_ignore = Adafruit NeoPixel, SPI
|
||||
monitor_speed = 115200
|
||||
|
||||
[env:STM32F103RC_btt_USB]
|
||||
platform = ststm32
|
||||
platform = ststm32@<6.2.0
|
||||
board = genericSTM32F103RC
|
||||
platform_packages = tool-stm32duino
|
||||
build_flags = !python Marlin/src/HAL/STM32F1/build_flags.py
|
||||
@@ -321,7 +345,7 @@ lib_ignore = Adafruit NeoPixel, SPI
|
||||
monitor_speed = 115200
|
||||
|
||||
[env:STM32F103RC_btt_512K]
|
||||
platform = ststm32
|
||||
platform = ststm32@<6.2.0
|
||||
board = genericSTM32F103RC
|
||||
board_upload.maximum_size=524288
|
||||
platform_packages = tool-stm32duino
|
||||
@@ -337,7 +361,7 @@ lib_ignore = Adafruit NeoPixel, SPI
|
||||
monitor_speed = 115200
|
||||
|
||||
[env:STM32F103RC_btt_512K_USB]
|
||||
platform = ststm32
|
||||
platform = ststm32@<6.2.0
|
||||
board = genericSTM32F103RC
|
||||
board_upload.maximum_size=524288
|
||||
platform_packages = tool-stm32duino
|
||||
@@ -356,7 +380,7 @@ monitor_speed = 115200
|
||||
# STM32F103RE
|
||||
#
|
||||
[env:STM32F103RE]
|
||||
platform = ststm32
|
||||
platform = ststm32@<6.2.0
|
||||
board = genericSTM32F103RE
|
||||
platform_packages = tool-stm32duino
|
||||
build_flags = !python Marlin/src/HAL/STM32F1/build_flags.py
|
||||
@@ -373,7 +397,7 @@ monitor_speed = 115200
|
||||
# STM32F103RE_btt_USB ......... RET6 (USB mass storage)
|
||||
#
|
||||
[env:STM32F103RE_btt]
|
||||
platform = ststm32
|
||||
platform = ststm32@<6.2.0
|
||||
board = genericSTM32F103RE
|
||||
platform_packages = tool-stm32duino
|
||||
build_flags = !python Marlin/src/HAL/STM32F1/build_flags.py
|
||||
@@ -389,7 +413,7 @@ upload_protocol = stlink
|
||||
monitor_speed = 115200
|
||||
|
||||
[env:STM32F103RE_btt_USB]
|
||||
platform = ststm32
|
||||
platform = ststm32@<6.2.0
|
||||
board = genericSTM32F103RE
|
||||
platform_packages = tool-stm32duino
|
||||
build_flags = !python Marlin/src/HAL/STM32F1/build_flags.py
|
||||
@@ -408,7 +432,7 @@ monitor_speed = 115200
|
||||
# STM32F4 with STM32GENERIC
|
||||
#
|
||||
[env:STM32F4]
|
||||
platform = ststm32
|
||||
platform = ststm32@<6.2.0
|
||||
board = disco_f407vg
|
||||
build_flags = ${common.build_flags} -DUSE_STM32GENERIC -DSTM32GENERIC -DSTM32F4 -DMENU_USB_SERIAL -DMENU_SERIAL=SerialUSB -DHAL_IWDG_MODULE_ENABLED
|
||||
lib_ignore = Adafruit NeoPixel, TMCStepper
|
||||
@@ -418,7 +442,7 @@ src_filter = ${common.default_src_filter} +<src/HAL/STM32_F4_F7> -<src/HAL/ST
|
||||
# STM32F7 with STM32GENERIC
|
||||
#
|
||||
[env:STM32F7]
|
||||
platform = ststm32
|
||||
platform = ststm32@<6.2.0
|
||||
board = remram_v1
|
||||
build_flags = ${common.build_flags} -DUSE_STM32GENERIC -DSTM32GENERIC -DSTM32F7 -DMENU_USB_SERIAL -DMENU_SERIAL=SerialUSB -DHAL_IWDG_MODULE_ENABLED
|
||||
lib_ignore = Adafruit NeoPixel, TMCStepper
|
||||
@@ -428,7 +452,7 @@ src_filter = ${common.default_src_filter} +<src/HAL/STM32_F4_F7> -<src/HAL/ST
|
||||
# ARMED (STM32)
|
||||
#
|
||||
[env:ARMED]
|
||||
platform = ststm32
|
||||
platform = ststm32@<6.2.0
|
||||
board = armed_v1
|
||||
build_flags = ${common.build_flags}
|
||||
-DUSBCON -DUSBD_VID=0x0483 '-DUSB_MANUFACTURER="Unknown"' '-DUSB_PRODUCT="ARMED_V1"' -DUSBD_USE_CDC
|
||||
@@ -441,7 +465,7 @@ src_filter = ${common.default_src_filter} +<src/HAL/STM32>
|
||||
# Geeetech GTM32 (STM32F103VET6)
|
||||
#
|
||||
[env:STM32F103VE_GTM32]
|
||||
platform = ststm32
|
||||
platform = ststm32@<6.2.0
|
||||
board = genericSTM32F103VE
|
||||
build_flags = !python Marlin/src/HAL/STM32F1/build_flags.py
|
||||
${common.build_flags} -DDEBUG_LEVEL=DEBUG_NONE -std=gnu++14 -MMD -ffunction-sections -fdata-sections -nostdlib
|
||||
@@ -456,7 +480,7 @@ upload_protocol = serial
|
||||
# Longer 3D board in Alfawise U20 (STM32F103VET6)
|
||||
#
|
||||
[env:STM32F103VE_longer]
|
||||
platform = ststm32
|
||||
platform = ststm32@<6.2.0
|
||||
board = genericSTM32F103VE
|
||||
build_flags = !python Marlin/src/HAL/STM32F1/build_flags.py
|
||||
${common.build_flags} -std=gnu++14 -USERIAL_USB
|
||||
@@ -470,7 +494,7 @@ lib_ignore = Adafruit NeoPixel, LiquidTWI2, SPI
|
||||
# MKS Robin Mini (STM32F103VET6)
|
||||
#
|
||||
[env:mks_robin_mini]
|
||||
platform = ststm32
|
||||
platform = ststm32@<6.2.0
|
||||
board = genericSTM32F103VE
|
||||
build_flags = !python Marlin/src/HAL/STM32F1/build_flags.py
|
||||
${common.build_flags} -std=gnu++14
|
||||
@@ -483,7 +507,7 @@ lib_ignore = Adafruit NeoPixel, SPI
|
||||
# MKS Robin Nano (STM32F103VET6)
|
||||
#
|
||||
[env:mks_robin_nano]
|
||||
platform = ststm32
|
||||
platform = ststm32@<6.2.0
|
||||
board = genericSTM32F103VE
|
||||
platform_packages = tool-stm32duino
|
||||
build_flags = !python Marlin/src/HAL/STM32F1/build_flags.py
|
||||
@@ -499,7 +523,7 @@ lib_ignore = Adafruit NeoPixel, SPI
|
||||
# MKS Robin (STM32F103ZET6)
|
||||
#
|
||||
[env:mks_robin]
|
||||
platform = ststm32
|
||||
platform = ststm32@<6.2.0
|
||||
board = genericSTM32F103ZE
|
||||
build_flags = !python Marlin/src/HAL/STM32F1/build_flags.py
|
||||
${common.build_flags} -std=gnu++14 -DHAVE_SW_SERIAL -DSS_TIMER=4 -DSTM32_XL_DENSITY
|
||||
@@ -514,7 +538,7 @@ lib_ignore = Adafruit NeoPixel, SPI
|
||||
# MKS Robin Pro (STM32F103ZET6)
|
||||
#
|
||||
[env:mks_robin_pro]
|
||||
platform = ststm32
|
||||
platform = ststm32@<6.2.0
|
||||
board = genericSTM32F103ZE
|
||||
extra_scripts = buildroot/share/PlatformIO/scripts/mks_robin_pro.py
|
||||
build_flags = !python Marlin/src/HAL/STM32F1/build_flags.py
|
||||
@@ -528,7 +552,7 @@ lib_ignore = Adafruit NeoPixel, SPI, TMCStepper
|
||||
# MKS Robin Lite/Lite2 (STM32F103RCT6)
|
||||
#
|
||||
[env:mks_robin_lite]
|
||||
platform = ststm32
|
||||
platform = ststm32@<6.2.0
|
||||
board = genericSTM32F103RC
|
||||
build_flags = !python Marlin/src/HAL/STM32F1/build_flags.py
|
||||
${common.build_flags} -std=gnu++14
|
||||
@@ -541,7 +565,7 @@ lib_ignore = Adafruit NeoPixel, SPI
|
||||
# MKS ROBIN LITE3 (STM32F103RCT6)
|
||||
#
|
||||
[env:mks_robin_lite3]
|
||||
platform = ststm32
|
||||
platform = ststm32@<6.2.0
|
||||
board = genericSTM32F103RC
|
||||
extra_scripts = buildroot/share/PlatformIO/scripts/mks_robin_lite3.py
|
||||
build_flags = !python Marlin/src/HAL/STM32F1/build_flags.py
|
||||
@@ -555,7 +579,7 @@ lib_ignore = Adafruit NeoPixel, SPI
|
||||
# JGAurora A5S A1 (STM32F103ZET6)
|
||||
#
|
||||
[env:jgaurora_a5s_a1]
|
||||
platform = ststm32
|
||||
platform = ststm32@<6.2.0
|
||||
board = genericSTM32F103ZE
|
||||
build_flags = !python Marlin/src/HAL/STM32F1/build_flags.py
|
||||
${common.build_flags} -DSTM32F1xx -std=gnu++14 -DSTM32_XL_DENSITY
|
||||
@@ -568,7 +592,7 @@ lib_ignore = Adafruit NeoPixel, SPI
|
||||
# Malyan M200 (STM32F103CB)
|
||||
#
|
||||
[env:STM32F103CB_malyan]
|
||||
platform = ststm32
|
||||
platform = ststm32@<6.2.0
|
||||
board = malyanM200
|
||||
build_flags = !python Marlin/src/HAL/STM32F1/build_flags.py -DMCU_STM32F103CB -D __STM32F1__=1 -std=c++1y -D MOTHERBOARD="BOARD_MALYAN_M200" -DSERIAL_USB -ffunction-sections -fdata-sections -Wl,--gc-sections
|
||||
-DDEBUG_LEVEL=0 -D__MARLIN_FIRMWARE__
|
||||
@@ -579,7 +603,7 @@ lib_ignore = Adafruit NeoPixel, LiquidCrystal, LiquidTWI2, TMCStepper, U8glib-H
|
||||
# Chitu boards like Tronxy X5s (STM32F103ZET6)
|
||||
#
|
||||
[env:chitu_f103]
|
||||
platform = ststm32
|
||||
platform = ststm32@<6.2.0
|
||||
board = genericSTM32F103ZE
|
||||
build_flags = !python Marlin/src/HAL/STM32F1/build_flags.py
|
||||
${common.build_flags} -DSTM32F1xx -std=gnu++14 -DSTM32_XL_DENSITY
|
||||
@@ -593,7 +617,7 @@ lib_ignore = Adafruit NeoPixel
|
||||
# 'STEVAL-3DP001V1' STM32F401VE board - https://www.st.com/en/evaluation-tools/steval-3dp001v1.html
|
||||
#
|
||||
[env:STM32F401VE_STEVAL]
|
||||
platform = ststm32
|
||||
platform = ststm32@<6.2.0
|
||||
board = STEVAL_STM32F401VE
|
||||
platform_packages = framework-arduinoststm32@>=3.107,<4
|
||||
build_flags = ${common.build_flags}
|
||||
@@ -611,7 +635,7 @@ src_filter = ${common.default_src_filter} +<src/HAL/STM32>
|
||||
# FLYF407ZG
|
||||
#
|
||||
[env:FLYF407ZG]
|
||||
platform = ststm32
|
||||
platform = ststm32@<6.2.0
|
||||
board = FLYF407ZG
|
||||
platform_packages = framework-arduinoststm32@>=3.107,<4
|
||||
build_flags = ${common.build_flags}
|
||||
@@ -628,7 +652,7 @@ src_filter = ${common.default_src_filter} +<src/HAL/STM32>
|
||||
# FYSETC S6 (STM32F446VET6 ARM Cortex-M4)
|
||||
#
|
||||
[env:FYSETC_S6]
|
||||
platform = ststm32
|
||||
platform = ststm32@<6.2.0
|
||||
board = fysetc_s6
|
||||
platform_packages =
|
||||
tool-stm32duino
|
||||
@@ -651,7 +675,7 @@ upload_protocol = serial
|
||||
# Shield - https://github.com/jmz52/Hardware
|
||||
#
|
||||
[env:STM32F407VE_black]
|
||||
platform = ststm32
|
||||
platform = ststm32@<6.2.0
|
||||
board = blackSTM32F407VET6
|
||||
platform_packages = framework-arduinoststm32@>=3.107,<4
|
||||
build_flags = ${common.build_flags}
|
||||
@@ -667,7 +691,7 @@ src_filter = ${common.default_src_filter} +<src/HAL/STM32>
|
||||
# BigTreeTech SKR Pro (STM32F407ZGT6 ARM Cortex-M4)
|
||||
#
|
||||
[env:BIGTREE_SKR_PRO]
|
||||
platform = ststm32
|
||||
platform = ststm32@<6.2.0
|
||||
board = BigTree_SKR_Pro
|
||||
platform_packages = framework-arduinoststm32@>=3.107,<4
|
||||
build_flags = ${common.build_flags}
|
||||
@@ -687,7 +711,7 @@ debug_init_break =
|
||||
# Bigtreetech GTR V1.0 (STM32F407IGT6 ARM Cortex-M4)
|
||||
#
|
||||
[env:BIGTREE_GTR_V1_0]
|
||||
platform = ststm32@>=5.7.0
|
||||
platform = ststm32@>=5.7.0,<6.2.0
|
||||
framework = arduino
|
||||
platform_packages = framework-arduinoststm32@>=3.107,<4
|
||||
board = BigTree_SKR_Pro
|
||||
@@ -697,12 +721,12 @@ build_flags = ${common.build_flags}
|
||||
-DTARGET_STM32F4 -DSTM32F407IX -DVECT_TAB_OFFSET=0x8000
|
||||
-IMarlin/src/HAL/STM32
|
||||
lib_deps =
|
||||
U8glib-HAL=https://github.com/MarlinFirmware/U8glib-HAL/archive/bugfix.zip
|
||||
LiquidCrystal
|
||||
TMCStepper@>=0.5.2,<1.0.0
|
||||
Adafruit NeoPixel
|
||||
LiquidTWI2=https://github.com/lincomatic/LiquidTWI2/archive/master.zip
|
||||
Arduino-L6470=https://github.com/ameyer/Arduino-L6470/archive/0.7.0.zip
|
||||
U8glib-HAL@0.4.1
|
||||
LiquidCrystal@1.5.0
|
||||
TMCStepper@~0.7.1
|
||||
Adafruit NeoPixel@1.5.0
|
||||
LiquidTWI2@1.2.7
|
||||
Arduino-L6470@0.8.0
|
||||
lib_ignore = SoftwareSerial, SoftwareSerialM
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/STM32>
|
||||
monitor_speed = 250000
|
||||
@@ -799,7 +823,7 @@ debug_tool = jlink
|
||||
# RUMBA32
|
||||
#
|
||||
[env:rumba32_f446ve]
|
||||
platform = ststm32
|
||||
platform = ststm32@<6.2.0
|
||||
board = rumba32_f446ve
|
||||
build_flags = ${common.build_flags}
|
||||
-DSTM32F4xx
|
||||
@@ -825,7 +849,7 @@ upload_protocol = dfu
|
||||
# MKS RUMBA32 (adds TMC2208/2209 UART interface and AUX-1)
|
||||
#
|
||||
[env:rumba32_mks]
|
||||
platform = ststm32
|
||||
platform = ststm32@<6.2.0
|
||||
board = rumba32_f446ve
|
||||
build_flags = ${common.build_flags}
|
||||
-DSTM32F4xx -DARDUINO_RUMBA32_F446VE -DARDUINO_ARCH_STM32 "-DBOARD_NAME=\"RUMBA32_F446VE\""
|
||||
|