Compare commits
86 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
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 | ||
|
5d3be2c342 | ||
|
d88d98d691 | ||
|
73c98e400b | ||
|
73e750d697 | ||
|
f6836ebdcb | ||
|
6e76022b13 | ||
|
b0095e511c | ||
|
0b2ea96958 | ||
|
c4cf58490e | ||
|
e5029452e2 | ||
|
759e42beac | ||
|
db6707d78e | ||
|
e7731a4b72 | ||
|
0b2a577fe8 | ||
|
e04691b248 | ||
|
fb801fb3ec | ||
|
9b1009a65b | ||
|
3952be65c3 | ||
|
3010e0e14a | ||
|
d656a841b7 | ||
|
d090049594 | ||
|
a52dc3c7e9 | ||
|
f16f964ab3 | ||
|
f78522d3bd | ||
|
6e120164a2 | ||
|
c5b7370b87 | ||
|
1c1b9c343c | ||
|
ac8ec5cf4f | ||
|
3114326d53 | ||
|
c58743be56 | ||
|
2ef316b70c | ||
|
105eb83168 | ||
|
3bfa7c855f | ||
|
a0cba42b41 | ||
|
d772a6abac | ||
|
b9a135b6af | ||
|
8ea2ae36ad | ||
|
eaf291bf05 | ||
|
3bbe852b3e | ||
|
fb927ee602 | ||
|
33f611d0cc | ||
|
f93857edb1 | ||
|
b1dfd1fec5 | ||
|
b6ad592a8d | ||
|
ecb83dcc13 | ||
|
e1ca8ee7b3 | ||
|
a11043e5bc | ||
|
38fdba59ed | ||
|
bebffb6823 | ||
|
a3b291f1cf | ||
|
0486080289 | ||
|
c20481ae96 |
@@ -38,8 +38,19 @@
|
||||
*/
|
||||
#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
|
||||
|
||||
//#define KNUTWURST_MEGAS
|
||||
//#define KNUTWURST_TMC
|
||||
//#define KNUTWURST_DGUS2_TFT
|
||||
//#define KNUTWURST_BLTOUCH
|
||||
|
||||
|
||||
//#define KNUTWURST_DEBUG
|
||||
|
||||
|
||||
//===========================================================================
|
||||
//============================= Getting Started =============================
|
||||
@@ -75,6 +86,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 ***
|
||||
@@ -128,7 +140,19 @@
|
||||
// Enable the Bluetooth serial interface on AT90USB devices
|
||||
//#define BLUETOOTH
|
||||
|
||||
// Choose the name from boards.h that matches your setup
|
||||
|
||||
/**
|
||||
* Select your version of the Trigorilla (RAMPS1.4) board here.
|
||||
*
|
||||
* BOARD_TRIGORILLA_14 = Default Trigorilla
|
||||
* BOARD_TRIGORILLA_14_11 = Newer Trigorilla v1.1 (first seen late 2018)
|
||||
*
|
||||
* The only major difference is a slight change on the servo pin mapping.
|
||||
* This setting only is relevant if you want to use BLtouch or similar
|
||||
* mods to be used via servo pins.
|
||||
* The new version is to be identified by a "TRIGORILLA1.1" lettering
|
||||
* on the upper left of the PCB silkscreen.
|
||||
*/
|
||||
#ifndef MOTHERBOARD
|
||||
#define MOTHERBOARD BOARD_TRIGORILLA_14
|
||||
#endif
|
||||
@@ -759,7 +783,7 @@
|
||||
*/
|
||||
|
||||
#if ENABLED(KNUTWURST_MEGAS)
|
||||
#define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 400, 384 }
|
||||
#define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 400, 392 }
|
||||
#endif
|
||||
|
||||
#if DISABLED(KNUTWURST_MEGAS)
|
||||
@@ -771,7 +795,15 @@
|
||||
* Override with M203
|
||||
* X, Y, Z, E0 [, E1[, E2...]]
|
||||
*/
|
||||
#if ENABLED(KNUTWURST_MEGAS)
|
||||
#define DEFAULT_MAX_FEEDRATE { 500, 500, 6, 30 }
|
||||
#endif
|
||||
|
||||
#if DISABLED(KNUTWURST_MEGAS)
|
||||
#define DEFAULT_MAX_FEEDRATE { 500, 500, 6, 60 }
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
//#define LIMITED_MAX_FR_EDITING // Limit edit via M203 or LCD to DEFAULT_MAX_FEEDRATE * 2
|
||||
#if ENABLED(LIMITED_MAX_FR_EDITING)
|
||||
@@ -799,10 +831,18 @@
|
||||
* M204 R Retract Acceleration
|
||||
* 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
|
||||
#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
|
||||
|
||||
#endif
|
||||
/**
|
||||
* Default Jerk limits (mm/s)
|
||||
* Override with M205 X Y Z E
|
||||
@@ -880,7 +920,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
|
||||
@@ -894,7 +936,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
|
||||
|
||||
/**
|
||||
@@ -918,7 +963,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
|
||||
@@ -990,14 +1037,20 @@
|
||||
*
|
||||
* Specify a Probe position as { X, Y, Z }
|
||||
*/
|
||||
#if ENABLED(KNUTWURST_BLTOUCH)
|
||||
#define NOZZLE_TO_PROBE_OFFSET { 29, -15, 0 }
|
||||
#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
|
||||
|
||||
// X and Y axis travel speed (mm/m) between probes
|
||||
#define XY_PROBE_SPEED 8000
|
||||
#define XY_PROBE_SPEED 3600
|
||||
|
||||
// Feedrate (mm/m) for the first approach when double-probing (MULTIPLE_PROBING == 2)
|
||||
#define Z_PROBE_SPEED_FAST HOMING_FEEDRATE_Z
|
||||
@@ -1036,14 +1089,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
|
||||
@@ -1147,16 +1209,16 @@
|
||||
// @section machine
|
||||
|
||||
// The size of the print bed
|
||||
#define X_BED_SIZE 215
|
||||
#define Y_BED_SIZE 215
|
||||
#define X_BED_SIZE 225
|
||||
#define Y_BED_SIZE 220
|
||||
|
||||
// Travel limits (mm) after homing, corresponding to endstop positions.
|
||||
#define X_MIN_POS -5
|
||||
#define X_MIN_POS 0
|
||||
#define Y_MIN_POS 0
|
||||
#define Z_MIN_POS 0
|
||||
#define X_MAX_POS X_BED_SIZE
|
||||
#define Y_MAX_POS Y_BED_SIZE
|
||||
#define Z_MAX_POS 205
|
||||
#define Z_MAX_POS 210
|
||||
|
||||
/**
|
||||
* Software Endstops
|
||||
@@ -1257,24 +1319,36 @@
|
||||
* 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
|
||||
* this option to have G28 restore the prior leveling state.
|
||||
*/
|
||||
//#define RESTORE_LEVELING_AFTER_G28
|
||||
#define RESTORE_LEVELING_AFTER_G28
|
||||
|
||||
/**
|
||||
* Enable detailed logging of G28, G29, M48, etc.
|
||||
* 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,
|
||||
@@ -1306,7 +1380,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
|
||||
@@ -1500,9 +1574,9 @@
|
||||
#define EEPROM_SETTINGS // Persistent storage with M500 and M501
|
||||
//#define DISABLE_M503 // Saves ~2700 bytes of PROGMEM. Disable for release!
|
||||
#define EEPROM_CHITCHAT // Give feedback on EEPROM commands. Disable to save PROGMEM.
|
||||
#define EEPROM_BOOT_SILENT // Keep M503 quiet and only give errors during first load
|
||||
//#define EEPROM_BOOT_SILENT // Keep M503 quiet and only give errors during first load
|
||||
#if ENABLED(EEPROM_SETTINGS)
|
||||
//#define EEPROM_AUTO_INIT // Init EEPROM automatically on any errors.
|
||||
#define EEPROM_AUTO_INIT // Init EEPROM automatically on any errors.
|
||||
#endif
|
||||
|
||||
//
|
||||
@@ -1512,7 +1586,7 @@
|
||||
// every couple of seconds when it can't accept commands.
|
||||
//
|
||||
#define HOST_KEEPALIVE_FEATURE // Disable this if your host doesn't like keepalive messages
|
||||
#define DEFAULT_KEEPALIVE_INTERVAL 2 // Number of seconds between "busy" messages. Set with M113.
|
||||
#define DEFAULT_KEEPALIVE_INTERVAL 5 // Number of seconds between "busy" messages. Set with M113.
|
||||
#define BUSY_WHILE_HEATING // Some hosts require "busy" messages even during heating
|
||||
|
||||
//
|
||||
@@ -1803,7 +1877,7 @@
|
||||
|
||||
// Play a (non-earpiercing) startup chime on startup/serial connection
|
||||
// of the Trigorilla board
|
||||
//#define STARTUP_CHIME
|
||||
#define STARTUP_CHIME
|
||||
|
||||
//
|
||||
// ENDSTOP BEEP
|
||||
@@ -2321,22 +2395,3 @@
|
||||
|
||||
// Allow servo angle to be edited and saved to EEPROM
|
||||
//#define EDITABLE_SERVO_ANGLES
|
||||
|
||||
/**
|
||||
* Select your version of the Trigorilla (RAMPS1.4) board here.
|
||||
*
|
||||
* 0 = Default Trigorilla
|
||||
* 1 = Newer Trigorilla v1.1 (first seen late 2018)
|
||||
*
|
||||
* The only major difference is a slight change on the servo pin mapping.
|
||||
* This setting only is relevant if you want to use BLtouch or similar
|
||||
* mods to be used via servo pins.
|
||||
* The new version is to be identified by a "TRIGORILLA1.1" lettering
|
||||
* on the upper left of the PCB silkscreen.
|
||||
*/
|
||||
#define TRIGORILLA_VERSION 1
|
||||
|
||||
// Enable Anycubic TFT
|
||||
#define ANYCUBIC_TOUCHSCREEN
|
||||
#define ANYCUBIC_FILAMENT_RUNOUT_SENSOR
|
||||
#define ANYCUBIC_TFT_DEBUG
|
||||
|
@@ -33,6 +33,9 @@
|
||||
*/
|
||||
#define CONFIGURATION_ADV_H_VERSION 020005
|
||||
|
||||
#define KNUTWURST_MEGAS_ADV
|
||||
#define KNUTWURST_TMC_ADV
|
||||
|
||||
// @section temperature
|
||||
|
||||
//===========================================================================
|
||||
@@ -1468,7 +1471,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
|
||||
@@ -1517,6 +1522,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
|
||||
@@ -1553,12 +1559,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
|
||||
@@ -1628,7 +1645,7 @@
|
||||
//
|
||||
// G2/G3 Arc Support
|
||||
//
|
||||
#define ARC_SUPPORT // Disable this feature to save ~3226 bytes
|
||||
//#define ARC_SUPPORT // Disable this feature to save ~3226 bytes
|
||||
#if ENABLED(ARC_SUPPORT)
|
||||
#define MM_PER_ARC_SEGMENT 1 // (mm) Length (or minimum length) of each arc segment
|
||||
//#define ARC_SEGMENTS_PER_R 1 // Max segment length, MM_PER = Min
|
||||
@@ -3142,3 +3159,6 @@
|
||||
|
||||
// Enable Marlin dev mode which adds some special commands
|
||||
//#define MARLIN_DEV_MODE
|
||||
|
||||
//#define KNUTWURST_MEGAS_ADV
|
||||
//#define KNUTWURST_TMC_ADV
|
||||
|
@@ -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.
|
||||
|
@@ -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; }
|
||||
|
@@ -43,10 +43,7 @@
|
||||
#include "../../feature/leds/leds.h"
|
||||
#endif
|
||||
|
||||
#if ENABLED(ANYCUBIC_TOUCHSCREEN)
|
||||
#include "../../lcd/anycubic_touchscreen.h"
|
||||
#endif
|
||||
#include "../../MarlinCore.h" // for wait_for_heatup and idle()
|
||||
#include "../../MarlinCore.h" // for wait_for_heatup, idle, startOrResumeJob
|
||||
|
||||
/**
|
||||
* M140: Set bed temperature
|
||||
@@ -83,15 +80,9 @@ void GcodeSuite::M190() {
|
||||
}
|
||||
else return;
|
||||
|
||||
#ifdef ANYCUBIC_TOUCHSCREEN
|
||||
AnycubicTouchscreen.BedHeatingStart();
|
||||
#endif
|
||||
|
||||
ui.set_status_P(thermalManager.isHeatingBed() ? GET_TEXT(MSG_BED_HEATING) : GET_TEXT(MSG_BED_COOLING));
|
||||
|
||||
thermalManager.wait_for_bed(no_wait_for_cooling);
|
||||
|
||||
//SERIAL_FLUSH();
|
||||
}
|
||||
|
||||
#endif // HAS_HEATED_BED
|
||||
|
@@ -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.1"
|
||||
#define CUSTOM_BUILD_VERSION "1.1.0"
|
||||
|
||||
#ifndef STRING_DISTRIBUTION_DATE
|
||||
#define STRING_DISTRIBUTION_DATE "2020-03-31"
|
||||
#define STRING_DISTRIBUTION_DATE "2020-07-09"
|
||||
#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 MACHINE_NAME "Anycubic i3 MEGA S"
|
||||
/**
|
||||
* 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,14 +37,16 @@
|
||||
|
||||
#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
|
||||
// location from which to read.
|
||||
#if (RAMEND < 1000)
|
||||
#define SERIAL_BUFFER_SIZE 64
|
||||
#define SERIAL_BUFFER_SIZE 16
|
||||
#else
|
||||
#define SERIAL_BUFFER_SIZE 128
|
||||
#define SERIAL_BUFFER_SIZE 64
|
||||
#endif
|
||||
|
||||
struct ring_buffer
|
||||
@@ -310,6 +312,33 @@ HardwareSerialClass::operator bool()
|
||||
HardwareSerialClass HardwareSerial(&rx_buffer_ajg, &tx_buffer_ajg, &UBRR3H, &UBRR3L, &UCSR3A, &UCSR3B, &UCSR3C, &UDR3, RXEN3, TXEN3, RXCIE3, UDRIE3, U2X3);
|
||||
#endif
|
||||
|
||||
void Newok_to_send() {
|
||||
previous_cmd_ms = millis();
|
||||
/*
|
||||
if (!send_ok[cmd_queue_index_r]) return;
|
||||
// SERIAL_PROTOCOLPGM(MSG_OK);
|
||||
#if ENABLED(ADVANCED_OK)
|
||||
char* p = command_queue[cmd_queue_index_r];
|
||||
if (*p == 'N') {
|
||||
SERIAL_PROTOCOL(' ');
|
||||
SERIAL_ECHO(*p++);
|
||||
while (NUMERIC_SIGNED(*p))
|
||||
SERIAL_ECHO(*p++);
|
||||
}
|
||||
SERIAL_PROTOCOLPGM(" P"); SERIAL_PROTOCOL(int(BLOCK_BUFFER_SIZE - planner.movesplanned() - 1));
|
||||
SERIAL_PROTOCOLPGM(" B"); SERIAL_PROTOCOL(BUFSIZE - commands_in_queue);
|
||||
#endif
|
||||
SERIAL_EOL;
|
||||
*/
|
||||
}
|
||||
void NEWFlushSerialRequestResend() {
|
||||
//char command_queue[cmd_queue_index_r][100]="Resend:";
|
||||
HardwareSerial.flush();
|
||||
// SERIAL_PROTOCOLPGM(MSG_RESEND);
|
||||
// SERIAL_PROTOCOLLN(gcode_LastN + 1);
|
||||
Newok_to_send();
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#endif // whole file
|
||||
|
@@ -141,4 +141,7 @@ FORCE_INLINE void HardwareSerialprintPGM(const char *str)
|
||||
}
|
||||
}
|
||||
|
||||
void NEWFlushSerialRequestResend();
|
||||
void NEWClearToSend();
|
||||
|
||||
#endif
|
||||
|
@@ -33,7 +33,8 @@ char *ftostr32(const float &);
|
||||
|
||||
#define TFTBUFSIZE 4
|
||||
#define TFT_MAX_CMD_SIZE 96
|
||||
#define MSG_MY_VERSION "V116"
|
||||
#define MSG_MY_VERSION CUSTOM_BUILD_VERSION
|
||||
#define MAX_PRINTABLE_FILENAME_LEN 30
|
||||
|
||||
#define ANYCUBIC_TFT_STATE_IDLE 0
|
||||
#define ANYCUBIC_TFT_STATE_SDPRINT 1
|
||||
@@ -43,6 +44,97 @@ 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 "<SPECI~1.GCO"
|
||||
#define SM_PID_HOTEND_L "<PID Tune Hotend>"
|
||||
#define SM_PID_HOTEND_S "<PIDTU~1.GCO"
|
||||
#define SM_PID_BED_L "<PID Tune Ultrabase>"
|
||||
#define SM_PID_BED_S "<PIDTU~2.GCO"
|
||||
#define SM_SAVE_EEPROM_L "<Save EEPROM>"
|
||||
#define SM_SAVE_EEPROM_S "<SAVEE~1.GCO"
|
||||
#define SM_LOAD_DEFAULTS_L "<Load FW Defaults>"
|
||||
#define SM_LOAD_DEFAULTS_S "<LOADF~1.GCO"
|
||||
#define SM_PREHEAT_BED_L "<Preheat Ultrabase>"
|
||||
#define SM_PREHEAT_BED_S "<PREHE~1.GCO"
|
||||
#define SM_MESH_START_L "<Start Mesh Leveling>"
|
||||
#define SM_MESH_START_S "<START~1.GCO"
|
||||
#define SM_MESH_NEXT_L "<Next Mesh Point>"
|
||||
#define SM_MESH_NEXT_S "<NEXTM~1.GCO"
|
||||
#define SM_Z_UP_01_L "<Z Up 0.1>"
|
||||
#define SM_Z_UP_01_S "<ZUP01~1.GCO"
|
||||
#define SM_Z_DN_01_L "<Z Down 0.1>"
|
||||
#define SM_Z_DN_01_S "<ZDOWN~1.GCO"
|
||||
#define SM_Z_UP_002_L "<Z Up 0.02>"
|
||||
#define SM_Z_UP_002_S "<ZUP00~1.GCO"
|
||||
#define SM_Z_DN_002_L "<Z Down 0.02>"
|
||||
#define SM_Z_DN_002_S "<ZDOWN~2.GCO"
|
||||
#define SM_Z_UP_001_L "<Z Up 0.01>"
|
||||
#define SM_Z_UP_001_S "<ZUP00~2.GCO"
|
||||
#define SM_Z_DN_001_L "<Z Down 0.01>"
|
||||
#define SM_Z_DN_001_S "<ZDOWN~3.GCO"
|
||||
#define SM_BLTOUCH_L "<BLTouch Leveling>"
|
||||
#define SM_BLTOUCH_S "<BLTOU~1.GCO"
|
||||
#define SM_PAUSE_L "<Fil. Change Pause>"
|
||||
#define SM_PAUSE_S "<FILCH~2.GCO"
|
||||
#define SM_RESUME_L "<Fil. Change Resume>"
|
||||
#define SM_RESUME_S "<FILCH~1.GCO"
|
||||
#define SM_DIS_FILSENS_L "<Disable Fil. Sensor>"
|
||||
#define SM_DIS_FILSENS_S "<DISAB~1.GCO"
|
||||
#define SM_EN_FILSENS_L "<Enable Fil. Sensor>"
|
||||
#define SM_EN_FILSENS_S "<ENABL~1.GCO"
|
||||
#define SM_EXIT_L "<Exit>"
|
||||
#define SM_EXIT_S "<EXIT_~1.GCO"
|
||||
#endif
|
||||
|
||||
#if ENABLED(KNUTWURST_DGUS2_TFT)
|
||||
#define SM_DIR_UP_L "<<<<<<.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 "<Start 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"
|
||||
#endif
|
||||
|
||||
|
||||
class AnycubicTouchscreenClass
|
||||
{
|
||||
public:
|
||||
@@ -86,6 +178,7 @@ private:
|
||||
uint16_t HeaterCheckCount = 0;
|
||||
bool IsParked = false;
|
||||
|
||||
#if defined(POWER_OUTAGE_TEST)
|
||||
struct OutageDataStruct
|
||||
{
|
||||
char OutageDataVersion;
|
||||
@@ -95,13 +188,12 @@ private:
|
||||
float last_hotend_temp;
|
||||
long lastSDposition;
|
||||
} OutageData;
|
||||
#endif
|
||||
|
||||
void WriteOutageEEPromData();
|
||||
void ReadOutageEEPromData();
|
||||
|
||||
float CodeValue();
|
||||
bool CodeSeen(char);
|
||||
void Ls();
|
||||
void PrintList();
|
||||
void StartPrint();
|
||||
void PausePrint();
|
||||
void StopPrint();
|
||||
@@ -115,8 +207,12 @@ private:
|
||||
void ReheatNozzle();
|
||||
void ParkAfterStop();
|
||||
|
||||
char SelectedDirectory[30];
|
||||
char currentTouchscreenSelection[64];
|
||||
char currentFileOrDirectory[64];
|
||||
uint16_t MyFileNrCnt = 0;
|
||||
uint8_t SpecialMenu = false;
|
||||
uint8_t FilamentSensorEnabled = true;
|
||||
|
||||
|
||||
#if ENABLED(ANYCUBIC_FILAMENT_RUNOUT_SENSOR)
|
||||
char FilamentTestStatus = false;
|
||||
|
@@ -56,6 +56,8 @@
|
||||
#include "../gcode/gcode.h"
|
||||
#include "../MarlinCore.h"
|
||||
|
||||
#include "../sd/cardreader.h"
|
||||
|
||||
#if EITHER(EEPROM_SETTINGS, SD_FIRMWARE_UPDATE)
|
||||
#include "../HAL/shared/eeprom_api.h"
|
||||
#endif
|
||||
@@ -522,6 +524,9 @@ void MarlinSettings::postprocess() {
|
||||
#define EEPROM_READ_ALWAYS(VAR) do{ persistentStore.read_data(eeprom_index, (uint8_t*)&VAR, sizeof(VAR), &working_crc); }while(0)
|
||||
#define EEPROM_ASSERT(TST,ERR) do{ if (!(TST)) { SERIAL_ERROR_MSG(ERR); eeprom_error = true; } }while(0)
|
||||
|
||||
#define EEPROM_WRITE_VAR(pos, value) persistentStore.write_data(pos, (uint8_t*)&value, sizeof(value))
|
||||
#define EEPROM_READ_VAR(pos, value) persistentStore.read_data(pos, (uint8_t*)&value, sizeof(value))
|
||||
|
||||
#if ENABLED(DEBUG_EEPROM_READWRITE)
|
||||
#define _FIELD_TEST(FIELD) \
|
||||
EEPROM_ASSERT( \
|
||||
@@ -3682,6 +3687,45 @@ void MarlinSettings::reset() {
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
#ifdef POWER_OUTAGE_TEST
|
||||
float last_position[4] = { 0.0,0.0,0.0,0.0 };
|
||||
long last_sd_position[1] = { 0 };
|
||||
|
||||
void OutageSave()
|
||||
{
|
||||
char ver[4] = "000";
|
||||
int j = 20;
|
||||
EEPROM_WRITE_VAR(j,ver);
|
||||
last_sd_position[0] = card.GetLastSDpos();
|
||||
last_position[0] = current_position[E_AXIS];
|
||||
last_position[1] = current_position[Z_AXIS];
|
||||
last_position[2] = current_position[Y_AXIS];
|
||||
last_position[3] = current_position[X_AXIS];
|
||||
|
||||
EEPROM_WRITE_VAR(j,last_sd_position[0]);
|
||||
EEPROM_WRITE_VAR(j,last_position[0]); //E
|
||||
EEPROM_WRITE_VAR(j,last_position[1]); //Z
|
||||
EEPROM_WRITE_VAR(j,last_position[2]); //Y
|
||||
EEPROM_WRITE_VAR(j,last_position[3]); //X
|
||||
}
|
||||
|
||||
|
||||
void OutageRead()
|
||||
{
|
||||
int i = 20;
|
||||
char stored_ver[4];
|
||||
char ver[4] = EEPROM_VERSION;
|
||||
EEPROM_READ_VAR(i,stored_ver);
|
||||
EEPROM_READ_VAR(i,last_sd_position[0]);
|
||||
EEPROM_READ_VAR(i,last_position[0]); //E
|
||||
EEPROM_READ_VAR(i,last_position[1]); //Z
|
||||
EEPROM_READ_VAR(i,last_position[2]); //Y
|
||||
EEPROM_READ_VAR(i,last_position[3]); //X
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#endif // !DISABLE_M503
|
||||
|
||||
#pragma pack(pop)
|
||||
|
@@ -27,6 +27,15 @@
|
||||
#include "../HAL/shared/eeprom_api.h"
|
||||
#endif
|
||||
|
||||
#ifdef POWER_OUTAGE_TEST
|
||||
|
||||
static bool RestartFlag = false;
|
||||
void OutageSave();
|
||||
void OutageRead();
|
||||
extern float last_position[4];
|
||||
extern long last_sd_position[1];
|
||||
#endif
|
||||
|
||||
class MarlinSettings {
|
||||
public:
|
||||
static uint16_t datasize();
|
||||
|
@@ -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)
|
||||
@@ -2071,22 +2071,11 @@ void Temperature::init() {
|
||||
|
||||
case TRRunaway:
|
||||
_temp_error(heater_id, str_t_thermal_runaway, GET_TEXT(MSG_THERMAL_RUNAWAY));
|
||||
BUZZ(2000, 1108);
|
||||
BUZZ(2000, 1661);
|
||||
BUZZ(2000, 1108);
|
||||
BUZZ(2000, 1661);
|
||||
BUZZ(2000, 1108);
|
||||
BUZZ(2000, 1661);
|
||||
BUZZ(2000, 1108);
|
||||
BUZZ(2000, 1661);
|
||||
BUZZ(2000, 1108);
|
||||
BUZZ(2000, 1661);
|
||||
BUZZ(2000, 1108);
|
||||
BUZZ(2000, 1661);
|
||||
BUZZ(2000, 1108);
|
||||
BUZZ(2000, 1661);
|
||||
BUZZ(2000, 1108);
|
||||
BUZZ(2000, 1661);
|
||||
for(uint8_t i = 0; i < 30; i++)
|
||||
{
|
||||
BUZZ(2000, 1108);
|
||||
BUZZ(2000, 1661);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -90,6 +90,11 @@
|
||||
#define FAN2_PIN TG_FAN2_PIN
|
||||
#define ORIG_E0_AUTO_FAN_PIN TG_FAN2_PIN // Used in Anycubic Kossel example config
|
||||
|
||||
#ifdef POWER_OUTAGE_TEST
|
||||
#define OUTAGETEST_PIN 79
|
||||
#define OUTAGECON_PIN 58
|
||||
#endif
|
||||
|
||||
#include "pins_RAMPS.h"
|
||||
|
||||
//
|
||||
|
@@ -34,6 +34,11 @@
|
||||
#include "../gcode/queue.h"
|
||||
#include "../module/configuration_store.h"
|
||||
|
||||
#if defined(POWER_OUTAGE_TEST)
|
||||
extern unsigned char PowerTestFlag;
|
||||
extern char seekdataflag;
|
||||
#endif
|
||||
|
||||
#if ENABLED(EMERGENCY_PARSER)
|
||||
#include "../feature/e_parser.h"
|
||||
#endif
|
||||
|
@@ -153,6 +153,7 @@ public:
|
||||
static inline int16_t get() { sdpos = file.curPosition(); return (int16_t)file.read(); }
|
||||
static inline int16_t read(void* buf, uint16_t nbyte) { return file.isOpen() ? file.read(buf, nbyte) : -1; }
|
||||
static inline int16_t write(void* buf, uint16_t nbyte) { return file.isOpen() ? file.write(buf, nbyte) : -1; }
|
||||
static inline long GetLastSDpos() { return sdpos; };
|
||||
|
||||
static Sd2Card& getSd2Card() { return sd2card; }
|
||||
|
||||
|
225
README.md
@@ -1,30 +1,46 @@
|
||||
# Knutwurst's i3 MEGA S Firmware (based on Marlin 2.0.5.3)
|
||||
# Knutwurst's i3 MEGA (S/X) Firmware (based on Marlin 2.0.5.4)
|
||||
|
||||
<span style="color: red;">(BITTE GENAU DURCHLESEN! / PLEASE READ CAREFULLY!)</span>
|
||||
|
||||
### 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>
|
||||
|
||||
## Readme - German (english below)
|
||||
|
||||
---
|
||||
|
||||
Diese Firmwarekonfiguration aktiviert viele neue erweitere Funktionen der Marlin Firmware:
|
||||
|
||||
* Mesh-Bed Kalibrierung
|
||||
* Mesh-Bed Kalibrierung / Autokalibrierung mit BLTouch (WiP)
|
||||
* 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
|
||||
* Biliniar Bed Leveling (BBL)
|
||||
* Bilinear Bed Leveling (BBL)
|
||||
* Manuelles Editieren der Messpunkte
|
||||
* Volle Anycubic Touchscreen Unterstützung
|
||||
* Unterstützung des neuen Anycubic Touchscreens (DGUS II)
|
||||
* Bauteilkühler läuft nun auf 100% statt maximal 70%
|
||||
* Pause & Filamentwechselfunktion
|
||||
* Automatische EEPROM Initialisierung
|
||||
* Filament Runout Sensor kann im Menü deaktiviert werden
|
||||
* Wiederaufnahme des Drucks nach Stromausfall (WiP)
|
||||
* Druckbettgröße erweitert auf 220 x 225 x 210 mm
|
||||
* Automatischer 'Slowdown', falls Daten nicht schnell genug fließen
|
||||
|
||||
Besser im Vergleich zu anderen Firmwares:
|
||||
|
||||
Besser im Vergleich zu anderen Firmwares (Bugfixes):
|
||||
* Aufgeräumtes Special-Menü
|
||||
* Drucker hängt sich nicht auf, wenn man Dateien mit Sonderzeichen (oder Chinesisch) auf der SD Karte hat
|
||||
* 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
|
||||
* Kein Abstürzen bei zu vielen Dateien auf der SD Karte
|
||||
* Kein Abstürzen bei SD-Karten über 16 GB
|
||||
* 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.
|
||||
|
||||
Bevor du irgendwas machst, nachdem du die Firmware geupdated hast, gehe zu `Special Menu > Load FW Defaults` um alte Einstellungen zu löschen!
|
||||
Bekannte Bugs:
|
||||
* Filament Runout Sensor wird bei jedem Neustart wieder aktiviert
|
||||
* Wiederaufnahme nach Stromausfall funktioniert nur sehr unzuverlässig
|
||||
|
||||
---
|
||||
|
||||
@@ -32,38 +48,79 @@ Bevor du irgendwas machst, nachdem du die Firmware geupdated hast, gehe zu `Spec
|
||||
|
||||
>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 abszürzt, wenn man Dateien mit Sonderzeichen auf der SD Karte hat.
|
||||
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.
|
||||
|
||||
>Ist deine Firmware besser als andere?
|
||||
|
||||
Nein. Aber sicher auch nicht schlechter.
|
||||
|
||||
|
||||
>Wo sind die Downloads?
|
||||
|
||||
Weiter unten.
|
||||
|
||||
|
||||
>Muss ich bei TMC Treibern die Stecker drehen?
|
||||
|
||||
Nö. Lade dir einfach die korrekte Version herunter.
|
||||
|
||||
>Welche TMC2208 Motortreiber sollte ich kaufen? Lieber die V2 oder die Bigtreetech V3?
|
||||
|
||||
>Welche TMC Motortreiber sollte ich kaufen? Lieber die V2 oder die Bigtreetech V3?
|
||||
Weder noch! Es gibt keine "V2" oder "V3". Die offizielle letzte Version von Trinamic ist v1.2 und die beiden großen primären Hersteller für die echten SilentStepSticks sind FYSETC und WATTERROTT. Lass bloß die Finger von Bigtreetech.
|
||||
|
||||
Weder noch! Es gibt keine "V2" oder "V3". Die offizielle letzte Version von Trinamic ist v1.2 und die beiden großen priämären Hersteller für die echten SilentStepSticks sind FYSTEC und WATTERROTT. Lass bloß die Finger von Bigtreetech.
|
||||
>Ich habe die Stecker bei meinen Motoren schon gedreht, als ich die TMC Treiber eingebaut habe. Muss ich jetzt trotzdem die TMC Version flashen?
|
||||
|
||||
Nein. Benutze einfach die Nicht-TMC Version, da sonst die Motoren wieder in die falsche Richtung laufen.
|
||||
|
||||
>Als ich die Treiber eingebaut habe, qualmte mein Mainboard in der Mitte rechts. Ist das normal?
|
||||
|
||||
Nein. Du hast die Treiber falsch herum eingebaut. Jetzt ist die Z-Diode (733A) verbrannt. Tausche sie aus und alles funktioniert wieder. Deine falsch gesteckten Treiber kannst du aber vermutlich wegschmeißen.
|
||||
|
||||
|
||||
>Muss ich wie bei anderen Firmwares noch die E-Steps einstellen, wenn ich einen Mega S besitze?
|
||||
|
||||
Nein, lade dir einfach die korrekte Version herunter. Trotzdem solltest du die Steps noch kalibrieren.
|
||||
|
||||
>Wieso zeigt das Display keine Fehlermeldungen an und wieso sieht es noch genau so aus wie vorher?
|
||||
|
||||
Dein Mainboard (Trigorilla) kann nur Grafikdisplays wie das 2004 oder 12864 ansteuern. Auf denen würdest du auch exakt das sehen, was in der Firmware wirklich passiert - eben weil diese das anzeigen, was die Firmware sagt. Texte, Fehlermeldungen etc...
|
||||
|
||||
Bei deinem (und auch allen anderen) Touchdisplay sieht das anders aus. Das Touch-Display ist nur eine hübsche Aufmachung und übersetzt intern die eigentlichen Befehle in etwas, was das Mainboard versteht. Es ist bloß eine "Maske" für die eigentliche Firmware.
|
||||
|
||||
Es besteht ein 1-zu-1 Mapping zwischen den Befehlen, die das Mainboard umsetzen kann (Setze Temperatur auf Wert x, Bewege Motor um 10 mm nach rechts etc). Stellst du die Temperatur im Display auf 200°C ein, schickst du eigentlich nur einen Gcode wie z.B. "M104 T1 S200", was schon im Display vorhanden sein muss.
|
||||
|
||||
Bei diesem Mapping ist man eben darauf angewiesen, dass die Funktionen, die man nutzen will, auch im Display vorhanden sind. Und leider ist nicht viel drin. Die Dateiliste ist das einzige(!) über das man einigermaßen die Kontrolle hat, da sie dynamisch angezeigt wird. Leider muss man deswegen leider auch diese dämlichen Eigenarten in Kauf nehmen, wie die Tatsache, dass nach einem Bestätigen/Aktualisieren die Liste neu aufgebaut wird und somit oben beginnt.
|
||||
|
||||
---
|
||||
|
||||
### Bilder - Special Menu
|
||||
|
||||

|
||||
|
||||
### Bilder - Manual Mesh Beld Leveling
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
### Bilder - BLTouch Beld Leveling
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
---
|
||||
|
||||
@@ -79,9 +136,147 @@ Du kannst die fertigen Binärdateien hier herunterladen: https://github.com/knut
|
||||
|
||||
-> `i3_Mega_S_TMC.hex` benutzt du, wenn du sowohl die "S" Version mit Titan-Extruder und TMC Motortreiber verwendest.
|
||||
|
||||
-> `i3_Mega_S_DGUS.hex` wird verwendet, wenn du den neuere "S" Version mit Titan-Extruder und außerdem auch das neue Display in blau/gelb besitzt.
|
||||
|
||||
-> `i3_Mega_S_DGUS_TMC.hex` benutzt du, wenn du sowohl die "S" Version mit Titan-Extruder, neuem TFT in blau/gelb und TMC Motortreiber verwendest.
|
||||
|
||||
---
|
||||
|
||||
### 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
|
||||
|
||||
- coming soon -
|
||||
This firmware configuration activates many new features of the Marlin firmware:
|
||||
|
||||
* Mesh bed calibration / Auto calibration with BLTouch (WiP)
|
||||
* 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
|
||||
* Bilinear Bed Leveling (BBL)
|
||||
* Manual editing of the measuring points
|
||||
* Full Anycubic touchscreen support
|
||||
* Support for the new Anycubic Touchscreen (DGUS II)
|
||||
* 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
|
||||
* Automatic slowdown in if the data is not received fast enough
|
||||
|
||||
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
|
||||
* No firmware crash when there are too many files on the SD card
|
||||
* No crash with SD cards over 16 GB
|
||||
* Acoustic alarm in case of a thermal runaway
|
||||
* 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
|
||||
|
||||
---
|
||||
|
||||
### 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.
|
||||
|
||||
> Is your firmware better than others?
|
||||
|
||||
No. But certainly not worse either.
|
||||
|
||||
> Where are the downloads?
|
||||
|
||||
Further down.
|
||||
|
||||
> Do I have to turn the plugs for TMC drivers?
|
||||
|
||||
Nope, just download the correct version.
|
||||
|
||||
> Which TMC2208 motor drivers should I buy? The V2 or the Bigtreetech V3?
|
||||
|
||||
Neither! There is no "V2" or "V3". The official last version of Trinamic is v1.2 and the two major primary manufacturers for the real SilentStepSticks are FYSETC and WATTERROTT. Just stay away from Bigtreetech.
|
||||
|
||||
> I already turned the plugs on my motors when I installed the TMC drivers. Do I still have to flash the TMC version?
|
||||
|
||||
No. Just use the non-TMC version, otherwise the motors will turn in the wrong direction again.
|
||||
|
||||
> When I installed the drivers, my mainboard gave me the "magic smoke". Is that normal?
|
||||
|
||||
No. You installed the drivers the wrong way round. Now the Zener diode (733A) is burned. Exchange it and everything works again. You can probably throw away your wrongly inserted drivers.
|
||||
|
||||
> As with other firmwares, do I still have to set the E-Steps if I have a Mega S?
|
||||
|
||||
No, just download the correct version. Nevertheless, you should still calibrate the e-steps.
|
||||
|
||||
> Why doesn't the display show any error messages and why does it still look exactly as before?
|
||||
|
||||
Your mainboard (Trigorilla) can only control graphic displays like the 2004 or 12864. On them you would also see exactly what really happens in the firmware - to be precise, they show what the firmware says. Texts, error messages etc.
|
||||
|
||||
With your (and all other) touch displays, things look different. The touch display is just a pretty presentation and internally translates the actual commands into something that the motherboard understands. It is just a "mask" for the actual firmware.
|
||||
|
||||
There is a 1-to-1 mapping between the commands that the mainboard has implemented (set temperature to value x, move motor by 10 mm to the right, etc.). If you set the temperature in the display to 200°C, you actually only send a Gcode such as "M104 T1 S200", which must already be on the display firmware.
|
||||
|
||||
With this mapping, you have to rely on the fact that the functions you want to use are also available on the display. And unfortunately there is not much in it. The file list is the only thing(!) over which you have some control because it is displayed dynamically. Unfortunately, you have to accept these stupid idiosyncrasies, such as the fact that after confirming/updating the list is rebuilt and thus starts at the top.
|
||||
|
||||
---
|
||||
|
||||
### Pictures - Special Menu
|
||||
|
||||

|
||||
|
||||
### Pictures - Manual Mesh Beld Leveling
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
### Pictures - BLTouch Beld Leveling
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
|
||||
---
|
||||
|
||||
### 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.
|
||||
|
||||
-> `i3_Mega.hex` is for the unmodified original Anycubic i3 MEGA (without S).
|
||||
|
||||
-> `i3_Mega_TMC.hex` has optimizations and inverted outputs for TMC2100 and TMC2208 motor drivers.
|
||||
|
||||
-> `i3_Mega_S.hex` is used if you use the newer "S" version with titan extruder.
|
||||
|
||||
-> `i3_Mega_S_TMC.hex` you use if you use both the "S" version with titan extruder and TMC motor driver.
|
||||
-> `i3_Mega_S_DGUS.hex` is used if you use the newer "S" version with titan extruder and also the newer DGUS TFT with blue/yellow colors.
|
||||
|
||||
-> `i3_Mega_S_DGUS_TMC.hex` you use if you use the newest "S" version with titan extruder and TMC motor driver and also the new blue/yellow TFT.
|
||||
|
||||
|
||||
|
@@ -1718,7 +1718,7 @@
|
||||
//
|
||||
// Short 2KHz beep when endstops are hit
|
||||
//
|
||||
//#define ENDSTOP_BEEP
|
||||
#define ENDSTOP_BEEP
|
||||
|
||||
//
|
||||
// The duration and frequency for the UI feedback sound.
|
||||
@@ -2224,4 +2224,4 @@
|
||||
// Enable Anycubic TFT
|
||||
#define ANYCUBIC_TOUCHSCREEN
|
||||
#define ANYCUBIC_FILAMENT_RUNOUT_SENSOR
|
||||
#define ANYCUBIC_TFT_DEBUG
|
||||
//#define ANYCUBIC_TFT_DEBUG
|
||||
|
@@ -1366,7 +1366,7 @@
|
||||
*
|
||||
* Warning: Does not respect endstops!
|
||||
*/
|
||||
//#define BABYSTEPPING
|
||||
#define BABYSTEPPING
|
||||
#if ENABLED(BABYSTEPPING)
|
||||
//#define BABYSTEP_WITHOUT_HOMING
|
||||
//#define BABYSTEP_XY // Also enable X/Y Babystepping. Not supported on DELTA!
|
||||
@@ -1412,7 +1412,7 @@
|
||||
* See http://marlinfw.org/docs/features/lin_advance.html for full instructions.
|
||||
* Mention @Sebastianv650 on GitHub to alert the author of any issues.
|
||||
*/
|
||||
#define LIN_ADVANCE
|
||||
//#define LIN_ADVANCE
|
||||
#if ENABLED(LIN_ADVANCE)
|
||||
#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.
|
||||
|
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 |
BIN
images/Filament_Sensor_on_off.jpg
Normal file
After Width: | Height: | Size: 72 KiB |
BIN
images/Fine_Tuning.jpg
Normal file
After Width: | Height: | Size: 72 KiB |
BIN
images/MN_Page1.jpg
Normal file
After Width: | Height: | Size: 56 KiB |
BIN
images/MN_Page2.jpg
Normal file
After Width: | Height: | Size: 53 KiB |
BIN
images/MN_Page3.jpg
Normal file
After Width: | Height: | Size: 61 KiB |
BIN
images/MN_Page4.jpg
Normal file
After Width: | Height: | Size: 55 KiB |
BIN
images/MenuHome.jpg
Normal file
After Width: | Height: | Size: 58 KiB |
BIN
images/Mesh_Level.jpg
Normal file
After Width: | Height: | Size: 80 KiB |
BIN
images/SpecialMenu.jpg
Normal file
After Width: | Height: | Size: 57 KiB |
853
platformio.ini
Executable file
@@ -0,0 +1,853 @@
|
||||
#
|
||||
# Marlin Firmware
|
||||
# PlatformIO Configuration File
|
||||
#
|
||||
# For detailed documentation with EXAMPLES:
|
||||
#
|
||||
# http://docs.platformio.org/en/latest/projectconf.html
|
||||
#
|
||||
|
||||
# Automatic targets - enable auto-uploading
|
||||
# targets = upload
|
||||
|
||||
#
|
||||
# By default platformio build will abort after 5 errors.
|
||||
# Remove '-fmax-errors=5' from build_flags below to see all.
|
||||
#
|
||||
|
||||
[platformio]
|
||||
src_dir = Marlin
|
||||
boards_dir = buildroot/share/PlatformIO/boards
|
||||
default_envs = mega2560
|
||||
|
||||
[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@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
|
||||
|
||||
# Globally defined properties
|
||||
# inherited by all environments
|
||||
[env]
|
||||
framework = arduino
|
||||
build_flags = ${common.build_flags}
|
||||
lib_deps = ${common.lib_deps}
|
||||
monitor_speed = 250000
|
||||
|
||||
#################################
|
||||
# #
|
||||
# Unique Core Architectures #
|
||||
# #
|
||||
# Add a new "env" below if no #
|
||||
# entry has values suitable to #
|
||||
# build for a given board. #
|
||||
# #
|
||||
#################################
|
||||
|
||||
#
|
||||
# ATmega2560
|
||||
#
|
||||
[env:mega2560]
|
||||
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>
|
||||
|
||||
#
|
||||
# ATmega1280
|
||||
#
|
||||
[env:mega1280]
|
||||
platform = atmelavr
|
||||
board = megaatmega1280
|
||||
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>
|
||||
|
||||
#
|
||||
# RAMBo
|
||||
#
|
||||
[env:rambo]
|
||||
platform = atmelavr
|
||||
board = reprap_rambo
|
||||
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>
|
||||
|
||||
#
|
||||
# FYSETC F6 V1.3
|
||||
#
|
||||
[env:FYSETC_F6_13]
|
||||
platform = atmelavr
|
||||
board = fysetc_f6_13
|
||||
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>
|
||||
|
||||
#
|
||||
# FYSETC F6 V1.4
|
||||
#
|
||||
[env:FYSETC_F6_14]
|
||||
platform = atmelavr
|
||||
board = fysetc_f6_14
|
||||
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>
|
||||
|
||||
#
|
||||
# Sanguinololu (ATmega644p)
|
||||
#
|
||||
[env:sanguino644p]
|
||||
platform = atmelavr
|
||||
board = sanguino_atmega644p
|
||||
lib_deps = ${common.lib_deps}
|
||||
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
|
||||
|
||||
#
|
||||
# Sanguinololu (ATmega1284p)
|
||||
#
|
||||
[env:sanguino1284p]
|
||||
platform = atmelavr
|
||||
board = sanguino_atmega1284p
|
||||
lib_deps = ${common.lib_deps}
|
||||
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
|
||||
|
||||
#
|
||||
# Melzi and clones (ATmega1284p)
|
||||
#
|
||||
[env:melzi]
|
||||
platform = atmelavr
|
||||
board = sanguino_atmega1284p
|
||||
lib_deps = ${common.lib_deps}
|
||||
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
|
||||
lib_ignore = TMCStepper
|
||||
upload_speed = 57600
|
||||
|
||||
#
|
||||
# Melzi and clones (Optiboot bootloader)
|
||||
#
|
||||
[env:melzi_optiboot]
|
||||
platform = atmelavr
|
||||
board = sanguino_atmega1284p
|
||||
lib_deps = ${common.lib_deps}
|
||||
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
|
||||
lib_ignore = TMCStepper
|
||||
upload_speed = 115200
|
||||
|
||||
#
|
||||
# AT90USB1286 boards using CDC bootloader
|
||||
# - BRAINWAVE
|
||||
# - BRAINWAVE_PRO
|
||||
# - SAV_MKI
|
||||
# - TEENSYLU
|
||||
#
|
||||
[env:at90usb1286_cdc]
|
||||
platform = teensy
|
||||
board = at90usb1286
|
||||
lib_deps = ${common.lib_deps}
|
||||
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
|
||||
lib_ignore = TMCStepper
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
|
||||
|
||||
#
|
||||
# AT90USB1286 boards using DFU bootloader
|
||||
# - PrintrBoard
|
||||
# - PrintrBoard Rev.F
|
||||
# - ? 5DPRINT ?
|
||||
#
|
||||
[env:at90usb1286_dfu]
|
||||
platform = teensy
|
||||
board = at90usb1286
|
||||
lib_deps = ${common.lib_deps}
|
||||
lib_ignore = TMCStepper
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
|
||||
|
||||
#
|
||||
# Due (Atmel SAM3X8E ARM Cortex-M3)
|
||||
#
|
||||
# - RAMPS4DUE
|
||||
# - RADDS
|
||||
#
|
||||
[env:DUE]
|
||||
platform = atmelsam
|
||||
board = due
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/DUE>
|
||||
|
||||
[env:DUE_USB]
|
||||
platform = atmelsam
|
||||
board = dueUSB
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/DUE>
|
||||
|
||||
[env:DUE_debug]
|
||||
# Used when WATCHDOG_RESET_MANUAL is enabled
|
||||
platform = atmelsam
|
||||
board = due
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/DUE>
|
||||
build_flags = ${common.build_flags}
|
||||
-funwind-tables
|
||||
-mpoke-function-name
|
||||
|
||||
#
|
||||
# NXP LPC176x ARM Cortex-M3
|
||||
#
|
||||
[env:LPC1768]
|
||||
platform = https://github.com/p3p/pio-nxplpc-arduino-lpc176x/archive/0.1.2.zip
|
||||
board = nxp_lpc1768
|
||||
build_flags = -DU8G_HAL_LINKS -IMarlin/src/HAL/LPC1768/include -IMarlin/src/HAL/LPC1768/u8g ${common.build_flags}
|
||||
# debug options for backtrace
|
||||
# -funwind-tables
|
||||
# -mpoke-function-name
|
||||
lib_ldf_mode = off
|
||||
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@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]
|
||||
platform = https://github.com/p3p/pio-nxplpc-arduino-lpc176x/archive/0.1.2.zip
|
||||
board = nxp_lpc1769
|
||||
build_flags = -DU8G_HAL_LINKS -IMarlin/src/HAL/LPC1768/include -IMarlin/src/HAL/LPC1768/u8g ${common.build_flags}
|
||||
# debug options for backtrace
|
||||
# -funwind-tables
|
||||
# -mpoke-function-name
|
||||
lib_ldf_mode = off
|
||||
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@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@<6.2.0
|
||||
board = genericSTM32F103RC
|
||||
platform_packages = tool-stm32duino
|
||||
build_flags = !python Marlin/src/HAL/STM32F1/build_flags.py
|
||||
${common.build_flags} -std=gnu++14
|
||||
build_unflags = -std=gnu++11
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/STM32F1>
|
||||
lib_deps = ${common.lib_deps}
|
||||
SoftwareSerialM=https://github.com/FYSETC/SoftwareSerialM/archive/master.zip
|
||||
lib_ignore = Adafruit NeoPixel, SPI
|
||||
monitor_speed = 115200
|
||||
|
||||
#
|
||||
# STM32F103RC_fysetc
|
||||
#
|
||||
[env:STM32F103RC_fysetc]
|
||||
platform = ststm32@<6.2.0
|
||||
board = genericSTM32F103RC
|
||||
#board_build.core = maple
|
||||
platform_packages = tool-stm32duino
|
||||
build_flags = !python Marlin/src/HAL/STM32F1/build_flags.py
|
||||
${common.build_flags} -std=gnu++14 -DDEBUG_LEVEL=0 -DHAVE_SW_SERIAL
|
||||
build_unflags = -std=gnu++11
|
||||
extra_scripts = buildroot/share/PlatformIO/scripts/STM32F103RC_fysetc.py
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/STM32F1>
|
||||
lib_deps = ${common.lib_deps}
|
||||
SoftwareSerialM=https://github.com/FYSETC/SoftwareSerialM/archive/master.zip
|
||||
lib_ignore = Adafruit NeoPixel, SPI
|
||||
lib_ldf_mode = chain
|
||||
debug_tool = stlink
|
||||
upload_protocol = serial
|
||||
|
||||
#
|
||||
# BigTree SKR Mini V1.1 / SKR mini E3 / SKR E3 DIP (STM32F103RCT6 ARM Cortex-M3)
|
||||
#
|
||||
# STM32F103RC_btt ............. RCT6 with 256K
|
||||
# STM32F103RC_btt_USB ......... RCT6 with 256K (USB mass storage)
|
||||
# STM32F103RC_btt_512K ........ RCT6 with 512K
|
||||
# STM32F103RC_btt_512K_USB .... RCT6 with 512K (USB mass storage)
|
||||
#
|
||||
|
||||
[env:STM32F103RC_btt]
|
||||
platform = ststm32@<6.2.0
|
||||
board = genericSTM32F103RC
|
||||
platform_packages = tool-stm32duino
|
||||
build_flags = !python Marlin/src/HAL/STM32F1/build_flags.py
|
||||
${common.build_flags} -DDEBUG_LEVEL=0 -std=gnu++14 -DHAVE_SW_SERIAL -DSS_TIMER=4
|
||||
build_unflags = -std=gnu++11
|
||||
extra_scripts = buildroot/share/PlatformIO/scripts/STM32F103RC_SKR_MINI.py
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/STM32F1>
|
||||
lib_deps = ${common.lib_deps}
|
||||
SoftwareSerialM=https://github.com/FYSETC/SoftwareSerialM/archive/master.zip
|
||||
USBComposite for STM32F1@==0.91
|
||||
lib_ignore = Adafruit NeoPixel, SPI
|
||||
monitor_speed = 115200
|
||||
|
||||
[env:STM32F103RC_btt_USB]
|
||||
platform = ststm32@<6.2.0
|
||||
board = genericSTM32F103RC
|
||||
platform_packages = tool-stm32duino
|
||||
build_flags = !python Marlin/src/HAL/STM32F1/build_flags.py
|
||||
${common.build_flags} -DDEBUG_LEVEL=0 -std=gnu++14 -DHAVE_SW_SERIAL -DSS_TIMER=4 -DUSE_USB_COMPOSITE
|
||||
build_unflags = -std=gnu++11
|
||||
extra_scripts = buildroot/share/PlatformIO/scripts/STM32F103RC_SKR_MINI.py
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/STM32F1>
|
||||
lib_deps = ${common.lib_deps}
|
||||
SoftwareSerialM=https://github.com/FYSETC/SoftwareSerialM/archive/master.zip
|
||||
USBComposite for STM32F1@==0.91
|
||||
lib_ignore = Adafruit NeoPixel, SPI
|
||||
monitor_speed = 115200
|
||||
|
||||
[env:STM32F103RC_btt_512K]
|
||||
platform = ststm32@<6.2.0
|
||||
board = genericSTM32F103RC
|
||||
board_upload.maximum_size=524288
|
||||
platform_packages = tool-stm32duino
|
||||
build_flags = !python Marlin/src/HAL/STM32F1/build_flags.py
|
||||
${common.build_flags} -DDEBUG_LEVEL=0 -std=gnu++14 -DHAVE_SW_SERIAL -DSS_TIMER=4 -DSTM32_FLASH_SIZE=512
|
||||
build_unflags = -std=gnu++11
|
||||
extra_scripts = buildroot/share/PlatformIO/scripts/STM32F103RC_SKR_MINI.py
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/STM32F1>
|
||||
lib_deps = ${common.lib_deps}
|
||||
SoftwareSerialM=https://github.com/FYSETC/SoftwareSerialM/archive/master.zip
|
||||
USBComposite for STM32F1@==0.91
|
||||
lib_ignore = Adafruit NeoPixel, SPI
|
||||
monitor_speed = 115200
|
||||
|
||||
[env:STM32F103RC_btt_512K_USB]
|
||||
platform = ststm32@<6.2.0
|
||||
board = genericSTM32F103RC
|
||||
board_upload.maximum_size=524288
|
||||
platform_packages = tool-stm32duino
|
||||
build_flags = !python Marlin/src/HAL/STM32F1/build_flags.py
|
||||
${common.build_flags} -DDEBUG_LEVEL=0 -std=gnu++14 -DHAVE_SW_SERIAL -DSS_TIMER=4 -DSTM32_FLASH_SIZE=512 -DUSE_USB_COMPOSITE
|
||||
build_unflags = -std=gnu++11
|
||||
extra_scripts = buildroot/share/PlatformIO/scripts/STM32F103RC_SKR_MINI.py
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/STM32F1>
|
||||
lib_deps = ${common.lib_deps}
|
||||
SoftwareSerialM=https://github.com/FYSETC/SoftwareSerialM/archive/master.zip
|
||||
USBComposite for STM32F1@==0.91
|
||||
lib_ignore = Adafruit NeoPixel, SPI
|
||||
monitor_speed = 115200
|
||||
|
||||
#
|
||||
# STM32F103RE
|
||||
#
|
||||
[env:STM32F103RE]
|
||||
platform = ststm32@<6.2.0
|
||||
board = genericSTM32F103RE
|
||||
platform_packages = tool-stm32duino
|
||||
build_flags = !python Marlin/src/HAL/STM32F1/build_flags.py
|
||||
${common.build_flags} -std=gnu++14
|
||||
build_unflags = -std=gnu++11
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/STM32F1>
|
||||
lib_deps = ${common.lib_deps}
|
||||
SoftwareSerialM=https://github.com/FYSETC/SoftwareSerialM/archive/master.zip
|
||||
lib_ignore = Adafruit NeoPixel, SPI
|
||||
monitor_speed = 115200
|
||||
|
||||
#
|
||||
# STM32F103RE_btt ............. RET6
|
||||
# STM32F103RE_btt_USB ......... RET6 (USB mass storage)
|
||||
#
|
||||
[env:STM32F103RE_btt]
|
||||
platform = ststm32@<6.2.0
|
||||
board = genericSTM32F103RE
|
||||
platform_packages = tool-stm32duino
|
||||
build_flags = !python Marlin/src/HAL/STM32F1/build_flags.py
|
||||
${common.build_flags} -DDEBUG_LEVEL=0 -std=gnu++14 -DHAVE_SW_SERIAL -DSS_TIMER=4
|
||||
build_unflags = -std=gnu++11
|
||||
extra_scripts = buildroot/share/PlatformIO/scripts/STM32F103RE_SKR_E3_DIP.py
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/STM32F1>
|
||||
lib_deps = ${common.lib_deps}
|
||||
SoftwareSerialM=https://github.com/FYSETC/SoftwareSerialM/archive/master.zip
|
||||
lib_ignore = Adafruit NeoPixel, SPI
|
||||
debug_tool = stlink
|
||||
upload_protocol = stlink
|
||||
monitor_speed = 115200
|
||||
|
||||
[env:STM32F103RE_btt_USB]
|
||||
platform = ststm32@<6.2.0
|
||||
board = genericSTM32F103RE
|
||||
platform_packages = tool-stm32duino
|
||||
build_flags = !python Marlin/src/HAL/STM32F1/build_flags.py
|
||||
${common.build_flags} -DDEBUG_LEVEL=0 -std=gnu++14 -DHAVE_SW_SERIAL -DSS_TIMER=4 -DUSE_USB_COMPOSITE
|
||||
build_unflags = -std=gnu++11
|
||||
extra_scripts = buildroot/share/PlatformIO/scripts/STM32F103RE_SKR_E3_DIP.py
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/STM32F1>
|
||||
lib_deps = ${common.lib_deps}
|
||||
SoftwareSerialM=https://github.com/FYSETC/SoftwareSerialM/archive/master.zip
|
||||
lib_ignore = Adafruit NeoPixel, SPI
|
||||
debug_tool = stlink
|
||||
upload_protocol = stlink
|
||||
monitor_speed = 115200
|
||||
|
||||
#
|
||||
# STM32F4 with STM32GENERIC
|
||||
#
|
||||
[env:STM32F4]
|
||||
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
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/STM32_F4_F7> -<src/HAL/STM32_F4_F7/STM32F7>
|
||||
|
||||
#
|
||||
# STM32F7 with STM32GENERIC
|
||||
#
|
||||
[env:STM32F7]
|
||||
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
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/STM32_F4_F7> -<src/HAL/STM32_F4_F7/STM32F4>
|
||||
|
||||
#
|
||||
# ARMED (STM32)
|
||||
#
|
||||
[env:ARMED]
|
||||
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
|
||||
-O2 -ffreestanding -fsigned-char -fno-move-loop-invariants -fno-strict-aliasing -std=gnu11 -std=gnu++11
|
||||
-IMarlin/src/HAL/STM32
|
||||
lib_ignore = Adafruit NeoPixel, SoftwareSerial
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/STM32>
|
||||
|
||||
#
|
||||
# Geeetech GTM32 (STM32F103VET6)
|
||||
#
|
||||
[env:STM32F103VE_GTM32]
|
||||
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
|
||||
-DBOARD_generic_stm32f103v -DARDUINO_GENERIC_STM32F103V -DARDUINO_ARCH_STM32F1
|
||||
-DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG=1 -DVECT_TAB_ADDR=0x8000000 -DERROR_LED_PORT=GPIOE -DERROR_LED_PIN=6
|
||||
build_unflags = -std=gnu++11
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/STM32F1>
|
||||
lib_ignore = Adafruit NeoPixel, SPI
|
||||
upload_protocol = serial
|
||||
|
||||
#
|
||||
# Longer 3D board in Alfawise U20 (STM32F103VET6)
|
||||
#
|
||||
[env:STM32F103VE_longer]
|
||||
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
|
||||
-DSTM32F1xx -DU20 -DTS_V12
|
||||
build_unflags = -std=gnu++11 -DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG=1 -DERROR_LED_PORT=GPIOE -DERROR_LED_PIN=6
|
||||
extra_scripts = buildroot/share/PlatformIO/scripts/STM32F103VE_longer.py
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/STM32F1>
|
||||
lib_ignore = Adafruit NeoPixel, LiquidTWI2, SPI
|
||||
|
||||
#
|
||||
# MKS Robin Mini (STM32F103VET6)
|
||||
#
|
||||
[env:mks_robin_mini]
|
||||
platform = ststm32@<6.2.0
|
||||
board = genericSTM32F103VE
|
||||
build_flags = !python Marlin/src/HAL/STM32F1/build_flags.py
|
||||
${common.build_flags} -std=gnu++14
|
||||
build_unflags = -std=gnu++11
|
||||
extra_scripts = buildroot/share/PlatformIO/scripts/mks_robin_mini.py
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/STM32F1>
|
||||
lib_ignore = Adafruit NeoPixel, SPI
|
||||
|
||||
#
|
||||
# MKS Robin Nano (STM32F103VET6)
|
||||
#
|
||||
[env:mks_robin_nano]
|
||||
platform = ststm32@<6.2.0
|
||||
board = genericSTM32F103VE
|
||||
platform_packages = tool-stm32duino
|
||||
build_flags = !python Marlin/src/HAL/STM32F1/build_flags.py
|
||||
${common.build_flags} -std=gnu++14 -DHAVE_SW_SERIAL -DSS_TIMER=4
|
||||
build_unflags = -std=gnu++11
|
||||
extra_scripts = buildroot/share/PlatformIO/scripts/mks_robin_nano.py
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/STM32F1>
|
||||
lib_deps = ${common.lib_deps}
|
||||
SoftwareSerialM=https://github.com/FYSETC/SoftwareSerialM/archive/master.zip
|
||||
lib_ignore = Adafruit NeoPixel, SPI
|
||||
|
||||
#
|
||||
# MKS Robin (STM32F103ZET6)
|
||||
#
|
||||
[env:mks_robin]
|
||||
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
|
||||
build_unflags = -std=gnu++11
|
||||
extra_scripts = buildroot/share/PlatformIO/scripts/mks_robin.py
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/STM32F1>
|
||||
lib_deps = ${common.lib_deps}
|
||||
SoftwareSerialM=https://github.com/FYSETC/SoftwareSerialM/archive/master.zip
|
||||
lib_ignore = Adafruit NeoPixel, SPI
|
||||
|
||||
#
|
||||
# MKS Robin Pro (STM32F103ZET6)
|
||||
#
|
||||
[env:mks_robin_pro]
|
||||
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
|
||||
${common.build_flags} -std=gnu++14 -DSTM32_XL_DENSITY
|
||||
build_unflags = -std=gnu++11
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/STM32F1>
|
||||
lib_deps = ${common.lib_deps}
|
||||
lib_ignore = Adafruit NeoPixel, SPI, TMCStepper
|
||||
|
||||
#
|
||||
# MKS Robin Lite/Lite2 (STM32F103RCT6)
|
||||
#
|
||||
[env:mks_robin_lite]
|
||||
platform = ststm32@<6.2.0
|
||||
board = genericSTM32F103RC
|
||||
build_flags = !python Marlin/src/HAL/STM32F1/build_flags.py
|
||||
${common.build_flags} -std=gnu++14
|
||||
build_unflags = -std=gnu++11
|
||||
extra_scripts = buildroot/share/PlatformIO/scripts/mks_robin_lite.py
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/STM32F1>
|
||||
lib_ignore = Adafruit NeoPixel, SPI
|
||||
|
||||
#
|
||||
# MKS ROBIN LITE3 (STM32F103RCT6)
|
||||
#
|
||||
[env:mks_robin_lite3]
|
||||
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
|
||||
${common.build_flags} -std=gnu++14
|
||||
build_unflags = -std=gnu++11
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/STM32F1>
|
||||
lib_deps = ${common.lib_deps}
|
||||
lib_ignore = Adafruit NeoPixel, SPI
|
||||
|
||||
#
|
||||
# JGAurora A5S A1 (STM32F103ZET6)
|
||||
#
|
||||
[env:jgaurora_a5s_a1]
|
||||
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
|
||||
build_unflags = -std=gnu++11
|
||||
extra_scripts = buildroot/share/PlatformIO/scripts/jgaurora_a5s_a1_with_bootloader.py
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/STM32F1>
|
||||
lib_ignore = Adafruit NeoPixel, SPI
|
||||
|
||||
#
|
||||
# Malyan M200 (STM32F103CB)
|
||||
#
|
||||
[env:STM32F103CB_malyan]
|
||||
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__
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/STM32F1>
|
||||
lib_ignore = Adafruit NeoPixel, LiquidCrystal, LiquidTWI2, TMCStepper, U8glib-HAL, SPI
|
||||
|
||||
#
|
||||
# Chitu boards like Tronxy X5s (STM32F103ZET6)
|
||||
#
|
||||
[env:chitu_f103]
|
||||
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
|
||||
build_unflags = -std=gnu++11 -DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG= -DERROR_LED_PORT=GPIOE -DERROR_LED_PIN=6
|
||||
extra_scripts = buildroot/share/PlatformIO/scripts/chitu_crypt.py
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/STM32F1>
|
||||
lib_ignore = Adafruit NeoPixel
|
||||
|
||||
#
|
||||
# STM32F401VE
|
||||
# 'STEVAL-3DP001V1' STM32F401VE board - https://www.st.com/en/evaluation-tools/steval-3dp001v1.html
|
||||
#
|
||||
[env:STM32F401VE_STEVAL]
|
||||
platform = ststm32@<6.2.0
|
||||
board = STEVAL_STM32F401VE
|
||||
platform_packages = framework-arduinoststm32@>=3.107,<4
|
||||
build_flags = ${common.build_flags}
|
||||
-DTARGET_STM32F4 -DARDUINO_STEVAL -DSTM32F401xE
|
||||
-DUSBCON -DUSBD_USE_CDC -DUSBD_VID=0x0483 -DUSB_PRODUCT=\"STEVAL_F401VE\"
|
||||
-DDISABLE_GENERIC_SERIALUSB
|
||||
-IMarlin/src/HAL/STM32
|
||||
build_unflags = -std=gnu++11
|
||||
extra_scripts = pre:buildroot/share/PlatformIO/scripts/generic_create_variant.py
|
||||
buildroot/share/PlatformIO/scripts/STEVAL__F401XX.py
|
||||
lib_ignore = Adafruit NeoPixel, TMCStepper, SailfishLCD, SailfishRGB_LED, SlowSoftI2CMaster, SoftwareSerial
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/STM32>
|
||||
|
||||
#
|
||||
# FLYF407ZG
|
||||
#
|
||||
[env:FLYF407ZG]
|
||||
platform = ststm32@<6.2.0
|
||||
board = FLYF407ZG
|
||||
platform_packages = framework-arduinoststm32@>=3.107,<4
|
||||
build_flags = ${common.build_flags}
|
||||
-DSTM32F4 -DUSBCON -DUSBD_USE_CDC -DUSBD_VID=0x0483 -DUSB_PRODUCT=\"STM32F407ZG\"
|
||||
-DTARGET_STM32F4 -DVECT_TAB_OFFSET=0x8000
|
||||
-IMarlin/src/HAL/STM32
|
||||
build_unflags = -std=gnu++11
|
||||
extra_scripts = pre:buildroot/share/PlatformIO/scripts/generic_create_variant.py
|
||||
lib_ignore = Adafruit NeoPixel, TMCStepper, SailfishLCD, SailfishRGB_LED, SlowSoftI2CMaster, SoftwareSerial
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/STM32>
|
||||
|
||||
|
||||
#
|
||||
# FYSETC S6 (STM32F446VET6 ARM Cortex-M4)
|
||||
#
|
||||
[env:FYSETC_S6]
|
||||
platform = ststm32@<6.2.0
|
||||
board = fysetc_s6
|
||||
platform_packages =
|
||||
tool-stm32duino
|
||||
framework-arduinoststm32@>=3.107,<4
|
||||
build_flags = ${common.build_flags}
|
||||
-DTARGET_STM32F4 -std=gnu++14
|
||||
-DVECT_TAB_OFFSET=0x10000
|
||||
-DUSBCON -DUSBD_USE_CDC -DHAL_PCD_MODULE_ENABLED -DUSBD_VID=0x0483 '-DUSB_PRODUCT="FYSETC_S6"'
|
||||
build_unflags = -std=gnu++11
|
||||
extra_scripts = pre:buildroot/share/PlatformIO/scripts/fysetc_STM32S6.py
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/STM32>
|
||||
lib_ignore = Arduino-L6470
|
||||
debug_tool = stlink
|
||||
#upload_protocol = stlink
|
||||
upload_protocol = serial
|
||||
|
||||
#
|
||||
# STM32F407VET6 with RAMPS-like shield
|
||||
# 'Black' STM32F407VET6 board - http://wiki.stm32duino.com/index.php?title=STM32F407
|
||||
# Shield - https://github.com/jmz52/Hardware
|
||||
#
|
||||
[env:STM32F407VE_black]
|
||||
platform = ststm32@<6.2.0
|
||||
board = blackSTM32F407VET6
|
||||
platform_packages = framework-arduinoststm32@>=3.107,<4
|
||||
build_flags = ${common.build_flags}
|
||||
-DTARGET_STM32F4 -DARDUINO_BLACK_F407VE
|
||||
-DUSBCON -DUSBD_USE_CDC -DUSBD_VID=0x0483 -DUSB_PRODUCT=\"BLACK_F407VE\"
|
||||
-IMarlin/src/HAL/STM32
|
||||
build_unflags = -std=gnu++11
|
||||
extra_scripts = pre:buildroot/share/PlatformIO/scripts/generic_create_variant.py
|
||||
lib_ignore = Adafruit NeoPixel, TMCStepper, SailfishLCD, SailfishRGB_LED, SlowSoftI2CMaster, SoftwareSerial
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/STM32>
|
||||
|
||||
#
|
||||
# BigTreeTech SKR Pro (STM32F407ZGT6 ARM Cortex-M4)
|
||||
#
|
||||
[env:BIGTREE_SKR_PRO]
|
||||
platform = ststm32@<6.2.0
|
||||
board = BigTree_SKR_Pro
|
||||
platform_packages = framework-arduinoststm32@>=3.107,<4
|
||||
build_flags = ${common.build_flags}
|
||||
-DUSBCON -DUSBD_USE_CDC -DUSBD_VID=0x0483 -DUSB_PRODUCT=\"STM32F407ZG\"
|
||||
-DTARGET_STM32F4 -DSTM32F407_5ZX -DVECT_TAB_OFFSET=0x8000
|
||||
-IMarlin/src/HAL/STM32
|
||||
build_unflags = -std=gnu++11
|
||||
extra_scripts = pre:buildroot/share/PlatformIO/scripts/generic_create_variant.py
|
||||
lib_ignore = SoftwareSerial, SoftwareSerialM
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/STM32>
|
||||
#upload_protocol = stlink
|
||||
#upload_command = "$PROJECT_PACKAGES_DIR/tool-stm32duino/stlink/ST-LINK_CLI.exe" -c SWD -P "$BUILD_DIR/firmware.bin" 0x8008000 -Rst -Run
|
||||
debug_tool = stlink
|
||||
debug_init_break =
|
||||
|
||||
#
|
||||
# Bigtreetech GTR V1.0 (STM32F407IGT6 ARM Cortex-M4)
|
||||
#
|
||||
[env:BIGTREE_GTR_V1_0]
|
||||
platform = ststm32@>=5.7.0,<6.2.0
|
||||
framework = arduino
|
||||
platform_packages = framework-arduinoststm32@>=3.107,<4
|
||||
board = BigTree_SKR_Pro
|
||||
extra_scripts = pre:buildroot/share/PlatformIO/scripts/generic_create_variant.py
|
||||
build_flags = ${common.build_flags}
|
||||
-DUSBCON -DUSBD_USE_CDC -DUSBD_VID=0x0483 -DUSB_PRODUCT=\"STM32F407IG\"
|
||||
-DTARGET_STM32F4 -DSTM32F407IX -DVECT_TAB_OFFSET=0x8000
|
||||
-IMarlin/src/HAL/STM32
|
||||
lib_deps =
|
||||
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
|
||||
|
||||
#
|
||||
# BigTreeTech BTT002 (STM32F407VET6 ARM Cortex-M4)
|
||||
#
|
||||
[env:BIGTREE_BTT002]
|
||||
platform = ststm32@5.6.0
|
||||
board = BigTree_Btt002
|
||||
platform_packages = framework-arduinoststm32@>=3.107,<4
|
||||
build_flags = ${common.build_flags}
|
||||
-DUSBCON -DUSBD_USE_CDC -DUSBD_VID=0x0483 -DUSB_PRODUCT=\"STM32F407VE\"
|
||||
-DTARGET_STM32F4 -DSTM32F407_5VX -DVECT_TAB_OFFSET=0x8000
|
||||
-DHAVE_HWSERIAL2
|
||||
-DHAVE_HWSERIAL3
|
||||
-DPIN_SERIAL2_RX=PD_6
|
||||
-DPIN_SERIAL2_TX=PD_5
|
||||
build_unflags = -std=gnu++11
|
||||
extra_scripts = pre:buildroot/share/PlatformIO/scripts/generic_create_variant.py
|
||||
lib_ignore = Adafruit NeoPixel, SailfishLCD, SailfishRGB_LED, SlowSoftI2CMaster
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/STM32>
|
||||
|
||||
#
|
||||
# Teensy 3.1 / 3.2 (ARM Cortex-M4)
|
||||
#
|
||||
[env:teensy31]
|
||||
platform = teensy
|
||||
board = teensy31
|
||||
lib_deps = ${common.lib_deps}
|
||||
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
|
||||
lib_ignore = Adafruit NeoPixel
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/TEENSY31_32>
|
||||
|
||||
#
|
||||
# Teensy 3.5 / 3.6 (ARM Cortex-M4)
|
||||
#
|
||||
[env:teensy35]
|
||||
platform = teensy
|
||||
board = teensy35
|
||||
lib_deps = ${common.lib_deps}
|
||||
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
|
||||
lib_ignore = Adafruit NeoPixel
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/TEENSY35_36>
|
||||
|
||||
#
|
||||
# Espressif ESP32
|
||||
#
|
||||
[env:esp32]
|
||||
platform = espressif32@1.11.2
|
||||
board = esp32dev
|
||||
build_flags = ${common.build_flags} -DCORE_DEBUG_LEVEL=0
|
||||
lib_deps = ${common.lib_deps}
|
||||
AsyncTCP=https://github.com/me-no-dev/AsyncTCP/archive/master.zip
|
||||
ESPAsyncWebServer=https://github.com/me-no-dev/ESPAsyncWebServer/archive/master.zip
|
||||
ESP3DLib=https://github.com/luc-github/ESP3DLib.git
|
||||
arduinoWebSockets=https://github.com/Links2004/arduinoWebSockets.git
|
||||
ESP32SSDP=https://github.com/luc-github/ESP32SSDP.git
|
||||
lib_ignore = LiquidCrystal, LiquidTWI2, SailfishLCD, SailfishRGB_LED, ESPAsyncTCP
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/ESP32>
|
||||
upload_speed = 115200
|
||||
#upload_port = marlinesp.local
|
||||
#board_build.flash_mode = qio
|
||||
|
||||
#
|
||||
# Native
|
||||
# No supported Arduino libraries, base Marlin only
|
||||
#
|
||||
[env:linux_native]
|
||||
platform = native
|
||||
framework =
|
||||
build_flags = -D__PLAT_LINUX__ -std=gnu++17 -ggdb -g -lrt -lpthread -D__MARLIN_FIRMWARE__ -Wno-expansion-to-defined
|
||||
src_build_flags = -Wall -IMarlin/src/HAL/LINUX/include
|
||||
build_unflags = -Wall
|
||||
lib_ldf_mode = off
|
||||
lib_deps =
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/LINUX>
|
||||
|
||||
#
|
||||
# Adafruit Grand Central M4 (Atmel SAMD51P20A ARM Cortex-M4)
|
||||
#
|
||||
[env:SAMD51_grandcentral_m4]
|
||||
platform = atmelsam
|
||||
board = adafruit_grandcentral_m4
|
||||
build_flags = ${common.build_flags} -std=gnu++17 -Wno-register
|
||||
build_unflags = -std=gnu++11
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/SAMD51>
|
||||
lib_deps = ${common.lib_deps}
|
||||
SoftwareSerialM=https://github.com/FYSETC/SoftwareSerialM/archive/master.zip
|
||||
Adafruit_SPIFlash=https://github.com/adafruit/Adafruit_SPIFlash/archive/master.zip
|
||||
debug_tool = jlink
|
||||
|
||||
#
|
||||
# RUMBA32
|
||||
#
|
||||
[env:rumba32_f446ve]
|
||||
platform = ststm32@<6.2.0
|
||||
board = rumba32_f446ve
|
||||
build_flags = ${common.build_flags}
|
||||
-DSTM32F4xx
|
||||
-DARDUINO_RUMBA32_F446VE
|
||||
-DARDUINO_ARCH_STM32
|
||||
"-DBOARD_NAME=\"RUMBA32_F446VE\""
|
||||
-DSTM32F446xx
|
||||
-DUSBCON
|
||||
-DUSBD_VID=0x0483
|
||||
"-DUSB_MANUFACTURER=\"Unknown\""
|
||||
"-DUSB_PRODUCT=\"RUMBA32_F446VE\""
|
||||
-DHAL_PCD_MODULE_ENABLED
|
||||
-DUSBD_USE_CDC
|
||||
-DDISABLE_GENERIC_SERIALUSB
|
||||
-DHAL_UART_MODULE_ENABLED
|
||||
-Os
|
||||
lib_ignore = Adafruit NeoPixel
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/STM32>
|
||||
monitor_speed = 500000
|
||||
upload_protocol = dfu
|
||||
|
||||
#
|
||||
# MKS RUMBA32 (adds TMC2208/2209 UART interface and AUX-1)
|
||||
#
|
||||
[env:rumba32_mks]
|
||||
platform = ststm32@<6.2.0
|
||||
board = rumba32_f446ve
|
||||
build_flags = ${common.build_flags}
|
||||
-DSTM32F4xx -DARDUINO_RUMBA32_F446VE -DARDUINO_ARCH_STM32 "-DBOARD_NAME=\"RUMBA32_F446VE\""
|
||||
-DSTM32F446xx -DUSBCON -DUSBD_VID=0x8000
|
||||
"-DUSB_MANUFACTURER=\"Unknown\""
|
||||
"-DUSB_PRODUCT=\"RUMBA32_F446VE\""
|
||||
-DHAL_PCD_MODULE_ENABLED
|
||||
-DUSBD_USE_CDC
|
||||
-DDISABLE_GENERIC_SERIALUSB
|
||||
-DHAL_UART_MODULE_ENABLED
|
||||
-Os
|
||||
lib_ignore = Adafruit NeoPixel
|
||||
src_filter = ${common.default_src_filter} +<src/HAL/STM32> +<src/HAL/STM32_F4_F7> -<src/HAL/STM32_F4_F7/STM32F7>
|
||||
upload_protocol = dfu
|
||||
|
||||
#
|
||||
# Just print the dependency tree
|
||||
#
|
||||
[env:include_tree]
|
||||
platform = atmelavr
|
||||
board = megaatmega2560
|
||||
build_flags = -c -H -std=gnu++11 -Wall -Os -D__MARLIN_FIRMWARE__
|
||||
lib_deps = ${common.lib_deps}
|
||||
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
|
||||
src_filter = +<src/Marlin.cpp>
|