45 Commits
1.1.3 ... 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
Knutwurst
fb65790f4d Update Version to 1.1.4 Release 2020-08-24 11:07:00 +02:00
Oliver Köster
f627c62df2 Update README.md 2020-08-24 08:21:52 +02:00
Oliver Köster
0c841d8d18 Update README.md 2020-08-24 08:20:28 +02:00
Knutwurst
e53792cbce Fix Z Feedrate on Mega X 2020-08-23 22:00:28 +02:00
Knutwurst
d6a74a59dd Fix typo. 2020-08-23 18:40:08 +02:00
Knutwurst
10987b38ba A bit more to read ;) 2020-08-23 17:19:15 +02:00
Knutwurst
3f4825db12 Disable DGUS for Mega X with BLTouch on 1.1 Motherboard 2020-08-23 15:32:38 +02:00
Knutwurst
e9fbd33fbe Add alternative solder point for BLTouch 2020-08-23 15:01:24 +02:00
Knutwurst
25c776aec3 Pictures of Stepper Test 2020-08-23 12:18:53 +02:00
Knutwurst
ef3a102902 More Images 2020-08-23 11:49:22 +02:00
Knutwurst
3fce6790fc Add single picture of new fans 2020-08-23 11:42:21 +02:00
Knutwurst
b8cbfd7569 - Disable DGUS Fix for Mega X to switch to the better Special Menu
- Bump Version to 1.1.4 Beta
- Fix Special Menu Handling when no SD Card is present
- Add Pictures for new WIKI Page
- Set Classic jerk to 0.2 since this is needed for Mesh Leveling
2020-08-23 11:40:00 +02:00
Knutwurst
2ef275c95b More default speeds from original MEGA_X_V1.2.6 Firmware 2020-08-22 21:19:48 +02:00
Knutwurst
98852f7164 Show Special Menu even if no SD card is inserted. 2020-08-22 15:07:43 +02:00
Knutwurst
810526e377 Some minor Touchscreen fixes 2020-08-22 14:44:01 +02:00
Knutwurst
f663765c7e Add detailed Version Info for DGUS II. 2020-08-21 23:52:11 +02:00
Knutwurst
1ef285fa1d Update README.md 2020-08-19 12:09:49 +02:00
Knutwurst
a35eba79cc Revert "Update README.md"
This reverts commit 8a3eef85b1.
2020-08-19 12:07:49 +02:00
Oliver Köster
21d5e7ecf7 Update README.md 2020-08-19 12:04:33 +02:00
Oliver Köster
8a3eef85b1 Update README.md 2020-08-18 17:48:14 +02:00
Oliver Köster
1db797f7e3 Update README.md 2020-08-18 17:47:19 +02:00
Knutwurst
7872416018 Add Print Bed Size image 2020-08-18 17:41:47 +02:00
Knutwurst
87ba51d21f Update README.md 2020-08-18 17:35:19 +02:00
Knutwurst
27c074ba25 Enable Junction Deviation for MEGA X 2020-08-17 16:40:50 +02:00
Oliver Köster
2c630117c1 Update README.md 2020-08-16 12:59:47 +02:00
25 changed files with 203 additions and 169 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, 20, 80 } #define DEFAULT_MAX_FEEDRATE { 120, 120, 18, 80 } // thanks to Simon Geis
#endif #endif
@@ -998,7 +998,7 @@
#endif #endif
#if ENABLED(KNUTWURST_MEGA_X) #if ENABLED(KNUTWURST_MEGA_X)
#define CLASSIC_JERK //#define CLASSIC_JERK
#endif #endif
#if ENABLED(CLASSIC_JERK) #if ENABLED(CLASSIC_JERK)
@@ -1012,7 +1012,7 @@
#if ENABLED(KNUTWURST_MEGA_X) #if ENABLED(KNUTWURST_MEGA_X)
#define DEFAULT_XJERK 4.0 #define DEFAULT_XJERK 4.0
#define DEFAULT_YJERK 4.0 #define DEFAULT_YJERK 4.0
#define DEFAULT_ZJERK 0.15 #define DEFAULT_ZJERK 0.2
#endif #endif
@@ -1046,7 +1046,7 @@
#endif #endif
#if ENABLED(KNUTWURST_MEGA_X) #if ENABLED(KNUTWURST_MEGA_X)
#define JUNCTION_DEVIATION_MM 0.013 // (mm) Distance from real junction edge #define JUNCTION_DEVIATION_MM 0.16 // (mm) Distance from real junction edge
#endif #endif
#endif #endif
@@ -1674,9 +1674,18 @@
#define Z_SAFE_HOMING_Y_POINT ((Y_BED_SIZE) / 2) // Y point for Z homing when homing all axes (G28). #define Z_SAFE_HOMING_Y_POINT ((Y_BED_SIZE) / 2) // Y point for Z homing when homing all axes (G28).
#endif #endif
// Homing speeds (mm/m) #if EITHER(KNUTWURST_MEGA, KNUTWURST_MEGA_S)
#define HOMING_FEEDRATE_XY (50*60) // Homing speeds (mm/m)
#define HOMING_FEEDRATE_Z (5*60) #define HOMING_FEEDRATE_XY (50*60)
#define HOMING_FEEDRATE_Z (5*60)
#endif
#if ENABLED(KNUTWURST_MEGA_X)
// Homing speeds (mm/m)
#define HOMING_FEEDRATE_XY (40*60)
#define HOMING_FEEDRATE_Z (6*60)
#endif
// Validate that endstops are triggered on homing moves // Validate that endstops are triggered on homing moves
#define VALIDATE_HOMING_ENDSTOPS #define VALIDATE_HOMING_ENDSTOPS

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.3" #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-16"
#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 X100 Y100 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;
} }
@@ -731,8 +748,8 @@ void AnycubicTouchscreenClass::PrintList()
// Cut off too long filenames. // Cut off too long filenames.
// They don't fit on the screen anyways. // They don't fit on the screen anyways.
if(fileNameLen > MAX_PRINTABLE_FILENAME_LEN) //if(fileNameLen > MAX_PRINTABLE_FILENAME_LEN)
fileNameLen = MAX_PRINTABLE_FILENAME_LEN; // fileNameLen = MAX_PRINTABLE_FILENAME_LEN;
char outputString[fileNameLen]; char outputString[fileNameLen];
@@ -790,7 +807,8 @@ void AnycubicTouchscreenClass::PrintList()
#endif #endif
else else
{ {
// Do nothing? HARDWARE_SERIAL_PROTOCOLLNPGM(SM_SPECIAL_MENU_S);
HARDWARE_SERIAL_PROTOCOLLNPGM(SM_SPECIAL_MENU_L);
} }
} }
@@ -972,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)
{ {
@@ -986,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;
} }
@@ -999,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())
{ {
@@ -1057,49 +1075,34 @@ void AnycubicTouchscreenClass::GetCommandFromTFT()
if(!TFTcomment_mode) if(!TFTcomment_mode)
{ {
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 '*'
@@ -1180,7 +1183,7 @@ void AnycubicTouchscreenClass::GetCommandFromTFT()
} }
else else
{ {
HARDWARE_SERIAL_PROTOCOLPGM("J02"); HARDWARE_SERIAL_PROTOCOLPGM("J02"); // J02 SD Card initilized
} }
} }
else else
@@ -1214,22 +1217,16 @@ 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())
{ if (CodeSeen('S'))
HARDWARE_SERIAL_PROTOCOLPGM("J02"); filenumber = CodeValue();
HARDWARE_SERIAL_ENTER();
} HARDWARE_SERIAL_PROTOCOLPGM("FN "); // Filelist start
else HARDWARE_SERIAL_ENTER();
{ PrintList();
if (CodeSeen('S')) HARDWARE_SERIAL_PROTOCOLPGM("END"); // Filelist stop
filenumber = CodeValue(); HARDWARE_SERIAL_ENTER();
HARDWARE_SERIAL_PROTOCOLPGM("FN "); // Filelist start
HARDWARE_SERIAL_ENTER();
PrintList();
HARDWARE_SERIAL_PROTOCOLPGM("END"); // Filelist stop
HARDWARE_SERIAL_ENTER();
}
#endif #endif
break; break;
case 9: // A9 pause sd print case 9: // A9 pause sd print
@@ -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,6 +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("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 "<<<<<<.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

@@ -1,4 +1,4 @@
# Knutwurst's i3 MEGA (M/S/X) Firmware (based on Marlin 2.0.5.4) # Knutwurst's i3 MEGA (M/S/X) Firmware <br>(based on Marlin 2.0.x)
<span style="color: red;">(BITTE GENAU DURCHLESEN! / PLEASE READ CAREFULLY!)</span> <span style="color: red;">(BITTE GENAU DURCHLESEN! / PLEASE READ CAREFULLY!)</span>
@@ -12,24 +12,22 @@
# Inhaltsverzeichnis (Deutsch) # Inhaltsverzeichnis (Deutsch)
- [Funktionen](#funktionen) - [Funktionen](#funktionen)
- [Was ist besser?](#besser-im-vergleich-zu-anderen-firmwares-bugfixes) - [Was ist besser?](#besser-im-vergleich-zu-anderen-firmwares-bugfixes)
- [Bekannte Bugs](#bekannte-bugs)
- [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)
# Table of Contets (english) # Table of Contets (english)
- [Features](#faq) - [Features](#features)
- [What's better?](#faq) - [What's better?](#whats-better-in-coparison-to-other-firmwares-bug-fixes)
- [Known Bugs](#faq)
- [Frequently asked questions (FAQ)](#faq) - [Frequently asked questions (FAQ)](#faq)
- [Photos / Pictures](#bilder) - [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)
@@ -37,23 +35,23 @@
## Funktionen ## Funktionen
* Mesh-Bed Kalibrierung / Autokalibrierung mit BLTouch [(Installations-Anleitung)](https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/wiki/BLTouch-Installation-(deutsch)) * Mesh-Bed Kalibrierung / Autokalibrierung mit [BLTouch (Installations-Anleitung)](https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/wiki/BLTouch-Installation-(deutsch))
* S-Kurven Beschleunigung * S-Kurven Beschleunigung
* "Juction Deviation" statt des klassischen "Jerk" * "Juction Deviation" statt des klassischen "Jerk"
* "Linear Pressure Control v1.5" aktiviert (kann mit M900 konfiguriert werden) * "Linear Pressure Control v1.5" aktiviert (kann mit M900 konfiguriert werden)
* 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
* Filament Runout Sensor kann im Menü temporär deaktiviert werden * Filament Runout Sensor kann im Menü temporär deaktiviert werden
* Wiederaufnahme des Drucks nach Stromausfall (WiP) * Wiederaufnahme des Drucks nach Stromausfall (WiP)
* Druckbettgröße erweitert auf 220 x 225 x 210 mm * [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):
@@ -69,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
--- ---
@@ -161,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.
@@ -191,23 +189,23 @@ Für (fast) jede Kombination gibt es eine passende Firmware im Download-Bereich.
## Features: ## Features:
* Mesh bed calibration / Auto calibration with BLTouch [(see installation Manual)](https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/wiki/BLTouch-Installation-(english)) * Mesh bed calibration / Auto calibration with [BLTouch (Installation Manual)](https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/wiki/BLTouch-Installation-(english))
* S-curve acceleration * S-curve acceleration
* "Juction Deviation" instead of the classic "Jerk" * "Juction Deviation" instead of the classic "Jerk"
* "Linear Pressure Control v1.5" activated (can be configured with M900) * "Linear Pressure Control v1.5" activated (can be configured with M900)
* 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
* Filament runout sensor can be temporarily deactivated in the menu * Filament runout sensor can be temporarily deactivated in the menu
* Resumption of printing after a power failure (WiP) * Resumption of printing after a power failure (WiP)
* Print bed size expanded to 220 x 225 x 210 mm * [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
@@ -288,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)
@@ -302,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)
@@ -313,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.
@@ -335,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>

View File

@@ -90,8 +90,8 @@ board_build.f_cpu = 16000000L
lib_deps = ${common.lib_deps} lib_deps = ${common.lib_deps}
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
src_filter = ${common.default_src_filter} +<src/HAL/AVR> src_filter = ${common.default_src_filter} +<src/HAL/AVR>
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14 -DKNUTWURST_MEGA_X -DKNUTWURST_DGUS2_TFT build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14 -DKNUTWURST_MEGA_X
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_S -DKNUTWURST_TMC -DKNUTWURST_BLTOUCH build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_S -DKNUTWURST_TMC -DKNUTWURST_BLTOUCH -DKNUTWURST_DGUS2_TFT
@@ -102,8 +102,8 @@ board_build.f_cpu = 16000000L
lib_deps = ${common.lib_deps} lib_deps = ${common.lib_deps}
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
src_filter = ${common.default_src_filter} +<src/HAL/AVR> src_filter = ${common.default_src_filter} +<src/HAL/AVR>
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14 -DKNUTWURST_MEGA_X -DKNUTWURST_DGUS2_TFT -DKNUTWURST_TMC build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14 -DKNUTWURST_MEGA_X -DKNUTWURST_TMC
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_S -DKNUTWURST_BLTOUCH build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_S -DKNUTWURST_BLTOUCH -DKNUTWURST_DGUS2_TFT
@@ -190,8 +190,8 @@ board_build.f_cpu = 16000000L
lib_deps = ${common.lib_deps} lib_deps = ${common.lib_deps}
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
src_filter = ${common.default_src_filter} +<src/HAL/AVR> src_filter = ${common.default_src_filter} +<src/HAL/AVR>
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14 -DKNUTWURST_MEGA_X -DKNUTWURST_DGUS2_TFT -DKNUTWURST_BLTOUCH build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14 -DKNUTWURST_MEGA_X -DKNUTWURST_BLTOUCH
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_S -DKNUTWURST_TMC build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_S -DKNUTWURST_TMC -DKNUTWURST_DGUS2_TFT
@@ -202,8 +202,8 @@ board_build.f_cpu = 16000000L
lib_deps = ${common.lib_deps} lib_deps = ${common.lib_deps}
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
src_filter = ${common.default_src_filter} +<src/HAL/AVR> src_filter = ${common.default_src_filter} +<src/HAL/AVR>
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14 -DKNUTWURST_MEGA_X -DKNUTWURST_DGUS2_TFT -DKNUTWURST_TMC -DKNUTWURST_BLTOUCH build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14 -DKNUTWURST_MEGA_X -DKNUTWURST_TMC -DKNUTWURST_BLTOUCH
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_S build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_S -DKNUTWURST_DGUS2_TFT
########################################################### ###########################################################
@@ -211,6 +211,10 @@ build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_S
# BL Touch Configurations ( TRIGORILLA_14_11 ) # # BL Touch Configurations ( TRIGORILLA_14_11 ) #
# # # #
########################################################### ###########################################################
#
# i3 Mega (normal Version)
#
[env:i3_MEGA_BLTOUCH_11] [env:i3_MEGA_BLTOUCH_11]
platform = atmelavr platform = atmelavr
board = megaatmega2560 board = megaatmega2560
@@ -233,6 +237,9 @@ build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14_11 -
build_unflags = -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_X -DKNUTWURST_DGUS2_TFT build_unflags = -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_X -DKNUTWURST_DGUS2_TFT
#
# i3 Mega S
#
[env:i3_MEGA_S_BLTOUCH_11] [env:i3_MEGA_S_BLTOUCH_11]
platform = atmelavr platform = atmelavr
board = megaatmega2560 board = megaatmega2560
@@ -280,6 +287,9 @@ build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14_11 -
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_X -DKNUTWURST_DGUS2_TFT build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_X -DKNUTWURST_DGUS2_TFT
#
# i3 Mega X
#
[env:i3_MEGA_X_BLTOUCH_11] [env:i3_MEGA_X_BLTOUCH_11]
platform = atmelavr platform = atmelavr
board = megaatmega2560 board = megaatmega2560
@@ -287,8 +297,8 @@ board_build.f_cpu = 16000000L
lib_deps = ${common.lib_deps} lib_deps = ${common.lib_deps}
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
src_filter = ${common.default_src_filter} +<src/HAL/AVR> src_filter = ${common.default_src_filter} +<src/HAL/AVR>
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14_11 -DKNUTWURST_MEGA_X -DKNUTWURST_DGUS2_TFT -DKNUTWURST_BLTOUCH build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14_11 -DKNUTWURST_MEGA_X -DKNUTWURST_BLTOUCH
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_S -DKNUTWURST_TMC build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_S -DKNUTWURST_TMC -DKNUTWURST_DGUS2_TFT
@@ -299,5 +309,5 @@ board_build.f_cpu = 16000000L
lib_deps = ${common.lib_deps} lib_deps = ${common.lib_deps}
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
src_filter = ${common.default_src_filter} +<src/HAL/AVR> src_filter = ${common.default_src_filter} +<src/HAL/AVR>
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14_11 -DKNUTWURST_MEGA_X -DKNUTWURST_DGUS2_TFT -DKNUTWURST_TMC -DKNUTWURST_BLTOUCH build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14_11 -DKNUTWURST_MEGA_X -DKNUTWURST_TMC -DKNUTWURST_BLTOUCH
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_S build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_S -DKNUTWURST_DGUS2_TFT

BIN
images/1N4733.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 549 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 857 KiB

BIN
images/bed_size_cura.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 234 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 591 KiB

BIN
images/burnt_stepper.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 374 KiB

BIN
images/diode_closeup.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 752 KiB

BIN
images/howto_build.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 834 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 888 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 776 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 571 KiB

BIN
images/new_mobo_fans.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 559 KiB

BIN
images/printer_open.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 607 KiB

BIN
images/stepper_closeup.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 596 KiB

BIN
images/stepper_vdd_gnd.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 602 KiB

BIN
images/stepper_vmot_gnd.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 577 KiB

View File

@@ -15,14 +15,34 @@
# Remove '-fmax-errors=5' from build_flags below to see all. # Remove '-fmax-errors=5' from build_flags below to see all.
# #
# *******************************************************************************************
# ** **
# ** If you want to select a specific configuration for your **
# ** printer, just open the PlatformIO tab on the left, select **
# ** PROJECT TASKS and then "env:i3_MEGA*" (your desired config) **
# ** From there you can build and upload your code. **
# ** **
# *******************************************************************************************
[platformio] [platformio]
src_dir = Marlin src_dir = Marlin
boards_dir = buildroot/share/PlatformIO/boards boards_dir = buildroot/share/PlatformIO/boards
#default_envs = mega2560 #default_envs = mega2560
#default_envs = i3_MEGA_S_TMC
extra_configs = i3_mega_envs.ini extra_configs = i3_mega_envs.ini
default_envs = i3_MEGA, i3_MEGA_TMC, i3_MEGA_S, i3_MEGA_S_DGUS, i3_MEGA_S_DGUS_TMC, i3_MEGA_S_TMC, i3_MEGA_X, i3_MEGA_X_TMC, i3_MEGA_BLTOUCH_10, i3_MEGA_TMC_BLTOUCH_10, i3_MEGA_S_BLTOUCH_10, i3_MEGA_S_DGUS_BLTOUCH_10, i3_MEGA_S_DGUS_TMC_BLTOUCH_10, i3_MEGA_S_TMC_BLTOUCH_10, i3_MEGA_X_BLTOUCH_10, i3_MEGA_X_TMC_BLTOUCH_10, i3_MEGA_BLTOUCH_11, i3_MEGA_TMC_BLTOUCH_11, i3_MEGA_S_BLTOUCH_11, i3_MEGA_S_DGUS_BLTOUCH_11, i3_MEGA_S_DGUS_TMC_BLTOUCH_11, i3_MEGA_S_TMC_BLTOUCH_11, i3_MEGA_X_BLTOUCH_11, i3_MEGA_X_TMC_BLTOUCH_11 default_envs = i3_MEGA, i3_MEGA_TMC, i3_MEGA_S, i3_MEGA_S_DGUS, i3_MEGA_S_DGUS_TMC, i3_MEGA_S_TMC, i3_MEGA_X, i3_MEGA_X_TMC, i3_MEGA_BLTOUCH_10, i3_MEGA_TMC_BLTOUCH_10, i3_MEGA_S_BLTOUCH_10, i3_MEGA_S_DGUS_BLTOUCH_10, i3_MEGA_S_DGUS_TMC_BLTOUCH_10, i3_MEGA_S_TMC_BLTOUCH_10, i3_MEGA_X_BLTOUCH_10, i3_MEGA_X_TMC_BLTOUCH_10, i3_MEGA_BLTOUCH_11, i3_MEGA_TMC_BLTOUCH_11, i3_MEGA_S_BLTOUCH_11, i3_MEGA_S_DGUS_BLTOUCH_11, i3_MEGA_S_DGUS_TMC_BLTOUCH_11, i3_MEGA_S_TMC_BLTOUCH_11, i3_MEGA_X_BLTOUCH_11, i3_MEGA_X_TMC_BLTOUCH_11
# *******************************************************************************************
# ** **
# ** If you want to select a specific configuration for your **
# ** printer, just open the PlatformIO tab on the left, select **
# ** PROJECT TASKS and then "env:i3_MEGA*" (your desired config) **
# ** From there you can build and upload your code. **
# ** **
# *******************************************************************************************
[common] [common]
default_src_filter = +<src/*> -<src/config> -<src/HAL> +<src/HAL/shared> default_src_filter = +<src/*> -<src/config> -<src/HAL> +<src/HAL/shared>