Merge pull request #2 from MarlinFirmware/bugfix-2.0.x

Bugfix 2.0.x source update
This commit is contained in:
Vertabreaker 2019-12-11 13:55:56 -05:00 committed by GitHub
commit de976a00dc
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
57 changed files with 5320 additions and 198 deletions

View file

@ -28,25 +28,30 @@
#include "Servo.h"
uint8_t servoPin[MAX_SERVOS] = { 0 };
static uint_fast8_t servoCount = 0;
constexpr millis_t servoDelay[] = SERVO_DELAY;
static_assert(COUNT(servoDelay) == NUM_SERVOS, "SERVO_DELAY must be an array NUM_SERVOS long.");
libServo::libServo()
: delay(servoDelay[servoCount++])
{}
int8_t libServo::attach(const int pin) {
if (servoIndex >= MAX_SERVOS) return -1;
if (pin > 0) servoPin[servoIndex] = pin;
return super::attach(servoPin[servoIndex]);
if (servoCount >= MAX_SERVOS) return -1;
if (pin > 0) servo_pin = pin;
return super::attach(servo_pin);
}
int8_t libServo::attach(const int pin, const int min, const int max) {
if (pin > 0) servoPin[servoIndex] = pin;
return super::attach(servoPin[servoIndex], min, max);
if (servoCount >= MAX_SERVOS) return -1;
if (pin > 0) servo_pin = pin;
return super::attach(servo_pin, min, max);
}
void libServo::move(const int value) {
constexpr uint16_t servo_delay[] = SERVO_DELAY;
static_assert(COUNT(servo_delay) == NUM_SERVOS, "SERVO_DELAY must be an array NUM_SERVOS long.");
if (attach(0) >= 0) {
write(value);
safe_delay(servo_delay[servoIndex]);
safe_delay(delay);
#if ENABLED(DEACTIVATE_SERVOS_AFTER_MOVE)
detach();
#endif

View file

@ -27,11 +27,13 @@
// Inherit and expand on the official library
class libServo : public Servo {
public:
libServo();
int8_t attach(const int pin);
int8_t attach(const int pin, const int min, const int max);
void move(const int value);
private:
typedef Servo super;
uint16_t min_ticks, max_ticks;
uint8_t servoIndex; // index into the channel data for this servo
int servo_pin = 0;
millis_t delay = 0;
};

View file

@ -269,18 +269,21 @@
#define BOARD_MKS_ROBIN_MINI 4007 // MKS Robin Mini (STM32F103VET6)
#define BOARD_MKS_ROBIN_NANO 4008 // MKS Robin Nano (STM32F103VET6)
#define BOARD_MKS_ROBIN_LITE 4009 // MKS Robin Lite/Lite2 (STM32F103RCT6)
#define BOARD_BIGTREE_SKR_MINI_V1_1 4010 // BigTreeTech SKR Mini v1.1 (STM32F103RC)
#define BOARD_BTT_SKR_MINI_E3_V1_0 4011 // BigTreeTech SKR Mini E3 (STM32F103RC)
#define BOARD_BTT_SKR_MINI_E3_V1_2 4012 // BigTreeTech SKR Mini E3 V1.2 (STM32F103RC)
#define BOARD_BIGTREE_SKR_E3_DIP 4013 // BigTreeTech SKR E3 DIP V1.0 (STM32F103RC / STM32F103RE)
#define BOARD_JGAURORA_A5S_A1 4014 // JGAurora A5S A1 (STM32F103ZET6)
#define BOARD_FYSETC_AIO_II 4015 // FYSETC AIO_II
#define BOARD_FYSETC_CHEETAH 4016 // FYSETC Cheetah
#define BOARD_FYSETC_CHEETAH_V12 4017 // FYSETC Cheetah V1.2
#define BOARD_LONGER3D_LK 4018 // Alfawise U20/U20+/U30 (Longer3D LK1/2) / STM32F103VET6
#define BOARD_GTM32_MINI 4019 // STM32F103VET6 controller
#define BOARD_GTM32_MINI_A30 4020 // STM32F103VET6 controller
#define BOARD_GTM32_REV_B 4021 // STM32F103VET6 controller
#define BOARD_MKS_ROBIN_LITE3 4010 // MKS Robin Lite3 (STM32F103RCT6)
#define BOARD_MKS_ROBIN_PRO 4011 // MKS Robin Pro (STM32F103ZET6)
#define BOARD_BIGTREE_SKR_MINI_V1_1 4012 // BigTreeTech SKR Mini v1.1 (STM32F103RC)
#define BOARD_BTT_SKR_MINI_E3_V1_0 4013 // BigTreeTech SKR Mini E3 (STM32F103RC)
#define BOARD_BTT_SKR_MINI_E3_V1_2 4014 // BigTreeTech SKR Mini E3 V1.2 (STM32F103RC)
#define BOARD_BIGTREE_SKR_E3_DIP 4015 // BigTreeTech SKR E3 DIP V1.0 (STM32F103RC / STM32F103RE)
#define BOARD_JGAURORA_A5S_A1 4016 // JGAurora A5S A1 (STM32F103ZET6)
#define BOARD_FYSETC_AIO_II 4017 // FYSETC AIO_II
#define BOARD_FYSETC_CHEETAH 4018 // FYSETC Cheetah
#define BOARD_FYSETC_CHEETAH_V12 4019 // FYSETC Cheetah V1.2
#define BOARD_LONGER3D_LK 4020 // Alfawise U20/U20+/U30 (Longer3D LK1/2) / STM32F103VET6
#define BOARD_GTM32_MINI 4021 // STM32F103VET6 controller
#define BOARD_GTM32_MINI_A30 4022 // STM32F103VET6 controller
#define BOARD_GTM32_REV_B 4023 // STM32F103VET6 controller
//
// ARM Cortex-M4F

View file

@ -252,10 +252,10 @@
#define MSG_FILAMENT_CHANGE_INSERT_M108 "Insert filament and send M108"
#define MSG_FILAMENT_CHANGE_WAIT_M108 "Send M108 to resume"
#define MSG_STOP_BLTOUCH "STOP called because of BLTouch error - restart with M999"
#define MSG_STOP_UNHOMED "STOP called because of unhomed error - restart with M999"
#define MSG_KILL_INACTIVE_TIME "KILL caused by too much inactive time - current command: "
#define MSG_KILL_BUTTON "KILL caused by KILL button/pin"
#define MSG_STOP_BLTOUCH "!! STOP called because of BLTouch error - restart with M999"
#define MSG_STOP_UNHOMED "!! STOP called because of unhomed error - restart with M999"
#define MSG_KILL_INACTIVE_TIME "!! KILL caused by too much inactive time - current command: "
#define MSG_KILL_BUTTON "!! KILL caused by KILL button/pin"
// temperature.cpp strings
#define MSG_PID_AUTOTUNE_PREFIX "PID Autotune"

View file

@ -259,6 +259,9 @@
#elif ENABLED(AZSMZ_12864)
#define _LCD_CONTRAST_MIN 120
#define _LCD_CONTRAST_INIT 190
#elif ENABLED(MKS_LCD12864B)
#define _LCD_CONTRAST_MIN 120
#define _LCD_CONTRAST_INIT 205
#elif ENABLED(MKS_MINI_12864)
#define _LCD_CONTRAST_MIN 120
#define _LCD_CONTRAST_INIT 195

View file

@ -42,7 +42,7 @@
* version was tagged.
*/
#ifndef STRING_DISTRIBUTION_DATE
#define STRING_DISTRIBUTION_DATE "2019-12-07"
#define STRING_DISTRIBUTION_DATE "2019-12-11"
#endif
/**

View file

@ -244,48 +244,51 @@ bool MarlinUI::detected() { return true; }
// Initialize or re-initialize the LCD
void MarlinUI::init_lcd() {
#if DISABLED(MKS_LCD12864B)
#if PIN_EXISTS(LCD_BACKLIGHT)
OUT_WRITE(LCD_BACKLIGHT_PIN, (
#if ENABLED(DELAYED_BACKLIGHT_INIT)
LOW // Illuminate after reset
#else
HIGH // Illuminate right away
#endif
));
#endif
#if EITHER(MKS_12864OLED, MKS_12864OLED_SSD1306)
SET_OUTPUT(LCD_PINS_DC);
#ifndef LCD_RESET_PIN
#define LCD_RESET_PIN LCD_PINS_RS
#if PIN_EXISTS(LCD_BACKLIGHT)
OUT_WRITE(LCD_BACKLIGHT_PIN, (
#if ENABLED(DELAYED_BACKLIGHT_INIT)
LOW // Illuminate after reset
#else
HIGH // Illuminate right away
#endif
));
#endif
#endif
#if PIN_EXISTS(LCD_RESET)
// Perform a clean hardware reset with needed delays
OUT_WRITE(LCD_RESET_PIN, LOW);
_delay_ms(5);
WRITE(LCD_RESET_PIN, HIGH);
_delay_ms(5);
u8g.begin();
#endif
#if EITHER(MKS_12864OLED, MKS_12864OLED_SSD1306)
SET_OUTPUT(LCD_PINS_DC);
#ifndef LCD_RESET_PIN
#define LCD_RESET_PIN LCD_PINS_RS
#endif
#endif
#if PIN_EXISTS(LCD_BACKLIGHT) && ENABLED(DELAYED_BACKLIGHT_INIT)
WRITE(LCD_BACKLIGHT_PIN, HIGH);
#endif
#if PIN_EXISTS(LCD_RESET)
// Perform a clean hardware reset with needed delays
OUT_WRITE(LCD_RESET_PIN, LOW);
_delay_ms(5);
WRITE(LCD_RESET_PIN, HIGH);
_delay_ms(5);
u8g.begin();
#endif
#if HAS_LCD_CONTRAST
refresh_contrast();
#endif
#if PIN_EXISTS(LCD_BACKLIGHT) && ENABLED(DELAYED_BACKLIGHT_INIT)
WRITE(LCD_BACKLIGHT_PIN, HIGH);
#endif
#if ENABLED(LCD_SCREEN_ROT_90)
u8g.setRot90();
#elif ENABLED(LCD_SCREEN_ROT_180)
u8g.setRot180();
#elif ENABLED(LCD_SCREEN_ROT_270)
u8g.setRot270();
#endif
#if HAS_LCD_CONTRAST
refresh_contrast();
#endif
#if ENABLED(LCD_SCREEN_ROT_90)
u8g.setRot90();
#elif ENABLED(LCD_SCREEN_ROT_180)
u8g.setRot180();
#elif ENABLED(LCD_SCREEN_ROT_270)
u8g.setRot270();
#endif
#endif // !MKS_LCD12864B
uxg_SetUtf8Fonts(g_fontinfo, COUNT(g_fontinfo));
}

View file

@ -119,7 +119,7 @@ namespace Language_an {
PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("Temperatura");
PROGMEM Language_Str MSG_MOTION = _UxGT("Movimiento");
PROGMEM Language_Str MSG_FILAMENT = _UxGT("Filamento");
PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("E in mm3");
PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("E in mm³");
PROGMEM Language_Str MSG_FILAMENT_DIAM = _UxGT("Fil. Dia.");
PROGMEM Language_Str MSG_FILAMENT_DIAM_E = _UxGT("Fil. Dia. *");
PROGMEM Language_Str MSG_CONTRAST = _UxGT("Contraste");

View file

@ -104,7 +104,7 @@ namespace Language_bg {
PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("Температура");
PROGMEM Language_Str MSG_MOTION = _UxGT("Движение");
PROGMEM Language_Str MSG_FILAMENT = _UxGT("Нишка");
PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("E in mm3");
PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("E in mm³");
PROGMEM Language_Str MSG_FILAMENT_DIAM = _UxGT("Диам. нишка");
PROGMEM Language_Str MSG_FILAMENT_DIAM_E = _UxGT("Диам. нишка *");
PROGMEM Language_Str MSG_CONTRAST = _UxGT("LCD контраст");

View file

@ -114,7 +114,7 @@ namespace Language_ca {
PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("Temperatura");
PROGMEM Language_Str MSG_MOTION = _UxGT("Moviment");
PROGMEM Language_Str MSG_FILAMENT = _UxGT("Filament");
PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("E en mm3");
PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("E en mm³");
PROGMEM Language_Str MSG_FILAMENT_DIAM = _UxGT("Diam. Fil.");
PROGMEM Language_Str MSG_FILAMENT_DIAM_E = _UxGT("Diam. Fil. *");
PROGMEM Language_Str MSG_CONTRAST = _UxGT("Contrast de LCD");
@ -204,7 +204,10 @@ namespace Language_ca {
PROGMEM Language_Str MSG_INFO_PSU = _UxGT("Font alimentacio");
PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("Força motor");
PROGMEM Language_Str MSG_DAC_PERCENT = _UxGT("Driver %");
PROGMEM Language_Str MSG_DAC_PERCENT_X = _UxGT("X Driver %");
PROGMEM Language_Str MSG_DAC_PERCENT_Y = _UxGT("Y Driver %");
PROGMEM Language_Str MSG_DAC_PERCENT_Z = _UxGT("Z Driver %");
PROGMEM Language_Str MSG_DAC_PERCENT_E = _UxGT("E Driver %");
PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("DAC EEPROM Write");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_RESUME = _UxGT("Repren impressió");

View file

@ -256,7 +256,7 @@ namespace Language_cz {
PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("Teplota");
PROGMEM Language_Str MSG_MOTION = _UxGT("Pohyb");
PROGMEM Language_Str MSG_FILAMENT = _UxGT("Filament");
PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("E na mm3");
PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("E na mm³");
PROGMEM Language_Str MSG_FILAMENT_DIAM = _UxGT("Fil. Prum.");
PROGMEM Language_Str MSG_FILAMENT_DIAM_E = _UxGT("Fil. Prum. *");
PROGMEM Language_Str MSG_FILAMENT_UNLOAD = _UxGT("Vysunout mm");
@ -410,7 +410,10 @@ namespace Language_cz {
PROGMEM Language_Str MSG_INFO_MAX_TEMP = _UxGT("Teplota max");
PROGMEM Language_Str MSG_INFO_PSU = _UxGT("Nap. zdroj");
PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("Buzení motorů");
PROGMEM Language_Str MSG_DAC_PERCENT = _UxGT("Motor %");
PROGMEM Language_Str MSG_DAC_PERCENT_X = _UxGT("X Motor %");
PROGMEM Language_Str MSG_DAC_PERCENT_Y = _UxGT("Y Motor %");
PROGMEM Language_Str MSG_DAC_PERCENT_Z = _UxGT("Z Motor %");
PROGMEM Language_Str MSG_DAC_PERCENT_E = _UxGT("E Motor %");
PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("Uložit do EEPROM");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER = _UxGT("VÝMĚNA FILAMENTU");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_PAUSE = _UxGT("TISK POZASTAVEN");

View file

@ -99,7 +99,7 @@ namespace Language_da {
PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("Temperatur");
PROGMEM Language_Str MSG_MOTION = _UxGT("Bevægelse");
PROGMEM Language_Str MSG_FILAMENT = _UxGT("Filament");
PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("E i mm3");
PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("E i mm³");
PROGMEM Language_Str MSG_FILAMENT_DIAM = _UxGT("Fil. Dia.");
PROGMEM Language_Str MSG_FILAMENT_DIAM_E = _UxGT("Fil. Dia. *");
PROGMEM Language_Str MSG_CONTRAST = _UxGT("LCD kontrast");
@ -176,7 +176,11 @@ namespace Language_da {
PROGMEM Language_Str MSG_INFO_PSU = _UxGT("Strømfors.");
PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("Driv Styrke");
PROGMEM Language_Str MSG_DAC_PERCENT = _UxGT("Driv %");
PROGMEM Language_Str MSG_DAC_PERCENT_X = _UxGT("X Driv %");
PROGMEM Language_Str MSG_DAC_PERCENT_Y = _UxGT("Y Driv %");
PROGMEM Language_Str MSG_DAC_PERCENT_Z = _UxGT("Z Driv %");
PROGMEM Language_Str MSG_DAC_PERCENT_E = _UxGT("E Driv %");
PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("DAC EEPROM Skriv");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_RESUME = _UxGT("Forsæt print");

View file

@ -456,7 +456,10 @@ namespace Language_de {
PROGMEM Language_Str MSG_INFO_MAX_TEMP = _UxGT("Max Temp");
PROGMEM Language_Str MSG_INFO_PSU = _UxGT("Netzteil");
PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("Motorleistung");
PROGMEM Language_Str MSG_DAC_PERCENT = _UxGT("Treiber %");
PROGMEM Language_Str MSG_DAC_PERCENT_X = _UxGT("X Treiber %");
PROGMEM Language_Str MSG_DAC_PERCENT_Y = _UxGT("Y Treiber %");
PROGMEM Language_Str MSG_DAC_PERCENT_Z = _UxGT("Z Treiber %");
PROGMEM Language_Str MSG_DAC_PERCENT_E = _UxGT("E Treiber %");
PROGMEM Language_Str MSG_ERROR_TMC = _UxGT("TMC Verbindungsfehler");
PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("Werte speichern");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER = _UxGT("FILAMENT WECHSEL");

View file

@ -130,7 +130,7 @@ namespace Language_el {
PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("Θερμοκρασία");
PROGMEM Language_Str MSG_MOTION = _UxGT("Κίνηση");
PROGMEM Language_Str MSG_FILAMENT = _UxGT("Νήμα");
PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("Ε σε μμ3");
PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("Ε σε μμ³");
PROGMEM Language_Str MSG_FILAMENT_DIAM = _UxGT("Διάμετρος νήματος");
PROGMEM Language_Str MSG_FILAMENT_DIAM_E = _UxGT("Διάμετρος νήματος *");
PROGMEM Language_Str MSG_CONTRAST = _UxGT("Κοντράστ LCD");

View file

@ -140,7 +140,7 @@ namespace Language_el_gr {
PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("Θερμοκρασία");
PROGMEM Language_Str MSG_MOTION = _UxGT("Κίνηση");
PROGMEM Language_Str MSG_FILAMENT = _UxGT("Νήμα");
PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("Ε σε μμ3");
PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("Ε σε μμ³");
PROGMEM Language_Str MSG_FILAMENT_DIAM = _UxGT("Διάμετρος νήματος");
PROGMEM Language_Str MSG_FILAMENT_DIAM_E = _UxGT("Διάμετρος νήματος *");
PROGMEM Language_Str MSG_CONTRAST = _UxGT("Κοντράστ LCD");

View file

@ -39,12 +39,6 @@ namespace Language_en {
constexpr uint8_t CHARSIZE = 2;
PROGMEM Language_Str LANGUAGE = _UxGT("English");
#ifdef NOT_EXTENDED_ISO10646_1_5X7
PROGMEM Language_Str MSG_CUBED = _UxGT("^3");
#else
PROGMEM Language_Str MSG_CUBED = _UxGT("³");
#endif
PROGMEM Language_Str WELCOME_MSG = MACHINE_NAME _UxGT(" Ready.");
PROGMEM Language_Str MSG_YES = _UxGT("YES");
PROGMEM Language_Str MSG_NO = _UxGT("NO");
@ -480,7 +474,10 @@ namespace Language_en {
PROGMEM Language_Str MSG_INFO_MAX_TEMP = _UxGT("Max Temp");
PROGMEM Language_Str MSG_INFO_PSU = _UxGT("PSU");
PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("Drive Strength");
PROGMEM Language_Str MSG_DAC_PERCENT = _UxGT("Driver %");
PROGMEM Language_Str MSG_DAC_PERCENT_X = _UxGT("X Driver %");
PROGMEM Language_Str MSG_DAC_PERCENT_Y = _UxGT("Y Driver %");
PROGMEM Language_Str MSG_DAC_PERCENT_Z = _UxGT("Z Driver %");
PROGMEM Language_Str MSG_DAC_PERCENT_E = _UxGT("E Driver %");
PROGMEM Language_Str MSG_ERROR_TMC = _UxGT("TMC CONNECTION ERROR");
PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("DAC EEPROM Write");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER = _UxGT("FILAMENT CHANGE");

View file

@ -441,7 +441,10 @@ namespace Language_es {
PROGMEM Language_Str MSG_INFO_MAX_TEMP = _UxGT("Temp. Máxima");
PROGMEM Language_Str MSG_INFO_PSU = _UxGT("Fuente alimentación");
PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("Fuerza de empuje");
PROGMEM Language_Str MSG_DAC_PERCENT = _UxGT("Driver %");
PROGMEM Language_Str MSG_DAC_PERCENT_X = _UxGT("X Driver %");
PROGMEM Language_Str MSG_DAC_PERCENT_Y = _UxGT("Y Driver %");
PROGMEM Language_Str MSG_DAC_PERCENT_Z = _UxGT("Z Driver %");
PROGMEM Language_Str MSG_DAC_PERCENT_E = _UxGT("E Driver %");
PROGMEM Language_Str MSG_ERROR_TMC = _UxGT("ERROR CONEX. TMC");
PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("Escribe DAC EEPROM");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER = _UxGT("CAMBIAR FILAMENTO");

View file

@ -295,7 +295,10 @@ namespace Language_eu {
PROGMEM Language_Str MSG_INFO_MAX_TEMP = _UxGT("Tenp. Maximoa");
PROGMEM Language_Str MSG_INFO_PSU = _UxGT("Elikadura-iturria");
PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("Driver-aren potentzia");
PROGMEM Language_Str MSG_DAC_PERCENT = _UxGT("Driver %");
PROGMEM Language_Str MSG_DAC_PERCENT_X = _UxGT("X Driver %");
PROGMEM Language_Str MSG_DAC_PERCENT_Y = _UxGT("Y Driver %");
PROGMEM Language_Str MSG_DAC_PERCENT_Z = _UxGT("Z Driver %");
PROGMEM Language_Str MSG_DAC_PERCENT_E = _UxGT("E Driver %");
PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("Idatzi DAC EEPROM");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_PAUSE = _UxGT("HARIZPIA ALDATU");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_LOAD = _UxGT("HARIZPIA KARGATU");

View file

@ -85,7 +85,7 @@ namespace Language_fr {
PROGMEM Language_Str MSG_PREHEAT_2_ALL = _UxGT("Préch. ") PREHEAT_2_LABEL _UxGT(" Tout");
PROGMEM Language_Str MSG_PREHEAT_2_BEDONLY = _UxGT("Préch. ") PREHEAT_2_LABEL _UxGT(" lit");
PROGMEM Language_Str MSG_PREHEAT_2_SETTINGS = _UxGT("Régler préch. ") PREHEAT_2_LABEL;
PROGMEM Language_Str MSG_PREHEAT_CUSTOM = _UxGT("Préchauffage perso");
PROGMEM Language_Str MSG_PREHEAT_CUSTOM = _UxGT("Préchauf. perso");
PROGMEM Language_Str MSG_COOLDOWN = _UxGT("Refroidir");
PROGMEM Language_Str MSG_LASER_MENU = _UxGT("Contrôle Laser");
PROGMEM Language_Str MSG_LASER_POWER = _UxGT("Puissance");
@ -93,7 +93,7 @@ namespace Language_fr {
PROGMEM Language_Str MSG_SWITCH_PS_ON = _UxGT("Allumer alim.");
PROGMEM Language_Str MSG_SWITCH_PS_OFF = _UxGT("Eteindre alim.");
PROGMEM Language_Str MSG_EXTRUDE = _UxGT("Extrusion");
PROGMEM Language_Str MSG_RETRACT = _UxGT("Rétractation");
PROGMEM Language_Str MSG_RETRACT = _UxGT("Rétraction");
PROGMEM Language_Str MSG_MOVE_AXIS = _UxGT("Déplacer un axe");
PROGMEM Language_Str MSG_BED_LEVELING = _UxGT("Régler Niv. lit");
PROGMEM Language_Str MSG_LEVEL_BED = _UxGT("Niveau du lit");
@ -234,8 +234,9 @@ namespace Language_fr {
PROGMEM Language_Str MSG_NOZZLE_N = _UxGT("Buse ~");
PROGMEM Language_Str MSG_BED = _UxGT("Lit");
PROGMEM Language_Str MSG_CHAMBER = _UxGT("Caisson");
PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("Vit. ventil. ");
PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("Vit. ventil. "); // 15 car. max
PROGMEM Language_Str MSG_FAN_SPEED_N = _UxGT("Vit. ventil. =");
PROGMEM Language_Str MSG_STORED_FAN_N = _UxGT("Vit. enreg. =");
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED = _UxGT("Extra ventil. ");
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_N = _UxGT("Extra ventil. =");
@ -258,10 +259,10 @@ namespace Language_fr {
PROGMEM Language_Str MSG_VE_JERK = _UxGT("Ve jerk");
PROGMEM Language_Str MSG_VELOCITY = _UxGT("Vélocité");
PROGMEM Language_Str MSG_JUNCTION_DEVIATION = _UxGT("Déviat. jonct.");
PROGMEM Language_Str MSG_VTRAV_MIN = _UxGT("V dépl. min");
PROGMEM Language_Str MSG_VTRAV_MIN = _UxGT("Vmin course");
PROGMEM Language_Str MSG_ACCELERATION = _UxGT("Accélération");
PROGMEM Language_Str MSG_A_RETRACT = _UxGT("A retrait");
PROGMEM Language_Str MSG_A_TRAVEL = _UxGT("A dépl.");
PROGMEM Language_Str MSG_A_RETRACT = _UxGT("Acc.rétraction");
PROGMEM Language_Str MSG_A_TRAVEL = _UxGT("Acc.course");
PROGMEM Language_Str MSG_STEPS_PER_MM = _UxGT("Pas/mm");
PROGMEM Language_Str MSG_A_STEPS = LCD_STR_A _UxGT(" pas/mm");
PROGMEM Language_Str MSG_B_STEPS = LCD_STR_B _UxGT(" pas/mm");
@ -271,7 +272,7 @@ namespace Language_fr {
PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("Température");
PROGMEM Language_Str MSG_MOTION = _UxGT("Mouvement");
PROGMEM Language_Str MSG_FILAMENT = _UxGT("Filament");
PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("E en mm3");
PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("E en mm³");
PROGMEM Language_Str MSG_FILAMENT_DIAM = _UxGT("Diamètre fil.");
PROGMEM Language_Str MSG_FILAMENT_DIAM_E = _UxGT("Diamètre fil. *");
PROGMEM Language_Str MSG_FILAMENT_UNLOAD = _UxGT("Retrait mm");
@ -297,10 +298,15 @@ namespace Language_fr {
PROGMEM Language_Str MSG_BUTTON_RESET = _UxGT("Reset");
PROGMEM Language_Str MSG_BUTTON_CANCEL = _UxGT("Annuler");
PROGMEM Language_Str MSG_BUTTON_DONE = _UxGT("Terminé");
PROGMEM Language_Str MSG_BUTTON_BACK = _UxGT("Retour");
PROGMEM Language_Str MSG_BUTTON_PROCEED = _UxGT("Procéder");
PROGMEM Language_Str MSG_PAUSE_PRINT = _UxGT("Pause impression");
PROGMEM Language_Str MSG_RESUME_PRINT = _UxGT("Reprendre impr.");
PROGMEM Language_Str MSG_STOP_PRINT = _UxGT("Arrêter impr.");
PROGMEM Language_Str MSG_OUTAGE_RECOVERY = _UxGT("Récupér. coupure");
PROGMEM Language_Str MSG_PRINTING_OBJECT = _UxGT("Impression objet");
PROGMEM Language_Str MSG_CANCEL_OBJECT = _UxGT("Annuler objet");
PROGMEM Language_Str MSG_CANCEL_OBJECT_N = _UxGT("Annuler objet =");
PROGMEM Language_Str MSG_OUTAGE_RECOVERY = _UxGT("Récup. coup.");
PROGMEM Language_Str MSG_MEDIA_MENU = _UxGT("Impression SD");
PROGMEM Language_Str MSG_NO_MEDIA = _UxGT("Pas de média");
PROGMEM Language_Str MSG_DWELL = _UxGT("Repos...");
@ -311,28 +317,29 @@ namespace Language_fr {
PROGMEM Language_Str MSG_NO_MOVE = _UxGT("Moteurs bloqués");
PROGMEM Language_Str MSG_KILLED = _UxGT("KILLED");
PROGMEM Language_Str MSG_STOPPED = _UxGT("STOPPÉ");
PROGMEM Language_Str MSG_CONTROL_RETRACT = _UxGT("Retrait mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_SWAP = _UxGT("Ech. Retr. mm");
PROGMEM Language_Str MSG_CONTROL_RETRACTF = _UxGT("Retrait V");
PROGMEM Language_Str MSG_CONTROL_RETRACT = _UxGT("Rétraction mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_SWAP = _UxGT("Ech. tr. mm");
PROGMEM Language_Str MSG_CONTROL_RETRACTF = _UxGT("Vit. rétract°");
PROGMEM Language_Str MSG_CONTROL_RETRACT_ZHOP = _UxGT("Saut Z mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER = _UxGT("Rappel mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER_SWAP = _UxGT("Ech. Rappel mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVERF = _UxGT("Rappel V");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER_SWAPF = _UxGT("Ech. Rappel V");
PROGMEM Language_Str MSG_AUTORETRACT = _UxGT("Retrait auto");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER = _UxGT("Rét.reprise mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER_SWAP = _UxGT("Ech.reprise mm");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVERF = _UxGT("V.rét. reprise");
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVER_SWAPF = _UxGT("V.éch. reprise");
PROGMEM Language_Str MSG_AUTORETRACT = _UxGT("Rétraction auto");
PROGMEM Language_Str MSG_TOOL_CHANGE = _UxGT("Changement outil");
PROGMEM Language_Str MSG_TOOL_CHANGE_ZLIFT = _UxGT("Augmenter Z");
PROGMEM Language_Str MSG_SINGLENOZZLE_PRIME_SPD = _UxGT("Vitesse primaire");
PROGMEM Language_Str MSG_SINGLENOZZLE_RETRACT_SPD = _UxGT("Vitesse retrait");
PROGMEM Language_Str MSG_SINGLENOZZLE_RETRACT_SPD = _UxGT("Vitesse rétract°");
PROGMEM Language_Str MSG_NOZZLE_STANDBY = _UxGT("Attente buse");
PROGMEM Language_Str MSG_FILAMENT_SWAP_LENGTH = _UxGT("Distance retrait");
PROGMEM Language_Str MSG_FILAMENT_SWAP_LENGTH = _UxGT("Longueur retrait");
PROGMEM Language_Str MSG_FILAMENT_PURGE_LENGTH = _UxGT("Longueur de purge");
PROGMEM Language_Str MSG_FILAMENTCHANGE = _UxGT("Changer filament");
PROGMEM Language_Str MSG_FILAMENTCHANGE_E = _UxGT("Changer filament *");
PROGMEM Language_Str MSG_FILAMENTLOAD = _UxGT("Charger filament");
PROGMEM Language_Str MSG_FILAMENTLOAD_E = _UxGT("Charger filament *");
PROGMEM Language_Str MSG_FILAMENTUNLOAD = _UxGT("Retrait filament");
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E = _UxGT("Retrait filament *");
PROGMEM Language_Str MSG_FILAMENTUNLOAD_ALL = _UxGT("Décharger tout");
PROGMEM Language_Str MSG_FILAMENTUNLOAD_ALL = _UxGT("Retirer tout");
PROGMEM Language_Str MSG_INIT_MEDIA = _UxGT("Charger le média");
PROGMEM Language_Str MSG_CHANGE_MEDIA = _UxGT("Actualiser média");
PROGMEM Language_Str MSG_RELEASE_MEDIA = _UxGT("Retirer le média");
@ -429,7 +436,10 @@ namespace Language_fr {
PROGMEM Language_Str MSG_INFO_MAX_TEMP = _UxGT("Temp Max");
PROGMEM Language_Str MSG_INFO_PSU = _UxGT("Alimentation");
PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("Puiss. moteur ");
PROGMEM Language_Str MSG_DAC_PERCENT = _UxGT("Driver %");
PROGMEM Language_Str MSG_DAC_PERCENT_X = _UxGT("X Driver %");
PROGMEM Language_Str MSG_DAC_PERCENT_Y = _UxGT("Y Driver %");
PROGMEM Language_Str MSG_DAC_PERCENT_Z = _UxGT("Z Driver %");
PROGMEM Language_Str MSG_DAC_PERCENT_E = _UxGT("E Driver %");
PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("DAC EEPROM sauv.");
PROGMEM Language_Str MSG_ERROR_TMC = _UxGT("ERREUR CONNEXION TMC");

View file

@ -111,7 +111,7 @@ namespace Language_gl {
PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("Temperatura");
PROGMEM Language_Str MSG_MOTION = _UxGT("Movemento");
PROGMEM Language_Str MSG_FILAMENT = _UxGT("Filamento");
PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("E en mm3");
PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("E en mm³");
PROGMEM Language_Str MSG_FILAMENT_DIAM = _UxGT("Diam. fil.");
PROGMEM Language_Str MSG_FILAMENT_DIAM_E = _UxGT("Diam. fil. *");
PROGMEM Language_Str MSG_CONTRAST = _UxGT("Constraste LCD");

View file

@ -92,7 +92,7 @@ namespace Language_hr {
PROGMEM Language_Str MSG_SELECT_E = _UxGT("Odaberi *");
PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("Temperature");
PROGMEM Language_Str MSG_MOTION = _UxGT("Gibanje");
PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("E in mm3");
PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("E in mm³");
PROGMEM Language_Str MSG_FILAMENT_DIAM = _UxGT("Fil. Dia.");
PROGMEM Language_Str MSG_FILAMENT_DIAM_E = _UxGT("Fil. Dia. *");
PROGMEM Language_Str MSG_CONTRAST = _UxGT("Kontrast LCD-a");

View file

@ -239,10 +239,11 @@ namespace Language_it {
PROGMEM Language_Str MSG_NOZZLE_N = _UxGT("Ugello ~");
PROGMEM Language_Str MSG_BED = _UxGT("Piatto");
PROGMEM Language_Str MSG_CHAMBER = _UxGT("Camera");
PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("Vel. ventola"); // Max 15 characters
PROGMEM Language_Str MSG_FAN_SPEED_N = _UxGT("Vel. ventola ="); // Max 15 characters
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED = _UxGT("Extra vel.vent."); // Max 15 characters
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_N = _UxGT("Extra v.vent. ="); // Max 15 characters
PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("Vel. ventola"); // Max 15 characters
PROGMEM Language_Str MSG_FAN_SPEED_N = _UxGT("Vel. ventola ="); // Max 15 characters
PROGMEM Language_Str MSG_STORED_FAN_N = _UxGT("Ventola mem. ="); // Max 15 characters
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED = _UxGT("Extra vel.vent."); // Max 15 characters
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_N = _UxGT("Extra v.vent. ="); // Max 15 characters
PROGMEM Language_Str MSG_FLOW = _UxGT("Flusso");
PROGMEM Language_Str MSG_FLOW_N = _UxGT("Flusso ~");
PROGMEM Language_Str MSG_CONTROL = _UxGT("Controllo");
@ -467,7 +468,10 @@ namespace Language_it {
PROGMEM Language_Str MSG_INFO_MAX_TEMP = _UxGT("Temp max");
PROGMEM Language_Str MSG_INFO_PSU = _UxGT("Alimentatore");
PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("Potenza Drive");
PROGMEM Language_Str MSG_DAC_PERCENT = _UxGT("Driver %");
PROGMEM Language_Str MSG_DAC_PERCENT_X = _UxGT("X Driver %");
PROGMEM Language_Str MSG_DAC_PERCENT_Y = _UxGT("Y Driver %");
PROGMEM Language_Str MSG_DAC_PERCENT_Z = _UxGT("Z Driver %");
PROGMEM Language_Str MSG_DAC_PERCENT_E = _UxGT("E Driver %");
PROGMEM Language_Str MSG_ERROR_TMC = _UxGT("ERR.CONNESSIONE TMC");
PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("Scrivi DAC EEPROM");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER = _UxGT("CAMBIO FILAMENTO");

View file

@ -223,7 +223,10 @@ namespace Language_jp_kana {
PROGMEM Language_Str MSG_INFO_MAX_TEMP = _UxGT("セッテイサイコウオン"); // "Max Temp"
PROGMEM Language_Str MSG_INFO_PSU = _UxGT("デンゲンシュベツ"); // "Power Supply"
PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("モータークドウリョク"); // "Drive Strength"
PROGMEM Language_Str MSG_DAC_PERCENT = _UxGT("DACシュツリョク %"); // "Driver %"
PROGMEM Language_Str MSG_DAC_PERCENT_X = _UxGT("X DACシュツリョク %"); // "X Driver %"
PROGMEM Language_Str MSG_DAC_PERCENT_Y = _UxGT("Y DACシュツリョク %"); // "Y Driver %"
PROGMEM Language_Str MSG_DAC_PERCENT_Z = _UxGT("Z DACシュツリョク %"); // "Z Driver %"
PROGMEM Language_Str MSG_DAC_PERCENT_E = _UxGT("E DACシュツリョク %"); // "E Driver %"
PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("EEPROMヘホゾン"); // "Store memory"
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_PAUSE = _UxGT("イチジテイシ");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_RESUME = _UxGT("プリントサイカイ"); // "Resume print"

View file

@ -117,7 +117,7 @@ namespace Language_nl {
PROGMEM Language_Str MSG_FILAMENT = _UxGT("Filament");
PROGMEM Language_Str MSG_ADVANCE_K = _UxGT("Advance K"); //accepted english dutch
PROGMEM Language_Str MSG_ADVANCE_K_E = _UxGT("Advance K *"); //accepted english dutch
PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("E in mm3");
PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("E in mm³");
PROGMEM Language_Str MSG_FILAMENT_DIAM = _UxGT("Fil. Dia.");
PROGMEM Language_Str MSG_FILAMENT_DIAM_E = _UxGT("Fil. Dia. *");
PROGMEM Language_Str MSG_CONTRAST = _UxGT("LCD contrast");
@ -214,7 +214,10 @@ namespace Language_nl {
PROGMEM Language_Str MSG_INFO_PSU = _UxGT("PSU"); //accepted English term in Dutch
PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("Motorstroom");
PROGMEM Language_Str MSG_DAC_PERCENT = _UxGT("Driver %"); //accepted English term in Dutch
PROGMEM Language_Str MSG_DAC_PERCENT_X = _UxGT("X Driver %"); //accepted English term in Dutch
PROGMEM Language_Str MSG_DAC_PERCENT_Y = _UxGT("Y Driver %"); //accepted English term in Dutch
PROGMEM Language_Str MSG_DAC_PERCENT_Z = _UxGT("Z Driver %"); //accepted English term in Dutch
PROGMEM Language_Str MSG_DAC_PERCENT_E = _UxGT("E Driver %"); //accepted English term in Dutch
PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("DAC Opslaan");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_RESUME = _UxGT("Hervat print");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_NOZZLE = _UxGT(" Nozzle: "); //accepeted English term

View file

@ -296,7 +296,7 @@ namespace Language_pl {
PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("Temperatura");
PROGMEM Language_Str MSG_MOTION = _UxGT("Ruch");
PROGMEM Language_Str MSG_FILAMENT = _UxGT("Filament");
PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("E w mm3");
PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("E w mm³");
PROGMEM Language_Str MSG_FILAMENT_DIAM = _UxGT("Śr. fil.");
PROGMEM Language_Str MSG_FILAMENT_DIAM_E = _UxGT("Śr. fil. *");
PROGMEM Language_Str MSG_FILAMENT_UNLOAD = _UxGT("Wyładuj mm");
@ -465,7 +465,10 @@ namespace Language_pl {
PROGMEM Language_Str MSG_INFO_MAX_TEMP = _UxGT("Max Temp");
PROGMEM Language_Str MSG_INFO_PSU = _UxGT("Zasilacz");
PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("Siła silnika");
PROGMEM Language_Str MSG_DAC_PERCENT = _UxGT("Siła %");
PROGMEM Language_Str MSG_DAC_PERCENT_X = _UxGT("X Siła %");
PROGMEM Language_Str MSG_DAC_PERCENT_Y = _UxGT("Y Siła %");
PROGMEM Language_Str MSG_DAC_PERCENT_Z = _UxGT("Z Siła %");
PROGMEM Language_Str MSG_DAC_PERCENT_E = _UxGT("E Siła %");
PROGMEM Language_Str MSG_ERROR_TMC = _UxGT("TMC BŁĄD POŁĄCZENIA");
PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("Zapisz DAC EEPROM");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER = _UxGT("ZMIEŃ FILAMENT");

View file

@ -107,7 +107,7 @@ namespace Language_pt {
PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("Temperatura");
PROGMEM Language_Str MSG_MOTION = _UxGT("Movimento");
PROGMEM Language_Str MSG_FILAMENT = _UxGT("Filamento");
PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("E em mm3");
PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("E em mm³");
PROGMEM Language_Str MSG_FILAMENT_DIAM = _UxGT("Fil. Diam.");
PROGMEM Language_Str MSG_FILAMENT_DIAM_E = _UxGT("Fil. Diam. *");
PROGMEM Language_Str MSG_CONTRAST = _UxGT("Contraste");

View file

@ -242,7 +242,7 @@ namespace Language_pt_br {
PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("Temperatura");
PROGMEM Language_Str MSG_MOTION = _UxGT("Movimento");
PROGMEM Language_Str MSG_FILAMENT = _UxGT("Filamento");
PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("Extrusão em mm3");
PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("Extrusão em mm³");
PROGMEM Language_Str MSG_FILAMENT_DIAM = _UxGT("Diâmetro Fil.");
PROGMEM Language_Str MSG_FILAMENT_DIAM_E = _UxGT("Diâmetro Fil. *");
PROGMEM Language_Str MSG_FILAMENT_UNLOAD = _UxGT("Descarr. mm");

View file

@ -258,7 +258,7 @@ namespace Language_ru {
PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("Температура");
PROGMEM Language_Str MSG_MOTION = _UxGT("Движение");
PROGMEM Language_Str MSG_FILAMENT = _UxGT("Филамент");
PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("E в мм3");
PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("E в мм³");
PROGMEM Language_Str MSG_FILAMENT_DIAM = _UxGT("Диаметр филамента");
PROGMEM Language_Str MSG_FILAMENT_DIAM_E = _UxGT("Диаметр филамента *");
PROGMEM Language_Str MSG_FILAMENT_UNLOAD = _UxGT("Загрузка мм");
@ -408,7 +408,10 @@ namespace Language_ru {
PROGMEM Language_Str MSG_INFO_MAX_TEMP = _UxGT("Макс. Т");
PROGMEM Language_Str MSG_INFO_PSU = _UxGT("БП");
PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("Сила привода");
PROGMEM Language_Str MSG_DAC_PERCENT = _UxGT("Привод %");
PROGMEM Language_Str MSG_DAC_PERCENT_X = _UxGT("X Привод %");
PROGMEM Language_Str MSG_DAC_PERCENT_Y = _UxGT("Y Привод %");
PROGMEM Language_Str MSG_DAC_PERCENT_Z = _UxGT("Z Привод %");
PROGMEM Language_Str MSG_DAC_PERCENT_E = _UxGT("E Привод %");
PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("Запись DAC EEPROM");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_PAUSE = _UxGT("ПЕЧАТЬ НА ПАУЗЕ");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_LOAD = _UxGT("ЗАГРУЗКА ФИЛАМЕНТА");

View file

@ -474,7 +474,10 @@ namespace Language_sk {
PROGMEM Language_Str MSG_INFO_MAX_TEMP = _UxGT("Teplota max");
PROGMEM Language_Str MSG_INFO_PSU = _UxGT("Nap. zdroj");
PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("Budenie motorov");
PROGMEM Language_Str MSG_DAC_PERCENT = _UxGT("Motor %");
PROGMEM Language_Str MSG_DAC_PERCENT_X = _UxGT("X Motor %");
PROGMEM Language_Str MSG_DAC_PERCENT_Y = _UxGT("Y Motor %");
PROGMEM Language_Str MSG_DAC_PERCENT_Z = _UxGT("Z Motor %");
PROGMEM Language_Str MSG_DAC_PERCENT_E = _UxGT("E Motor %");
PROGMEM Language_Str MSG_ERROR_TMC = _UxGT("CHYBA KOMUNIKÁ. TMC");
PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("Uložiť do EEPROM");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER = _UxGT("VÝMENA FILAMENTU");

View file

@ -391,7 +391,10 @@ namespace Language_tr {
PROGMEM Language_Str MSG_INFO_MAX_TEMP = _UxGT("Max Sıc.");
PROGMEM Language_Str MSG_INFO_PSU = _UxGT("Güç Kaynağı");
PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("Sürücü Gücü");
PROGMEM Language_Str MSG_DAC_PERCENT = _UxGT("Sürücü %");
PROGMEM Language_Str MSG_DAC_PERCENT_X = _UxGT("X Sürücü %");
PROGMEM Language_Str MSG_DAC_PERCENT_Y = _UxGT("Y Sürücü %");
PROGMEM Language_Str MSG_DAC_PERCENT_Z = _UxGT("Z Sürücü %");
PROGMEM Language_Str MSG_DAC_PERCENT_E = _UxGT("E Sürücü %");
PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("DAC EEPROM Yaz");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_PAUSE = _UxGT("BASKI DURAKLATILDI");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_LOAD = _UxGT("FILAMAN YüKLE");

View file

@ -141,7 +141,7 @@ namespace Language_uk {
PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("Температура");
PROGMEM Language_Str MSG_MOTION = _UxGT("Рух");
PROGMEM Language_Str MSG_FILAMENT = _UxGT("Волокно");
PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("E в мм3");
PROGMEM Language_Str MSG_VOLUMETRIC_ENABLED = _UxGT("E в мм³");
PROGMEM Language_Str MSG_FILAMENT_DIAM = _UxGT("Діам. волок.");
PROGMEM Language_Str MSG_FILAMENT_DIAM_E = _UxGT("Діам. волок. *");
PROGMEM Language_Str MSG_CONTRAST = _UxGT("контраст LCD");
@ -223,7 +223,10 @@ namespace Language_uk {
PROGMEM Language_Str MSG_INFO_PSU = _UxGT("Джерело жив.");
PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("Сила мотору");
PROGMEM Language_Str MSG_DAC_PERCENT = _UxGT("% мотору");
PROGMEM Language_Str MSG_DAC_PERCENT_X = _UxGT("X % мотору");
PROGMEM Language_Str MSG_DAC_PERCENT_Y = _UxGT("Y % мотору");
PROGMEM Language_Str MSG_DAC_PERCENT_Z = _UxGT("Z % мотору");
PROGMEM Language_Str MSG_DAC_PERCENT_E = _UxGT("E % мотору");
PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("Запис ЦАП на ПЗП");
PROGMEM Language_Str MSG_FILAMENT_CHANGE_OPTION_RESUME = _UxGT("Відновити друк");

View file

@ -398,7 +398,10 @@ namespace Language_vi {
PROGMEM Language_Str MSG_INFO_MAX_TEMP = _UxGT("Nhiệt độ tối đa"); // Max temp
PROGMEM Language_Str MSG_INFO_PSU = _UxGT("Bộ nguồn"); // PSU
PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("Sức mạnh ổ đĩa"); // Drive Strength
PROGMEM Language_Str MSG_DAC_PERCENT = _UxGT("% trình điều khiển"); // Driver %
PROGMEM Language_Str MSG_DAC_PERCENT_X = _UxGT("X % trình điều khiển"); // X Driver %
PROGMEM Language_Str MSG_DAC_PERCENT_Y = _UxGT("Y % trình điều khiển"); // Y Driver %
PROGMEM Language_Str MSG_DAC_PERCENT_Z = _UxGT("Z % trình điều khiển"); // Z Driver %
PROGMEM Language_Str MSG_DAC_PERCENT_E = _UxGT("E % trình điều khiển"); // E Driver %
PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("Ghi DAC EEPROM"); // DAC EEPROM Write
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_PAUSE = _UxGT("In tạm dừng"); // PRINT PAUSED
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_LOAD = _UxGT("Nạp dây nhựa");

View file

@ -359,7 +359,10 @@ namespace Language_zh_CN {
PROGMEM Language_Str MSG_INFO_MAX_TEMP = _UxGT("最高温度"); //"Max Temp"
PROGMEM Language_Str MSG_INFO_PSU = _UxGT("电源供应"); //"Power Supply"
PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("驱动力度"); // "Drive Strength"
PROGMEM Language_Str MSG_DAC_PERCENT = _UxGT("驱动 %"); // "Driver %"
PROGMEM Language_Str MSG_DAC_PERCENT_X = _UxGT("X 驱动 %"); // "X Driver %"
PROGMEM Language_Str MSG_DAC_PERCENT_Y = _UxGT("Y 驱动 %"); // "Y Driver %"
PROGMEM Language_Str MSG_DAC_PERCENT_Z = _UxGT("Z 驱动 %"); // "Z Driver %"
PROGMEM Language_Str MSG_DAC_PERCENT_E = _UxGT("E 驱动 %"); // "E Driver %"
PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("保存驱动设置"); // "DAC EEPROM Write"
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_PAUSE = _UxGT("打印已暂停"); // "PRINT PAUSED"
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_LOAD = _UxGT("装载丝料"); // "LOAD FILAMENT"

View file

@ -359,7 +359,10 @@ namespace Language_zh_TW {
PROGMEM Language_Str MSG_INFO_MAX_TEMP = _UxGT("最高溫度"); //"Max Temp"
PROGMEM Language_Str MSG_INFO_PSU = _UxGT("電源供應"); //"Power Supply"
PROGMEM Language_Str MSG_DRIVE_STRENGTH = _UxGT("驅動力度"); // "Drive Strength"
PROGMEM Language_Str MSG_DAC_PERCENT = _UxGT("驅動 %"); // "Driver %"
PROGMEM Language_Str MSG_DAC_PERCENT_X = _UxGT("X 驅動 %"); // "X Driver %"
PROGMEM Language_Str MSG_DAC_PERCENT_Y = _UxGT("Y 驅動 %"); // "Y Driver %"
PROGMEM Language_Str MSG_DAC_PERCENT_Z = _UxGT("Z 驅動 %"); // "Z Driver %"
PROGMEM Language_Str MSG_DAC_PERCENT_E = _UxGT("E 驅動 %"); // "E Driver %"
PROGMEM Language_Str MSG_DAC_EEPROM_WRITE = _UxGT("保存驅動設置"); // "DAC EEPROM Write"
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_PAUSE = _UxGT("列印已暫停"); // "PRINT PAUSED"
PROGMEM Language_Str MSG_FILAMENT_CHANGE_HEADER_LOAD = _UxGT("裝載絲料"); // "LOAD FILAMENT"

View file

@ -65,7 +65,7 @@ void menu_cancelobject();
LOOP_XYZE(i) driverPercent[i] = dac_current_get_percent((AxisEnum)i);
START_MENU();
BACK_ITEM(MSG_ADVANCED_SETTINGS);
#define EDIT_DAC_PERCENT(A) EDIT_ITEM_P(uint8, PSTR(MSG_##A " " MSG_DAC_PERCENT), &driverPercent[_AXIS(A)], 0, 100, []{ dac_current_set_percents(driverPercent); })
#define EDIT_DAC_PERCENT(A) EDIT_ITEM(uint8, MSG_DAC_PERCENT_##A, &driverPercent[_AXIS(A)], 0, 100, []{ dac_current_set_percents(driverPercent); })
EDIT_DAC_PERCENT(X);
EDIT_DAC_PERCENT(Y);
EDIT_DAC_PERCENT(Z);

View file

@ -203,60 +203,78 @@
#define LCD_PINS_D4 P0_17
#else
#define LCD_PINS_RS P0_16
#define BTN_EN1 P3_25
#define BTN_EN2 P3_26
#define LCD_PINS_ENABLE P0_18
#define LCD_PINS_D4 P0_15
#define LCD_SDSS P0_28
#define SD_DETECT_PIN P0_27
#if ENABLED(FYSETC_MINI_12864)
#define DOGLCD_CS P0_18
#define DOGLCD_A0 P0_16
#define DOGLCD_SCK P0_07
#define DOGLCD_MOSI P1_20
#if ENABLED(MKS_12864OLED_SSD1306)
#define LCD_BACKLIGHT_PIN -1
#define LCD_PINS_DC P0_17
#define DOGLCD_CS P0_16
#define DOGLCD_A0 LCD_PINS_DC
#define DOGLCD_SCK P0_15
#define DOGLCD_MOSI P0_18
#define FORCE_SOFT_SPI // Use this if default of hardware SPI causes display problems
// results in LCD soft SPI mode 3, SD soft SPI mode 0
#define LCD_PINS_RS P1_00
#define LCD_PINS_D7 P1_22
#define KILL_PIN -1 // NC
#define LCD_RESET_PIN P0_15 // Must be high or open for LCD to operate normally.
#else // !MKS_12864OLED_SSD1306
#if EITHER(FYSETC_MINI_12864_1_2, FYSETC_MINI_12864_2_0)
#ifndef RGB_LED_R_PIN
#define RGB_LED_R_PIN P0_17
#define LCD_PINS_RS P0_16
#define LCD_PINS_ENABLE P0_18
#define LCD_PINS_D4 P0_15
#if ENABLED(FYSETC_MINI_12864)
#define DOGLCD_CS P0_18
#define DOGLCD_A0 P0_16
#define DOGLCD_SCK P0_07
#define DOGLCD_MOSI P1_20
#define LCD_BACKLIGHT_PIN -1
#define FORCE_SOFT_SPI // Use this if default of hardware SPI causes display problems
// results in LCD soft SPI mode 3, SD soft SPI mode 0
#define LCD_RESET_PIN P0_15 // Must be high or open for LCD to operate normally.
#if EITHER(FYSETC_MINI_12864_1_2, FYSETC_MINI_12864_2_0)
#ifndef RGB_LED_R_PIN
#define RGB_LED_R_PIN P0_17
#endif
#ifndef RGB_LED_G_PIN
#define RGB_LED_G_PIN P1_00
#endif
#ifndef RGB_LED_B_PIN
#define RGB_LED_B_PIN P1_22
#endif
#elif ENABLED(FYSETC_MINI_12864_2_1)
#define NEOPIXEL_PIN P0_17
#endif
#ifndef RGB_LED_G_PIN
#define RGB_LED_G_PIN P1_00
#else // !FYSETC_MINI_12864
#if ENABLED(MKS_MINI_12864)
#define DOGLCD_CS P0_17
#define DOGLCD_A0 P1_00
#endif
#ifndef RGB_LED_B_PIN
#define RGB_LED_B_PIN P1_22
#if ENABLED(ULTIPANEL)
#define LCD_PINS_D5 P0_17
#define LCD_PINS_D6 P1_00
#define LCD_PINS_D7 P1_22
#endif
#elif ENABLED(FYSETC_MINI_12864_2_1)
#define NEOPIXEL_PIN P0_17
#endif
#else // !FYSETC_MINI_12864
#endif // !FYSETC_MINI_12864
#if ENABLED(MKS_MINI_12864)
#define DOGLCD_CS P0_17
#define DOGLCD_A0 P1_00
#endif
#endif // !MKS_12864OLED_SSD1306
#if ENABLED(ULTIPANEL)
#define LCD_PINS_D5 P0_17
#define LCD_PINS_D6 P1_00
#define LCD_PINS_D7 P1_22
#endif
#endif // !FYSETC_MINI_12864
#endif
#endif // !CR10_STOCKDISPLAY
#endif // HAS_SPI_LCD

View file

@ -493,6 +493,10 @@
#include "stm32/pins_FYSETC_CHEETAH_V12.h" // STM32F1 env:STM32F103RC_fysetc
#elif MB(LONGER3D_LK)
#include "stm32/pins_LONGER3D_LK.h" // STM32F1 env:STM32F103VE_longer
#elif MB(MKS_ROBIN_LITE3)
#include "stm32/pins_MKS_ROBIN_LITE3.h" // STM32F1 env:mks_robin_lite3
#elif MB(MKS_ROBIN_PRO)
#include "stm32/pins_MKS_ROBIN_PRO.h" // STM32F1 env:mks_robin_pro
//
// ARM Cortex-M4F
@ -531,7 +535,6 @@
#include "stm32/pins_VAKE403D.h" // STM32F4 env:STM32F4
#elif MB(FYSETC_S6)
#include "stm32/pins_FYSETC_S6.h" // STM32F4 env:FYSETC_S6
//
// ARM Cortex M7
//

View file

@ -593,7 +593,7 @@
//#define LCD_SCREEN_ROT_270
// not connected to a pin
#define LCD_BACKLIGHT_PIN 65 // backlight LED on A11/D65
#define LCD_BACKLIGHT_PIN -1 // 65 (MKS mini12864 can't adjust backlight by software!)
#define BTN_EN1 31
#define BTN_EN2 33

View file

@ -23,10 +23,8 @@
#ifndef __STM32F1__
#error "Oops! Select an STM32F1 board in 'Tools > Board.'"
#endif
#if HOTENDS > 1 || E_STEPPERS > 1
#error "MKS Robin Lite supports up to 1 hotends / E-steppers. Comment out this line to continue."
#elif HOTENDS > 1 || E_STEPPERS > 1
#error "MKS Robin Lite supports only 1 hotend / E-stepper. Comment out this line to continue."
#endif
#ifndef BOARD_INFO_NAME

View file

@ -0,0 +1,153 @@
/**
* Marlin 3D Printer Firmware
* Copyright (c) 2019 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
#pragma once
/**
* MKS Robin Lite 3 (STM32F103RCT6) board pin assignments
*/
#ifndef __STM32F1__
#error "Oops! Select an STM32F1 board in 'Tools > Board.'"
#elif HOTENDS > 2 || E_STEPPERS > 2
#error "MKS Robin Lite3 supports up to 2 hotends / E-steppers. Comment out this line to continue."
#endif
#ifndef BOARD_INFO_NAME
#define BOARD_INFO_NAME "MKS Robin Lite3"
#endif
#define BOARD_WEBSITE_URL "github.com/makerbase-mks"
//#define DISABLE_DEBUG
#define DISABLE_JTAG
#define ENABLE_SPI2
//
// Servos
//
#define SERVO0_PIN PA3
//
// Limit Switches
//
#define X_STOP_PIN PA12
#define Y_STOP_PIN PA11
#define Z_MIN_PIN PC6
#define Z_MAX_PIN PB1
//
// Steppers
//
#define X_STEP_PIN PC0
#define X_DIR_PIN PB2
#define X_ENABLE_PIN PC13
#define Y_STEP_PIN PC2
#define Y_DIR_PIN PB9
#define Y_ENABLE_PIN PB12
#define Z_STEP_PIN PB7
#define Z_DIR_PIN PB6
#define Z_ENABLE_PIN PB8
#define E0_STEP_PIN PB4
#define E0_DIR_PIN PB3
#define E0_ENABLE_PIN PB5
#define E1_STEP_PIN PC12
#define E1_DIR_PIN PC11
#define E1_ENABLE_PIN PD2
//
// Heaters 0,1 / Fans / Bed
//
#define HEATER_0_PIN PC9
#define HEATER_1_PIN PC7
#define FAN_PIN PA8
#define HEATER_BED_PIN PC8
//
// Temperature Sensors
//
#define TEMP_BED_PIN PA1 //TB
#define TEMP_0_PIN PA0 //TH1
#define TEMP_1_PIN PA2 //TH2
#define FIL_RUNOUT_PIN PB10 // MT_DET
//
// LCD Pins
//
#if HAS_SPI_LCD
#define BEEPER_PIN PC1
#define BTN_ENC PC3
#define LCD_PINS_ENABLE PA4
#define LCD_PINS_RS PA5
#define BTN_EN1 PB11
#define BTN_EN2 PB0
// MKS MINI12864 and MKS LCD12864B; If using MKS LCD12864A (Need to remove RPK2 resistor)
#if ENABLED(MKS_MINI_12864)
#define LCD_BACKLIGHT_PIN -1
#define LCD_RESET_PIN -1
#define DOGLCD_A0 PC4
#define DOGLCD_CS PA7
#define DOGLCD_SCK PB13
#define DOGLCD_MOSI PB15
// Required for MKS_MINI_12864 with this board
#define MKS_LCD12864B
#undef SHOW_BOOTSCREEN
#else // !MKS_MINI_12864
#define LCD_PINS_D4 PA6
#if ENABLED(ULTIPANEL)
#define LCD_PINS_D5 PA7
#define LCD_PINS_D6 PC4
#define LCD_PINS_D7 PC5
#endif
#endif // !MKS_MINI_12864
#endif // HAS_SPI_LCD
//
// SD Card
//
#define ENABLE_SPI2
#define SD_DETECT_PIN PC10
#define SCK_PIN PB13
#define MISO_PIN PB14
#define MOSI_PIN PB15
#define SS_PIN PA15
#ifndef ST7920_DELAY_1
#define ST7920_DELAY_1 DELAY_NS(125)
#endif
#ifndef ST7920_DELAY_2
#define ST7920_DELAY_2 DELAY_NS(125)
#endif
#ifndef ST7920_DELAY_3
#define ST7920_DELAY_3 DELAY_NS(125)
#endif

View file

@ -46,15 +46,13 @@
//
// Limit Switches
//
#define X_MIN_PIN PA15
#define X_MAX_PIN PA15
#define Y_MIN_PIN PA12
#define Y_MAX_PIN PA12
#define X_STOP_PIN PA15
#define Y_STOP_PIN PA12
#define Z_MIN_PIN PA11
#define Z_MAX_PIN PC4
#ifndef FIL_RUNOUT_PIN
#define FIL_RUNOUT_PIN PF11 // MT_DET
#define FIL_RUNOUT_PIN PA4 // MT_DET
#endif
//
@ -119,13 +117,16 @@
#define FSMC_CS_PIN PD7 // NE4
#define FSMC_RS_PIN PD11 // A0
#define LCD_RESET_PIN PF6
#define LCD_RESET_PIN PC6
#define NO_LCD_REINIT // Suppress LCD re-initialization
#define LCD_BACKLIGHT_PIN PD13
#if ENABLED(TOUCH_BUTTONS)
#define TOUCH_CS_PIN PC2
#define TOUCH_SCK_PIN PB13
#define TOUCH_MOSI_PIN PB15
#define TOUCH_MISO_PIN PB14
#endif
#endif

View file

@ -38,11 +38,6 @@
//
#define DISABLE_DEBUG
//
// Note: MKS Robin board is using SPI2 interface.
//
#define SPI_MODULE 2
//
// Limit Switches
//
@ -108,11 +103,16 @@
#define LED_PIN PB2
//
// SD Card
//
#define SDIO_SUPPORT
#define SD_DETECT_PIN PD12
//
// LCD / Controller
//
#define BEEPER_PIN PC5
#define SD_DETECT_PIN PD12
/**
* Note: MKS Robin TFT screens use various TFT controllers.
@ -123,12 +123,15 @@
#define FSMC_CS_PIN PD7 // NE4
#define FSMC_RS_PIN PD11 // A0
#define LCD_RESET_PIN PF6
#define LCD_RESET_PIN PC6 // FSMC_RST
#define NO_LCD_REINIT // Suppress LCD re-initialization
#define LCD_BACKLIGHT_PIN PD13
#if ENABLED(TOUCH_BUTTONS)
#define TOUCH_CS_PIN PA7
#define TOUCH_CS_PIN PA7 // SPI2_NSS
#define TOUCH_SCK_PIN PB13 // SPI2_SCK
#define TOUCH_MISO_PIN PB14 // SPI2_MISO
#define TOUCH_MOSI_PIN PB15 // SPI2_MOSI
#endif
#endif

View file

@ -0,0 +1,274 @@
/**
* Marlin 3D Printer Firmware
* Copyright (c) 2019 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
#pragma once
/**
* MKS Robin pro (STM32F103ZET6) board pin assignments
*/
#ifndef __STM32F1__
#error "Oops! Select an STM32F1 board in 'Tools > Board.'"
#elif HOTENDS > 3 || E_STEPPERS > 3
#error "MKS Robin pro supports up to 3 hotends / E-steppers. Comment out this line to continue."
#endif
#define BOARD_INFO_NAME "MKS Robin pro"
//
// Release PB4 (Y_ENABLE_PIN) from JTAG NRST role
//
#define DISABLE_DEBUG
//
// Note: MKS Robin board is using SPI2 interface.
//
//#define SPI_MODULE 2
#define ENABLE_SPI2
//
// Servos
//
#define SERVO0_PIN PA8 // BLTOUCH
//
// Limit Switches
//
#define X_MIN_PIN PA15
#define X_MAX_PIN PG7
#define Y_MIN_PIN PA12
#define Y_MAX_PIN PG8
#define Z_MIN_PIN PA11
#define Z_MAX_PIN PC4
//
// Steppers
//
#define X_ENABLE_PIN PE4
#define X_STEP_PIN PE3
#define X_DIR_PIN PE2
#ifndef X_CS_PIN
#define X_CS_PIN PF8
#endif
#define Y_ENABLE_PIN PE1
#define Y_STEP_PIN PE0
#define Y_DIR_PIN PB9
#ifndef Y_CS_PIN
#define Y_CS_PIN PF3
#endif
#define Z_ENABLE_PIN PB8
#define Z_STEP_PIN PB5
#define Z_DIR_PIN PB4
#ifndef Z_CS_PIN
#define Z_CS_PIN PF6
#endif
#define E0_ENABLE_PIN PB3
#define E0_STEP_PIN PD6
#define E0_DIR_PIN PD3
#ifndef E0_CS_PIN
#define E0_CS_PIN PG15
#endif
#define E1_ENABLE_PIN PA3
#define E1_STEP_PIN PA6
#define E1_DIR_PIN PA1
#ifndef E1_CS_PIN
#define E1_CS_PIN PG10
#endif
#define E2_ENABLE_PIN PF0
#define E2_STEP_PIN PF2
#define E2_DIR_PIN PF1
#ifndef E2_CS_PIN
#define E2_CS_PIN PG9
#endif
//
// Software SPI pins for TMC2130 stepper drivers
//
#if ENABLED(TMC_USE_SW_SPI)
#ifndef TMC_SW_MOSI
#define TMC_SW_MOSI PB15
#endif
#ifndef TMC_SW_MISO
#define TMC_SW_MISO PB14
#endif
#ifndef TMC_SW_SCK
#define TMC_SW_SCK PB13
#endif
#endif
#if HAS_TMC220x
/**
* TMC2208/TMC2209 stepper drivers
*
* Hardware serial communication ports.
* If undefined software serial is used according to the pins below
*/
//#define X_HARDWARE_SERIAL Serial
//#define X2_HARDWARE_SERIAL Serial1
//#define Y_HARDWARE_SERIAL Serial1
//#define Y2_HARDWARE_SERIAL Serial1
//#define Z_HARDWARE_SERIAL Serial1
//#define Z2_HARDWARE_SERIAL Serial1
//#define E0_HARDWARE_SERIAL Serial1
//#define E1_HARDWARE_SERIAL Serial1
//#define E2_HARDWARE_SERIAL Serial1
//#define E3_HARDWARE_SERIAL Serial1
//#define E4_HARDWARE_SERIAL Serial1
//
// Software serial
//
#define X_SERIAL_TX_PIN PF7
#define X_SERIAL_RX_PIN PF8
#define Y_SERIAL_TX_PIN PF4
#define Y_SERIAL_RX_PIN PF3
#define Z_SERIAL_TX_PIN PF5
#define Z_SERIAL_RX_PIN PF6
#define E0_SERIAL_TX_PIN PG13
#define E0_SERIAL_RX_PIN PG15
#define E1_SERIAL_TX_PIN PG12
#define E1_SERIAL_RX_PIN PG10
#define E2_SERIAL_TX_PIN PC13
#define E2_SERIAL_RX_PIN PG9
#endif
//
// Temperature Sensors
//
#define TEMP_0_PIN PC1 // TH1
#define TEMP_1_PIN PC2 // TH2
#define TEMP_2_PIN PC3 // TH3
#define TEMP_BED_PIN PC0 // TB1
//
// Heaters / Fans
//
#define HEATER_0_PIN PF10 // +HE0-
#define HEATER_1_PIN PB0 // +HE1-
#define HEATER_2_PIN PF9 // +HE2-
#define HEATER_BED_PIN PA0 // +HOT-BED-
#define FAN_PIN PB1 // +FAN-
/**
* Note: MKS Robin Pro board is using SPI2 interface. Make sure your stm32duino library is configured accordingly
*/
//#define MAX6675_SS_PIN PE5 // TC1 - CS1
//#define MAX6675_SS_PIN PF11 // TC2 - CS2
#define POWER_LOSS_PIN PA2 // PW_DET
#define PS_ON_PIN PG11 // PW_OFF
#define FIL_RUNOUT_PIN PA4 // MT_DET1
//#define FIL_RUNOUT_PIN PE6 // MT_DET2
//#define FIL_RUNOUT_PIN PG14 // MT_DET3
//
// SD Card
//
#ifndef SDCARD_CONNECTION
#define SDCARD_CONNECTION ONBOARD
#endif
#if SD_CONNECTION_IS(LCD)
#define ENABLE_SPI2
#define SD_DETECT_PIN PG3
#define SCK_PIN PB13
#define MISO_PIN PB14
#define MOSI_PIN PB15
#define SS_PIN PG6
#elif SD_CONNECTION_IS(ONBOARD)
#define SDIO_SUPPORT
#define SD_DETECT_PIN PD12
#elif SD_CONNECTION_IS(CUSTOM_CABLE)
#error "No custom SD drive cable defined for this board."
#endif
/**
* Note: MKS Robin TFT screens use various TFT controllers.
* If the screen stays white, disable 'LCD_RESET_PIN'
* to let the bootloader init the screen.
*/
#if ENABLED(FSMC_GRAPHICAL_TFT)
#define FSMC_CS_PIN PD7 // NE4
#define FSMC_RS_PIN PD11 // A0
#define LCD_RESET_PIN PF6
#define NO_LCD_REINIT // Suppress LCD re-initialization
#define LCD_BACKLIGHT_PIN PD13
#if ENABLED(TOUCH_BUTTONS)
#define TOUCH_CS_PIN PA7
#else
#define BEEPER_PIN PC5
#define BTN_ENC PG2
#define BTN_EN1 PG5
#define BTN_EN2 PG4
#endif
#elif HAS_SPI_LCD
#define BEEPER_PIN PC5
#define BTN_ENC PG2
#define LCD_PINS_ENABLE PG0
#define LCD_PINS_RS PG1
#define BTN_EN1 PG5
#define BTN_EN2 PG4
// MKS MINI12864 and MKS LCD12864B. If using MKS LCD12864A (Need to remove RPK2 resistor)
#if ENABLED(MKS_MINI_12864)
#define LCD_BACKLIGHT_PIN -1
#define LCD_RESET_PIN -1
#define DOGLCD_A0 PF12
#define DOGLCD_CS PF15
#define DOGLCD_SCK PB13
#define DOGLCD_MOSI PB15
#else // !MKS_MINI_12864
#define LCD_PINS_D4 PF14
#if ENABLED(ULTIPANEL)
#define LCD_PINS_D5 PF15
#define LCD_PINS_D6 PF12
#define LCD_PINS_D7 PF13
#endif
#endif // !MKS_MINI_12864
#endif
#ifndef ST7920_DELAY_1
#define ST7920_DELAY_1 DELAY_NS(125)
#endif
#ifndef ST7920_DELAY_2
#define ST7920_DELAY_2 DELAY_NS(125)
#endif
#ifndef ST7920_DELAY_3
#define ST7920_DELAY_3 DELAY_NS(125)
#endif

View file

@ -0,0 +1,14 @@
MEMORY
{
ram (rwx) : ORIGIN = 0x20000000, LENGTH = 48K - 40
rom (rx) : ORIGIN = 0x08005000, LENGTH = 256K - 20K
}
/* Provide memory region aliases for common.inc */
REGION_ALIAS("REGION_TEXT", rom);
REGION_ALIAS("REGION_DATA", ram);
REGION_ALIAS("REGION_BSS", ram);
REGION_ALIAS("REGION_RODATA", rom);
/* Let common.inc handle the real work. */
INCLUDE common.inc

View file

@ -0,0 +1,14 @@
MEMORY
{
ram (rwx) : ORIGIN = 0x20000000, LENGTH = 64K - 40
rom (rx) : ORIGIN = 0x08007000, LENGTH = 512K - 28K
}
/* Provide memory region aliases for common.inc */
REGION_ALIAS("REGION_TEXT", rom);
REGION_ALIAS("REGION_DATA", ram);
REGION_ALIAS("REGION_BSS", ram);
REGION_ALIAS("REGION_RODATA", rom);
/* Let common.inc handle the real work. */
INCLUDE common.inc

View file

@ -0,0 +1,40 @@
import os
Import("env")
# Relocate firmware from 0x08000000 to 0x08005000
for define in env['CPPDEFINES']:
if define[0] == "VECT_TAB_ADDR":
env['CPPDEFINES'].remove(define)
env['CPPDEFINES'].append(("VECT_TAB_ADDR", "0x08005000"))
custom_ld_script = os.path.abspath("buildroot/share/PlatformIO/ldscripts/mks_robin_lite.ld")
for i, flag in enumerate(env["LINKFLAGS"]):
if "-Wl,-T" in flag:
env["LINKFLAGS"][i] = "-Wl,-T" + custom_ld_script
elif flag == "-T":
env["LINKFLAGS"][i + 1] = custom_ld_script
# Encrypt ${PROGNAME}.bin and save it as 'mksLite.bin'
def encrypt(source, target, env):
import sys
key = [0xA3, 0xBD, 0xAD, 0x0D, 0x41, 0x11, 0xBB, 0x8D, 0xDC, 0x80, 0x2D, 0xD0, 0xD2, 0xC4, 0x9B, 0x1E, 0x26, 0xEB, 0xE3, 0x33, 0x4A, 0x15, 0xE4, 0x0A, 0xB3, 0xB1, 0x3C, 0x93, 0xBB, 0xAF, 0xF7, 0x3E]
firmware = open(target[0].path, "rb")
robin = open(target[0].dir.path +'/mksLite3.bin', "wb")
length = os.path.getsize(target[0].path)
position = 0
try:
while position < length:
byte = firmware.read(1)
if position >= 320 and position < 31040:
byte = chr(ord(byte) ^ key[position & 31])
if sys.version_info[0] > 2:
byte = bytes(byte, 'latin1')
robin.write(byte)
position += 1
finally:
firmware.close()
robin.close()
env.AddPostAction("$BUILD_DIR/${PROGNAME}.bin", encrypt);

View file

@ -0,0 +1,39 @@
import os
Import("env")
# Relocate firmware from 0x08000000 to 0x08007000
for define in env['CPPDEFINES']:
if define[0] == "VECT_TAB_ADDR":
env['CPPDEFINES'].remove(define)
env['CPPDEFINES'].append(("VECT_TAB_ADDR", "0x08007000"))
custom_ld_script = os.path.abspath("buildroot/share/PlatformIO/ldscripts/mks_robin_pro.ld")
for i, flag in enumerate(env["LINKFLAGS"]):
if "-Wl,-T" in flag:
env["LINKFLAGS"][i] = "-Wl,-T" + custom_ld_script
elif flag == "-T":
env["LINKFLAGS"][i + 1] = custom_ld_script
# Encrypt ${PROGNAME}.bin and save it as 'Robin.bin'
def encrypt(source, target, env):
import sys
key = [0xA3, 0xBD, 0xAD, 0x0D, 0x41, 0x11, 0xBB, 0x8D, 0xDC, 0x80, 0x2D, 0xD0, 0xD2, 0xC4, 0x9B, 0x1E, 0x26, 0xEB, 0xE3, 0x33, 0x4A, 0x15, 0xE4, 0x0A, 0xB3, 0xB1, 0x3C, 0x93, 0xBB, 0xAF, 0xF7, 0x3E]
firmware = open(target[0].path, "rb")
robin = open(target[0].dir.path +'/Robin_pro.bin', "wb")
length = os.path.getsize(target[0].path)
position = 0
try:
while position < length:
byte = firmware.read(1)
if position >= 320 and position < 31040:
byte = chr(ord(byte) ^ key[position & 31])
if sys.version_info[0] > 2:
byte = bytes(byte, 'latin1')
robin.write(byte)
position += 1
finally:
firmware.close()
robin.close()
env.AddPostAction("$BUILD_DIR/${PROGNAME}.bin", encrypt);

View file

@ -246,11 +246,11 @@ extern "C" {
// Timer Definitions
//Do not use timer used by PWM pins when possible. See PinMap_PWM in PeripheralPins.c
#define TIMER_TONE TIM6
#define TIMER_TONE TIM2
#define TIMER_SERIAL TIM7
// Do not use basic timer: OC is required
#define TIMER_SERVO TIM2 //TODO: advanced-control timers don't work
#define TIMER_SERVO TIM6 //TODO: advanced-control timers don't work
// UART Definitions
// Define here Serial instance number to map on Serial generic name

View file

@ -17,5 +17,20 @@ opt_set Z_DRIVER_TYPE TMC2130
opt_set E0_DRIVER_TYPE TMC2130
exec_test $1 $2 "Default Configuration"
#
# Full size Rambo Dual Endstop CNC
#
opt_set MOTHERBOARD BOARD_RAMBO
opt_set EXTRUDERS 0
opt_set TEMP_SENSOR_0 999
opt_set DUMMY_THERMISTOR_999_VALUE 170
opt_set DIGIPOT_MOTOR_CURRENT '{ 120, 120, 120, 120, 120 }'
opt_enable USE_XMAX_PLUG USE_YMAX_PLUG USE_ZMAX_PLUG \
REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER REVERSE_ENCODER_DIRECTION SDSUPPORT EEPROM_SETTINGS \
S_CURVE_ACCELERATION X_DUAL_STEPPER_DRIVERS X_DUAL_ENDSTOPS Y_DUAL_STEPPER_DRIVERS Y_DUAL_ENDSTOPS \
ADAPTIVE_STEP_SMOOTHING CNC_COORDINATE_SYSTEMS GCODE_MOTION_MODES
opt_disable MIN_SOFTWARE_ENDSTOP_Z MAX_SOFTWARE_ENDSTOPS
exec_test $1 $2 "Rambo CNC Configuration"
# clean up
restore_configs

View file

@ -1624,7 +1624,7 @@
*
* Use CRC checks and retries on the SD communication.
*/
#define SD_CHECK_AND_RETRY
//#define SD_CHECK_AND_RETRY
/**
* LCD Menu Items

View file

@ -1624,7 +1624,7 @@
*
* Use CRC checks and retries on the SD communication.
*/
#define SD_CHECK_AND_RETRY
//#define SD_CHECK_AND_RETRY
/**
* LCD Menu Items

View file

@ -1010,12 +1010,12 @@
// @section extruder
// For direct drive extruder v9 set to true, for geared extruder set to false.
#define INVERT_E0_DIR false
#define INVERT_E1_DIR false
#define INVERT_E2_DIR false
#define INVERT_E3_DIR false
#define INVERT_E4_DIR false
#define INVERT_E5_DIR false
#define INVERT_E0_DIR true
#define INVERT_E1_DIR false // unused, the A10 only has one extruder by default
#define INVERT_E2_DIR false // unused, the A10 only has one extruder by default
#define INVERT_E3_DIR false // unused, the A10 only has one extruder by default
#define INVERT_E4_DIR false // unused, the A10 only has one extruder by default
#define INVERT_E5_DIR false // unused, the A10 only has one extruder by default
// @section homing

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,5 @@
1. MKS Robin Lite3 is a powerful 32-bit 3D printer control board with STM32F103RCT6.
2. Support Marlin2.0.
3. Support MKS LCD12864B/MINI12864/LCD2004/12864 and MKS TFT Touch Screens.
4. The main board integrates 5 AXIS interface, BLTOUCH interface, hot bed, 2 heating heads, 3 NTC100K and LCD screen SD card supports firmware update.
https://www.aliexpress.com/item/4000295949948.html?spm=2114.12010615.8148356.1.596183361yB18D

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,4 @@
1. MKS Robin Pro is a powerful 32-bit 3D printer control board with STM32F103ZET6.
2. Support Marlin2.0. Support LCD2004/12864 and MKS Robin TFT24/28/32... Screens.
3. The motherboard integrates 6 AXIS interface, BLTOUCH interface, hot bed, 3 heating heads, 4 NTC100K, 2 MAX31855, integrates SPI / UART interface and works with MKS TMC2130/TMC2208 V2.0/TMC
https://www.aliexpress.com/item/4000444286159.html?spm=2114.12010615.8148356.1.4158721an5TnW9

View file

@ -290,9 +290,9 @@ monitor_speed = 250000
# BigTree SKR Mini V1.1 / SKR mini E3 / SKR E3 DIP (STM32F103RCT6 ARM Cortex-M3)
#
# STM32F103RC_bigtree ............. RCT6 with 256K
# STM32F103RC_bigtree_USB ......... RCT6 with 256K (USB)
# STM32F103RC_bigtree_USB ......... RCT6 with 256K (USB mass storage)
# STM32F103RC_bigtree_512K ........ RCT6 with 512K
# STM32F103RC_bigtree_512K_USB .... RCT6 with 512K (USB)
# STM32F103RC_bigtree_512K_USB .... RCT6 with 512K (USB mass storage)
#
[env:STM32F103RC_bigtree]
@ -371,7 +371,7 @@ monitor_speed = 115200
#
# STM32F103RE_bigtree ............. RET6
# STM32F103RE_bigtree_USB ......... RET6 (USB)
# STM32F103RE_bigtree_USB ......... RET6 (USB mass storage)
#
[env:STM32F103RE_bigtree]
platform = ststm32
@ -470,6 +470,21 @@ src_filter = ${common.default_src_filter} +<src/HAL/HAL_STM32F1>
lib_ignore = Adafruit NeoPixel, SPI
monitor_speed = 250000
#
# MKS Robin Pro (STM32F103ZET6)
#
[env:mks_robin_pro]
platform = ststm32
board = genericSTM32F103ZE
extra_scripts = buildroot/share/PlatformIO/scripts/mks_robin_pro.py
build_flags = !python Marlin/src/HAL/HAL_STM32F1/build_flags.py
${common.build_flags} -std=gnu++14 -DSTM32_XL_DENSITY
build_unflags = -std=gnu++11
src_filter = ${common.default_src_filter} +<src/HAL/HAL_STM32F1>
lib_deps = ${common.lib_deps}
lib_ignore = Adafruit NeoPixel, SPI, TMCStepper
#
# MKS Robin Lite/Lite2 (STM32F103RCT6)
#
@ -484,6 +499,21 @@ src_filter = ${common.default_src_filter} +<src/HAL/HAL_STM32F1>
lib_ignore = Adafruit NeoPixel, SPI
monitor_speed = 250000
#
# MKS ROBIN LITE3 (STM32F103RCT6)
#
[env:mks_robin_lite3]
platform = ststm32
board = genericSTM32F103RC
extra_scripts = buildroot/share/PlatformIO/scripts/mks_robin_lite3.py
build_flags = !python Marlin/src/HAL/HAL_STM32F1/build_flags.py
${common.build_flags} -std=gnu++14
build_unflags = -std=gnu++11
src_filter = ${common.default_src_filter} +<src/HAL/HAL_STM32F1>
lib_deps = ${common.lib_deps}
lib_ignore = Adafruit NeoPixel, SPI
#
# MKS Robin Mini (STM32F103VET6)
#