95 Commits

Author SHA1 Message Date
Knutwurst
c77aacbbd9 Set build version for next release 2023-06-07 21:59:21 +02:00
Knutwurst
4206e3c4e8 Invert setSoftEndstopState logic on print stop 2023-06-07 21:39:14 +02:00
Knutwurst
dfc9cbe8b1 Change Chiron and 4MAX filament load length. 2023-06-07 18:55:48 +02:00
Knutwurst
9c7e330363 Fix AutoPowerOff menu selection. 2023-06-07 18:02:01 +02:00
Knutwurst
580d56bd37 Fix PowerOffFlag handling. 2023-06-07 16:16:06 +02:00
Knutwurst
588f703684 Add Special Menu BLTouch HighSpeed Mode selection 2023-06-07 12:39:56 +02:00
Knutwurst
c48395f801 Fix 4MAX build 2023-06-07 09:09:14 +02:00
Knutwurst
f7060d5524 Add more TFT debugging messages. 2023-06-07 09:03:20 +02:00
Knutwurst
acee1592c9 Add setSoftEndstopState to TFT print and stop functions. 2023-06-07 08:49:56 +02:00
Knutwurst
442f66c145 Disable soft endstops while printing, so that mesh points below 0 can be reached. 2023-06-07 08:48:05 +02:00
Knutwurst
b5b3da41f5 Disable software endstops when manual or auto leveling is activated, so the nozzle can be set to a lower point than the endstop. 2023-06-07 08:35:43 +02:00
Knutwurst
38edd9375b Revert "Disable automatic mesh adjustment when Z offset is altered."
This reverts commit fb7a29ce8e.
2023-06-07 08:14:28 +02:00
Knutwurst
fb7a29ce8e Disable automatic mesh adjustment when Z offset is altered. 2023-06-06 21:44:08 +02:00
Knutwurst
056dd71494 Substitute LCD_SERIAL.println() with LCD_SERIAL.print(,2) to ensure display compatibility. 2023-06-06 19:06:50 +02:00
Knutwurst
09b448773f Revert define, because it breaks the build. 2023-06-06 17:01:43 +02:00
Knutwurst
223df2956a Fix display of single mesh points 2023-06-06 17:01:06 +02:00
Knutwurst
9376b95148 Fix live Z offset. 2023-06-06 16:46:09 +02:00
Knutwurst
fbd1b7b9bf Fix PowerOff. 2023-06-03 21:15:52 +02:00
Knutwurst
61fba37678 Reenable auto power off on 4MAX Pro 2.0 2023-06-03 19:45:48 +02:00
Knutwurst
7b0aa6ec6a Code cleanup. 2023-06-03 19:45:21 +02:00
Knutwurst
70ccd6a957 Refactor Chiron A31 Adjust all Probe Points routine 2023-06-03 19:29:59 +02:00
Knutwurst
6bc410a0e3 Unify special menu defines for both display types. Also fix NoSD message and error, when no SD card is present. 2023-06-03 18:51:02 +02:00
Knutwurst
011752e02a Improve file list rendering speed. 2023-06-03 09:20:54 +02:00
Knutwurst
471d7f47a0 Remove unnecessary code from get-sd-list routine. 2023-06-03 00:20:25 +02:00
Knutwurst
0670fb9253 Revert from const char* to char* because it breaks Anycubic 1.0 without SD card. 2023-06-02 22:57:16 +02:00
Knutwurst
501ebfd159 Fix load fw defaults gcode in special menu. 2023-06-02 22:23:53 +02:00
Knutwurst
dedc00fb0d Reenable automatic filament feed on M600, because a little purge is needed to enable the continue button. 2023-06-02 19:42:13 +02:00
Knutwurst
acc3c74905 New load/unload values for chiron. 2023-06-02 19:02:36 +02:00
Knutwurst
d1f269d654 Fix build 2023-06-02 18:59:12 +02:00
Knutwurst
d4fe673b96 Add M600 config for CHIRON. 2023-06-02 18:54:52 +02:00
Knutwurst
862ac308c7 Clean dead code and disable debugging messages. 2023-06-02 18:18:49 +02:00
Knutwurst
75c541cafb Change preheat temperatures. 2023-06-02 18:02:17 +02:00
Knutwurst
bb4ee37676 Set release version and clean up some code snippets. 2023-06-02 17:42:29 +02:00
Knutwurst
bf80c9b8dd Suppress AUTO_ASSIGN_WARNING on Chiron and 4MAX builds. 2023-06-02 17:01:25 +02:00
Knutwurst
79eaf1a8b5 Allow manual probing on Chiron. 2023-06-02 16:57:27 +02:00
Knutwurst
ff5b808dea Add new mediaPrintingState for probing, which is needed by the chiron routine. 2023-06-02 16:48:10 +02:00
Knutwurst
37ef0ca742 Add more debug output. 2023-06-02 13:14:48 +02:00
Knutwurst
fd84ec3523 Add TODO in case A31 - Adjust all Probe Points 2023-06-02 11:16:11 +02:00
Knutwurst
afa411f065 Substitute settings() with command injection. 2023-06-02 08:52:05 +02:00
Knutwurst
d93ff45af6 Set build version and date. Also enable TFT debugging. 2023-06-02 08:48:41 +02:00
Knutwurst
8fb71f482e Fix build 2023-06-02 08:47:06 +02:00
Knutwurst
325bcb7e01 Rebuild Chiron leveling feature. 2023-06-02 08:38:28 +02:00
Knutwurst
0af71b9817 Rename CodeSeen to FindToken. 2023-06-01 22:13:43 +02:00
Knutwurst
8e828a48b9 Revert duplicate Z2 pin definitions on 4MAX and Chiron. 2023-06-01 22:01:17 +02:00
Knutwurst
a356788dc7 Add fix for .GCO files on DGUS2 Clone Display 2023-06-01 19:27:01 +02:00
Knutwurst
6499c6b7c3 Simplify non-printable char filter loop. 2023-06-01 18:42:30 +02:00
Knutwurst
fda51c1c46 Remove unneccessary code in the filename check. 2023-06-01 17:13:17 +02:00
Knutwurst
0c25c876d3 Some refactoring and cleanup. No breaking changes. 2023-06-01 09:14:14 +02:00
Knutwurst
067fe2f074 Bump version and date for next major release. 2023-05-31 21:21:39 +02:00
Knutwurst
e8d38ba955 Enable alphabetical SD card file sorting. 2023-05-31 21:19:37 +02:00
Knutwurst
6d257896c0 Beautify DGUS2 Clone file display. Might need some refactoring. 2023-05-31 16:57:20 +02:00
Knutwurst
2af4a2d4e6 Fix sanitization of directory names on Anycubic 1.0 Display. 2023-05-31 15:19:18 +02:00
Knutwurst
c83dad91f3 Z2 Stepper pin definitions for CHIRON and 4MAX. 2023-05-30 22:10:31 +02:00
Knutwurst
429b8cc1fa Fix warnings in 4MAX Build 2023-05-30 22:00:27 +02:00
Knutwurst
2e030524e2 Disable debug output. 2023-05-30 21:18:41 +02:00
Knutwurst
45cbc380d9 Update build date. 2023-05-30 19:26:27 +02:00
Knutwurst
cf0611a7d9 Use const char* because it's not altered past that point. 2023-05-30 17:33:39 +02:00
Knutwurst
9c4c58235b Fix compiler warnings for Chiron build and Directory selection on Anycubic 1.0 displays. 2023-05-30 16:46:30 +02:00
Knutwurst
75ffa32980 Use SENDLINE instead of SEND to create directory name on anycubic 1.0 display. 2023-05-30 16:07:26 +02:00
Knutwurst
e0d858d812 Fix misuse of const char pointer by creating a new string which represents the filename. 2023-05-30 15:09:46 +02:00
Knutwurst
ad86d96a31 Cleanup 2023-05-30 09:22:25 +02:00
Knutwurst
6c4a0a887a Remove old PrintList() implementation + some cleanup 2023-05-29 20:48:58 +02:00
Knutwurst
e940c218cd Do not remove current selection if Special Menu is enabled, so items can be tapped multiple times. 2023-05-29 20:40:27 +02:00
Knutwurst
1df0ee59d2 Set correct filament sensor pins for chiron in correspondig header and enable new file list implementation. 2023-05-29 20:34:08 +02:00
Knutwurst
9244ea5890 New file list render implementation - WIP! 2023-05-29 20:07:06 +02:00
Knutwurst
8e34d7dc7c Fix 4MAXP2 Build. 2023-05-29 19:27:55 +02:00
Knutwurst
7fbbbba752 Fix Typo 2023-05-29 14:20:28 +02:00
Knutwurst
2b5816037a Add custom M600 configuration for DirectExtruder 4MAX Pro 2.0. 2023-05-29 12:35:07 +02:00
Knutwurst
e008a96269 Fix Chiron and 4MAX Pro 2.0 Filament rundout sensor. 2023-05-29 11:39:00 +02:00
Knutwurst
952e0db31e Fix that you could not get out of a selected directory. Refactor Touchscreen file handling. 2023-05-29 11:20:22 +02:00
Knutwurst
69efa3376a Set lowest point for BLTouch from 2 to 10 mm. 2023-05-28 22:57:50 +02:00
Knutwurst
b3f22b2b11 Bump builddate. 2023-05-28 17:29:59 +02:00
Knutwurst
bb8d41c0e1 Disable BLTouch Highspeed Mode by default (can be enabled via M401 S1) 2023-05-28 17:28:12 +02:00
Knutwurst
ae82913d1f Fix special menu not shown, when SD card is not inserted (Fix for #463) 2023-05-28 17:13:20 +02:00
Knutwurst
22dedaeb81 Use M600 for FilamentChange instead of regular pause() 2023-05-26 18:39:22 +02:00
Knutwurst
2b57ebccaa Add Heater Error Check. 2023-05-26 10:08:06 +02:00
Knutwurst
4a3071aa56 Some thermalManager substitutions. 2023-05-26 10:03:24 +02:00
Knutwurst
595bdd00cc Use ExtUI injectCommands() instead of queue.inject_P for PSTR. 2023-05-26 09:50:26 +02:00
Knutwurst
d5aa1e1823 Massive code cleanup by using internal ExtUI methods. 2023-05-25 21:06:45 +02:00
Knutwurst
570c419165 Use toolhead/nozzle paring position when aborting the SD print, instead of G28 homing. 2023-05-24 23:06:13 +02:00
Knutwurst
05a706dfb6 Fix print time display. 2023-05-24 22:38:14 +02:00
Knutwurst
7cc485ae3e Fix host action commands conflicting with integrated filament sensor 2023-05-24 19:36:20 +02:00
Knutwurst
5fbd3337b6 Disable Touchscreen debugging messages 2023-05-24 19:27:45 +02:00
Knutwurst
62fcc2ff35 Fix filament sensor, but disable host action commands. 2023-05-24 19:22:58 +02:00
Knutwurst
c01193bf40 Finally fix print/pause/resume and M600 filament change. 2023-05-24 14:42:09 +02:00
Knutwurst
a019c471d1 Code cleanup. 2023-05-23 22:18:21 +02:00
Knutwurst
a2137565e5 Fix Chiron build errors. 2023-05-23 15:43:23 +02:00
Knutwurst
52dc811774 Lots of changes regadring the ExtUI implementation, Filament runout, Start, Stop, Pause and Resume. 2023-05-23 15:22:25 +02:00
Knutwurst
4d6715761d Revert c2c950b and 41c1600 and put changes into 36c8aee to recreate the 1.4.x filane behaviour. This should fix #453 and #455. It's untested atm and can include bugs. 2023-04-23 22:11:42 +02:00
Knutwurst
9f93a2cc5d Streamline Github workflows so tickets stay open longer. 2023-04-23 21:43:36 +02:00
Knutwurst
fb281baa27 Update builddate and Version 2023-01-03 13:47:14 +01:00
Oliver Köster
640fce0c02 Merge pull request #409 from stklcode/feature/extui
make custom Anycubic touchscreen implementation an ExtUI module
2023-01-03 13:00:29 +01:00
Knutwurst
33a8c67631 Update builddate 2022-12-23 18:53:05 +01:00
Stefan Kalscheuer
b115276fee move display notification after leveling for Chiron into ExtUI hook 2022-12-23 17:51:20 +01:00
Stefan Kalscheuer
36c8aee75b make custom Anycubic touchscreen implementation an ExtUI module
Start migration to ExtUI module. We do not yet change much of the custom
logic, but this brings us closer to upstream and allows use of some
integration hooks with less patching required.
2022-12-23 17:29:38 +01:00
20 changed files with 1125 additions and 1456 deletions

View File

@@ -21,7 +21,7 @@ jobs:
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
stale-issue-message: 'This issue is stale because it has been open 30 days with no activity. Remove stale label / comment or this will be closed in 5 days.'
days-before-stale: 30
days-before-close: 5
days-before-stale: 300
days-before-close: 30
stale-issue-label: 'stale-closing-soon'
exempt-issue-labels: 'T: Feature Request'

View File

@@ -21,7 +21,7 @@ jobs:
with:
github-token: ${{ github.token }}
process-only: 'issues'
issue-lock-inactive-days: '60'
issue-lock-inactive-days: '300'
issue-exclude-created-before: ''
issue-exclude-labels: 'no-locking'
issue-lock-labels: ''

View File

@@ -37,9 +37,6 @@
*/
#define CONFIGURATION_H_VERSION 02010200
#define ANYCUBIC_TOUCHSCREEN
#if DISABLED(KNUTWURST_4MAXP2)
#define ANYCUBIC_FILAMENT_RUNOUT_SENSOR
#endif
#define KNUTWURST_SPECIAL_MENU
#define KNUTWURST_SPECIAL_MENU_WO_SD
// #define ANYCUBIC_TFT_DEBUG
@@ -62,6 +59,7 @@
*/
#if ENABLED(KNUTWURST_CHIRON)
#define TRIGORILLA_MAPPING_CHIRON
#define NO_AUTO_ASSIGN_WARNING
#else
#define TRIGORILLA_MAPPING_I3MEGA
#define SWAP_Z_MOTORS
@@ -97,6 +95,7 @@
*/
#if ENABLED(KNUTWURST_4MAXP2)
#define ANYCUBIC_4_MAX_PRO_ENDSTOPS
#define NO_AUTO_ASSIGN_WARNING
#endif
@@ -1942,7 +1941,7 @@
#define Z_CLEARANCE_MULTI_PROBE 5 // Z Clearance between multiple probes
// #define Z_AFTER_PROBING 5 // Z position after probing is done
#define Z_PROBE_LOW_POINT -2 // Farthest distance below the trigger-point to go before stopping
#define Z_PROBE_LOW_POINT -10 // Farthest distance below the trigger-point to go before stopping
// For M851 give a range for adjusting the Z probe offset
#define Z_PROBE_OFFSET_RANGE_MIN -50
@@ -2380,15 +2379,15 @@
* 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_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.
#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.
// This is automatically enabled for MIXING_EXTRUDERs.
// Override individually if the runout sensors vary
@@ -2854,14 +2853,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_BED 70
#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 110
#define PREHEAT_2_TEMP_BED 90
// #define PREHEAT_2_TEMP_CHAMBER 35
#define PREHEAT_2_FAN_SPEED 0 // Value from 0 to 255

View File

@@ -989,7 +989,7 @@
*
* Set the default state here, change with 'M401 S' or UI, use M500 to save, M502 to reset.
*/
#define BLTOUCH_HS_MODE true
#define BLTOUCH_HS_MODE false
// Safety: Enable voltage mode settings in the LCD menu.
// #define BLTOUCH_LCD_VOLTAGE_MENU
@@ -1551,7 +1551,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 "G27" // 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
@@ -1611,7 +1611,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)
@@ -2658,29 +2658,73 @@
*/
#define ADVANCED_PAUSE_FEATURE
#if ENABLED(ADVANCED_PAUSE_FEATURE)
#define PAUSE_PARK_RETRACT_FEEDRATE 60 // (mm/s) Initial retract feedrate.
#define PAUSE_PARK_RETRACT_LENGTH 4 // (mm) Initial retract.
// This short retract is done immediately, before parking the nozzle.
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 30 // (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 555 // (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 6 // (mm/s) Slow move when starting load.
#define FILAMENT_CHANGE_SLOW_LOAD_LENGTH 0 // (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 30 // (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 538 // (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.
#if ENABLED(KNUTWURST_4MAXP2)
#define PAUSE_PARK_RETRACT_FEEDRATE 40 // (mm/s) Initial retract feedrate.
#define PAUSE_PARK_RETRACT_LENGTH 4 // (mm) Initial retract.
// This short retract is done immediately, before parking the nozzle.
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 30 // (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 5 // (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 6 // (mm/s) Slow move when starting load.
#define FILAMENT_CHANGE_SLOW_LOAD_LENGTH 0 // (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 30 // (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 10 // (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.
#endif
#if ENABLED(KNUTWURST_CHIRON)
#define PAUSE_PARK_RETRACT_FEEDRATE 40 // (mm/s) Initial retract feedrate.
#define PAUSE_PARK_RETRACT_LENGTH 4 // (mm) Initial retract.
// This short retract is done immediately, before parking the nozzle.
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 30 // (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 5 // (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 6 // (mm/s) Slow move when starting load.
#define FILAMENT_CHANGE_SLOW_LOAD_LENGTH 0 // (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 30 // (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 550 // (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.
#endif
#if NONE(KNUTWURST_CHIRON, KNUTWURST_4MAXP2)
#define PAUSE_PARK_RETRACT_FEEDRATE 40 // (mm/s) Initial retract feedrate.
#define PAUSE_PARK_RETRACT_LENGTH 4 // (mm) Initial retract.
// This short retract is done immediately, before parking the nozzle.
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 30 // (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 555 // (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 6 // (mm/s) Slow move when starting load.
#define FILAMENT_CHANGE_SLOW_LOAD_LENGTH 0 // (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 30 // (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 538 // (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.
#endif
#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.
// 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.
// #define ADVANCED_PAUSE_RESUME_PRIME 0 // (mm) Extra distance to prime nozzle after returning from park.
#define ADVANCED_PAUSE_FANS_PAUSE // Turn off print-cooling fans while the machine is paused.
@@ -2690,7 +2734,7 @@
#define FILAMENT_UNLOAD_PURGE_LENGTH 8 // (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 60 // (seconds) Time limit before the nozzle is turned off for safety.
#define PAUSE_PARK_NOZZLE_TIMEOUT 300 // (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_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.
@@ -4012,7 +4056,7 @@
#define HOST_PAUSE_M76 // Tell the host to pause in response to M76
#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
#define HOST_STATUS_NOTIFICATIONS // Send some status messages to the host as notifications
#endif
// #define HOST_START_MENU_ITEM // Add a menu item that tells the host to start
// #define HOST_SHUTDOWN_MENU_ITEM // Add a menu item that tells the host to shut down

View File

@@ -252,12 +252,6 @@
#include "tests/marlin_tests.h"
#endif
// PATCH START: Knutwurst
#if ENABLED(ANYCUBIC_TOUCHSCREEN)
#include "lcd/anycubic_touchscreen.h"
#endif
// PATCH END: Knutwurst
PGMSTR(M112_KILL_STR, "M112 Shutdown");
MarlinState marlin_state = MF_INITIALIZING;
@@ -353,7 +347,7 @@ void startOrResumeJob() {
TERN_(GCODE_REPEAT_MARKERS, repeat.reset());
TERN_(CANCEL_OBJECTS, cancelable.reset());
TERN_(LCD_SHOW_E_TOTAL, e_move_accumulator = 0);
#if ENABLED(SET_REMAINING_TIME)
#if BOTH(LCD_SET_PROGRESS_MANUALLY, USE_M73_REMAINING_TIME)
ui.reset_remaining_time();
#endif
}
@@ -396,88 +390,6 @@ void startOrResumeJob() {
#endif // SDSUPPORT
// PATCH START: Knutwurst
#ifdef ENDSTOP_BEEP
void EndstopBeep() {
static char last_status = ((READ(X_MIN_PIN) << 2) | (READ(Y_MIN_PIN) << 1) | READ(X_MAX_PIN));
static unsigned char now_status;
now_status = ((READ(X_MIN_PIN) << 2) | (READ(Y_MIN_PIN) << 1) | READ(X_MAX_PIN)) & 0xff;
if (now_status<last_status) {
static millis_t endstop_ms = millis() + 300UL;
if (ELAPSED(millis(), endstop_ms)) {
buzzer.tone(60, 2000);
}
last_status = now_status;
} else if (now_status != last_status) {
last_status=now_status;
}
}
#endif
#if HAS_FILAMENT_SENSOR
void event_filament_runout() {
#if ENABLED(ADVANCED_PAUSE_FEATURE)
if (did_pause_print) return; // Action already in progress. Purge triggered repeated runout.
#endif
#if ENABLED(EXTENSIBLE_UI)
ExtUI::onFilamentRunout(ExtUI::getActiveTool());
#endif
#if EITHER(HOST_PROMPT_SUPPORT, HOST_ACTION_COMMANDS)
const char tool = '0'
#if NUM_RUNOUT_SENSORS > 1
+ active_extruder
#endif
;
#endif
//action:out_of_filament
#if ENABLED(HOST_PROMPT_SUPPORT)
host_prompt_reason = PROMPT_FILAMENT_RUNOUT;
host_action_prompt_end();
host_action_prompt_begin(PSTR("FilamentRunout T"), false);
SERIAL_CHAR(tool);
SERIAL_EOL();
host_action_prompt_show();
#endif
const bool run_runout_script = !runout.host_handling;
#if ENABLED(HOST_ACTION_COMMANDS)
if (run_runout_script
&& ( strstr(FILAMENT_RUNOUT_SCRIPT, "M600")
|| strstr(FILAMENT_RUNOUT_SCRIPT, "M125")
#if ENABLED(ADVANCED_PAUSE_FEATURE)
|| strstr(FILAMENT_RUNOUT_SCRIPT, "M25")
#endif
)
) {
host_action_paused(false);
} else {
// Legacy Repetier command for use until newer version supports standard dialog
// To be removed later when pause command also triggers dialog
#ifdef ACTION_ON_FILAMENT_RUNOUT
host_action(PSTR(ACTION_ON_FILAMENT_RUNOUT " T"), false);
SERIAL_CHAR(tool);
SERIAL_EOL();
#endif
host_action_pause(false);
}
SERIAL_ECHOPGM(" " ACTION_REASON_ON_FILAMENT_RUNOUT " ");
SERIAL_CHAR(tool);
SERIAL_EOL();
#endif // HOST_ACTION_COMMANDS
if (run_runout_script) {
queue.inject_P(PSTR(FILAMENT_RUNOUT_SCRIPT));
}
}
#endif // HAS_FILAMENT_SENSOR
// PATCH END: Knutwurst
/**
* Minimal management of Marlin's core activities:
@@ -493,12 +405,6 @@ void EndstopBeep() {
* - Pulse FET_SAFETY_PIN if it exists
*/
inline void manage_inactivity(const bool no_stepper_sleep=false) {
// PATCH START: Knutwurst
#if ENABLED(ANYCUBIC_TOUCHSCREEN) && ENABLED(ANYCUBIC_FILAMENT_RUNOUT_SENSOR)
AnycubicTouchscreen.FilamentRunout();
#endif
// PATCH END: Knutwurst
queue.get_available_commands();
const millis_t ms = millis();
@@ -889,16 +795,6 @@ void idle(bool no_stepper_sleep/*=false*/) {
// Max7219 heartbeat, animation, etc
TERN_(MAX7219_DEBUG, max7219.idle_tasks());
// PATCH START: Knutwurst
#ifdef ANYCUBIC_TOUCHSCREEN
AnycubicTouchscreen.CommandScan();
#endif
#ifdef ENDSTOP_BEEP
EndstopBeep();
#endif
// PATCH END: Knutwurst
// Return if setup() isn't completed
if (marlin_state == MF_INITIALIZING) goto IDLE_DONE;
@@ -1011,12 +907,6 @@ void kill(FSTR_P const lcd_error/*=nullptr*/, FSTR_P const lcd_component/*=nullp
// "Error:Printer halted. kill() called!"
SERIAL_ERROR_MSG(STR_ERR_KILLED);
// PATCH START: Knutwurst
#ifdef ANYCUBIC_TOUCHSCREEN
AnycubicTouchscreen.KillTFT();
#endif
// PATCH END: Knutwurst
#ifdef ACTION_ON_KILL
hostui.kill();
#endif
@@ -1292,12 +1182,6 @@ void setup() {
#endif
SERIAL_ECHOLNPGM("start");
// PATCH START: Knutwurst
#ifdef ANYCUBIC_TOUCHSCREEN
AnycubicTouchscreen.Setup();
#endif
// PATCH END: Knutwurst
// Set up these pins early to prevent suicide
#if HAS_KILL
SETUP_LOG("KILL_PIN");
@@ -1796,13 +1680,6 @@ void loop() {
endstops.event_handler();
// PATCH START: Knutwurst
idle();
#ifdef ANYCUBIC_TOUCHSCREEN
AnycubicTouchscreen.CommandScan();
#endif
// PATCH END: Knutwurst
TERN_(HAS_TFT_LVGL_UI, printer_state_polling());
TERN_(MARLIN_TEST_BUILD, runPeriodicTests());

View File

@@ -576,17 +576,7 @@ void wait_for_confirmation(const bool is_reload/*=false*/, const int8_t max_beep
IF_DISABLED(PAUSE_REHEAT_FAST_RESUME, wait_for_user = true);
nozzle_timed_out = false;
/*
#ifdef ANYCUBIC_TOUCHSCREEN
if (AnycubicTouchscreen.ai3m_pause_state > 3) {
AnycubicTouchscreen.ai3m_pause_state -= 3;
#ifdef ANYCUBIC_TFT_DEBUG
SERIAL_ECHOPGM(" DEBUG: NTO - AI3M Pause State set to: ", AnycubicTouchscreen.ai3m_pause_state);
SERIAL_EOL();
#endif
}
#endif
*/
first_impatient_beep(max_beep_count);
}
idle_no_sleep();

View File

@@ -24,7 +24,7 @@
#if BOTH(ANYCUBIC_TFT_DEBUG, KNUTWURST_DGUS2_TFT)
#include "../../lcd/anycubic_touchscreen.h"
#include "../../lcd/extui/knutwurst/anycubic_touchscreen.h"
#include "../gcode.h"
void GcodeSuite::M9999() {

View File

@@ -806,11 +806,6 @@ G29_TYPE GcodeSuite::G29() {
bedlevel.set_grid(abl.gridSpacing, abl.probe_position_lf);
COPY(bedlevel.z_values, abl.z_values);
TERN_(IS_KINEMATIC, bedlevel.extrapolate_unprobed_bed_level());
#if ENABLED(KNUTWURST_TFT_LEVELING)
LCD_SERIAL.print("J25\r\n"); // Autoleveling done!
#endif
bedlevel.refresh_bed_level();
bedlevel.print_leveling_grid();

View File

@@ -31,7 +31,7 @@
// PATCH START: Knutwurst
#if ENABLED(ANYCUBIC_TOUCHSCREEN)
#include "../../lcd/anycubic_touchscreen.h"
#include "../../lcd/extui/knutwurst/anycubic_touchscreen.h"
#endif
// PATCH END: Knutwurst

View File

@@ -30,13 +30,6 @@
#include "../../../module/printcounter.h"
#include "../../../lcd/marlinui.h"
// PATCH START: Knutwurst
#ifdef ANYCUBIC_TOUCHSCREEN
#include "../../../lcd/anycubic_touchscreen.h"
#include "../../../sd/cardreader.h"
#endif
// PATCH END: Knutwurst
#if HAS_MULTI_EXTRUDER
#include "../../../module/tool_change.h"
#endif
@@ -78,29 +71,6 @@
* Default values are used for omitted arguments.
*/
void GcodeSuite::M600() {
// PATCH START: Knutwurst
#ifdef ANYCUBIC_TOUCHSCREEN
#ifdef SDSUPPORT
if (card.isPrinting()) { // are we printing from sd?
if (AnycubicTouchscreen.ai3m_pause_state < 2) {
AnycubicTouchscreen.ai3m_pause_state = 2;
#ifdef ANYCUBIC_TFT_DEBUG
SERIAL_ECHOPGM(" DEBUG: M600 - AI3M Pause State set to: ", AnycubicTouchscreen.ai3m_pause_state);
SERIAL_EOL();
#endif
}
#ifdef ANYCUBIC_TFT_DEBUG
SERIAL_ECHOLNPGM("DEBUG: Enter M600 TFTstate routine");
#endif
AnycubicTouchscreen.TFTstate = ANYCUBIC_TFT_STATE_SDPAUSE_REQ; // enter correct display state to show resume button
#ifdef ANYCUBIC_TFT_DEBUG
SERIAL_ECHOLNPGM("DEBUG: Set TFTstate to SDPAUSE_REQ");
#endif
}
#endif
#endif
// PATCH END: Knutwurst
#if ENABLED(MIXING_EXTRUDER)
const int8_t eindex = get_target_e_stepper_from_command();
if (eindex < 0) return;

View File

@@ -38,10 +38,6 @@
#include "../../MarlinCore.h" // for startOrResumeJob, etc.
#ifdef ANYCUBIC_TOUCHSCREEN
#include "../../lcd/anycubic_touchscreen.h"
#endif
#if ENABLED(PRINTJOB_TIMER_AUTOSTART)
#include "../../module/printcounter.h"
#if ENABLED(CANCEL_OBJECTS)
@@ -133,10 +129,6 @@ void GcodeSuite::M104_M109(const bool isM109) {
thermalManager.set_heating_message(target_extruder, !isM109 && got_temp);
}
#ifdef ANYCUBIC_TOUCHSCREEN
AnycubicTouchscreen.HeatingStart();
#endif
TERN_(AUTOTEMP, planner.autotemp_M104_M109());
if (isM109 && got_temp)
@@ -144,11 +136,6 @@ void GcodeSuite::M104_M109(const bool isM109) {
// flush the serial buffer after heating to prevent lockup by m105
SERIAL_FLUSH();
#ifdef ANYCUBIC_TOUCHSCREEN
AnycubicTouchscreen.CommandScan();
AnycubicTouchscreen.BedHeatingDone();
#endif
}
#endif // EXTRUDERS

View File

@@ -471,7 +471,7 @@
#endif
// Extensible UI serial touch screens. (See src/lcd/extui)
#if ANY(HAS_DGUS_LCD, MALYAN_LCD, TOUCH_UI_FTDI_EVE, ANYCUBIC_LCD_I3MEGA, ANYCUBIC_LCD_CHIRON, NEXTION_TFT)
#if ANY(HAS_DGUS_LCD, MALYAN_LCD, TOUCH_UI_FTDI_EVE, ANYCUBIC_LCD_I3MEGA, ANYCUBIC_LCD_CHIRON, ANYCUBIC_TOUCHSCREEN, NEXTION_TFT) // PATCH: knutwurst
#define IS_EXTUI 1
#define EXTENSIBLE_UI
#endif

View File

@@ -41,10 +41,10 @@
* here we define this default string as the date where the latest release
* version was tagged.
*/
#define CUSTOM_BUILD_VERSION "1.5.0-b2"
#define CUSTOM_BUILD_VERSION "1.5.0"
#ifndef STRING_DISTRIBUTION_DATE
#define STRING_DISTRIBUTION_DATE "2022-12-21"
#define STRING_DISTRIBUTION_DATE "2023-06-07"
#endif
/**

View File

@@ -21,19 +21,8 @@
#ifndef anycubic_touchscreen_h
#define anycubic_touchscreen_h
// #include <stdio.h>
// #include "../inc/MarlinConfig.h"
// #include "../module/configuration_store.h"
#include "./src/inc/MarlinConfigPre.h"
#include "./src/feature/bedlevel/bedlevel.h"
#include "src/module/probe.h"
enum axis_t : uint8_t { X, Y, Z, X2, Y2, Z2, Z3, Z4 };
enum extruder_t : uint8_t { E0, E1, E2, E3, E4, E5, E6, E7 };
void setAxisPosition_mm(const float, const axis_t, const feedRate_t=0);
void initializeGrid();
#include "../../../inc/MarlinConfigPre.h"
#include "../../../module/probe.h"
char *itostr2(const uint8_t &x);
@@ -47,230 +36,186 @@ char *itostr2(const uint8_t &x);
#define MSG_MY_VERSION CUSTOM_BUILD_VERSION
#define MAX_PRINTABLE_FILENAME_LEN 26
#if ENABLED(KNUTWURST_CHIRON)
#define FILAMENT_RUNOUT_PIN 33
#else
#define FILAMENT_RUNOUT_PIN 19
#endif
enum AnycubicMediaPrintState {
AMPRINTSTATE_NOT_PRINTING,
AMPRINTSTATE_PRINTING,
AMPRINTSTATE_PAUSE_REQUESTED,
AMPRINTSTATE_PAUSED,
AMPRINTSTATE_STOP_REQUESTED,
AMPRINTSTATE_PROBING
};
enum AnycubicMediaPauseState {
AMPAUSESTATE_NOT_PAUSED,
AMPAUSESTATE_PARKING,
AMPAUSESTATE_PARKED,
AMPAUSESTATE_FILAMENT_OUT,
AMPAUSESTATE_FILAMENT_PURGING,
AMPAUSESTATE_HEATER_TIMEOUT,
AMPAUSESTATE_REHEATING,
AMPAUSESTATE_REHEAT_FINISHED,
AMPAUSESTATE_PAUSED
};
#define SM_DIR_UP_S "DIR_UP~1.GCO"
#define SM_SPECIAL_MENU_S "<SPECI~1.GCO"
#define SM_PID_HOTEND_S "<PIDTU~1.GCO"
#define SM_PID_BED_S "<PIDTU~2.GCO"
#define SM_SAVE_EEPROM_S "<SAVEE~1.GCO"
#define SM_LOAD_DEFAULTS_S "<LOADF~1.GCO"
#define SM_PREHEAT_BED_S "<PREHE~1.GCO"
#define SM_MESH_MENU_S "<MESHL~1.GCO"
#define SM_MESH_START_S "<START~1.GCO"
#define SM_MESH_NEXT_S "<NEXTM~1.GCO"
#define SM_Z_UP_01_S "<ZUP01~1.GCO"
#define SM_Z_DN_01_S "<ZDOWN~1.GCO"
#define SM_Z_UP_002_S "<ZUP00~1.GCO"
#define SM_Z_DN_002_S "<ZDOWN~2.GCO"
#define SM_Z_UP_001_S "<ZUP00~2.GCO"
#define SM_Z_DN_001_S "<ZDOWN~3.GCO"
#define SM_BLTOUCH_S "<BLTOU~1.GCO"
#define SM_RESETLV_S "<RSTLV~1.GCO"
#define SM_PAUSE_S "<FILCH~2.GCO"
#define SM_RESUME_S "<FILCH~1.GCO"
#define SM_DIS_FILSENS_S "<DISAB~1.GCO"
#define SM_EN_FILSENS_S "<ENABL~1.GCO"
#define SM_EXIT_S "<EXIT_~1.GCO"
#define SM_BACK_S "<BACK_~1.GCO"
#define SM_FLOWMENU_S "<SETFLO1.GCO"
#define SM_FLOW_DISP_S "<FLDISPL.GCO"
#define SM_FLOW_UP_S "<UPFLOW1.GCO"
#define SM_FLOW_DN_S "<DWNFLOW.GCO"
#define SM_FLOW_EXIT_S "<EXTFLW1.GCO"
#define SM_EZLVL_MENU_S "<EZLVLM1.GCO"
#define SM_EZLVL_P1_S "<EZLPA01.GCO"
#define SM_EZLVL_P2_S "<EZLPB01.GCO"
#define SM_EZLVL_P3_S "<EZLPC01.GCO"
#define SM_EZLVL_P4_S "<EZLPD01.GCO"
#define SM_EZLVL_EXIT_S "<EZLEXT1.GCO"
#define SM_BLTZMENU_S "<SETOFZ0.GCO"
#define SM_BLTZ_DISP_S "<OFZDSP0.GCO"
#define SM_BLTZ_UP_S "<UPOFFZ0.GCO"
#define SM_BLTZ_DN_S "<DOWNOFZ.GCO"
#define SM_BLTZ_EXIT_S "<EXTABLM.GCO"
#define SM_HS_DISABLE_S "<HSDISAB.GCO"
#define SM_HS_ENABLE_S "<HSENABL.GCO"
#define ANYCUBIC_TFT_STATE_IDLE 0
#define ANYCUBIC_TFT_STATE_SDPRINT 1
#define ANYCUBIC_TFT_STATE_SDPAUSE 2
#define ANYCUBIC_TFT_STATE_SDPAUSE_REQ 3
#define ANYCUBIC_TFT_STATE_SDPAUSE_OOF 4
#define ANYCUBIC_TFT_STATE_SDSTOP_REQ 5
#define ANYCUBIC_TFT_STATE_SDOUTAGE 99
#if DISABLED(KNUTWURST_DGUS2_TFT)
#define SM_DIR_UP_L "/.."
#define SM_DIR_UP_S ".."
#define SM_SPECIAL_MENU_L "<Special Menu>"
#define SM_SPECIAL_MENU_S "<SPECM>"
#define SM_PID_HOTEND_L "<PID Tune Hotend>"
#define SM_PID_HOTEND_S "<PIDHE>"
#define SM_PID_BED_L "<PID Tune Ultrabase>"
#define SM_PID_BED_S "<PIDUB>"
#define SM_SAVE_EEPROM_L "<Save EEPROM>"
#define SM_SAVE_EEPROM_S "<SAVEE>"
#define SM_LOAD_DEFAULTS_L "<Load FW Defaults>"
#define SM_LOAD_DEFAULTS_S "<LDDEF>"
#define SM_PREHEAT_BED_L "<Preheat Ultrabase>"
#define SM_PREHEAT_BED_S "<PREHE>"
#define SM_MESH_MENU_L "<Mesh Leveling>"
#define SM_MESH_MENU_S "<MESHL>"
#define SM_MESH_START_L "<Start Mesh Leveling>"
#define SM_MESH_START_S "<SMESH>"
#define SM_MESH_NEXT_L "<Next Mesh Point>"
#define SM_MESH_NEXT_S "<NEXTM>"
#define SM_Z_UP_01_L "<Z Up 0.1>"
#define SM_Z_UP_01_S "<ZUP01>"
#define SM_Z_DN_01_L "<Z Down 0.1>"
#define SM_Z_DN_01_S "<ZDN01>"
#define SM_Z_UP_002_L "<Z Up 0.02>"
#define SM_Z_UP_002_S "<ZUP002>"
#define SM_Z_DN_002_L "<Z Down 0.02>"
#define SM_Z_DN_002_S "<ZDN002>"
#define SM_Z_UP_001_L "<Z Up 0.01>"
#define SM_Z_UP_001_S "<ZUP001>"
#define SM_Z_DN_001_L "<Z Down 0.01>"
#define SM_Z_DN_001_S "<ZDN001>"
#define SM_BLTOUCH_L "<Start Auto Leveling>"
#define SM_BLTOUCH_S "<BLTCH>"
#define SM_RESETLV_L "<Reset Level Grid>"
#define SM_RESETLV_S "<RSTLV>"
#define SM_PAUSE_L "<Fil. Change Pause>"
#define SM_PAUSE_S "<PAUSE>"
#define SM_RESUME_L "<Fil. Change Resume>"
#define SM_RESUME_S "<RESUM>"
#define SM_DIS_FILSENS_L "<Disable Fil. Sensor>"
#define SM_DIS_FILSENS_S "<DISSEN>"
#define SM_EN_FILSENS_L "<Enable Fil. Sensor>"
#define SM_EN_FILSENS_S "<ENSEN>"
#define SM_EXIT_L "<Exit>"
#define SM_EXIT_S "<SMEXIT>"
#define SM_BACK_L "<End Mesh Leveling>"
#define SM_BACK_S "<BACK>"
#define SM_FLOWMENU_L "<Set Flowrate>"
#define SM_FLOWMENU_S "<SETFLO>"
#define SM_FLOW_DISP_L "<Flow is XXX>"
#define SM_FLOW_DISP_S "<FLDISP>"
#define SM_FLOW_UP_L "<Up>"
#define SM_FLOW_UP_S "<FLUP>"
#define SM_FLOW_DN_L "<Down>"
#define SM_FLOW_DN_S "<FLDN>"
#define SM_FLOW_EXIT_L "<Exit Flow Settings>"
#define SM_FLOW_EXIT_S "<EXTFLW>"
#define SM_EZLVL_MENU_L "<Easy 4 Point Level>"
#define SM_EZLVL_MENU_S "<EZLVLM>"
#define SM_EZLVL_P1_L "<Point A>"
#define SM_EZLVL_P1_S "<EZLPA>"
#define SM_EZLVL_P2_L "<Point B>"
#define SM_EZLVL_P2_S "<EZLPB>"
#define SM_EZLVL_P3_L "<Point C>"
#define SM_EZLVL_P3_S "<EZLPC>"
#define SM_EZLVL_P4_L "<Point D>"
#define SM_EZLVL_P4_S "<EZLPD>"
#define SM_EZLVL_EXIT_L "<Exit Easy Level>"
#define SM_EZLVL_EXIT_S "<EZLEXT>"
#define SM_BLTZMENU_L "<Auto Leveling>"
#define SM_BLTZMENU_S "<SETOFZ>"
#define SM_BLTZ_DISP_L "<Z Offset: XXXXX>"
#define SM_BLTZ_DISP_S "<OFZDSP>"
#define SM_BLTZ_UP_L "<Up>"
#define SM_BLTZ_UP_S "<UPOFFZ0>"
#define SM_BLTZ_DN_L "<Down>"
#define SM_BLTZ_DN_S "<DNOFFZ0>"
#define SM_BLTZ_EXIT_L "<SAVE and EXIT>"
#define SM_BLTZ_EXIT_S "<EXTABLM>"
#define SM_HS_DISABLE_L "<Disable HiSpeed Mode>"
#define SM_HS_ENABLE_L "<Enable HiSpeed Mode>"
#endif // !KNUTWURST_DGUS2_TFT
#if ENABLED(KNUTWURST_DGUS2_TFT)
#define SM_DIR_UP_L "<<< BACK <<< .gcode"
#define SM_DIR_UP_S "DIR_UP~1.GCO"
#define SM_DIR_UP_L "/.. .gcode"
#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_MENU_L "<Mesh Leveling> .gcode"
#define SM_MESH_MENU_S "<MESHL~1.GCO"
#define SM_MESH_START_L "<Start MeshLeveling>.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 "<Start AutoLeveling>.gcode"
#define SM_BLTOUCH_S "<BLTOU~1.GCO"
#define SM_RESETLV_L "<Reset Level Grid> .gcode"
#define SM_RESETLV_S "<RSTLV~1.GCO>"
#define SM_PAUSE_L "<Fil. Change Pause> .gcode"
#define SM_PAUSE_S "<FILCH~2.GCO"
#define SM_RESUME_L "<Fil. Change Resume>.gcode"
#define SM_RESUME_S "<FILCH~1.GCO"
#define SM_DIS_FILSENS_L "<Disable Fil.Sensor>.gcode"
#define SM_DIS_FILSENS_S "<DISAB~1.GCO"
#define SM_EN_FILSENS_L "<Enable Fil. Sensor>.gcode"
#define SM_EN_FILSENS_S "<ENABL~1.GCO"
#define SM_EXIT_L "<Exit> .gcode"
#define SM_EXIT_S "<EXIT_~1.GCO"
#define SM_BACK_L "<End Mesh Leveling> .gcode"
#define SM_BACK_S "<BACK_~1.GCO"
#define SM_FLOWMENU_L "<Set Flowrate> .gcode"
#define SM_FLOWMENU_S "<SETFLO1.GCO"
#define SM_FLOW_DISP_L "<Flow is XXX%> .gcode"
#define SM_FLOW_DISP_S "<FLDISPL.GCO"
#define SM_FLOW_UP_L "<Up> .gcode"
#define SM_FLOW_UP_S "<UPFLOW1.GCO"
#define SM_FLOW_DN_L "<Down> .gcode"
#define SM_FLOW_DN_S "<DWNFLOW.GCO"
#define SM_FLOW_EXIT_L "<Exit Flow Settings>.gcode"
#define SM_FLOW_EXIT_S "<EXTFLW1.GCO"
#define SM_EZLVL_MENU_L "<Easy 4 Point Level>.gcode"
#define SM_EZLVL_MENU_S "<EZLVLM1.GCO"
#define SM_EZLVL_P1_L "<Point A> .gcode"
#define SM_EZLVL_P1_S "<EZLPA01.GCO"
#define SM_EZLVL_P2_L "<Point B> .gcode"
#define SM_EZLVL_P2_S "<EZLPB01.GCO"
#define SM_EZLVL_P3_L "<Point C> .gcode"
#define SM_EZLVL_P3_S "<EZLPC01.GCO"
#define SM_EZLVL_P4_L "<Point D> .gcode"
#define SM_EZLVL_P4_S "<EZLPD01.GCO"
#define SM_EZLVL_EXIT_L "<Exit Easy Leveling>.gcode"
#define SM_EZLVL_EXIT_S "<EZLEXT1.GCO"
#define SM_BLTZMENU_L "<Auto Leveling> .gcode"
#define SM_BLTZMENU_S "<SETOFZ0.GCO"
#define SM_BLTZ_DISP_L "<Z Offset: XXXXX> .gcode"
#define SM_BLTZ_DISP_S "<OFZDSP0.GCO"
#define SM_BLTZ_UP_L "<Up> .gcode"
#define SM_BLTZ_UP_S "<UPOFFZ0.GCO"
#define SM_BLTZ_DN_L "<Down> .gcode"
#define SM_BLTZ_DN_S "<DOWNOFZ.GCO"
#define SM_BLTZ_EXIT_L "<SAVE and EXIT> .gcode"
#define SM_BLTZ_EXIT_S "<EXTABLM.GCO"
#define SM_HS_DISABLE_L "<Disable HiSpeed> .gcode"
#define SM_HS_ENABLE_L "<Enable HiSpeed> .gcode"
#endif // KNUTWURST_DGUS2_TFT
#if ENABLED(KNUTWURST_TFT_LEVELING)
// eeprom_index
extern int z_values_index;
extern int z_values_size;
// temp value which needs to be saved
extern float SAVE_zprobe_zoffset;
#endif
class AnycubicTouchscreenClass {
public:
AnycubicTouchscreenClass();
void Setup();
void CommandScan();
void BedHeatingStart();
void BedHeatingDone();
void HeatingDone();
void HeatingStart();
void FilamentRunout();
void DoFilamentRunoutCheck();
void UserConfirmRequired(const char *);
void SDCardStateChange(bool);
void SDCardError();
void KillTFT();
void OnPrintTimerStarted();
void OnPrintTimerPaused();
void OnPrintTimerStopped();
#if BOTH(ANYCUBIC_TFT_DEBUG, KNUTWURST_DGUS2_TFT)
void Command(const char * const command);
#endif
char TFTstate = ANYCUBIC_TFT_STATE_IDLE;
/**
* Anycubic TFT pause states:
*
* 0 - printing / stopped
* 1 - regular pause
* 2 - M600 pause
* 3 - filament runout pause
* 4 - nozzle timeout on regular pause // OBSOLETE
* 5 - nozzle timeout on M600 // OBSOLETE
* 6 - nozzle timeout on filament runout // OBSOLETE
*/
uint8_t ai3m_pause_state = 0;
#if ENABLED(KNUTWURST_TFT_LEVELING)
void LevelingDone();
#endif
private:
char TFTcmdbuffer[TFTBUFSIZE][TFT_MAX_CMD_SIZE];
@@ -282,15 +227,16 @@ int serial3_count = 0;
char *TFTstrchr_pointer;
char FlagResumFromOutage = 0;
int filenumber = 0;
unsigned long starttime = 0;
unsigned long stoptime = 0;
uint8_t tmp_extruder = 0;
char LastSDstatus = 0;
uint16_t HeaterCheckCount = 0;
bool IsParked = false;
int currentFlowRate = 0;
bool PrintdoneAndPowerOFF = true;
bool powerOFFflag = 0;
xy_uint8_t selectedmeshpoint;
float live_Zoffset;
static AnycubicMediaPrintState mediaPrintingState;
static AnycubicMediaPauseState mediaPauseState;
#if defined(POWER_OUTAGE_TEST)
struct OutageDataStruct {
@@ -307,26 +253,23 @@ bool powerOFFflag = 0;
int CodeValueInt();
float CodeValue();
bool CodeSeen(char);
void PrintList();
void StartPrint();
void PausePrint();
void ResumePrint();
void StopPrint();
void StateHandler();
void GetCommandFromTFT();
void CheckSDCardChange();
void CheckHeaterError();
void HandleSpecialMenu();
void FilamentChangePause();
void FilamentChangeResume();
void ReheatNozzle();
void ParkAfterStop();
void HandleSpecialMenu();
void RenderCurrentFileList();
void RenderSpecialMenu(uint16_t);
void RenderCurrentFolder(uint16_t);
char currentTouchscreenSelection[64];
char currentFileOrDirectory[64];
String flowRateBuffer;
String zOffsetBuffer;
uint16_t MyFileNrCnt = 0;
uint8_t FilamentSensorEnabled = true;
uint8_t SpecialMenu = false;
uint8_t MMLMenu = false;
@@ -335,13 +278,6 @@ uint8_t BLTouchMenu = false;
uint8_t LevelMenu = false;
uint8_t CaseLight = true;
#if ENABLED(ANYCUBIC_FILAMENT_RUNOUT_SENSOR)
char FilamentTestStatus = false;
char FilamentTestLastStatus = false;
bool FilamentSetMillis = true;
int FilamentRunoutCounter = 0;
#endif
#if ENABLED(KNUTWURST_MEGA_P_LASER)
typedef struct {
unsigned char bfType[2];

View File

@@ -0,0 +1,127 @@
/**
* Marlin 3D Printer Firmware
* Copyright (c) 2020 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 <https://www.gnu.org/licenses/>.
*
*/
/**
* lcd/extui/knutwurst/knutwurst_extui.cpp
*/
#include "../../../inc/MarlinConfigPre.h"
#if ENABLED(ANYCUBIC_TOUCHSCREEN)
#include "anycubic_touchscreen.h"
#include "../ui_api.h"
#include <Arduino.h> // for the ::tone() call
namespace ExtUI {
void onStartup() { AnycubicTouchscreen.Setup(); }
void onIdle() { AnycubicTouchscreen.CommandScan(); }
void onPrinterKilled(FSTR_P const error, FSTR_P const component) { AnycubicTouchscreen.KillTFT(); }
void onMediaInserted() { AnycubicTouchscreen.SDCardStateChange(true); }
void onMediaError() { AnycubicTouchscreen.SDCardError(); }
void onMediaRemoved() { AnycubicTouchscreen.SDCardStateChange(false); }
void onPlayTone(const uint16_t frequency, const uint16_t duration) {
TERN_(SPEAKER, ::tone(BEEPER_PIN, frequency, duration));
}
void onPrintTimerStarted() { AnycubicTouchscreen.OnPrintTimerStarted(); }
void onPrintTimerPaused() { AnycubicTouchscreen.OnPrintTimerPaused(); }
void onPrintTimerStopped() { AnycubicTouchscreen.OnPrintTimerStopped(); }
void onFilamentRunout(const extruder_t extruder) { AnycubicTouchscreen.FilamentRunout(); }
void onUserConfirmRequired(const char * const msg) { AnycubicTouchscreen.UserConfirmRequired(msg); }
void onStatusChanged(const char * const msg) {}
void onHomingStart() {}
void onHomingDone() {}
void onPrintDone() {}
void onFactoryReset() {}
void onStoreSettings(char *buff) {
// Called when saving to EEPROM (i.e. M500). If the ExtUI needs
// permanent data to be stored, it can write up to eeprom_data_size bytes
// into buff.
// Example:
// static_assert(sizeof(myDataStruct) <= eeprom_data_size);
// memcpy(buff, &myDataStruct, sizeof(myDataStruct));
}
void onLoadSettings(const char *buff) {
// Called while loading settings from EEPROM. If the ExtUI
// needs to retrieve data, it should copy up to eeprom_data_size bytes
// from buff
// Example:
// static_assert(sizeof(myDataStruct) <= eeprom_data_size);
// memcpy(&myDataStruct, buff, sizeof(myDataStruct));
}
void onPostprocessSettings() {
// Called after loading or resetting stored settings
}
void onSettingsStored(bool success) {
// Called after the entire EEPROM has been written,
// whether successful or not.
}
void onSettingsLoaded(bool success) {
// Called after the entire EEPROM has been read,
// whether successful or not.
}
#if HAS_MESH
void onLevelingStart() {}
void onLevelingDone() {
#if ENABLED(KNUTWURST_TFT_LEVELING)
AnycubicTouchscreen.LevelingDone();
#endif
}
void onMeshUpdate(const int8_t xpos, const int8_t ypos, const_float_t zval) {
// Called when any mesh points are updated
}
void onMeshUpdate(const int8_t xpos, const int8_t ypos, probe_state_t state) {
// Called when any mesh points are updated
}
#endif
#if ENABLED(POWER_LOSS_RECOVERY)
void onPowerLossResume() {
// Called on resume from power-loss
}
#endif
#if HAS_PID_HEATING
void onPidTuning(const result_t rst) {
// Called for temperature PID tuning result
}
#endif
void onSteppersDisabled() {}
void onSteppersEnabled() {}
}
#endif // ANYCUBIC_TOUCHSCREEN

View File

@@ -286,9 +286,11 @@
#endif
#endif
// RAMPS 1.4 DIO 4 on the servos connector
#ifndef FIL_RUNOUT_PIN
#define FIL_RUNOUT_PIN 4
#if ANY(KNUTWURST_CHIRON, KNUTWURST_4MAXP2)
#define FIL_RUNOUT_PIN 33
#else
#define FIL_RUNOUT_PIN 19
#endif
#ifndef PS_ON_PIN

View File

@@ -253,7 +253,7 @@
// RAMPS 1.4 DIO 4 on the servos connector
#ifndef FIL_RUNOUT_PIN
#define FIL_RUNOUT_PIN 4
#define FIL_RUNOUT_PIN 33
#endif
#ifndef PS_ON_PIN

View File

@@ -86,6 +86,12 @@
#define OUTAGECON_PIN 58
#endif
#if ANY(KNUTWURST_CHIRON, KNUTWURST_4MAXP2)
#define FIL_RUNOUT_PIN 33
#else
#define FIL_RUNOUT_PIN 19
#endif
#if ENABLED(TRIGORILLA_MAPPING_CHIRON)
#ifndef FIL_RUNOUT_PIN
#define FIL_RUNOUT_PIN 33

View File

@@ -64,7 +64,7 @@
#define TG_FAN1_PIN 7 // Anycubic Kossel: Unused
#define TG_FAN2_PIN 44 // Anycubic Kossel: Hotend fan
#define CONTROLLER_FAN_PIN TG_FAN1_PIN
#define FIL_RUNOUT_PIN 19
#define FIL_RUNOUT_PIN 33
#define BEEPER_PIN 31
#define SDSS 53
#define LED_PIN 13