Skip to content

Commit

Permalink
Filament change etc. optimisations
Browse files Browse the repository at this point in the history
  • Loading branch information
Sophist-UK committed Mar 2, 2024
1 parent 1be9095 commit d063a9c
Show file tree
Hide file tree
Showing 4 changed files with 44 additions and 24 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/build_multiple.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ jobs:
warping: [STD]
pinout: [STD]
head: [STD]
experiment: [NONE, BED_BILINEAR, BED_UNIFIED, INP_SHAPE, S_CURVE, MPC, JUNC_DEV, BACKLASH, ADAPTIVE_SMOOTHING] # STATUS_ICONS
experiment: [NONE, BED_BILINEAR, BED_UNIFIED, INP_SHAPE, S_CURVE, PID, JUNC_DEV, BACKLASH, ADAPTIVE_SMOOTHING] # STATUS_ICONS
permissions:
contents: write
uses: ./.github/workflows/build_single.yaml
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/build_single.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ on:
default: STD
experiment:
description: 'experiment features:'
options: [NONE, BED_BILINEAR, BED_UNIFIED, INP_SHAPE, S_CURVE, MPC, JUNC_DEV, STATUS_ICONS, BACKLASH, ADAPTIVE_SMOOTHING]
options: [NONE, BED_BILINEAR, BED_UNIFIED, INP_SHAPE, S_CURVE, PID, JUNC_DEV, STATUS_ICONS, BACKLASH, ADAPTIVE_SMOOTHING]
required: true
type: choice
default: NONE
Expand Down
49 changes: 33 additions & 16 deletions Marlin/Configuration.h
Original file line number Diff line number Diff line change
Expand Up @@ -101,13 +101,13 @@
//#define DE200_HEAD_Z122
//#define DE200_HEAD_Z122_BLTOUCH

// DE200_EXPERIMENT_* - default NONE; available NONE, BED_BILINEAR, INP_SHAPE, S_CURVE, MPC, JUNC_DEV, STATUS_ICONS, BACKLASH, ADAPTIVE_SMOOTHING
// DE200_EXPERIMENT_* - default NONE; available NONE, BED_BILINEAR, INP_SHAPE, S_CURVE, PID, JUNC_DEV, STATUS_ICONS, BACKLASH, ADAPTIVE_SMOOTHING
//#define DE200_EXPERIMENT_NONE
//#define DE200_EXPERIMENT_BED_BILINEAR
//#define DE200_EXPERIMENT_BED_UNIFIED
//#define DE200_EXPERIMENT_INP_SHAPE
//#define DE200_EXPERIMENT_S_CURVE
//#define DE200_EXPERIMENT_MPC
//#define DE200_EXPERIMENT_PID // Revert to PID from more advanced MPC
//#define DE200_EXPERIMENT_JUNC_DEV
//#define DE200_EXPERIMENT_STATUS_ICONS
//#define DE200_EXPERIMENT_BACKLASH
Expand Down Expand Up @@ -172,7 +172,7 @@
#endif

#if NONE(DE200_EXPERIMENT_NONE, DE200_EXPERIMENT_BED_BILINEAR, DE200_EXPERIMENT_BED_UNIFIED, \
DE200_EXPERIMENT_INP_SHAPE, DE200_EXPERIMENT_S_CURVE, DE200_EXPERIMENT_MPC, DE200_EXPERIMENT_JUNC_DEV, \
DE200_EXPERIMENT_INP_SHAPE, DE200_EXPERIMENT_S_CURVE, DE200_EXPERIMENT_PID, DE200_EXPERIMENT_JUNC_DEV, \
DE200_EXPERIMENT_STATUS_ICONS, DE200_EXPERIMENT_BACKLASH, DE200_EXPERIMENT_ADAPTIVE_SMOOTHING)
#define DE200_EXPERIMENT_NONE
#endif
Expand Down Expand Up @@ -237,8 +237,8 @@
#define MACHINE_ABOUT_LINE3 "X:Input Shaping"
#elif ENABLED(DE200_EXPERIMENT_S_CURVE)
#define MACHINE_ABOUT_LINE3 "X:S-Curve Accel."
#elif ENABLED(DE200_EXPERIMENT_MPC)
#define MACHINE_ABOUT_LINE3 "X:Model Predict Ctl"
#elif ENABLED(DE200_EXPERIMENT_PID)
#define MACHINE_ABOUT_LINE3 "X:Hotend-PID"
#elif ENABLED(DE200_EXPERIMENT_JUNC_DEV)
#define MACHINE_ABOUT_LINE3 "X:Juction Deviation"
#elif ENABLED(DE200_EXPERIMENT_STATUS_ICONS)
Expand Down Expand Up @@ -916,7 +916,7 @@
* PIDTEMP : PID temperature control (~4.1K)
* MPCTEMP : Predictive Model temperature control. (~1.8K without auto-tune)
*/
#if DISABLED(DE200_EXPERIMENT_MPC)
#if ENABLED(DE200_EXPERIMENT_PID)
#define PIDTEMP // See the PID Tuning Guide at https://reprap.org/wiki/PID_Tuning
#else
#define MPCTEMP // ** EXPERIMENTAL ** See https://marlinfw.org/docs/features/model_predictive_control.html
Expand Down Expand Up @@ -2467,8 +2467,7 @@
#endif

// Homing speeds (linear=mm/min, rotational=°/min)
//#define HOMING_FEEDRATE_MM_M { (50*60), (50*60), (5*60) } // Dagoma value (4*60)
#define HOMING_FEEDRATE_MM_M { (100*60), (100*60), (5*60) } // Dagoma value (4*60)
#define HOMING_FEEDRATE_MM_M { (100*60), (100*60), (5*60) } // Dagoma values (50*60, 50*60, 4*60)

// Validate that endstops are triggered on homing moves
#define VALIDATE_HOMING_ENDSTOPS
Expand Down Expand Up @@ -2585,14 +2584,14 @@
// Preheat Constants - Up to 10 are supported without changes
//
#define PREHEAT_1_LABEL "PLA"
#define PREHEAT_1_TEMP_HOTEND 180
#define PREHEAT_1_TEMP_HOTEND 200
#define PREHEAT_1_TEMP_BED 60
#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 90
#define PREHEAT_2_TEMP_BED 100
#define PREHEAT_2_TEMP_CHAMBER 35
#define PREHEAT_2_FAN_SPEED 0 // Value from 0 to 255

Expand All @@ -2613,9 +2612,9 @@

#if ENABLED(NOZZLE_PARK_FEATURE)
// Specify a park position as { X, Y, Z_raise }
#define NOZZLE_PARK_POINT { (X_MIN_POS), (Y_MAX_POS - 10), 20 }
#define NOZZLE_PARK_POINT { (X_MIN_POS + 5), (Y_MAX_POS - 5), 7 }
#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_Z_RAISE_MIN 7 // (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)
#define NOZZLE_PARK_Z_FEEDRATE 5 // (mm/s) Z axis feedrate (not used for delta printers)
#endif
Expand Down Expand Up @@ -3105,10 +3104,28 @@
//
#if ENABLED(DE200_SCREEN_STD)
#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
// Prevent minor graphic corruption
#define ST7920_DELAY_1 DELAY_NS(200) // After CLK LOW
#define ST7920_DELAY_2 DELAY_NS(400) // After DAT
#define ST7920_DELAY_3 DELAY_NS(200) // After CLK HIGH
/*
* With the standard build and the robotlink.com version of this graphic card
* there are occasional screen glitches when adjusting firmware values
* if you turn the encoder too fast and the numbers change rapidly.
* It may be because my screen ribbon cables are a bit long,
* or because this is a clone, or just a general issue.
*
* According to the Marlin Troubleshooting page https://marlinfw.org/docs/basics/troubleshooting.html
* the following lines are a starting point for fixing this,
* however I tried these values and they didn't work,
* and I don't have the time to fix this minor glitch.
*
* However if anyone else is experiencing this and wants to:
*
* 1. Iterate all these upwards (by 100 each time) until it stops glitching; and
* 2. Iterate each individually downwards by binary search until they just still work.
*
* As you can imagine, this will take a reasonable effort.
*/
// #define ST7920_DELAY_1 DELAY_NS(200) // After CLK LOW
// #define ST7920_DELAY_2 DELAY_NS(400) // After DAT
// #define ST7920_DELAY_3 DELAY_NS(200) // After CLK HIGH
#endif

//
Expand Down
15 changes: 9 additions & 6 deletions Marlin/Configuration_adv.h
Original file line number Diff line number Diff line change
Expand Up @@ -2204,9 +2204,11 @@
//#define PROBING_MARGIN_FRONT PROBING_MARGIN
//#define PROBING_MARGIN_BACK PROBING_MARGIN
#if ENABLED(DE200_HEAD_Z122)
#define PROBING_MARGIN_BACK 57
#define PROBING_MARGIN_FRONT 57
#elif ENABLED(DE200_HEAD_STD)
#define PROBING_MARGIN_BACK 21
#define PROBING_MARGIN_FRONT 21
#endif
#endif

Expand Down Expand Up @@ -2685,23 +2687,24 @@
#define PAUSE_PARK_RETRACT_FEEDRATE 60 // (mm/s) Initial retract feedrate.
#define PAUSE_PARK_RETRACT_LENGTH 4.5 // (mm) Initial retract.
// This short retract is done immediately, before parking the nozzle.
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 100 // (mm/s) Unload filament feedrate. This can be pretty fast.
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 150 // (mm/s) Unload filament feedrate. This can be pretty fast.
#define FILAMENT_CHANGE_UNLOAD_ACCEL 25 // (mm/s^2) Lower acceleration may allow a faster feedrate.
#define FILAMENT_CHANGE_UNLOAD_LENGTH 950 // (mm) The length of filament for a complete unload.
// For Bowden, the full length of the tube and nozzle.
// For direct drive, the full length of the nozzle.
// Set to 0 for manual unloading.
#define FILAMENT_CHANGE_SLOW_LOAD_FEEDRATE 5 // (mm/s) Slow move when starting load.
#define FILAMENT_CHANGE_SLOW_LOAD_LENGTH 40 // (mm) Slow length, to allow time to insert material.
// DE200 40mm gets the filament through the extruder and into the bowden tube
// 0 to disable start loading and skip to fast load only
#define FILAMENT_CHANGE_FAST_LOAD_FEEDRATE 50 // (mm/s) Load filament feedrate. This can be pretty fast.
#define FILAMENT_CHANGE_FAST_LOAD_FEEDRATE 100 // (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 840 // (mm) Load length of filament, from extruder gear to nozzle.
#define FILAMENT_CHANGE_FAST_LOAD_LENGTH 845 // (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.
#define ADVANCED_PAUSE_PURGE_FEEDRATE 2 // (mm/s) Extrude feedrate (after loading). Should be slower than load feedrate.
#define ADVANCED_PAUSE_PURGE_LENGTH 2 // (mm) Length to extrude after loading.
#define ADVANCED_PAUSE_PURGE_LENGTH 20 // (mm) Length to extrude after loading.
// Set to 0 for manual extrusion.
// Filament can be extruded repeatedly from the Filament Change menu
// until extrusion is consistent, and to purge old filament.
Expand All @@ -2711,9 +2714,9 @@
// Filament Unload does a Retract, Delay, and Purge first:
#define FILAMENT_UNLOAD_PURGE_RETRACT 10 // (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 30 // (mm) An unretract is done, then this length is purged.
#define FILAMENT_UNLOAD_PURGE_LENGTH 0 // (mm) An unretract is done, then this length is purged.
// Dagoma FILAMENTCHANGE_AUTO_INSERTION_PURGE_LENGTH
#define FILAMENT_UNLOAD_PURGE_FEEDRATE 25 // (mm/s) feedrate to purge before unload
#define FILAMENT_UNLOAD_PURGE_FEEDRATE 2 // (mm/s) feedrate to purge before unload

#define PAUSE_PARK_NOZZLE_TIMEOUT (5*60) // (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.
Expand Down

0 comments on commit d063a9c

Please sign in to comment.