20 Commits
1.1.4 ... 1.1.5

Author SHA1 Message Date
Knutwurst
0757a57122 Update Version to 1.1.5 for next release 2020-08-27 08:44:46 +02:00
Knutwurst
dab8b979bf Fix issue where the BLTouch nozzle did not retract between probes. 2020-08-26 22:33:19 +02:00
Oliver Köster
e7239ba96f Update README.md 2020-08-26 17:14:12 +02:00
Knutwurst
9140808f2d Add Howto-Screenshot 2020-08-26 17:05:52 +02:00
Knutwurst
0f53591818 Small initialisation fix. 2020-08-26 14:56:45 +02:00
Knutwurst
f363260a49 Massive Code Cleanup and Filament Runout Sensor Pin isn't a magic number anymore. 2020-08-26 14:48:53 +02:00
Knutwurst
bd2cb8080a Reenable T0 Sensor Message handling 2020-08-26 11:26:20 +02:00
Knutwurst
697bc6f45c PID Tuning is now automatially saved to EEPROM. 2020-08-26 11:25:09 +02:00
Oliver Köster
55521d3ab1 Update README.md 2020-08-26 10:33:24 +02:00
Oliver Köster
4801858c19 Update README.md 2020-08-26 10:29:01 +02:00
Oliver Köster
613d352308 Update README.md 2020-08-26 10:25:52 +02:00
Knutwurst
c7373ccc8e More readable special menu on DGUS Clone Display 2020-08-26 09:43:46 +02:00
Knutwurst
e12fb83b78 Upload Anycubic Touchscreen Pics for the Wiki 2020-08-26 08:43:36 +02:00
Oliver Köster
5600a71514 Update README.md 2020-08-26 07:45:44 +02:00
Knutwurst
52126609af Fix too long version number 2020-08-25 19:56:01 +02:00
Knutwurst
aa57f4be9d Fix for Special Menu without SD card 2020-08-25 19:39:08 +02:00
Oliver Köster
f27545aee4 Update README.md 2020-08-25 09:07:12 +02:00
Knutwurst
e4a828f32a Increase filament runout watch from 3 to 5 seconds. 2020-08-25 08:56:45 +02:00
Knutwurst
5c0841a139 Increase max Z Feedrate to 18 (thanks to Simon Geis) 2020-08-25 08:22:27 +02:00
Knutwurst
c65ec66cb1 Add Manual Mesh Leveling Sub-Menu. 2020-08-24 14:48:07 +02:00
9 changed files with 123 additions and 127 deletions

View File

@@ -923,7 +923,7 @@
#endif #endif
#if ENABLED(KNUTWURST_MEGA_X) #if ENABLED(KNUTWURST_MEGA_X)
#define DEFAULT_MAX_FEEDRATE { 120, 120, 8, 80 } // { 120, 120, 20, 80 } #define DEFAULT_MAX_FEEDRATE { 120, 120, 18, 80 } // thanks to Simon Geis
#endif #endif

View File

@@ -681,7 +681,7 @@
* This feature was designed for Delta's with very fast Z moves however higher speed cartesians may function * This feature was designed for Delta's with very fast Z moves however higher speed cartesians may function
* If the machine cannot raise the probe fast enough after a trigger, it may enter a fault state. * If the machine cannot raise the probe fast enough after a trigger, it may enter a fault state.
*/ */
#define BLTOUCH_HS_MODE //#define BLTOUCH_HS_MODE
// Safety: Enable voltage mode settings in the LCD menu. // Safety: Enable voltage mode settings in the LCD menu.
//#define BLTOUCH_LCD_VOLTAGE_MENU //#define BLTOUCH_LCD_VOLTAGE_MENU

View File

@@ -41,11 +41,10 @@
* here we define this default string as the date where the latest release * here we define this default string as the date where the latest release
* version was tagged. * version was tagged.
*/ */
#define CUSTOM_BUILD_VERSION "1.1.4" #define CUSTOM_BUILD_VERSION "1.1.5"
#ifndef STRING_DISTRIBUTION_DATE #ifndef STRING_DISTRIBUTION_DATE
//#define STRING_DISTRIBUTION_DATE "2020-07-09" #define STRING_DISTRIBUTION_DATE "2020-08-27"
#define STRING_DISTRIBUTION_DATE "2020-08-24"
#endif #endif
/** /**

View File

@@ -121,10 +121,10 @@ void AnycubicTouchscreenClass::Setup()
pinMode(SD_DETECT_PIN, INPUT); pinMode(SD_DETECT_PIN, INPUT);
WRITE(SD_DETECT_PIN, HIGH); WRITE(SD_DETECT_PIN, HIGH);
#endif #endif
pinMode(19, INPUT); pinMode(FILAMENT_RUNOUT_PIN, INPUT);
WRITE(19, HIGH); WRITE(FILAMENT_RUNOUT_PIN, HIGH);
#if ENABLED(ANYCUBIC_FILAMENT_RUNOUT_SENSOR) #if ENABLED(ANYCUBIC_FILAMENT_RUNOUT_SENSOR)
if ((READ(19) == true) && FilamentSensorEnabled) if ((READ(FILAMENT_RUNOUT_PIN) == true) && FilamentSensorEnabled)
{ {
HARDWARE_SERIAL_PROTOCOLPGM("J15"); //J15 FILAMENT LACK HARDWARE_SERIAL_PROTOCOLPGM("J15"); //J15 FILAMENT LACK
HARDWARE_SERIAL_ENTER(); HARDWARE_SERIAL_ENTER();
@@ -134,9 +134,10 @@ void AnycubicTouchscreenClass::Setup()
} }
#endif #endif
currentTouchscreenSelection[0] = '\0'; currentTouchscreenSelection[0] = 0;
currentFileOrDirectory[0] = '\0'; currentFileOrDirectory[0] = '\0';
SpecialMenu = false; SpecialMenu = false;
MMLMenu = false;
FilamentSensorEnabled = true; FilamentSensorEnabled = true;
MyFileNrCnt = 0; MyFileNrCnt = 0;
@@ -447,7 +448,7 @@ void AnycubicTouchscreenClass::HandleSpecialMenu()
|| (strcasestr(currentTouchscreenSelection, SM_PID_HOTEND_S) != NULL)) || (strcasestr(currentTouchscreenSelection, SM_PID_HOTEND_S) != NULL))
{ {
SERIAL_ECHOLNPGM("Special Menu: PID Tune Hotend"); SERIAL_ECHOLNPGM("Special Menu: PID Tune Hotend");
queue.inject_P(PSTR("G28\nG90\nG1 Z20\nG1 X110 Y110 F4000\nG1 Z5\nM106 S172\nG4 P500\nM303 E0 S215 C15 U1\nG4 P500\nM107\nG28\nG1 Z10\nM84")); queue.inject_P(PSTR("G28\nG90\nG1 Z20\nG1 X110 Y110 F4000\nG1 Z5\nM106 S172\nG4 P500\nM303 E0 S215 C15 U1\nG4 P500\nM107\nG28\nG1 Z10\nM84\nM500"));
buzzer.tone(200, 1108); buzzer.tone(200, 1108);
buzzer.tone(200, 1661); buzzer.tone(200, 1661);
buzzer.tone(200, 1108); buzzer.tone(200, 1108);
@@ -457,7 +458,7 @@ void AnycubicTouchscreenClass::HandleSpecialMenu()
|| (strcasestr(currentTouchscreenSelection, SM_PID_BED_S) != NULL)) || (strcasestr(currentTouchscreenSelection, SM_PID_BED_S) != NULL))
{ {
SERIAL_ECHOLNPGM("Special Menu: PID Tune Ultrabase"); SERIAL_ECHOLNPGM("Special Menu: PID Tune Ultrabase");
queue.inject_P(PSTR("M303 E-1 S60 C6 U1")); queue.inject_P(PSTR("M303 E-1 S60 C6 U1\nM500"));
buzzer.tone(200, 1108); buzzer.tone(200, 1108);
buzzer.tone(200, 1661); buzzer.tone(200, 1661);
buzzer.tone(200, 1108); buzzer.tone(200, 1108);
@@ -492,6 +493,7 @@ void AnycubicTouchscreenClass::HandleSpecialMenu()
{ {
SERIAL_ECHOLNPGM("Special Menu: Start Mesh Leveling"); SERIAL_ECHOLNPGM("Special Menu: Start Mesh Leveling");
queue.inject_P(PSTR("G29 S1")); queue.inject_P(PSTR("G29 S1"));
MMLMenu = true;
} }
else if ((strcasestr(currentTouchscreenSelection, SM_MESH_NEXT_L) != NULL) else if ((strcasestr(currentTouchscreenSelection, SM_MESH_NEXT_L) != NULL)
|| (strcasestr(currentTouchscreenSelection, SM_MESH_NEXT_S) != NULL)) || (strcasestr(currentTouchscreenSelection, SM_MESH_NEXT_S) != NULL))
@@ -527,14 +529,12 @@ void AnycubicTouchscreenClass::HandleSpecialMenu()
|| (strcasestr(currentTouchscreenSelection, SM_Z_UP_001_S) != NULL)) || (strcasestr(currentTouchscreenSelection, SM_Z_UP_001_S) != NULL))
{ {
SERIAL_ECHOLNPGM("Special Menu: Z Up 0.01"); SERIAL_ECHOLNPGM("Special Menu: Z Up 0.01");
//queue.inject_P(PSTR("G91\nG1 Z+0.01\nG90"));
queue.inject_P(PSTR("G91\nG1 Z+0.03\nG4 P250\nG1 Z-0.02\nG90")); queue.inject_P(PSTR("G91\nG1 Z+0.03\nG4 P250\nG1 Z-0.02\nG90"));
} }
else if ((strcasestr(currentTouchscreenSelection, SM_Z_DN_001_L) != NULL) else if ((strcasestr(currentTouchscreenSelection, SM_Z_DN_001_L) != NULL)
|| (strcasestr(currentTouchscreenSelection, SM_Z_DN_001_S) != NULL)) || (strcasestr(currentTouchscreenSelection, SM_Z_DN_001_S) != NULL))
{ {
SERIAL_ECHOLNPGM("Special Menu: Z Down 0.01"); SERIAL_ECHOLNPGM("Special Menu: Z Down 0.01");
//queue.inject_P(PSTR("G91\nG1 Z-0.01\nG90"));
queue.inject_P(PSTR("G91\nG1 Z+0.02\nG4 P250\nG1 Z-0.03\nG90")); queue.inject_P(PSTR("G91\nG1 Z+0.02\nG4 P250\nG1 Z-0.03\nG90"));
} }
#endif #endif
@@ -545,6 +545,8 @@ void AnycubicTouchscreenClass::HandleSpecialMenu()
{ {
SERIAL_ECHOLNPGM("Special Menu: BLTouch Leveling"); SERIAL_ECHOLNPGM("Special Menu: BLTouch Leveling");
queue.inject_P(PSTR("G28\nG29\nM500\nG90\nG1 Z30 F4000\nG1 X0 F4000\nG91\nM84")); queue.inject_P(PSTR("G28\nG29\nM500\nG90\nG1 Z30 F4000\nG1 X0 F4000\nG91\nM84"));
buzzer.tone(105, 1108);
buzzer.tone(210, 1661);
} }
#endif #endif
@@ -582,12 +584,47 @@ void AnycubicTouchscreenClass::HandleSpecialMenu()
{ {
SpecialMenu = false; SpecialMenu = false;
} }
else if ((strcasestr(currentTouchscreenSelection, SM_BACK_L) != NULL)
|| (strcasestr(currentTouchscreenSelection, SM_BACK_S) != NULL))
{
MMLMenu = false;
}
} }
void AnycubicTouchscreenClass::PrintList() void AnycubicTouchscreenClass::PrintList()
{ {
if (SpecialMenu) if(MMLMenu)
{
switch (filenumber)
{
case 0: // Page 1
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_Z_UP_01_S);
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_Z_UP_01_L);
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_Z_DN_01_S);
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_Z_DN_01_L);
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_Z_UP_002_S);
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_Z_UP_002_L);
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_Z_DN_002_S);
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_Z_DN_002_L);
break;
case 4: // Page 2
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_Z_UP_001_S);
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_Z_UP_001_L);
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_Z_DN_001_S);
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_Z_DN_001_L);
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_MESH_NEXT_S);
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_MESH_NEXT_L);
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_BACK_S);
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_BACK_L);
break;
default:
break;
}
}
else if (SpecialMenu)
{ {
switch (filenumber) switch (filenumber)
{ {
@@ -606,37 +643,17 @@ void AnycubicTouchscreenClass::PrintList()
case 4: // Page 2 case 4: // Page 2
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_MESH_START_S); HARDWARE_SERIAL_PROTOCOLLNPGM(SM_MESH_START_S);
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_MESH_START_L); HARDWARE_SERIAL_PROTOCOLLNPGM(SM_MESH_START_L);
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_MESH_NEXT_S);
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_MESH_NEXT_L);
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_Z_UP_01_S);
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_Z_UP_01_L);
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_Z_DN_01_S);
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_Z_DN_01_L);
break;
case 8: // Page 3
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_Z_UP_002_S);
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_Z_UP_002_L);
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_Z_DN_002_S);
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_Z_DN_002_L);
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_Z_UP_001_S);
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_Z_UP_001_L);
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_Z_DN_001_S);
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_Z_DN_001_L);
break;
case 12: // Page 4
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_PID_HOTEND_S); HARDWARE_SERIAL_PROTOCOLLNPGM(SM_PID_HOTEND_S);
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_PID_HOTEND_L); HARDWARE_SERIAL_PROTOCOLLNPGM(SM_PID_HOTEND_L);
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_PID_BED_S); HARDWARE_SERIAL_PROTOCOLLNPGM(SM_PID_BED_S);
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_PID_BED_L); HARDWARE_SERIAL_PROTOCOLLNPGM(SM_PID_BED_L);
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_SAVE_EEPROM_S); HARDWARE_SERIAL_PROTOCOLLNPGM(SM_SAVE_EEPROM_S);
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_SAVE_EEPROM_L); HARDWARE_SERIAL_PROTOCOLLNPGM(SM_SAVE_EEPROM_L);
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_LOAD_DEFAULTS_S);
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_LOAD_DEFAULTS_L);
break; break;
case 16: // Page 5 case 8: // Page 3
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_LOAD_DEFAULTS_S);
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_LOAD_DEFAULTS_L);
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_DIS_FILSENS_S); HARDWARE_SERIAL_PROTOCOLLNPGM(SM_DIS_FILSENS_S);
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_DIS_FILSENS_L); HARDWARE_SERIAL_PROTOCOLLNPGM(SM_DIS_FILSENS_L);
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_EN_FILSENS_S); HARDWARE_SERIAL_PROTOCOLLNPGM(SM_EN_FILSENS_S);
@@ -645,6 +662,7 @@ void AnycubicTouchscreenClass::PrintList()
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_EXIT_L); HARDWARE_SERIAL_PROTOCOLLNPGM(SM_EXIT_L);
break; break;
#endif #endif
#if ENABLED(KNUTWURST_BLTOUCH) #if ENABLED(KNUTWURST_BLTOUCH)
case 4: // Page 2 case 4: // Page 2
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_BLTOUCH_S); HARDWARE_SERIAL_PROTOCOLLNPGM(SM_BLTOUCH_S);
@@ -667,8 +685,7 @@ void AnycubicTouchscreenClass::PrintList()
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_EXIT_S); HARDWARE_SERIAL_PROTOCOLLNPGM(SM_EXIT_S);
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_EXIT_L); HARDWARE_SERIAL_PROTOCOLLNPGM(SM_EXIT_L);
break; break;
#endif #endif
default: default:
break; break;
} }
@@ -973,7 +990,7 @@ void AnycubicTouchscreenClass::FilamentRunout()
if (FilamentSensorEnabled == true) if (FilamentSensorEnabled == true)
{ {
#if ENABLED(ANYCUBIC_FILAMENT_RUNOUT_SENSOR) #if ENABLED(ANYCUBIC_FILAMENT_RUNOUT_SENSOR)
FilamentTestStatus = READ(19) & 0xff; FilamentTestStatus = READ(FILAMENT_RUNOUT_PIN) & 0xff;
if (FilamentTestStatus > FilamentTestLastStatus) if (FilamentTestStatus > FilamentTestLastStatus)
{ {
@@ -987,8 +1004,8 @@ void AnycubicTouchscreenClass::FilamentRunout()
#ifdef ANYCUBIC_TFT_DEBUG #ifdef ANYCUBIC_TFT_DEBUG
SERIAL_ECHOLNPGM("DEBUG: Set filament trigger time"); SERIAL_ECHOLNPGM("DEBUG: Set filament trigger time");
#endif #endif
// set the delayed timestamp to 3000ms later // set the delayed timestamp to 5000ms later
fil_delay = fil_ms + 3000UL; fil_delay = fil_ms + 5000UL;
// this doesn't need to run until the filament is recovered again // this doesn't need to run until the filament is recovered again
FilamentSetMillis = false; FilamentSetMillis = false;
} }
@@ -1000,7 +1017,7 @@ void AnycubicTouchscreenClass::FilamentRunout()
if (!IsParked) if (!IsParked)
{ {
#ifdef ANYCUBIC_TFT_DEBUG #ifdef ANYCUBIC_TFT_DEBUG
SERIAL_ECHOLNPGM("DEBUG: 3000ms delay done"); SERIAL_ECHOLNPGM("DEBUG: 5000ms delay done");
#endif #endif
if (card.isPrinting()) if (card.isPrinting())
{ {
@@ -1059,48 +1076,33 @@ void AnycubicTouchscreenClass::GetCommandFromTFT()
{ {
TFTcomment_mode = false; //for new command TFTcomment_mode = false; //for new command
//TFTfromsd[TFTbufindw] = false;
if(strchr(TFTcmdbuffer[TFTbufindw], 'N') != NULL) if(strchr(TFTcmdbuffer[TFTbufindw], 'N') != NULL)
{ {
/* if(strchr(TFTcmdbuffer[TFTbufindw], '*') != NULL)
TFTstrchr_pointer = strchr(TFTcmdbuffer[TFTbufindw], 'N');
gcode_N = (strtol(&TFTcmdbuffer[TFTbufindw][TFTstrchr_pointer - TFTcmdbuffer[TFTbufindw] + 1], NULL, 10));
if(gcode_N != gcode_LastN+1 && (strstr_P(TFTcmdbuffer[TFTbufindw], PSTR("M110")) == NULL) )
{ {
HARDWARE_SERIAL_ERROR_START; byte checksum = 0;
NEWFlushSerialRequestResend(); byte count = 0;
serial3_count = 0; while(TFTcmdbuffer[TFTbufindw][count] != '*') checksum = checksum^TFTcmdbuffer[TFTbufindw][count++];
return; TFTstrchr_pointer = strchr(TFTcmdbuffer[TFTbufindw], '*');
if( (int)(strtod(&TFTcmdbuffer[TFTbufindw][TFTstrchr_pointer - TFTcmdbuffer[TFTbufindw] + 1], NULL)) != checksum)
{
HARDWARE_SERIAL_ERROR_START;
HardwareSerial.flush();
HARDWARE_SERIAL_ERROR_START;
HardwareSerial.flush();
serial3_count = 0;
return;
}
//if no errors, continue parsing
} }
*/ else
if(strchr(TFTcmdbuffer[TFTbufindw], '*') != NULL)
{
byte checksum = 0;
byte count = 0;
while(TFTcmdbuffer[TFTbufindw][count] != '*') checksum = checksum^TFTcmdbuffer[TFTbufindw][count++];
TFTstrchr_pointer = strchr(TFTcmdbuffer[TFTbufindw], '*');
if( (int)(strtod(&TFTcmdbuffer[TFTbufindw][TFTstrchr_pointer - TFTcmdbuffer[TFTbufindw] + 1], NULL)) != checksum)
{ {
HARDWARE_SERIAL_ERROR_START; HARDWARE_SERIAL_ERROR_START;
HardwareSerial.flush(); HardwareSerial.flush();
HARDWARE_SERIAL_ERROR_START; serial3_count = 0;
HardwareSerial.flush(); return;
serial3_count = 0;
return;
} }
//if no errors, continue parsing
}
else
{
HARDWARE_SERIAL_ERROR_START;
HardwareSerial.flush();
serial3_count = 0;
return;
}
//gcode_LastN = gcode_N;
//if no errors, continue parsing //if no errors, continue parsing
} }
else // if we don't receive 'N' but still see '*' else // if we don't receive 'N' but still see '*'
@@ -1215,11 +1217,6 @@ void AnycubicTouchscreenClass::GetCommandFromTFT()
case 8: // A8 GET SD LIST case 8: // A8 GET SD LIST
#ifdef SDSUPPORT #ifdef SDSUPPORT
currentTouchscreenSelection[0] = 0; currentTouchscreenSelection[0] = 0;
if (!IS_SD_INSERTED())
{
HARDWARE_SERIAL_PROTOCOLPGM("J02"); // J02 SD Card initilized
HARDWARE_SERIAL_ENTER();
}
if (CodeSeen('S')) if (CodeSeen('S'))
filenumber = CodeValue(); filenumber = CodeValue();
@@ -1619,15 +1616,6 @@ void AnycubicTouchscreenClass::GetCommandFromTFT()
} }
currentTouchscreenSelection[0] = 0; currentTouchscreenSelection[0] = 0;
if (!IS_SD_INSERTED())
{
HARDWARE_SERIAL_PROTOCOLPGM("J02"); // J02 SD Card initilized
HARDWARE_SERIAL_ENTER();
#ifdef ANYCUBIC_TFT_DEBUG
SERIAL_ECHOLNPGM("TFT Serial Debug: SD card initialized... J02");
#endif
}
#endif #endif
break; break;
#ifdef SERVO_ENDSTOPS #ifdef SERVO_ENDSTOPS
@@ -1646,7 +1634,7 @@ void AnycubicTouchscreenClass::GetCommandFromTFT()
case 33: // A33 get version info case 33: // A33 get version info
{ {
HARDWARE_SERIAL_PROTOCOLPGM("J33 "); HARDWARE_SERIAL_PROTOCOLPGM("J33 ");
HARDWARE_SERIAL_PROTOCOLPGM("Knutwurst-"); HARDWARE_SERIAL_PROTOCOLPGM("KW-");
HARDWARE_SERIAL_PROTOCOLPGM(MSG_MY_VERSION); HARDWARE_SERIAL_PROTOCOLPGM(MSG_MY_VERSION);
HARDWARE_SERIAL_ENTER(); HARDWARE_SERIAL_ENTER();
} }

View File

@@ -36,6 +36,8 @@ char *ftostr32(const float &);
#define MSG_MY_VERSION CUSTOM_BUILD_VERSION #define MSG_MY_VERSION CUSTOM_BUILD_VERSION
#define MAX_PRINTABLE_FILENAME_LEN 30 #define MAX_PRINTABLE_FILENAME_LEN 30
#define FILAMENT_RUNOUT_PIN 19
#define ANYCUBIC_TFT_STATE_IDLE 0 #define ANYCUBIC_TFT_STATE_IDLE 0
#define ANYCUBIC_TFT_STATE_SDPRINT 1 #define ANYCUBIC_TFT_STATE_SDPRINT 1
#define ANYCUBIC_TFT_STATE_SDPAUSE 2 #define ANYCUBIC_TFT_STATE_SDPAUSE 2
@@ -87,51 +89,55 @@ char *ftostr32(const float &);
#define SM_EN_FILSENS_S "<ENSEN>" #define SM_EN_FILSENS_S "<ENSEN>"
#define SM_EXIT_L "<Exit>" #define SM_EXIT_L "<Exit>"
#define SM_EXIT_S "<EXIT>" #define SM_EXIT_S "<EXIT>"
#define SM_BACK_L "<End Mesh Leveling>"
#define SM_BACK_S "<BACK>"
#endif #endif
#if ENABLED(KNUTWURST_DGUS2_TFT) #if ENABLED(KNUTWURST_DGUS2_TFT)
#define SM_DIR_UP_L "<<< BACK <<<.gcode" #define SM_DIR_UP_L "<<< BACK <<< .gcode"
#define SM_DIR_UP_S "DIR_UP~1.GCO" #define SM_DIR_UP_S "DIR_UP~1.GCO"
#define SM_SPECIAL_MENU_L "<Special Menu>.gcode" #define SM_SPECIAL_MENU_L "<Special Menu> .gcode"
#define SM_SPECIAL_MENU_S "<SPECI~1.GCO" #define SM_SPECIAL_MENU_S "<SPECI~1.GCO"
#define SM_PID_HOTEND_L "<PID Tune Hotend>.gcode" #define SM_PID_HOTEND_L "<PID Tune Hotend> .gcode"
#define SM_PID_HOTEND_S "<PIDTU~1.GCO" #define SM_PID_HOTEND_S "<PIDTU~1.GCO"
#define SM_PID_BED_L "<PID Tune Ultrabase>.gcode" #define SM_PID_BED_L "<PID Tune Ultrabase>.gcode"
#define SM_PID_BED_S "<PIDTU~2.GCO" #define SM_PID_BED_S "<PIDTU~2.GCO"
#define SM_SAVE_EEPROM_L "<Save EEPROM>.gcode" #define SM_SAVE_EEPROM_L "<Save EEPROM> .gcode"
#define SM_SAVE_EEPROM_S "<SAVEE~1.GCO" #define SM_SAVE_EEPROM_S "<SAVEE~1.GCO"
#define SM_LOAD_DEFAULTS_L "<Load FW Defaults>.gcode" #define SM_LOAD_DEFAULTS_L "<Load FW Defaults> .gcode"
#define SM_LOAD_DEFAULTS_S "<LOADF~1.GCO" #define SM_LOAD_DEFAULTS_S "<LOADF~1.GCO"
#define SM_PREHEAT_BED_L "<Preheat Ultrabase>.gcode" #define SM_PREHEAT_BED_L "<Preheat Ultrabase> .gcode"
#define SM_PREHEAT_BED_S "<PREHE~1.GCO" #define SM_PREHEAT_BED_S "<PREHE~1.GCO"
#define SM_MESH_START_L "<Start Mesh Leveling>.gcode" #define SM_MESH_START_L "<Mesh Leveling> .gcode"
#define SM_MESH_START_S "<START~1.GCO" #define SM_MESH_START_S "<START~1.GCO"
#define SM_MESH_NEXT_L "<Next Mesh Point>.gcode" #define SM_MESH_NEXT_L "<Next Mesh Point> .gcode"
#define SM_MESH_NEXT_S "<NEXTM~1.GCO" #define SM_MESH_NEXT_S "<NEXTM~1.GCO"
#define SM_Z_UP_01_L "<Z Up 0.1>.gcode" #define SM_Z_UP_01_L "<Z Up 0.1> .gcode"
#define SM_Z_UP_01_S "<ZUP01~1.GCO" #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_L "<Z Down 0.1> .gcode"
#define SM_Z_DN_01_S "<ZDOWN~1.GCO" #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_L "<Z Up 0.02> .gcode"
#define SM_Z_UP_002_S "<ZUP00~1.GCO" #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_L "<Z Down 0.02> .gcode"
#define SM_Z_DN_002_S "<ZDOWN~2.GCO" #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_L "<Z Up 0.01> .gcode"
#define SM_Z_UP_001_S "<ZUP00~2.GCO" #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_L "<Z Down 0.01> .gcode"
#define SM_Z_DN_001_S "<ZDOWN~3.GCO" #define SM_Z_DN_001_S "<ZDOWN~3.GCO"
#define SM_BLTOUCH_L "<BLTouch Leveling>.gcode" #define SM_BLTOUCH_L "<BLTouch Leveling> .gcode"
#define SM_BLTOUCH_S "<BLTOU~1.GCO" #define SM_BLTOUCH_S "<BLTOU~1.GCO"
#define SM_PAUSE_L "<Fil. Change Pause>.gcode" #define SM_PAUSE_L "<Fil. Change Pause> .gcode"
#define SM_PAUSE_S "<FILCH~2.GCO" #define SM_PAUSE_S "<FILCH~2.GCO"
#define SM_RESUME_L "<Fil. Change Resume>.gcode" #define SM_RESUME_L "<Fil. Change Resume>.gcode"
#define SM_RESUME_S "<FILCH~1.GCO" #define SM_RESUME_S "<FILCH~1.GCO"
#define SM_DIS_FILSENS_L "<Disable Fil. Sensor>.gcode" #define SM_DIS_FILSENS_L "<Disable Fil.Sensor>.gcode"
#define SM_DIS_FILSENS_S "<DISAB~1.GCO" #define SM_DIS_FILSENS_S "<DISAB~1.GCO"
#define SM_EN_FILSENS_L "<Enable Fil. Sensor>.gcode" #define SM_EN_FILSENS_L "<Enable Fil. Sensor>.gcode"
#define SM_EN_FILSENS_S "<ENABL~1.GCO" #define SM_EN_FILSENS_S "<ENABL~1.GCO"
#define SM_EXIT_L "<Exit>.gcode" #define SM_EXIT_L "<Exit> .gcode"
#define SM_EXIT_S "<EXIT_~1.GCO" #define SM_EXIT_S "<EXIT_~1.GCO"
#define SM_BACK_L "<End Mesh Leveling> .gcode"
#define SM_BACK_S "<BACK_~1.GCO"
#endif #endif
@@ -211,6 +217,7 @@ private:
char currentFileOrDirectory[64]; char currentFileOrDirectory[64];
uint16_t MyFileNrCnt = 0; uint16_t MyFileNrCnt = 0;
uint8_t SpecialMenu = false; uint8_t SpecialMenu = false;
uint8_t MMLMenu = false;
uint8_t FilamentSensorEnabled = true; uint8_t FilamentSensorEnabled = true;

View File

@@ -15,8 +15,8 @@
- [Häufig gestellte Fragen (FAQ)](#häufig-gesellte-fragen-faq) - [Häufig gestellte Fragen (FAQ)](#häufig-gesellte-fragen-faq)
- [Fotos / Bilder](#bilder) - [Fotos / Bilder](#bilder)
- [Spezial Menü](#spezial-menü) - [Spezial Menü](#spezial-menü)
- [Manual Mesh Beld Leveling](#manuelles-leveln) - [Manual Mesh Bed Leveling](#manuelles-leveln)
- [BLTouch Beld Leveling](#automatisches-bltouch-leveln) - [BLTouch Bed Leveling](#automatisches-bltouch-leveln)
- [Downloads](#downloads) - [Downloads](#downloads)
@@ -26,8 +26,8 @@
- [Frequently asked questions (FAQ)](#faq) - [Frequently asked questions (FAQ)](#faq)
- [Photos / Pictures](#pictures) - [Photos / Pictures](#pictures)
- [Special Menü](#special-menu) - [Special Menü](#special-menu)
- [Manual Mesh Beld Leveling](#manual-mesh-beld-leveling) - [Manual Mesh Bed Leveling](#manual-mesh-bed-leveling)
- [BLTouch Beld Leveling](#bltouch-beld-leveling) - [BLTouch Bed Leveling](#bltouch-bed-leveling)
- [Download](#download) - [Download](#download)
@@ -42,8 +42,7 @@
* Babystepping während des Druckvorgangs * Babystepping während des Druckvorgangs
* Bilinear Bed Leveling (BBL) * Bilinear Bed Leveling (BBL)
* Manuelles Editieren der Messpunkte * Manuelles Editieren der Messpunkte
* Volle Anycubic Touchscreen Unterstützung * Volle Unterstützung aller [Anycubic Touchscreens](https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/wiki/Types-of-Anycubic-Touchscreens)
* Unterstützung des neuen Anycubic Touchscreens (DGUS II)
* Bauteilkühler läuft nun auf 100% statt maximal 70% * Bauteilkühler läuft nun auf 100% statt maximal 70%
* Pause & Filamentwechselfunktion * Pause & Filamentwechselfunktion
* Automatische EEPROM Initialisierung * Automatische EEPROM Initialisierung
@@ -52,6 +51,7 @@
* [Druckbettgröße erweitert auf 225 x 220 x 210 mm](https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/wiki/Set-new-print-bed-size) * [Druckbettgröße erweitert auf 225 x 220 x 210 mm](https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/wiki/Set-new-print-bed-size)
* Automatischer 'Slowdown', falls Daten nicht schnell genug fließen * Automatischer 'Slowdown', falls Daten nicht schnell genug fließen
* Vollautomatisches Hotend und Ultrabase PID Tuning * Vollautomatisches Hotend und Ultrabase PID Tuning
* Optimierungen für [Trinamic TMC Schrittmotortreiber](https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/wiki/Schrittmotortreiber-gegen-TMC2xxx-tauschen)
## Besser im Vergleich zu anderen Firmwares (Bugfixes): ## Besser im Vergleich zu anderen Firmwares (Bugfixes):
@@ -67,7 +67,7 @@
* Keine "spezielle" BLTouch Firmware nötig. Hier ist alles drin * Keine "spezielle" BLTouch Firmware nötig. Hier ist alles drin
* Konfiguration ganz einfach über Feature-Toggles * Konfiguration ganz einfach über Feature-Toggles
* Man muss keine Grundkonfiguration per GCODE machen. * Man muss keine Grundkonfiguration per GCODE machen.
* Man muss kein Werksreset durchführen * Man muss keinen Werksreset durchführen
--- ---
@@ -159,7 +159,7 @@ Bei diesem Mapping ist man eben darauf angewiesen, dass die Funktionen, die man
# Downloads # Downloads
Du kannst die fertigen Binärdateien hier herunterladen: https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/releases. Natürlich kannst du die Firmware mit PlatformIO oder der Arduino IDE auch selbst kompilieren. Du kannst die fertigen Binärdateien hier herunterladen: https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/releases. Natürlich kannst du die Firmware mit PlatformIO oder der Arduino IDE auch [selbst kompilieren](https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/wiki/Howto:-Compile-Firmware-with-PlatformIO).
Um es übersichtlich zu gestalten, beinhalten die Dateinamen die einzelnen Features. Um es übersichtlich zu gestalten, beinhalten die Dateinamen die einzelnen Features.
@@ -196,8 +196,7 @@ Für (fast) jede Kombination gibt es eine passende Firmware im Download-Bereich.
* Baby stepping during the printing process * Baby stepping during the printing process
* Bilinear Bed Leveling (BBL) * Bilinear Bed Leveling (BBL)
* Manual editing of the measuring points * Manual editing of the measuring points
* Full Anycubic touchscreen support * Full Support for all [Anycubic Touchscreens](https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/wiki/Types-of-Anycubic-Touchscreens)
* Support for the new Anycubic Touchscreen (DGUS II)
* Part cooling fan now runs at 100% instead of 70% * Part cooling fan now runs at 100% instead of 70%
* Pause & filament change function * Pause & filament change function
* Automatic EEPROM initialization * Automatic EEPROM initialization
@@ -206,6 +205,7 @@ Für (fast) jede Kombination gibt es eine passende Firmware im Download-Bereich.
* [Print bed size enlarged to 225 x 220 x 210 mm](https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/wiki/Set-new-print-bed-size) * [Print bed size enlarged to 225 x 220 x 210 mm](https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/wiki/Set-new-print-bed-size)
* Automatic 'slowdown' if data does not flow fast enough * Automatic 'slowdown' if data does not flow fast enough
* Fully automatic hotend and ultrabase PID tuning * Fully automatic hotend and ultrabase PID tuning
* Optimizations for [Trinamic TMC Stepper drivers](https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/wiki/Swap-stepper-motor-driver-for-TMC2xxx)
### What's better in coparison to other firmwares (bug fixes): ### What's better in coparison to other firmwares (bug fixes):
* Tidy special menu * Tidy special menu
@@ -286,7 +286,7 @@ With this mapping, you have to rely on the fact that the functions you want to u
![SpecialMenu](images/SpecialMenu.jpg) ![SpecialMenu](images/SpecialMenu.jpg)
![SpecialMenu DGUS](images/SpecialMenu_DGUS.jpg) ![SpecialMenu DGUS](images/SpecialMenu_DGUS.jpg)
## Manual Mesh Beld Leveling ## Manual Mesh Bed Leveling
![Page 1](images/MN_Page1.jpg) ![Page 1](images/MN_Page1.jpg)
![Page 1 DGUS](images/MN_Page1_DGUS.jpg) ![Page 1 DGUS](images/MN_Page1_DGUS.jpg)
@@ -300,7 +300,7 @@ With this mapping, you have to rely on the fact that the functions you want to u
![Page 4](images/MN_Page4.jpg) ![Page 4](images/MN_Page4.jpg)
![Page 4 DGUS](images/MN_Page4_DGUS.jpg) ![Page 4 DGUS](images/MN_Page4_DGUS.jpg)
## BLTouch Beld Leveling ## BLTouch Bed Leveling
![Page 1](images/BL_Page1.jpg) ![Page 1](images/BL_Page1.jpg)
@@ -311,7 +311,7 @@ With this mapping, you have to rely on the fact that the functions you want to u
# Download # Download
You can download the precompiled binary files from here: https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/releases. Of course you can also compile the firmware yourself with PlatformIO or the Arduino IDE. You can download the precompiled binary files from here: https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/releases. Of course you can also [compile the firmware yourself](https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/wiki/Howto:-Compile-Firmware-with-PlatformIO) with PlatformIO or the Arduino IDE.
In order to make it clear, the file names contain the individual features. In order to make it clear, the file names contain the individual features.
@@ -333,3 +333,5 @@ In order to make it clear, the file names contain the individual features.
For (almost) every combination there is a suitable firmware in the download area. ;) For (almost) every combination there is a suitable firmware in the download area. ;)
### If you like what I do you can buy me a coffee: [![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://paypal.me/oliverkoester)
<sub>*It doesn't have to be a generous donation. A few cents are enough to show me who is interested in further development. So the motivation stays and I just know that I am not programming for the bin ;)<sub>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 857 KiB

BIN
images/howto_build.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 834 KiB