diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index a9732429326eb..e70942d04b0cc 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,3 +1,2 @@ -github: [thinkyhead] -patreon: thinkyhead -custom: ["https://www.thinkyhead.com/donate-to-marlin"] +github: [thisiskeithb] +ko_fi: thisiskeithb diff --git a/.github/workflows/test-am8-skr13-tmc2209-pinda-build.yml b/.github/workflows/test-am8-skr13-tmc2209-pinda-build.yml new file mode 100644 index 0000000000000..6db5640ec777b --- /dev/null +++ b/.github/workflows/test-am8-skr13-tmc2209-pinda-build.yml @@ -0,0 +1,46 @@ +# +# test-am8-skr13-tmc2209-pinda-build.yml +# Do test build to catch compile errors +# + +name: AM8 Bear / SKR 1.3 / TMC2209s BMG / Volcano CI + +on: + pull_request: + paths-ignore: + - config/** + - data/** + - docs/** + - '**/*.md' + push: + paths-ignore: + - config/** + - data/** + - docs/** + - '**/*.md' + +jobs: + test_builds: + name: Test Build + if: github.repository == 'thisiskeithb/Marlin' + + runs-on: ubuntu-latest + + steps: + - name: Check Out Commit + uses: actions/checkout@v4 + + - name: Select Python 3.9 + uses: actions/setup-python@v5 + with: + python-version: '3.9' + architecture: 'x64' + + - name: Install PlatformIO + run: | + pip install -U platformio + pio upgrade --dev + pio pkg update --global + + - name: Build Marlin + run: pio run diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index f88f5b9dbd110..6410557b4f6e1 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -61,14 +61,14 @@ // @section info // Author info of this build printed to the host during boot and M115 -#define STRING_CONFIG_H_AUTHOR "(none, default config)" // Who made the changes. +#define STRING_CONFIG_H_AUTHOR "(thisiskeithb, Stitch SKR 1.3/TMC2209/BMG)" // Who made the changes. //#define CUSTOM_VERSION_FILE Version.h // Path from the root directory (no quotes) // @section machine // Choose the name from boards.h that matches your setup #ifndef MOTHERBOARD - #define MOTHERBOARD BOARD_RAMPS_14_EFB + #define MOTHERBOARD BOARD_BTT_SKR_V1_3 #endif /** @@ -92,7 +92,7 @@ * * :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000] */ -#define BAUDRATE 250000 +#define BAUDRATE 115200 //#define BAUD_RATE_GCODE // Enable G-code M575 to set the baud rate @@ -101,7 +101,7 @@ * Currently Ethernet (-2) is only supported on Teensy 4.1 boards. * :[-2, -1, 0, 1, 2, 3, 4, 5, 6, 7] */ -//#define SERIAL_PORT_2 -1 +#define SERIAL_PORT_2 -1 //#define BAUDRATE_2 250000 // :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000] Enable to override BAUDRATE /** @@ -116,7 +116,7 @@ //#define BLUETOOTH // Name displayed in the LCD "Ready" message and Info menu -//#define CUSTOM_MACHINE_NAME "3D Printer" +#define CUSTOM_MACHINE_NAME "Stitch" // Printer's unique ID, used by some programs to differentiate between machines. // Choose your own or use a service like https://www.uuidgenerator.net/version4 @@ -139,12 +139,12 @@ * TMC5160, TMC5160_STANDALONE * :['A4988', 'A5984', 'DRV8825', 'LV8729', 'TB6560', 'TB6600', 'TMC2100', 'TMC2130', 'TMC2130_STANDALONE', 'TMC2160', 'TMC2160_STANDALONE', 'TMC2208', 'TMC2208_STANDALONE', 'TMC2209', 'TMC2209_STANDALONE', 'TMC2660', 'TMC2660_STANDALONE', 'TMC5130', 'TMC5130_STANDALONE', 'TMC5160', 'TMC5160_STANDALONE'] */ -#define X_DRIVER_TYPE A4988 -#define Y_DRIVER_TYPE A4988 -#define Z_DRIVER_TYPE A4988 +#define X_DRIVER_TYPE TMC2209 +#define Y_DRIVER_TYPE TMC2209 +#define Z_DRIVER_TYPE TMC2209 //#define X2_DRIVER_TYPE A4988 //#define Y2_DRIVER_TYPE A4988 -//#define Z2_DRIVER_TYPE A4988 +#define Z2_DRIVER_TYPE TMC2209 //#define Z3_DRIVER_TYPE A4988 //#define Z4_DRIVER_TYPE A4988 //#define I_DRIVER_TYPE A4988 @@ -153,7 +153,7 @@ //#define U_DRIVER_TYPE A4988 //#define V_DRIVER_TYPE A4988 //#define W_DRIVER_TYPE A4988 -#define E0_DRIVER_TYPE A4988 +#define E0_DRIVER_TYPE TMC2209 //#define E1_DRIVER_TYPE A4988 //#define E2_DRIVER_TYPE A4988 //#define E3_DRIVER_TYPE A4988 @@ -553,7 +553,7 @@ * 998 : Dummy Table that ALWAYS reads 25°C or the temperature defined below. * 999 : Dummy Table that ALWAYS reads 100°C or the temperature defined below. */ -#define TEMP_SENSOR_0 1 +#define TEMP_SENSOR_0 5 // Genuine E3D V6 #define TEMP_SENSOR_1 0 #define TEMP_SENSOR_2 0 #define TEMP_SENSOR_3 0 @@ -561,8 +561,8 @@ #define TEMP_SENSOR_5 0 #define TEMP_SENSOR_6 0 #define TEMP_SENSOR_7 0 -#define TEMP_SENSOR_BED 1 -#define TEMP_SENSOR_PROBE 0 +#define TEMP_SENSOR_BED 11 // Keenovo AC-powered bed +#define TEMP_SENSOR_PROBE 1 // PINDA 2 #define TEMP_SENSOR_CHAMBER 0 #define TEMP_SENSOR_COOLER 0 #define TEMP_SENSOR_BOARD 0 @@ -637,7 +637,7 @@ // Above this temperature the heater will be switched off. // This can protect components from overheating, but NOT from shorts and failures. // (Use MINTEMP for thermistor short/failure protection.) -#define HEATER_0_MAXTEMP 275 +#define HEATER_0_MAXTEMP 315 #define HEATER_1_MAXTEMP 275 #define HEATER_2_MAXTEMP 275 #define HEATER_3_MAXTEMP 275 @@ -645,7 +645,7 @@ #define HEATER_5_MAXTEMP 275 #define HEATER_6_MAXTEMP 275 #define HEATER_7_MAXTEMP 275 -#define BED_MAXTEMP 150 +#define BED_MAXTEMP 130 #define CHAMBER_MAXTEMP 60 /** @@ -689,9 +689,10 @@ #define DEFAULT_Ki_LIST { 1.08, 1.08 } #define DEFAULT_Kd_LIST { 114.00, 114.00 } #else - #define DEFAULT_Kp 22.20 - #define DEFAULT_Ki 1.08 - #define DEFAULT_Kd 114.00 + // Genuine E3D Volcano Hotend + #define DEFAULT_Kp 19.89 + #define DEFAULT_Ki 1.66 + #define DEFAULT_Kd 59.72 #endif #else #define BANG_MAX 255 // Limit hotend current while in bang-bang mode; 255=full current @@ -863,7 +864,7 @@ * Note: For Bowden Extruders make this large enough to allow load/unload. */ #define PREVENT_LENGTHY_EXTRUDE -#define EXTRUDE_MAXLENGTH 200 +#define EXTRUDE_MAXLENGTH 100 //=========================================================================== //======================== Thermal Runaway Protection ======================= @@ -1236,7 +1237,7 @@ * Override with M92 (when enabled below) * X, Y, Z [, I [, J [, K...]]], E0 [, E1[, E2...]] */ -#define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 400, 500 } +#define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 1600, 830 } // 1/32 microstepping on XYE, 1/16 on Z /** * Enable support for M92. Disable to save at least ~530 bytes of flash. @@ -1248,7 +1249,7 @@ * Override with M203 * X, Y, Z [, I [, J [, K...]]], E0 [, E1[, E2...]] */ -#define DEFAULT_MAX_FEEDRATE { 300, 300, 5, 25 } +#define DEFAULT_MAX_FEEDRATE { 200, 200, 3, 120 } //#define LIMITED_MAX_FR_EDITING // Limit edit via M203 or LCD to DEFAULT_MAX_FEEDRATE * 2 #if ENABLED(LIMITED_MAX_FR_EDITING) @@ -1261,7 +1262,7 @@ * Override with M201 * X, Y, Z [, I [, J [, K...]]], E0 [, E1[, E2...]] */ -#define DEFAULT_MAX_ACCELERATION { 3000, 3000, 100, 10000 } +#define DEFAULT_MAX_ACCELERATION { 1300, 1300, 200, 5000 } //#define LIMITED_MAX_ACCEL_EDITING // Limit edit via M201 or LCD to DEFAULT_MAX_ACCELERATION * 2 #if ENABLED(LIMITED_MAX_ACCEL_EDITING) @@ -1276,9 +1277,9 @@ * M204 R Retract Acceleration * M204 T Travel Acceleration */ -#define DEFAULT_ACCELERATION 3000 // 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 +#define DEFAULT_ACCELERATION 1250 // X, Y, Z and E acceleration for printing moves +#define DEFAULT_RETRACT_ACCELERATION 1250 // E acceleration for retracts +#define DEFAULT_TRAVEL_ACCELERATION 1250 // X, Y, Z acceleration for travel (non printing) moves /** * Default Jerk limits (mm/s) @@ -1317,7 +1318,7 @@ * https://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 + #define JUNCTION_DEVIATION_MM 0.02 // (mm) Distance from real junction edge #define JD_HANDLE_SMALL_SEGMENTS // Use curvature estimation instead of just the junction angle // for small segments (< 1mm) with large junction angles (> 135°). #endif @@ -1330,7 +1331,7 @@ * * See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained */ -//#define S_CURVE_ACCELERATION +#define S_CURVE_ACCELERATION //=========================================================================== //============================= Z Probe Options ============================= @@ -1384,7 +1385,7 @@ * A Fix-Mounted Probe either doesn't deploy or needs manual deployment. * (e.g., an inductive probe or a nozzle-based probe-switch.) */ -//#define FIX_MOUNTED_PROBE +#define FIX_MOUNTED_PROBE // PINDA 2 /** * Use the nozzle as the probe, as with a conductive @@ -1581,7 +1582,7 @@ * | [-] | * O-- FRONT --+ */ -#define NOZZLE_TO_PROBE_OFFSET { 10, 10, 0 } +#define NOZZLE_TO_PROBE_OFFSET { 23, 5, 0 } // Enable and set to use a specific tool for probing. Disable to allow any tool. #define PROBING_TOOL 0 @@ -1591,10 +1592,10 @@ // 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 PROBING_MARGIN 10 +#define PROBING_MARGIN 45 // X and Y axis travel speed (mm/min) between probes -#define XY_PROBE_FEEDRATE (133*60) +#define XY_PROBE_FEEDRATE (166*60) // Feedrate (mm/min) for the first approach when double-probing (MULTIPLE_PROBING == 2) #define Z_PROBE_FEEDRATE_FAST (4*60) @@ -1647,8 +1648,8 @@ * A total of 2 does fast/slow probes with a weighted average. * A total of 3 or more adds more slow probes, taking the average. */ -//#define MULTIPLE_PROBING 2 -//#define EXTRA_PROBING 1 +#define MULTIPLE_PROBING 2 +#define EXTRA_PROBING 1 /** * Z probes require clearance when deploying, stowing, and moving between @@ -1664,7 +1665,7 @@ * Example: `M851 Z-5` with a CLEARANCE of 4 => 9mm from bed to nozzle. * But: `M851 Z+1` with a CLEARANCE of 2 => 2mm from bed to nozzle. */ -#define Z_CLEARANCE_DEPLOY_PROBE 10 // (mm) Z Clearance for Deploy/Stow +#define Z_CLEARANCE_DEPLOY_PROBE 5 // (mm) Z Clearance for Deploy/Stow #define Z_CLEARANCE_BETWEEN_PROBES 5 // (mm) Z Clearance between probe points #define Z_CLEARANCE_MULTI_PROBE 5 // (mm) Z Clearance between multiple probes #define Z_PROBE_ERROR_TOLERANCE 3 // (mm) Tolerance for early trigger (<= -probe.offset.z + ZPET) @@ -1677,11 +1678,11 @@ //#define PROBE_OFFSET_XMAX 50 // (mm) //#define PROBE_OFFSET_YMIN -50 // (mm) //#define PROBE_OFFSET_YMAX 50 // (mm) -//#define PROBE_OFFSET_ZMIN -20 // (mm) -//#define PROBE_OFFSET_ZMAX 20 // (mm) +#define PROBE_OFFSET_ZMIN -5 // (mm) +#define PROBE_OFFSET_ZMAX 1 // (mm) // Enable the M48 repeatability test to test probe accuracy -//#define Z_MIN_PROBE_REPEATABILITY_TEST +#define Z_MIN_PROBE_REPEATABILITY_TEST // Before deploy/stow pause for user confirmation //#define PAUSE_BEFORE_DEPLOY_STOW @@ -1825,12 +1826,12 @@ #define Y_BED_SIZE 200 // Travel limits (linear=mm, rotational=°) after homing, corresponding to endstop positions. -#define X_MIN_POS 0 -#define Y_MIN_POS 0 +#define X_MIN_POS -24 +#define Y_MIN_POS -10 #define Z_MIN_POS 0 -#define X_MAX_POS X_BED_SIZE +#define X_MAX_POS (X_BED_SIZE + 40) #define Y_MAX_POS Y_BED_SIZE -#define Z_MAX_POS 200 +#define Z_MAX_POS 245 //#define I_MIN_POS 0 //#define I_MAX_POS 50 //#define J_MIN_POS 0 @@ -1882,7 +1883,7 @@ #endif #if ANY(MIN_SOFTWARE_ENDSTOPS, MAX_SOFTWARE_ENDSTOPS) - //#define SOFT_ENDSTOPS_MENU_ITEM // Enable/Disable software endstops from the LCD + #define SOFT_ENDSTOPS_MENU_ITEM // Enable/Disable software endstops from the LCD #endif /** @@ -1898,12 +1899,12 @@ * RAMPS-based boards use SERVO3_PIN for the first runout sensor. * For other boards you may need to define FIL_RUNOUT_PIN, FIL_RUNOUT2_PIN, etc. */ -//#define FILAMENT_RUNOUT_SENSOR +#define FILAMENT_RUNOUT_SENSOR #if ENABLED(FILAMENT_RUNOUT_SENSOR) #define FIL_RUNOUT_ENABLED_DEFAULT true // Enable the sensor on startup. Override with M412 followed by M500. #define NUM_RUNOUT_SENSORS 1 // Number of sensors, up to one per extruder. Define a FIL_RUNOUT#_PIN for each. - #define FIL_RUNOUT_STATE LOW // Pin state indicating that filament is NOT present. + #define FIL_RUNOUT_STATE HIGH // Pin state indicating that filament is NOT present. #define FIL_RUNOUT_PULLUP // Use internal pullup for filament runout pins. //#define FIL_RUNOUT_PULLDOWN // Use internal pulldown for filament runout pins. //#define WATCH_ALL_RUNOUT_SENSORS // Execute runout script on any triggering sensor, not only for the active extruder. @@ -1950,7 +1951,7 @@ // After a runout is detected, continue printing this length of filament // before executing the runout script. Useful for a sensor at the end of // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead. - //#define FILAMENT_RUNOUT_DISTANCE_MM 25 + #define FILAMENT_RUNOUT_DISTANCE_MM 2 #ifdef FILAMENT_RUNOUT_DISTANCE_MM // Enable this option to use an encoder disc that toggles the runout pin @@ -2041,7 +2042,7 @@ */ //#define AUTO_BED_LEVELING_3POINT //#define AUTO_BED_LEVELING_LINEAR -//#define AUTO_BED_LEVELING_BILINEAR +#define AUTO_BED_LEVELING_BILINEAR //#define AUTO_BED_LEVELING_UBL //#define MESH_BED_LEVELING @@ -2057,7 +2058,7 @@ * leveling immediately after G28. */ //#define RESTORE_LEVELING_AFTER_G28 -//#define ENABLE_LEVELING_AFTER_G28 +#define ENABLE_LEVELING_AFTER_G28 /** * Auto-leveling needs preheating @@ -2118,7 +2119,7 @@ #if ANY(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 @@ -2128,13 +2129,13 @@ // Beyond the probed grid, continue the implied tilt? // Default is to maintain the height of the nearest edge. - //#define EXTRAPOLATE_BEYOND_GRID + #define EXTRAPOLATE_BEYOND_GRID // // Subdivision of the grid by Catmull-Rom method. // Synthesizes intermediate points to produce a more detailed mesh. // - //#define ABL_BILINEAR_SUBDIVISION + #define ABL_BILINEAR_SUBDIVISION #if ENABLED(ABL_BILINEAR_SUBDIVISION) // Number of subdivisions between probe points #define BILINEAR_SUBDIVISIONS 3 @@ -2204,7 +2205,7 @@ * Add a bed leveling sub-menu for ABL or MBL. * Include a guided procedure if manual probing is enabled. */ -//#define LCD_BED_LEVELING +#define LCD_BED_LEVELING #if ENABLED(LCD_BED_LEVELING) #define MESH_EDIT_Z_STEP 0.025 // (mm) Step size while manually probing Z axis. @@ -2271,7 +2272,7 @@ * - Allows Z homing only when XY positions are known and trusted. * - If stepper drivers sleep, XY homing may be required again before Z homing. */ -//#define Z_SAFE_HOMING +#define Z_SAFE_HOMING #if ENABLED(Z_SAFE_HOMING) #define Z_SAFE_HOMING_X_POINT X_CENTER // (mm) X point for Z homing @@ -2280,7 +2281,7 @@ #endif // Homing speeds (linear=mm/min, rotational=°/min) -#define HOMING_FEEDRATE_MM_M { (50*60), (50*60), (4*60) } +#define HOMING_FEEDRATE_MM_M { (60*60), (60*60), (15*60) } // Validate that endstops are triggered on homing moves #define VALIDATE_HOMING_ENDSTOPS @@ -2358,13 +2359,13 @@ * M501 - Read settings from EEPROM. (i.e., Throw away unsaved changes) * M502 - Revert settings to "factory" defaults. (Follow with M500 to init the EEPROM.) */ -//#define EEPROM_SETTINGS // Persistent storage with M500 and M501 +#define EEPROM_SETTINGS // Persistent storage with M500 and M501 //#define DISABLE_M503 // Saves ~2700 bytes of flash. Disable for release! #define EEPROM_CHITCHAT // Give feedback on EEPROM commands. Disable to save flash. #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_INIT_NOW // Init EEPROM on first boot after a new build. + #define EEPROM_AUTO_INIT // Init EEPROM automatically on any errors. + #define EEPROM_INIT_NOW // Init EEPROM on first boot after a new build. #endif // @section host @@ -2397,17 +2398,29 @@ // Preheat Constants - Up to 10 are supported without changes // #define PREHEAT_1_LABEL "PLA" -#define PREHEAT_1_TEMP_HOTEND 180 -#define PREHEAT_1_TEMP_BED 70 +#define PREHEAT_1_TEMP_HOTEND 210 +#define PREHEAT_1_TEMP_BED 65 #define PREHEAT_1_TEMP_CHAMBER 35 #define PREHEAT_1_FAN_SPEED 0 // Value from 0 to 255 -#define PREHEAT_2_LABEL "ABS" -#define PREHEAT_2_TEMP_HOTEND 240 -#define PREHEAT_2_TEMP_BED 110 +#define PREHEAT_2_LABEL "HTPLA" +#define PREHEAT_2_TEMP_HOTEND 225 +#define PREHEAT_2_TEMP_BED 65 #define PREHEAT_2_TEMP_CHAMBER 35 #define PREHEAT_2_FAN_SPEED 0 // Value from 0 to 255 +#define PREHEAT_3_LABEL "PETG" +#define PREHEAT_3_TEMP_HOTEND 245 +#define PREHEAT_3_TEMP_BED 80 +#define PREHEAT_3_TEMP_CHAMBER 35 +#define PREHEAT_3_FAN_SPEED 0 // Value from 0 to 255 + +#define PREHEAT_4_LABEL "ABS" +#define PREHEAT_4_TEMP_HOTEND 270 +#define PREHEAT_4_TEMP_BED 110 +#define PREHEAT_4_TEMP_CHAMBER 35 +#define PREHEAT_4_FAN_SPEED 0 // Value from 0 to 255 + // @section motion /** @@ -2421,11 +2434,11 @@ * P1 Raise the nozzle always to Z-park height. * P2 Raise the nozzle by Z-park amount, limited to Z_MAX_POS. */ -//#define NOZZLE_PARK_FEATURE +#define NOZZLE_PARK_FEATURE #if ENABLED(NOZZLE_PARK_FEATURE) // Specify a park position as { X, Y, Z_raise } - #define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 } + #define NOZZLE_PARK_POINT { (X_MAX_POS - 10), (Y_MIN_POS + 10), 20 } #define NOZZLE_PARK_MOVE 0 // Park motion: 0 = XY Move, 1 = X Only, 2 = Y Only, 3 = X before Y, 4 = Y before X #define NOZZLE_PARK_Z_RAISE_MIN 2 // (mm) Always raise Z by at least this distance #define NOZZLE_PARK_XY_FEEDRATE 100 // (mm/s) X and Y axes feedrate (also used for delta Z axis) @@ -2555,9 +2568,9 @@ * * View the current statistics with M78. */ -//#define PRINTCOUNTER +#define PRINTCOUNTER #if ENABLED(PRINTCOUNTER) - #define PRINTCOUNTER_SAVE_INTERVAL 60 // (minutes) EEPROM save interval during print. A value of 0 will save stats at end of print. + #define PRINTCOUNTER_SAVE_INTERVAL 0 // (minutes) EEPROM save interval during print. A value of 0 will save stats at end of print. #endif // @section security @@ -2648,7 +2661,7 @@ * SD Card support is disabled by default. If your controller has an SD slot, * you must uncomment the following option or it won't work. */ -//#define SDSUPPORT +#define SDSUPPORT /** * SD CARD: ENABLE CRC @@ -2672,7 +2685,7 @@ // This option overrides the default number of encoder pulses needed to // produce one step. Should be increased for high-resolution encoders. // -//#define ENCODER_PULSES_PER_STEP 4 +#define ENCODER_PULSES_PER_STEP 3 // // Use this option to override the number of step signals required to @@ -2695,7 +2708,7 @@ // // Set this option if CLOCKWISE causes values to DECREASE // -//#define REVERSE_ENCODER_DIRECTION +#define REVERSE_ENCODER_DIRECTION // // This option reverses the encoder direction for navigating LCD menus. @@ -2728,8 +2741,8 @@ // // Add individual axis homing items (Home X, Home Y, and Home Z) to the LCD menu. // -//#define INDIVIDUAL_AXIS_HOMING_MENU -//#define INDIVIDUAL_AXIS_HOMING_SUBMENU +#define INDIVIDUAL_AXIS_HOMING_MENU +#define INDIVIDUAL_AXIS_HOMING_SUBMENU // // SPEAKER/BUZZER @@ -2737,7 +2750,7 @@ // If you have a speaker that can produce tones, enable it here. // By default Marlin assumes you have a buzzer with a fixed frequency. // -//#define SPEAKER +#define SPEAKER // // The duration and frequency for the UI feedback sound. @@ -2773,7 +2786,7 @@ // // Note: Usually sold with a white PCB. // -//#define REPRAP_DISCOUNT_SMART_CONTROLLER +#define REPRAP_DISCOUNT_SMART_CONTROLLER // // GT2560 (YHCB2004) LCD Display @@ -3459,7 +3472,7 @@ // Use software PWM to drive the fan, as for the heaters. This uses a very low frequency // which is not as annoying as with the hardware PWM. On the other hand, if this frequency // is too low, you should also increment SOFT_PWM_SCALE. -//#define FAN_SOFT_PWM +#define FAN_SOFT_PWM // Incrementing this by 1 will double the software PWM frequency, // affecting heaters, and the fan if FAN_SOFT_PWM is enabled. diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h index 283bbe39d3ab3..4da5d1eb77ebc 100644 --- a/Marlin/Configuration_adv.h +++ b/Marlin/Configuration_adv.h @@ -547,7 +547,7 @@ * Hotend Idle Timeout * Prevent filament in the nozzle from charring and causing a critical jam. */ -//#define HOTEND_IDLE_TIMEOUT +#define HOTEND_IDLE_TIMEOUT #if ENABLED(HOTEND_IDLE_TIMEOUT) #define HOTEND_IDLE_TIMEOUT_SEC (5*60) // (seconds) Time without extruder movement to trigger protection #define HOTEND_IDLE_MIN_TRIGGER 180 // (°C) Minimum temperature to enable hotend protection @@ -602,7 +602,7 @@ * gets it spinning reliably for a short time before setting the requested speed. * (Does not work on Sanguinololu with FAN_SOFT_PWM.) */ -//#define FAN_KICKSTART_TIME 100 // (ms) +#define FAN_KICKSTART_TIME 100 // (ms) //#define FAN_KICKSTART_POWER 180 // 64-255 // Some coolers may require a non-zero "off" state. @@ -620,7 +620,7 @@ * * Define one or both of these to override the default 0-255 range. */ -//#define FAN_MIN_PWM 50 +#define FAN_MIN_PWM 35 //#define FAN_MAX_PWM 128 /** @@ -681,7 +681,7 @@ * 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 -1 +#define E0_AUTO_FAN_PIN FAN1_PIN // Pin 2.4 #define E1_AUTO_FAN_PIN -1 #define E2_AUTO_FAN_PIN -1 #define E3_AUTO_FAN_PIN -1 @@ -923,9 +923,9 @@ * the position of the toolhead relative to the workspace. */ -//#define SENSORLESS_BACKOFF_MM { 2, 2, 0 } // (linear=mm, rotational=°) Backoff from endstops before sensorless homing +#define SENSORLESS_BACKOFF_MM { 5, 5, 0 } // (linear=mm, rotational=°) Backoff from endstops before sensorless homing -#define HOMING_BUMP_MM { 5, 5, 2 } // (linear=mm, rotational=°) Backoff from endstops after first bump +#define HOMING_BUMP_MM { 0, 0, 2 } // (linear=mm, rotational=°) Backoff from endstops after first bump #define HOMING_BUMP_DIVISOR { 2, 2, 4 } // Re-Bump Speed Divisor (Divides the Homing Feedrate) //#define HOMING_BACKOFF_POST_MM { 2, 2, 2 } // (linear=mm, rotational=°) Backoff from endstops after homing @@ -1020,7 +1020,7 @@ * Z Steppers Auto-Alignment * Add the G34 command to align multiple Z steppers using a bed probe. */ -//#define Z_STEPPER_AUTO_ALIGN +#define Z_STEPPER_AUTO_ALIGN #if ENABLED(Z_STEPPER_AUTO_ALIGN) /** * Define probe X and Y positions for Z1, Z2 [, Z3 [, Z4]] @@ -1242,7 +1242,7 @@ #define DEFAULT_STEPPER_TIMEOUT_SEC 120 #define DISABLE_IDLE_X #define DISABLE_IDLE_Y -#define DISABLE_IDLE_Z // Disable if the nozzle could fall onto your printed part! +//#define DISABLE_IDLE_Z // Disable if the nozzle could fall onto your printed part! //#define DISABLE_IDLE_I //#define DISABLE_IDLE_J //#define DISABLE_IDLE_K @@ -1262,7 +1262,7 @@ // Increase the slowdown divisor for larger buffer sizes. #define SLOWDOWN #if ENABLED(SLOWDOWN) - #define SLOWDOWN_DIVISOR 2 + #define SLOWDOWN_DIVISOR 4 #endif /** @@ -1528,7 +1528,7 @@ #endif // Include a page of printer information in the LCD Main Menu - //#define LCD_INFO_MENU + #define LCD_INFO_MENU #if ENABLED(LCD_INFO_MENU) //#define LCD_PRINTER_INFO_IS_BOOTSCREEN // Show bootscreen(s) instead of Printer Info pages #endif @@ -1553,7 +1553,7 @@ #define MANUAL_MOVE_DISTANCE_DEG 90, 45, 22.5, 5, 1 // (°) // BACK menu items keep the highlight at the top - //#define TURBO_BACK_MENU_ITEM + #define TURBO_BACK_MENU_ITEM // Insert a menu for preheating at the top level to allow for quick access //#define PREHEAT_SHORTCUT_MENU_ITEM @@ -1603,7 +1603,7 @@ //#define LCD_TIMEOUT_TO_STATUS 15000 // (ms) // Scroll a longer status message into view - //#define STATUS_MESSAGE_SCROLLING + #define STATUS_MESSAGE_SCROLLING // Apply a timeout to low-priority status messages //#define STATUS_MESSAGE_TIMEOUT_SEC 30 // (seconds) @@ -1612,7 +1612,7 @@ //#define LCD_DECIMAL_SMALL_XY // Show the E position (filament used) during printing - //#define LCD_SHOW_E_TOTAL + #define LCD_SHOW_E_TOTAL // Display a negative temperature instead of "err" //#define SHOW_TEMPERATURE_BELOW_ZERO @@ -1655,11 +1655,11 @@ #endif // Add 'M73' to set print job progress, overrides Marlin's built-in estimate -//#define SET_PROGRESS_MANUALLY +#define SET_PROGRESS_MANUALLY #if ENABLED(SET_PROGRESS_MANUALLY) #define SET_PROGRESS_PERCENT // Add 'P' parameter to set percentage done #define SET_REMAINING_TIME // Add 'R' parameter to set remaining time - //#define SET_INTERACTION_TIME // Add 'C' parameter to set time until next filament change or other user interaction + #define SET_INTERACTION_TIME // Add 'C' parameter to set time until next filament change or other user interaction //#define M73_REPORT // Report M73 values to host #if ALL(M73_REPORT, HAS_MEDIA) #define M73_REPORT_SD_ONLY // Report only when printing from SD @@ -1670,7 +1670,7 @@ #if HAS_DISPLAY && ANY(HAS_MEDIA, SET_PROGRESS_MANUALLY) #define SHOW_PROGRESS_PERCENT // Show print progress percentage (doesn't affect progress bar) #define SHOW_ELAPSED_TIME // Display elapsed printing time (prefix 'E') - //#define SHOW_REMAINING_TIME // Display estimated time to completion (prefix 'R') + #define SHOW_REMAINING_TIME // Display estimated time to completion (prefix 'R') #if ENABLED(SET_INTERACTION_TIME) #define SHOW_INTERACTION_TIME // Display time until next user interaction ('C' = filament change) #endif @@ -1712,7 +1712,7 @@ #define SD_PROCEDURE_DEPTH 1 // Increase if you need more nested M32 calls #define SD_FINISHED_STEPPERRELEASE true // Disable steppers when SD Print is finished - #define SD_FINISHED_RELEASECOMMAND "M84" // Use "M84XYE" to keep Z enabled so your bed stays in place + #define SD_FINISHED_RELEASECOMMAND "M84XYE" // Use "M84XYE" to keep Z enabled so your bed stays in place // Reverse SD sort to show "more recent" files first, according to the card's FAT. // Since the FAT gets out of order with usage, SDCARD_SORT_ALPHA is recommended. @@ -1728,7 +1728,7 @@ //#define MEDIA_MENU_AT_TOP // Force the media menu to be listed on the top of the main menu - #define EVENT_GCODE_SD_ABORT "G28XY" // G-code to run on SD Abort Print (e.g., "G28XY" or "G27") + #define EVENT_GCODE_SD_ABORT "G28XY\n" SD_FINISHED_RELEASECOMMAND // G-code to run on SD Abort Print (e.g., "G28XY" or "G27") #if ENABLED(PRINTER_EVENT_LEDS) #define PE_LEDS_COMPLETED_TIME (30*60) // (seconds) Time to keep the LED "done" color before restoring normal illumination @@ -1794,7 +1794,7 @@ * - SDSORT_CACHE_NAMES will retain the sorted file listing in RAM. (Expensive!) * - SDSORT_DYNAMIC_RAM only uses RAM when the SD menu is visible. (Use with caution!) */ - //#define SDCARD_SORT_ALPHA + #define SDCARD_SORT_ALPHA // SD Card Sorting options #if ENABLED(SDCARD_SORT_ALPHA) @@ -1814,11 +1814,11 @@ // LCD's font must contain the characters. Check your selected LCD language. //#define UTF_FILENAME_SUPPORT - //#define LONG_FILENAME_HOST_SUPPORT // Get the long filename of a file/folder with 'M33 ' and list long filenames with 'M20 L' + #define LONG_FILENAME_HOST_SUPPORT // Get the long filename of a file/folder with 'M33 ' and list long filenames with 'M20 L' //#define LONG_FILENAME_WRITE_SUPPORT // Create / delete files with long filenames via M28, M30, and Binary Transfer Protocol //#define M20_TIMESTAMP_SUPPORT // Include timestamps by adding the 'T' flag to M20 commands - //#define SCROLL_LONG_FILENAMES // Scroll long filenames in the SD card menu + #define SCROLL_LONG_FILENAMES // Scroll long filenames in the SD card menu //#define SD_ABORT_NO_COOLDOWN // Leave the heaters on after Stop Print (not recommended!) @@ -1919,7 +1919,7 @@ * * :[ 'LCD', 'ONBOARD', 'CUSTOM_CABLE' ] */ - //#define SDCARD_CONNECTION LCD + #define SDCARD_CONNECTION LCD // Enable if SD detect is rendered useless (e.g., by using an SD extender) //#define NO_SD_DETECT @@ -2265,30 +2265,30 @@ * * Warning: Does not respect endstops! */ -//#define BABYSTEPPING +#define BABYSTEPPING #if ENABLED(BABYSTEPPING) - //#define EP_BABYSTEPPING // M293/M294 babystepping with EMERGENCY_PARSER support + #define EP_BABYSTEPPING // M293/M294 babystepping with EMERGENCY_PARSER support //#define BABYSTEP_WITHOUT_HOMING //#define BABYSTEP_ALWAYS_AVAILABLE // Allow babystepping at all times (not just during movement) //#define BABYSTEP_XY // Also enable X/Y Babystepping. Not supported on DELTA! //#define BABYSTEP_INVERT_Z // Enable if Z babysteps should go the other way //#define BABYSTEP_MILLIMETER_UNITS // Specify BABYSTEP_MULTIPLICATOR_(XY|Z) in mm instead of micro-steps - #define BABYSTEP_MULTIPLICATOR_Z 1 // (steps or mm) Steps or millimeter distance for each Z babystep + #define BABYSTEP_MULTIPLICATOR_Z 5 // (steps or mm) Steps or millimeter distance for each Z babystep #define BABYSTEP_MULTIPLICATOR_XY 1 // (steps or mm) Steps or millimeter distance for each XY babystep - //#define DOUBLECLICK_FOR_Z_BABYSTEPPING // Double-click on the Status Screen for Z Babystepping. + #define DOUBLECLICK_FOR_Z_BABYSTEPPING // Double-click on the Status Screen for Z Babystepping. #if ENABLED(DOUBLECLICK_FOR_Z_BABYSTEPPING) #define DOUBLECLICK_MAX_INTERVAL 1250 // Maximum interval between clicks, in milliseconds. // Note: Extra time may be added to mitigate controller latency. - //#define MOVE_Z_WHEN_IDLE // Jump to the move Z menu on double-click when printer is idle. + #define MOVE_Z_WHEN_IDLE // Jump to the move Z menu on double-click when printer is idle. #if ENABLED(MOVE_Z_WHEN_IDLE) - #define MOVE_Z_IDLE_MULTIPLICATOR 1 // Multiply 1mm by this factor for the move step size. + #define MOVE_Z_IDLE_MULTIPLICATOR 2 // Multiply 1mm by this factor for the move step size. #endif #endif //#define BABYSTEP_DISPLAY_TOTAL // Display total babysteps since last G28 - //#define BABYSTEP_ZPROBE_OFFSET // Combine M851 Z and Babystepping + #define BABYSTEP_ZPROBE_OFFSET // Combine M851 Z and Babystepping #if ENABLED(BABYSTEP_ZPROBE_OFFSET) //#define BABYSTEP_HOTEND_Z_OFFSET // For multiple hotends, babystep relative Z offsets //#define BABYSTEP_GFX_OVERLAY // Enable graphical overlay on Z-offset editor @@ -2312,12 +2312,12 @@ * * See https://marlinfw.org/docs/features/lin_advance.html for full instructions. */ -//#define LIN_ADVANCE +#define LIN_ADVANCE #if ENABLED(LIN_ADVANCE) #if ENABLED(DISTINCT_E_FACTORS) #define ADVANCE_K { 0.22 } // (mm) Compression length per 1mm/s extruder speed, per extruder #else - #define ADVANCE_K 0.22 // (mm) Compression length applying to all extruders + #define ADVANCE_K 0.0 // (mm) Compression length applying to all extruders #endif //#define ADVANCE_K_EXTRA // Add a second linear advance constant, configurable with M900 L. //#define LA_DEBUG // Print debug information to serial during operation. Disable for production use. @@ -2597,7 +2597,7 @@ #if ALL(HAS_MEDIA, DIRECT_STEPPING) #define BLOCK_BUFFER_SIZE 8 #elif HAS_MEDIA - #define BLOCK_BUFFER_SIZE 16 + #define BLOCK_BUFFER_SIZE 32 #else #define BLOCK_BUFFER_SIZE 16 #endif @@ -2615,7 +2615,7 @@ // For debug-echo: 128 bytes for the optimal speed. // Other output doesn't need to be that speedy. // :[0, 2, 4, 8, 16, 32, 64, 128, 256] -#define TX_BUFFER_SIZE 0 +#define TX_BUFFER_SIZE 32 // Host Receive Buffer Size // Without XON/XOFF flow control (see SERIAL_XON_XOFF below) 32 bytes should be enough. @@ -2653,7 +2653,7 @@ * Currently handles M108, M112, M410, M876 * NOTE: Not yet implemented for all platforms. */ -//#define EMERGENCY_PARSER +#define EMERGENCY_PARSER /** * Realtime Reporting (requires EMERGENCY_PARSER) @@ -2684,7 +2684,7 @@ //#define NO_TIMEOUTS 1000 // (ms) // Some clients will have this feature soon. This could make the NO_TIMEOUTS unnecessary. -//#define ADVANCED_OK +#define ADVANCED_OK // Printrun may have trouble receiving long strings all at once. // This option inserts short delays between lines of serial output. @@ -2886,9 +2886,9 @@ * * Enable PARK_HEAD_ON_PAUSE to add the G-code M125 Pause and Park. */ -//#define ADVANCED_PAUSE_FEATURE +#define ADVANCED_PAUSE_FEATURE #if ENABLED(ADVANCED_PAUSE_FEATURE) - #define PAUSE_PARK_RETRACT_FEEDRATE 60 // (mm/s) Initial retract feedrate. + #define PAUSE_PARK_RETRACT_FEEDRATE 30 // (mm/s) Initial retract feedrate. #define PAUSE_PARK_RETRACT_LENGTH 2 // (mm) Initial retract. // This short retract is done immediately, before parking the nozzle. #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // (mm/s) Unload filament feedrate. This can be pretty fast. @@ -2898,11 +2898,11 @@ // For direct drive, the full length of the nozzle. // Set to 0 for manual unloading. #define FILAMENT_CHANGE_SLOW_LOAD_FEEDRATE 6 // (mm/s) Slow move when starting load. - #define FILAMENT_CHANGE_SLOW_LOAD_LENGTH 0 // (mm) Slow length, to allow time to insert material. + #define FILAMENT_CHANGE_SLOW_LOAD_LENGTH 20 // (mm) Slow length, to allow time to insert material. // 0 to disable start loading and skip to fast load only - #define FILAMENT_CHANGE_FAST_LOAD_FEEDRATE 6 // (mm/s) Load filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_FAST_LOAD_FEEDRATE 20 // (mm/s) Load filament feedrate. This can be pretty fast. #define FILAMENT_CHANGE_FAST_LOAD_ACCEL 25 // (mm/s^2) Lower acceleration may allow a faster feedrate. - #define FILAMENT_CHANGE_FAST_LOAD_LENGTH 0 // (mm) Load length of filament, from extruder gear to nozzle. + #define FILAMENT_CHANGE_FAST_LOAD_LENGTH 50 // (mm) Load length of filament, from extruder gear to nozzle. // For Bowden, the full length of the tube and nozzle. // For direct drive, the full length of the nozzle. //#define ADVANCED_PAUSE_CONTINUOUS_PURGE // Purge continuously up to the purge length until interrupted. @@ -2915,21 +2915,21 @@ //#define ADVANCED_PAUSE_FANS_PAUSE // Turn off print-cooling fans while the machine is paused. // Filament Unload does a Retract, Delay, and Purge first: - #define FILAMENT_UNLOAD_PURGE_RETRACT 13 // (mm) Unload initial retract length. - #define FILAMENT_UNLOAD_PURGE_DELAY 5000 // (ms) Delay for the filament to cool after retract. - #define FILAMENT_UNLOAD_PURGE_LENGTH 8 // (mm) An unretract is done, then this length is purged. + #define FILAMENT_UNLOAD_PURGE_RETRACT 0 // (mm) Unload initial retract length. + #define FILAMENT_UNLOAD_PURGE_DELAY 0 // (ms) Delay for the filament to cool after retract. + #define FILAMENT_UNLOAD_PURGE_LENGTH 10 // (mm) An unretract is done, then this length is purged. #define FILAMENT_UNLOAD_PURGE_FEEDRATE 25 // (mm/s) feedrate to purge before unload - #define PAUSE_PARK_NOZZLE_TIMEOUT 45 // (seconds) Time limit before the nozzle is turned off for safety. - #define FILAMENT_CHANGE_ALERT_BEEPS 10 // Number of alert beeps to play when a response is needed. + #define PAUSE_PARK_NOZZLE_TIMEOUT 120 // (seconds) Time limit before the nozzle is turned off for safety. + #define FILAMENT_CHANGE_ALERT_BEEPS 5 // Number of alert beeps to play when a response is needed. #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable for XYZ steppers to stay powered on during filament change. - //#define FILAMENT_CHANGE_RESUME_ON_INSERT // Automatically continue / load filament when runout sensor is triggered again. + #define FILAMENT_CHANGE_RESUME_ON_INSERT // Automatically continue / load filament when runout sensor is triggered again. //#define PAUSE_REHEAT_FAST_RESUME // Reduce number of waits by not prompting again post-timeout before continuing. //#define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change. - //#define HOME_BEFORE_FILAMENT_CHANGE // If needed, home before parking for filament change + #define HOME_BEFORE_FILAMENT_CHANGE // If needed, home before parking for filament change - //#define FILAMENT_LOAD_UNLOAD_GCODES // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu. + #define FILAMENT_LOAD_UNLOAD_GCODES // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu. //#define FILAMENT_UNLOAD_ALL_EXTRUDERS // Allow M702 to unload all extruders above a minimum target temp (as set by M302) #define CONFIGURE_FILAMENT_CHANGE // Add M603 G-code and menu items. Requires ~1.3K bytes of flash. #endif @@ -2968,8 +2968,8 @@ #define INTERPOLATE true #if AXIS_IS_TMC_CONFIG(X) - #define X_CURRENT 800 // (mA) RMS current. Multiply by 1.414 for peak current. - #define X_CURRENT_HOME X_CURRENT // (mA) RMS current for sensorless homing + #define X_CURRENT 1000 // (mA) RMS current. Multiply by 1.414 for peak current. + #define X_CURRENT_HOME (X_CURRENT/2) // (mA) RMS current for sensorless homing #define X_MICROSTEPS 16 // 0..256 #define X_RSENSE 0.11 #define X_CHAIN_POS -1 // -1..0: Not chained. 1: MCU MOSI connected. 2: Next in chain, ... @@ -2988,8 +2988,8 @@ #endif #if AXIS_IS_TMC_CONFIG(Y) - #define Y_CURRENT 800 - #define Y_CURRENT_HOME Y_CURRENT + #define Y_CURRENT 1000 + #define Y_CURRENT_HOME (Y_CURRENT/2) #define Y_MICROSTEPS 16 #define Y_RSENSE 0.11 #define Y_CHAIN_POS -1 @@ -3008,7 +3008,7 @@ #endif #if AXIS_IS_TMC_CONFIG(Z) - #define Z_CURRENT 800 + #define Z_CURRENT 500 #define Z_CURRENT_HOME Z_CURRENT #define Z_MICROSTEPS 16 #define Z_RSENSE 0.11 @@ -3108,7 +3108,7 @@ #endif #if AXIS_IS_TMC_CONFIG(E0) - #define E0_CURRENT 800 + #define E0_CURRENT 500 #define E0_MICROSTEPS 16 #define E0_RSENSE 0.11 #define E0_CHAIN_POS -1 @@ -3299,7 +3299,7 @@ * Define your own with: * { , , hysteresis_start[1..8] } */ - #define CHOPPER_TIMING CHOPPER_DEFAULT_12V // All axes (override below) + #define CHOPPER_TIMING CHOPPER_DEFAULT_24V // All axes (override below) //#define CHOPPER_TIMING_X CHOPPER_TIMING // For X Axes (override below) //#define CHOPPER_TIMING_X2 CHOPPER_TIMING_X //#define CHOPPER_TIMING_Y CHOPPER_TIMING // For Y Axes (override below) @@ -3359,7 +3359,7 @@ #define X2_HYBRID_THRESHOLD 100 #define Y_HYBRID_THRESHOLD 100 #define Y2_HYBRID_THRESHOLD 100 - #define Z_HYBRID_THRESHOLD 3 + #define Z_HYBRID_THRESHOLD 50 #define Z2_HYBRID_THRESHOLD 3 #define Z3_HYBRID_THRESHOLD 3 #define Z4_HYBRID_THRESHOLD 3 @@ -3404,13 +3404,13 @@ * Comment *_STALL_SENSITIVITY to disable sensorless homing for that axis. * @section tmc/stallguard */ - //#define SENSORLESS_HOMING // StallGuard capable drivers only + #define SENSORLESS_HOMING // StallGuard capable drivers only #if ANY(SENSORLESS_HOMING, SENSORLESS_PROBING) // TMC2209: 0...255. TMC2130: -64...63 - #define X_STALL_SENSITIVITY 8 + #define X_STALL_SENSITIVITY 80 #define X2_STALL_SENSITIVITY X_STALL_SENSITIVITY - #define Y_STALL_SENSITIVITY 8 + #define Y_STALL_SENSITIVITY 90 #define Y2_STALL_SENSITIVITY Y_STALL_SENSITIVITY //#define Z_STALL_SENSITIVITY 8 //#define Z2_STALL_SENSITIVITY Z_STALL_SENSITIVITY @@ -3423,7 +3423,7 @@ //#define V_STALL_SENSITIVITY 8 //#define W_STALL_SENSITIVITY 8 //#define SPI_ENDSTOPS // TMC2130/TMC5160 only - //#define IMPROVE_HOMING_RELIABILITY + #define IMPROVE_HOMING_RELIABILITY #endif // @section tmc/config @@ -3443,7 +3443,7 @@ /** * Step on both rising and falling edge signals (as with a square wave). */ - //#define EDGE_STEPPING + #define EDGE_STEPPING /** * Enable M122 debugging command for TMC stepper drivers. @@ -4112,10 +4112,10 @@ * Host Prompt Support enables Marlin to use the host for user prompts so * filament runout and other processes can be managed from the host side. */ -//#define HOST_ACTION_COMMANDS +#define HOST_ACTION_COMMANDS #if ENABLED(HOST_ACTION_COMMANDS) //#define HOST_PAUSE_M76 // Tell the host to pause in response to M76 - //#define HOST_PROMPT_SUPPORT // Initiate host prompts to get user feedback + #define HOST_PROMPT_SUPPORT // Initiate host prompts to get user feedback #if ENABLED(HOST_PROMPT_SUPPORT) //#define HOST_STATUS_NOTIFICATIONS // Send some status messages to the host as notifications #endif diff --git a/Marlin/_Bootscreen.h b/Marlin/_Bootscreen.h new file mode 100644 index 0000000000000..f8a28573c76c3 --- /dev/null +++ b/Marlin/_Bootscreen.h @@ -0,0 +1,86 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2024 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ +#pragma once + +#define CUSTOM_BOOTSCREEN_BMPWIDTH 126 + +const unsigned char custom_start_bmp[] PROGMEM = { + B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000001,B11111100, + B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000111,B11111100, + B00000111,B11111111,B11111111,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000111,B11111100, + B00001111,B11111111,B11111111,B11000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000111,B11111100, + B00011111,B11111111,B11111111,B11100000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000111,B11111100, + B00011111,B11111111,B11111111,B11110000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000111,B11111100, + B00111111,B11111111,B11111111,B11110000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00011111,B11111000,B00000111,B11111100, + B00111111,B11100000,B11111111,B11110000,B00000000,B00000000,B00000000,B00000000,B00111111,B00000000,B00000000,B00000000,B00111111,B11111000,B00001111,B11111100, + B00111111,B11000000,B01111111,B11111000,B00000111,B11110000,B00000000,B00000000,B00111111,B00000000,B00000000,B00000000,B00111111,B11111000,B00001111,B11111100, + B00111111,B11000000,B01111111,B11111000,B00001111,B11110000,B00000000,B00000011,B11111111,B10000000,B00000000,B00000000,B00111111,B11111100,B00001111,B11111100, + B00111111,B11000000,B01111111,B11111000,B00001111,B11111000,B00000000,B00000111,B11111111,B11111111,B11110000,B00000000,B00011111,B11111100,B00001111,B11111000, + B00111111,B11000000,B01111111,B11111001,B11111111,B11111111,B11111111,B11100111,B11111111,B11111111,B11110000,B00000000,B00000011,B11111100,B00001111,B11111000, + B00111111,B11100000,B01111111,B11111011,B11111111,B11111111,B11111111,B11100111,B11111111,B11111111,B11110000,B00000000,B00000011,B11111100,B00001111,B11111000, + B00011111,B11100000,B01111111,B11111001,B11111111,B11111111,B11111111,B11100000,B00111111,B00000000,B00000000,B00000000,B00000011,B11111100,B00001111,B11111000, + B00011111,B11111000,B00000000,B00000000,B00000111,B11110000,B00000000,B00000000,B00111111,B00000000,B00001111,B11111100,B00000011,B11111100,B00001111,B11111000, + B00001111,B11111111,B00000000,B00000000,B00000111,B11110000,B00000000,B00000000,B00111111,B00000001,B11111111,B11111111,B10000011,B11111100,B00001111,B11111000, + B00000001,B11111111,B11110000,B00000000,B00000111,B11110000,B00011111,B11110000,B00011111,B00000011,B11111111,B11111111,B11100011,B11111111,B11111111,B11111000, + B00000000,B00111111,B11111110,B00000000,B00000111,B11110000,B01111111,B11111000,B00011111,B00000111,B11111110,B00111111,B11100011,B11111111,B11111111,B11111000, + B00000000,B00000111,B11111111,B11000000,B00000111,B11110000,B11111111,B11110000,B00011111,B00000111,B11111100,B00011111,B11110011,B11111111,B11111111,B11111000, + B00000000,B00000000,B11111111,B11110000,B00000111,B11110000,B01111111,B11000000,B00011111,B00000111,B11111100,B00011111,B11110011,B11111111,B11111111,B11111000, + B00000000,B00000000,B00111111,B11110000,B00000111,B11110000,B00011100,B00000000,B00011111,B00000111,B11111000,B00011111,B11110011,B11111000,B00111111,B11110000, + B00000000,B00000000,B00011111,B11111000,B00000111,B11110000,B00000000,B00000000,B00011111,B00000111,B11111000,B00000000,B00000011,B11111000,B00011111,B11110000, + B00000000,B00000000,B00011111,B11111000,B00000111,B11110000,B00000000,B00000000,B00011111,B00000111,B11111000,B00000000,B00000011,B11111000,B00001111,B11110000, + B00000000,B00000000,B00001111,B11111100,B00000111,B11110000,B00000000,B00000000,B00111111,B00001111,B11111000,B00000000,B00000011,B11111000,B00001111,B11110000, + B00000000,B00000000,B00001111,B11111100,B00000111,B11110000,B00011111,B11100000,B00111111,B00001111,B11111000,B00000000,B00000011,B11111000,B00001111,B11110000, + B01111111,B11100000,B00001111,B11111100,B00000111,B11110000,B00011111,B11100000,B00111111,B00001111,B11110000,B00000000,B00000011,B11111000,B00001111,B11110000, + B11111111,B11111000,B00001111,B11111100,B00001111,B11110000,B00011111,B11100000,B00111111,B00001111,B11110000,B00000000,B00000011,B11111000,B00001111,B11110000, + B11111111,B11111000,B00001111,B11111100,B00001111,B11110000,B00011111,B11100000,B00111111,B00001111,B11110000,B00000000,B00000011,B11111000,B00001111,B11110000, + B11111111,B11111000,B00001111,B11111100,B00001111,B11100000,B00011111,B11100000,B00111110,B00000111,B11111000,B00111111,B11000011,B11111100,B00001111,B11110000, + B11111111,B11111000,B00001111,B11111100,B00011111,B11100000,B00011111,B11100000,B01111110,B00000111,B11111000,B00111111,B11000011,B11111000,B00001111,B11110000, + B11111111,B11111000,B00011111,B11111100,B00011111,B11100000,B00011111,B11100000,B01111110,B00000111,B11111111,B11111111,B10000000,B00000000,B00001111,B11110000, + B01111111,B11111110,B00111111,B11111000,B00011111,B11100000,B00011111,B11100000,B01111110,B00000011,B11111111,B11111111,B10000000,B00000000,B00001111,B11110000, + B01111111,B11111111,B11111111,B11111000,B00000000,B00000000,B00011111,B11100000,B01111110,B00000000,B11111111,B11111110,B00000000,B00000000,B00001111,B11110000, + B00111111,B11111111,B11111111,B11100000,B00000000,B00000000,B00001111,B11100000,B00000000,B00000000,B00001111,B11110000,B00000000,B00000000,B00001111,B11110000, + B00011111,B11111111,B11111111,B10000000,B00000000,B00000000,B00011111,B11100000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000, + B00000111,B11111111,B11110000,B00000000,B00000000,B00000000,B11111111,B11100000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000, + B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B01111111,B11000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000 +}; + +// Saves 322 bytes +#define COMPACT_CUSTOM_BOOTSCREEN +const unsigned char custom_start_bmp_rle[270] PROGMEM = { + 0x0F, 0x67, 0x6F, 0x67, 0x86, 0xF0, 0x3F, 0x4D, 0x85, 0xF0, 0x6F, 0x4B, 0x84, 0xF0, 0x8F, 0x4A, + 0x84, 0xF0, 0x9F, 0x49, 0x83, 0xF0, 0xAF, 0x37, 0x97, 0x83, 0x84, 0xBF, 0x16, 0x5F, 0x0A, 0xA6, + 0x93, 0x76, 0xB7, 0x6F, 0x06, 0x5F, 0x0A, 0xA6, 0x93, 0x76, 0xB6, 0x7F, 0x02, 0xAF, 0x09, 0xB5, + 0x93, 0x76, 0xB6, 0x8F, 0x00, 0xF0, 0x7E, 0xA5, 0x84, 0x76, 0xB1, 0xF0, 0xC1, 0xF0, 0x7F, 0x02, + 0x75, 0x84, 0x85, 0xB0, 0xF0, 0xD1, 0xF0, 0x7F, 0x02, 0x75, 0x85, 0x75, 0xB1, 0xF0, 0xC6, 0x5F, + 0x0E, 0x75, 0x85, 0x9F, 0x08, 0x6F, 0x06, 0x5B, 0x97, 0x75, 0x86, 0xBF, 0x05, 0x6F, 0x06, 0x56, + 0xF0, 0x24, 0x75, 0x89, 0xCF, 0x01, 0x66, 0x86, 0x45, 0xF0, 0x52, 0xF0, 0x7C, 0xCD, 0x64, 0xB5, + 0x44, 0x92, 0x82, 0xF0, 0x7F, 0x00, 0xCA, 0x63, 0xB6, 0x44, 0x84, 0x81, 0xF0, 0x7F, 0x03, 0xB8, + 0x64, 0x88, 0x44, 0x84, 0x81, 0xF0, 0x7F, 0x05, 0x98, 0x66, 0x2C, 0x44, 0x75, 0x81, 0x64, 0x9F, + 0x07, 0x97, 0x6F, 0x07, 0x44, 0x7F, 0x01, 0x65, 0x8F, 0x07, 0x97, 0x6F, 0x07, 0x44, 0x7F, 0x01, + 0x66, 0x7F, 0x08, 0x96, 0x6F, 0x06, 0x53, 0x8F, 0x01, 0x66, 0x7F, 0x08, 0x96, 0x66, 0x76, 0x53, + 0x8F, 0x01, 0x66, 0x74, 0x98, 0x96, 0x66, 0x76, 0x53, 0x7F, 0x02, 0x66, 0x73, 0xC6, 0x95, 0x76, + 0x76, 0x53, 0x7F, 0x02, 0x66, 0x73, 0xC6, 0x95, 0x76, 0x76, 0x53, 0x7F, 0x02, 0x66, 0x73, 0xC6, + 0x95, 0x67, 0x76, 0x45, 0x74, 0x73, 0x75, 0x73, 0xC6, 0x94, 0x77, 0x75, 0x55, 0x74, 0x73, 0x66, + 0x73, 0xC5, 0xA4, 0x77, 0x75, 0x55, 0xF0, 0x4F, 0x03, 0x74, 0xD2, 0xA5, 0x77, 0x75, 0x56, 0xF0, + 0x3F, 0x03, 0x74, 0xF0, 0xCF, 0x06, 0x75, 0x58, 0xEF, 0x05, 0x75, 0xF0, 0x9F, 0x09, 0x6F, 0x09, + 0x7F, 0x08, 0x76, 0xF0, 0x6F, 0x0A, 0x7F, 0x3A, 0xEF, 0x0C, 0xAF, 0x66, 0x8F, 0x36 +}; diff --git a/Marlin/_Statusscreen.h b/Marlin/_Statusscreen.h new file mode 100644 index 0000000000000..668ccb06113c8 --- /dev/null +++ b/Marlin/_Statusscreen.h @@ -0,0 +1,57 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2024 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * + * Based on Sprinter and grbl. + * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ +#pragma once + +#define STATUS_LOGO_WIDTH 64 + +const unsigned char status_logo_bmp[] PROGMEM = { + B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B01110000, + B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B11110000, + B00111111,B11111000,B00000000,B00000000,B00000000,B00000000,B00000000,B11110000, + B01111001,B11111000,B00000000,B00000000,B00000000,B00000000,B11110000,B11110000, + B01111000,B11111000,B00110000,B00000000,B11000000,B00000001,B11110000,B11110000, + B01111000,B11111100,B01111000,B00000011,B11111111,B00000000,B01110000,B11110000, + B01111000,B01111001,B11111111,B11110000,B11100000,B00000000,B01110000,B11110000, + B00111100,B00000000,B00111000,B00000000,B11000000,B01111000,B01110000,B11110000, + B00000111,B11000000,B00111000,B11111000,B11000111,B11011110,B01111111,B11100000, + B00000000,B11111000,B00111000,B11110000,B11000111,B10001110,B01111111,B11100000, + B00000000,B01111000,B00111000,B00000000,B11000111,B10000000,B01110000,B11100000, + B00000000,B00111100,B00111000,B00000000,B11000111,B00000000,B01110000,B11100000, + B00000000,B00111100,B00111000,B01110000,B11000111,B00000000,B01110000,B11100000, + B11111100,B00111100,B00111000,B01110000,B11000111,B00000000,B01110000,B11100000, + B11111100,B00111100,B01110000,B01110001,B11000111,B10011100,B00000000,B11100000, + B01111110,B01111100,B00110000,B01110001,B11000011,B11111100,B00000000,B11100000, + B01111111,B11110000,B00000000,B01110000,B00000000,B00000000,B00000000,B00000000, + B00000000,B00000000,B00000000,B11110000,B00000000,B00000000,B00000000,B00000000 +}; + +// +// Use default bitmaps +// +//#define STATUS_HEATERS_XSPACE 20 +//#if HOTENDS < 2 +// #define STATUS_HEATERS_X 48 +// #define STATUS_BED_X 72 +//#else +// #define STATUS_HEATERS_X 40 +// #define STATUS_BED_X 80 +//#endif diff --git a/Marlin/src/inc/Warnings.cpp b/Marlin/src/inc/Warnings.cpp index 8fc775d4c21a0..b0c76ded83cf2 100644 --- a/Marlin/src/inc/Warnings.cpp +++ b/Marlin/src/inc/Warnings.cpp @@ -876,3 +876,6 @@ #if defined(ARDUINO_ARCH_HC32) && F_CPU == 200000000 #warning "HC32 clock is assumed to be 200MHz. If this isn't the case for your board please submit a report so we can add support." #endif + +// Warn users of personal config +#warning "This is my (thisiskeithb) personal config and can change at any time. Verify settings match your hardware before flashing." diff --git a/README.md b/README.md index b11a1193b976d..80da7b18ba323 100644 --- a/README.md +++ b/README.md @@ -1,129 +1,61 @@

MarlinFirmware's logo

-

Marlin 3D Printer Firmware

+

Anet AM8 Marlin Firmware
SKR 1.3 / TMC2209s

- GPL-V3.0 License - Contributors - Last Release Date - CI Status - GitHub Sponsors + GPL-V3.0 License + Contributors + Last Commit Date + CI Status + GitHub Sponsors
- Follow MarlinFirmware on Mastodon + Follow thisiskeithb on Twitter

-Additional documentation can be found at the [Marlin Home Page](https://marlinfw.org/). -Please test this firmware and let us know if it misbehaves in any way. Volunteers are standing by! - -## Marlin 2.1 Bugfix Branch - -__Not for production use. Use with caution!__ - -Marlin 2.1 takes this popular RepRap firmware to the next level by adding support for much faster 32-bit and ARM-based boards while improving support for 8-bit AVR boards. Read about Marlin's decision to use a "Hardware Abstraction Layer" below. - -This branch is for patches to the latest 2.1.x release version. Periodically this branch will form the basis for the next minor 2.1.x release. - -Download earlier versions of Marlin on the [Releases page](https://github.com/MarlinFirmware/Marlin/releases). - -## Example Configurations - -Before you can build Marlin for your machine you'll need a configuration for your specific hardware. Upon request, your vendor will be happy to provide you with the complete source code and configurations for your machine, but you'll need to get updated configuration files if you want to install a newer version of Marlin. Fortunately, Marlin users have contributed dozens of tested configurations to get you started. Visit the [MarlinFirmware/Configurations](https://github.com/MarlinFirmware/Configurations) repository to find the right configuration for your hardware. - -## Building Marlin 2.1 - -To build and upload Marlin you will use one of these tools: - -- The free [Visual Studio Code](https://code.visualstudio.com/download) using the [Auto Build Marlin](https://marlinfw.org/docs/basics/auto_build_marlin.html) extension. -- The free [Arduino IDE](https://www.arduino.cc/en/main/software) : See [Building Marlin with Arduino](https://marlinfw.org/docs/basics/install_arduino.html) -- You can also use VSCode with devcontainer : See [Installing Marlin (VSCode devcontainer)](http://marlinfw.org/docs/basics/install_devcontainer_vscode.html). - -Marlin is optimized to build with the **PlatformIO IDE** extension for **Visual Studio Code**. You can still build Marlin with **Arduino IDE**, and we hope to improve the Arduino build experience, but at this time PlatformIO is the better choice. - -## 8-Bit AVR Boards - -We intend to continue supporting 8-bit AVR boards in perpetuity, maintaining a single codebase that can apply to all machines. We want casual hobbyists and tinkerers and owners of older machines to benefit from the community's innovations just as much as those with fancier machines. Plus, those old AVR-based machines are often the best for your testing and feedback! - -## Hardware Abstraction Layer (HAL) - -Marlin includes an abstraction layer to provide a common API for all the platforms it targets. This allows Marlin code to address the details of motion and user interface tasks at the lowest and highest levels with no system overhead, tying all events directly to the hardware clock. - -Every new HAL opens up a world of hardware. At this time we need HALs for RP2040 and the Duet3D family of boards. A HAL that wraps an RTOS is an interesting concept that could be explored. Did you know that Marlin includes a Simulator that can run on Windows, macOS, and Linux? Join the Discord to help move these sub-projects forward! - -### Supported Platforms - - Platform|MCU|Example Boards - --------|---|------- - [Arduino AVR](https://www.arduino.cc/)|ATmega|RAMPS, Melzi, RAMBo - [Teensy++ 2.0](https://www.microchip.com/en-us/product/AT90USB1286)|AT90USB1286|Printrboard - [Arduino Due](https://www.arduino.cc/en/Guide/ArduinoDue)|SAM3X8E|RAMPS-FD, RADDS, RAMPS4DUE - [ESP32](https://github.com/espressif/arduino-esp32)|ESP32|FYSETC E4, E4d@BOX, MRR - [LPC1768](https://www.nxp.com/products/processors-and-microcontrollers/arm-microcontrollers/general-purpose-mcus/lpc1700-cortex-m3/512-kb-flash-64-kb-sram-ethernet-usb-lqfp100-package:LPC1768FBD100)|ARM® Cortex-M3|MKS SBASE, Re-ARM, Selena Compact - [LPC1769](https://www.nxp.com/products/processors-and-microcontrollers/arm-microcontrollers/general-purpose-mcus/lpc1700-cortex-m3/512-kb-flash-64-kb-sram-ethernet-usb-lqfp100-package:LPC1769FBD100)|ARM® Cortex-M3|Smoothieboard, Azteeg X5 mini, TH3D EZBoard - [STM32F103](https://www.st.com/en/microcontrollers-microprocessors/stm32f103.html)|ARM® Cortex-M3|Malyan M200, GTM32 Pro, MKS Robin, BTT SKR Mini - [STM32F401](https://www.st.com/en/microcontrollers-microprocessors/stm32f401.html)|ARM® Cortex-M4|ARMED, Rumba32, SKR Pro, Lerdge, FYSETC S6, Artillery Ruby - [STM32F7x6](https://www.st.com/en/microcontrollers-microprocessors/stm32f7x6.html)|ARM® Cortex-M7|The Borg, RemRam V1 - [STM32G0B1RET6](https://www.st.com/en/microcontrollers-microprocessors/stm32g0x1.html)|ARM® Cortex-M0+|BigTreeTech SKR mini E3 V3.0 - [STM32H743xIT6](https://www.st.com/en/microcontrollers-microprocessors/stm32h743-753.html)|ARM® Cortex-M7|BigTreeTech SKR V3.0, SKR EZ V3.0, SKR SE BX V2.0/V3.0 - [SAMD51P20A](https://www.adafruit.com/product/4064)|ARM® Cortex-M4|Adafruit Grand Central M4 - [Teensy 3.5](https://www.pjrc.com/store/teensy35.html)|ARM® Cortex-M4| - [Teensy 3.6](https://www.pjrc.com/store/teensy36.html)|ARM® Cortex-M4| - [Teensy 4.0](https://www.pjrc.com/store/teensy40.html)|ARM® Cortex-M7| - [Teensy 4.1](https://www.pjrc.com/store/teensy41.html)|ARM® Cortex-M7| - Linux Native|x86/ARM/etc.|Raspberry Pi - -## Marlin Support - -The Issue Queue is reserved for Bug Reports and Feature Requests. Please use the following resources for help with configuration and troubleshooting: - -- [Marlin Documentation](https://marlinfw.org) - Official Marlin documentation -- [Marlin Discord](https://discord.gg/n5NJ59y) - Discuss issues with Marlin users and developers -- Facebook Group ["Marlin Firmware"](https://www.facebook.com/groups/1049718498464482/) -- RepRap.org [Marlin Forum](https://forums.reprap.org/list.php?415) -- Facebook Group ["Marlin Firmware for 3D Printers"](https://www.facebook.com/groups/3Dtechtalk/) -- [Marlin Configuration](https://www.youtube.com/results?search_query=marlin+configuration) on YouTube - -## Contributing Patches - -You can contribute patches by submitting a Pull Request to the ([bugfix-2.1.x](https://github.com/MarlinFirmware/Marlin/tree/bugfix-2.1.x)) branch. - -- We use branches named with a "bugfix" or "dev" prefix to fix bugs and integrate new features. -- Follow the [Coding Standards](https://marlinfw.org/docs/development/coding_standards.html) to gain points with the maintainers. -- Please submit Feature Requests and Bug Reports to the [Issue Queue](https://github.com/MarlinFirmware/Marlin/issues/new/choose). See above for user support. -- Whenever you add new features, be sure to add one or more build tests to `buildroot/tests`. Any tests added to a PR will be run within that PR on GitHub servers as soon as they are pushed. To minimize iteration be sure to run your new tests locally, if possible. - - Local build tests: - - All: `make tests-config-all-local` - - Single: `make tests-config-single-local TEST_TARGET=...` - - Local build tests in Docker: - - All: `make tests-config-all-local-docker` - - Single: `make tests-config-all-local-docker TEST_TARGET=...` - - To run all unit test suites: - - Using PIO: `platformio run -t test-marlin` - - Using Make: `make unit-test-all-local` - - Using Docker + make: `maker unit-test-all-local-docker` - - To run a single unit test suite: - - Using PIO: `platformio run -t marlin_` - - Using make: `make unit-test-single-local TEST_TARGET=` - - Using Docker + make: `maker unit-test-single-local-docker TEST_TARGET=` -- If your feature can be unit tested, add one or more unit tests. For more information see our documentation on [Unit Tests](test). - -## Contributors - -Marlin is constantly improving thanks to a huge number of contributors from all over the world bringing their specialties and talents. Huge thanks are due to [all the contributors](https://github.com/MarlinFirmware/Marlin/graphs/contributors) who regularly patch up bugs, help direct traffic, and basically keep Marlin from falling apart. Marlin's continued existence would not be possible without them. - -## Project Leadership - -Name|Role|Link|Donate -----|----|----|---- -🇺🇸 Scott Lahteine|Project Lead|[[@thinkyhead](https://github.com/thinkyhead)]|[💸 Donate](https://marlinfw.org/docs/development/contributing.html#donate) -🇺🇸 Roxanne Neufeld|Admin|[[@Roxy-3D](https://github.com/Roxy-3D)]| -🇺🇸 Keith Bennett|Admin|[[@thisiskeithb](https://github.com/thisiskeithb)]|[💸 Donate](https://github.com/sponsors/thisiskeithb) -🇺🇸 Jason Smith|Admin|[[@sjasonsmith](https://github.com/sjasonsmith)]| -🇧🇷 Victor Oliveira|Admin|[[@rhapsodyv](https://github.com/rhapsodyv)]| -🇬🇧 Chris Pepper|Admin|[[@p3p](https://github.com/p3p)]| -🇳🇿 Peter Ellens|Admin|[[@ellensp](https://github.com/ellensp)]|[💸 Donate](https://ko-fi.com/ellensp) -🇺🇸 Bob Kuhn|Admin|[[@Bob-the-Kuhn](https://github.com/Bob-the-Kuhn)]| -🇳🇱 Erik van der Zalm|Founder|[[@ErikZalm](https://github.com/ErikZalm)]| - -## License - -Marlin is published under the [GPL license](/LICENSE) because we believe in open development. The GPL comes with both rights and obligations. Whether you use Marlin firmware as the driver for your open or closed-source product, you must keep Marlin open, and you must provide your compatible Marlin source code to end users upon request. The most straightforward way to comply with the Marlin license is to make a fork of Marlin on Github, perform your modifications, and direct users to your modified fork. +## Specs + +This firmware is configured for a heavily modified Anet AM8 fitted with a BigTreeTech SKR 1.3 and TMC2209s: + +### Frame & Plastic Bits +* AM8 frame (T-slot) +* Customized [Bear Upgrade parts](https://www.thingiverse.com/thing:2865573) for T-slot +* [Prusa Bear X axis](https://github.com/gregsaun/bear_extruder_and_x_axis) +* [AM8 Z brace](https://www.thingiverse.com/thing:3115521) +* [LM8UU holders](https://www.thingiverse.com/thing:1172217) (Y-axis) +* [22mm rubber feet](https://www.amazon.com/dp/B079Z7Z73Z/) + +### Motherboard +* [BigTreeTech SKR 1.3](https://www.biqu.equipment/collections/skr-series/products/pre-sale-bigtreetech-skr-v1-3-smoothieboard-32-bit-open-source-arm-cpu-motherboard-support-uart-model-2004lcd-3d-printer-parts) +* [Printed control box](https://www.thingiverse.com/thing:4178177) + +### Drivers +* [BigTreeTech TMC2209s](https://www.biqu.equipment/products/bigtreetech-tmc2209-stepper-motor-driver-for-3d-printer-board-vs-tmc2208) on X/Y/Z/E + +### Steppers +* **X-axis:** Tevo 78 oz-in 40mm 17HD4401-C5.18 1.8° +* **Y-axis:** Tevo 78 oz-in 40mm 17HD4401-C5.18 1.8° +* **Z-axis:** 2 x Creality 42-34/JKong Motor JK42HS34-0844 1.8° with TR8x2 leadscrews +* **Extruder:** [LDO 0.9° pancake motor](https://ldomotors.manufacturer.globalsources.com/si/6008840349362/pdtl/Stepping-motor/1156769667/Nmea17-0.9-degree-hybrid-stepper-motor.htm) +* **Microstepping:** 1/32 on E + +### Hotend + * [E3D V6 Volcano all-metal hotend](https://e3d-online.com/v6-all-metal-hotend) + * [0.8mm Balitensen stainless steel nozzle](https://www.amazon.com/dp/B078PT5H2Z/) + * Customized [BMG extruder](https://www.thingiverse.com/thing:3469271) with cloned BMG gears + * [Prusa IR filament sensor](https://www.amazon.com/dp/B07PYQWGK1/) + * [Antrader 4010 24V fan](https://www.amazon.com/dp/B07K1WHJ2X/) + * [SoundOriginal 24V 5015 fan](https://www.amazon.com/dp/B0755BY9RH/) + * [Genuine PINDA V2](https://www.printedsolid.com/products/pinda-2-probe-replacement) + +### Bed +* 200mm Tevo Tarantula bed +* [Keenovo](https://keenovo.store/) AC-powered silicone heater pad controlled by an [OPTO 22 Z120D10 SSR](https://www.opto22.com/products/z120d10) +* Creality die springs +* [Two Trees spring steel sheet](https://www.amazon.com/dp/B07W4JMW2S/) + +### LCD Controller +* [BigTreeTech 2004 Graphic Smart Display Controller](https://www.amazon.com/dp/B01FLU9X5Q) + +### Other +* [Raspberry Pi 3 Model B+](https://www.raspberrypi.org/products/raspberry-pi-3-model-b-plus/) running [OctoPrint](https://octoprint.org/) +* [Mean Well LRS-150-24 Power Supply](https://www.amazon.com/dp/B018RE4CWW/) diff --git a/platformio.ini b/platformio.ini index 76200cbbd5c33..265cb033745f4 100644 --- a/platformio.ini +++ b/platformio.ini @@ -13,7 +13,7 @@ [platformio] src_dir = Marlin boards_dir = buildroot/share/PlatformIO/boards -default_envs = mega2560 +default_envs = LPC1768 include_dir = Marlin extra_configs = Marlin/config.ini