Compare commits
31 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 769796ed4c | |||
| e8c92e0a95 | |||
| abf0693e8e | |||
| 47319cf64e | |||
| e358a2d7af | |||
| 044a64a1fb | |||
| cd91e0e3e1 | |||
| d728e35658 | |||
| dcd3e8a211 | |||
| ddd9d0cfd4 | |||
| 0e58ef6805 | |||
| 0e89022cc3 | |||
| b86336c3f5 | |||
| b69e75c89a | |||
| 825adbd67b | |||
| 1d224cc031 | |||
| 06c03fe2f0 | |||
| 87ff61a8a6 | |||
| 8c94ad0d26 | |||
| aacbebbebe | |||
| 31873ec707 | |||
| de0448343f | |||
| 69961dbba3 | |||
| f67feea093 | |||
| 6c050b8440 | |||
| b9f9f8f7d3 | |||
| 9f7f7354f5 | |||
| d3b8edb6a2 | |||
| aee475aa55 | |||
| 9083966c22 | |||
| 5406c533db |
@@ -279,12 +279,15 @@ const bool Z_ENDSTOPS_INVERTING = true; // set to true to invert the logic of th
|
||||
#endif
|
||||
|
||||
// Increase the FAN pwm frequency. Removes the PWM noise but increases heating in the FET/Arduino
|
||||
#define FAST_PWM_FAN
|
||||
//#define FAST_PWM_FAN
|
||||
|
||||
// M240 Triggers a camera by emulating a Canon RC-1 Remote
|
||||
// Data from: http://www.doc-diy.net/photo/rc-1_hacked/
|
||||
// #define PHOTOGRAPH_PIN 23
|
||||
|
||||
// SF send wrong arc g-codes when using Arc Point as fillet procedure
|
||||
//#define SF_ARC_FIX
|
||||
|
||||
#include "Configuration_adv.h"
|
||||
#include "thermistortables.h"
|
||||
|
||||
|
||||
+27
-1
@@ -6,7 +6,13 @@
|
||||
#include "temperature.h"
|
||||
//#include <EEPROM.h>
|
||||
|
||||
int plaPreheatHotendTemp;
|
||||
int plaPreheatHPBTemp;
|
||||
int plaPreheatFanSpeed;
|
||||
|
||||
int absPreheatHotendTemp;
|
||||
int absPreheatHPBTemp;
|
||||
int absPreheatFanSpeed;
|
||||
|
||||
template <class T> int EEPROM_writeAnything(int &ee, const T& value)
|
||||
{
|
||||
@@ -38,7 +44,7 @@ template <class T> int EEPROM_readAnything(int &ee, T& value)
|
||||
// the default values are used whenever there is a change to the data, to prevent
|
||||
// wrong data being written to the variables.
|
||||
// ALSO: always make sure the variables in the Store and retrieve sections are in the same order.
|
||||
#define EEPROM_VERSION "V06"
|
||||
#define EEPROM_VERSION "V07"
|
||||
|
||||
inline void EEPROM_StoreSettings()
|
||||
{
|
||||
@@ -58,6 +64,12 @@ inline void EEPROM_StoreSettings()
|
||||
EEPROM_writeAnything(i,max_z_jerk);
|
||||
EEPROM_writeAnything(i,max_e_jerk);
|
||||
EEPROM_writeAnything(i,add_homeing);
|
||||
EEPROM_writeAnything(i,plaPreheatHotendTemp);
|
||||
EEPROM_writeAnything(i,plaPreheatHPBTemp);
|
||||
EEPROM_writeAnything(i,plaPreheatFanSpeed);
|
||||
EEPROM_writeAnything(i,absPreheatHotendTemp);
|
||||
EEPROM_writeAnything(i,absPreheatHPBTemp);
|
||||
EEPROM_writeAnything(i,absPreheatFanSpeed);
|
||||
#ifdef PIDTEMP
|
||||
EEPROM_writeAnything(i,Kp);
|
||||
EEPROM_writeAnything(i,Ki);
|
||||
@@ -162,6 +174,12 @@ inline void EEPROM_RetrieveSettings(bool def=false)
|
||||
EEPROM_readAnything(i,max_z_jerk);
|
||||
EEPROM_readAnything(i,max_e_jerk);
|
||||
EEPROM_readAnything(i,add_homeing);
|
||||
EEPROM_readAnything(i,plaPreheatHotendTemp);
|
||||
EEPROM_readAnything(i,plaPreheatHPBTemp);
|
||||
EEPROM_readAnything(i,plaPreheatFanSpeed);
|
||||
EEPROM_readAnything(i,absPreheatHotendTemp);
|
||||
EEPROM_readAnything(i,absPreheatHPBTemp);
|
||||
EEPROM_readAnything(i,absPreheatFanSpeed);
|
||||
#ifndef PIDTEMP
|
||||
float Kp,Ki,Kd;
|
||||
#endif
|
||||
@@ -195,6 +213,14 @@ inline void EEPROM_RetrieveSettings(bool def=false)
|
||||
add_homeing[0] = add_homeing[1] = add_homeing[2] = 0;
|
||||
SERIAL_ECHO_START;
|
||||
SERIAL_ECHOLN("Using Default settings:");
|
||||
#ifdef ULTIPANEL
|
||||
plaPreheatHotendTemp = PLA_PREHEAT_HOTEND_TEMP;
|
||||
plaPreheatHPBTemp = PLA_PREHEAT_HPB_TEMP;
|
||||
plaPreheatFanSpeed = PLA_PREHEAT_FAN_SPEED;
|
||||
absPreheatHotendTemp = ABS_PREHEAT_HOTEND_TEMP;
|
||||
absPreheatHPBTemp = ABS_PREHEAT_HPB_TEMP;
|
||||
absPreheatFanSpeed = ABS_PREHEAT_FAN_SPEED;
|
||||
#endif
|
||||
}
|
||||
#ifdef EEPROM_CHITCHAT
|
||||
EEPROM_printSettings();
|
||||
|
||||
Binary file not shown.
+1
-1
@@ -107,7 +107,7 @@ FORCE_INLINE void serialprintPGM(const char *str)
|
||||
void get_command();
|
||||
void process_commands();
|
||||
|
||||
void manage_inactivity(byte debug);
|
||||
void manage_inactivity();
|
||||
|
||||
#if X_ENABLE_PIN > -1
|
||||
#define enable_x() WRITE(X_ENABLE_PIN, X_ENABLE_ON)
|
||||
|
||||
+46
-22
@@ -245,6 +245,14 @@ void enquecommand(const char *cmd)
|
||||
}
|
||||
}
|
||||
|
||||
void setup_killpin()
|
||||
{
|
||||
#if( KILL_PIN>-1 )
|
||||
pinMode(KILL_PIN,INPUT);
|
||||
WRITE(KILL_PIN,HIGH);
|
||||
#endif
|
||||
}
|
||||
|
||||
void setup_photpin()
|
||||
{
|
||||
#ifdef PHOTOGRAPH_PIN
|
||||
@@ -276,7 +284,8 @@ void suicide()
|
||||
}
|
||||
|
||||
void setup()
|
||||
{
|
||||
{
|
||||
setup_killpin();
|
||||
setup_powerhold();
|
||||
MYSERIAL.begin(BAUDRATE);
|
||||
SERIAL_PROTOCOLLNPGM("start");
|
||||
@@ -365,7 +374,7 @@ void loop()
|
||||
}
|
||||
//check heater every n milliseconds
|
||||
manage_heater();
|
||||
manage_inactivity(1);
|
||||
manage_inactivity();
|
||||
checkHitEndstops();
|
||||
LCD_STATUS;
|
||||
}
|
||||
@@ -653,8 +662,8 @@ void process_commands()
|
||||
previous_millis_cmd = millis();
|
||||
while(millis() < codenum ){
|
||||
manage_heater();
|
||||
manage_inactivity(1);
|
||||
LCD_STATUS;
|
||||
manage_inactivity();
|
||||
LCD_STATUS;
|
||||
}
|
||||
break;
|
||||
#ifdef FWRETRACT
|
||||
@@ -816,21 +825,20 @@ void process_commands()
|
||||
|
||||
st_synchronize();
|
||||
previous_millis_cmd = millis();
|
||||
if (codenum > 0)
|
||||
{
|
||||
if (codenum > 0){
|
||||
codenum += millis(); // keep track of when we started waiting
|
||||
while(millis() < codenum && !CLICKED){
|
||||
manage_heater();
|
||||
manage_inactivity(1);
|
||||
LCD_STATUS;
|
||||
}
|
||||
manage_inactivity();
|
||||
LCD_STATUS;
|
||||
}
|
||||
}else{
|
||||
while(!CLICKED) {
|
||||
while(!CLICKED){
|
||||
manage_heater();
|
||||
manage_inactivity(1);
|
||||
LCD_STATUS;
|
||||
}
|
||||
}
|
||||
manage_inactivity();
|
||||
LCD_STATUS;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
@@ -1064,7 +1072,7 @@ void process_commands()
|
||||
codenum = millis();
|
||||
}
|
||||
manage_heater();
|
||||
manage_inactivity(1);
|
||||
manage_inactivity();
|
||||
LCD_STATUS;
|
||||
#ifdef TEMP_RESIDENCY_TIME
|
||||
/* start/restart the TEMP_RESIDENCY_TIME timer whenever we reach target temp for the first time
|
||||
@@ -1102,7 +1110,7 @@ void process_commands()
|
||||
codenum = millis();
|
||||
}
|
||||
manage_heater();
|
||||
manage_inactivity(1);
|
||||
manage_inactivity();
|
||||
LCD_STATUS;
|
||||
}
|
||||
LCD_MESSAGEPGM(MSG_BED_DONE);
|
||||
@@ -1568,7 +1576,15 @@ void get_coordinates()
|
||||
|
||||
void get_arc_coordinates()
|
||||
{
|
||||
#ifdef SF_ARC_FIX
|
||||
bool relative_mode_backup = relative_mode;
|
||||
relative_mode = true;
|
||||
#endif
|
||||
get_coordinates();
|
||||
#ifdef SF_ARC_FIX
|
||||
relative_mode=relative_mode_backup;
|
||||
#endif
|
||||
|
||||
if(code_seen('I')) {
|
||||
offset[0] = code_value();
|
||||
}
|
||||
@@ -1602,8 +1618,14 @@ void prepare_move()
|
||||
{
|
||||
clamp_to_software_endstops(destination);
|
||||
|
||||
previous_millis_cmd = millis();
|
||||
plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate*feedmultiply/60/100.0, active_extruder);
|
||||
previous_millis_cmd = millis();
|
||||
// Do not use feedmultiply for E or Z only moves
|
||||
if( (current_position[X_AXIS] == destination [X_AXIS]) && (current_position[Y_AXIS] == destination [Y_AXIS])) {
|
||||
plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate/60, active_extruder);
|
||||
}
|
||||
else {
|
||||
plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate*feedmultiply/60/100.0, active_extruder);
|
||||
}
|
||||
for(int8_t i=0; i < NUM_AXIS; i++) {
|
||||
current_position[i] = destination[i];
|
||||
}
|
||||
@@ -1658,7 +1680,7 @@ void controllerFan()
|
||||
}
|
||||
#endif
|
||||
|
||||
void manage_inactivity(byte debug)
|
||||
void manage_inactivity()
|
||||
{
|
||||
if( (millis() - previous_millis_cmd) > max_inactive_time )
|
||||
if(max_inactive_time)
|
||||
@@ -1676,6 +1698,10 @@ void manage_inactivity(byte debug)
|
||||
}
|
||||
}
|
||||
}
|
||||
#if( KILL_PIN>-1 )
|
||||
if( 0 == READ(KILL_PIN) )
|
||||
kill();
|
||||
#endif
|
||||
#ifdef CONTROLLERFAN_PIN
|
||||
controllerFan(); //Check if fan should be turned on to cool stepper drivers down
|
||||
#endif
|
||||
@@ -1716,7 +1742,7 @@ void kill()
|
||||
if(PS_ON_PIN > -1) pinMode(PS_ON_PIN,INPUT);
|
||||
SERIAL_ERROR_START;
|
||||
SERIAL_ERRORLNPGM(MSG_ERR_KILLED);
|
||||
LCD_MESSAGEPGM(MSG_KILLED);
|
||||
LCD_ALERTMESSAGEPGM(MSG_KILLED);
|
||||
suicide();
|
||||
while(1); // Wait for reset
|
||||
}
|
||||
@@ -1804,5 +1830,3 @@ void setPwmFrequency(uint8_t pin, int val)
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
Binary file not shown.
+1
-3
@@ -369,7 +369,6 @@ bool Sd2Card::init(uint8_t sckRateID, uint8_t chipSelectPin) {
|
||||
*
|
||||
* \param[in] blockNumber Logical block to be read.
|
||||
* \param[out] dst Pointer to the location that will receive the data.
|
||||
|
||||
* \return The value one, true, is returned for success and
|
||||
* the value zero, false, is returned for failure.
|
||||
*/
|
||||
@@ -639,5 +638,4 @@ bool Sd2Card::writeStop() {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
+37
-3
@@ -867,7 +867,7 @@ bool SdBaseFile::openParent(SdBaseFile* dir) {
|
||||
}
|
||||
// search for parent in '../..'
|
||||
do {
|
||||
if (file.readDir(&entry) != 32) goto fail;
|
||||
if (file.readDir(&entry, NULL) != 32) goto fail;
|
||||
c = entry.firstClusterLow;
|
||||
c |= (uint32_t)entry.firstClusterHigh << 16;
|
||||
} while (c != cluster);
|
||||
@@ -1108,10 +1108,16 @@ int16_t SdBaseFile::read(void* buf, uint16_t nbyte) {
|
||||
* readDir() called before a directory has been opened, this is not
|
||||
* a directory file or an I/O error occurred.
|
||||
*/
|
||||
int8_t SdBaseFile::readDir(dir_t* dir) {
|
||||
int8_t SdBaseFile::readDir(dir_t* dir, char* longFilename) {
|
||||
int16_t n;
|
||||
// if not a directory file or miss-positioned return an error
|
||||
if (!isDir() || (0X1F & curPosition_)) return -1;
|
||||
|
||||
//If we have a longFilename buffer, mark it as invalid. If we find a long filename it will be filled automaticly.
|
||||
if (longFilename != NULL)
|
||||
{
|
||||
longFilename[0] = '\0';
|
||||
}
|
||||
|
||||
while (1) {
|
||||
n = read(dir, sizeof(dir_t));
|
||||
@@ -1120,6 +1126,34 @@ int8_t SdBaseFile::readDir(dir_t* dir) {
|
||||
if (dir->name[0] == DIR_NAME_FREE) return 0;
|
||||
// skip empty entries and entry for . and ..
|
||||
if (dir->name[0] == DIR_NAME_DELETED || dir->name[0] == '.') continue;
|
||||
//Fill the long filename if we have a long filename entry,
|
||||
// long filename entries are stored before the actual filename.
|
||||
if (DIR_IS_LONG_NAME(dir) && longFilename != NULL)
|
||||
{
|
||||
vfat_t *VFAT = (vfat_t*)dir;
|
||||
//Sanity check the VFAT entry. The first cluster is always set to zero. And th esequence number should be higher then 0
|
||||
if (VFAT->firstClusterLow == 0 && (VFAT->sequenceNumber & 0x1F) > 0 && (VFAT->sequenceNumber & 0x1F) <= MAX_VFAT_ENTRIES)
|
||||
{
|
||||
//TODO: Store the filename checksum to verify if a none-long filename aware system modified the file table.
|
||||
n = ((VFAT->sequenceNumber & 0x1F) - 1) * 13;
|
||||
longFilename[n+0] = VFAT->name1[0];
|
||||
longFilename[n+1] = VFAT->name1[1];
|
||||
longFilename[n+2] = VFAT->name1[2];
|
||||
longFilename[n+3] = VFAT->name1[3];
|
||||
longFilename[n+4] = VFAT->name1[4];
|
||||
longFilename[n+5] = VFAT->name2[0];
|
||||
longFilename[n+6] = VFAT->name2[1];
|
||||
longFilename[n+7] = VFAT->name2[2];
|
||||
longFilename[n+8] = VFAT->name2[3];
|
||||
longFilename[n+9] = VFAT->name2[4];
|
||||
longFilename[n+10] = VFAT->name2[5];
|
||||
longFilename[n+11] = VFAT->name3[0];
|
||||
longFilename[n+12] = VFAT->name3[1];
|
||||
//If this VFAT entry is the last one, add a NUL terminator at the end of the string
|
||||
if (VFAT->sequenceNumber & 0x40)
|
||||
longFilename[n+13] = '\0';
|
||||
}
|
||||
}
|
||||
// return if normal file or subdirectory
|
||||
if (DIR_IS_FILE_OR_SUBDIR(dir)) return n;
|
||||
}
|
||||
@@ -1788,4 +1822,4 @@ void (*SdBaseFile::oldDateTime_)(uint16_t& date, uint16_t& time) = 0; // NOLINT
|
||||
#endif // ALLOW_DEPRECATED_FUNCTIONS
|
||||
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
+3
-3
@@ -283,7 +283,7 @@ class SdBaseFile {
|
||||
bool printName();
|
||||
int16_t read();
|
||||
int16_t read(void* buf, uint16_t nbyte);
|
||||
int8_t readDir(dir_t* dir);
|
||||
int8_t readDir(dir_t* dir, char* longFilename);
|
||||
static bool remove(SdBaseFile* dirFile, const char* path);
|
||||
bool remove();
|
||||
/** Set the file's current position to zero. */
|
||||
@@ -455,7 +455,7 @@ class SdBaseFile {
|
||||
* \param[out] dir The dir_t struct that will receive the data.
|
||||
* \return bytes read for success zero for eof or -1 for failure.
|
||||
*/
|
||||
int8_t readDir(dir_t& dir) {return readDir(&dir);} // NOLINT
|
||||
int8_t readDir(dir_t& dir, char* longFilename) {return readDir(&dir, longFilename);} // NOLINT
|
||||
/** \deprecated Use:
|
||||
* static uint8_t remove(SdBaseFile* dirFile, const char* path);
|
||||
* \param[in] dirFile The directory that contains the file.
|
||||
@@ -480,4 +480,4 @@ class SdBaseFile {
|
||||
};
|
||||
|
||||
#endif // SdBaseFile_h
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -108,7 +108,14 @@ uint8_t const SOFT_SPI_SCK_PIN = 13;
|
||||
* a pure virtual function is called.
|
||||
*/
|
||||
#define USE_CXA_PURE_VIRTUAL 1
|
||||
/**
|
||||
* Defines for long (vfat) filenames
|
||||
*/
|
||||
/** Number of VFAT entries used. Every entry has 13 UTF-16 characters */
|
||||
#define MAX_VFAT_ENTRIES (2)
|
||||
/** Total size of the buffer used to store the long filenames */
|
||||
#define LONG_FILENAME_LENGTH (13*MAX_VFAT_ENTRIES+1)
|
||||
#endif // SdFatConfig_h
|
||||
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
+43
-7
@@ -22,6 +22,8 @@
|
||||
|
||||
#ifndef SdFatStructs_h
|
||||
#define SdFatStructs_h
|
||||
|
||||
#define PACKED __attribute__((__packed__))
|
||||
/**
|
||||
* \file
|
||||
* \brief FAT file structures
|
||||
@@ -95,7 +97,7 @@ struct partitionTable {
|
||||
uint32_t firstSector;
|
||||
/** Length of the partition, in blocks. */
|
||||
uint32_t totalSectors;
|
||||
};
|
||||
} PACKED;
|
||||
/** Type name for partitionTable */
|
||||
typedef struct partitionTable part_t;
|
||||
//------------------------------------------------------------------------------
|
||||
@@ -119,7 +121,7 @@ struct masterBootRecord {
|
||||
uint8_t mbrSig0;
|
||||
/** Second MBR signature byte. Must be 0XAA */
|
||||
uint8_t mbrSig1;
|
||||
};
|
||||
} PACKED;
|
||||
/** Type name for masterBootRecord */
|
||||
typedef struct masterBootRecord mbr_t;
|
||||
//------------------------------------------------------------------------------
|
||||
@@ -247,7 +249,7 @@ struct fat_boot {
|
||||
uint8_t bootSectorSig0;
|
||||
/** must be 0XAA */
|
||||
uint8_t bootSectorSig1;
|
||||
};
|
||||
} PACKED;
|
||||
/** Type name for FAT Boot Sector */
|
||||
typedef struct fat_boot fat_boot_t;
|
||||
//------------------------------------------------------------------------------
|
||||
@@ -401,7 +403,7 @@ struct fat32_boot {
|
||||
uint8_t bootSectorSig0;
|
||||
/** must be 0XAA */
|
||||
uint8_t bootSectorSig1;
|
||||
};
|
||||
} PACKED;
|
||||
/** Type name for FAT32 Boot Sector */
|
||||
typedef struct fat32_boot fat32_boot_t;
|
||||
//------------------------------------------------------------------------------
|
||||
@@ -441,7 +443,7 @@ struct fat32_fsinfo {
|
||||
uint8_t reserved2[12];
|
||||
/** must be 0X00, 0X00, 0X55, 0XAA */
|
||||
uint8_t tailSignature[4];
|
||||
};
|
||||
} PACKED;
|
||||
/** Type name for FAT32 FSINFO Sector */
|
||||
typedef struct fat32_fsinfo fat32_fsinfo_t;
|
||||
//------------------------------------------------------------------------------
|
||||
@@ -539,12 +541,46 @@ struct directoryEntry {
|
||||
uint16_t firstClusterLow;
|
||||
/** 32-bit unsigned holding this file's size in bytes. */
|
||||
uint32_t fileSize;
|
||||
};
|
||||
} PACKED;
|
||||
/**
|
||||
* \struct directoryVFATEntry
|
||||
* \brief VFAT long filename directory entry
|
||||
*
|
||||
* directoryVFATEntries are found in the same list as normal directoryEntry.
|
||||
* But have the attribute field set to DIR_ATT_LONG_NAME.
|
||||
*
|
||||
* Long filenames are saved in multiple directoryVFATEntries.
|
||||
* Each entry containing 13 UTF-16 characters.
|
||||
*/
|
||||
struct directoryVFATEntry {
|
||||
/**
|
||||
* Sequence number. Consists of 2 parts:
|
||||
* bit 6: indicates first long filename block for the next file
|
||||
* bit 0-4: the position of this long filename block (first block is 1)
|
||||
*/
|
||||
uint8_t sequenceNumber;
|
||||
/** First set of UTF-16 characters */
|
||||
uint16_t name1[5];//UTF-16
|
||||
/** attributes (at the same location as in directoryEntry), always 0x0F */
|
||||
uint8_t attributes;
|
||||
/** Reserved for use by Windows NT. Always 0. */
|
||||
uint8_t reservedNT;
|
||||
/** Checksum of the short 8.3 filename, can be used to checked if the file system as modified by a not-long-filename aware implementation. */
|
||||
uint8_t checksum;
|
||||
/** Second set of UTF-16 characters */
|
||||
uint16_t name2[6];//UTF-16
|
||||
/** firstClusterLow is always zero for longFilenames */
|
||||
uint16_t firstClusterLow;
|
||||
/** Third set of UTF-16 characters */
|
||||
uint16_t name3[2];//UTF-16
|
||||
} PACKED;
|
||||
//------------------------------------------------------------------------------
|
||||
// Definitions for directory entries
|
||||
//
|
||||
/** Type name for directoryEntry */
|
||||
typedef struct directoryEntry dir_t;
|
||||
/** Type name for directoryVFATEntry */
|
||||
typedef struct directoryVFATEntry vfat_t;
|
||||
/** escape for name[0] = 0XE5 */
|
||||
uint8_t const DIR_NAME_0XE5 = 0X05;
|
||||
/** name[0] value for entry that is free after being "deleted" */
|
||||
@@ -607,4 +643,4 @@ static inline uint8_t DIR_IS_FILE_OR_SUBDIR(const dir_t* dir) {
|
||||
#endif // SdFatStructs_h
|
||||
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -51,7 +51,7 @@ void CardReader::lsDive(const char *prepend,SdFile parent)
|
||||
dir_t p;
|
||||
uint8_t cnt=0;
|
||||
|
||||
while (parent.readDir(p) > 0)
|
||||
while (parent.readDir(p, longFilename) > 0)
|
||||
{
|
||||
if( DIR_IS_SUBDIR(&p) && lsAction!=LS_Count && lsAction!=LS_GetFilename) // hence LS_SerialPrint
|
||||
{
|
||||
@@ -429,16 +429,16 @@ void CardReader::checkautostart(bool force)
|
||||
|
||||
char autoname[30];
|
||||
sprintf(autoname,"auto%i.g",lastnr);
|
||||
for(int8_t i=0;i<(int)strlen(autoname);i++)
|
||||
for(int8_t i=0;i<(int8_t)strlen(autoname);i++)
|
||||
autoname[i]=tolower(autoname[i]);
|
||||
dir_t p;
|
||||
|
||||
root.rewind();
|
||||
|
||||
bool found=false;
|
||||
while (root.readDir(p) > 0)
|
||||
while (root.readDir(p, NULL) > 0)
|
||||
{
|
||||
for(int8_t i=0;i<(int)strlen((char*)p.name);i++)
|
||||
for(int8_t i=0;i<(int8_t)strlen((char*)p.name);i++)
|
||||
p.name[i]=tolower(p.name[i]);
|
||||
//Serial.print((char*)p.name);
|
||||
//Serial.print(" ");
|
||||
|
||||
+3
-2
@@ -45,7 +45,8 @@ public:
|
||||
bool saving;
|
||||
bool sdprinting ;
|
||||
bool cardOK ;
|
||||
char filename[12];
|
||||
char filename[13];
|
||||
char longFilename[LONG_FILENAME_LENGTH];
|
||||
bool filenameIsDir;
|
||||
int lastnr; //last number of the autostart;
|
||||
private:
|
||||
@@ -72,4 +73,4 @@ private:
|
||||
#define IS_SD_PRINTING (false)
|
||||
|
||||
#endif //SDSUPPORT
|
||||
#endif
|
||||
#endif
|
||||
|
||||
+497
-324
@@ -1,325 +1,498 @@
|
||||
#ifndef LANGUAGE_H
|
||||
#define LANGUAGE_H
|
||||
|
||||
// Languages
|
||||
// 1 Custom (For you to add your own messages)
|
||||
// 2 English
|
||||
// 3 French (Waiting translation)
|
||||
// 4 German
|
||||
// 5 Etc
|
||||
|
||||
#define LANGUAGE_CHOICE 1 // Pick your language from the list above
|
||||
|
||||
#define PROTOCOL_VERSION "1.0"
|
||||
|
||||
#if MOTHERBOARD == 7 || MOTHERBOARD == 71
|
||||
#define MACHINE_NAME "Ultimaker"
|
||||
#define FIRMWARE_URL "http://firmware.ultimaker.com"
|
||||
#else
|
||||
#define MACHINE_NAME "Mendel"
|
||||
#define FIRMWARE_URL "http://www.mendel-parts.com"
|
||||
#endif
|
||||
|
||||
#define STRINGIFY_(n) #n
|
||||
#define STRINGIFY(n) STRINGIFY_(n)
|
||||
|
||||
#if LANGUAGE_CHOICE == 1
|
||||
|
||||
// LCD Menu Messages
|
||||
#define WELCOME_MSG MACHINE_NAME " Ready."
|
||||
#define MSG_SD_INSERTED "Card inserted"
|
||||
#define MSG_SD_REMOVED "Card removed"
|
||||
#define MSG_MAIN " Main \003"
|
||||
#define MSG_AUTOSTART " Autostart"
|
||||
#define MSG_DISABLE_STEPPERS " Disable Steppers"
|
||||
#define MSG_AUTO_HOME " Auto Home"
|
||||
#define MSG_SET_ORIGIN " Set Origin"
|
||||
#define MSG_COOLDOWN " Cooldown"
|
||||
#define MSG_EXTRUDE " Extrude"
|
||||
#define MSG_RETRACT" Retract"
|
||||
#define MSG_PREHEAT_PLA " Preheat PLA"
|
||||
#define MSG_PREHEAT_ABS " Preheat ABS"
|
||||
#define MSG_MOVE_AXIS " Move Axis \x7E"
|
||||
#define MSG_SPEED " Speed:"
|
||||
#define MSG_NOZZLE " \002Nozzle:"
|
||||
#define MSG_NOZZLE1 " \002Nozzle2:"
|
||||
#define MSG_NOZZLE2 " \002Nozzle3:"
|
||||
#define MSG_BED " \002Bed:"
|
||||
#define MSG_FAN_SPEED " Fan speed:"
|
||||
#define MSG_FLOW " Flow:"
|
||||
#define MSG_CONTROL " Control \003"
|
||||
#define MSG_MIN " \002 Min:"
|
||||
#define MSG_MAX " \002 Max:"
|
||||
#define MSG_FACTOR " \002 Fact:"
|
||||
#define MSG_AUTOTEMP " Autotemp:"
|
||||
#define MSG_ON "On "
|
||||
#define MSG_OFF "Off"
|
||||
#define MSG_PID_P " PID-P: "
|
||||
#define MSG_PID_I " PID-I: "
|
||||
#define MSG_PID_D " PID-D: "
|
||||
#define MSG_PID_C " PID-C: "
|
||||
#define MSG_ACC " Acc:"
|
||||
#define MSG_VXY_JERK " Vxy-jerk: "
|
||||
#define MSG_VMAX " Vmax "
|
||||
#define MSG_X "x:"
|
||||
#define MSG_Y "y:"
|
||||
#define MSG_Z "z:"
|
||||
#define MSG_E "e:"
|
||||
#define MSG_VMIN " Vmin:"
|
||||
#define MSG_VTRAV_MIN " VTrav min:"
|
||||
#define MSG_AMAX " Amax "
|
||||
#define MSG_A_RETRACT " A-retract:"
|
||||
#define MSG_XSTEPS " Xsteps/mm:"
|
||||
#define MSG_YSTEPS " Ysteps/mm:"
|
||||
#define MSG_ZSTEPS " Zsteps/mm:"
|
||||
#define MSG_ESTEPS " Esteps/mm:"
|
||||
#define MSG_MAIN_WIDE " Main \003"
|
||||
#define MSG_RECTRACT_WIDE " Rectract \x7E"
|
||||
#define MSG_TEMPERATURE_WIDE " Temperature \x7E"
|
||||
#define MSG_MOTION_WIDE " Motion \x7E"
|
||||
#define MSG_STORE_EPROM " Store memory"
|
||||
#define MSG_LOAD_EPROM " Load memory"
|
||||
#define MSG_RESTORE_FAILSAFE " Restore Failsafe"
|
||||
#define MSG_REFRESH "\004Refresh"
|
||||
#define MSG_WATCH " Watch \003"
|
||||
#define MSG_PREPARE " Prepare \x7E"
|
||||
#define MSG_PREPARE_ALT " Prepare \003"
|
||||
#define MSG_CONTROL_ARROW " Control \x7E"
|
||||
#define MSG_RETRACT_ARROW " Control \x7E"
|
||||
#define MSG_TUNE " Tune \x7E"
|
||||
#define MSG_PAUSE_PRINT " Pause Print \x7E"
|
||||
#define MSG_RESUME_PRINT " Resume Print \x7E"
|
||||
#define MSG_STOP_PRINT " Stop Print \x7E"
|
||||
#define MSG_CARD_MENU " Card Menu \x7E"
|
||||
#define MSG_NO_CARD " No Card"
|
||||
#define MSG_SERIAL_ERROR_MENU_STRUCTURE "Something is wrong in the MenuStructure."
|
||||
#define MSG_DWELL "Sleep..."
|
||||
#define MSG_USERWAIT "Wait for user..."
|
||||
#define MSG_NO_MOVE "No move."
|
||||
#define MSG_PART_RELEASE "Partial Release"
|
||||
#define MSG_KILLED "KILLED. "
|
||||
#define MSG_STOPPED "STOPPED. "
|
||||
#define MSG_STEPPER_RELEASED "Released."
|
||||
#define MSG_CONTROL_RETRACT " Retract mm:"
|
||||
#define MSG_CONTROL_RETRACTF " Retract F:"
|
||||
#define MSG_CONTROL_RETRACT_ZLIFT " Hop mm:"
|
||||
#define MSG_CONTROL_RETRACT_RECOVER " UnRet +mm:"
|
||||
#define MSG_CONTROL_RETRACT_RECOVERF " UnRet F:"
|
||||
#define MSG_AUTORETRACT " AutoRetr.:"
|
||||
|
||||
// Serial Console Messages
|
||||
|
||||
#define MSG_Enqueing "enqueing \""
|
||||
#define MSG_POWERUP "PowerUp"
|
||||
#define MSG_EXTERNAL_RESET " External Reset"
|
||||
#define MSG_BROWNOUT_RESET " Brown out Reset"
|
||||
#define MSG_WATCHDOG_RESET " Watchdog Reset"
|
||||
#define MSG_SOFTWARE_RESET " Software Reset"
|
||||
#define MSG_MARLIN "Marlin "
|
||||
#define MSG_AUTHOR " | Author: "
|
||||
#define MSG_CONFIGURATION_VER " Last Updated: "
|
||||
#define MSG_FREE_MEMORY " Free Memory: "
|
||||
#define MSG_PLANNER_BUFFER_BYTES " PlannerBufferBytes: "
|
||||
#define MSG_OK "ok"
|
||||
#define MSG_FILE_SAVED "Done saving file."
|
||||
#define MSG_ERR_LINE_NO "Line Number is not Last Line Number+1, Last Line:"
|
||||
#define MSG_ERR_CHECKSUM_MISMATCH "checksum mismatch, Last Line:"
|
||||
#define MSG_ERR_NO_CHECKSUM "No Checksum with line number, Last Line:"
|
||||
#define MSG_ERR_NO_LINENUMBER_WITH_CHECKSUM "No Line Number with checksum, Last Line:"
|
||||
#define MSG_FILE_PRINTED "Done printing file"
|
||||
#define MSG_BEGIN_FILE_LIST "Begin file list"
|
||||
#define MSG_END_FILE_LIST "End file list"
|
||||
#define MSG_M104_INVALID_EXTRUDER "M104 Invalid extruder "
|
||||
#define MSG_M105_INVALID_EXTRUDER "M105 Invalid extruder "
|
||||
#define MSG_ERR_NO_THERMISTORS "No thermistors - no temp"
|
||||
#define MSG_M109_INVALID_EXTRUDER "M109 Invalid extruder "
|
||||
#define MSG_HEATING "Heating..."
|
||||
#define MSG_HEATING_COMPLETE "Heating done."
|
||||
#define MSG_BED_HEATING "Bed Heating."
|
||||
#define MSG_BED_DONE "Bed done."
|
||||
#define MSG_M115_REPORT "FIRMWARE_NAME:Marlin V1; Sprinter/grbl mashup for gen6 FIRMWARE_URL:" FIRMWARE_URL " PROTOCOL_VERSION:" PROTOCOL_VERSION " MACHINE_TYPE:" MACHINE_NAME " EXTRUDER_COUNT:" STRINGIFY(EXTRUDERS) "\n"
|
||||
#define MSG_COUNT_X " Count X:"
|
||||
#define MSG_ERR_KILLED "Printer halted. kill() called !!"
|
||||
#define MSG_ERR_STOPPED "Printer stopped deu to errors. Fix the error and use M999 to restart!. (Temperature is reset. Set it before restarting)"
|
||||
#define MSG_RESEND "Resend:"
|
||||
#define MSG_UNKNOWN_COMMAND "Unknown command:\""
|
||||
#define MSG_ACTIVE_EXTRUDER "Active Extruder: "
|
||||
#define MSG_INVALID_EXTRUDER "Invalid extruder"
|
||||
#define MSG_X_MIN "x_min:"
|
||||
#define MSG_X_MAX "x_max:"
|
||||
#define MSG_Y_MIN "y_min:"
|
||||
#define MSG_Y_MAX "y_max:"
|
||||
#define MSG_Z_MIN "z_min:"
|
||||
#define MSG_Z_MAX "z_max:"
|
||||
|
||||
#define MSG_SD_CANT_OPEN_SUBDIR "Cannot open subdir"
|
||||
#define MSG_SD_INIT_FAIL "SD init fail"
|
||||
#define MSG_SD_VOL_INIT_FAIL "volume.init failed"
|
||||
#define MSG_SD_OPENROOT_FAIL "openRoot failed"
|
||||
#define MSG_SD_CARD_OK "SD card ok"
|
||||
#define MSG_SD_WORKDIR_FAIL "workDir open failed"
|
||||
#define MSG_SD_OPEN_FILE_FAIL "open failed, File: "
|
||||
#define MSG_SD_FILE_OPENED "File opened:"
|
||||
#define MSG_SD_SIZE " Size:"
|
||||
#define MSG_SD_FILE_SELECTED "File selected"
|
||||
#define MSG_SD_WRITE_TO_FILE "Writing to file: "
|
||||
#define MSG_SD_PRINTING_BYTE "SD printing byte "
|
||||
#define MSG_SD_NOT_PRINTING "Not SD printing"
|
||||
#define MSG_SD_ERR_WRITE_TO_FILE "error writing to file"
|
||||
#define MSG_SD_CANT_ENTER_SUBDIR "Cannot enter subdir:"
|
||||
|
||||
#define MSG_STEPPER_TO_HIGH "Steprate to high : "
|
||||
#define MSG_ENDSTOPS_HIT "endstops hit: "
|
||||
#define MSG_ERR_COLD_EXTRUDE_STOP " cold extrusion prevented"
|
||||
#define MSG_ERR_LONG_EXTRUDE_STOP " too long extrusion prevented"
|
||||
|
||||
#endif
|
||||
#if LANGUAGE_CHOICE == 4
|
||||
|
||||
// LCD Menu Messages
|
||||
#define WELCOME_MSG MACHINE_NAME " Bereit."
|
||||
#define MSG_SD_INSERTED "Karte eingelegt"
|
||||
#define MSG_SD_REMOVED "Karte entfernt"
|
||||
#define MSG_MAIN " Haupt \003"
|
||||
#define MSG_AUTOSTART " Autostart"
|
||||
#define MSG_DISABLE_STEPPERS " Motoren abschalten"
|
||||
#define MSG_AUTO_HOME " Auto Heim"
|
||||
#define MSG_SET_ORIGIN " Position setzen"
|
||||
#define MSG_COOLDOWN " Abkuehlen"
|
||||
#define MSG_EXTRUDE " Druck"
|
||||
#define MSG_PREHEAT_PLA " Aufheizen PLA"
|
||||
#define MSG_PREHEAT_ABS " Aufheizen ABS"
|
||||
#define MSG_MOVE_AXIS " Achse bewegen \x7E"
|
||||
#define MSG_SPEED " Geschw:"
|
||||
#define MSG_NOZZLE " \002Duese:"
|
||||
#define MSG_NOZZLE1 " \002Duese2:"
|
||||
#define MSG_NOZZLE2 " \002Duese3:"
|
||||
#define MSG_BED " \002Bett:"
|
||||
#define MSG_FAN_SPEED " Luefter Geschw.:"
|
||||
#define MSG_FLOW " Fluss:"
|
||||
#define MSG_CONTROL " Kontrolle \003"
|
||||
#define MSG_MIN " \002 Min:"
|
||||
#define MSG_MAX " \002 Max:"
|
||||
#define MSG_FACTOR " \002 Faktor:"
|
||||
#define MSG_AUTOTEMP " AutoTemp:"
|
||||
#define MSG_ON "Ein "
|
||||
#define MSG_OFF "Aus "
|
||||
#define MSG_PID_P " PID-P: "
|
||||
#define MSG_PID_I " PID-I: "
|
||||
#define MSG_PID_D " PID-D: "
|
||||
#define MSG_PID_C " PID-C: "
|
||||
#define MSG_ACC " Acc:"
|
||||
#define MSG_VXY_JERK " Vxy-jerk: "
|
||||
#define MSG_VMAX " Vmax "
|
||||
#define MSG_X "x:"
|
||||
#define MSG_Y "y:"
|
||||
#define MSG_Z "z:"
|
||||
#define MSG_E "e:"
|
||||
#define MSG_VMIN " Vmin:"
|
||||
#define MSG_VTRAV_MIN " VTrav min:"
|
||||
#define MSG_AMAX " Amax "
|
||||
#define MSG_A_RETRACT " A-Rueckzug:"
|
||||
#define MSG_XSTEPS " Xsteps/mm:"
|
||||
#define MSG_YSTEPS " Ysteps/mm:"
|
||||
#define MSG_ZSTEPS " Zsteps/mm:"
|
||||
#define MSG_ESTEPS " Esteps/mm:"
|
||||
#define MSG_MAIN_WIDE " Hauptmenue \003"
|
||||
#define MSG_RECTRACT_WIDE " Rueckzug \x7E"
|
||||
#define MSG_TEMPERATURE_WIDE " Temperatur \x7E"
|
||||
#define MSG_MOTION_WIDE " Bewegung \x7E"
|
||||
#define MSG_STORE_EPROM " EPROM speichern"
|
||||
#define MSG_LOAD_EPROM " EPROM laden"
|
||||
#define MSG_RESTORE_FAILSAFE " Standard Konfig."
|
||||
#define MSG_REFRESH "\004Aktualisieren"
|
||||
#define MSG_WATCH " Beobachten \003"
|
||||
#define MSG_PREPARE " Vorbereiten \x7E"
|
||||
#define MSG_PREPARE_ALT " Vorbereiten \003"
|
||||
#define MSG_CONTROL_ARROW " Kontrolle \x7E"
|
||||
#define MSG_RETRACT_ARROW " Control \x7E"
|
||||
#define MSG_TUNE " Tune \x7E"
|
||||
#define MSG_STOP_PRINT " Druck stoppen \x7E"
|
||||
#define MSG_CARD_MENU " SDKarten Menue \x7E"
|
||||
#define MSG_NO_CARD " Keine SDKarte"
|
||||
#define MSG_SERIAL_ERROR_MENU_STRUCTURE "Fehler in der Menuestruktur."
|
||||
#define MSG_DWELL "verweilen..."
|
||||
#define MSG_USERWAIT "Warten auf Nutzer..."
|
||||
#define MSG_NO_MOVE "Keine Bewegung."
|
||||
#define MSG_PART_RELEASE "Teil loesen"
|
||||
#define MSG_KILLED "GEKILLT. "
|
||||
#define MSG_STOPPED "GESTOPPT. "
|
||||
#define MSG_STEPPER_RELEASED "Freigegeben."
|
||||
#define MSG_CONTROL_RETRACT " Rueckzug mm:"
|
||||
#define MSG_CONTROL_RETRACTF " Rueckzug F:"
|
||||
#define MSG_CONTROL_RETRACT_ZLIFT " Z Sprung mm:"
|
||||
#define MSG_CONTROL_RETRACT_RECOVER " Vorschub +mm:"
|
||||
#define MSG_CONTROL_RETRACT_RECOVERF " Vorschub F:"
|
||||
#define MSG_AUTORETRACT " AutoRueckzug.:"
|
||||
|
||||
// Serial Console Messages
|
||||
|
||||
#define MSG_Enqueing "enqueing \""
|
||||
#define MSG_POWERUP "PowerUp"
|
||||
#define MSG_EXTERNAL_RESET " External Reset"
|
||||
#define MSG_BROWNOUT_RESET " Brown out Reset"
|
||||
#define MSG_WATCHDOG_RESET " Watchdog Reset"
|
||||
#define MSG_SOFTWARE_RESET " Software Reset"
|
||||
#define MSG_MARLIN "Marlin: "
|
||||
#define MSG_AUTHOR " | Author: "
|
||||
#define MSG_CONFIGURATION_VER " Last Updated: "
|
||||
#define MSG_FREE_MEMORY " Free Memory: "
|
||||
#define MSG_PLANNER_BUFFER_BYTES " PlannerBufferBytes: "
|
||||
#define MSG_OK "ok"
|
||||
#define MSG_FILE_SAVED "Done saving file."
|
||||
#define MSG_ERR_LINE_NO "Line Number is not Last Line Number+1, Last Line:"
|
||||
#define MSG_ERR_CHECKSUM_MISMATCH "checksum mismatch, Last Line:"
|
||||
#define MSG_ERR_NO_CHECKSUM "No Checksum with line number, Last Line:"
|
||||
#define MSG_ERR_NO_LINENUMBER_WITH_CHECKSUM "No Line Number with checksum, Last Line:"
|
||||
#define MSG_FILE_PRINTED "Done printing file"
|
||||
#define MSG_BEGIN_FILE_LIST "Begin file list"
|
||||
#define MSG_END_FILE_LIST "End file list"
|
||||
#define MSG_M104_INVALID_EXTRUDER "M104 Invalid extruder "
|
||||
#define MSG_M105_INVALID_EXTRUDER "M105 Invalid extruder "
|
||||
#define MSG_ERR_NO_THERMISTORS "No thermistors - no temp"
|
||||
#define MSG_M109_INVALID_EXTRUDER "M109 Invalid extruder "
|
||||
#define MSG_HEATING "Heating..."
|
||||
#define MSG_HEATING_COMPLETE "Heating done."
|
||||
#define MSG_BED_HEATING "Bed Heating."
|
||||
#define MSG_BED_DONE "Bed done."
|
||||
#define MSG_M115_REPORT "FIRMWARE_NAME:Marlin V1; Sprinter/grbl mashup for gen6 FIRMWARE_URL:" FIRMWARE_URL " PROTOCOL_VERSION:" PROTOCOL_VERSION " MACHINE_TYPE:" MACHINE_NAME " EXTRUDER_COUNT:" STRINGIFY(EXTRUDERS) "\n"
|
||||
#define MSG_COUNT_X " Count X:"
|
||||
#define MSG_ERR_KILLED "Printer halted. kill() called !!"
|
||||
#define MSG_ERR_STOPPED "Printer stopped due to errors. Fix the error and use M999 to restart!"
|
||||
#define MSG_RESEND "Resend:"
|
||||
#define MSG_UNKNOWN_COMMAND "Unknown command:\""
|
||||
#define MSG_ACTIVE_EXTRUDER "Active Extruder: "
|
||||
#define MSG_INVALID_EXTRUDER "Invalid extruder"
|
||||
#define MSG_X_MIN "x_min:"
|
||||
#define MSG_X_MAX "x_max:"
|
||||
#define MSG_Y_MIN "y_min:"
|
||||
#define MSG_Y_MAX "y_max:"
|
||||
#define MSG_Z_MIN "z_min:"
|
||||
#define MSG_Z_MAX "z_max:"
|
||||
|
||||
#define MSG_SD_CANT_OPEN_SUBDIR "Verz. kein Zugriff"
|
||||
#define MSG_SD_INIT_FAIL "SD init Fehler"
|
||||
#define MSG_SD_VOL_INIT_FAIL "volume.init Fehler"
|
||||
#define MSG_SD_OPENROOT_FAIL "openRoot Fehler"
|
||||
#define MSG_SD_CARD_OK "SDKarte ok"
|
||||
#define MSG_SD_WORKDIR_FAIL "workDir Oeffnen Fehler"
|
||||
#define MSG_SD_OPEN_FILE_FAIL "Fehler: Oeffnen Datei: "
|
||||
#define MSG_SD_FILE_OPENED "Datei geoeffnet:"
|
||||
#define MSG_SD_SIZE " Groesse:"
|
||||
#define MSG_SD_FILE_SELECTED "Datei selektiert"
|
||||
#define MSG_SD_WRITE_TO_FILE "Schreibe in Datei: "
|
||||
#define MSG_SD_PRINTING_BYTE "SD druckt byte "
|
||||
#define MSG_SD_NOT_PRINTING "Druckt nicht von SD"
|
||||
#define MSG_SD_ERR_WRITE_TO_FILE "Datei Schreibfehler"
|
||||
#define MSG_SD_CANT_ENTER_SUBDIR "Kann Verz. nicht wechseln:"
|
||||
|
||||
#define MSG_STEPPER_TO_HIGH "Steprate zu hoch : "
|
||||
#define MSG_ENDSTOPS_HIT "Endstop erreicht: "
|
||||
#define MSG_ERR_COLD_EXTRUDE_STOP " kalter Druck unterbunden"
|
||||
#define MSG_ERR_LONG_EXTRUDE_STOP " langer Druckweg unterbunden"
|
||||
|
||||
#endif
|
||||
#ifndef LANGUAGE_H
|
||||
#define LANGUAGE_H
|
||||
|
||||
// NOTE: IF YOU CHANGE THIS FILE / MERGE THIS FILE WITH CHANGES
|
||||
//
|
||||
// ==> ALWAYS TRY TO COMPILE MARLIN WITH/WITHOUT "ULTIPANEL" / "ULTRALCD" / "SDSUPPORT" #define IN "Configuration.h"
|
||||
// ==> ALSO TRY ALL AVAILABLE "LANGUAGE_CHOICE" OPTIONS
|
||||
|
||||
// Languages
|
||||
// 1 English
|
||||
// 2 -
|
||||
// 3 French (Waiting translation)
|
||||
// 4 German
|
||||
// 5 Spanish
|
||||
// 6 Etc
|
||||
|
||||
#define LANGUAGE_CHOICE 1 // Pick your language from the list above
|
||||
|
||||
#define PROTOCOL_VERSION "1.0"
|
||||
|
||||
#if MOTHERBOARD == 7 || MOTHERBOARD == 71
|
||||
#define MACHINE_NAME "Ultimaker"
|
||||
#define FIRMWARE_URL "http://firmware.ultimaker.com"
|
||||
#else
|
||||
#define MACHINE_NAME "Mendel"
|
||||
#define FIRMWARE_URL "http://www.mendel-parts.com"
|
||||
#endif
|
||||
|
||||
#define STRINGIFY_(n) #n
|
||||
#define STRINGIFY(n) STRINGIFY_(n)
|
||||
|
||||
#if LANGUAGE_CHOICE == 1
|
||||
|
||||
// LCD Menu Messages
|
||||
#define WELCOME_MSG MACHINE_NAME " Ready."
|
||||
#define MSG_SD_INSERTED "Card inserted"
|
||||
#define MSG_SD_REMOVED "Card removed"
|
||||
#define MSG_MAIN " Main \003"
|
||||
#define MSG_AUTOSTART " Autostart"
|
||||
#define MSG_DISABLE_STEPPERS " Disable Steppers"
|
||||
#define MSG_AUTO_HOME " Auto Home"
|
||||
#define MSG_SET_ORIGIN " Set Origin"
|
||||
#define MSG_PREHEAT_PLA " Preheat PLA"
|
||||
#define MSG_PREHEAT_PLA_SETTINGS " Preheat PLA Setting"
|
||||
#define MSG_PREHEAT_ABS " Preheat ABS"
|
||||
#define MSG_PREHEAT_ABS_SETTINGS " Preheat ABS Setting"
|
||||
#define MSG_COOLDOWN " Cooldown"
|
||||
#define MSG_EXTRUDE " Extrude"
|
||||
#define MSG_RETRACT " Retract"
|
||||
#define MSG_PREHEAT_PLA " Preheat PLA"
|
||||
#define MSG_PREHEAT_ABS " Preheat ABS"
|
||||
#define MSG_MOVE_AXIS " Move Axis \x7E"
|
||||
#define MSG_SPEED " Speed:"
|
||||
#define MSG_NOZZLE " \002Nozzle:"
|
||||
#define MSG_NOZZLE1 " \002Nozzle2:"
|
||||
#define MSG_NOZZLE2 " \002Nozzle3:"
|
||||
#define MSG_BED " \002Bed:"
|
||||
#define MSG_FAN_SPEED " Fan speed:"
|
||||
#define MSG_FLOW " Flow:"
|
||||
#define MSG_CONTROL " Control \003"
|
||||
#define MSG_MIN " \002 Min:"
|
||||
#define MSG_MAX " \002 Max:"
|
||||
#define MSG_FACTOR " \002 Fact:"
|
||||
#define MSG_AUTOTEMP " Autotemp:"
|
||||
#define MSG_ON "On "
|
||||
#define MSG_OFF "Off"
|
||||
#define MSG_PID_P " PID-P: "
|
||||
#define MSG_PID_I " PID-I: "
|
||||
#define MSG_PID_D " PID-D: "
|
||||
#define MSG_PID_C " PID-C: "
|
||||
#define MSG_ACC " Acc:"
|
||||
#define MSG_VXY_JERK " Vxy-jerk: "
|
||||
#define MSG_VMAX " Vmax "
|
||||
#define MSG_X "x:"
|
||||
#define MSG_Y "y:"
|
||||
#define MSG_Z "z:"
|
||||
#define MSG_E "e:"
|
||||
#define MSG_VMIN " Vmin:"
|
||||
#define MSG_VTRAV_MIN " VTrav min:"
|
||||
#define MSG_AMAX " Amax "
|
||||
#define MSG_A_RETRACT " A-retract:"
|
||||
#define MSG_XSTEPS " Xsteps/mm:"
|
||||
#define MSG_YSTEPS " Ysteps/mm:"
|
||||
#define MSG_ZSTEPS " Zsteps/mm:"
|
||||
#define MSG_ESTEPS " Esteps/mm:"
|
||||
#define MSG_MAIN_WIDE " Main \003"
|
||||
#define MSG_RECTRACT_WIDE " Rectract \x7E"
|
||||
#define MSG_TEMPERATURE_WIDE " Temperature \x7E"
|
||||
#define MSG_TEMPERATURE_RTN " Temperature \003"
|
||||
#define MSG_MOTION_WIDE " Motion \x7E"
|
||||
#define MSG_STORE_EPROM " Store memory"
|
||||
#define MSG_LOAD_EPROM " Load memory"
|
||||
#define MSG_RESTORE_FAILSAFE " Restore Failsafe"
|
||||
#define MSG_REFRESH "\004Refresh"
|
||||
#define MSG_WATCH " Watch \003"
|
||||
#define MSG_PREPARE " Prepare \x7E"
|
||||
#define MSG_PREPARE_ALT " Prepare \003"
|
||||
#define MSG_CONTROL_ARROW " Control \x7E"
|
||||
#define MSG_RETRACT_ARROW " Retract \x7E"
|
||||
#define MSG_TUNE " Tune \x7E"
|
||||
#define MSG_PAUSE_PRINT " Pause Print \x7E"
|
||||
#define MSG_RESUME_PRINT " Resume Print \x7E"
|
||||
#define MSG_STOP_PRINT " Stop Print \x7E"
|
||||
#define MSG_CARD_MENU " Card Menu \x7E"
|
||||
#define MSG_NO_CARD " No Card"
|
||||
#define MSG_DWELL "Sleep..."
|
||||
#define MSG_USERWAIT "Wait for user..."
|
||||
#define MSG_NO_MOVE "No move."
|
||||
#define MSG_PART_RELEASE "Partial Release"
|
||||
#define MSG_KILLED "KILLED. "
|
||||
#define MSG_STOPPED "STOPPED. "
|
||||
#define MSG_STEPPER_RELEASED "Released."
|
||||
#define MSG_CONTROL_RETRACT " Retract mm:"
|
||||
#define MSG_CONTROL_RETRACTF " Retract F:"
|
||||
#define MSG_CONTROL_RETRACT_ZLIFT " Hop mm:"
|
||||
#define MSG_CONTROL_RETRACT_RECOVER " UnRet +mm:"
|
||||
#define MSG_CONTROL_RETRACT_RECOVERF " UnRet F:"
|
||||
#define MSG_AUTORETRACT " AutoRetr.:"
|
||||
#define MSG_SERIAL_ERROR_MENU_STRUCTURE "Something is wrong in the MenuStructure."
|
||||
|
||||
// Serial Console Messages
|
||||
|
||||
#define MSG_Enqueing "enqueing \""
|
||||
#define MSG_POWERUP "PowerUp"
|
||||
#define MSG_EXTERNAL_RESET " External Reset"
|
||||
#define MSG_BROWNOUT_RESET " Brown out Reset"
|
||||
#define MSG_WATCHDOG_RESET " Watchdog Reset"
|
||||
#define MSG_SOFTWARE_RESET " Software Reset"
|
||||
#define MSG_MARLIN "Marlin "
|
||||
#define MSG_AUTHOR " | Author: "
|
||||
#define MSG_CONFIGURATION_VER " Last Updated: "
|
||||
#define MSG_FREE_MEMORY " Free Memory: "
|
||||
#define MSG_PLANNER_BUFFER_BYTES " PlannerBufferBytes: "
|
||||
#define MSG_OK "ok"
|
||||
#define MSG_FILE_SAVED "Done saving file."
|
||||
#define MSG_ERR_LINE_NO "Line Number is not Last Line Number+1, Last Line:"
|
||||
#define MSG_ERR_CHECKSUM_MISMATCH "checksum mismatch, Last Line:"
|
||||
#define MSG_ERR_NO_CHECKSUM "No Checksum with line number, Last Line:"
|
||||
#define MSG_ERR_NO_LINENUMBER_WITH_CHECKSUM "No Line Number with checksum, Last Line:"
|
||||
#define MSG_FILE_PRINTED "Done printing file"
|
||||
#define MSG_BEGIN_FILE_LIST "Begin file list"
|
||||
#define MSG_END_FILE_LIST "End file list"
|
||||
#define MSG_M104_INVALID_EXTRUDER "M104 Invalid extruder "
|
||||
#define MSG_M105_INVALID_EXTRUDER "M105 Invalid extruder "
|
||||
#define MSG_ERR_NO_THERMISTORS "No thermistors - no temp"
|
||||
#define MSG_M109_INVALID_EXTRUDER "M109 Invalid extruder "
|
||||
#define MSG_HEATING "Heating..."
|
||||
#define MSG_HEATING_COMPLETE "Heating done."
|
||||
#define MSG_BED_HEATING "Bed Heating."
|
||||
#define MSG_BED_DONE "Bed done."
|
||||
#define MSG_M115_REPORT "FIRMWARE_NAME:Marlin V1; Sprinter/grbl mashup for gen6 FIRMWARE_URL:" FIRMWARE_URL " PROTOCOL_VERSION:" PROTOCOL_VERSION " MACHINE_TYPE:" MACHINE_NAME " EXTRUDER_COUNT:" STRINGIFY(EXTRUDERS) "\n"
|
||||
#define MSG_COUNT_X " Count X:"
|
||||
#define MSG_ERR_KILLED "Printer halted. kill() called !!"
|
||||
#define MSG_ERR_STOPPED "Printer stopped deu to errors. Fix the error and use M999 to restart!. (Temperature is reset. Set it before restarting)"
|
||||
#define MSG_RESEND "Resend:"
|
||||
#define MSG_UNKNOWN_COMMAND "Unknown command:\""
|
||||
#define MSG_ACTIVE_EXTRUDER "Active Extruder: "
|
||||
#define MSG_INVALID_EXTRUDER "Invalid extruder"
|
||||
#define MSG_X_MIN "x_min:"
|
||||
#define MSG_X_MAX "x_max:"
|
||||
#define MSG_Y_MIN "y_min:"
|
||||
#define MSG_Y_MAX "y_max:"
|
||||
#define MSG_Z_MIN "z_min:"
|
||||
#define MSG_Z_MAX "z_max:"
|
||||
|
||||
#define MSG_SD_CANT_OPEN_SUBDIR "Cannot open subdir"
|
||||
#define MSG_SD_INIT_FAIL "SD init fail"
|
||||
#define MSG_SD_VOL_INIT_FAIL "volume.init failed"
|
||||
#define MSG_SD_OPENROOT_FAIL "openRoot failed"
|
||||
#define MSG_SD_CARD_OK "SD card ok"
|
||||
#define MSG_SD_WORKDIR_FAIL "workDir open failed"
|
||||
#define MSG_SD_OPEN_FILE_FAIL "open failed, File: "
|
||||
#define MSG_SD_FILE_OPENED "File opened:"
|
||||
#define MSG_SD_SIZE " Size:"
|
||||
#define MSG_SD_FILE_SELECTED "File selected"
|
||||
#define MSG_SD_WRITE_TO_FILE "Writing to file: "
|
||||
#define MSG_SD_PRINTING_BYTE "SD printing byte "
|
||||
#define MSG_SD_NOT_PRINTING "Not SD printing"
|
||||
#define MSG_SD_ERR_WRITE_TO_FILE "error writing to file"
|
||||
#define MSG_SD_CANT_ENTER_SUBDIR "Cannot enter subdir:"
|
||||
|
||||
#define MSG_STEPPER_TO_HIGH "Steprate to high : "
|
||||
#define MSG_ENDSTOPS_HIT "endstops hit: "
|
||||
#define MSG_ERR_COLD_EXTRUDE_STOP " cold extrusion prevented"
|
||||
#define MSG_ERR_LONG_EXTRUDE_STOP " too long extrusion prevented"
|
||||
|
||||
#endif
|
||||
#if LANGUAGE_CHOICE == 4
|
||||
|
||||
// LCD Menu Messages
|
||||
|
||||
#define WELCOME_MSG MACHINE_NAME " Bereit."
|
||||
|
||||
#define MSG_SD_INSERTED "SDKarte erkannt"
|
||||
#define MSG_SD_REMOVED "SDKarte entfernt"
|
||||
#define MSG_MAIN " Hauptmneü \003"
|
||||
#define MSG_AUTOSTART " Autostart"
|
||||
#define MSG_DISABLE_STEPPERS " Stepper abschalten"
|
||||
#define MSG_AUTO_HOME " Auto Nullpunkt"
|
||||
#define MSG_SET_ORIGIN " Setze Nullpunkt"
|
||||
#define MSG_PREHEAT_PLA " Vorwärmen PLA"
|
||||
#define MSG_PREHEAT_PLA_SETTINGS " Vorwärmen PLA Einstellungen"
|
||||
#define MSG_PREHEAT_ABS " Vorwärmen ABS"
|
||||
#define MSG_PREHEAT_ABS_SETTINGS " Vorwärmen ABS Einstellungen"
|
||||
#define MSG_COOLDOWN " Abkühlen"
|
||||
#define MSG_EXTRUDE " Extrude"
|
||||
#define MSG_RETRACT " Retract"
|
||||
#define MSG_MOVE_AXIS " Achsen bewegen\x7E"
|
||||
#define MSG_SPEED " Geschw:"
|
||||
#define MSG_NOZZLE " \002Düse:"
|
||||
#define MSG_NOZZLE1 " \002Düse2:"
|
||||
#define MSG_NOZZLE2 " \002Düse3:"
|
||||
#define MSG_BED " \002Bett:"
|
||||
#define MSG_FAN_SPEED " Lüftergeschw.:"
|
||||
#define MSG_FLOW " Fluß:"
|
||||
#define MSG_CONTROL " Einstellungen \003"
|
||||
#define MSG_MIN " \002 Min:"
|
||||
#define MSG_MAX " \002 Max:"
|
||||
#define MSG_FACTOR " \002 Faktor:"
|
||||
#define MSG_AUTOTEMP " AutoTemp:"
|
||||
#define MSG_ON "Ein "
|
||||
#define MSG_OFF "Aus "
|
||||
#define MSG_PID_P " PID-P: "
|
||||
#define MSG_PID_I " PID-I: "
|
||||
#define MSG_PID_D " PID-D: "
|
||||
#define MSG_PID_C " PID-C: "
|
||||
#define MSG_ACC " Acc:"
|
||||
#define MSG_VXY_JERK " Vxy-jerk: "
|
||||
#define MSG_VMAX " Vmax "
|
||||
#define MSG_X "x:"
|
||||
#define MSG_Y "y:"
|
||||
#define MSG_Z "z:"
|
||||
#define MSG_E "e:"
|
||||
#define MSG_VMIN " Vmin:"
|
||||
#define MSG_VTRAV_MIN " VTrav min:"
|
||||
#define MSG_AMAX " Amax "
|
||||
#define MSG_A_RETRACT " A-Retract:"
|
||||
#define MSG_XSTEPS " Xsteps/mm:"
|
||||
#define MSG_YSTEPS " Ysteps/mm:"
|
||||
#define MSG_ZSTEPS " Zsteps/mm:"
|
||||
#define MSG_ESTEPS " Esteps/mm:"
|
||||
#define MSG_MAIN_WIDE " Hauptmenü \003"
|
||||
#define MSG_RECTRACT_WIDE " Rectract \x7E"
|
||||
#define MSG_WATCH " Beobachten \003"
|
||||
#define MSG_TEMPERATURE_WIDE " Temperatur \x7E"
|
||||
#define MSG_TEMPERATURE_RTN " Temperatur \003"
|
||||
#define MSG_MOTION_WIDE " Bewegung \x7E"
|
||||
#define MSG_STORE_EPROM " EPROM speichern"
|
||||
#define MSG_LOAD_EPROM " EPROM laden"
|
||||
#define MSG_RESTORE_FAILSAFE " Standardkonfig."
|
||||
#define MSG_REFRESH "\004Aktualisieren"
|
||||
#define MSG_PREPARE " Vorbereitung \x7E"
|
||||
#define MSG_PREPARE_ALT " Vorbereitung \003"
|
||||
#define MSG_CONTROL_ARROW " Einstellungen \x7E"
|
||||
#define MSG_TUNE " Justierung \x7E"
|
||||
#define MSG_PAUSE_PRINT " Druck anhalten\x7E"
|
||||
#define MSG_RESUME_PRINT " Druck fortsetz\x7E"
|
||||
#define MSG_STOP_PRINT " Druck stoppen \x7E"
|
||||
#define MSG_CARD_MENU " SDKarten Menü \x7E"
|
||||
#define MSG_NO_CARD " Keine SDKarte"
|
||||
#define MSG_DWELL "Warten..."
|
||||
#define MSG_USERWAIT "Warte auf Nutzer..."
|
||||
#define MSG_NO_MOVE "Kein Zug."
|
||||
#define MSG_PART_RELEASE "Stepper tlw frei"
|
||||
#define MSG_KILLED "KILLED"
|
||||
#define MSG_STOPPED "GESTOPPT"
|
||||
#define MSG_STEPPER_RELEASED "Stepper frei"
|
||||
#define MSG_CONTROL_RETRACT " Retract mm:"
|
||||
#define MSG_CONTROL_RETRACTF " Retract F:"
|
||||
#define MSG_CONTROL_RETRACT_ZLIFT " Hop mm:"
|
||||
#define MSG_CONTROL_RETRACT_RECOVER " UnRet +mm:"
|
||||
#define MSG_CONTROL_RETRACT_RECOVERF " UnRet F:"
|
||||
#define MSG_AUTORETRACT " AutoRetr.:"
|
||||
#define MSG_SERIAL_ERROR_MENU_STRUCTURE "Fehler in Menüstruktur."
|
||||
|
||||
// Serial Console Messages
|
||||
|
||||
#define MSG_Enqueing "enqueing \""
|
||||
#define MSG_POWERUP "PowerUp"
|
||||
#define MSG_EXTERNAL_RESET " External Reset"
|
||||
#define MSG_BROWNOUT_RESET " Brown out Reset"
|
||||
#define MSG_WATCHDOG_RESET " Watchdog Reset"
|
||||
#define MSG_SOFTWARE_RESET " Software Reset"
|
||||
#define MSG_MARLIN "Marlin: "
|
||||
#define MSG_AUTHOR " | Author: "
|
||||
#define MSG_CONFIGURATION_VER " Last Updated: "
|
||||
#define MSG_FREE_MEMORY " Free Memory: "
|
||||
#define MSG_PLANNER_BUFFER_BYTES " PlannerBufferBytes: "
|
||||
#define MSG_OK "ok"
|
||||
#define MSG_FILE_SAVED "Done saving file."
|
||||
#define MSG_ERR_LINE_NO "Line Number is not Last Line Number+1, Last Line:"
|
||||
#define MSG_ERR_CHECKSUM_MISMATCH "checksum mismatch, Last Line:"
|
||||
#define MSG_ERR_NO_CHECKSUM "No Checksum with line number, Last Line:"
|
||||
#define MSG_ERR_NO_LINENUMBER_WITH_CHECKSUM "No Line Number with checksum, Last Line:"
|
||||
#define MSG_FILE_PRINTED "Done printing file"
|
||||
#define MSG_BEGIN_FILE_LIST "Begin file list"
|
||||
#define MSG_END_FILE_LIST "End file list"
|
||||
#define MSG_M104_INVALID_EXTRUDER "M104 Invalid extruder "
|
||||
#define MSG_M105_INVALID_EXTRUDER "M105 Invalid extruder "
|
||||
#define MSG_ERR_NO_THERMISTORS "No thermistors - no temp"
|
||||
#define MSG_M109_INVALID_EXTRUDER "M109 Invalid extruder "
|
||||
#define MSG_HEATING "Heating..."
|
||||
#define MSG_HEATING_COMPLETE "Heating done."
|
||||
#define MSG_BED_HEATING "Bed Heating."
|
||||
#define MSG_BED_DONE "Bed done."
|
||||
#define MSG_M115_REPORT "FIRMWARE_NAME:Marlin V1; Sprinter/grbl mashup for gen6 FIRMWARE_URL:" FIRMWARE_URL " PROTOCOL_VERSION:" PROTOCOL_VERSION " MACHINE_TYPE:" MACHINE_NAME " EXTRUDER_COUNT:" STRINGIFY(EXTRUDERS) "\n"
|
||||
#define MSG_COUNT_X " Count X:"
|
||||
#define MSG_ERR_KILLED "Printer halted. kill() called !!"
|
||||
#define MSG_ERR_STOPPED "Printer stopped due to errors. Fix the error and use M999 to restart!"
|
||||
#define MSG_RESEND "Resend:"
|
||||
#define MSG_UNKNOWN_COMMAND "Unknown command:\""
|
||||
#define MSG_ACTIVE_EXTRUDER "Active Extruder: "
|
||||
#define MSG_INVALID_EXTRUDER "Invalid extruder"
|
||||
#define MSG_X_MIN "x_min:"
|
||||
#define MSG_X_MAX "x_max:"
|
||||
#define MSG_Y_MIN "y_min:"
|
||||
#define MSG_Y_MAX "y_max:"
|
||||
#define MSG_Z_MIN "z_min:"
|
||||
#define MSG_Z_MAX "z_max:"
|
||||
|
||||
#define MSG_SD_CANT_OPEN_SUBDIR "Cannot open subdir"
|
||||
#define MSG_SD_INIT_FAIL "SD init fail"
|
||||
#define MSG_SD_VOL_INIT_FAIL "volume.init failed"
|
||||
#define MSG_SD_OPENROOT_FAIL "openRoot failed"
|
||||
#define MSG_SD_CARD_OK "SD card ok"
|
||||
#define MSG_SD_WORKDIR_FAIL "workDir open failed"
|
||||
#define MSG_SD_OPEN_FILE_FAIL "open failed, File: "
|
||||
#define MSG_SD_FILE_OPENED "File opened:"
|
||||
#define MSG_SD_SIZE " Size:"
|
||||
#define MSG_SD_FILE_SELECTED "File selected"
|
||||
#define MSG_SD_WRITE_TO_FILE "Writing to file: "
|
||||
#define MSG_SD_PRINTING_BYTE "SD printing byte "
|
||||
#define MSG_SD_NOT_PRINTING "Not SD printing"
|
||||
#define MSG_SD_ERR_WRITE_TO_FILE "error writing to file"
|
||||
#define MSG_SD_CANT_ENTER_SUBDIR "Cannot enter subdir:"
|
||||
|
||||
#define MSG_STEPPER_TO_HIGH "Steprate to high : "
|
||||
#define MSG_ENDSTOPS_HIT "endstops hit: "
|
||||
#define MSG_ERR_COLD_EXTRUDE_STOP " cold extrusion prevented"
|
||||
#define MSG_ERR_LONG_EXTRUDE_STOP " too long extrusion prevented"
|
||||
|
||||
#endif
|
||||
|
||||
#if LANGUAGE_CHOICE == 5
|
||||
|
||||
// LCD Menu Messages
|
||||
#define WELCOME_MSG MACHINE_NAME " Lista."
|
||||
#define MSG_SD_INSERTED "Tarjeta SD Colocada"
|
||||
#define MSG_SD_REMOVED "Tarjeta SD Retirada"
|
||||
#define MSG_MAIN " Menu Principal \003"
|
||||
#define MSG_AUTOSTART " Autostart"
|
||||
#define MSG_DISABLE_STEPPERS " Apagar Motores"
|
||||
#define MSG_AUTO_HOME " Llevar Ejes al Cero"
|
||||
#define MSG_SET_ORIGIN " Establecer Cero"
|
||||
#define MSG_COOLDOWN " Enfriar"
|
||||
#define MSG_EXTRUDE " Extruir"
|
||||
#define MSG_RETRACT " Retract"
|
||||
#define MSG_PREHEAT_PLA " Precalentar PLA"
|
||||
#define MSG_PREHEAT_PLA_SETTINGS " Precalentar PLA Setting"
|
||||
#define MSG_PREHEAT_ABS " Precalentar ABS"
|
||||
#define MSG_PREHEAT_ABS_SETTINGS " Precalentar ABS Setting"
|
||||
#define MSG_MOVE_AXIS " Mover Ejes \x7E"
|
||||
#define MSG_SPEED " Velocidad:"
|
||||
#define MSG_NOZZLE " \002Nozzle:"
|
||||
#define MSG_NOZZLE1 " \002Nozzle2:"
|
||||
#define MSG_NOZZLE2 " \002Nozzle3:"
|
||||
#define MSG_BED " \002Base:"
|
||||
#define MSG_FAN_SPEED " Ventilador:"
|
||||
#define MSG_FLOW " Flujo:"
|
||||
#define MSG_CONTROL " Control \003"
|
||||
#define MSG_MIN " \002 Min:"
|
||||
#define MSG_MAX " \002 Max:"
|
||||
#define MSG_FACTOR " \002 Fact:"
|
||||
#define MSG_AUTOTEMP " Autotemp:"
|
||||
#define MSG_ON "On "
|
||||
#define MSG_OFF "Off"
|
||||
#define MSG_PID_P " PID-P: "
|
||||
#define MSG_PID_I " PID-I: "
|
||||
#define MSG_PID_D " PID-D: "
|
||||
#define MSG_PID_C " PID-C: "
|
||||
#define MSG_ACC " Acc:"
|
||||
#define MSG_VXY_JERK " Vxy-jerk: "
|
||||
#define MSG_VMAX " Vmax "
|
||||
#define MSG_X "x:"
|
||||
#define MSG_Y "y:"
|
||||
#define MSG_Z "z:"
|
||||
#define MSG_E "e:"
|
||||
#define MSG_VMIN " Vmin:"
|
||||
#define MSG_VTRAV_MIN " VTrav min:"
|
||||
#define MSG_AMAX " Amax "
|
||||
#define MSG_A_RETRACT " A-retrac.:"
|
||||
#define MSG_XSTEPS " Xpasos/mm:"
|
||||
#define MSG_YSTEPS " Ypasos/mm:"
|
||||
#define MSG_ZSTEPS " Zpasos/mm:"
|
||||
#define MSG_ESTEPS " Epasos/mm:"
|
||||
#define MSG_MAIN_WIDE " Menu Principal \003"
|
||||
#define MSG_RECTRACT_WIDE " Retraer \x7E"
|
||||
#define MSG_TEMPERATURE_WIDE " Temperatura \x7E"
|
||||
#define MSG_TEMPERATURE_RTN " Temperatura \003"
|
||||
#define MSG_MOTION_WIDE " Movimiento \x7E"
|
||||
#define MSG_STORE_EPROM " Guardar Memoria"
|
||||
#define MSG_LOAD_EPROM " Cargar Memoria"
|
||||
#define MSG_RESTORE_FAILSAFE " Rest. de emergencia"
|
||||
#define MSG_REFRESH "\004Volver a cargar"
|
||||
#define MSG_WATCH " Monitorizar \003"
|
||||
#define MSG_PREPARE " Preparar \x7E"
|
||||
#define MSG_PREPARE_ALT " Preparar \003"
|
||||
#define MSG_CONTROL_ARROW " Control \x7E"
|
||||
#define MSG_RETRACT_ARROW " Control \x7E"
|
||||
#define MSG_TUNE " Ajustar \x7E"
|
||||
#define MSG_PAUSE_PRINT " Pause Print \x7E"
|
||||
#define MSG_RESUME_PRINT " Resume Print \x7E"
|
||||
#define MSG_STOP_PRINT " Detener Impresion \x7E"
|
||||
#define MSG_CARD_MENU " Menu de SD \x7E"
|
||||
#define MSG_NO_CARD " No hay Tarjeta SD"
|
||||
#define MSG_DWELL "Reposo..."
|
||||
#define MSG_USERWAIT "Esperando Ordenes..."
|
||||
#define MSG_NO_MOVE "Sin movimiento"
|
||||
#define MSG_PART_RELEASE "Desacople Parcial"
|
||||
#define MSG_KILLED "PARADA DE EMERGENCIA. "
|
||||
#define MSG_STOPPED "PARADA. "
|
||||
#define MSG_STEPPER_RELEASED "Desacoplada."
|
||||
#define MSG_CONTROL_RETRACT " Retraer mm:"
|
||||
#define MSG_CONTROL_RETRACTF " Retraer F:"
|
||||
#define MSG_CONTROL_RETRACT_ZLIFT " Levantar mm:"
|
||||
#define MSG_CONTROL_RETRACT_RECOVER " DesRet +mm:"
|
||||
#define MSG_CONTROL_RETRACT_RECOVERF " DesRet F:"
|
||||
#define MSG_AUTORETRACT " AutoRetr.:"
|
||||
#define MSG_SERIAL_ERROR_MENU_STRUCTURE "Hay un error en la estructura del menu"
|
||||
|
||||
// Serial Console Messages
|
||||
|
||||
#define MSG_Enqueing "En cola \""
|
||||
#define MSG_POWERUP "PowerUp"
|
||||
#define MSG_EXTERNAL_RESET " Reset Externo"
|
||||
#define MSG_BROWNOUT_RESET " Reset por Voltaje Incorrecto"
|
||||
#define MSG_WATCHDOG_RESET " Reset por Bloqueo"
|
||||
#define MSG_SOFTWARE_RESET " Reset por Software"
|
||||
#define MSG_MARLIN "Marlin "
|
||||
#define MSG_AUTHOR " | Autor: "
|
||||
#define MSG_CONFIGURATION_VER " Ultima actualizacion: "
|
||||
#define MSG_FREE_MEMORY " Memoria libre: "
|
||||
#define MSG_PLANNER_BUFFER_BYTES " PlannerBufferBytes: "
|
||||
#define MSG_OK "ok"
|
||||
#define MSG_FILE_SAVED "Guardado."
|
||||
#define MSG_ERR_LINE_NO "El Numero de Linea no es igual al Ultimo Numero de Linea+1, Ultima Linea:"
|
||||
#define MSG_ERR_CHECKSUM_MISMATCH "el checksum no coincide, Ultima Linea:"
|
||||
#define MSG_ERR_NO_CHECKSUM "No se pudo hallar el Checksum con el numero de linea, Ultima Linea:"
|
||||
#define MSG_ERR_NO_LINENUMBER_WITH_CHECKSUM "No se hallo el Numero de Linea con el Checksum, Ultima Linea:"
|
||||
#define MSG_FILE_PRINTED "Impresion terminada"
|
||||
#define MSG_BEGIN_FILE_LIST "Comienzo de la lista de archivos"
|
||||
#define MSG_END_FILE_LIST "Fin de la lista de archivos"
|
||||
#define MSG_M104_INVALID_EXTRUDER "M104 Extrusor Invalido "
|
||||
#define MSG_M105_INVALID_EXTRUDER "M105 Extrusor Invalido "
|
||||
#define MSG_ERR_NO_THERMISTORS "No hay termistores - no temp"
|
||||
#define MSG_M109_INVALID_EXTRUDER "M109 Extrusor Invalido "
|
||||
#define MSG_HEATING "Calentando..."
|
||||
#define MSG_HEATING_COMPLETE "Calentamiento Hecho."
|
||||
#define MSG_BED_HEATING "Calentando la base."
|
||||
#define MSG_BED_DONE "Base Caliente."
|
||||
#define MSG_M115_REPORT "FIRMWARE_NAME:Marlin V1; Sprinter/grbl mashup for gen6 FIRMWARE_URL:" FIRMWARE_URL " PROTOCOL_VERSION:" PROTOCOL_VERSION " MACHINE_TYPE:" MACHINE_NAME " EXTRUDER_COUNT:" STRINGIFY(EXTRUDERS) "\n"
|
||||
#define MSG_COUNT_X " Cuenta X:"
|
||||
#define MSG_ERR_KILLED "¡¡Impresora Parada con kill()!!"
|
||||
#define MSG_ERR_STOPPED "¡Impresora parada por errores. Arregle el error y use M999 Para reiniciar!. (La temperatura se reestablece. Ajustela antes de continuar)"
|
||||
#define MSG_RESEND "Reenviar:"
|
||||
#define MSG_UNKNOWN_COMMAND "Comando Desconocido:\""
|
||||
#define MSG_ACTIVE_EXTRUDER "Extrusor Activo: "
|
||||
#define MSG_INVALID_EXTRUDER "Extrusor Invalido"
|
||||
#define MSG_X_MIN "x_min:"
|
||||
#define MSG_X_MAX "x_max:"
|
||||
#define MSG_Y_MIN "y_min:"
|
||||
#define MSG_Y_MAX "y_max:"
|
||||
#define MSG_Z_MIN "z_min:"
|
||||
#define MSG_Z_MAX "z_max:"
|
||||
|
||||
#define MSG_SD_CANT_OPEN_SUBDIR "No se pudo abrir la subcarpeta."
|
||||
#define MSG_SD_INIT_FAIL "Fallo al iniciar la SD"
|
||||
#define MSG_SD_VOL_INIT_FAIL "Fallo al montar el volumen"
|
||||
#define MSG_SD_OPENROOT_FAIL "Fallo al abrir la carpeta raiz"
|
||||
#define MSG_SD_CARD_OK "Tarjeta SD OK"
|
||||
#define MSG_SD_WORKDIR_FAIL "Fallo al abrir la carpeta de trabajo"
|
||||
#define MSG_SD_OPEN_FILE_FAIL "Error al abrir, Archivo: "
|
||||
#define MSG_SD_FILE_OPENED "Archivo abierto:"
|
||||
#define MSG_SD_SIZE " Tamaño:"
|
||||
#define MSG_SD_FILE_SELECTED "Archivo Seleccionado"
|
||||
#define MSG_SD_WRITE_TO_FILE "Escribiendo en el archivo: "
|
||||
#define MSG_SD_PRINTING_BYTE "SD imprimiendo el byte "
|
||||
#define MSG_SD_NOT_PRINTING "No se esta imprimiendo con SD"
|
||||
#define MSG_SD_ERR_WRITE_TO_FILE "Error al escribir en el archivo"
|
||||
#define MSG_SD_CANT_ENTER_SUBDIR "No se puede entrar en la carpeta:"
|
||||
|
||||
#define MSG_STEPPER_TO_HIGH "Steprate demasiado alto : "
|
||||
#define MSG_ENDSTOPS_HIT "Se ha tocado el fin de carril: "
|
||||
#define MSG_ERR_COLD_EXTRUDE_STOP " extrusion fria evitada"
|
||||
#define MSG_ERR_LONG_EXTRUDE_STOP " extrusion demasiado larga evitada"
|
||||
|
||||
#endif
|
||||
#endif // ifndef LANGUAGE_H
|
||||
|
||||
@@ -108,6 +108,7 @@
|
||||
#define HEATER_2_PIN -1
|
||||
#define HEATER_BED_PIN 3
|
||||
|
||||
#define KILL_PIN -1
|
||||
|
||||
#define SDPOWER -1
|
||||
#define SDSS -1 // SCL pin of I2C header
|
||||
@@ -206,6 +207,7 @@
|
||||
#define SDCARDDETECT -1
|
||||
#define SUICIDE_PIN -1 //has to be defined; otherwise Power_off doesn't work
|
||||
|
||||
#define KILL_PIN -1
|
||||
//Pins for 4bit LCD Support
|
||||
#define LCD_PINS_RS 18
|
||||
#define LCD_PINS_ENABLE 17
|
||||
@@ -543,6 +545,7 @@
|
||||
#define LED_PIN -1 //changed @ rkoeppl 20110410
|
||||
#define FAN_PIN -1 //changed @ rkoeppl 20110410
|
||||
#define PS_ON_PIN -1 //changed @ rkoeppl 20110410
|
||||
#define KILL_PIN -1 //changed @ drakelive 20120830
|
||||
//our pin for debugging.
|
||||
|
||||
#define DEBUG_PIN 0
|
||||
|
||||
+1
-1
@@ -501,7 +501,7 @@ void plan_buffer_line(const float &x, const float &y, const float &z, const floa
|
||||
// Rest here until there is room in the buffer.
|
||||
while(block_buffer_tail == next_buffer_head) {
|
||||
manage_heater();
|
||||
manage_inactivity(1);
|
||||
manage_inactivity();
|
||||
LCD_STATUS;
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -899,7 +899,7 @@ void st_synchronize()
|
||||
{
|
||||
while( blocks_queued()) {
|
||||
manage_heater();
|
||||
manage_inactivity(1);
|
||||
manage_inactivity();
|
||||
LCD_STATUS;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -885,6 +885,8 @@ ISR(TIMER0_COMPB_vect)
|
||||
#if (TEMP_BED_PIN > -1)
|
||||
#if TEMP_BED_PIN > 7
|
||||
ADCSRB = 1<<MUX5;
|
||||
#else
|
||||
ADCSRB = 0;
|
||||
#endif
|
||||
ADMUX = ((1 << REFS0) | (TEMP_BED_PIN & 0x07));
|
||||
ADCSRA |= 1<<ADSC; // Start conversion
|
||||
|
||||
@@ -419,7 +419,7 @@ const short temptable_52[][2] PROGMEM = {
|
||||
// Verified by linagee. Source: http://shop.arcol.hu/static/datasheets/thermistors.pdf
|
||||
// Calculated using 1kohm pullup, voltage divider math, and manufacturer provided temp/resistance
|
||||
// Advantage: More resolution and better linearity from 150C to 200C
|
||||
const short temptable_52[][2] PROGMEM = {
|
||||
const short temptable_55[][2] PROGMEM = {
|
||||
{1*OVERSAMPLENR, 500},
|
||||
{76*OVERSAMPLENR, 300},
|
||||
{87*OVERSAMPLENR, 290},
|
||||
|
||||
+8
-1
@@ -46,12 +46,14 @@
|
||||
#define BLOCK {blocking[BL_MI]=millis()+blocktime;blocking[BL_ST]=millis()+blocktime;}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
// blocking time for recognizing a new keypress of one key, ms
|
||||
#define blocktime 500
|
||||
#define lcdslow 5
|
||||
|
||||
enum MainStatus{Main_Status, Main_Menu, Main_Prepare,Sub_PrepareMove, Main_Control, Main_SD,Sub_TempControl,Sub_MotionControl,Sub_RetractControl};
|
||||
enum MainStatus{Main_Status, Main_Menu, Main_Prepare,Sub_PrepareMove, Main_Control, Main_SD,Sub_TempControl,Sub_MotionControl,Sub_RetractControl, Sub_PreheatPLASettings, Sub_PreheatABSSettings};
|
||||
|
||||
class MainMenu{
|
||||
public:
|
||||
@@ -71,6 +73,8 @@
|
||||
void showControlRetract();
|
||||
void showAxisMove();
|
||||
void showSD();
|
||||
void showPLAsettings();
|
||||
void showABSsettings();
|
||||
bool force_lcd_update;
|
||||
long lastencoderpos;
|
||||
int8_t lineoffset;
|
||||
@@ -140,12 +144,14 @@
|
||||
#define LCD_INIT lcd_init();
|
||||
#define LCD_MESSAGE(x) lcd_status(x);
|
||||
#define LCD_MESSAGEPGM(x) lcd_statuspgm(MYPGM(x));
|
||||
#define LCD_ALERTMESSAGEPGM(x) lcd_alertstatuspgm(MYPGM(x));
|
||||
#define LCD_STATUS lcd_status()
|
||||
#else //no lcd
|
||||
#define LCD_INIT
|
||||
#define LCD_STATUS
|
||||
#define LCD_MESSAGE(x)
|
||||
#define LCD_MESSAGEPGM(x)
|
||||
#define LCD_ALERTMESSAGEPGM(x)
|
||||
FORCE_INLINE void lcd_status() {};
|
||||
|
||||
#define CLICKED false
|
||||
@@ -153,6 +159,7 @@
|
||||
#endif
|
||||
|
||||
void lcd_statuspgm(const char* message);
|
||||
void lcd_alertstatuspgm(const char* message);
|
||||
|
||||
char *ftostr3(const float &x);
|
||||
char *itostr2(const uint8_t &x);
|
||||
|
||||
+341
-16
@@ -92,6 +92,12 @@ void lcd_statuspgm(const char* message)
|
||||
*target=0;
|
||||
}
|
||||
|
||||
void lcd_alertstatuspgm(const char* message)
|
||||
{
|
||||
lcd_statuspgm(message);
|
||||
menu.showStatus();
|
||||
}
|
||||
|
||||
FORCE_INLINE void clear()
|
||||
{
|
||||
lcd.clear();
|
||||
@@ -528,16 +534,18 @@ void MainMenu::showPrepare()
|
||||
MENUITEM( lcdprintPGM(MSG_SET_ORIGIN) , BLOCK;enquecommand("G92 X0 Y0 Z0");beepshort(); ) ;
|
||||
break;
|
||||
case ItemP_preheat_pla:
|
||||
MENUITEM( lcdprintPGM(MSG_PREHEAT_PLA) , BLOCK;setTargetHotend0(PLA_PREHEAT_HOTEND_TEMP);setTargetBed(PLA_PREHEAT_HPB_TEMP);
|
||||
MENUITEM( lcdprintPGM(MSG_PREHEAT_PLA) , BLOCK;setTargetHotend0(plaPreheatHotendTemp);setTargetBed(plaPreheatHPBTemp);
|
||||
#if FAN_PIN > -1
|
||||
analogWrite(FAN_PIN, PLA_PREHEAT_FAN_SPEED);
|
||||
FanSpeed = plaPreheatFanSpeed;
|
||||
analogWrite(FAN_PIN, FanSpeed);
|
||||
#endif
|
||||
beepshort(); );
|
||||
break;
|
||||
case ItemP_preheat_abs:
|
||||
MENUITEM( lcdprintPGM(MSG_PREHEAT_ABS) , BLOCK;setTargetHotend0(ABS_PREHEAT_HOTEND_TEMP);setTargetBed(ABS_PREHEAT_HPB_TEMP);
|
||||
MENUITEM( lcdprintPGM(MSG_PREHEAT_ABS) , BLOCK;setTargetHotend0(absPreheatHotendTemp);setTargetBed(absPreheatHPBTemp);
|
||||
#if FAN_PIN > -1
|
||||
analogWrite(FAN_PIN, ABS_PREHEAT_FAN_SPEED);
|
||||
FanSpeed = absPreheatFanSpeed;
|
||||
analogWrite(FAN_PIN, FanSpeed);
|
||||
#endif
|
||||
beepshort(); );
|
||||
break;
|
||||
@@ -787,7 +795,7 @@ void MainMenu::showTune()
|
||||
{
|
||||
lcd.setCursor(0,line);lcdprintPGM(MSG_NOZZLE);
|
||||
lcd.setCursor(13,line);lcd.print(ftostr3(intround(degTargetHotend0())));
|
||||
}
|
||||
}
|
||||
|
||||
if((activeline!=line) )
|
||||
break;
|
||||
@@ -965,7 +973,9 @@ enum {
|
||||
ItemCT_bed,
|
||||
#endif
|
||||
ItemCT_fan,
|
||||
ItemCT_PID_P,ItemCT_PID_I,ItemCT_PID_D,ItemCT_PID_C
|
||||
ItemCT_PID_P,ItemCT_PID_I,ItemCT_PID_D,ItemCT_PID_C,
|
||||
ItemCT_PLA_PreHeat_Setting,
|
||||
ItemCT_ABS_PreHeat_Setting,
|
||||
};
|
||||
|
||||
void MainMenu::showControlTemp()
|
||||
@@ -1432,16 +1442,19 @@ void MainMenu::showControlTemp()
|
||||
#endif
|
||||
#endif
|
||||
break;
|
||||
case ItemCT_PLA_PreHeat_Setting:
|
||||
MENUITEM( lcdprintPGM(MSG_PREHEAT_PLA_SETTINGS) , BLOCK;status=Sub_PreheatPLASettings;beepshort(); ) ;
|
||||
break;
|
||||
case ItemCT_ABS_PreHeat_Setting:
|
||||
MENUITEM( lcdprintPGM(MSG_PREHEAT_ABS_SETTINGS) , BLOCK;status=Sub_PreheatABSSettings;beepshort(); ) ;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
line++;
|
||||
}
|
||||
#ifdef PID_ADD_EXTRUSION_RATE
|
||||
updateActiveLines(ItemCT_PID_C,encoderpos);
|
||||
#else
|
||||
updateActiveLines(ItemCT_PID_D,encoderpos);
|
||||
#endif
|
||||
|
||||
updateActiveLines(ItemCT_ABS_PreHeat_Setting,encoderpos);
|
||||
}
|
||||
|
||||
|
||||
@@ -2297,7 +2310,15 @@ void MainMenu::showSD()
|
||||
//Serial.print("Filenr:");Serial.println(i-2);
|
||||
lcd.setCursor(0,line);lcdprintPGM(" ");
|
||||
if(card.filenameIsDir) lcd.print("\005");
|
||||
lcd.print(card.filename);
|
||||
if (card.longFilename[0])
|
||||
{
|
||||
card.longFilename[LCD_WIDTH-1] = '\0';
|
||||
lcd.print(card.longFilename);
|
||||
}
|
||||
else
|
||||
{
|
||||
lcd.print(card.filename);
|
||||
}
|
||||
}
|
||||
if((activeline==line) && CLICKED)
|
||||
{
|
||||
@@ -2322,7 +2343,15 @@ void MainMenu::showSD()
|
||||
enquecommand("M24");
|
||||
beep();
|
||||
status=Main_Status;
|
||||
lcd_status(card.filename);
|
||||
if (card.longFilename[0])
|
||||
{
|
||||
card.longFilename[LCD_WIDTH-1] = '\0';
|
||||
lcd_status(card.longFilename);
|
||||
}
|
||||
else
|
||||
{
|
||||
lcd_status(card.filename);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2567,6 +2596,14 @@ void MainMenu::update()
|
||||
{
|
||||
showSD();
|
||||
}break;
|
||||
case Sub_PreheatPLASettings:
|
||||
{
|
||||
showPLAsettings();
|
||||
}break;
|
||||
case Sub_PreheatABSSettings:
|
||||
{
|
||||
showABSsettings();
|
||||
}break;
|
||||
}
|
||||
|
||||
if(timeoutToStatus<millis())
|
||||
@@ -2575,11 +2612,299 @@ void MainMenu::update()
|
||||
lastencoderpos=encoderpos;
|
||||
}
|
||||
|
||||
enum {
|
||||
ItemPLAPreHeat_Exit,
|
||||
ItemPLAPreHeat_set_PLA_FanSpeed,
|
||||
ItemPLAPreHeat_set_nozzle,
|
||||
ItemPLAPreHeat_set_HPB,
|
||||
ItemPLAPreHeat_Store_Eprom
|
||||
};
|
||||
|
||||
void MainMenu::showPLAsettings()
|
||||
{
|
||||
#ifdef ULTIPANEL
|
||||
uint8_t line=0;
|
||||
clearIfNecessary();
|
||||
for(int8_t i=lineoffset;i<lineoffset+LCD_HEIGHT;i++)
|
||||
{
|
||||
switch(i)
|
||||
{
|
||||
|
||||
case ItemPLAPreHeat_Exit:
|
||||
MENUITEM( lcdprintPGM(MSG_TEMPERATURE_RTN) , BLOCK;status=Sub_TempControl;beepshort(); ) ;
|
||||
break;
|
||||
|
||||
case ItemPLAPreHeat_set_PLA_FanSpeed:
|
||||
{
|
||||
if(force_lcd_update)
|
||||
{
|
||||
lcd.setCursor(0,line);lcdprintPGM(MSG_FAN_SPEED);
|
||||
lcd.setCursor(13,line);lcd.print(ftostr3(plaPreheatFanSpeed));
|
||||
}
|
||||
|
||||
if((activeline!=line) )
|
||||
break;
|
||||
|
||||
if(CLICKED)
|
||||
{
|
||||
linechanging=!linechanging;
|
||||
if(linechanging)
|
||||
{
|
||||
encoderpos=plaPreheatFanSpeed;
|
||||
}
|
||||
else
|
||||
{
|
||||
encoderpos=activeline*lcdslow;
|
||||
beepshort();
|
||||
}
|
||||
BLOCK;
|
||||
}
|
||||
if(linechanging)
|
||||
{
|
||||
if(encoderpos<0) encoderpos=0;
|
||||
if(encoderpos>255) encoderpos=255;
|
||||
plaPreheatFanSpeed=encoderpos;
|
||||
lcd.setCursor(13,line);lcd.print(itostr3(encoderpos));
|
||||
}
|
||||
}break;
|
||||
|
||||
case ItemPLAPreHeat_set_nozzle:
|
||||
{
|
||||
if(force_lcd_update)
|
||||
{
|
||||
lcd.setCursor(0,line);lcdprintPGM(MSG_NOZZLE);
|
||||
lcd.setCursor(13,line);lcd.print(ftostr3(plaPreheatHotendTemp));
|
||||
}
|
||||
|
||||
if((activeline!=line) )
|
||||
break;
|
||||
|
||||
if(CLICKED)
|
||||
{
|
||||
linechanging=!linechanging;
|
||||
if(linechanging)
|
||||
{
|
||||
encoderpos=plaPreheatHotendTemp;
|
||||
}
|
||||
else
|
||||
{
|
||||
encoderpos=activeline*lcdslow;
|
||||
beepshort();
|
||||
}
|
||||
BLOCK;
|
||||
}
|
||||
if(linechanging)
|
||||
{
|
||||
if(encoderpos<0) encoderpos=0;
|
||||
if(encoderpos>260) encoderpos=260;
|
||||
plaPreheatHotendTemp = encoderpos;
|
||||
lcd.setCursor(13,line);lcd.print(itostr3(encoderpos));
|
||||
}
|
||||
}break;
|
||||
|
||||
case ItemPLAPreHeat_set_HPB:
|
||||
{
|
||||
if(force_lcd_update)
|
||||
{
|
||||
lcd.setCursor(0,line);lcdprintPGM(MSG_BED);
|
||||
lcd.setCursor(13,line);lcd.print(ftostr3(plaPreheatHPBTemp));
|
||||
}
|
||||
|
||||
if((activeline!=line) )
|
||||
break;
|
||||
|
||||
if(CLICKED)
|
||||
{
|
||||
linechanging=!linechanging;
|
||||
if(linechanging)
|
||||
{
|
||||
encoderpos=plaPreheatHPBTemp;
|
||||
}
|
||||
else
|
||||
{
|
||||
encoderpos=activeline*lcdslow;
|
||||
beepshort();
|
||||
}
|
||||
BLOCK;
|
||||
}
|
||||
if(linechanging)
|
||||
{
|
||||
if(encoderpos<0) encoderpos=0;
|
||||
if(encoderpos>250) encoderpos=150;
|
||||
plaPreheatHPBTemp = encoderpos;
|
||||
lcd.setCursor(13,line);lcd.print(itostr3(encoderpos));
|
||||
}
|
||||
}break;
|
||||
case ItemPLAPreHeat_Store_Eprom:
|
||||
{
|
||||
if(force_lcd_update)
|
||||
{
|
||||
lcd.setCursor(0,line);lcdprintPGM(MSG_STORE_EPROM);
|
||||
}
|
||||
if((activeline==line) && CLICKED)
|
||||
{
|
||||
//enquecommand("M84");
|
||||
beepshort();
|
||||
BLOCK;
|
||||
EEPROM_StoreSettings();
|
||||
}
|
||||
}break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
line++;
|
||||
}
|
||||
updateActiveLines(ItemPLAPreHeat_Store_Eprom,encoderpos);
|
||||
#endif
|
||||
}
|
||||
|
||||
enum {
|
||||
ItemABSPreHeat_Exit,
|
||||
ItemABSPreHeat_set_FanSpeed,
|
||||
ItemABSPreHeat_set_nozzle,
|
||||
ItemABSPreHeat_set_HPB,
|
||||
ItemABSPreHeat_Store_Eprom
|
||||
};
|
||||
|
||||
void MainMenu::showABSsettings()
|
||||
{
|
||||
#ifdef ULTIPANEL
|
||||
uint8_t line=0;
|
||||
clearIfNecessary();
|
||||
for(int8_t i=lineoffset;i<lineoffset+LCD_HEIGHT;i++)
|
||||
{
|
||||
switch(i)
|
||||
{
|
||||
|
||||
case ItemABSPreHeat_Exit:
|
||||
MENUITEM( lcdprintPGM(MSG_TEMPERATURE_RTN) , BLOCK;status=Sub_TempControl;beepshort(); ) ;
|
||||
break;
|
||||
|
||||
case ItemABSPreHeat_set_FanSpeed:
|
||||
{
|
||||
if(force_lcd_update)
|
||||
{
|
||||
lcd.setCursor(0,line);lcdprintPGM(MSG_FAN_SPEED);
|
||||
lcd.setCursor(13,line);lcd.print(ftostr3(absPreheatFanSpeed));
|
||||
}
|
||||
|
||||
if((activeline!=line) )
|
||||
break;
|
||||
|
||||
if(CLICKED)
|
||||
{
|
||||
linechanging=!linechanging;
|
||||
if(linechanging)
|
||||
{
|
||||
encoderpos=absPreheatFanSpeed;
|
||||
}
|
||||
else
|
||||
{
|
||||
encoderpos=activeline*lcdslow;
|
||||
beepshort();
|
||||
}
|
||||
BLOCK;
|
||||
}
|
||||
if(linechanging)
|
||||
{
|
||||
if(encoderpos<0) encoderpos=0;
|
||||
if(encoderpos>255) encoderpos=255;
|
||||
absPreheatFanSpeed=encoderpos;
|
||||
lcd.setCursor(13,line);lcd.print(itostr3(encoderpos));
|
||||
}
|
||||
}break;
|
||||
|
||||
case ItemABSPreHeat_set_nozzle:
|
||||
{
|
||||
if(force_lcd_update)
|
||||
{
|
||||
lcd.setCursor(0,line);lcdprintPGM(MSG_NOZZLE);
|
||||
lcd.setCursor(13,line);lcd.print(ftostr3(absPreheatHotendTemp));
|
||||
}
|
||||
|
||||
if((activeline!=line) )
|
||||
break;
|
||||
|
||||
if(CLICKED)
|
||||
{
|
||||
linechanging=!linechanging;
|
||||
if(linechanging)
|
||||
{
|
||||
encoderpos=absPreheatHotendTemp;
|
||||
}
|
||||
else
|
||||
{
|
||||
encoderpos=activeline*lcdslow;
|
||||
beepshort();
|
||||
}
|
||||
BLOCK;
|
||||
}
|
||||
if(linechanging)
|
||||
{
|
||||
if(encoderpos<0) encoderpos=0;
|
||||
if(encoderpos>260) encoderpos=260;
|
||||
absPreheatHotendTemp = encoderpos;
|
||||
lcd.setCursor(13,line);lcd.print(itostr3(encoderpos));
|
||||
}
|
||||
}break;
|
||||
|
||||
case ItemABSPreHeat_set_HPB:
|
||||
{
|
||||
if(force_lcd_update)
|
||||
{
|
||||
lcd.setCursor(0,line);lcdprintPGM(MSG_BED);
|
||||
lcd.setCursor(13,line);lcd.print(ftostr3(absPreheatHPBTemp));
|
||||
}
|
||||
|
||||
if((activeline!=line) )
|
||||
break;
|
||||
|
||||
if(CLICKED)
|
||||
{
|
||||
linechanging=!linechanging;
|
||||
if(linechanging)
|
||||
{
|
||||
encoderpos=absPreheatHPBTemp;
|
||||
}
|
||||
else
|
||||
{
|
||||
encoderpos=activeline*lcdslow;
|
||||
beepshort();
|
||||
}
|
||||
BLOCK;
|
||||
}
|
||||
if(linechanging)
|
||||
{
|
||||
if(encoderpos<0) encoderpos=0;
|
||||
if(encoderpos>250) encoderpos=150;
|
||||
absPreheatHPBTemp = encoderpos;
|
||||
lcd.setCursor(13,line);lcd.print(itostr3(encoderpos));
|
||||
}
|
||||
}break;
|
||||
case ItemABSPreHeat_Store_Eprom:
|
||||
{
|
||||
if(force_lcd_update)
|
||||
{
|
||||
lcd.setCursor(0,line);lcdprintPGM(MSG_STORE_EPROM);
|
||||
}
|
||||
if((activeline==line) && CLICKED)
|
||||
{
|
||||
//enquecommand("M84");
|
||||
beepshort();
|
||||
BLOCK;
|
||||
EEPROM_StoreSettings();
|
||||
}
|
||||
}break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
line++;
|
||||
}
|
||||
updateActiveLines(ItemABSPreHeat_Store_Eprom,encoderpos);
|
||||
#endif
|
||||
}
|
||||
|
||||
//**********************************************************************************************************
|
||||
// convert float to string with +123.4 format
|
||||
char *ftostr3(const float &x)
|
||||
{
|
||||
@@ -2619,7 +2944,7 @@ char *ftostr31(const float &x)
|
||||
|
||||
char *ftostr32(const float &x)
|
||||
{
|
||||
int xx=x*100;
|
||||
long xx=x*100;
|
||||
conv[0]=(xx>=0)?'+':'-';
|
||||
xx=abs(xx);
|
||||
conv[1]=(xx/100)%10+'0';
|
||||
@@ -2664,7 +2989,7 @@ char *itostr4(const int &xx)
|
||||
// convert float to string with +1234.5 format
|
||||
char *ftostr51(const float &x)
|
||||
{
|
||||
int xx=x*10;
|
||||
long xx=x*10;
|
||||
conv[0]=(xx>=0)?'+':'-';
|
||||
xx=abs(xx);
|
||||
conv[1]=(xx/10000)%10+'0';
|
||||
@@ -2680,7 +3005,7 @@ char *ftostr51(const float &x)
|
||||
// convert float to string with +123.45 format
|
||||
char *ftostr52(const float &x)
|
||||
{
|
||||
int xx=x*100;
|
||||
long xx=x*100;
|
||||
conv[0]=(xx>=0)?'+':'-';
|
||||
xx=abs(xx);
|
||||
conv[1]=(xx/10000)%10+'0';
|
||||
|
||||
Reference in New Issue
Block a user