Commit 521315e2 authored by MagoKimbra's avatar MagoKimbra

Update 4.2.2

parent 9c53b44c
......@@ -27,7 +27,7 @@
* M3 - S[0-255] Put output in laser beam control
* M4 - Turn on laser beam
* M5 - Turn off laser beam
* M11 - Start printer for pause mode
* M11 - Start/Stop printing serial mode
* M17 - Enable/Power all stepper motors
* M18 - Disable all stepper motors; same as M84
* M20 - List SD card
......@@ -107,6 +107,7 @@
* M502 - reverts to the default "factory settings". You still need to store them in EEPROM afterwards if you want to.
* M503 - print the current settings (from memory not from EEPROM)
* M540 - Use S[0|1] to enable or disable the stop SD card print on endstop hit (requires ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED)
* M595 - Set hotend AD595 offset and gain
* M600 - Pause for filament change X[pos] Y[pos] Z[relative lift] E[initial retract] L[later retract distance for removal]
* M605 - Set dual x-carriage movement mode: Smode [ X<duplication x-offset> Rduplication temp offset ]
* M666 - Set z probe offset or Endstop and delta geometry adjustment. M666 L for list command
......
### Version 4.2.2
* Added the possibility to invert the logic for lcd buttons.
* Language files bugfix.
* Fixed a freeze problem during write operations to the SD.
* Re-enabled by default SDSUPPORT for DISCOUNT displays.
### Version 4.2.1
* SDSUPPORT disabled by default.
* General BugFix.
### Version 4.2.0
* Add Dual Extruder DONDOLO
* Add Dual Extruder DONDOLO.
* Add PID Extrusion Rate Kc in percent.
* New configuration systems (Now you can create a separate file with all configuration and use it in you FW update)
* New namings for file
* Added more documentation inside configuration file
* More checks for feature incompatibility during compilation
* Codeclean
* General bugfix
* Removed legacy support for old configuration (Do not use your old configuration files, namings and position for configuration has changed)
* New configuration systems (Now you can create a separate file with all configuration and use it in you FW update).
* New namings for file.
* Added more documentation inside configuration file.
* More checks for feature incompatibility during compilation.
* Codeclean.
* General bugfix.
* Removed legacy support for old configuration (Do not use your old configuration files, namings and position for configuration has changed).
### Version 4.1.5
* Added dot for SD write operation
* Added statistics menu
* Added an overall configuration file
* Added M70 gcode for calibrate AC721 current sensor
* Added documentation for calibrate AC721 current sensor
* Critical stepper motor frequency bugfix
* Added dot for SD write operation.
* Added statistics menu.
* Added an overall configuration file.
* Added M70 gcode for calibrate AC721 current sensor.
* Added documentation for calibrate AC721 current sensor.
* Critical stepper motor frequency bugfix.
* Introduced more intuitive menu tree.
* Added a menu option to fix loose steps from LCD
* Improved italian translation
* Added a menu option to fix loose steps from LCD.
* Improved italian translation.
* G28 gcode now support the "B" flag that enable you to come back to the last position of the axis before the homing command. (Used for fix loose steps)
* Implemented FAST_PWM_FAN and FAN_SOFT_PWM also for other fan that can be added in configuration_adv file.
* Added the ability to set a min speed to the fan that can be added in configuration_adv file.
* General bugfix
* General bugfix.
### Version 4.1.4
* Add support for Piggy Alligator board
......
......@@ -19,7 +19,7 @@
/***********************************************************************
********************** Serial comunication type ***********************
***********************************************************************/
// SERIAL_PORT selects which serial port should be used for communication with the host.
// SERIAL PORT selects which serial port should be used for communication with the host.
// This allows the connection of wireless adapters (for instance) to non-default port pins.
// Serial port 0 is still used by the Arduino bootloader regardless of this setting.
#define SERIAL_PORT 0
......
......@@ -214,7 +214,7 @@
/*****************************************************************************************
************************************** MBL or ABL ***************************************
/*****************************************************************************************
*****************************************************************************************
* *
* Manual Bed Leveling (MBL) or Auto Bed Leveling (ABL) settings *
* Set the rectangle in which to probe in MBL or ABL. *
......@@ -329,7 +329,7 @@
/*****************************************************************************************
******************************** Manual home positions **********************************
/*****************************************************************************************/
*****************************************************************************************/
// The position of the homing switches
//#define MANUAL_HOME_POSITIONS // If defined, MANUAL_*_HOME_POS below will be used
//#define BED_CENTER_AT_0_0 // If defined, the center of the bed is at (X=0, Y=0)
......
......@@ -67,6 +67,7 @@
* ADVANCED FEATURES:
* - Buffer stuff
* - Whatchdog
* - Start / Stop Gcode
*
* Basic-settings can be found in Configuration_Basic.h
* Mechanisms-settings can be found in Configuration_Xxxxxx.h (where Xxxxxx can be: Cartesian - Delta - Core - Scara)
......@@ -1051,6 +1052,8 @@
//#define LCD_SCREEN_ROT_180 //Rotate screen orientation for graphics display by 180 degree clockwise
//#define LCD_SCREEN_ROT_270 //Rotate screen orientation for graphics display by 270 degree clockwise
//#define INVERT_CLICK_BUTTON // Option for invert encoder button logic
//#define INVERT_BACK_BUTTON // Option for invert back button logic if avaible
//#define INVERT_ROTARY_SWITCH // Option for invert rotary encoder
#define ENCODER_RATE_MULTIPLIER // If defined, certain menu edit operations automatically multiply the steps when the encoder is moved quickly
#define ENCODER_10X_STEPS_PER_SEC 75 // If the encoder steps per sec exceeds this value, multiply steps moved x10 to quickly advance the value
......@@ -1086,13 +1089,13 @@
// The Panucatt Devices Viki 2.0 and mini Viki with Graphic LCD
// http://panucatt.com
// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino
// REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino
//#define VIKI2
//#define miniVIKI
// This is a new controller currently under development. https://github.com/eboston/Adafruit-ST7565-Full-Graphic-Controller/
//
// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino
// REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino
//#define ELB_FULL_GRAPHIC_CONTROLLER
//#define SD_DETECT_INVERTED
......@@ -1107,7 +1110,7 @@
// The RepRapDiscount FULL GRAPHIC Smart Controller (quadratic white PCB)
// http://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller
//
// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino
// REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino
//#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
// The RepRapWorld REPRAPWORLD_KEYPAD v1.1
......@@ -1122,11 +1125,13 @@
// The MakerLab Mini Panel with graphic controller and SD support
// http://reprap.org/wiki/Mini_panel
// #define MINIPANEL
//#define MINIPANEL
// Nextion HMI panel
// ==> REMEMBER TO INSTALL Nextion library in your ARDUINO library folder. You can find it in Arduino\libraries\
// REMEMBER TO INSTALL Nextion library in your ARDUINO library folder. You can find it in Arduino/libraries/
//#define NEXTION
// For GFX Visualization enable Nextion GFX
//#define NEXTION_GFX
// I2C Panels
//#define LCD_I2C_SAINSMART_YWROBOT
......@@ -1144,7 +1149,7 @@
//#define LCD_I2C_VIKI
// SSD1306 OLED generic display support
// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino
// REMEMBER TO INSTALL U8glib to your ARDUINO library folder: https://github.com/olikraus/U8glib_Arduino
//#define U8GLIB_SSD1306
// Shift register panels
......@@ -1493,4 +1498,19 @@
//#define WATCHDOG_RESET_MANUAL
/*****************************************************************************************/
/*****************************************************************************************
********************************* Start - Stop Gcode ************************************
*****************************************************************************************
* *
* Start - Stop Gcode use when Start or Stop printing width M11 command *
* *
*****************************************************************************************/
//#define START_GCODE
#define START_PRINTING_SCRIPT "G28\nG1 Z10 F8000"
//#define STOP_GCODE
#define STOP_PRINTING_SCRIPT "G28\nM107\nM104 T0 S0\nM140 S0\nM84\nM81"
/*****************************************************************************************/
#endif
#ifndef CONFIGURATION_VERSION_H
#define CONFIGURATION_VERSION_H
/*
* This file is a placeholder for a file which could be distributed in an archive
* It takes the place of an automatically created "_Version.h" which is generated during the build process
*/
#define CONFIGURATION_VERSION_H
// #error "You must specify the following parameters related to your distribution"
#if true
#define SHORT_BUILD_VERSION "4.2.1 dev"
#define BUILD_VERSION "MarlinKimbra 4.2.2 dev"
#define SHORT_BUILD_VERSION "4.2.2 dev"
#define STRING_DISTRIBUTION_DATE __DATE__ " " __TIME__ // build date and time
// It might also be appropriate to define a location where additional information can be found
#define SOURCE_CODE_URL "https://github.com/MagoKimbra/MarlinKimbra"
#endif
#endif
\ No newline at end of file
This diff is collapsed.
......@@ -72,6 +72,7 @@ extern uint8_t debugLevel;
extern bool Running;
inline bool IsRunning() { return Running; }
inline bool IsStopped() { return !Running; }
extern bool Printing;
bool enqueuecommand(const char *cmd); //put a single ASCII command at the end of the current buffer or return false when it is full
void enqueuecommands_P(const char *cmd); //put one or many ASCII commands at the end of the current buffer, read from flash
......@@ -80,7 +81,7 @@ void prepare_arc_move(char isclockwise);
void clamp_to_software_endstops(float target[3]);
extern millis_t previous_cmd_ms;
inline void refresh_cmd_timeout();
void refresh_cmd_timeout();
#if ENABLED(FAST_PWM_FAN)
void setPwmFrequency(uint8_t pin, int val);
......
......@@ -86,7 +86,7 @@ void CardReader::lsDive(const char* prepend, SdFile parent, const char* const ma
SdFile dir;
if (!dir.open(parent, lfilename, O_READ)) {
if (lsAction == LS_SerialPrint) {
ECHO_LMV(ER, MSG_SD_CANT_OPEN_SUBDIR, lfilename);
ECHO_LMV(ER, SERIAL_SD_CANT_OPEN_SUBDIR, lfilename);
}
}
lsDive(path, dir);
......@@ -176,7 +176,7 @@ void CardReader::ls() {
SdFile dir;
if (!dir.open(diveDir, segment, O_READ)) {
ECHO_E;
ECHO_SMV(DB, MSG_SD_CANT_OPEN_SUBDIR, segment);
ECHO_SMV(DB, SERIAL_SD_CANT_OPEN_SUBDIR, segment);
break;
}
......@@ -207,30 +207,30 @@ void CardReader::initsd() {
&& !card.init(SPI_SPEED, LCD_SDSS)
#endif
) {
ECHO_LM(DB, MSG_SD_INIT_FAIL);
ECHO_LM(DB, SERIAL_SD_INIT_FAIL);
}
else if (!volume.init(&card)) {
ECHO_LM(ER, MSG_SD_VOL_INIT_FAIL);
ECHO_LM(ER, SERIAL_SD_VOL_INIT_FAIL);
}
else if (!root.openRoot(&volume)) {
ECHO_LM(ER, MSG_SD_OPENROOT_FAIL);
ECHO_LM(ER, SERIAL_SD_OPENROOT_FAIL);
}
else {
cardOK = true;
ECHO_LM(DB, MSG_SD_CARD_OK);
ECHO_LM(DB, SERIAL_SD_CARD_OK);
}
workDir = root;
curDir = &root;
/*
if (!workDir.openRoot(&volume)) {
ECHO_EM(MSG_SD_WORKDIR_FAIL);
ECHO_EM(SERIAL_SD_WORKDIR_FAIL);
}
*/
}
void CardReader::setroot(bool temporary) {
/*if (!workDir.openRoot(&volume)) {
ECHO_EM(MSG_SD_WORKDIR_FAIL);
ECHO_EM(SERIAL_SD_WORKDIR_FAIL);
}*/
if(temporary) lastDir = workDir;
workDir = root;
......@@ -279,7 +279,7 @@ void CardReader::openFile(char* name, bool read, bool replace_current/*=true*/,
if (file.isOpen()) { //replacing current file by new file, or subfile call
if (!replace_current) {
if (file_subcall_ctr > SD_PROCEDURE_DEPTH - 1) {
ECHO_LMV(ER, MSG_SD_MAX_DEPTH, SD_PROCEDURE_DEPTH);
ECHO_LMV(ER, SERIAL_SD_MAX_DEPTH, SD_PROCEDURE_DEPTH);
kill(PSTR(MSG_KILLED));
return;
}
......@@ -317,7 +317,7 @@ void CardReader::openFile(char* name, bool read, bool replace_current/*=true*/,
subdirname[dirname_end - dirname_start] = 0;
ECHO_EV(subdirname);
if (!myDir.open(curDir, subdirname, O_READ)) {
ECHO_SMV(ER, MSG_SD_OPEN_FILE_FAIL, subdirname);
ECHO_SMV(ER, SERIAL_SD_OPEN_FILE_FAIL, subdirname);
ECHO_EM(".");
return;
} else {
......@@ -337,24 +337,24 @@ void CardReader::openFile(char* name, bool read, bool replace_current/*=true*/,
if (read) {
if (file.open(curDir, fname, O_READ)) {
filesize = file.fileSize();
ECHO_MV(MSG_SD_FILE_OPENED, fname);
ECHO_EMV(MSG_SD_SIZE, filesize);
ECHO_MV(SERIAL_SD_FILE_OPENED, fname);
ECHO_EMV(SERIAL_SD_SIZE, filesize);
sdpos = 0;
ECHO_EM(MSG_SD_FILE_SELECTED);
ECHO_EM(SERIAL_SD_FILE_SELECTED);
getfilename(0, fname);
if(lcd_status) lcd_setstatus(longFilename[0] ? longFilename : fname);
} else {
ECHO_MV(MSG_SD_OPEN_FILE_FAIL, fname);
ECHO_MV(SERIAL_SD_OPEN_FILE_FAIL, fname);
ECHO_PGM(".\n");
}
} else { //write
if (!file.open(curDir, fname, O_CREAT | O_APPEND | O_WRITE | O_TRUNC)) {
ECHO_SMV(ER, MSG_SD_OPEN_FILE_FAIL, fname);
ECHO_SMV(ER, SERIAL_SD_OPEN_FILE_FAIL, fname);
ECHO_EM(".");
} else {
saving = true;
ECHO_LMV(DB, MSG_SD_WRITE_TO_FILE, name);
ECHO_LMV(DB, SERIAL_SD_WRITE_TO_FILE, name);
if (lcd_status) lcd_setstatus(fname);
}
}
......@@ -378,7 +378,7 @@ void CardReader::removeFile(char* name) {
subdirname[dirname_end - dirname_start] = 0;
ECHO_EV(subdirname);
if (!myDir.open(curDir, subdirname, O_READ)) {
ECHO_SMV(DB, MSG_SD_OPEN_FILE_FAIL, subdirname);
ECHO_SMV(DB, SERIAL_SD_OPEN_FILE_FAIL, subdirname);
ECHO_EM(".");
return;
}
......@@ -393,20 +393,20 @@ void CardReader::removeFile(char* name) {
} else // relative path
curDir = &workDir;
if (file.remove(curDir, fname)) {
ECHO_EMV(MSG_SD_FILE_DELETED, fname);
ECHO_EMV(SERIAL_SD_FILE_DELETED, fname);
sdpos = 0;
} else {
ECHO_MV(MSG_SD_FILE_DELETION_ERR, fname);
ECHO_MV(SERIAL_SD_FILE_DELETION_ERR, fname);
ECHO_C('.');
}
}
void CardReader::getStatus() {
if (cardOK) {
ECHO_MV(MSG_SD_PRINTING_BYTE, sdpos);
ECHO_EMV(MSG_SD_SLASH, filesize);
ECHO_MV(SERIAL_SD_PRINTING_BYTE, sdpos);
ECHO_EMV(SERIAL_SD_SLASH, filesize);
} else
ECHO_EM(MSG_SD_NOT_PRINTING);
ECHO_EM(SERIAL_SD_NOT_PRINTING);
}
void CardReader::write_command(char* buf) {
......@@ -423,7 +423,7 @@ void CardReader::write_command(char* buf) {
end[3] = '\0';
file.write(begin);
if (file.writeError) {
ECHO_LM(ER, MSG_SD_ERR_WRITE_TO_FILE);
ECHO_LM(ER, SERIAL_SD_ERR_WRITE_TO_FILE);
}
}
......@@ -538,28 +538,28 @@ void CardReader::unparseKeyLine(const char* key, char* value) {
file.writeError = false;
file.write(key);
if (file.writeError) {
ECHO_LM(ER, MSG_SD_ERR_WRITE_TO_FILE);
ECHO_LM(ER, SERIAL_SD_ERR_WRITE_TO_FILE);
return;
}
file.writeError = false;
file.write("=");
if (file.writeError) {
ECHO_LM(ER, MSG_SD_ERR_WRITE_TO_FILE);
ECHO_LM(ER, SERIAL_SD_ERR_WRITE_TO_FILE);
return;
}
file.writeError = false;
file.write(value);
if (file.writeError) {
ECHO_LM(ER, MSG_SD_ERR_WRITE_TO_FILE);
ECHO_LM(ER, SERIAL_SD_ERR_WRITE_TO_FILE);
return;
}
file.writeError = false;
file.write("\n");
if (file.writeError) {
ECHO_LM(ER, MSG_SD_ERR_WRITE_TO_FILE);
ECHO_LM(ER, SERIAL_SD_ERR_WRITE_TO_FILE);
return;
}
}
......@@ -589,7 +589,7 @@ void CardReader::chdir(const char* relpath) {
SdFile* parent = &root;
if (workDir.isOpen()) parent = &workDir;
if (!newfile.open(*parent, relpath, O_READ)) {
ECHO_LMV(DB, MSG_SD_CANT_ENTER_SUBDIR, relpath);
ECHO_LMV(DB, SERIAL_SD_CANT_ENTER_SUBDIR, relpath);
} else {
if (workDirDepth < MAX_DIR_DEPTH) {
++workDirDepth;
......
......@@ -26,7 +26,15 @@
#endif // BLUETOOTH
#else
#ifdef __SAM3X8E__
#define MYSERIAL Serial
#if SERIAL_PORT == 0
#define MYSERIAL Serial
#elif SERIAL_PORT == 1
#define MYSERIAL Serial1
#elif SERIAL_PORT == 2
#define MYSERIAL Serial2
#elif SERIAL_PORT == 3
#define MYSERIAL Serial3
#endif
#else
#define MYSERIAL customizedSerial
#endif
......
......@@ -121,7 +121,7 @@ void _EEPROM_writeData(int& pos, uint8_t* value, uint8_t size) {
eeprom_write_byte((unsigned char*)pos, *value);
c = eeprom_read_byte((unsigned char*)pos);
if (c != *value) {
ECHO_LM(ER, MSG_ERR_EEPROM_WRITE);
ECHO_LM(ER, SERIAL_ERR_EEPROM_WRITE);
}
pos++;
value++;
......@@ -439,9 +439,9 @@ void Config_RetrieveSettings() {
void Config_ResetDefault() {
float tmp1[] = DEFAULT_AXIS_STEPS_PER_UNIT;
float tmp2[] = DEFAULT_MAX_FEEDRATE;
long tmp3[] = DEFAULT_MAX_ACCELERATION;
long tmp4[] = DEFAULT_RETRACT_ACCELERATION;
long tmp5[] = DEFAULT_EJERK;
float tmp3[] = DEFAULT_MAX_ACCELERATION;
float tmp4[] = DEFAULT_RETRACT_ACCELERATION;
float tmp5[] = DEFAULT_EJERK;
#if ENABLED(PIDTEMP)
float tmp6[] = DEFAULT_Kp;
float tmp7[] = DEFAULT_Ki;
......@@ -907,13 +907,26 @@ void ConfigSD_ResetDefault() {
}
#if ENABLED(SDSUPPORT) && ENABLED(SD_SETTINGS)
static const char *cfgSD_KEY[] = { //Keep this in lexicographical order for better search performance(O(Nlog2(N)) insted of O(N*N)) (if you don't keep this sorted, the algorithm for find the key index won't work, keep attention.)
#if HAS(POWER_CONSUMPTION_SENSOR)
"PWR",
#endif
"TME",
};
enum cfgSD_ENUM { //This need to be in the same order as cfgSD_KEY
#if HAS(POWER_CONSUMPTION_SENSOR)
SD_CFG_PWR,
#endif
SD_CFG_TME,
SD_CFG_END //Leave this always as the last
};
void ConfigSD_StoreSettings() {
if(!IS_SD_INSERTED || card.isFileOpen() || card.sdprinting) return;
set_sd_dot();
delay(500);
card.setroot(true);
card.openFile(CFG_SD_FILE, false, true, false);
card.openFile((char *)CFG_SD_FILE, false, true, false);
char buff[CFG_SD_MAX_VALUE_LEN];
#if HAS(POWER_CONSUMPTION_SENSOR)
ltoa(power_consumption_hour,buff,10);
......@@ -925,19 +938,17 @@ void ConfigSD_ResetDefault() {
card.closeFile(false);
card.setlast();
config_last_update = millis();
delay(500);
unset_sd_dot();
}
void ConfigSD_RetrieveSettings(bool addValue) {
if(!IS_SD_INSERTED || card.isFileOpen() || card.sdprinting || !card.cardOK) return;
set_sd_dot();
delay(500);
char key[CFG_SD_MAX_KEY_LEN], value[CFG_SD_MAX_VALUE_LEN];
int k_idx;
int k_len, v_len;
card.setroot(true);
card.openFile(CFG_SD_FILE, true, true, false);
card.openFile((char *)CFG_SD_FILE, true, true, false);
while(true) {
k_len = CFG_SD_MAX_KEY_LEN;
v_len = CFG_SD_MAX_VALUE_LEN;
......@@ -963,7 +974,6 @@ void ConfigSD_ResetDefault() {
card.closeFile(false);
card.setlast();
config_readed = true;
delay(500);
unset_sd_dot();
}
......
......@@ -23,21 +23,6 @@ FORCE_INLINE void Config_RetrieveSettings() { Config_ResetDefault(); Config_Prin
#endif
#if ENABLED(SDSUPPORT) && ENABLED(SD_SETTINGS)
static const char *cfgSD_KEY[] = { //Keep this in lexicographical order for better search performance(O(Nlog2(N)) insted of O(N*N)) (if you don't keep this sorted, the algorithm for find the key index won't work, keep attention.)
#if HAS(POWER_CONSUMPTION_SENSOR)
"PWR",
#endif
"TME",
};
enum cfgSD_ENUM { //This need to be in the same order as cfgSD_KEY
#if HAS(POWER_CONSUMPTION_SENSOR)
SD_CFG_PWR,
#endif
SD_CFG_TME,
SD_CFG_END //Leave this always as the last
};
void ConfigSD_StoreSettings();
void ConfigSD_RetrieveSettings(bool addValue = false);
int ConfigSD_KeyIndex(char *key);
......
......@@ -25,7 +25,11 @@
#define EN_A BIT(BLEN_A)
#define EN_B BIT(BLEN_B)
#define EN_C BIT(BLEN_C)
#define LCD_CLICKED (buttons&EN_C)
#if ENABLED(INVERT_CLICK_BUTTON)
#define LCD_CLICKED !(buttons&EN_C)
#else
#define LCD_CLICKED (buttons&EN_C)
#endif
#endif
#include <U8glib.h>
......@@ -114,7 +118,6 @@
// LCD selection
#if ENABLED(U8GLIB_ST7920)
//U8GLIB_ST7920_128X64_RRD u8g(0,0,0);
U8GLIB_ST7920_128X64_RRD u8g(0);
#elif ENABLED(MAKRPANEL)
// The MaKrPanel display, ST7565 controller as well
......@@ -315,7 +318,7 @@ static void lcd_implementation_status_screen() {
}
else {
lcd_print(itostr4(power_consumption_hour-startpower));
lcd_print("Wh");
lcd_print((char*)"Wh");
}
#else
uint16_t time = (millis() - print_job_start_ms) / 60000;
......@@ -459,6 +462,7 @@ static void lcd_implementation_drawmenu_generic(bool isSelected, uint8_t row, co
pstr++;
}
while (n--) lcd_print(' ');
lcd_print(pre_char);
u8g.setPrintPos(LCD_PIXEL_WIDTH - DOG_CHAR_WIDTH, (row + 1) * DOG_CHAR_HEIGHT);
lcd_print(post_char);
lcd_print(' ');
......@@ -535,7 +539,6 @@ void lcd_implementation_drawedit(const char* pstr, char* value) {
}
#if ENABLED(SDSUPPORT)
static void _drawmenu_sd(bool isSelected, uint8_t row, const char* pstr, const char* filename, char* const longFilename, bool isDir) {
char c;
uint8_t n = LCD_WIDTH - 1;
......
......@@ -35,7 +35,7 @@ void FirmwareTest() {
#if PIN_EXISTS(X_MIN) && (X_HOME_DIR == -1)
if (!READ(X_MIN_PIN)^X_MIN_ENDSTOP_INVERTING) {
ECHO_M("MIN ENDSTOP X: ");
ECHO_EV(MSG_ENDSTOP_OPEN);
ECHO_EV(SERIAL_ENDSTOP_OPEN);
}
else {
ECHO_M("X ENDSTOP ");
......@@ -65,7 +65,7 @@ void FirmwareTest() {
}
if (READ(X_MIN_PIN)^X_MIN_ENDSTOP_INVERTING) {
ECHO_M("MIN ENDSTOP X: ");
ECHO_EV(MSG_ENDSTOP_HIT);
ECHO_EV(SERIAL_ENDSTOP_HIT);
}
else {
ECHO_M("X ");
......@@ -75,7 +75,7 @@ void FirmwareTest() {
#elif PIN_EXISTS(X_MAX) && X_HOME_DIR == 1
if (!READ(X_MAX_PIN)^X_MAX_ENDSTOP_INVERTING) {
ECHO_M("MAX ENDSTOP X: ");
ECHO_EV(MSG_ENDSTOP_OPEN);
ECHO_EV(SERIAL_ENDSTOP_OPEN);
}
else {
ECHO_M("X ENDSTOP ");
......@@ -105,7 +105,7 @@ void FirmwareTest() {
}
if (READ(X_MAX_PIN)^X_MAX_ENDSTOP_INVERTING) {
ECHO_M("MAX ENDSTOP X: ");
ECHO_EV(MSG_ENDSTOP_HIT);
ECHO_EV(SERIAL_ENDSTOP_HIT);
}
else {
ECHO_M("X ");
......@@ -129,7 +129,7 @@ void FirmwareTest() {
#if PIN_EXISTS(Y_MIN) && Y_HOME_DIR == -1
if (!READ(Y_MIN_PIN)^Y_MIN_ENDSTOP_INVERTING) {
ECHO_M("MIN ENDSTOP Y: ");
ECHO_EV(MSG_ENDSTOP_OPEN);
ECHO_EV(SERIAL_ENDSTOP_OPEN);
}
else {
ECHO_M("Y ENDSTOP ");
......@@ -159,7 +159,7 @@ void FirmwareTest() {
}
if (READ(Y_MIN_PIN)^Y_MIN_ENDSTOP_INVERTING) {
ECHO_M("MIN ENDSTOP Y: ");
ECHO_EV(MSG_ENDSTOP_HIT);
ECHO_EV(SERIAL_ENDSTOP_HIT);
}
else {
ECHO_M("Y ");
......@@ -169,7 +169,7 @@ void FirmwareTest() {
#elif PIN_EXISTS(Y_MAX) && Y_HOME_DIR == 1
if (!READ(Y_MAX_PIN)^Y_MAX_ENDSTOP_INVERTING) {
ECHO_M("MAX ENDSTOP Y: ");
ECHO_EV(MSG_ENDSTOP_OPEN);
ECHO_EV(SERIAL_ENDSTOP_OPEN);
}
else {
ECHO_M("Y ENDSTOP ");
......@@ -199,7 +199,7 @@ void FirmwareTest() {
}
if (READ(Y_MAX_PIN)^Y_MAX_ENDSTOP_INVERTING) {
ECHO_M("MAX ENDSTOP Y: ");
ECHO_EV(MSG_ENDSTOP_HIT);
ECHO_EV(SERIAL_ENDSTOP_HIT);
}
else {
ECHO_M("Y ");
......@@ -223,7 +223,7 @@ void FirmwareTest() {
#if PIN_EXISTS(Z_MIN) && Z_HOME_DIR == -1
if (!READ(Z_MIN_PIN)^Z_MIN_ENDSTOP_INVERTING) {
ECHO_M("MIN ENDSTOP Z: ");
ECHO_EV(MSG_ENDSTOP_OPEN);
ECHO_EV(SERIAL_ENDSTOP_OPEN);
}
else {
ECHO_M("Z ENDSTOP ");
......@@ -253,7 +253,7 @@ void FirmwareTest() {
}
if (READ(Z_MIN_PIN)^Z_MIN_ENDSTOP_INVERTING) {
ECHO_M("MIN ENDSTOP Z: ");
ECHO_EV(MSG_ENDSTOP_HIT);
ECHO_EV(SERIAL_ENDSTOP_HIT);
}
else {
ECHO_M("Z ");
......@@ -263,7 +263,7 @@ void FirmwareTest() {
#elif PIN_EXISTS(Z_MAX) && Z_HOME_DIR == 1
if (!READ(Z_MAX_PIN)^Z_MAX_ENDSTOP_INVERTING) {
ECHO_M("MAX ENDSTOP Z: ");
ECHO_EV(MSG_ENDSTOP_OPEN);
ECHO_EV(SERIAL_ENDSTOP_OPEN);
}
else {
ECHO_M("Z ENDSTOP ");
......@@ -293,7 +293,7 @@ void FirmwareTest() {
}
if (READ(Z_MAX_PIN)^Z_MAX_ENDSTOP_INVERTING) {
ECHO_M("MAX ENDSTOP Z: ");
ECHO_EV(MSG_ENDSTOP_HIT);
ECHO_EV(SERIAL_ENDSTOP_HIT);
}
else {
ECHO_M("Z ");
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -8,14 +8,14 @@
#ifndef LANGUAGE_IT_H
#define LANGUAGE_IT_H
#define MAPPER_NON
// Define SIMULATE_ROMFONT to see what is seen on the character based display defined in Configuration.h
//#define SIMULATE_ROMFONT
#define DISPLAY_CHARSET_ISO10646_1
#define MAPPER_NON // For direct asci codes
#define DISPLAY_CHARSET_ISO10646_1 // use the better font on full graphic displays.
#define WELCOME_MSG MACHINE_NAME " pronta."
#define MSG_SD_INSERTED "SD Card inserita"
#define MSG_SD_REMOVED "SD Card rimossa"
#define MSG_SD "SD"
#define MSG_SD_INSERTED MSG_SD " inserita"
#define MSG_SD_REMOVED MSG_SD " rimossa"
#define MSG_MAIN "Menu principale"
#define MSG_AUTOSTART "Autostart"
#define MSG_DISABLE_STEPPERS "Disabilita Motori"
......@@ -33,6 +33,8 @@
#define MSG_SET_ORIGIN "Imposta Origine"
#define MSG_ONFOR "On x:"
#define MSG_PWRCONSUMED "P.za:"
#define MSG_PREHEAT "Preriscalda"
#define MSG_CONFIG "conf."
#define MSG_PREHEAT_PLA "Preriscalda PLA"
#define MSG_PREHEAT_PLA_ALL "Prer. PLA Tutto"
#define MSG_PREHEAT_PLA_BEDONLY "Prer. PLA Piatto"
......@@ -51,15 +53,8 @@
#define MSG_SWITCH_PS_OFF "Spegni aliment."
#define MSG_EXTRUDE "Estrudi"
#define MSG_RETRACT "Ritrai"
#define MSG_MOVE_AXIS "Muovi Asse"
#define MSG_PURGE "Purge"
#define MSG_LEVEL_BED "Liv. piatto"
#define MSG_MOVE_X "Muovi X"
#define MSG_MOVE_Y "Muovi Y"
#define MSG_MOVE_Z "Muovi Z"
#define MSG_MOVE_E "Estrusore"
#define MSG_MOVE_01MM "Muovi di 0.1mm"
#define MSG_MOVE_1MM "Muovi di 1mm"
#define MSG_MOVE_10MM "Muovi di 10mm"
#define MSG_SPEED "Velocita"
#define MSG_NOZZLE "Ugello"
#define MSG_BED "Piatto"
......@@ -67,6 +62,7 @@
#define MSG_FLOW "Flusso"
#define MSG_CONTROL "Controllo"
#define MSG_STATS "Statistiche"
#define MSG_FIX_LOSE_STEPS "Fix axis steps"
#define MSG_MIN LCD_STR_THERMOMETER " Min"
#define MSG_MAX LCD_STR_THERMOMETER " Max"
#define MSG_FACTOR LCD_STR_THERMOMETER " Fact"
......@@ -83,28 +79,37 @@
#define MSG_ACC "Accel"
#define MSG_VXY_JERK "Vxy-jerk"
#define MSG_VZ_JERK "Vz-jerk"
#define MSG_VE_JERK "Ve-jerk "
#define MSG_VE_JERK "Ve-jerk"
#define MSG_VMAX "Vmax "
#define MSG_X "X"
#define MSG_Y "Y"
#define MSG_Z "Z"
#define MSG_E "E"
#define MSG_MOVE "Muovi"
#define MSG_MOVE_AXIS MSG_MOVE " asse"
#define MSG_MOVE_X MSG_MOVE " " MSG_X
#define MSG_MOVE_Y MSG_MOVE " " MSG_Y
#define MSG_MOVE_Z MSG_MOVE " " MSG_Z
#define MSG_MOVE_01MM MSG_MOVE " 0.1mm"
#define MSG_MOVE_1MM MSG_MOVE " 1mm"
#define MSG_MOVE_10MM MSG_MOVE " 10mm"
#define MSG_MOVE_E "Estrusore"
#define MSG_VMIN "Vmin"
#define MSG_VTRAV_MIN "VTrav min"
#define MSG_AMAX "Amax "
#define MSG_A_RETRACT "A-retract "
#define MSG_A_RETRACT "A-retract"
#define MSG_A_TRAVEL "A-travel"
#define MSG_XSTEPS "X steps/mm"
#define MSG_YSTEPS "Y steps/mm"
#define MSG_ZSTEPS "Z steps/mm"
#define MSG_E0STEPS "E0steps/mm"
#define MSG_E1STEPS "E1steps/mm"
#define MSG_E2STEPS "E2steps/mm"
#define MSG_E3STEPS "E3steps/mm"
#define MSG_XSTEPS MSG_X " steps/mm"
#define MSG_YSTEPS MSG_Y " steps/mm"
#define MSG_ZSTEPS MSG_Z " steps/mm"
#define MSG_E0STEPS MSG_E "0 steps/mm"
#define MSG_E1STEPS MSG_E "1 steps/mm"
#define MSG_E2STEPS MSG_E "2 steps/mm"
#define MSG_E3STEPS MSG_E "3 steps/mm"
#define MSG_TEMPERATURE "Temperatura"
#define MSG_MOTION "Movimento"
#define MSG_FILAMENT "Filamento"
#define MSG_VOLUMETRIC_ENABLED "E in mm"
#define MSG_VOLUMETRIC_ENABLED MSG_E " in mm3"
#define MSG_FILAMENT_SIZE_EXTRUDER "Diam. filo"
#define MSG_CONTRAST "Contrasto LCD"
#define MSG_STORE_EPROM "Salva in EEPROM"
......@@ -146,22 +151,28 @@
#define MSG_BABYSTEP_Z MSG_BABYSTEP " " MSG_Z
#define MSG_ENDSTOP_ABORT "Finecorsa abort."
#define MSG_HEATING_FAILED_LCD "Riscaldamento fallito"
#define MSG_ERR_REDUNDANT_TEMP "Err: REDUNDANT TEMP ERROR"
#define MSG_ERR_REDUNDANT_TEMP "REDUNDANT TEMP ERROR"
#define MSG_THERMAL_RUNAWAY "THERMAL RUNAWAY"
#define MSG_ERR_MAXTEMP "Err: MAXTEMP"
#define MSG_ERR_MINTEMP "Err: MINTEMP"
#define MSG_ERR_MAXTEMP_BED "Err: MAXTEMP BED"
#define MSG_ERR_MINTEMP_BED "Err: MINTEMP BED"
#define MSG_HOTEND_AD595 "HOTEND AD595 Offset & Gain"
#define MSG_ERR_MAXTEMP "MAXTEMP ERROR"
#define MSG_ERR_MINTEMP "MINTEMP ERROR"
#define MSG_ERR_MAXTEMP_BED "MAXTEMP BED ERROR"
#define MSG_ERR_MINTEMP_BED "MINTEMP BED ERROR"
#define MSG_END_DAY "giorni"
#define MSG_END_HOUR "ore"
#define MSG_END_MINUTE "minuti"
// Debug
#define MSG_DEBUG_ECHO "DEBUG RIPETI ABILITATO"
#define MSG_DEBUG_INFO "DEBUG INFO ABILITATO"
#define MSG_DEBUG_ERRORS "DEBUG ERRORI ABILITATO"
#define MSG_DEBUG_DRYRUN "DEBUG STAMPA A VUOTO ABILITATO"
#define MSG_DEBUG "DEBUG ABILITATO"
#define MSG_ENDSTOPS_HIT "endstops hit: "
#define MSG_BABYSTEPPING "Babystepping"
#define MSG_BABYSTEPPING_X MSG_BABYSTEPPING " " MSG_X
#define MSG_BABYSTEPPING_Y MSG_BABYSTEPPING " " MSG_Y
#define MSG_BABYSTEPPING_Z MSG_BABYSTEPPING " " MSG_Z
#define MSG_ENDSTOP_XS MSG_X
#define MSG_ENDSTOP_YS MSG_Y
#define MSG_ENDSTOP_ZS MSG_Z
#define MSG_ENDSTOP_ZPS MSG_Z "P"
#define MSG_ENDSTOP_ES MSG_E
// Calibrate Delta
#if MECH(DELTA)
......@@ -174,8 +185,9 @@
// Scara
#if MECH(SCARA)
#define MSG_XSCALE "X Scale"
#define MSG_YSCALE "Y Scale"
#define MSG_SCALE "Scale"
#define MSG_XSCALE MSG_X " " MSG_SCALE
#define MSG_YSCALE MSG_Y " " MSG_SCALE
#endif
#define MSG_HEATING "Riscaldamento..."
......@@ -211,10 +223,10 @@
#define MSG_FWTEST_04 "Inizio controllo MOTORI"
#define MSG_FWTEST_ATTENTION "ATTENZIONE! Controlla che i tre assi siano a piu' di 5 mm dagli endstop!"
#define MSG_FWTEST_END "Test finito. Disabilitare FIRMWARE_TEST e ricompilare."
#define MSG_FWTEST_INTO "in "
#define MSG_FWTEST_ERROR "ERRORE"
#define MSG_FWTEST_OK "OK"
#define MSG_FWTEST_NDEF "non definito"
#define MSG_FWTEST_INTO "in "
#define MSG_FWTEST_ERROR "ERRORE"
#define MSG_FWTEST_OK "OK"
#define MSG_FWTEST_NDEF "non definito"
#endif // FIRMWARE_TEST
#endif // LANGUAGE_IT_H
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -10,7 +10,9 @@
#define SET_BIT(n,b,value) (n) ^= ((-value)^(n)) & (BIT(b))
// Macros for maths shortcuts
#define M_PI 3.1415926536
#ifndef M_PI
#define M_PI 3.1415926536
#endif
#define RADIANS(d) ((d)*M_PI/180.0)
#define DEGREES(r) ((r)*180.0/M_PI)
#define SIN_60 0.8660254037844386
......
This diff is collapsed.
......@@ -39,25 +39,10 @@
#define LCD_MESSAGEPGM(x) lcd_setstatuspgm(PSTR(x))
#define LCD_ALERTMESSAGEPGM(x) lcd_setalertstatuspgm(PSTR(x))
char *itostr2(const uint8_t &x);
char *itostr31(const int &xx);
char *itostr3(const int &xx);
char *itostr3left(const int &xx);
char *itostr4(const int &xx);
char *ltostr7(const long &xx);
char *ftostr3(const float &x);
char *ftostr30(const float &x);
char *ftostr31ns(const float &x); // float to string without sign character
char *ftostr31(const float &x);
char *ftostr32(const float &x);
char *ftostr43(const float &x);
char *ftostr12ns(const float &x);
char *ftostr32sp(const float &x); // remove zero-padding from ftostr32
char *ftostr5(const float &x);
char *ftostr51(const float &x);
char *ftostr52(const float &x);
char* itostr4sign(const int& x);
char* ftostr4sign(const float& x);
char* ftostr32sp(const float& x); // remove zero-padding from ftostr32
#endif
#endif // NEXTIONLCD_H
......@@ -5351,7 +5351,7 @@ DaveX plan for Teensylu/printrboard-type pinouts (ref teensylu & sprinter) for a
/****************************************************************************************
*********** Available chip select pins for HW SPI are 4 10 52 77 ************************
/****************************************************************************************/
****************************************************************************************/
#if (SDSS == 4) || (SDSS == 10) || (SDSS == 52) || (SDSS == 77)
#if (SDSS == 4)
#define SPI_PIN 87
......@@ -5382,7 +5382,7 @@ DaveX plan for Teensylu/printrboard-type pinouts (ref teensylu & sprinter) for a
/****************************************************************************************
********************************* END MOTHERBOARD ***************************************
/****************************************************************************************/
****************************************************************************************/
#ifndef ORIG_HEATER_1_PIN
#define ORIG_HEATER_1_PIN -1
......@@ -5460,6 +5460,7 @@ DaveX plan for Teensylu/printrboard-type pinouts (ref teensylu & sprinter) for a
#if DISABLED(Z_PROBE_ENDSTOP) // Allow code to compile regardless of Z_PROBE_ENDSTOP setting.
#define Z_PROBE_PIN -1
#endif
/****************************************************************************************/
#if ENABLED(DISABLE_XMAX_ENDSTOP)
#undef X_MAX_PIN
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -111,7 +111,7 @@ u8g_dev_t u8g_dev_st7920_128x64_rrd_sw_spi = {u8g_dev_rrd_st7920_128x64_fn, &u8g
class U8GLIB_ST7920_128X64_RRD : public U8GLIB {
public:
U8GLIB_ST7920_128X64_RRD(uint8_t dummy) : U8GLIB(&u8g_dev_st7920_128x64_rrd_sw_spi) {}
U8GLIB_ST7920_128X64_RRD(int dummy) : U8GLIB(&u8g_dev_st7920_128x64_rrd_sw_spi) {}
};
......
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment