7 Commits
1.0.5 ... 1.0.6

Author SHA1 Message Date
Knutwurst
5d3be2c342 - Rework of Touchscreen serial protocol handling
- Disable Endstop Beep
- Bugfix when stopping sd print while heating leads to a endless printing loop
- Bump version to 1.0.6 for next release
2020-07-11 13:29:06 +02:00
Knutwurst
f6836ebdcb Add correct Version to TFT which supports it. 2020-07-06 13:37:28 +02:00
Knutwurst
6e76022b13 Update README.md 2020-07-03 13:09:26 +02:00
Knutwurst
b0095e511c Update print bed size so gain a max of 220x225x210, which is within the limits of the hardware. 2020-07-03 13:05:06 +02:00
Knutwurst
0b2ea96958 - Hotend reheat fix
- Change default E steps for S Extruder
2020-06-27 22:45:26 +02:00
Knutwurst
c4cf58490e Update README.md 2020-06-21 23:36:48 +02:00
Knutwurst
e5029452e2 Add something to the readme ;) 2020-06-21 23:34:42 +02:00
5 changed files with 118 additions and 90 deletions

View File

@@ -772,7 +772,7 @@
*/
#if ENABLED(KNUTWURST_MEGAS)
#define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 400, 384 }
#define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 400, 392 }
#endif
#if DISABLED(KNUTWURST_MEGAS)
@@ -1176,16 +1176,16 @@
// @section machine
// The size of the print bed
#define X_BED_SIZE 215
#define Y_BED_SIZE 215
#define X_BED_SIZE 225
#define Y_BED_SIZE 220
// Travel limits (mm) after homing, corresponding to endstop positions.
#define X_MIN_POS -5
#define X_MIN_POS 0
#define Y_MIN_POS 0
#define Z_MIN_POS 0
#define X_MAX_POS X_BED_SIZE
#define Y_MAX_POS Y_BED_SIZE
#define Z_MAX_POS 205
#define Z_MAX_POS 210
/**
* Software Endstops
@@ -1839,7 +1839,7 @@
//
// Short 2KHz beep when endstops are hit
//
#define ENDSTOP_BEEP
//#define ENDSTOP_BEEP
//
// The duration and frequency for the UI feedback sound.

View File

@@ -38,7 +38,7 @@
* Defines the version of the Marlin build. Not to be confused with
* Marlin's own build number, e.g. 2.0.x.
*/
#define CUSTOM_BUILD_VERSION "1.0.5"
#define CUSTOM_BUILD_VERSION "1.0.6"
#ifndef STRING_DISTRIBUTION_DATE
#define STRING_DISTRIBUTION_DATE "2020-03-31"

View File

@@ -136,7 +136,7 @@ void AnycubicTouchscreenClass::Setup()
}
#endif
SelectedDirectory[0] = 0;
currentTouchscreenSelection[0] = 0;
SpecialMenu = false;
FilamentSensorEnabled = true;
@@ -302,19 +302,21 @@ void AnycubicTouchscreenClass::PausePrint()
TFTstate = ANYCUBIC_TFT_STATE_SDPAUSE_REQ;
}
void AnycubicTouchscreenClass::StopPrint()
inline void AnycubicTouchscreenClass::StopPrint()
{
// stop print, disable heaters
wait_for_user = false;
wait_for_heatup = false;
card.endFilePrint();
card.closefile();
#ifdef ANYCUBIC_TFT_DEBUGANYCUBIC_TFT_STATE_SDSTOP_REQ
IsParked = false;
if(card.isFileOpen) {
card.endFilePrint();
card.closefile();
}
#ifdef ANYCUBIC_TFT_DEBUG
SERIAL_ECHOLNPGM("DEBUG: Stopped and cleared");
#endif
print_job_timer.stop();
thermalManager.disable_all_heaters();
IsParked = false;
ai3m_pause_state = 0;
#ifdef ANYCUBIC_TFT_DEBUG
SERIAL_ECHOPAIR(" DEBUG: AI3M Pause State: ", ai3m_pause_state);
@@ -374,6 +376,7 @@ void AnycubicTouchscreenClass::ReheatNozzle()
// enable heaters again
HOTEND_LOOP()
thermalManager.reset_hotend_idle_timer(e);
#ifdef ANYCUBIC_TFT_DEBUG
SERIAL_ECHOLNPGM("DEBUG: Clear flags");
#endif
@@ -409,8 +412,8 @@ void AnycubicTouchscreenClass::ParkAfterStop()
SERIAL_ECHOLNPGM("DEBUG: SDSTOP: Park XY");
#endif
}
queue.inject_P(PSTR("M84")); // disable stepper motors
queue.inject_P(PSTR("M27")); // force report of SD status
queue.enqueue_now_P(PSTR("M84")); // disable stepper motors
queue.enqueue_now_P(PSTR("M27")); // force report of SD status
ai3m_pause_state = 0;
#ifdef ANYCUBIC_TFT_DEBUG
SERIAL_ECHOPAIR(" DEBUG: AI3M Pause State: ", ai3m_pause_state);
@@ -431,90 +434,94 @@ bool AnycubicTouchscreenClass::CodeSeen(char code)
void AnycubicTouchscreenClass::HandleSpecialMenu()
{
if (strcmp(SelectedDirectory, "<special menu>") == 0)
#ifdef ANYCUBIC_TFT_DEBUG
SERIAL_ECHOPAIR(" DEBUG: Special Menu Selection: ", currentTouchscreenSelection);
SERIAL_EOL();
#endif
if (strcasestr(currentTouchscreenSelection, "<Special Menu>") != NULL)
{
SpecialMenu = true;
}
else if (strcmp(SelectedDirectory, "<pid tune hotend>") == 0)
else if (strcasestr(currentTouchscreenSelection, "<PID Tune Hotend>") != NULL)
{
SERIAL_ECHOLNPGM("Special Menu: PID Tune Hotend");
queue.inject_P(PSTR("M106 S204\nM303 E0 S210 C15 U1"));
}
else if (strcmp(SelectedDirectory, "<pid tune ultrabase>") == 0)
else if (strcasestr(currentTouchscreenSelection, "<PID Tune Ultrabase>") != NULL)
{
SERIAL_ECHOLNPGM("Special Menu: PID Tune Ultrabase");
queue.inject_P(PSTR("M303 E-1 S60 C6 U1"));
}
else if (strcmp(SelectedDirectory, "<save eeprom>") == 0)
else if (strcasestr(currentTouchscreenSelection, "<Save EEPROM>") != NULL)
{
SERIAL_ECHOLNPGM("Special Menu: Save EEPROM");
queue.inject_P(PSTR("M500"));
buzzer.tone(105, 1108);
buzzer.tone(210, 1661);
}
else if (strcmp(SelectedDirectory, "<load fw defaults>") == 0)
else if (strcasestr(currentTouchscreenSelection, "<Load FW Defaults>") != NULL)
{
SERIAL_ECHOLNPGM("Special Menu: Load FW Defaults");
queue.inject_P(PSTR("M502"));
buzzer.tone(105, 1661);
buzzer.tone(210, 1108);
}
else if (strcmp(SelectedDirectory, "<preheat ultrabase>") == 0)
else if (strcasestr(currentTouchscreenSelection, "<Preheat Ultrabase>") != NULL)
{
SERIAL_ECHOLNPGM("Special Menu: Preheat Ultrabase");
queue.inject_P(PSTR("M140 S60"));
}
else if (strcmp(SelectedDirectory, "<start mesh leveling>") == 0)
else if (strcasestr(currentTouchscreenSelection, "<Start Mesh Leveling>") != NULL)
{
SERIAL_ECHOLNPGM("Special Menu: Start Mesh Leveling");
queue.inject_P(PSTR("G29 S1"));
}
else if (strcmp(SelectedDirectory, "<next mesh point>") == 0)
else if (strcasestr(currentTouchscreenSelection, "<Next Mesh Point>") != NULL)
{
SERIAL_ECHOLNPGM("Special Menu: Next Mesh Point");
queue.inject_P(PSTR("G29 S2"));
}
else if (strcmp(SelectedDirectory, "<z up 0.1>") == 0)
else if (strcasestr(currentTouchscreenSelection, "<Z Up 0.1>") != NULL)
{
SERIAL_ECHOLNPGM("Special Menu: Z Up 0.1");
queue.inject_P(PSTR("G91\nG1 Z+0.1\nG90"));
}
else if (strcmp(SelectedDirectory, "<z down 0.1>") == 0)
else if (strcasestr(currentTouchscreenSelection, "<Z Down 0.1>") != NULL)
{
SERIAL_ECHOLNPGM("Special Menu: Z Down 0.1");
queue.inject_P(PSTR("G91\nG1 Z-0.1\nG90"));
}
else if (strcmp(SelectedDirectory, "<z up 0.02>") == 0)
else if (strcasestr(currentTouchscreenSelection, "<Z Up 0.02>") != NULL)
{
SERIAL_ECHOLNPGM("Special Menu: Z Up 0.02");
queue.inject_P(PSTR("G91\nG1 Z+0.02\nG90"));
}
else if (strcmp(SelectedDirectory, "<z down 0.02>") == 0)
else if (strcasestr(currentTouchscreenSelection, "<Z Down 0.02>") != NULL)
{
SERIAL_ECHOLNPGM("Special Menu: Z Down 0.02");
queue.inject_P(PSTR("G91\nG1 Z-0.02\nG90"));
}
else if (strcmp(SelectedDirectory, "<z up 0.01>") == 0)
else if (strcasestr(currentTouchscreenSelection, "<Z Up 0.01>") != NULL)
{
SERIAL_ECHOLNPGM("Special Menu: Z Up 0.01");
queue.inject_P(PSTR("G91\nG1 Z+0.01\nG90"));
}
else if (strcmp(SelectedDirectory, "<z down 0.01>") == 0)
else if (strcasestr(currentTouchscreenSelection, "<Z Down 0.01>") != NULL)
{
SERIAL_ECHOLNPGM("Special Menu: Z Down 0.01");
queue.inject_P(PSTR("G91\nG1 Z-0.01\nG90"));
}
else if (strcmp(SelectedDirectory, "<fil. change pause>") == 0)
else if (strcasestr(currentTouchscreenSelection, "<Fil. Change Pause>") != NULL)
{
SERIAL_ECHOLNPGM("Special Menu: Fil. Change Pause");
FilamentChangePause();
}
else if (strcmp(SelectedDirectory, "<fil. change resume>") == 0)
else if (strcasestr(currentTouchscreenSelection, "<Fil. Change Resume>") != NULL)
{
SERIAL_ECHOLNPGM("Special Menu: Fil. Change Resume");
FilamentChangeResume();
}
else if (strcmp(SelectedDirectory, "<disable fil. sensor>") == 0)
else if (strcasestr(currentTouchscreenSelection, "<Disable Fil. Sensor>") != NULL)
{
SERIAL_ECHOLNPGM("Special Menu: Disable Filament Sensor");
FilamentSensorEnabled = false;
@@ -522,14 +529,14 @@ void AnycubicTouchscreenClass::HandleSpecialMenu()
buzzer.tone(105, 1108);
buzzer.tone(105, 1108);
}
else if (strcmp(SelectedDirectory, "<enable fil. sensor>") == 0)
else if (strcasestr(currentTouchscreenSelection, "<Enable Fil. Sensor>") != NULL)
{
SERIAL_ECHOLNPGM("Special Menu: Enable Filament Sensor");
FilamentSensorEnabled = true;
buzzer.tone(105, 1108);
buzzer.tone(105, 1108);
}
else if (strcmp(SelectedDirectory, "<exit>") == 0)
else if (strcasestr(currentTouchscreenSelection, "<Exit>") != NULL)
{
SpecialMenu = false;
}
@@ -542,56 +549,56 @@ void AnycubicTouchscreenClass::AnycubicTouchscreen()
switch (filenumber)
{
case 0: // Page 1
HARDWARE_SERIAL_PROTOCOLLNPGM("<Exit>");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Exit>");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Preheat Ultrabase>");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Preheat Ultrabase>");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Fil. Change Pause>");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Fil. Change Pause>");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Fil. Change Resume>");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Fil. Change Resume>");
HARDWARE_SERIAL_PROTOCOLLN("<Exit>");
HARDWARE_SERIAL_PROTOCOLLN("<Exit>");
HARDWARE_SERIAL_PROTOCOLLN("<Preheat Ultrabase>");
HARDWARE_SERIAL_PROTOCOLLN("<Preheat Ultrabase>");
HARDWARE_SERIAL_PROTOCOLLN("<Fil. Change Pause>");
HARDWARE_SERIAL_PROTOCOLLN("<Fil. Change Pause>");
HARDWARE_SERIAL_PROTOCOLLN("<Fil. Change Resume>");
HARDWARE_SERIAL_PROTOCOLLN("<Fil. Change Resume>");
break;
case 4: // Page 2
HARDWARE_SERIAL_PROTOCOLLNPGM("<Start Mesh Leveling>");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Start Mesh Leveling>");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Next Mesh Point>");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Next Mesh Point>");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Z Up 0.1>");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Z Up 0.1>");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Z Down 0.1>");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Z Down 0.1>");
HARDWARE_SERIAL_PROTOCOLLN("<Start Mesh Leveling>");
HARDWARE_SERIAL_PROTOCOLLN("<Start Mesh Leveling>");
HARDWARE_SERIAL_PROTOCOLLN("<Next Mesh Point>");
HARDWARE_SERIAL_PROTOCOLLN("<Next Mesh Point>");
HARDWARE_SERIAL_PROTOCOLLN("<Z Up 0.1>");
HARDWARE_SERIAL_PROTOCOLLN("<Z Up 0.1>");
HARDWARE_SERIAL_PROTOCOLLN("<Z Down 0.1>");
HARDWARE_SERIAL_PROTOCOLLN("<Z Down 0.1>");
break;
case 8: // Page 3
HARDWARE_SERIAL_PROTOCOLLNPGM("<Z Up 0.02>");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Z Up 0.02>");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Z Down 0.02>");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Z Down 0.02>");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Z Up 0.01>");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Z Up 0.01>");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Z Down 0.01>");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Z Down 0.01>");
HARDWARE_SERIAL_PROTOCOLLN("<Z Up 0.02>");
HARDWARE_SERIAL_PROTOCOLLN("<Z Up 0.02>");
HARDWARE_SERIAL_PROTOCOLLN("<Z Down 0.02>");
HARDWARE_SERIAL_PROTOCOLLN("<Z Down 0.02>");
HARDWARE_SERIAL_PROTOCOLLN("<Z Up 0.01>");
HARDWARE_SERIAL_PROTOCOLLN("<Z Up 0.01>");
HARDWARE_SERIAL_PROTOCOLLN("<Z Down 0.01>");
HARDWARE_SERIAL_PROTOCOLLN("<Z Down 0.01>");
break;
case 12: // Page 4
HARDWARE_SERIAL_PROTOCOLLNPGM("<PID Tune Hotend>");
HARDWARE_SERIAL_PROTOCOLLNPGM("<PID Tune Hotend>");
HARDWARE_SERIAL_PROTOCOLLNPGM("<PID Tune Ultrabase>");
HARDWARE_SERIAL_PROTOCOLLNPGM("<PID Tune Ultrabase>");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Save EEPROM>");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Save EEPROM>");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Load FW Defaults>");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Load FW Defaults>");
HARDWARE_SERIAL_PROTOCOLLN("<PID Tune Hotend>");
HARDWARE_SERIAL_PROTOCOLLN("<PID Tune Hotend>");
HARDWARE_SERIAL_PROTOCOLLN("<PID Tune Ultrabase>");
HARDWARE_SERIAL_PROTOCOLLN("<PID Tune Ultrabase>");
HARDWARE_SERIAL_PROTOCOLLN("<Save EEPROM>");
HARDWARE_SERIAL_PROTOCOLLN("<Save EEPROM>");
HARDWARE_SERIAL_PROTOCOLLN("<Load FW Defaults>");
HARDWARE_SERIAL_PROTOCOLLN("<Load FW Defaults>");
break;
case 16: // Page 5
HARDWARE_SERIAL_PROTOCOLLNPGM("<Disable Fil. Sensor>");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Disable Fil. Sensor>");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Enable Fil. Sensor>");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Enable Fil. Sensor>");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Exit>");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Exit>");
HARDWARE_SERIAL_PROTOCOLLN("<Disable Fil. Sensor>");
HARDWARE_SERIAL_PROTOCOLLN("<Disable Fil. Sensor>");
HARDWARE_SERIAL_PROTOCOLLN("<Enable Fil. Sensor>");
HARDWARE_SERIAL_PROTOCOLLN("<Enable Fil. Sensor>");
HARDWARE_SERIAL_PROTOCOLLN("<Exit>");
HARDWARE_SERIAL_PROTOCOLLN("<Exit>");
break;
default:
@@ -622,15 +629,15 @@ void AnycubicTouchscreenClass::AnycubicTouchscreen()
{
if (strcmp(card.getWorkDirName(), "/") == 0)
{
HARDWARE_SERIAL_PROTOCOLLNPGM("<Special Menu>");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Special Menu>");
HARDWARE_SERIAL_PROTOCOLLN("<Special Menu>");
HARDWARE_SERIAL_PROTOCOLLN("<Special Menu>");
SERIAL_ECHO(count);
SERIAL_ECHOLNPGM("<Special_Menu>");
}
else
{
HARDWARE_SERIAL_PROTOCOLLNPGM("/..");
HARDWARE_SERIAL_PROTOCOLLNPGM("/..");
HARDWARE_SERIAL_PROTOCOLLN("/..");
HARDWARE_SERIAL_PROTOCOLLN("/..");
SERIAL_ECHO(count);
SERIAL_ECHOLNPGM("/..");
}
@@ -683,8 +690,7 @@ void AnycubicTouchscreenClass::AnycubicTouchscreen()
#endif
else
{
HARDWARE_SERIAL_PROTOCOLLNPGM("<Special_Menu>");
HARDWARE_SERIAL_PROTOCOLLNPGM("<Special_Menu>");
// Do nothing?
}
}
@@ -850,7 +856,7 @@ void AnycubicTouchscreenClass::StateHandler()
// did we park the hotend already?
if ((!IsParked) && (!card.isPrinting()) && (!planner.movesplanned()))
{
queue.inject_P(PSTR("G91\nG1 E-1 F1800\nG90")); //retract
queue.enqueue_now_P(PSTR("G91\nG1 E-1 F1800\nG90")); //retract
ParkAfterStop();
IsParked = true;
}
@@ -1056,7 +1062,7 @@ void AnycubicTouchscreenClass::GetCommandFromTFT()
}
case 8: // A8 GET SD LIST
#ifdef SDSUPPORT
SelectedDirectory[0] = 0;
currentTouchscreenSelection[0] = 0;
if (!IS_SD_INSERTED())
{
HARDWARE_SERIAL_PROTOCOLPGM("J02");
@@ -1138,15 +1144,15 @@ void AnycubicTouchscreenClass::GetCommandFromTFT()
starpos = (strchr(TFTstrchr_pointer + 4, '*'));
if (TFTstrchr_pointer[4] == '/')
{
strcpy(SelectedDirectory, TFTstrchr_pointer + 5);
strcpy(currentTouchscreenSelection, TFTstrchr_pointer + 5);
}
else if (TFTstrchr_pointer[4] == '<')
{
strcpy(SelectedDirectory, TFTstrchr_pointer + 4);
strcpy(currentTouchscreenSelection, TFTstrchr_pointer + 4);
}
else
{
SelectedDirectory[0] = 0;
currentTouchscreenSelection[0] = 0;
if (starpos != NULL)
*(starpos - 1) = '\0';
@@ -1407,30 +1413,30 @@ void AnycubicTouchscreenClass::GetCommandFromTFT()
break;
case 26: // A26 refresh SD
#ifdef SDSUPPORT
if (SelectedDirectory[0] == 0)
if (currentTouchscreenSelection[0] == 0)
{
card.mount();
}
else
{
if ((SelectedDirectory[0] == '.') && (SelectedDirectory[1] == '.'))
if ((currentTouchscreenSelection[0] == '.') && (currentTouchscreenSelection[1] == '.'))
{
card.cdup();
}
else
{
if (SelectedDirectory[0] == '<')
if (currentTouchscreenSelection[0] == '<')
{
HandleSpecialMenu();
}
else
{
card.cd(SelectedDirectory);
card.cd(currentTouchscreenSelection);
}
}
}
SelectedDirectory[0] = 0;
currentTouchscreenSelection[0] = 0;
if (!IS_SD_INSERTED())
{

View File

@@ -33,7 +33,7 @@ char *ftostr32(const float &);
#define TFTBUFSIZE 4
#define TFT_MAX_CMD_SIZE 96
#define MSG_MY_VERSION "V116"
#define MSG_MY_VERSION "Knutwurst-1.0.5"
#define ANYCUBIC_TFT_STATE_IDLE 0
#define ANYCUBIC_TFT_STATE_SDPRINT 1
@@ -115,7 +115,7 @@ private:
void ReheatNozzle();
void ParkAfterStop();
char SelectedDirectory[30];
char currentTouchscreenSelection[30];
uint8_t SpecialMenu = false;
uint8_t FilamentSensorEnabled = true;

View File

@@ -19,6 +19,7 @@ Diese Firmwarekonfiguration aktiviert viele neue erweitere Funktionen der Marlin
* Automatische EEPROM Initialisierung
* Filament Runout Sensor kann im Menü deaktiviert werden
* Wiederaufnahme des Drucks nach Stromausfall (WiP)
* Druckbettgröße erweitert auf 220 x 225 x 210 mm
Besser im Vergleich zu anderen Firmwares (Bugfixes):
* Aufgeräumtes Special-Menü
@@ -75,6 +76,16 @@ Nein. Du hast die Treiber falsch herum eingebaut. Jetzt ist die Z-Diode (733A) v
Nein, lade dir einfach die korrekte Version herunter. Trotzdem solltest du die Steps noch kalibrieren.
>Wieso zeigt das Display keine Fehlermeldungen an und wieso sieht es noch genau so aus wie vorher?
Dein Mainboard (Trigorilla) kann nur Grafikdisplays wie das 2004 oder 12864 ansteuern. Auf denen würdest du auch exakt das sehen, was in der Firmware wirklich passiert - eben weil diese das anzeigen, was die Firmware sagt. Texte, Fehlermeldungen etc...
Bei deinem (und auch allen anderen) Touchdisplay sieht das anders aus. Das Touch-Display ist nur eine hübsche Aufmachung und übersetzt intern die eigentlichen Befehle in etwas, was das Mainboard versteht. Es ist bloß eine "Maske" für die eigentliche Firmware.
Es besteht ein 1-zu-1 Mapping zwischen den Befehlen, die das Mainboard umsetzen kann (Setze Temperatur auf Wert x, Bewege Motor um 10 mm nach rechts etc). Stellst du die Temperatur im Display auf 200°C ein, schickst du eigentlich nur einen Gcode wie z.B. "M104 T1 S200", was schon im Display vorhanden sein muss.
Bei diesem Mapping ist man eben darauf angewiesen, dass die Funktionen, die man nutzen will, auch im Display vorhanden sind. Und leider ist nicht viel drin. Die Dateiliste ist das einzige(!) über das man einigermaßen die Kontrolle hat, da sie dynamisch angezeigt wird. Leider muss man deswegen leider auch diese dämlichen Eigenarten in Kauf nehmen, wie die Tatsache, dass nach einem Bestätigen/Aktualisieren die Liste neu aufgebaut wird und somit oben beginnt.
---
### Bilder
@@ -120,6 +131,7 @@ This firmware configuration activates many new features of the Marlin firmware:
* Automatic EEPROM initialization
* Filament Runout Sensor can be deactivated in the menu
* Power outage support
* Print bed size enlarged to 220 x 225 x 210 mm
What's better in coparison to other firmwares (bug fixes):
* Tidy special menu
@@ -176,6 +188,16 @@ No. You installed the drivers the wrong way round. Now the Zener diode (733A) is
No, just download the correct version. Nevertheless, you should still calibrate the e-steps.
> Why doesn't the display show any error messages and why does it still look exactly as before?
Your mainboard (Trigorilla) can only control graphic displays like the 2004 or 12864. On them you would also see exactly what really happens in the firmware - to be precise, they show what the firmware says. Texts, error messages etc.
With your (and all other) touch displays, things look different. The touch display is just a pretty presentation and internally translates the actual commands into something that the motherboard understands. It is just a "mask" for the actual firmware.
There is a 1-to-1 mapping between the commands that the mainboard has implemented (set temperature to value x, move motor by 10 mm to the right, etc.). If you set the temperature in the display to 200°C, you actually only send a Gcode such as "M104 T1 S200", which must already be on the display firmware.
With this mapping, you have to rely on the fact that the functions you want to use are also available on the display. And unfortunately there is not much in it. The file list is the only thing(!) over which you have some control because it is displayed dynamically. Unfortunately, you have to accept these stupid idiosyncrasies, such as the fact that after confirming/updating the list is rebuilt and thus starts at the top.
---
### Pictures