Compare commits
8 Commits
1.0.2
...
1.0.3-Bugf
Author | SHA1 | Date | |
---|---|---|---|
|
eaf291bf05 | ||
|
3bbe852b3e | ||
|
fb927ee602 | ||
|
33f611d0cc | ||
|
f93857edb1 | ||
|
b1dfd1fec5 | ||
|
b6ad592a8d | ||
|
ecb83dcc13 |
@@ -771,7 +771,15 @@
|
||||
* Override with M203
|
||||
* X, Y, Z, E0 [, E1[, E2...]]
|
||||
*/
|
||||
#if ENABLED(KNUTWURST_MEGAS)
|
||||
#define DEFAULT_MAX_FEEDRATE { 500, 500, 6, 30 }
|
||||
#endif
|
||||
|
||||
#if DISABLED(KNUTWURST_MEGAS)
|
||||
#define DEFAULT_MAX_FEEDRATE { 500, 500, 6, 60 }
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
//#define LIMITED_MAX_FR_EDITING // Limit edit via M203 or LCD to DEFAULT_MAX_FEEDRATE * 2
|
||||
#if ENABLED(LIMITED_MAX_FR_EDITING)
|
||||
@@ -799,10 +807,18 @@
|
||||
* M204 R Retract Acceleration
|
||||
* M204 T Travel Acceleration
|
||||
*/
|
||||
|
||||
#if ENABLED(KNUTWURST_MEGAS)
|
||||
#define DEFAULT_ACCELERATION 1600 // X, Y, Z and E acceleration for printing moves
|
||||
#define DEFAULT_RETRACT_ACCELERATION 1500 // E acceleration for retracts
|
||||
#define DEFAULT_TRAVEL_ACCELERATION 3000 // X, Y, Z acceleration for travel (non printing) moves
|
||||
#endif
|
||||
|
||||
#if DISABLED(KNUTWURST_MEGAS)
|
||||
#define DEFAULT_ACCELERATION 1600 // X, Y, Z and E acceleration for printing moves
|
||||
#define DEFAULT_RETRACT_ACCELERATION 3000 // E acceleration for retracts
|
||||
#define DEFAULT_TRAVEL_ACCELERATION 3000 // X, Y, Z acceleration for travel (non printing) moves
|
||||
|
||||
#endif
|
||||
/**
|
||||
* Default Jerk limits (mm/s)
|
||||
* Override with M205 X Y Z E
|
||||
@@ -1500,9 +1516,9 @@
|
||||
#define EEPROM_SETTINGS // Persistent storage with M500 and M501
|
||||
//#define DISABLE_M503 // Saves ~2700 bytes of PROGMEM. Disable for release!
|
||||
#define EEPROM_CHITCHAT // Give feedback on EEPROM commands. Disable to save PROGMEM.
|
||||
#define EEPROM_BOOT_SILENT // Keep M503 quiet and only give errors during first load
|
||||
//#define EEPROM_BOOT_SILENT // Keep M503 quiet and only give errors during first load
|
||||
#if ENABLED(EEPROM_SETTINGS)
|
||||
//#define EEPROM_AUTO_INIT // Init EEPROM automatically on any errors.
|
||||
#define EEPROM_AUTO_INIT // Init EEPROM automatically on any errors.
|
||||
#endif
|
||||
|
||||
//
|
||||
@@ -2334,9 +2350,10 @@
|
||||
* The new version is to be identified by a "TRIGORILLA1.1" lettering
|
||||
* on the upper left of the PCB silkscreen.
|
||||
*/
|
||||
#define TRIGORILLA_VERSION 1
|
||||
#define TRIGORILLA_VERSION 0
|
||||
|
||||
// Enable Anycubic TFT
|
||||
#define ANYCUBIC_TOUCHSCREEN
|
||||
#define ANYCUBIC_FILAMENT_RUNOUT_SENSOR
|
||||
#define ANYCUBIC_TFT_DEBUG
|
||||
//#define ANYCUBIC_TFT_DEBUG
|
||||
|
||||
|
@@ -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.2"
|
||||
#define CUSTOM_BUILD_VERSION "1.0.3"
|
||||
|
||||
#ifndef STRING_DISTRIBUTION_DATE
|
||||
#define STRING_DISTRIBUTION_DATE "2020-03-31"
|
||||
|
@@ -108,7 +108,7 @@ void AnycubicTouchscreenClass::Setup()
|
||||
#if ENABLED(ANYCUBIC_FILAMENT_RUNOUT_SENSOR)
|
||||
pinMode(19, INPUT);
|
||||
WRITE(19, HIGH);
|
||||
if (READ(19) == true)
|
||||
if ((READ(19) == true) && FilamentSensorEnabled)
|
||||
{
|
||||
HARDWARE_SERIAL_PROTOCOLPGM("J15"); //J15 FILAMENT LACK
|
||||
HARDWARE_SERIAL_ENTER();
|
||||
@@ -120,6 +120,7 @@ void AnycubicTouchscreenClass::Setup()
|
||||
|
||||
SelectedDirectory[0] = 0;
|
||||
SpecialMenu = false;
|
||||
FilamentSensorEnabled = true;
|
||||
|
||||
#ifdef STARTUP_CHIME
|
||||
buzzer.tone(250, 554); // C#5
|
||||
@@ -497,6 +498,21 @@ void AnycubicTouchscreenClass::HandleSpecialMenu()
|
||||
SERIAL_ECHOLNPGM("Special Menu: FilamentChange Resume");
|
||||
FilamentChangeResume();
|
||||
}
|
||||
else if (strcmp(SelectedDirectory, "<disable fil. sensor>") == 0)
|
||||
{
|
||||
SERIAL_ECHOLNPGM("Special Menu: Disable Filament Sensor");
|
||||
FilamentSensorEnabled = false;
|
||||
buzzer.tone(105, 1108);
|
||||
buzzer.tone(105, 1108);
|
||||
buzzer.tone(105, 1108);
|
||||
}
|
||||
else if (strcmp(SelectedDirectory, "<enable fil. sensor>") == 0)
|
||||
{
|
||||
SERIAL_ECHOLNPGM("Special Menu: Enable Filament Sensor");
|
||||
FilamentSensorEnabled = true;
|
||||
buzzer.tone(105, 1108);
|
||||
buzzer.tone(105, 1108);
|
||||
}
|
||||
else if (strcmp(SelectedDirectory, "<exit>") == 0)
|
||||
{
|
||||
SpecialMenu = false;
|
||||
@@ -541,6 +557,18 @@ void AnycubicTouchscreenClass::Ls()
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM("<Load FW Defaults>");
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM("<Load FW Defaults>");
|
||||
break;
|
||||
|
||||
|
||||
case 12: // Page 4
|
||||
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>");
|
||||
break;
|
||||
|
||||
|
||||
/*
|
||||
case 12: // Fourth Page
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM("<Z Up 0.1>");
|
||||
@@ -555,8 +583,8 @@ void AnycubicTouchscreenClass::Ls()
|
||||
*/
|
||||
|
||||
default:
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM("<Exit>");
|
||||
HARDWARE_SERIAL_PROTOCOLLNPGM("<Exit>");
|
||||
//HARDWARE_SERIAL_PROTOCOLLNPGM("<Exit>");
|
||||
//HARDWARE_SERIAL_PROTOCOLLNPGM("<Exit>");
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -796,7 +824,7 @@ void AnycubicTouchscreenClass::StateHandler()
|
||||
HARDWARE_SERIAL_ENTER();
|
||||
if ((!card.isPrinting()) && (!planner.movesplanned()))
|
||||
{
|
||||
// enter idle display state
|
||||
queue.clear();
|
||||
TFTstate = ANYCUBIC_TFT_STATE_IDLE;
|
||||
#ifdef ANYCUBIC_TFT_DEBUG
|
||||
SERIAL_ECHOLNPGM("TFT Serial Debug: SD print stopped... J16");
|
||||
@@ -823,68 +851,71 @@ void AnycubicTouchscreenClass::StateHandler()
|
||||
|
||||
void AnycubicTouchscreenClass::FilamentRunout()
|
||||
{
|
||||
#if ENABLED(ANYCUBIC_FILAMENT_RUNOUT_SENSOR)
|
||||
FilamentTestStatus = READ(19) & 0xff;
|
||||
|
||||
if (FilamentTestStatus > FilamentTestLastStatus)
|
||||
if(FilamentSensorEnabled == true)
|
||||
{
|
||||
// filament sensor pin changed, save current timestamp.
|
||||
const millis_t fil_ms = millis();
|
||||
static millis_t fil_delay;
|
||||
#if ENABLED(ANYCUBIC_FILAMENT_RUNOUT_SENSOR)
|
||||
FilamentTestStatus = READ(19) & 0xff;
|
||||
|
||||
// since this is inside a loop, only set delay time once
|
||||
if (FilamentSetMillis)
|
||||
if (FilamentTestStatus > FilamentTestLastStatus)
|
||||
{
|
||||
#ifdef ANYCUBIC_TFT_DEBUG
|
||||
SERIAL_ECHOLNPGM("DEBUG: Set filament trigger time");
|
||||
#endif
|
||||
// set the delayed timestamp to 3000ms later
|
||||
fil_delay = fil_ms + 3000UL;
|
||||
// this doesn't need to run until the filament is recovered again
|
||||
FilamentSetMillis = false;
|
||||
}
|
||||
// filament sensor pin changed, save current timestamp.
|
||||
const millis_t fil_ms = millis();
|
||||
static millis_t fil_delay;
|
||||
|
||||
// if three seconds passed and the sensor is still triggered,
|
||||
// we trigger the filament runout status
|
||||
if ((FilamentTestStatus > FilamentTestLastStatus) && (ELAPSED(fil_ms, fil_delay)))
|
||||
{
|
||||
if (!IsParked)
|
||||
// since this is inside a loop, only set delay time once
|
||||
if (FilamentSetMillis)
|
||||
{
|
||||
#ifdef ANYCUBIC_TFT_DEBUG
|
||||
SERIAL_ECHOLNPGM("DEBUG: 3000ms delay done");
|
||||
#endif
|
||||
if (card.isPrinting())
|
||||
{
|
||||
ai3m_pause_state = 3;
|
||||
; // set runout pause flag
|
||||
#ifdef ANYCUBIC_TFT_DEBUG
|
||||
SERIAL_ECHOPAIR(" DEBUG: AI3M Pause State: ", ai3m_pause_state);
|
||||
SERIAL_EOL();
|
||||
#endif
|
||||
PausePrint();
|
||||
}
|
||||
else if (!card.isPrinting())
|
||||
{
|
||||
HARDWARE_SERIAL_PROTOCOLPGM("J15"); //J15 FILAMENT LACK
|
||||
HARDWARE_SERIAL_ENTER();
|
||||
#ifdef ANYCUBIC_TFT_DEBUG
|
||||
SERIAL_ECHOLNPGM("TFT Serial Debug: Filament runout... J15");
|
||||
#endif
|
||||
FilamentTestLastStatus = FilamentTestStatus;
|
||||
}
|
||||
#ifdef ANYCUBIC_TFT_DEBUG
|
||||
SERIAL_ECHOLNPGM("DEBUG: Set filament trigger time");
|
||||
#endif
|
||||
// set the delayed timestamp to 3000ms later
|
||||
fil_delay = fil_ms + 3000UL;
|
||||
// this doesn't need to run until the filament is recovered again
|
||||
FilamentSetMillis = false;
|
||||
}
|
||||
|
||||
// if three seconds passed and the sensor is still triggered,
|
||||
// we trigger the filament runout status
|
||||
if ((FilamentTestStatus > FilamentTestLastStatus) && (ELAPSED(fil_ms, fil_delay)))
|
||||
{
|
||||
if (!IsParked)
|
||||
{
|
||||
#ifdef ANYCUBIC_TFT_DEBUG
|
||||
SERIAL_ECHOLNPGM("DEBUG: 3000ms delay done");
|
||||
#endif
|
||||
if (card.isPrinting())
|
||||
{
|
||||
ai3m_pause_state = 3;
|
||||
; // set runout pause flag
|
||||
#ifdef ANYCUBIC_TFT_DEBUG
|
||||
SERIAL_ECHOPAIR(" DEBUG: AI3M Pause State: ", ai3m_pause_state);
|
||||
SERIAL_EOL();
|
||||
#endif
|
||||
PausePrint();
|
||||
}
|
||||
else if (!card.isPrinting())
|
||||
{
|
||||
HARDWARE_SERIAL_PROTOCOLPGM("J15"); //J15 FILAMENT LACK
|
||||
HARDWARE_SERIAL_ENTER();
|
||||
#ifdef ANYCUBIC_TFT_DEBUG
|
||||
SERIAL_ECHOLNPGM("TFT Serial Debug: Filament runout... J15");
|
||||
#endif
|
||||
FilamentTestLastStatus = FilamentTestStatus;
|
||||
}
|
||||
}
|
||||
FilamentTestLastStatus = FilamentTestStatus;
|
||||
}
|
||||
FilamentTestLastStatus = FilamentTestStatus;
|
||||
}
|
||||
else if (FilamentTestStatus != FilamentTestLastStatus)
|
||||
{
|
||||
FilamentSetMillis = true; // set the timestamps on the next loop again
|
||||
FilamentTestLastStatus = FilamentTestStatus;
|
||||
#ifdef ANYCUBIC_TFT_DEBUG
|
||||
SERIAL_ECHOLNPGM("TFT Serial Debug: Filament runout recovered");
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
}
|
||||
else if (FilamentTestStatus != FilamentTestLastStatus)
|
||||
{
|
||||
FilamentSetMillis = true; // set the timestamps on the next loop again
|
||||
FilamentTestLastStatus = FilamentTestStatus;
|
||||
#ifdef ANYCUBIC_TFT_DEBUG
|
||||
SERIAL_ECHOLNPGM("TFT Serial Debug: Filament runout recovered");
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void AnycubicTouchscreenClass::GetCommandFromTFT()
|
||||
@@ -1252,7 +1283,7 @@ void AnycubicTouchscreenClass::GetCommandFromTFT()
|
||||
if (CodeSeen('F')) // Set feedrate
|
||||
movespeed = CodeValue();
|
||||
|
||||
queue.inject_P(PSTR("G91")); // relative coordinates
|
||||
queue.enqueue_now_P(PSTR("G91")); // relative coordinates
|
||||
|
||||
if (CodeSeen('X')) // Move in X direction
|
||||
{
|
||||
@@ -1322,7 +1353,7 @@ void AnycubicTouchscreenClass::GetCommandFromTFT()
|
||||
}
|
||||
queue.enqueue_one_now(value);
|
||||
}
|
||||
queue.inject_P(PSTR("G90")); // absolute coordinates
|
||||
queue.enqueue_now_P(PSTR("G90")); // absolute coordinates
|
||||
}
|
||||
HARDWARE_SERIAL_ENTER();
|
||||
break;
|
||||
|
@@ -117,6 +117,7 @@ private:
|
||||
|
||||
char SelectedDirectory[30];
|
||||
uint8_t SpecialMenu = false;
|
||||
uint8_t FilamentSensorEnabled = true;
|
||||
|
||||
#if ENABLED(ANYCUBIC_FILAMENT_RUNOUT_SENSOR)
|
||||
char FilamentTestStatus = false;
|
||||
|
@@ -10,10 +10,12 @@ Diese Firmwarekonfiguration aktiviert viele neue erweitere Funktionen der Marlin
|
||||
* S-Kurven Beschleunigung
|
||||
* "Juction Deviation" statt des klassischen "Jerk"
|
||||
* Babystepping während des Druckvorgangs
|
||||
* Biliniar Bed Leveling (BBL)
|
||||
* Bilinear Bed Leveling (BBL)
|
||||
* Manuelles Editieren der Messpunkte
|
||||
* Volle Anycubic Touchscreen Unterstützung
|
||||
* Pause & Filamentwechselfunktion
|
||||
* Automatische EEPROM Initialisierung
|
||||
* Filament Runout Sensor kann im Menü deaktiviert werden)
|
||||
|
||||
Besser im Vergleich zu anderen Firmwares (Bugfixes):
|
||||
* Aufgeräumtes Special-Menü
|
||||
@@ -26,7 +28,8 @@ Besser im Vergleich zu anderen Firmwares (Bugfixes):
|
||||
* Kein Aufhängen wenn man Pause drückt
|
||||
* Kein Aufhängen, wenn das Filament leer ist.
|
||||
|
||||
Bevor du irgendwas machst, nachdem du die Firmware geupdated hast, gehe zu `Special Menu > Load FW Defaults` um alte Einstellungen zu löschen!
|
||||
Bekannte Bugs:
|
||||
* Filament Runout Sensor wird bei jedem Neustart wieder aktiviert
|
||||
|
||||
---
|
||||
|
||||
|
Reference in New Issue
Block a user