Compare commits
43 Commits
1.5.0-beta
...
1.5.0-beta
Author | SHA1 | Date | |
---|---|---|---|
|
c83dad91f3 | ||
|
429b8cc1fa | ||
|
2e030524e2 | ||
|
45cbc380d9 | ||
|
cf0611a7d9 | ||
|
9c4c58235b | ||
|
75ffa32980 | ||
|
e0d858d812 | ||
|
ad86d96a31 | ||
|
6c4a0a887a | ||
|
e940c218cd | ||
|
1df0ee59d2 | ||
|
9244ea5890 | ||
|
8e34d7dc7c | ||
|
7fbbbba752 | ||
|
2b5816037a | ||
|
e008a96269 | ||
|
952e0db31e | ||
|
69efa3376a | ||
|
b3f22b2b11 | ||
|
bb8d41c0e1 | ||
|
ae82913d1f | ||
|
22dedaeb81 | ||
|
2b57ebccaa | ||
|
4a3071aa56 | ||
|
595bdd00cc | ||
|
d5aa1e1823 | ||
|
570c419165 | ||
|
05a706dfb6 | ||
|
7cc485ae3e | ||
|
5fbd3337b6 | ||
|
62fcc2ff35 | ||
|
c01193bf40 | ||
|
a019c471d1 | ||
|
a2137565e5 | ||
|
52dc811774 | ||
|
4d6715761d | ||
|
9f93a2cc5d | ||
|
fb281baa27 | ||
|
640fce0c02 | ||
|
33a8c67631 | ||
|
b115276fee | ||
|
36c8aee75b |
4
.github/workflows/close-stale.yml
vendored
4
.github/workflows/close-stale.yml
vendored
@@ -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'
|
||||
|
2
.github/workflows/lock-closed.yml
vendored
2
.github/workflows/lock-closed.yml
vendored
@@ -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: ''
|
||||
|
@@ -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
|
||||
@@ -1942,7 +1939,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 +2377,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
|
||||
|
@@ -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
|
||||
@@ -2658,29 +2658,51 @@
|
||||
*/
|
||||
#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 DISABLED(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.
|
||||
#else
|
||||
#define PAUSE_PARK_RETRACT_FEEDRATE 40 // (mm/s) Initial retract feedrate.
|
||||
#define PAUSE_PARK_RETRACT_LENGTH 1 // (mm) Initial retract.
|
||||
// This short retract is done immediately, before parking the nozzle.
|
||||
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 0 // (mm/s) Unload filament feedrate. This can be pretty fast.
|
||||
#define FILAMENT_CHANGE_UNLOAD_ACCEL 30 // (mm/s^2) Lower acceleration may allow a faster feedrate.
|
||||
#define FILAMENT_CHANGE_UNLOAD_LENGTH 0 // (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 10 // (mm/s^2) Lower acceleration may allow a faster feedrate.
|
||||
#define FILAMENT_CHANGE_FAST_LOAD_LENGTH 5 // (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 +2712,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 +4034,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
|
||||
|
@@ -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());
|
||||
|
@@ -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();
|
||||
|
@@ -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() {
|
||||
@@ -38,4 +38,4 @@ void GcodeSuite::M9999() {
|
||||
}
|
||||
|
||||
#endif
|
||||
// PATCH END: KNUTWURST
|
||||
// PATCH END: KNUTWURST
|
||||
|
@@ -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();
|
||||
|
@@ -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
|
||||
|
||||
|
@@ -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;
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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-b6"
|
||||
|
||||
#ifndef STRING_DISTRIBUTION_DATE
|
||||
#define STRING_DISTRIBUTION_DATE "2022-12-21"
|
||||
#define STRING_DISTRIBUTION_DATE "2023-05-30"
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -25,14 +25,9 @@
|
||||
// #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"
|
||||
#include "../../../inc/MarlinConfigPre.h"
|
||||
#include "../../../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();
|
||||
|
||||
char *itostr2(const uint8_t &x);
|
||||
@@ -47,19 +42,25 @@ 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
|
||||
};
|
||||
|
||||
#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
|
||||
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
|
||||
};
|
||||
|
||||
#if DISABLED(KNUTWURST_DGUS2_TFT)
|
||||
#define SM_DIR_UP_L "/.."
|
||||
@@ -244,33 +245,29 @@ char *itostr2(const uint8_t &x);
|
||||
#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();
|
||||
static void OnPrintTimerStarted();
|
||||
static void OnPrintTimerPaused();
|
||||
static 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];
|
||||
@@ -292,6 +289,9 @@ int currentFlowRate = 0;
|
||||
bool PrintdoneAndPowerOFF = true;
|
||||
bool powerOFFflag = 0;
|
||||
|
||||
static AnycubicMediaPrintState mediaPrintingState;
|
||||
static AnycubicMediaPauseState mediaPauseState;
|
||||
|
||||
#if defined(POWER_OUTAGE_TEST)
|
||||
struct OutageDataStruct {
|
||||
char OutageDataVersion;
|
||||
@@ -307,7 +307,6 @@ bool powerOFFflag = 0;
|
||||
int CodeValueInt();
|
||||
float CodeValue();
|
||||
bool CodeSeen(char);
|
||||
void PrintList();
|
||||
void StartPrint();
|
||||
void PausePrint();
|
||||
void StopPrint();
|
||||
@@ -317,15 +316,17 @@ void CheckSDCardChange();
|
||||
void CheckHeaterError();
|
||||
void HandleSpecialMenu();
|
||||
void FilamentChangePause();
|
||||
void FilamentChangeResume();
|
||||
void ResumePrint();
|
||||
void ReheatNozzle();
|
||||
void ParkAfterStop();
|
||||
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;
|
||||
@@ -335,13 +336,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];
|
127
Marlin/src/lcd/extui/knutwurst/knutwurst_extui.cpp
Normal file
127
Marlin/src/lcd/extui/knutwurst/knutwurst_extui.cpp
Normal 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
|
@@ -286,11 +286,27 @@
|
||||
#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
|
||||
#ifndef Z2_STEP_PIN
|
||||
#define Z2_STEP_PIN 46
|
||||
#endif
|
||||
#ifndef Z2_DIR_PIN
|
||||
#define Z2_DIR_PIN 48
|
||||
#endif
|
||||
#ifndef Z2_ENABLE_PIN
|
||||
#define Z2_ENABLE_PIN 62
|
||||
#endif
|
||||
#ifndef Z2_CS_PIN
|
||||
#define Z2_CS_PIN 40
|
||||
#endif
|
||||
#else
|
||||
#define FIL_RUNOUT_PIN 19
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#ifndef PS_ON_PIN
|
||||
#define PS_ON_PIN 12
|
||||
#endif
|
||||
|
@@ -142,6 +142,19 @@
|
||||
#define Z_CS_PIN 40
|
||||
#endif
|
||||
|
||||
#ifndef Z2_STEP_PIN
|
||||
#define Z2_STEP_PIN 46
|
||||
#endif
|
||||
#ifndef Z2_DIR_PIN
|
||||
#define Z2_DIR_PIN 48
|
||||
#endif
|
||||
#ifndef Z2_ENABLE_PIN
|
||||
#define Z2_ENABLE_PIN 62
|
||||
#endif
|
||||
#ifndef Z2_CS_PIN
|
||||
#define Z2_CS_PIN 40
|
||||
#endif
|
||||
|
||||
#define E0_STEP_PIN 26
|
||||
#define E0_DIR_PIN 28
|
||||
#define E0_ENABLE_PIN 24
|
||||
@@ -253,7 +266,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
|
||||
|
@@ -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
|
||||
@@ -97,7 +103,7 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if EITHER(TRIGORILLA_MAPPING_CHIRON, SWAP_Z_MOTORS)
|
||||
#if ANY(TRIGORILLA_MAPPING_CHIRON, SWAP_Z_MOTORS, KNUTWURST_CHIRON, KNUTWURST_4MAXP2) // PATCH: knutwurst
|
||||
// Chiron and some Anycubic i3 MEGAs swap Z steppers
|
||||
#define Z_STEP_PIN 36
|
||||
#define Z_DIR_PIN 34
|
||||
|
@@ -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
|
||||
|
Reference in New Issue
Block a user