Version 2.2.3 live Language setting, Language reset when holding knob during startup, revision names redesigned, minor tweeks and cleanup

This commit is contained in:
prusa3d-bb 2016-02-19 17:54:24 +01:00
parent a0e8a18004
commit 9c2dc0bb42
49 changed files with 44413 additions and 82830 deletions

2
Configuration.h Executable file → Normal file
View file

@ -5,7 +5,7 @@
#include "Configuration_prusa.h"
// Firmware version
#define FW_version "2.2.3b"
#define FW_version "2.2.3"

View file

@ -119,91 +119,16 @@
},
"buffers":
[
{
"file": "Firmware.ino",
"settings":
{
"buffer_size": 1877,
"line_ending": "Unix"
}
},
{
"file": "Configuration.h",
"settings":
{
"buffer_size": 31837,
"line_ending": "Unix"
}
},
{
"file": "Configuration_prusa.h",
"settings":
{
"buffer_size": 6362,
"line_ending": "Unix"
}
},
{
"file": "Marlin_main.cpp",
"settings":
{
"buffer_size": 167814,
"line_ending": "Unix"
}
},
{
"file": "ultralcd.cpp",
"settings":
{
"buffer_size": 46240,
"line_ending": "Unix"
}
},
{
"file": "variants/300-1a-cz.h",
"settings":
{
"buffer_size": 6389,
"line_ending": "Unix"
}
},
{
"file": "variants/300-1a-en.h",
"settings":
{
"buffer_size": 6389,
"line_ending": "Unix"
}
},
{
"file": "variants/300-2a-cz.h",
"settings":
{
"buffer_size": 6389,
"line_ending": "Unix"
}
},
{
"file": "variants/300-2a-en.h",
"settings":
{
"buffer_size": 6388,
"line_ending": "Unix"
}
},
{
"file": "pins.h",
"settings":
{
"buffer_size": 10841,
"line_ending": "Unix"
}
}
],
"build_system": "Packages/C++/C++.sublime-build",
"build_system_choices":
[
],
"build_varint": "",
"command_palette":
{
"height": 367.0,
"last_filter": "",
"selected_items":
[
[
@ -215,7 +140,11 @@
},
"console":
{
"height": 174.0
"height": 174.0,
"history":
[
"import urllib.request,os,hashlib; h = '2915d1851351e5ee549c20394736b442' + '8bc59f460fa1548d1514676163dafc88'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); by = urllib.request.urlopen( 'http://packagecontrol.io/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); print('Error validating download (got %s instead of %s), please try manual install' % (dh, h)) if dh != h else open(os.path.join( ipp, pf), 'wb' ).write(by)"
]
},
"distraction_free":
{
@ -226,8 +155,31 @@
"side_bar_visible": false,
"status_bar_visible": false
},
"expanded_folders":
[
"/Users/prusam/Documents/Firmware"
],
"file_history":
[
"/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware.old/language_all.h",
"/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware.old/language_all.cpp",
"/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware/Marlin.h",
"/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware/pins.h",
"/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware/language.h",
"/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware/language_cz.h",
"/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware/ultralcd.cpp",
"/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware/Marlin_main.cpp",
"/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware/Configuration.h",
"/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware/Firmware.ino",
"/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware/langtool.php",
"/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware/language_all.h",
"/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware/language_all.cpp",
"/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware/langflash.cpp",
"/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware/variants/300-2a-en.h",
"/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware/variants/300-2a-cz.h",
"/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware/variants/300-1a-en.h",
"/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware/Configuration_prusa.h",
"/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware/variants/300-1a-cz.h",
"/Volumes/Production/Firmware/fvrun/Marlin1-0-3_RamboMini1-3_EN/boards.h",
"/Volumes/Production/Firmware/fvrun/Marlin1-0-3_RamboMini1-3_EN/language_cz.h",
"/Users/prusam/Library/Caches/Cleanup At Startup/Transmit/9DB93710-9561-46CC-AD89-F118A176707C/library.properties",
@ -285,13 +237,16 @@
],
"find":
{
"height": 38.0
"height": 35.0
},
"find_in_files":
{
"height": 0.0,
"height": 93.0,
"where_history":
[
"/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware",
"/Users/prusam/Documents/Firmware/*",
"/Users/prusam/Documents/Firmware",
""
]
},
@ -300,6 +255,21 @@
"case_sensitive": false,
"find_history":
[
"MESSAGEPG",
"SD_INS",
"CARD_R",
"PSTR",
"MENU_ITEM",
"LANGUAGE_INCLUDE",
"GENERATE_LANGUAGE_INCLUDE",
"LCD_MESSAGEPGM",
"PROGMEM",
" PROGMEM",
"MSG_SD_INSERTED",
"LCD_MESSAGEPGM",
"WELCOME_MSG",
"msg",
"MSG",
"FAN",
"tune",
"PRUSA",
@ -412,22 +382,7 @@
"Heig",
"round",
"M600",
"alert",
"M600",
"G1 Z6",
"M600",
"G1 Z",
"M600",
" Z",
"Z",
"M600",
"G1 Z",
"G1 Z16",
"M600",
"chan",
"addElement",
"function roundNumber",
"round"
"alert"
],
"highlight": true,
"in_selection": false,
@ -448,289 +403,8 @@
"groups":
[
{
"selected": 5,
"sheets":
[
{
"buffer": 0,
"file": "Firmware.ino",
"settings":
{
"buffer_size": 1877,
"regions":
{
},
"selection":
[
[
0,
0
]
],
"settings":
{
"syntax": "Packages/User/Stino/Arduino.tmLanguage",
"tab_size": 2,
"translate_tabs_to_spaces": true
},
"translation.x": 0.0,
"translation.y": 0.0,
"zoom_level": 1.0
},
"type": "text"
},
{
"buffer": 1,
"file": "Configuration.h",
"settings":
{
"buffer_size": 31837,
"regions":
{
},
"selection":
[
[
131,
141
]
],
"settings":
{
"syntax": "Packages/C++/C++.tmLanguage",
"tab_size": 2,
"translate_tabs_to_spaces": true
},
"translation.x": 0.0,
"translation.y": 0.0,
"zoom_level": 1.0
},
"type": "text"
},
{
"buffer": 2,
"file": "Configuration_prusa.h",
"settings":
{
"buffer_size": 6362,
"regions":
{
},
"selection":
[
[
0,
0
]
],
"settings":
{
"syntax": "Packages/C++/C++.tmLanguage",
"tab_size": 4,
"translate_tabs_to_spaces": true
},
"translation.x": 0.0,
"translation.y": 0.0,
"zoom_level": 1.0
},
"type": "text"
},
{
"buffer": 3,
"file": "Marlin_main.cpp",
"settings":
{
"buffer_size": 167814,
"regions":
{
},
"selection":
[
[
129463,
129463
]
],
"settings":
{
"syntax": "Packages/C++/C++.tmLanguage",
"tab_size": 2,
"translate_tabs_to_spaces": true
},
"translation.x": 0.0,
"translation.y": 83792.0,
"zoom_level": 1.0
},
"type": "text"
},
{
"buffer": 4,
"file": "ultralcd.cpp",
"settings":
{
"buffer_size": 46240,
"regions":
{
},
"selection":
[
[
16028,
16028
]
],
"settings":
{
"syntax": "Packages/C++/C++.tmLanguage",
"tab_size": 4,
"translate_tabs_to_spaces": true
},
"translation.x": 0.0,
"translation.y": 0.0,
"zoom_level": 1.0
},
"type": "text"
},
{
"buffer": 5,
"file": "variants/300-1a-cz.h",
"settings":
{
"buffer_size": 6389,
"regions":
{
},
"selection":
[
[
231,
231
]
],
"settings":
{
"syntax": "Packages/C++/C++.tmLanguage",
"tab_size": 4,
"translate_tabs_to_spaces": true
},
"translation.x": 0.0,
"translation.y": 0.0,
"zoom_level": 1.0
},
"type": "text"
},
{
"buffer": 6,
"file": "variants/300-1a-en.h",
"settings":
{
"buffer_size": 6389,
"regions":
{
},
"selection":
[
[
231,
231
]
],
"settings":
{
"syntax": "Packages/C++/C++.tmLanguage",
"tab_size": 4,
"translate_tabs_to_spaces": true
},
"translation.x": 0.0,
"translation.y": 0.0,
"zoom_level": 1.0
},
"type": "text"
},
{
"buffer": 7,
"file": "variants/300-2a-cz.h",
"settings":
{
"buffer_size": 6389,
"regions":
{
},
"selection":
[
[
231,
231
]
],
"settings":
{
"syntax": "Packages/C++/C++.tmLanguage",
"tab_size": 4,
"translate_tabs_to_spaces": true
},
"translation.x": 0.0,
"translation.y": 0.0,
"zoom_level": 1.0
},
"type": "text"
},
{
"buffer": 8,
"file": "variants/300-2a-en.h",
"settings":
{
"buffer_size": 6388,
"regions":
{
},
"selection":
[
[
231,
231
]
],
"settings":
{
"syntax": "Packages/C++/C++.tmLanguage",
"tab_size": 4,
"translate_tabs_to_spaces": true
},
"translation.x": 0.0,
"translation.y": 0.0,
"zoom_level": 1.0
},
"type": "text"
},
{
"buffer": 9,
"file": "pins.h",
"settings":
{
"buffer_size": 10841,
"regions":
{
},
"selection":
[
[
7690,
7690
]
],
"settings":
{
"syntax": "Packages/C++/C++.tmLanguage",
"tab_size": 2,
"translate_tabs_to_spaces": true
},
"translation.x": 0.0,
"translation.y": 5792.0,
"zoom_level": 1.0
},
"type": "text"
}
]
}
],
@ -769,6 +443,230 @@
{
"height": 0.0
},
"output.build|/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware|1454501927.050906":
{
"height": 100.0
},
"output.build|/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware|1454502159.909254":
{
"height": 100.0
},
"output.build|/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware|1454594612.847963":
{
"height": 100.0
},
"output.build|/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware|1454594654.626412":
{
"height": 100.0
},
"output.build|/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware|1454594744.458258":
{
"height": 100.0
},
"output.build|/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware|1454594772.710838":
{
"height": 100.0
},
"output.build|/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware|1454594823.707428":
{
"height": 221.0
},
"output.build|/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware|1454594856.068521":
{
"height": 100.0
},
"output.build|/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware|1454594915.498809":
{
"height": 100.0
},
"output.build|/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware|1454594942.54873":
{
"height": 100.0
},
"output.build|/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware|1454595063.385966":
{
"height": 100.0
},
"output.build|/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware|1454595090.780118":
{
"height": 100.0
},
"output.build|/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware|1454595247.811671":
{
"height": 100.0
},
"output.build|/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware|1454595266.196437":
{
"height": 100.0
},
"output.build|/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware|1454595297.646923":
{
"height": 100.0
},
"output.build|/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware|1454595333.420665":
{
"height": 100.0
},
"output.build|/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware|1454595357.726906":
{
"height": 100.0
},
"output.build|/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware|1454595373.232416":
{
"height": 100.0
},
"output.build|/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware|1454595390.153945":
{
"height": 100.0
},
"output.build|/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware|1454595405.345637":
{
"height": 100.0
},
"output.build|/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware|1454595456.020675":
{
"height": 100.0
},
"output.build|/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware|1454595469.617035":
{
"height": 100.0
},
"output.build|/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware|1454595514.098043":
{
"height": 100.0
},
"output.build|/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware|1454595545.959903":
{
"height": 100.0
},
"output.build|/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware|1454595561.50064":
{
"height": 100.0
},
"output.build|/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware|1454595589.043196":
{
"height": 100.0
},
"output.build|/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware|1454595613.859749":
{
"height": 100.0
},
"output.build|/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware|1454595629.306247":
{
"height": 100.0
},
"output.build|/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware|1454595701.767134":
{
"height": 100.0
},
"output.build|/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware|1454595742.267242":
{
"height": 100.0
},
"output.build|/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware|1454596935.037274":
{
"height": 100.0
},
"output.build|/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware|1454596978.034418":
{
"height": 100.0
},
"output.build|/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware|1454597037.160686":
{
"height": 100.0
},
"output.build|/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware|1454597043.046399":
{
"height": 100.0
},
"output.build|/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware|1454597057.688696":
{
"height": 100.0
},
"output.build|/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware|1454597116.866266":
{
"height": 100.0
},
"output.build|/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware|1454597180.29106":
{
"height": 100.0
},
"output.build|/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware|1454597194.459602":
{
"height": 100.0
},
"output.build|/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware|1454597242.000331":
{
"height": 100.0
},
"output.build|/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware|1454597263.577497":
{
"height": 100.0
},
"output.build|/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware|1454597287.457838":
{
"height": 100.0
},
"output.build|/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware|1454597332.419943":
{
"height": 100.0
},
"output.build|/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware|1454597345.118943":
{
"height": 100.0
},
"output.build|/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware|1454597357.590899":
{
"height": 100.0
},
"output.build|/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware|1454597518.474991":
{
"height": 100.0
},
"output.build|/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware|1454597772.107424":
{
"height": 100.0
},
"output.build|/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware|1454597805.772709":
{
"height": 100.0
},
"output.build|/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware|1454664605.262775":
{
"height": 100.0
},
"output.build|/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware|1454664760.508266":
{
"height": 100.0
},
"output.build|/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware|1454664863.717464":
{
"height": 100.0
},
"output.build|/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware|1454664891.123219":
{
"height": 100.0
},
"output.build|/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware|1454664915.144783":
{
"height": 100.0
},
"output.build|/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware|1454665285.810392":
{
"height": 100.0
},
"output.build|/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware|1454669438.455389":
{
"height": 100.0
},
"output.build|/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware|1454669498.95813":
{
"height": 100.0
},
"output.build|/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware|1454676431.393399":
{
"height": 100.0
},
"output.build|/Users/prusam/Documents/FW cleanup/Marlin1-0-3_RamboMini1-3_EN|1449489469.39":
{
"height": 142.0
@ -801,6 +699,22 @@
{
"height": 142.0
},
"output.find_results":
{
"height": 0.0
},
"output.upload|/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware|1454669687.583954":
{
"height": 100.0
},
"output.upload|/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware|1454669734.803268":
{
"height": 100.0
},
"output.upload|/Users/adent/Desktop/git/Prusa-i3-Plus/Firmware|1454669765.594459":
{
"height": 100.0
},
"output.upload|/Volumes/MichalData/Epic Byt/WindowClient/WindowClient|1449273233.47":
{
"height": 142.0
@ -825,6 +739,8 @@
{
"height": 142.0
},
"pinned_build_system": "",
"project": "Firmware.sublime-project",
"replace":
{
"height": 70.0
@ -833,6 +749,7 @@
"select_file":
{
"height": 0.0,
"last_filter": "",
"selected_items":
[
],
@ -841,15 +758,32 @@
"select_project":
{
"height": 0.0,
"last_filter": "",
"selected_items":
[
],
"width": 0.0
},
"select_symbol":
{
"height": 0.0,
"last_filter": "",
"selected_items":
[
],
"width": 0.0
},
"selected_group": 0,
"settings":
{
},
"show_minimap": true,
"show_open_files": true,
"show_tabs": true,
"side_bar_visible": true,
"side_bar_width": 304.0,
"status_bar_visible": true
"status_bar_visible": true,
"template_settings":
{
}
}

6
Marlin.h Executable file → Normal file
View file

@ -65,8 +65,10 @@
#define SERIAL_PROTOCOL(x) (MYSERIAL.print(x))
#define SERIAL_PROTOCOL_F(x,y) (MYSERIAL.print(x,y))
#define SERIAL_PROTOCOLPGM(x) (serialprintPGM(PSTR(x)))
#define SERIAL_PROTOCOLRPGM(x) (serialprintPGM((x)))
#define SERIAL_PROTOCOLLN(x) (MYSERIAL.print(x),MYSERIAL.write('\n'))
#define SERIAL_PROTOCOLLNPGM(x) (serialprintPGM(PSTR(x)),MYSERIAL.write('\n'))
#define SERIAL_PROTOCOLLNRPGM(x) (serialprintPGM((x)),MYSERIAL.write('\n'))
extern const char errormagic[] PROGMEM;
@ -75,14 +77,18 @@ extern const char echomagic[] PROGMEM;
#define SERIAL_ERROR_START (serialprintPGM(errormagic))
#define SERIAL_ERROR(x) SERIAL_PROTOCOL(x)
#define SERIAL_ERRORPGM(x) SERIAL_PROTOCOLPGM(x)
#define SERIAL_ERRORRPGM(x) SERIAL_PROTOCOLRPGM(x)
#define SERIAL_ERRORLN(x) SERIAL_PROTOCOLLN(x)
#define SERIAL_ERRORLNPGM(x) SERIAL_PROTOCOLLNPGM(x)
#define SERIAL_ERRORLNRPGM(x) SERIAL_PROTOCOLLNRPGM(x)
#define SERIAL_ECHO_START (serialprintPGM(echomagic))
#define SERIAL_ECHO(x) SERIAL_PROTOCOL(x)
#define SERIAL_ECHOPGM(x) SERIAL_PROTOCOLPGM(x)
#define SERIAL_ECHORPGM(x) SERIAL_PROTOCOLRPGM(x)
#define SERIAL_ECHOLN(x) SERIAL_PROTOCOLLN(x)
#define SERIAL_ECHOLNPGM(x) SERIAL_PROTOCOLLNPGM(x)
#define SERIAL_ECHOLNRPGM(x) SERIAL_PROTOCOLLNRPGM(x)
#define SERIAL_ECHOPAIR(name,value) (serial_echopair_P(PSTR(name),(value)))

183
Marlin_main.cpp Executable file → Normal file
View file

@ -190,6 +190,7 @@
// M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily).
// 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)
// M509 - force language selection on next restart
// M540 - Use S[0|1] to enable or disable the stop SD card print on endstop hit (requires ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED)
// M600 - Pause for filament change X[pos] Y[pos] Z[relative lift] E[initial retract] L[later retract distance for removal]
// M665 - set delta configurations
@ -252,6 +253,7 @@ int extruder_multiply[EXTRUDERS] = {100
int lcd_change_fil_state = 0;
int feedmultiplyBckp = 100;
unsigned char lang_selected = 0;
bool volumetric_enabled = false;
float filament_size[EXTRUDERS] = { DEFAULT_NOMINAL_FILAMENT_DIA
@ -487,7 +489,7 @@ void enquecommand(const char *cmd)
//this is dangerous if a mixing of serial and this happens
strcpy(&(cmdbuffer[bufindw][0]),cmd);
SERIAL_ECHO_START;
SERIAL_ECHOPGM(MSG_Enqueing);
SERIAL_ECHORPGM(MSG_Enqueing);
SERIAL_ECHO(cmdbuffer[bufindw]);
SERIAL_ECHOLNPGM("\"");
bufindw= (bufindw + 1)%BUFSIZE;
@ -502,7 +504,7 @@ void enquecommand_P(const char *cmd)
//this is dangerous if a mixing of serial and this happens
strcpy_P(&(cmdbuffer[bufindw][0]),cmd);
SERIAL_ECHO_START;
SERIAL_ECHOPGM(MSG_Enqueing);
SERIAL_ECHORPGM(MSG_Enqueing);
SERIAL_ECHO(cmdbuffer[bufindw]);
SERIAL_ECHOLNPGM("\"");
bufindw= (bufindw + 1)%BUFSIZE;
@ -594,7 +596,7 @@ void servo_init()
#endif
}
static void lcd_language_menu();
void setup()
{
setup_killpin();
@ -605,30 +607,30 @@ void setup()
// Check startup - does nothing if bootloader sets MCUSR to 0
byte mcu = MCUSR;
if(mcu & 1) SERIAL_ECHOLNPGM(MSG_POWERUP);
if(mcu & 2) SERIAL_ECHOLNPGM(MSG_EXTERNAL_RESET);
if(mcu & 4) SERIAL_ECHOLNPGM(MSG_BROWNOUT_RESET);
if(mcu & 8) SERIAL_ECHOLNPGM(MSG_WATCHDOG_RESET);
if(mcu & 32) SERIAL_ECHOLNPGM(MSG_SOFTWARE_RESET);
if(mcu & 1) SERIAL_ECHOLNRPGM(MSG_POWERUP);
if(mcu & 2) SERIAL_ECHOLNRPGM(MSG_EXTERNAL_RESET);
if(mcu & 4) SERIAL_ECHOLNRPGM(MSG_BROWNOUT_RESET);
if(mcu & 8) SERIAL_ECHOLNRPGM(MSG_WATCHDOG_RESET);
if(mcu & 32) SERIAL_ECHOLNRPGM(MSG_SOFTWARE_RESET);
MCUSR=0;
SERIAL_ECHOPGM(MSG_MARLIN);
SERIAL_ECHOLNPGM(VERSION_STRING);
SERIAL_ECHORPGM(MSG_MARLIN);
SERIAL_ECHOLNRPGM(VERSION_STRING);
#ifdef STRING_VERSION_CONFIG_H
#ifdef STRING_CONFIG_H_AUTHOR
SERIAL_ECHO_START;
SERIAL_ECHOPGM(MSG_CONFIGURATION_VER);
SERIAL_ECHORPGM(MSG_CONFIGURATION_VER);
SERIAL_ECHOPGM(STRING_VERSION_CONFIG_H);
SERIAL_ECHOPGM(MSG_AUTHOR);
SERIAL_ECHORPGM(MSG_AUTHOR);
SERIAL_ECHOLNPGM(STRING_CONFIG_H_AUTHOR);
SERIAL_ECHOPGM("Compiled: ");
SERIAL_ECHOLNPGM(__DATE__);
#endif
#endif
SERIAL_ECHO_START;
SERIAL_ECHOPGM(MSG_FREE_MEMORY);
SERIAL_ECHORPGM(MSG_FREE_MEMORY);
SERIAL_ECHO(freeMemory());
SERIAL_ECHOPGM(MSG_PLANNER_BUFFER_BYTES);
SERIAL_ECHORPGM(MSG_PLANNER_BUFFER_BYTES);
SERIAL_ECHOLN((int)sizeof(block_t)*BLOCK_BUFFER_SIZE);
for(int8_t i = 0; i < BUFSIZE; i++)
{
@ -647,7 +649,23 @@ void setup()
lcd_init();
_delay_ms(1000); // wait 1sec to display the splash screen
if(!READ(BTN_ENC) ){
_delay_ms(1000);
if(!READ(BTN_ENC) ){
SET_OUTPUT(BEEPER);
WRITE(BEEPER,HIGH);
lcd_force_language_selection();
while(!READ(BTN_ENC));
WRITE(BEEPER,LOW);
}
}else{
_delay_ms(1000); // wait 1sec to display the splash screen
}
#if defined(CONTROLLERFAN_PIN) && CONTROLLERFAN_PIN > -1
SET_OUTPUT(CONTROLLERFAN_PIN); //Set pin used for driver cooling fan
@ -663,9 +681,11 @@ void setup()
setup_homepin();
}
//unsigned char first_run_ever=1;
//void first_time_menu();
void loop()
{
if(buflen < (BUFSIZE-1))
get_command();
#ifdef SDSUPPORT
@ -685,13 +705,13 @@ void loop()
}
else
{
SERIAL_PROTOCOLLNPGM(MSG_OK);
SERIAL_PROTOCOLLNRPGM(MSG_OK);
}
}
else
{
card.closefile();
SERIAL_PROTOCOLLNPGM(MSG_FILE_SAVED);
SERIAL_PROTOCOLLNRPGM(MSG_FILE_SAVED);
}
}
else
@ -734,7 +754,7 @@ void get_command()
gcode_N = (strtol(&cmdbuffer[bufindw][strchr_pointer - cmdbuffer[bufindw] + 1], NULL, 10));
if(gcode_N != gcode_LastN+1 && (strstr_P(cmdbuffer[bufindw], PSTR("M110")) == NULL) ) {
SERIAL_ERROR_START;
SERIAL_ERRORPGM(MSG_ERR_LINE_NO);
SERIAL_ERRORRPGM(MSG_ERR_LINE_NO);
SERIAL_ERRORLN(gcode_LastN);
//Serial.println(gcode_N);
FlushSerialRequestResend();
@ -751,7 +771,7 @@ void get_command()
if( (int)(strtod(&cmdbuffer[bufindw][strchr_pointer - cmdbuffer[bufindw] + 1], NULL)) != checksum) {
SERIAL_ERROR_START;
SERIAL_ERRORPGM(MSG_ERR_CHECKSUM_MISMATCH);
SERIAL_ERRORRPGM(MSG_ERR_CHECKSUM_MISMATCH);
SERIAL_ERRORLN(gcode_LastN);
FlushSerialRequestResend();
serial_count = 0;
@ -762,7 +782,7 @@ void get_command()
else
{
SERIAL_ERROR_START;
SERIAL_ERRORPGM(MSG_ERR_NO_CHECKSUM);
SERIAL_ERRORRPGM(MSG_ERR_NO_CHECKSUM);
SERIAL_ERRORLN(gcode_LastN);
FlushSerialRequestResend();
serial_count = 0;
@ -777,7 +797,7 @@ void get_command()
if((strchr(cmdbuffer[bufindw], '*') != NULL))
{
SERIAL_ERROR_START;
SERIAL_ERRORPGM(MSG_ERR_NO_LINENUMBER_WITH_CHECKSUM);
SERIAL_ERRORRPGM(MSG_ERR_NO_LINENUMBER_WITH_CHECKSUM);
SERIAL_ERRORLN(gcode_LastN);
serial_count = 0;
return;
@ -791,8 +811,8 @@ void get_command()
case 2:
case 3:
if (Stopped == true) {
SERIAL_ERRORLNPGM(MSG_ERR_STOPPED);
LCD_MESSAGEPGM(MSG_STOPPED);
SERIAL_ERRORLNRPGM(MSG_ERR_STOPPED);
LCD_MESSAGERPGM(MSG_STOPPED);
}
break;
default:
@ -838,7 +858,7 @@ void get_command()
serial_count >= (MAX_CMD_SIZE - 1)||n==-1)
{
if(card.eof()){
SERIAL_PROTOCOLLNPGM(MSG_FILE_PRINTED);
SERIAL_PROTOCOLLNRPGM(MSG_FILE_PRINTED);
stoptime=millis();
char time[30];
unsigned long t=(stoptime-starttime)/1000;
@ -1205,7 +1225,7 @@ static float probe_pt(float x, float y, float z_before) {
retract_z_probe();
#endif // Z_PROBE_SLED
SERIAL_PROTOCOLPGM(MSG_BED);
SERIAL_PROTOCOLRPGM(MSG_BED);
SERIAL_PROTOCOLPGM(" x: ");
SERIAL_PROTOCOL(x);
SERIAL_PROTOCOLPGM(" y: ");
@ -1370,9 +1390,9 @@ static void dock_sled(bool dock, int offset=0) {
int z_loc;
if (!((axis_known_position[X_AXIS]) && (axis_known_position[Y_AXIS]))) {
LCD_MESSAGEPGM(MSG_POSITION_UNKNOWN);
LCD_MESSAGERPGM(MSG_POSITION_UNKNOWN);
SERIAL_ECHO_START;
SERIAL_ECHOLNPGM(MSG_POSITION_UNKNOWN);
SERIAL_ECHOLNRPGM(MSG_POSITION_UNKNOWN);
return;
}
@ -1417,8 +1437,10 @@ void process_commands()
} else if(code_seen('Rev')){
SERIAL_PROTOCOLLN(REVISION);
SERIAL_PROTOCOLLN(FILAMENT_SIZE "-" ELECTRONICS "-" NOZZLE_TYPE );
} else if(code_seen('Lang')) {
lcd_force_language_selection();
}
}
@ -1639,7 +1661,7 @@ void process_commands()
break;
#endif
case 4: // G4 dwell
LCD_MESSAGEPGM(MSG_DWELL);
LCD_MESSAGERPGM(MSG_DWELL);
codenum = 0;
if(code_seen('P')) codenum = code_value(); // milliseconds to wait
if(code_seen('S')) codenum = code_value() * 1000; // seconds to wait
@ -1858,13 +1880,13 @@ void process_commands()
HOMEAXIS(Z);
} else if (!((axis_known_position[X_AXIS]) && (axis_known_position[Y_AXIS]))) {
LCD_MESSAGEPGM(MSG_POSITION_UNKNOWN);
LCD_MESSAGERPGM(MSG_POSITION_UNKNOWN);
SERIAL_ECHO_START;
SERIAL_ECHOLNPGM(MSG_POSITION_UNKNOWN);
SERIAL_ECHOLNRPGM(MSG_POSITION_UNKNOWN);
} else {
LCD_MESSAGEPGM(MSG_ZPROBE_OUT);
LCD_MESSAGERPGM(MSG_ZPROBE_OUT);
SERIAL_ECHO_START;
SERIAL_ECHOLNPGM(MSG_ZPROBE_OUT);
SERIAL_ECHOLNRPGM(MSG_ZPROBE_OUT);
}
}
#endif
@ -1924,9 +1946,9 @@ void process_commands()
// Prevent user from running a G29 without first homing in X and Y
if (! (axis_known_position[X_AXIS] && axis_known_position[Y_AXIS]) )
{
LCD_MESSAGEPGM(MSG_POSITION_UNKNOWN);
LCD_MESSAGERPGM(MSG_POSITION_UNKNOWN);
SERIAL_ECHO_START;
SERIAL_ECHOLNPGM(MSG_POSITION_UNKNOWN);
SERIAL_ECHOLNRPGM(MSG_POSITION_UNKNOWN);
break; // abort G29, since we don't know where we are
}
@ -2157,7 +2179,7 @@ void process_commands()
if (!hasP && !hasS && *src != '\0') {
lcd_setstatus(src);
} else {
LCD_MESSAGEPGM(MSG_USERWAIT);
LCD_MESSAGERPGM(MSG_USERWAIT);
}
lcd_ignore_click();
@ -2181,14 +2203,14 @@ void process_commands()
}
}
if (IS_SD_PRINTING)
LCD_MESSAGEPGM(MSG_RESUMING);
LCD_MESSAGERPGM(MSG_RESUMING);
else
LCD_MESSAGEPGM(WELCOME_MSG);
LCD_MESSAGERPGM(WELCOME_MSG);
}
break;
#endif
case 17:
LCD_MESSAGEPGM(MSG_NO_MOVE);
LCD_MESSAGERPGM(MSG_NO_MOVE);
enable_x();
enable_y();
enable_z();
@ -2199,9 +2221,9 @@ void process_commands()
#ifdef SDSUPPORT
case 20: // M20 - list SD card
SERIAL_PROTOCOLLNPGM(MSG_BEGIN_FILE_LIST);
SERIAL_PROTOCOLLNRPGM(MSG_BEGIN_FILE_LIST);
card.ls();
SERIAL_PROTOCOLLNPGM(MSG_END_FILE_LIST);
SERIAL_PROTOCOLLNRPGM(MSG_END_FILE_LIST);
break;
case 21: // M21 - init SD card
@ -2663,7 +2685,7 @@ Sigma_Exit:
}
#else
SERIAL_ERROR_START;
SERIAL_ERRORLNPGM(MSG_ERR_NO_THERMISTORS);
SERIAL_ERRORLNRPGM(MSG_ERR_NO_THERMISTORS);
#endif
SERIAL_PROTOCOLPGM(" @:");
@ -2707,7 +2729,7 @@ Sigma_Exit:
if(setTargetedHotend(109)){
break;
}
LCD_MESSAGEPGM(MSG_HEATING);
LCD_MESSAGERPGM(MSG_HEATING);
#ifdef AUTOTEMP
autotemp_enabled=false;
#endif
@ -2790,7 +2812,7 @@ Sigma_Exit:
}
#endif //TEMP_RESIDENCY_TIME
}
LCD_MESSAGEPGM(MSG_HEATING_COMPLETE);
LCD_MESSAGERPGM(MSG_HEATING_COMPLETE);
if(IS_SD_PRINTING){
@ -2803,7 +2825,7 @@ Sigma_Exit:
break;
case 190: // M190 - Wait for bed heater to reach target.
#if defined(TEMP_BED_PIN) && TEMP_BED_PIN > -1
LCD_MESSAGEPGM(MSG_BED_HEATING);
LCD_MESSAGERPGM(MSG_BED_HEATING);
if (code_seen('S')) {
setTargetBed(code_value());
CooldownNoWait = true;
@ -2834,7 +2856,7 @@ Sigma_Exit:
manage_inactivity();
lcd_update();
}
LCD_MESSAGEPGM(MSG_BED_DONE);
LCD_MESSAGERPGM(MSG_BED_DONE);
if(IS_SD_PRINTING){
lcd_setstatus("SD-PRINTING ");
@ -2903,7 +2925,7 @@ Sigma_Exit:
#ifdef ULTIPANEL
powersupply = true;
LCD_MESSAGEPGM(WELCOME_MSG);
LCD_MESSAGERPGM(WELCOME_MSG);
lcd_update();
#endif
break;
@ -2927,7 +2949,15 @@ Sigma_Exit:
#endif
#ifdef ULTIPANEL
powersupply = false;
LCD_MESSAGEPGM(MACHINE_NAME" "MSG_OFF".");
LCD_MESSAGERPGM(CAT4(MACHINE_NAME,PSTR(" "),MSG_OFF,PSTR("."))); //!!!!!!!!!!!!!!
/*
MACHNAME = "Prusa i3"
MSGOFF = "Vypnuto"
"Prusai3"" ""vypnuto""."
"Prusa i3"" "MSG_ALL[lang_selected][50]"."
*/
lcd_update();
#endif
break;
@ -2997,7 +3027,7 @@ Sigma_Exit:
}
break;
case 115: // M115
SERIAL_PROTOCOLPGM(MSG_M115_REPORT);
SERIAL_PROTOCOLRPGM(MSG_M115_REPORT);
break;
case 117: // M117 display message
starpos = (strchr(strchr_pointer + 5,'*'));
@ -3015,7 +3045,7 @@ Sigma_Exit:
SERIAL_PROTOCOLPGM(" E:");
SERIAL_PROTOCOL(current_position[E_AXIS]);
SERIAL_PROTOCOLPGM(MSG_COUNT_X);
SERIAL_PROTOCOLRPGM(MSG_COUNT_X);
SERIAL_PROTOCOL(float(st_get_position(X_AXIS))/axis_steps_per_unit[X_AXIS]);
SERIAL_PROTOCOLPGM(" Y:");
SERIAL_PROTOCOL(float(st_get_position(Y_AXIS))/axis_steps_per_unit[Y_AXIS]);
@ -3053,27 +3083,27 @@ Sigma_Exit:
case 119: // M119
SERIAL_PROTOCOLLN(MSG_M119_REPORT);
#if defined(X_MIN_PIN) && X_MIN_PIN > -1
SERIAL_PROTOCOLPGM(MSG_X_MIN);
SERIAL_PROTOCOLRPGM(MSG_X_MIN);
SERIAL_PROTOCOLLN(((READ(X_MIN_PIN)^X_MIN_ENDSTOP_INVERTING)?MSG_ENDSTOP_HIT:MSG_ENDSTOP_OPEN));
#endif
#if defined(X_MAX_PIN) && X_MAX_PIN > -1
SERIAL_PROTOCOLPGM(MSG_X_MAX);
SERIAL_PROTOCOLRPGM(MSG_X_MAX);
SERIAL_PROTOCOLLN(((READ(X_MAX_PIN)^X_MAX_ENDSTOP_INVERTING)?MSG_ENDSTOP_HIT:MSG_ENDSTOP_OPEN));
#endif
#if defined(Y_MIN_PIN) && Y_MIN_PIN > -1
SERIAL_PROTOCOLPGM(MSG_Y_MIN);
SERIAL_PROTOCOLRPGM(MSG_Y_MIN);
SERIAL_PROTOCOLLN(((READ(Y_MIN_PIN)^Y_MIN_ENDSTOP_INVERTING)?MSG_ENDSTOP_HIT:MSG_ENDSTOP_OPEN));
#endif
#if defined(Y_MAX_PIN) && Y_MAX_PIN > -1
SERIAL_PROTOCOLPGM(MSG_Y_MAX);
SERIAL_PROTOCOLRPGM(MSG_Y_MAX);
SERIAL_PROTOCOLLN(((READ(Y_MAX_PIN)^Y_MAX_ENDSTOP_INVERTING)?MSG_ENDSTOP_HIT:MSG_ENDSTOP_OPEN));
#endif
#if defined(Z_MIN_PIN) && Z_MIN_PIN > -1
SERIAL_PROTOCOLPGM(MSG_Z_MIN);
SERIAL_PROTOCOLRPGM(MSG_Z_MIN);
SERIAL_PROTOCOLLN(((READ(Z_MIN_PIN)^Z_MIN_ENDSTOP_INVERTING)?MSG_ENDSTOP_HIT:MSG_ENDSTOP_OPEN));
#endif
#if defined(Z_MAX_PIN) && Z_MAX_PIN > -1
SERIAL_PROTOCOLPGM(MSG_Z_MAX);
SERIAL_PROTOCOLRPGM(MSG_Z_MAX);
SERIAL_PROTOCOLLN(((READ(Z_MAX_PIN)^Z_MAX_ENDSTOP_INVERTING)?MSG_ENDSTOP_HIT:MSG_ENDSTOP_OPEN));
#endif
break;
@ -3267,7 +3297,7 @@ Sigma_Exit:
}break;
default:
SERIAL_ECHO_START;
SERIAL_ECHOPGM(MSG_UNKNOWN_COMMAND);
SERIAL_ECHORPGM(MSG_UNKNOWN_COMMAND);
SERIAL_ECHO(cmdbuffer[bufindr]);
SERIAL_ECHOLNPGM("\"");
}
@ -3296,7 +3326,7 @@ Sigma_Exit:
}
#endif
SERIAL_ECHO_START;
SERIAL_ECHOPGM(MSG_HOTEND_OFFSET);
SERIAL_ECHORPGM(MSG_HOTEND_OFFSET);
for(tmp_extruder = 0; tmp_extruder < EXTRUDERS; tmp_extruder++)
{
SERIAL_ECHO(" ");
@ -3767,6 +3797,13 @@ case 404: //M404 Enter the nominal filament width (3mm, 1.75mm ) N<3.0> or disp
Config_PrintSettings();
}
break;
case 509: //M509 Force language selection
{
lcd_force_language_selection();
SERIAL_ECHO_START;
SERIAL_PROTOCOLPGM(("LANG SEL FORCED"));
}
break;
#ifdef ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED
case 540:
{
@ -3786,16 +3823,16 @@ case 404: //M404 Enter the nominal filament width (3mm, 1.75mm ) N<3.0> or disp
{
zprobe_zoffset = -value; // compare w/ line 278 of ConfigurationStore.cpp
SERIAL_ECHO_START;
SERIAL_ECHOLNPGM(MSG_ZPROBE_ZOFFSET " " MSG_OK);
SERIAL_ECHOLNRPGM(CAT4(MSG_ZPROBE_ZOFFSET, " ", MSG_OK,PSTR("")));
SERIAL_PROTOCOLLN("");
}
else
{
SERIAL_ECHO_START;
SERIAL_ECHOPGM(MSG_ZPROBE_ZOFFSET);
SERIAL_ECHOPGM(MSG_Z_MIN);
SERIAL_ECHORPGM(MSG_ZPROBE_ZOFFSET);
SERIAL_ECHORPGM(MSG_Z_MIN);
SERIAL_ECHO(Z_PROBE_OFFSET_RANGE_MIN);
SERIAL_ECHOPGM(MSG_Z_MAX);
SERIAL_ECHORPGM(MSG_Z_MAX);
SERIAL_ECHO(Z_PROBE_OFFSET_RANGE_MAX);
SERIAL_PROTOCOLLN("");
}
@ -3803,7 +3840,7 @@ case 404: //M404 Enter the nominal filament width (3mm, 1.75mm ) N<3.0> or disp
else
{
SERIAL_ECHO_START;
SERIAL_ECHOLNPGM(MSG_ZPROBE_ZOFFSET " : ");
SERIAL_ECHOLNRPGM(CAT2(MSG_ZPROBE_ZOFFSET, PSTR(" : ")));
SERIAL_ECHO(-zprobe_zoffset);
SERIAL_PROTOCOLLN("");
}
@ -4050,7 +4087,7 @@ case 404: //M404 Enter the nominal filament width (3mm, 1.75mm ) N<3.0> or disp
duplicate_extruder_temp_offset = code_value();
SERIAL_ECHO_START;
SERIAL_ECHOPGM(MSG_HOTEND_OFFSET);
SERIAL_ECHORPGM(MSG_HOTEND_OFFSET);
SERIAL_ECHO(" ");
SERIAL_ECHO(extruder_offset[X_AXIS][0]);
SERIAL_ECHO(",");
@ -4251,7 +4288,7 @@ case 404: //M404 Enter the nominal filament width (3mm, 1.75mm ) N<3.0> or disp
else
{
SERIAL_ECHO_START;
SERIAL_ECHOPGM(MSG_UNKNOWN_COMMAND);
SERIAL_ECHORPGM(MSG_UNKNOWN_COMMAND);
SERIAL_ECHO(cmdbuffer[bufindr]);
SERIAL_ECHOLNPGM("\"");
}
@ -4263,7 +4300,7 @@ void FlushSerialRequestResend()
{
//char cmdbuffer[bufindr][100]="Resend:";
MYSERIAL.flush();
SERIAL_PROTOCOLPGM(MSG_RESEND);
SERIAL_PROTOCOLRPGM(MSG_RESEND);
SERIAL_PROTOCOLLN(gcode_LastN + 1);
ClearToSend();
}
@ -4275,7 +4312,7 @@ void ClearToSend()
if(fromsd[bufindr])
return;
#endif //SDSUPPORT
SERIAL_PROTOCOLLNPGM(MSG_OK);
SERIAL_PROTOCOLLNRPGM(MSG_OK);
}
void get_coordinates()
@ -4753,7 +4790,7 @@ void manage_inactivity(bool ignore_stepper_queue/*=false*/) //default argument s
{
enquecommand_P((PSTR("G28")));
homeDebounceCount++;
LCD_ALERTMESSAGEPGM(MSG_AUTO_HOME);
LCD_ALERTMESSAGERPGM(MSG_AUTO_HOME);
}
else if (homeDebounceCount < HOME_DEBOUNCE_DELAY)
{
@ -4820,8 +4857,8 @@ void kill()
pinMode(PS_ON_PIN,INPUT);
#endif
SERIAL_ERROR_START;
SERIAL_ERRORLNPGM(MSG_ERR_KILLED);
LCD_ALERTMESSAGEPGM(MSG_KILLED);
SERIAL_ERRORLNRPGM(MSG_ERR_KILLED);
LCD_ALERTMESSAGERPGM(MSG_KILLED);
// FMC small patch to update the LCD before ending
sei(); // enable interrupts
@ -4841,8 +4878,8 @@ void Stop()
Stopped = true;
Stopped_gcode_LastN = gcode_LastN; // Save last g_code for restart
SERIAL_ERROR_START;
SERIAL_ERRORLNPGM(MSG_ERR_STOPPED);
LCD_MESSAGEPGM(MSG_STOPPED);
SERIAL_ERRORLNRPGM(MSG_ERR_STOPPED);
LCD_MESSAGERPGM(MSG_STOPPED);
}
}

32
cardreader.cpp Executable file → Normal file
View file

@ -163,23 +163,23 @@ void CardReader::initsd()
{
//if (!card.init(SPI_HALF_SPEED,SDSS))
SERIAL_ECHO_START;
SERIAL_ECHOLNPGM(MSG_SD_INIT_FAIL);
SERIAL_ECHOLNRPGM(MSG_SD_INIT_FAIL);
}
else if (!volume.init(&card))
{
SERIAL_ERROR_START;
SERIAL_ERRORLNPGM(MSG_SD_VOL_INIT_FAIL);
SERIAL_ERRORLNRPGM(MSG_SD_VOL_INIT_FAIL);
}
else if (!root.openRoot(&volume))
{
SERIAL_ERROR_START;
SERIAL_ERRORLNPGM(MSG_SD_OPENROOT_FAIL);
SERIAL_ERRORLNRPGM(MSG_SD_OPENROOT_FAIL);
}
else
{
cardOK = true;
SERIAL_ECHO_START;
SERIAL_ECHOLNPGM(MSG_SD_CARD_OK);
SERIAL_ECHOLNRPGM(MSG_SD_CARD_OK);
}
workDir=root;
curDir=&root;
@ -317,7 +317,7 @@ void CardReader::openFile(char* name,bool read, bool replace_current/*=true*/)
SERIAL_ECHOLN(subdirname);
if(!myDir.open(curDir,subdirname,O_READ))
{
SERIAL_PROTOCOLPGM(MSG_SD_OPEN_FILE_FAIL);
SERIAL_PROTOCOLRPGM(MSG_SD_OPEN_FILE_FAIL);
SERIAL_PROTOCOL(subdirname);
SERIAL_PROTOCOLLNPGM(".");
return;
@ -349,20 +349,20 @@ void CardReader::openFile(char* name,bool read, bool replace_current/*=true*/)
if (file.open(curDir, fname, O_READ))
{
filesize = file.fileSize();
SERIAL_PROTOCOLPGM(MSG_SD_FILE_OPENED);
SERIAL_PROTOCOLRPGM(MSG_SD_FILE_OPENED);
SERIAL_PROTOCOL(fname);
SERIAL_PROTOCOLPGM(MSG_SD_SIZE);
SERIAL_PROTOCOLRPGM(MSG_SD_SIZE);
SERIAL_PROTOCOLLN(filesize);
sdpos = 0;
SERIAL_PROTOCOLLNPGM(MSG_SD_FILE_SELECTED);
SERIAL_PROTOCOLLNRPGM(MSG_SD_FILE_SELECTED);
getfilename(0, fname);
lcd_setstatus(longFilename[0] ? longFilename : fname);
lcd_setstatus("SD-PRINTING ");
}
else
{
SERIAL_PROTOCOLPGM(MSG_SD_OPEN_FILE_FAIL);
SERIAL_PROTOCOLRPGM(MSG_SD_OPEN_FILE_FAIL);
SERIAL_PROTOCOL(fname);
SERIAL_PROTOCOLLNPGM(".");
}
@ -371,14 +371,14 @@ void CardReader::openFile(char* name,bool read, bool replace_current/*=true*/)
{ //write
if (!file.open(curDir, fname, O_CREAT | O_APPEND | O_WRITE | O_TRUNC))
{
SERIAL_PROTOCOLPGM(MSG_SD_OPEN_FILE_FAIL);
SERIAL_PROTOCOLRPGM(MSG_SD_OPEN_FILE_FAIL);
SERIAL_PROTOCOL(fname);
SERIAL_PROTOCOLLNPGM(".");
}
else
{
saving = true;
SERIAL_PROTOCOLPGM(MSG_SD_WRITE_TO_FILE);
SERIAL_PROTOCOLRPGM(MSG_SD_WRITE_TO_FILE);
SERIAL_PROTOCOLLN(name);
lcd_setstatus(fname);
}
@ -415,7 +415,7 @@ void CardReader::removeFile(char* name)
SERIAL_ECHOLN(subdirname);
if(!myDir.open(curDir,subdirname,O_READ))
{
SERIAL_PROTOCOLPGM("open failed, File: ");
SERIAL_PROTOCOLRPGM("open failed, File: ");
SERIAL_PROTOCOL(subdirname);
SERIAL_PROTOCOLLNPGM(".");
return;
@ -462,7 +462,7 @@ void CardReader::getStatus()
if(sdprinting){
SERIAL_PROTOCOL(longFilename);
SERIAL_PROTOCOLPGM("\n");
SERIAL_PROTOCOLPGM(MSG_SD_PRINTING_BYTE);
SERIAL_PROTOCOLRPGM(MSG_SD_PRINTING_BYTE);
SERIAL_PROTOCOL(sdpos);
SERIAL_PROTOCOLPGM("/");
SERIAL_PROTOCOLLN(filesize);
@ -473,7 +473,7 @@ void CardReader::getStatus()
SERIAL_PROTOCOLPGM("\n");
}
else{
SERIAL_PROTOCOLLNPGM("Not printing");
SERIAL_PROTOCOLLNRPGM("Not printing");
}
}
void CardReader::write_command(char *buf)
@ -495,7 +495,7 @@ void CardReader::write_command(char *buf)
if (file.writeError)
{
SERIAL_ERROR_START;
SERIAL_ERRORLNPGM(MSG_SD_ERR_WRITE_TO_FILE);
SERIAL_ERRORLNRPGM(MSG_SD_ERR_WRITE_TO_FILE);
}
}
@ -599,7 +599,7 @@ void CardReader::chdir(const char * relpath)
if(!newfile.open(*parent,relpath, O_READ))
{
SERIAL_ECHO_START;
SERIAL_ECHOPGM(MSG_SD_CANT_ENTER_SUBDIR);
SERIAL_ECHORPGM(MSG_SD_CANT_ENTER_SUBDIR);
SERIAL_ECHOLN(relpath);
}
else

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

129
langtool.php Normal file
View file

@ -0,0 +1,129 @@
<?php
$langs = array("en","cz");
function parselang($a) {
$out=array();
foreach ($a as $line){
if (!strpos($line,"MSG")) continue;
//echo $line;
preg_match('/\#define\s*(\S*)\s*(.*)/is',$line,$a);
//print_r($a);die();
if (!$a[1]) continue;
$v = trim($a[2]);
$v = str_replace('MACHINE_NAME "','"Prusa i3',$v);
$v = str_replace('" FIRMWARE_URL "','https://github.com/prusa3d/Prusa-i3-Plus/',$v);
$v = str_replace('" PROTOCOL_VERSION "','1.0',$v);
$v = str_replace('" STRINGIFY(EXTRUDERS) "','1',$v);
$v = str_replace('" MACHINE_UUID "','00000000-0000-0000-0000-000000000000',$v);
$out[trim($a[1])]=$v;
}
return $out;
}
foreach ($langs as $lang) {
$f = file("language_".$lang.".h");
$$lang = parselang($f);
}
/*
$f = file("language_cz.h");
$cz = parselang($f);
$f = file("language_en.h");
$en = parselang($f);
*/
//print_r($cz);
$out="#ifndef LANGUAGE_ALL_H\n#define LANGUAGE_ALL_H\n\nextern unsigned char lang_selected;\nextern const char** MSG_ALL[];\n";
$counter=0;
$langname = 0;
$langsel = 0;
foreach ($cz as $k=>$v) {
$out .= "#define $k MSG_ALL[lang_selected][$counter]\n";
if ($k=="MSG_LANGUAGE_NAME") $langname = $counter;
if ($k=="MSG_LANGUAGE_SELECT") $langsel = $counter;
//$out2 .= "\t".''.$v.','."\n";
//$out3 .= "\t".''.$en[$k].','."\n";
$counter++;
}
$out.="#define LANGUAGE_NAME $langname \n";
$out.="#define LANGUAGE_SELECT $langsel \n";
$out.="#define LANG_NUM ".count($langs)." \n";
$out.="char* CAT2(const char *s1,const char *s2);\n";
$out.="char* CAT4(const char *s1,const char *s2,const char *s3,const char *s4);\n";
$out.="\n\n\n#endif //LANGUAGE_ALL.H";
file_put_contents("language_all.h",$out);
echo ".h created\n";
$out="#include <avr/pgmspace.h>\n#define LCD_WIDTH 20\nextern unsigned char lang_selected;\n";
foreach ($langs as $lang) {
$outa[$lang]="const char* MSG".strtoupper($lang)."[] = {";
}
//$out2="const char* MSGCZ[] = {";
//$out3="const char* MSGEN[] = {";
$counter=0;
foreach ($cz as $k=>$v) {
foreach ($langs as $lang) {
$out .= "const char MSG".strtoupper($lang)."${counter}[] PROGMEM = { ".${$lang}[$k]." }; //$k\n";
$outa[$lang].="MSG".strtoupper($lang)."$counter, //$k\n";
}
//$out .= "const char MSGCZ${counter}[] PROGMEM = { $v }; //$k\n";
//$out .= "const char MSGEN${counter}[] PROGMEM = {".$en[$k]."}; //$k\n";
//$out2 .= "MSGCZ$counter, //$k\n";
//$out3 .= "MSGEN$counter, //$k\n";
$counter++;
}
$langlist=array();
foreach ($langs as $lang) {
$out.= $outa[$lang] . "};\n";
$langlist[]="MSG".strtoupper($lang);
}
/*
$out2.="};\n";
$out3.="};\n";
$out .= $out2;
$out .= $out3;
*/
$out .= "\n\nconst char** MSG_ALL[] = {".join(",",$langlist)."};";
$tools = <<<EOF
char langbuffer[LCD_WIDTH+1];
char* CAT2(const char *s1,const char *s2) {
unsigned char len=0;
strncpy_P(langbuffer+len,s1,LCD_WIDTH-len);
len+=strlen_P(s1);
strncpy_P(langbuffer+len,s2,LCD_WIDTH-len);
return langbuffer;
}
char* CAT4(const char *s1,const char *s2,const char *s3,const char *s4) {
unsigned char len=0;
strncpy_P(langbuffer+len,s1,LCD_WIDTH-len);
len+=strlen_P(s1);
strncpy_P(langbuffer+len,s2,LCD_WIDTH-len);
len+=strlen_P(s2);
strncpy_P(langbuffer+len,s3,LCD_WIDTH-len);
len+=strlen_P(s3);
strncpy_P(langbuffer+len,s4,LCD_WIDTH-len);
return langbuffer;
}
EOF;
$out.=$tools;
file_put_contents("language_all.cpp",$out);
echo ".cpp created.\nDone!\n";
//const char MSG1[] PROGMEM = MSG_SD_INSERTED;
//const char* MSGCZ[] PROGMEM = {MSG_SD_INSERTED,MSG_SD_REMOVED};

4
language.h Executable file → Normal file
View file

@ -78,6 +78,8 @@
// LCD Menu Messages
#include LANGUAGE_INCLUDE
//#include LANGUAGE_INCLUDE
#include "language_all.h"
#endif //__LANGUAGE_H

919
language_all.cpp Normal file
View file

@ -0,0 +1,919 @@
#include <avr/pgmspace.h>
#define LCD_WIDTH 20
extern unsigned char lang_selected;
const char MSGEN0[] PROGMEM = { "Prusa i3 ready." }; //WELCOME_MSG
const char MSGCZ0[] PROGMEM = { "Prusa i3 pripravena" }; //WELCOME_MSG
const char MSGEN1[] PROGMEM = { "Card inserted" }; //MSG_SD_INSERTED
const char MSGCZ1[] PROGMEM = { "Karta vlozena" }; //MSG_SD_INSERTED
const char MSGEN2[] PROGMEM = { "Card removed" }; //MSG_SD_REMOVED
const char MSGCZ2[] PROGMEM = { "Karta vyjmuta" }; //MSG_SD_REMOVED
const char MSGEN3[] PROGMEM = { "Main" }; //MSG_MAIN
const char MSGCZ3[] PROGMEM = { "Hlavni nabidka" }; //MSG_MAIN
const char MSGEN4[] PROGMEM = { "Autostart" }; //MSG_AUTOSTART
const char MSGCZ4[] PROGMEM = { "Autostart" }; //MSG_AUTOSTART
const char MSGEN5[] PROGMEM = { "Disable steppers" }; //MSG_DISABLE_STEPPERS
const char MSGCZ5[] PROGMEM = { "Vypnout motory" }; //MSG_DISABLE_STEPPERS
const char MSGEN6[] PROGMEM = { "Auto home" }; //MSG_AUTO_HOME
const char MSGCZ6[] PROGMEM = { "Auto home" }; //MSG_AUTO_HOME
const char MSGEN7[] PROGMEM = { "Set home offsets" }; //MSG_SET_HOME_OFFSETS
const char MSGCZ7[] PROGMEM = { "Nastav pocatek home" }; //MSG_SET_HOME_OFFSETS
const char MSGEN8[] PROGMEM = { "Set origin" }; //MSG_SET_ORIGIN
const char MSGCZ8[] PROGMEM = { "Nastav pocatek" }; //MSG_SET_ORIGIN
const char MSGEN9[] PROGMEM = { "Preheat PLA" }; //MSG_PREHEAT_PLA
const char MSGCZ9[] PROGMEM = { "Predehrev PLA" }; //MSG_PREHEAT_PLA
const char MSGEN10[] PROGMEM = { "Preheat PLA 1" }; //MSG_PREHEAT_PLA0
const char MSGCZ10[] PROGMEM = { "Predehrev PLA 1" }; //MSG_PREHEAT_PLA0
const char MSGEN11[] PROGMEM = { "Preheat PLA 2" }; //MSG_PREHEAT_PLA1
const char MSGCZ11[] PROGMEM = { "Predehrev PLA 2" }; //MSG_PREHEAT_PLA1
const char MSGEN12[] PROGMEM = { "Preheat PLA 3" }; //MSG_PREHEAT_PLA2
const char MSGCZ12[] PROGMEM = { "Predehrev PLA 3" }; //MSG_PREHEAT_PLA2
const char MSGEN13[] PROGMEM = { "Preheat PLA All" }; //MSG_PREHEAT_PLA012
const char MSGCZ13[] PROGMEM = { "Predehrev PLA All" }; //MSG_PREHEAT_PLA012
const char MSGEN14[] PROGMEM = { "Preheat PLA Bed" }; //MSG_PREHEAT_PLA_BEDONLY
const char MSGCZ14[] PROGMEM = { "Predehrev PLA Bed" }; //MSG_PREHEAT_PLA_BEDONLY
const char MSGEN15[] PROGMEM = { "Preheat PLA conf" }; //MSG_PREHEAT_PLA_SETTINGS
const char MSGCZ15[] PROGMEM = { "Predehrev PLA conf" }; //MSG_PREHEAT_PLA_SETTINGS
const char MSGEN16[] PROGMEM = { "Preheat ABS" }; //MSG_PREHEAT_ABS
const char MSGCZ16[] PROGMEM = { "Predehrev ABS" }; //MSG_PREHEAT_ABS
const char MSGEN17[] PROGMEM = { "Preheat ABS 1" }; //MSG_PREHEAT_ABS0
const char MSGCZ17[] PROGMEM = { "Predehrev ABS 1" }; //MSG_PREHEAT_ABS0
const char MSGEN18[] PROGMEM = { "Preheat ABS 2" }; //MSG_PREHEAT_ABS1
const char MSGCZ18[] PROGMEM = { "Predehrev ABS 2" }; //MSG_PREHEAT_ABS1
const char MSGEN19[] PROGMEM = { "Preheat ABS 3" }; //MSG_PREHEAT_ABS2
const char MSGCZ19[] PROGMEM = { "Predehrev ABS 3" }; //MSG_PREHEAT_ABS2
const char MSGEN20[] PROGMEM = { "Preheat ABS All" }; //MSG_PREHEAT_ABS012
const char MSGCZ20[] PROGMEM = { "Predehrev ABS All" }; //MSG_PREHEAT_ABS012
const char MSGEN21[] PROGMEM = { "Preheat ABS Bed" }; //MSG_PREHEAT_ABS_BEDONLY
const char MSGCZ21[] PROGMEM = { "Predehrev ABS Bed" }; //MSG_PREHEAT_ABS_BEDONLY
const char MSGEN22[] PROGMEM = { "Preheat ABS conf" }; //MSG_PREHEAT_ABS_SETTINGS
const char MSGCZ22[] PROGMEM = { "Predehrev ABS conf" }; //MSG_PREHEAT_ABS_SETTINGS
const char MSGEN23[] PROGMEM = { "Cooldown" }; //MSG_COOLDOWN
const char MSGCZ23[] PROGMEM = { "Zchladit" }; //MSG_COOLDOWN
const char MSGEN24[] PROGMEM = { "Switch power on" }; //MSG_SWITCH_PS_ON
const char MSGCZ24[] PROGMEM = { "Vypnout zdroj" }; //MSG_SWITCH_PS_ON
const char MSGEN25[] PROGMEM = { "Switch power off" }; //MSG_SWITCH_PS_OFF
const char MSGCZ25[] PROGMEM = { "Zapnout zdroj" }; //MSG_SWITCH_PS_OFF
const char MSGEN26[] PROGMEM = { "Extrude" }; //MSG_EXTRUDE
const char MSGCZ26[] PROGMEM = { "Extrudovat" }; //MSG_EXTRUDE
const char MSGEN27[] PROGMEM = { "Retract" }; //MSG_RETRACT
const char MSGCZ27[] PROGMEM = { "Retract" }; //MSG_RETRACT
const char MSGEN28[] PROGMEM = { "Move axis" }; //MSG_MOVE_AXIS
const char MSGCZ28[] PROGMEM = { "Posunout osu" }; //MSG_MOVE_AXIS
const char MSGEN29[] PROGMEM = { "Move X" }; //MSG_MOVE_X
const char MSGCZ29[] PROGMEM = { "Posunout X" }; //MSG_MOVE_X
const char MSGEN30[] PROGMEM = { "Move Y" }; //MSG_MOVE_Y
const char MSGCZ30[] PROGMEM = { "Posunout Y" }; //MSG_MOVE_Y
const char MSGEN31[] PROGMEM = { "Move Z" }; //MSG_MOVE_Z
const char MSGCZ31[] PROGMEM = { "Posunout Z" }; //MSG_MOVE_Z
const char MSGEN32[] PROGMEM = { "Extruder" }; //MSG_MOVE_E
const char MSGCZ32[] PROGMEM = { "Extruder" }; //MSG_MOVE_E
const char MSGEN33[] PROGMEM = { "Extruder2" }; //MSG_MOVE_E1
const char MSGCZ33[] PROGMEM = { "Extruder2" }; //MSG_MOVE_E1
const char MSGEN34[] PROGMEM = { "Extruder3" }; //MSG_MOVE_E2
const char MSGCZ34[] PROGMEM = { "Extruder3" }; //MSG_MOVE_E2
const char MSGEN35[] PROGMEM = { "Move 0.1mm" }; //MSG_MOVE_01MM
const char MSGCZ35[] PROGMEM = { "Posunout o 0.1mm" }; //MSG_MOVE_01MM
const char MSGEN36[] PROGMEM = { "Move 1mm" }; //MSG_MOVE_1MM
const char MSGCZ36[] PROGMEM = { "Posunout o 1mm" }; //MSG_MOVE_1MM
const char MSGEN37[] PROGMEM = { "Move 10mm" }; //MSG_MOVE_10MM
const char MSGCZ37[] PROGMEM = { "Posunout o 10mm" }; //MSG_MOVE_10MM
const char MSGEN38[] PROGMEM = { "Speed" }; //MSG_SPEED
const char MSGCZ38[] PROGMEM = { "Rychlost" }; //MSG_SPEED
const char MSGEN39[] PROGMEM = { "Nozzle" }; //MSG_NOZZLE
const char MSGCZ39[] PROGMEM = { "Tryska" }; //MSG_NOZZLE
const char MSGEN40[] PROGMEM = { "Nozzle2" }; //MSG_NOZZLE1
const char MSGCZ40[] PROGMEM = { "Tryska2" }; //MSG_NOZZLE1
const char MSGEN41[] PROGMEM = { "Nozzle3" }; //MSG_NOZZLE2
const char MSGCZ41[] PROGMEM = { "Tryska3" }; //MSG_NOZZLE2
const char MSGEN42[] PROGMEM = { "Bed" }; //MSG_BED
const char MSGCZ42[] PROGMEM = { "Bed" }; //MSG_BED
const char MSGEN43[] PROGMEM = { "Fan speed" }; //MSG_FAN_SPEED
const char MSGCZ43[] PROGMEM = { "Rychlost vent." }; //MSG_FAN_SPEED
const char MSGEN44[] PROGMEM = { "Flow" }; //MSG_FLOW
const char MSGCZ44[] PROGMEM = { "Prutok" }; //MSG_FLOW
const char MSGEN45[] PROGMEM = { "Flow 0" }; //MSG_FLOW0
const char MSGCZ45[] PROGMEM = { "Prutok 0" }; //MSG_FLOW0
const char MSGEN46[] PROGMEM = { "Flow 1" }; //MSG_FLOW1
const char MSGCZ46[] PROGMEM = { "Prutok 1" }; //MSG_FLOW1
const char MSGEN47[] PROGMEM = { "Flow 2" }; //MSG_FLOW2
const char MSGCZ47[] PROGMEM = { "Prutok 2" }; //MSG_FLOW2
const char MSGEN48[] PROGMEM = { "Control" }; //MSG_CONTROL
const char MSGCZ48[] PROGMEM = { "Kontrola" }; //MSG_CONTROL
const char MSGEN49[] PROGMEM = { " \002 Min" }; //MSG_MIN
const char MSGCZ49[] PROGMEM = { " \002 Min" }; //MSG_MIN
const char MSGEN50[] PROGMEM = { " \002 Max" }; //MSG_MAX
const char MSGCZ50[] PROGMEM = { " \002 Max" }; //MSG_MAX
const char MSGEN51[] PROGMEM = { " \002 Fact" }; //MSG_FACTOR
const char MSGCZ51[] PROGMEM = { " \002 Fact" }; //MSG_FACTOR
const char MSGEN52[] PROGMEM = { "Autotemp" }; //MSG_AUTOTEMP
const char MSGCZ52[] PROGMEM = { "Autotemp" }; //MSG_AUTOTEMP
const char MSGEN53[] PROGMEM = { "On " }; //MSG_ON
const char MSGCZ53[] PROGMEM = { "On " }; //MSG_ON
const char MSGEN54[] PROGMEM = { "Off" }; //MSG_OFF
const char MSGCZ54[] PROGMEM = { "Off" }; //MSG_OFF
const char MSGEN55[] PROGMEM = { "PID-P" }; //MSG_PID_P
const char MSGCZ55[] PROGMEM = { "PID-P" }; //MSG_PID_P
const char MSGEN56[] PROGMEM = { "PID-I" }; //MSG_PID_I
const char MSGCZ56[] PROGMEM = { "PID-I" }; //MSG_PID_I
const char MSGEN57[] PROGMEM = { "PID-D" }; //MSG_PID_D
const char MSGCZ57[] PROGMEM = { "PID-D" }; //MSG_PID_D
const char MSGEN58[] PROGMEM = { "PID-C" }; //MSG_PID_C
const char MSGCZ58[] PROGMEM = { "PID-C" }; //MSG_PID_C
const char MSGEN59[] PROGMEM = { "Accel" }; //MSG_ACC
const char MSGCZ59[] PROGMEM = { "Accel" }; //MSG_ACC
const char MSGEN60[] PROGMEM = { "Vxy-jerk" }; //MSG_VXY_JERK
const char MSGCZ60[] PROGMEM = { "Vxy-jerk" }; //MSG_VXY_JERK
const char MSGEN61[] PROGMEM = { "Vz-jerk" }; //MSG_VZ_JERK
const char MSGCZ61[] PROGMEM = { "Vz-jerk" }; //MSG_VZ_JERK
const char MSGEN62[] PROGMEM = { "Ve-jerk" }; //MSG_VE_JERK
const char MSGCZ62[] PROGMEM = { "Ve-jerk" }; //MSG_VE_JERK
const char MSGEN63[] PROGMEM = { "Vmax " }; //MSG_VMAX
const char MSGCZ63[] PROGMEM = { "Vmax " }; //MSG_VMAX
const char MSGEN64[] PROGMEM = { "x" }; //MSG_X
const char MSGCZ64[] PROGMEM = { "x" }; //MSG_X
const char MSGEN65[] PROGMEM = { "y" }; //MSG_Y
const char MSGCZ65[] PROGMEM = { "y" }; //MSG_Y
const char MSGEN66[] PROGMEM = { "z" }; //MSG_Z
const char MSGCZ66[] PROGMEM = { "z" }; //MSG_Z
const char MSGEN67[] PROGMEM = { "e" }; //MSG_E
const char MSGCZ67[] PROGMEM = { "e" }; //MSG_E
const char MSGEN68[] PROGMEM = { "Vmin" }; //MSG_VMIN
const char MSGCZ68[] PROGMEM = { "Vmin" }; //MSG_VMIN
const char MSGEN69[] PROGMEM = { "VTrav min" }; //MSG_VTRAV_MIN
const char MSGCZ69[] PROGMEM = { "VTrav min" }; //MSG_VTRAV_MIN
const char MSGEN70[] PROGMEM = { "Amax " }; //MSG_AMAX
const char MSGCZ70[] PROGMEM = { "Amax " }; //MSG_AMAX
const char MSGEN71[] PROGMEM = { "A-retract" }; //MSG_A_RETRACT
const char MSGCZ71[] PROGMEM = { "A-retract" }; //MSG_A_RETRACT
const char MSGEN72[] PROGMEM = { "Xsteps/mm" }; //MSG_XSTEPS
const char MSGCZ72[] PROGMEM = { "Xsteps/mm" }; //MSG_XSTEPS
const char MSGEN73[] PROGMEM = { "Ysteps/mm" }; //MSG_YSTEPS
const char MSGCZ73[] PROGMEM = { "Ysteps/mm" }; //MSG_YSTEPS
const char MSGEN74[] PROGMEM = { "Zsteps/mm" }; //MSG_ZSTEPS
const char MSGCZ74[] PROGMEM = { "Zsteps/mm" }; //MSG_ZSTEPS
const char MSGEN75[] PROGMEM = { "Esteps/mm" }; //MSG_ESTEPS
const char MSGCZ75[] PROGMEM = { "Esteps/mm" }; //MSG_ESTEPS
const char MSGEN76[] PROGMEM = { "Temperature" }; //MSG_TEMPERATURE
const char MSGCZ76[] PROGMEM = { "Teplota" }; //MSG_TEMPERATURE
const char MSGEN77[] PROGMEM = { "Motion" }; //MSG_MOTION
const char MSGCZ77[] PROGMEM = { "Pohyb" }; //MSG_MOTION
const char MSGEN78[] PROGMEM = { "Filament" }; //MSG_VOLUMETRIC
const char MSGCZ78[] PROGMEM = { "Filament" }; //MSG_VOLUMETRIC
const char MSGEN79[] PROGMEM = { "E in mm3" }; //MSG_VOLUMETRIC_ENABLED
const char MSGCZ79[] PROGMEM = { "E in mm3" }; //MSG_VOLUMETRIC_ENABLED
const char MSGEN80[] PROGMEM = { "Fil. Dia. 1" }; //MSG_FILAMENT_SIZE_EXTRUDER_0
const char MSGCZ80[] PROGMEM = { "Fil. Dia. 1" }; //MSG_FILAMENT_SIZE_EXTRUDER_0
const char MSGEN81[] PROGMEM = { "Fil. Dia. 2" }; //MSG_FILAMENT_SIZE_EXTRUDER_1
const char MSGCZ81[] PROGMEM = { "Fil. Dia. 2" }; //MSG_FILAMENT_SIZE_EXTRUDER_1
const char MSGEN82[] PROGMEM = { "Fil. Dia. 3" }; //MSG_FILAMENT_SIZE_EXTRUDER_2
const char MSGCZ82[] PROGMEM = { "Fil. Dia. 3" }; //MSG_FILAMENT_SIZE_EXTRUDER_2
const char MSGEN83[] PROGMEM = { "LCD contrast" }; //MSG_CONTRAST
const char MSGCZ83[] PROGMEM = { "LCD contrast" }; //MSG_CONTRAST
const char MSGEN84[] PROGMEM = { "Store memory" }; //MSG_STORE_EPROM
const char MSGCZ84[] PROGMEM = { "Store memory" }; //MSG_STORE_EPROM
const char MSGEN85[] PROGMEM = { "Load memory" }; //MSG_LOAD_EPROM
const char MSGCZ85[] PROGMEM = { "Ulozit pamet" }; //MSG_LOAD_EPROM
const char MSGEN86[] PROGMEM = { "Restore failsafe" }; //MSG_RESTORE_FAILSAFE
const char MSGCZ86[] PROGMEM = { "Obnovit vychozi" }; //MSG_RESTORE_FAILSAFE
const char MSGEN87[] PROGMEM = { "Refresh" }; //MSG_REFRESH
const char MSGCZ87[] PROGMEM = { "Obnovit" }; //MSG_REFRESH
const char MSGEN88[] PROGMEM = { "Info screen" }; //MSG_WATCH
const char MSGCZ88[] PROGMEM = { "Informace" }; //MSG_WATCH
const char MSGEN89[] PROGMEM = { "Prepare" }; //MSG_PREPARE
const char MSGCZ89[] PROGMEM = { "Priprava" }; //MSG_PREPARE
const char MSGEN90[] PROGMEM = { "Tune" }; //MSG_TUNE
const char MSGCZ90[] PROGMEM = { "Ladit" }; //MSG_TUNE
const char MSGEN91[] PROGMEM = { "Pause print" }; //MSG_PAUSE_PRINT
const char MSGCZ91[] PROGMEM = { "Pozastavit tisk" }; //MSG_PAUSE_PRINT
const char MSGEN92[] PROGMEM = { "Resume print" }; //MSG_RESUME_PRINT
const char MSGCZ92[] PROGMEM = { "Pokracovat" }; //MSG_RESUME_PRINT
const char MSGEN93[] PROGMEM = { "Stop print" }; //MSG_STOP_PRINT
const char MSGCZ93[] PROGMEM = { "Zastavit tisk" }; //MSG_STOP_PRINT
const char MSGEN94[] PROGMEM = { "Print from SD" }; //MSG_CARD_MENU
const char MSGCZ94[] PROGMEM = { "Tisk z SD" }; //MSG_CARD_MENU
const char MSGEN95[] PROGMEM = { "No SD card" }; //MSG_NO_CARD
const char MSGCZ95[] PROGMEM = { "Zadna SD karta" }; //MSG_NO_CARD
const char MSGEN96[] PROGMEM = { "Sleep..." }; //MSG_DWELL
const char MSGCZ96[] PROGMEM = { "Sleep..." }; //MSG_DWELL
const char MSGEN97[] PROGMEM = { "Wait for user..." }; //MSG_USERWAIT
const char MSGCZ97[] PROGMEM = { "Wait for user..." }; //MSG_USERWAIT
const char MSGEN98[] PROGMEM = { "Resuming print" }; //MSG_RESUMING
const char MSGCZ98[] PROGMEM = { "Obnoveni tisku" }; //MSG_RESUMING
const char MSGEN99[] PROGMEM = { "Print aborted" }; //MSG_PRINT_ABORTED
const char MSGCZ99[] PROGMEM = { "Tisk prerusen" }; //MSG_PRINT_ABORTED
const char MSGEN100[] PROGMEM = { "No move." }; //MSG_NO_MOVE
const char MSGCZ100[] PROGMEM = { "No move." }; //MSG_NO_MOVE
const char MSGEN101[] PROGMEM = { "KILLED. " }; //MSG_KILLED
const char MSGCZ101[] PROGMEM = { "KILLED. " }; //MSG_KILLED
const char MSGEN102[] PROGMEM = { "STOPPED. " }; //MSG_STOPPED
const char MSGCZ102[] PROGMEM = { "STOPPED. " }; //MSG_STOPPED
const char MSGEN103[] PROGMEM = { "Retract mm" }; //MSG_CONTROL_RETRACT
const char MSGCZ103[] PROGMEM = { "Retract mm" }; //MSG_CONTROL_RETRACT
const char MSGEN104[] PROGMEM = { "Swap Re.mm" }; //MSG_CONTROL_RETRACT_SWAP
const char MSGCZ104[] PROGMEM = { "Swap Re.mm" }; //MSG_CONTROL_RETRACT_SWAP
const char MSGEN105[] PROGMEM = { "Retract V" }; //MSG_CONTROL_RETRACTF
const char MSGCZ105[] PROGMEM = { "Retract V" }; //MSG_CONTROL_RETRACTF
const char MSGEN106[] PROGMEM = { "Hop mm" }; //MSG_CONTROL_RETRACT_ZLIFT
const char MSGCZ106[] PROGMEM = { "Hop mm" }; //MSG_CONTROL_RETRACT_ZLIFT
const char MSGEN107[] PROGMEM = { "UnRet +mm" }; //MSG_CONTROL_RETRACT_RECOVER
const char MSGCZ107[] PROGMEM = { "UnRet +mm" }; //MSG_CONTROL_RETRACT_RECOVER
const char MSGEN108[] PROGMEM = { "S UnRet+mm" }; //MSG_CONTROL_RETRACT_RECOVER_SWAP
const char MSGCZ108[] PROGMEM = { "S UnRet+mm" }; //MSG_CONTROL_RETRACT_RECOVER_SWAP
const char MSGEN109[] PROGMEM = { "UnRet V" }; //MSG_CONTROL_RETRACT_RECOVERF
const char MSGCZ109[] PROGMEM = { "UnRet V" }; //MSG_CONTROL_RETRACT_RECOVERF
const char MSGEN110[] PROGMEM = { "AutoRetr." }; //MSG_AUTORETRACT
const char MSGCZ110[] PROGMEM = { "AutoRetr." }; //MSG_AUTORETRACT
const char MSGEN111[] PROGMEM = { "Change filament" }; //MSG_FILAMENTCHANGE
const char MSGCZ111[] PROGMEM = { "Vymenit filament" }; //MSG_FILAMENTCHANGE
const char MSGEN112[] PROGMEM = { "Init. SD card" }; //MSG_INIT_SDCARD
const char MSGCZ112[] PROGMEM = { "Inic. SD" }; //MSG_INIT_SDCARD
const char MSGEN113[] PROGMEM = { "Change SD card" }; //MSG_CNG_SDCARD
const char MSGCZ113[] PROGMEM = { "Vymenit SD" }; //MSG_CNG_SDCARD
const char MSGEN114[] PROGMEM = { "Z probe out. bed" }; //MSG_ZPROBE_OUT
const char MSGCZ114[] PROGMEM = { "Z probe out. bed" }; //MSG_ZPROBE_OUT
const char MSGEN115[] PROGMEM = { "Home X/Y before Z" }; //MSG_POSITION_UNKNOWN
const char MSGCZ115[] PROGMEM = { "Home X/Y before Z" }; //MSG_POSITION_UNKNOWN
const char MSGEN116[] PROGMEM = { "Z Offset" }; //MSG_ZPROBE_ZOFFSET
const char MSGCZ116[] PROGMEM = { "Z Offset" }; //MSG_ZPROBE_ZOFFSET
const char MSGEN117[] PROGMEM = { "Babystep X" }; //MSG_BABYSTEP_X
const char MSGCZ117[] PROGMEM = { "Babystep X" }; //MSG_BABYSTEP_X
const char MSGEN118[] PROGMEM = { "Babystep Y" }; //MSG_BABYSTEP_Y
const char MSGCZ118[] PROGMEM = { "Babystep Y" }; //MSG_BABYSTEP_Y
const char MSGEN119[] PROGMEM = { "Live adjust Z" }; //MSG_BABYSTEP_Z
const char MSGCZ119[] PROGMEM = { "Doladeni osy Z" }; //MSG_BABYSTEP_Z
const char MSGEN120[] PROGMEM = { "Endstop abort" }; //MSG_ENDSTOP_ABORT
const char MSGCZ120[] PROGMEM = { "Endstop abort" }; //MSG_ENDSTOP_ABORT
const char MSGEN121[] PROGMEM = { "Auto adjust Z ?" }; //MSG_ADJUSTZ
const char MSGCZ121[] PROGMEM = { "Auto doladit Z ?" }; //MSG_ADJUSTZ
const char MSGEN122[] PROGMEM = { "Calibrate Z" }; //MSG_HOMEYZ
const char MSGCZ122[] PROGMEM = { "Kalibrovat Z" }; //MSG_HOMEYZ
const char MSGEN123[] PROGMEM = { "Settings" }; //MSG_SETTINGS
const char MSGCZ123[] PROGMEM = { "Nastaveni" }; //MSG_SETTINGS
const char MSGEN124[] PROGMEM = { "Preheat" }; //MSG_PREHEAT
const char MSGCZ124[] PROGMEM = { "Predehrev" }; //MSG_PREHEAT
const char MSGEN125[] PROGMEM = { "Unload filament" }; //MSG_UNLOAD_FILAMENT
const char MSGCZ125[] PROGMEM = { "Vyjmout filament" }; //MSG_UNLOAD_FILAMENT
const char MSGEN126[] PROGMEM = { "Load filament" }; //MSG_LOAD_FILAMENT
const char MSGCZ126[] PROGMEM = { "Zavest filament" }; //MSG_LOAD_FILAMENT
const char MSGEN127[] PROGMEM = { "Rectract" }; //MSG_RECTRACT
const char MSGCZ127[] PROGMEM = { "Rectract" }; //MSG_RECTRACT
const char MSGEN128[] PROGMEM = { "ERROR:" }; //MSG_ERROR
const char MSGCZ128[] PROGMEM = { "CHYBA:" }; //MSG_ERROR
const char MSGEN129[] PROGMEM = { "Preheat the nozzle!" }; //MSG_PREHEAT_NOZZLE
const char MSGCZ129[] PROGMEM = { "Predehrejte trysku!" }; //MSG_PREHEAT_NOZZLE
const char MSGEN130[] PROGMEM = { "Support" }; //MSG_SUPPORT
const char MSGCZ130[] PROGMEM = { "Podpora" }; //MSG_SUPPORT
const char MSGEN131[] PROGMEM = { "Changed correctly?" }; //MSG_CORRECTLY
const char MSGCZ131[] PROGMEM = { "Vymena ok?" }; //MSG_CORRECTLY
const char MSGEN132[] PROGMEM = { "Yes" }; //MSG_YES
const char MSGCZ132[] PROGMEM = { "Ano" }; //MSG_YES
const char MSGEN133[] PROGMEM = { "No" }; //MSG_NO
const char MSGCZ133[] PROGMEM = { "Ne" }; //MSG_NO
const char MSGEN134[] PROGMEM = { "Filament not loaded" }; //MSG_NOT_LOADED
const char MSGCZ134[] PROGMEM = { "Filament nezaveden" }; //MSG_NOT_LOADED
const char MSGEN135[] PROGMEM = { "Color not clear" }; //MSG_NOT_COLOR
const char MSGCZ135[] PROGMEM = { "Barva neni cista" }; //MSG_NOT_COLOR
const char MSGEN136[] PROGMEM = { "Loading filament" }; //MSG_LOADING_FILAMENT
const char MSGCZ136[] PROGMEM = { "Zavadeni filamentu" }; //MSG_LOADING_FILAMENT
const char MSGEN137[] PROGMEM = { "Please wait" }; //MSG_PLEASE_WAIT
const char MSGCZ137[] PROGMEM = { "Prosim cekejte" }; //MSG_PLEASE_WAIT
const char MSGEN138[] PROGMEM = { "Loading color" }; //MSG_LOADING_COLOR
const char MSGCZ138[] PROGMEM = { "Cisteni barvy" }; //MSG_LOADING_COLOR
const char MSGEN139[] PROGMEM = { "Change success!" }; //MSG_CHANGE_SUCCESS
const char MSGCZ139[] PROGMEM = { "Zmena uspesna!" }; //MSG_CHANGE_SUCCESS
const char MSGEN140[] PROGMEM = { "And press the knob" }; //MSG_PRESS
const char MSGCZ140[] PROGMEM = { "A stisknete tlacitko" }; //MSG_PRESS
const char MSGEN141[] PROGMEM = { "Insert filament" }; //MSG_INSERT_FILAMENT
const char MSGCZ141[] PROGMEM = { "Vlozte filament" }; //MSG_INSERT_FILAMENT
const char MSGEN142[] PROGMEM = { "Changing filament!" }; //MSG_CHANGING_FILAMENT
const char MSGCZ142[] PROGMEM = { "Vymena filamentu!" }; //MSG_CHANGING_FILAMENT
const char MSGEN143[] PROGMEM = { "Mode [silent]" }; //MSG_SILENT_MODE_ON
const char MSGCZ143[] PROGMEM = { "Mod [tichy]" }; //MSG_SILENT_MODE_ON
const char MSGEN144[] PROGMEM = { "Mode [high power]" }; //MSG_SILENT_MODE_OFF
const char MSGCZ144[] PROGMEM = { "Mod [vys. vykon]" }; //MSG_SILENT_MODE_OFF
const char MSGEN145[] PROGMEM = { "Reboot the printer" }; //MSG_REBOOT
const char MSGCZ145[] PROGMEM = { "Restartujte tiskarnu" }; //MSG_REBOOT
const char MSGEN146[] PROGMEM = { " for take effect" }; //MSG_TAKE_EFFECT
const char MSGCZ146[] PROGMEM = { " pro projeveni zmen" }; //MSG_TAKE_EFFECT
const char MSGEN147[] PROGMEM = { "enqueing \"" }; //MSG_Enqueing
const char MSGCZ147[] PROGMEM = { "enqueing \"" }; //MSG_Enqueing
const char MSGEN148[] PROGMEM = { "PowerUp" }; //MSG_POWERUP
const char MSGCZ148[] PROGMEM = { "PowerUp" }; //MSG_POWERUP
const char MSGEN149[] PROGMEM = { " External Reset" }; //MSG_EXTERNAL_RESET
const char MSGCZ149[] PROGMEM = { " External Reset" }; //MSG_EXTERNAL_RESET
const char MSGEN150[] PROGMEM = { " Brown out Reset" }; //MSG_BROWNOUT_RESET
const char MSGCZ150[] PROGMEM = { " Brown out Reset" }; //MSG_BROWNOUT_RESET
const char MSGEN151[] PROGMEM = { " Watchdog Reset" }; //MSG_WATCHDOG_RESET
const char MSGCZ151[] PROGMEM = { " Watchdog Reset" }; //MSG_WATCHDOG_RESET
const char MSGEN152[] PROGMEM = { " Software Reset" }; //MSG_SOFTWARE_RESET
const char MSGCZ152[] PROGMEM = { " Software Reset" }; //MSG_SOFTWARE_RESET
const char MSGEN153[] PROGMEM = { " | Author: " }; //MSG_AUTHOR
const char MSGCZ153[] PROGMEM = { " | Author: " }; //MSG_AUTHOR
const char MSGEN154[] PROGMEM = { " Last Updated: " }; //MSG_CONFIGURATION_VER
const char MSGCZ154[] PROGMEM = { " Last Updated: " }; //MSG_CONFIGURATION_VER
const char MSGEN155[] PROGMEM = { " Free Memory: " }; //MSG_FREE_MEMORY
const char MSGCZ155[] PROGMEM = { " Free Memory: " }; //MSG_FREE_MEMORY
const char MSGEN156[] PROGMEM = { " PlannerBufferBytes: " }; //MSG_PLANNER_BUFFER_BYTES
const char MSGCZ156[] PROGMEM = { " PlannerBufferBytes: " }; //MSG_PLANNER_BUFFER_BYTES
const char MSGEN157[] PROGMEM = { "ok" }; //MSG_OK
const char MSGCZ157[] PROGMEM = { "ok" }; //MSG_OK
const char MSGEN158[] PROGMEM = { "Done saving file." }; //MSG_FILE_SAVED
const char MSGCZ158[] PROGMEM = { "Done saving file." }; //MSG_FILE_SAVED
const char MSGEN159[] PROGMEM = { "Line Number is not Last Line Number+1, Last Line: " }; //MSG_ERR_LINE_NO
const char MSGCZ159[] PROGMEM = { "Line Number is not Last Line Number+1, Last Line: " }; //MSG_ERR_LINE_NO
const char MSGEN160[] PROGMEM = { "checksum mismatch, Last Line: " }; //MSG_ERR_CHECKSUM_MISMATCH
const char MSGCZ160[] PROGMEM = { "checksum mismatch, Last Line: " }; //MSG_ERR_CHECKSUM_MISMATCH
const char MSGEN161[] PROGMEM = { "No Checksum with line number, Last Line: " }; //MSG_ERR_NO_CHECKSUM
const char MSGCZ161[] PROGMEM = { "No Checksum with line number, Last Line: " }; //MSG_ERR_NO_CHECKSUM
const char MSGEN162[] PROGMEM = { "No Line Number with checksum, Last Line: " }; //MSG_ERR_NO_LINENUMBER_WITH_CHECKSUM
const char MSGCZ162[] PROGMEM = { "No Line Number with checksum, Last Line: " }; //MSG_ERR_NO_LINENUMBER_WITH_CHECKSUM
const char MSGEN163[] PROGMEM = { "Done printing file" }; //MSG_FILE_PRINTED
const char MSGCZ163[] PROGMEM = { "Done printing file" }; //MSG_FILE_PRINTED
const char MSGEN164[] PROGMEM = { "Begin file list" }; //MSG_BEGIN_FILE_LIST
const char MSGCZ164[] PROGMEM = { "Begin file list" }; //MSG_BEGIN_FILE_LIST
const char MSGEN165[] PROGMEM = { "End file list" }; //MSG_END_FILE_LIST
const char MSGCZ165[] PROGMEM = { "End file list" }; //MSG_END_FILE_LIST
const char MSGEN166[] PROGMEM = { "M104 Invalid extruder " }; //MSG_M104_INVALID_EXTRUDER
const char MSGCZ166[] PROGMEM = { "M104 Invalid extruder " }; //MSG_M104_INVALID_EXTRUDER
const char MSGEN167[] PROGMEM = { "M105 Invalid extruder " }; //MSG_M105_INVALID_EXTRUDER
const char MSGCZ167[] PROGMEM = { "M105 Invalid extruder " }; //MSG_M105_INVALID_EXTRUDER
const char MSGEN168[] PROGMEM = { "M200 Invalid extruder " }; //MSG_M200_INVALID_EXTRUDER
const char MSGCZ168[] PROGMEM = { "M200 Invalid extruder " }; //MSG_M200_INVALID_EXTRUDER
const char MSGEN169[] PROGMEM = { "M218 Invalid extruder " }; //MSG_M218_INVALID_EXTRUDER
const char MSGCZ169[] PROGMEM = { "M218 Invalid extruder " }; //MSG_M218_INVALID_EXTRUDER
const char MSGEN170[] PROGMEM = { "M221 Invalid extruder " }; //MSG_M221_INVALID_EXTRUDER
const char MSGCZ170[] PROGMEM = { "M221 Invalid extruder " }; //MSG_M221_INVALID_EXTRUDER
const char MSGEN171[] PROGMEM = { "No thermistors - no temperature" }; //MSG_ERR_NO_THERMISTORS
const char MSGCZ171[] PROGMEM = { "No thermistors - no temperature" }; //MSG_ERR_NO_THERMISTORS
const char MSGEN172[] PROGMEM = { "M109 Invalid extruder " }; //MSG_M109_INVALID_EXTRUDER
const char MSGCZ172[] PROGMEM = { "M109 Invalid extruder " }; //MSG_M109_INVALID_EXTRUDER
const char MSGEN173[] PROGMEM = { "Heating..." }; //MSG_HEATING
const char MSGCZ173[] PROGMEM = { "Zahrivani..." }; //MSG_HEATING
const char MSGEN174[] PROGMEM = { "Heating done." }; //MSG_HEATING_COMPLETE
const char MSGCZ174[] PROGMEM = { "Zahrivani OK." }; //MSG_HEATING_COMPLETE
const char MSGEN175[] PROGMEM = { "Bed Heating." }; //MSG_BED_HEATING
const char MSGCZ175[] PROGMEM = { "Zahrivani bed..." }; //MSG_BED_HEATING
const char MSGEN176[] PROGMEM = { "Bed done." }; //MSG_BED_DONE
const char MSGCZ176[] PROGMEM = { "Bed OK." }; //MSG_BED_DONE
const char MSGEN177[] PROGMEM = { "FIRMWARE_NAME:Marlin V1.0.2; Sprinter/grbl mashup for gen6 FIRMWARE_URL:https://github.com/prusa3d/Prusa-i3-Plus/ PROTOCOL_VERSION:1.0 MACHINE_TYPE:" "Prusa i3 EXTRUDER_COUNT:1 UUID:00000000-0000-0000-0000-000000000000\n" }; //MSG_M115_REPORT
const char MSGCZ177[] PROGMEM = { "FIRMWARE_NAME:Marlin V1.0.2; Sprinter/grbl mashup for gen6 FIRMWARE_URL:https://github.com/prusa3d/Prusa-i3-Plus/ PROTOCOL_VERSION:1.0 MACHINE_TYPE:" "Prusa i3 EXTRUDER_COUNT:1 UUID:00000000-0000-0000-0000-000000000000\n" }; //MSG_M115_REPORT
const char MSGEN178[] PROGMEM = { " Count X: " }; //MSG_COUNT_X
const char MSGCZ178[] PROGMEM = { " Count X: " }; //MSG_COUNT_X
const char MSGEN179[] PROGMEM = { "Printer halted. kill() called!" }; //MSG_ERR_KILLED
const char MSGCZ179[] PROGMEM = { "Printer halted. kill() called!" }; //MSG_ERR_KILLED
const char MSGEN180[] PROGMEM = { "Printer stopped due to errors. Fix the error and use M999 to restart. (Temperature is reset. Set it after restarting)" }; //MSG_ERR_STOPPED
const char MSGCZ180[] PROGMEM = { "Printer stopped due to errors. Fix the error and use M999 to restart. (Temperature is reset. Set it after restarting)" }; //MSG_ERR_STOPPED
const char MSGEN181[] PROGMEM = { "Resend: " }; //MSG_RESEND
const char MSGCZ181[] PROGMEM = { "Resend: " }; //MSG_RESEND
const char MSGEN182[] PROGMEM = { "Unknown command: \"" }; //MSG_UNKNOWN_COMMAND
const char MSGCZ182[] PROGMEM = { "Unknown command: \"" }; //MSG_UNKNOWN_COMMAND
const char MSGEN183[] PROGMEM = { "Active Extruder: " }; //MSG_ACTIVE_EXTRUDER
const char MSGCZ183[] PROGMEM = { "Active Extruder: " }; //MSG_ACTIVE_EXTRUDER
const char MSGEN184[] PROGMEM = { "Invalid extruder" }; //MSG_INVALID_EXTRUDER
const char MSGCZ184[] PROGMEM = { "Invalid extruder" }; //MSG_INVALID_EXTRUDER
const char MSGEN185[] PROGMEM = { "x_min: " }; //MSG_X_MIN
const char MSGCZ185[] PROGMEM = { "x_min: " }; //MSG_X_MIN
const char MSGEN186[] PROGMEM = { "x_max: " }; //MSG_X_MAX
const char MSGCZ186[] PROGMEM = { "x_max: " }; //MSG_X_MAX
const char MSGEN187[] PROGMEM = { "y_min: " }; //MSG_Y_MIN
const char MSGCZ187[] PROGMEM = { "y_min: " }; //MSG_Y_MIN
const char MSGEN188[] PROGMEM = { "y_max: " }; //MSG_Y_MAX
const char MSGCZ188[] PROGMEM = { "y_max: " }; //MSG_Y_MAX
const char MSGEN189[] PROGMEM = { "z_min: " }; //MSG_Z_MIN
const char MSGCZ189[] PROGMEM = { "z_min: " }; //MSG_Z_MIN
const char MSGEN190[] PROGMEM = { "z_max: " }; //MSG_Z_MAX
const char MSGCZ190[] PROGMEM = { "z_max: " }; //MSG_Z_MAX
const char MSGEN191[] PROGMEM = { "Reporting endstop status" }; //MSG_M119_REPORT
const char MSGCZ191[] PROGMEM = { "Reporting endstop status" }; //MSG_M119_REPORT
const char MSGEN192[] PROGMEM = { "TRIGGERED" }; //MSG_ENDSTOP_HIT
const char MSGCZ192[] PROGMEM = { "TRIGGERED" }; //MSG_ENDSTOP_HIT
const char MSGEN193[] PROGMEM = { "open" }; //MSG_ENDSTOP_OPEN
const char MSGCZ193[] PROGMEM = { "open" }; //MSG_ENDSTOP_OPEN
const char MSGEN194[] PROGMEM = { "Hotend offsets:" }; //MSG_HOTEND_OFFSET
const char MSGCZ194[] PROGMEM = { "Hotend offsets:" }; //MSG_HOTEND_OFFSET
const char MSGEN195[] PROGMEM = { "Cannot open subdir" }; //MSG_SD_CANT_OPEN_SUBDIR
const char MSGCZ195[] PROGMEM = { "Cannot open subdir" }; //MSG_SD_CANT_OPEN_SUBDIR
const char MSGEN196[] PROGMEM = { "SD init fail" }; //MSG_SD_INIT_FAIL
const char MSGCZ196[] PROGMEM = { "SD init fail" }; //MSG_SD_INIT_FAIL
const char MSGEN197[] PROGMEM = { "volume.init failed" }; //MSG_SD_VOL_INIT_FAIL
const char MSGCZ197[] PROGMEM = { "volume.init failed" }; //MSG_SD_VOL_INIT_FAIL
const char MSGEN198[] PROGMEM = { "openRoot failed" }; //MSG_SD_OPENROOT_FAIL
const char MSGCZ198[] PROGMEM = { "openRoot failed" }; //MSG_SD_OPENROOT_FAIL
const char MSGEN199[] PROGMEM = { "SD card ok" }; //MSG_SD_CARD_OK
const char MSGCZ199[] PROGMEM = { "SD card ok" }; //MSG_SD_CARD_OK
const char MSGEN200[] PROGMEM = { "workDir open failed" }; //MSG_SD_WORKDIR_FAIL
const char MSGCZ200[] PROGMEM = { "workDir open failed" }; //MSG_SD_WORKDIR_FAIL
const char MSGEN201[] PROGMEM = { "open failed, File: " }; //MSG_SD_OPEN_FILE_FAIL
const char MSGCZ201[] PROGMEM = { "open failed, File: " }; //MSG_SD_OPEN_FILE_FAIL
const char MSGEN202[] PROGMEM = { "File opened: " }; //MSG_SD_FILE_OPENED
const char MSGCZ202[] PROGMEM = { "File opened: " }; //MSG_SD_FILE_OPENED
const char MSGEN203[] PROGMEM = { " Size: " }; //MSG_SD_SIZE
const char MSGCZ203[] PROGMEM = { " Size: " }; //MSG_SD_SIZE
const char MSGEN204[] PROGMEM = { "File selected" }; //MSG_SD_FILE_SELECTED
const char MSGCZ204[] PROGMEM = { "File selected" }; //MSG_SD_FILE_SELECTED
const char MSGEN205[] PROGMEM = { "Writing to file: " }; //MSG_SD_WRITE_TO_FILE
const char MSGCZ205[] PROGMEM = { "Writing to file: " }; //MSG_SD_WRITE_TO_FILE
const char MSGEN206[] PROGMEM = { "SD printing byte " }; //MSG_SD_PRINTING_BYTE
const char MSGCZ206[] PROGMEM = { "SD printing byte " }; //MSG_SD_PRINTING_BYTE
const char MSGEN207[] PROGMEM = { "Not SD printing" }; //MSG_SD_NOT_PRINTING
const char MSGCZ207[] PROGMEM = { "Not SD printing" }; //MSG_SD_NOT_PRINTING
const char MSGEN208[] PROGMEM = { "error writing to file" }; //MSG_SD_ERR_WRITE_TO_FILE
const char MSGCZ208[] PROGMEM = { "error writing to file" }; //MSG_SD_ERR_WRITE_TO_FILE
const char MSGEN209[] PROGMEM = { "Cannot enter subdir: " }; //MSG_SD_CANT_ENTER_SUBDIR
const char MSGCZ209[] PROGMEM = { "Cannot enter subdir: " }; //MSG_SD_CANT_ENTER_SUBDIR
const char MSGEN210[] PROGMEM = { "Steprate too high: " }; //MSG_STEPPER_TOO_HIGH
const char MSGCZ210[] PROGMEM = { "Steprate too high: " }; //MSG_STEPPER_TOO_HIGH
const char MSGEN211[] PROGMEM = { "endstops hit: " }; //MSG_ENDSTOPS_HIT
const char MSGCZ211[] PROGMEM = { "endstops hit: " }; //MSG_ENDSTOPS_HIT
const char MSGEN212[] PROGMEM = { " cold extrusion prevented" }; //MSG_ERR_COLD_EXTRUDE_STOP
const char MSGCZ212[] PROGMEM = { " cold extrusion prevented" }; //MSG_ERR_COLD_EXTRUDE_STOP
const char MSGEN213[] PROGMEM = { " too long extrusion prevented" }; //MSG_ERR_LONG_EXTRUDE_STOP
const char MSGCZ213[] PROGMEM = { " too long extrusion prevented" }; //MSG_ERR_LONG_EXTRUDE_STOP
const char MSGEN214[] PROGMEM = { "Babystepping X" }; //MSG_BABYSTEPPING_X
const char MSGCZ214[] PROGMEM = { "Babystepping X" }; //MSG_BABYSTEPPING_X
const char MSGEN215[] PROGMEM = { "Babystepping Y" }; //MSG_BABYSTEPPING_Y
const char MSGCZ215[] PROGMEM = { "Babystepping Y" }; //MSG_BABYSTEPPING_Y
const char MSGEN216[] PROGMEM = { "Adjusting Z" }; //MSG_BABYSTEPPING_Z
const char MSGCZ216[] PROGMEM = { "Dostavovani Z" }; //MSG_BABYSTEPPING_Z
const char MSGEN217[] PROGMEM = { "Error in menu structure" }; //MSG_SERIAL_ERROR_MENU_STRUCTURE
const char MSGCZ217[] PROGMEM = { "Error in menu structure" }; //MSG_SERIAL_ERROR_MENU_STRUCTURE
const char MSGEN218[] PROGMEM = { "English" }; //MSG_LANGUAGE_NAME
const char MSGCZ218[] PROGMEM = { "Cestina" }; //MSG_LANGUAGE_NAME
const char MSGEN219[] PROGMEM = { "Select language " }; //MSG_LANGUAGE_SELECT
const char MSGCZ219[] PROGMEM = { "Vyber jazyka " }; //MSG_LANGUAGE_SELECT
const char MSGEN220[] PROGMEM = { "prusa3d.com" }; //MSG_PRUSA3D
const char MSGCZ220[] PROGMEM = { "prusa3d.cz" }; //MSG_PRUSA3D
const char MSGEN221[] PROGMEM = { "forum.prusa3d.com" }; //MSG_PRUSA3D_FORUM
const char MSGCZ221[] PROGMEM = { "forum.prusa3d.cz" }; //MSG_PRUSA3D_FORUM
const char MSGEN222[] PROGMEM = { "howto.prusa3d.com" }; //MSG_PRUSA3D_HOWTO
const char MSGCZ222[] PROGMEM = { "howto.prusa3d.cz" }; //MSG_PRUSA3D_HOWTO
const char* MSGEN[] = {MSGEN0, //WELCOME_MSG
MSGEN1, //MSG_SD_INSERTED
MSGEN2, //MSG_SD_REMOVED
MSGEN3, //MSG_MAIN
MSGEN4, //MSG_AUTOSTART
MSGEN5, //MSG_DISABLE_STEPPERS
MSGEN6, //MSG_AUTO_HOME
MSGEN7, //MSG_SET_HOME_OFFSETS
MSGEN8, //MSG_SET_ORIGIN
MSGEN9, //MSG_PREHEAT_PLA
MSGEN10, //MSG_PREHEAT_PLA0
MSGEN11, //MSG_PREHEAT_PLA1
MSGEN12, //MSG_PREHEAT_PLA2
MSGEN13, //MSG_PREHEAT_PLA012
MSGEN14, //MSG_PREHEAT_PLA_BEDONLY
MSGEN15, //MSG_PREHEAT_PLA_SETTINGS
MSGEN16, //MSG_PREHEAT_ABS
MSGEN17, //MSG_PREHEAT_ABS0
MSGEN18, //MSG_PREHEAT_ABS1
MSGEN19, //MSG_PREHEAT_ABS2
MSGEN20, //MSG_PREHEAT_ABS012
MSGEN21, //MSG_PREHEAT_ABS_BEDONLY
MSGEN22, //MSG_PREHEAT_ABS_SETTINGS
MSGEN23, //MSG_COOLDOWN
MSGEN24, //MSG_SWITCH_PS_ON
MSGEN25, //MSG_SWITCH_PS_OFF
MSGEN26, //MSG_EXTRUDE
MSGEN27, //MSG_RETRACT
MSGEN28, //MSG_MOVE_AXIS
MSGEN29, //MSG_MOVE_X
MSGEN30, //MSG_MOVE_Y
MSGEN31, //MSG_MOVE_Z
MSGEN32, //MSG_MOVE_E
MSGEN33, //MSG_MOVE_E1
MSGEN34, //MSG_MOVE_E2
MSGEN35, //MSG_MOVE_01MM
MSGEN36, //MSG_MOVE_1MM
MSGEN37, //MSG_MOVE_10MM
MSGEN38, //MSG_SPEED
MSGEN39, //MSG_NOZZLE
MSGEN40, //MSG_NOZZLE1
MSGEN41, //MSG_NOZZLE2
MSGEN42, //MSG_BED
MSGEN43, //MSG_FAN_SPEED
MSGEN44, //MSG_FLOW
MSGEN45, //MSG_FLOW0
MSGEN46, //MSG_FLOW1
MSGEN47, //MSG_FLOW2
MSGEN48, //MSG_CONTROL
MSGEN49, //MSG_MIN
MSGEN50, //MSG_MAX
MSGEN51, //MSG_FACTOR
MSGEN52, //MSG_AUTOTEMP
MSGEN53, //MSG_ON
MSGEN54, //MSG_OFF
MSGEN55, //MSG_PID_P
MSGEN56, //MSG_PID_I
MSGEN57, //MSG_PID_D
MSGEN58, //MSG_PID_C
MSGEN59, //MSG_ACC
MSGEN60, //MSG_VXY_JERK
MSGEN61, //MSG_VZ_JERK
MSGEN62, //MSG_VE_JERK
MSGEN63, //MSG_VMAX
MSGEN64, //MSG_X
MSGEN65, //MSG_Y
MSGEN66, //MSG_Z
MSGEN67, //MSG_E
MSGEN68, //MSG_VMIN
MSGEN69, //MSG_VTRAV_MIN
MSGEN70, //MSG_AMAX
MSGEN71, //MSG_A_RETRACT
MSGEN72, //MSG_XSTEPS
MSGEN73, //MSG_YSTEPS
MSGEN74, //MSG_ZSTEPS
MSGEN75, //MSG_ESTEPS
MSGEN76, //MSG_TEMPERATURE
MSGEN77, //MSG_MOTION
MSGEN78, //MSG_VOLUMETRIC
MSGEN79, //MSG_VOLUMETRIC_ENABLED
MSGEN80, //MSG_FILAMENT_SIZE_EXTRUDER_0
MSGEN81, //MSG_FILAMENT_SIZE_EXTRUDER_1
MSGEN82, //MSG_FILAMENT_SIZE_EXTRUDER_2
MSGEN83, //MSG_CONTRAST
MSGEN84, //MSG_STORE_EPROM
MSGEN85, //MSG_LOAD_EPROM
MSGEN86, //MSG_RESTORE_FAILSAFE
MSGEN87, //MSG_REFRESH
MSGEN88, //MSG_WATCH
MSGEN89, //MSG_PREPARE
MSGEN90, //MSG_TUNE
MSGEN91, //MSG_PAUSE_PRINT
MSGEN92, //MSG_RESUME_PRINT
MSGEN93, //MSG_STOP_PRINT
MSGEN94, //MSG_CARD_MENU
MSGEN95, //MSG_NO_CARD
MSGEN96, //MSG_DWELL
MSGEN97, //MSG_USERWAIT
MSGEN98, //MSG_RESUMING
MSGEN99, //MSG_PRINT_ABORTED
MSGEN100, //MSG_NO_MOVE
MSGEN101, //MSG_KILLED
MSGEN102, //MSG_STOPPED
MSGEN103, //MSG_CONTROL_RETRACT
MSGEN104, //MSG_CONTROL_RETRACT_SWAP
MSGEN105, //MSG_CONTROL_RETRACTF
MSGEN106, //MSG_CONTROL_RETRACT_ZLIFT
MSGEN107, //MSG_CONTROL_RETRACT_RECOVER
MSGEN108, //MSG_CONTROL_RETRACT_RECOVER_SWAP
MSGEN109, //MSG_CONTROL_RETRACT_RECOVERF
MSGEN110, //MSG_AUTORETRACT
MSGEN111, //MSG_FILAMENTCHANGE
MSGEN112, //MSG_INIT_SDCARD
MSGEN113, //MSG_CNG_SDCARD
MSGEN114, //MSG_ZPROBE_OUT
MSGEN115, //MSG_POSITION_UNKNOWN
MSGEN116, //MSG_ZPROBE_ZOFFSET
MSGEN117, //MSG_BABYSTEP_X
MSGEN118, //MSG_BABYSTEP_Y
MSGEN119, //MSG_BABYSTEP_Z
MSGEN120, //MSG_ENDSTOP_ABORT
MSGEN121, //MSG_ADJUSTZ
MSGEN122, //MSG_HOMEYZ
MSGEN123, //MSG_SETTINGS
MSGEN124, //MSG_PREHEAT
MSGEN125, //MSG_UNLOAD_FILAMENT
MSGEN126, //MSG_LOAD_FILAMENT
MSGEN127, //MSG_RECTRACT
MSGEN128, //MSG_ERROR
MSGEN129, //MSG_PREHEAT_NOZZLE
MSGEN130, //MSG_SUPPORT
MSGEN131, //MSG_CORRECTLY
MSGEN132, //MSG_YES
MSGEN133, //MSG_NO
MSGEN134, //MSG_NOT_LOADED
MSGEN135, //MSG_NOT_COLOR
MSGEN136, //MSG_LOADING_FILAMENT
MSGEN137, //MSG_PLEASE_WAIT
MSGEN138, //MSG_LOADING_COLOR
MSGEN139, //MSG_CHANGE_SUCCESS
MSGEN140, //MSG_PRESS
MSGEN141, //MSG_INSERT_FILAMENT
MSGEN142, //MSG_CHANGING_FILAMENT
MSGEN143, //MSG_SILENT_MODE_ON
MSGEN144, //MSG_SILENT_MODE_OFF
MSGEN145, //MSG_REBOOT
MSGEN146, //MSG_TAKE_EFFECT
MSGEN147, //MSG_Enqueing
MSGEN148, //MSG_POWERUP
MSGEN149, //MSG_EXTERNAL_RESET
MSGEN150, //MSG_BROWNOUT_RESET
MSGEN151, //MSG_WATCHDOG_RESET
MSGEN152, //MSG_SOFTWARE_RESET
MSGEN153, //MSG_AUTHOR
MSGEN154, //MSG_CONFIGURATION_VER
MSGEN155, //MSG_FREE_MEMORY
MSGEN156, //MSG_PLANNER_BUFFER_BYTES
MSGEN157, //MSG_OK
MSGEN158, //MSG_FILE_SAVED
MSGEN159, //MSG_ERR_LINE_NO
MSGEN160, //MSG_ERR_CHECKSUM_MISMATCH
MSGEN161, //MSG_ERR_NO_CHECKSUM
MSGEN162, //MSG_ERR_NO_LINENUMBER_WITH_CHECKSUM
MSGEN163, //MSG_FILE_PRINTED
MSGEN164, //MSG_BEGIN_FILE_LIST
MSGEN165, //MSG_END_FILE_LIST
MSGEN166, //MSG_M104_INVALID_EXTRUDER
MSGEN167, //MSG_M105_INVALID_EXTRUDER
MSGEN168, //MSG_M200_INVALID_EXTRUDER
MSGEN169, //MSG_M218_INVALID_EXTRUDER
MSGEN170, //MSG_M221_INVALID_EXTRUDER
MSGEN171, //MSG_ERR_NO_THERMISTORS
MSGEN172, //MSG_M109_INVALID_EXTRUDER
MSGEN173, //MSG_HEATING
MSGEN174, //MSG_HEATING_COMPLETE
MSGEN175, //MSG_BED_HEATING
MSGEN176, //MSG_BED_DONE
MSGEN177, //MSG_M115_REPORT
MSGEN178, //MSG_COUNT_X
MSGEN179, //MSG_ERR_KILLED
MSGEN180, //MSG_ERR_STOPPED
MSGEN181, //MSG_RESEND
MSGEN182, //MSG_UNKNOWN_COMMAND
MSGEN183, //MSG_ACTIVE_EXTRUDER
MSGEN184, //MSG_INVALID_EXTRUDER
MSGEN185, //MSG_X_MIN
MSGEN186, //MSG_X_MAX
MSGEN187, //MSG_Y_MIN
MSGEN188, //MSG_Y_MAX
MSGEN189, //MSG_Z_MIN
MSGEN190, //MSG_Z_MAX
MSGEN191, //MSG_M119_REPORT
MSGEN192, //MSG_ENDSTOP_HIT
MSGEN193, //MSG_ENDSTOP_OPEN
MSGEN194, //MSG_HOTEND_OFFSET
MSGEN195, //MSG_SD_CANT_OPEN_SUBDIR
MSGEN196, //MSG_SD_INIT_FAIL
MSGEN197, //MSG_SD_VOL_INIT_FAIL
MSGEN198, //MSG_SD_OPENROOT_FAIL
MSGEN199, //MSG_SD_CARD_OK
MSGEN200, //MSG_SD_WORKDIR_FAIL
MSGEN201, //MSG_SD_OPEN_FILE_FAIL
MSGEN202, //MSG_SD_FILE_OPENED
MSGEN203, //MSG_SD_SIZE
MSGEN204, //MSG_SD_FILE_SELECTED
MSGEN205, //MSG_SD_WRITE_TO_FILE
MSGEN206, //MSG_SD_PRINTING_BYTE
MSGEN207, //MSG_SD_NOT_PRINTING
MSGEN208, //MSG_SD_ERR_WRITE_TO_FILE
MSGEN209, //MSG_SD_CANT_ENTER_SUBDIR
MSGEN210, //MSG_STEPPER_TOO_HIGH
MSGEN211, //MSG_ENDSTOPS_HIT
MSGEN212, //MSG_ERR_COLD_EXTRUDE_STOP
MSGEN213, //MSG_ERR_LONG_EXTRUDE_STOP
MSGEN214, //MSG_BABYSTEPPING_X
MSGEN215, //MSG_BABYSTEPPING_Y
MSGEN216, //MSG_BABYSTEPPING_Z
MSGEN217, //MSG_SERIAL_ERROR_MENU_STRUCTURE
MSGEN218, //MSG_LANGUAGE_NAME
MSGEN219, //MSG_LANGUAGE_SELECT
MSGEN220, //MSG_PRUSA3D
MSGEN221, //MSG_PRUSA3D_FORUM
MSGEN222, //MSG_PRUSA3D_HOWTO
};
const char* MSGCZ[] = {MSGCZ0, //WELCOME_MSG
MSGCZ1, //MSG_SD_INSERTED
MSGCZ2, //MSG_SD_REMOVED
MSGCZ3, //MSG_MAIN
MSGCZ4, //MSG_AUTOSTART
MSGCZ5, //MSG_DISABLE_STEPPERS
MSGCZ6, //MSG_AUTO_HOME
MSGCZ7, //MSG_SET_HOME_OFFSETS
MSGCZ8, //MSG_SET_ORIGIN
MSGCZ9, //MSG_PREHEAT_PLA
MSGCZ10, //MSG_PREHEAT_PLA0
MSGCZ11, //MSG_PREHEAT_PLA1
MSGCZ12, //MSG_PREHEAT_PLA2
MSGCZ13, //MSG_PREHEAT_PLA012
MSGCZ14, //MSG_PREHEAT_PLA_BEDONLY
MSGCZ15, //MSG_PREHEAT_PLA_SETTINGS
MSGCZ16, //MSG_PREHEAT_ABS
MSGCZ17, //MSG_PREHEAT_ABS0
MSGCZ18, //MSG_PREHEAT_ABS1
MSGCZ19, //MSG_PREHEAT_ABS2
MSGCZ20, //MSG_PREHEAT_ABS012
MSGCZ21, //MSG_PREHEAT_ABS_BEDONLY
MSGCZ22, //MSG_PREHEAT_ABS_SETTINGS
MSGCZ23, //MSG_COOLDOWN
MSGCZ24, //MSG_SWITCH_PS_ON
MSGCZ25, //MSG_SWITCH_PS_OFF
MSGCZ26, //MSG_EXTRUDE
MSGCZ27, //MSG_RETRACT
MSGCZ28, //MSG_MOVE_AXIS
MSGCZ29, //MSG_MOVE_X
MSGCZ30, //MSG_MOVE_Y
MSGCZ31, //MSG_MOVE_Z
MSGCZ32, //MSG_MOVE_E
MSGCZ33, //MSG_MOVE_E1
MSGCZ34, //MSG_MOVE_E2
MSGCZ35, //MSG_MOVE_01MM
MSGCZ36, //MSG_MOVE_1MM
MSGCZ37, //MSG_MOVE_10MM
MSGCZ38, //MSG_SPEED
MSGCZ39, //MSG_NOZZLE
MSGCZ40, //MSG_NOZZLE1
MSGCZ41, //MSG_NOZZLE2
MSGCZ42, //MSG_BED
MSGCZ43, //MSG_FAN_SPEED
MSGCZ44, //MSG_FLOW
MSGCZ45, //MSG_FLOW0
MSGCZ46, //MSG_FLOW1
MSGCZ47, //MSG_FLOW2
MSGCZ48, //MSG_CONTROL
MSGCZ49, //MSG_MIN
MSGCZ50, //MSG_MAX
MSGCZ51, //MSG_FACTOR
MSGCZ52, //MSG_AUTOTEMP
MSGCZ53, //MSG_ON
MSGCZ54, //MSG_OFF
MSGCZ55, //MSG_PID_P
MSGCZ56, //MSG_PID_I
MSGCZ57, //MSG_PID_D
MSGCZ58, //MSG_PID_C
MSGCZ59, //MSG_ACC
MSGCZ60, //MSG_VXY_JERK
MSGCZ61, //MSG_VZ_JERK
MSGCZ62, //MSG_VE_JERK
MSGCZ63, //MSG_VMAX
MSGCZ64, //MSG_X
MSGCZ65, //MSG_Y
MSGCZ66, //MSG_Z
MSGCZ67, //MSG_E
MSGCZ68, //MSG_VMIN
MSGCZ69, //MSG_VTRAV_MIN
MSGCZ70, //MSG_AMAX
MSGCZ71, //MSG_A_RETRACT
MSGCZ72, //MSG_XSTEPS
MSGCZ73, //MSG_YSTEPS
MSGCZ74, //MSG_ZSTEPS
MSGCZ75, //MSG_ESTEPS
MSGCZ76, //MSG_TEMPERATURE
MSGCZ77, //MSG_MOTION
MSGCZ78, //MSG_VOLUMETRIC
MSGCZ79, //MSG_VOLUMETRIC_ENABLED
MSGCZ80, //MSG_FILAMENT_SIZE_EXTRUDER_0
MSGCZ81, //MSG_FILAMENT_SIZE_EXTRUDER_1
MSGCZ82, //MSG_FILAMENT_SIZE_EXTRUDER_2
MSGCZ83, //MSG_CONTRAST
MSGCZ84, //MSG_STORE_EPROM
MSGCZ85, //MSG_LOAD_EPROM
MSGCZ86, //MSG_RESTORE_FAILSAFE
MSGCZ87, //MSG_REFRESH
MSGCZ88, //MSG_WATCH
MSGCZ89, //MSG_PREPARE
MSGCZ90, //MSG_TUNE
MSGCZ91, //MSG_PAUSE_PRINT
MSGCZ92, //MSG_RESUME_PRINT
MSGCZ93, //MSG_STOP_PRINT
MSGCZ94, //MSG_CARD_MENU
MSGCZ95, //MSG_NO_CARD
MSGCZ96, //MSG_DWELL
MSGCZ97, //MSG_USERWAIT
MSGCZ98, //MSG_RESUMING
MSGCZ99, //MSG_PRINT_ABORTED
MSGCZ100, //MSG_NO_MOVE
MSGCZ101, //MSG_KILLED
MSGCZ102, //MSG_STOPPED
MSGCZ103, //MSG_CONTROL_RETRACT
MSGCZ104, //MSG_CONTROL_RETRACT_SWAP
MSGCZ105, //MSG_CONTROL_RETRACTF
MSGCZ106, //MSG_CONTROL_RETRACT_ZLIFT
MSGCZ107, //MSG_CONTROL_RETRACT_RECOVER
MSGCZ108, //MSG_CONTROL_RETRACT_RECOVER_SWAP
MSGCZ109, //MSG_CONTROL_RETRACT_RECOVERF
MSGCZ110, //MSG_AUTORETRACT
MSGCZ111, //MSG_FILAMENTCHANGE
MSGCZ112, //MSG_INIT_SDCARD
MSGCZ113, //MSG_CNG_SDCARD
MSGCZ114, //MSG_ZPROBE_OUT
MSGCZ115, //MSG_POSITION_UNKNOWN
MSGCZ116, //MSG_ZPROBE_ZOFFSET
MSGCZ117, //MSG_BABYSTEP_X
MSGCZ118, //MSG_BABYSTEP_Y
MSGCZ119, //MSG_BABYSTEP_Z
MSGCZ120, //MSG_ENDSTOP_ABORT
MSGCZ121, //MSG_ADJUSTZ
MSGCZ122, //MSG_HOMEYZ
MSGCZ123, //MSG_SETTINGS
MSGCZ124, //MSG_PREHEAT
MSGCZ125, //MSG_UNLOAD_FILAMENT
MSGCZ126, //MSG_LOAD_FILAMENT
MSGCZ127, //MSG_RECTRACT
MSGCZ128, //MSG_ERROR
MSGCZ129, //MSG_PREHEAT_NOZZLE
MSGCZ130, //MSG_SUPPORT
MSGCZ131, //MSG_CORRECTLY
MSGCZ132, //MSG_YES
MSGCZ133, //MSG_NO
MSGCZ134, //MSG_NOT_LOADED
MSGCZ135, //MSG_NOT_COLOR
MSGCZ136, //MSG_LOADING_FILAMENT
MSGCZ137, //MSG_PLEASE_WAIT
MSGCZ138, //MSG_LOADING_COLOR
MSGCZ139, //MSG_CHANGE_SUCCESS
MSGCZ140, //MSG_PRESS
MSGCZ141, //MSG_INSERT_FILAMENT
MSGCZ142, //MSG_CHANGING_FILAMENT
MSGCZ143, //MSG_SILENT_MODE_ON
MSGCZ144, //MSG_SILENT_MODE_OFF
MSGCZ145, //MSG_REBOOT
MSGCZ146, //MSG_TAKE_EFFECT
MSGCZ147, //MSG_Enqueing
MSGCZ148, //MSG_POWERUP
MSGCZ149, //MSG_EXTERNAL_RESET
MSGCZ150, //MSG_BROWNOUT_RESET
MSGCZ151, //MSG_WATCHDOG_RESET
MSGCZ152, //MSG_SOFTWARE_RESET
MSGCZ153, //MSG_AUTHOR
MSGCZ154, //MSG_CONFIGURATION_VER
MSGCZ155, //MSG_FREE_MEMORY
MSGCZ156, //MSG_PLANNER_BUFFER_BYTES
MSGCZ157, //MSG_OK
MSGCZ158, //MSG_FILE_SAVED
MSGCZ159, //MSG_ERR_LINE_NO
MSGCZ160, //MSG_ERR_CHECKSUM_MISMATCH
MSGCZ161, //MSG_ERR_NO_CHECKSUM
MSGCZ162, //MSG_ERR_NO_LINENUMBER_WITH_CHECKSUM
MSGCZ163, //MSG_FILE_PRINTED
MSGCZ164, //MSG_BEGIN_FILE_LIST
MSGCZ165, //MSG_END_FILE_LIST
MSGCZ166, //MSG_M104_INVALID_EXTRUDER
MSGCZ167, //MSG_M105_INVALID_EXTRUDER
MSGCZ168, //MSG_M200_INVALID_EXTRUDER
MSGCZ169, //MSG_M218_INVALID_EXTRUDER
MSGCZ170, //MSG_M221_INVALID_EXTRUDER
MSGCZ171, //MSG_ERR_NO_THERMISTORS
MSGCZ172, //MSG_M109_INVALID_EXTRUDER
MSGCZ173, //MSG_HEATING
MSGCZ174, //MSG_HEATING_COMPLETE
MSGCZ175, //MSG_BED_HEATING
MSGCZ176, //MSG_BED_DONE
MSGCZ177, //MSG_M115_REPORT
MSGCZ178, //MSG_COUNT_X
MSGCZ179, //MSG_ERR_KILLED
MSGCZ180, //MSG_ERR_STOPPED
MSGCZ181, //MSG_RESEND
MSGCZ182, //MSG_UNKNOWN_COMMAND
MSGCZ183, //MSG_ACTIVE_EXTRUDER
MSGCZ184, //MSG_INVALID_EXTRUDER
MSGCZ185, //MSG_X_MIN
MSGCZ186, //MSG_X_MAX
MSGCZ187, //MSG_Y_MIN
MSGCZ188, //MSG_Y_MAX
MSGCZ189, //MSG_Z_MIN
MSGCZ190, //MSG_Z_MAX
MSGCZ191, //MSG_M119_REPORT
MSGCZ192, //MSG_ENDSTOP_HIT
MSGCZ193, //MSG_ENDSTOP_OPEN
MSGCZ194, //MSG_HOTEND_OFFSET
MSGCZ195, //MSG_SD_CANT_OPEN_SUBDIR
MSGCZ196, //MSG_SD_INIT_FAIL
MSGCZ197, //MSG_SD_VOL_INIT_FAIL
MSGCZ198, //MSG_SD_OPENROOT_FAIL
MSGCZ199, //MSG_SD_CARD_OK
MSGCZ200, //MSG_SD_WORKDIR_FAIL
MSGCZ201, //MSG_SD_OPEN_FILE_FAIL
MSGCZ202, //MSG_SD_FILE_OPENED
MSGCZ203, //MSG_SD_SIZE
MSGCZ204, //MSG_SD_FILE_SELECTED
MSGCZ205, //MSG_SD_WRITE_TO_FILE
MSGCZ206, //MSG_SD_PRINTING_BYTE
MSGCZ207, //MSG_SD_NOT_PRINTING
MSGCZ208, //MSG_SD_ERR_WRITE_TO_FILE
MSGCZ209, //MSG_SD_CANT_ENTER_SUBDIR
MSGCZ210, //MSG_STEPPER_TOO_HIGH
MSGCZ211, //MSG_ENDSTOPS_HIT
MSGCZ212, //MSG_ERR_COLD_EXTRUDE_STOP
MSGCZ213, //MSG_ERR_LONG_EXTRUDE_STOP
MSGCZ214, //MSG_BABYSTEPPING_X
MSGCZ215, //MSG_BABYSTEPPING_Y
MSGCZ216, //MSG_BABYSTEPPING_Z
MSGCZ217, //MSG_SERIAL_ERROR_MENU_STRUCTURE
MSGCZ218, //MSG_LANGUAGE_NAME
MSGCZ219, //MSG_LANGUAGE_SELECT
MSGCZ220, //MSG_PRUSA3D
MSGCZ221, //MSG_PRUSA3D_FORUM
MSGCZ222, //MSG_PRUSA3D_HOWTO
};
const char** MSG_ALL[] = {MSGEN,MSGCZ};
char langbuffer[LCD_WIDTH+1];
char* CAT2(const char *s1,const char *s2) {
unsigned char len=0;
strncpy_P(langbuffer+len,s1,LCD_WIDTH-len);
len+=strlen_P(s1);
strncpy_P(langbuffer+len,s2,LCD_WIDTH-len);
return langbuffer;
}
char* CAT4(const char *s1,const char *s2,const char *s3,const char *s4) {
unsigned char len=0;
strncpy_P(langbuffer+len,s1,LCD_WIDTH-len);
len+=strlen_P(s1);
strncpy_P(langbuffer+len,s2,LCD_WIDTH-len);
len+=strlen_P(s2);
strncpy_P(langbuffer+len,s3,LCD_WIDTH-len);
len+=strlen_P(s3);
strncpy_P(langbuffer+len,s4,LCD_WIDTH-len);
return langbuffer;
}

237
language_all.h Normal file
View file

@ -0,0 +1,237 @@
#ifndef LANGUAGE_ALL_H
#define LANGUAGE_ALL_H
extern unsigned char lang_selected;
extern const char** MSG_ALL[];
#define WELCOME_MSG MSG_ALL[lang_selected][0]
#define MSG_SD_INSERTED MSG_ALL[lang_selected][1]
#define MSG_SD_REMOVED MSG_ALL[lang_selected][2]
#define MSG_MAIN MSG_ALL[lang_selected][3]
#define MSG_AUTOSTART MSG_ALL[lang_selected][4]
#define MSG_DISABLE_STEPPERS MSG_ALL[lang_selected][5]
#define MSG_AUTO_HOME MSG_ALL[lang_selected][6]
#define MSG_SET_HOME_OFFSETS MSG_ALL[lang_selected][7]
#define MSG_SET_ORIGIN MSG_ALL[lang_selected][8]
#define MSG_PREHEAT_PLA MSG_ALL[lang_selected][9]
#define MSG_PREHEAT_PLA0 MSG_ALL[lang_selected][10]
#define MSG_PREHEAT_PLA1 MSG_ALL[lang_selected][11]
#define MSG_PREHEAT_PLA2 MSG_ALL[lang_selected][12]
#define MSG_PREHEAT_PLA012 MSG_ALL[lang_selected][13]
#define MSG_PREHEAT_PLA_BEDONLY MSG_ALL[lang_selected][14]
#define MSG_PREHEAT_PLA_SETTINGS MSG_ALL[lang_selected][15]
#define MSG_PREHEAT_ABS MSG_ALL[lang_selected][16]
#define MSG_PREHEAT_ABS0 MSG_ALL[lang_selected][17]
#define MSG_PREHEAT_ABS1 MSG_ALL[lang_selected][18]
#define MSG_PREHEAT_ABS2 MSG_ALL[lang_selected][19]
#define MSG_PREHEAT_ABS012 MSG_ALL[lang_selected][20]
#define MSG_PREHEAT_ABS_BEDONLY MSG_ALL[lang_selected][21]
#define MSG_PREHEAT_ABS_SETTINGS MSG_ALL[lang_selected][22]
#define MSG_COOLDOWN MSG_ALL[lang_selected][23]
#define MSG_SWITCH_PS_ON MSG_ALL[lang_selected][24]
#define MSG_SWITCH_PS_OFF MSG_ALL[lang_selected][25]
#define MSG_EXTRUDE MSG_ALL[lang_selected][26]
#define MSG_RETRACT MSG_ALL[lang_selected][27]
#define MSG_MOVE_AXIS MSG_ALL[lang_selected][28]
#define MSG_MOVE_X MSG_ALL[lang_selected][29]
#define MSG_MOVE_Y MSG_ALL[lang_selected][30]
#define MSG_MOVE_Z MSG_ALL[lang_selected][31]
#define MSG_MOVE_E MSG_ALL[lang_selected][32]
#define MSG_MOVE_E1 MSG_ALL[lang_selected][33]
#define MSG_MOVE_E2 MSG_ALL[lang_selected][34]
#define MSG_MOVE_01MM MSG_ALL[lang_selected][35]
#define MSG_MOVE_1MM MSG_ALL[lang_selected][36]
#define MSG_MOVE_10MM MSG_ALL[lang_selected][37]
#define MSG_SPEED MSG_ALL[lang_selected][38]
#define MSG_NOZZLE MSG_ALL[lang_selected][39]
#define MSG_NOZZLE1 MSG_ALL[lang_selected][40]
#define MSG_NOZZLE2 MSG_ALL[lang_selected][41]
#define MSG_BED MSG_ALL[lang_selected][42]
#define MSG_FAN_SPEED MSG_ALL[lang_selected][43]
#define MSG_FLOW MSG_ALL[lang_selected][44]
#define MSG_FLOW0 MSG_ALL[lang_selected][45]
#define MSG_FLOW1 MSG_ALL[lang_selected][46]
#define MSG_FLOW2 MSG_ALL[lang_selected][47]
#define MSG_CONTROL MSG_ALL[lang_selected][48]
#define MSG_MIN MSG_ALL[lang_selected][49]
#define MSG_MAX MSG_ALL[lang_selected][50]
#define MSG_FACTOR MSG_ALL[lang_selected][51]
#define MSG_AUTOTEMP MSG_ALL[lang_selected][52]
#define MSG_ON MSG_ALL[lang_selected][53]
#define MSG_OFF MSG_ALL[lang_selected][54]
#define MSG_PID_P MSG_ALL[lang_selected][55]
#define MSG_PID_I MSG_ALL[lang_selected][56]
#define MSG_PID_D MSG_ALL[lang_selected][57]
#define MSG_PID_C MSG_ALL[lang_selected][58]
#define MSG_ACC MSG_ALL[lang_selected][59]
#define MSG_VXY_JERK MSG_ALL[lang_selected][60]
#define MSG_VZ_JERK MSG_ALL[lang_selected][61]
#define MSG_VE_JERK MSG_ALL[lang_selected][62]
#define MSG_VMAX MSG_ALL[lang_selected][63]
#define MSG_X MSG_ALL[lang_selected][64]
#define MSG_Y MSG_ALL[lang_selected][65]
#define MSG_Z MSG_ALL[lang_selected][66]
#define MSG_E MSG_ALL[lang_selected][67]
#define MSG_VMIN MSG_ALL[lang_selected][68]
#define MSG_VTRAV_MIN MSG_ALL[lang_selected][69]
#define MSG_AMAX MSG_ALL[lang_selected][70]
#define MSG_A_RETRACT MSG_ALL[lang_selected][71]
#define MSG_XSTEPS MSG_ALL[lang_selected][72]
#define MSG_YSTEPS MSG_ALL[lang_selected][73]
#define MSG_ZSTEPS MSG_ALL[lang_selected][74]
#define MSG_ESTEPS MSG_ALL[lang_selected][75]
#define MSG_TEMPERATURE MSG_ALL[lang_selected][76]
#define MSG_MOTION MSG_ALL[lang_selected][77]
#define MSG_VOLUMETRIC MSG_ALL[lang_selected][78]
#define MSG_VOLUMETRIC_ENABLED MSG_ALL[lang_selected][79]
#define MSG_FILAMENT_SIZE_EXTRUDER_0 MSG_ALL[lang_selected][80]
#define MSG_FILAMENT_SIZE_EXTRUDER_1 MSG_ALL[lang_selected][81]
#define MSG_FILAMENT_SIZE_EXTRUDER_2 MSG_ALL[lang_selected][82]
#define MSG_CONTRAST MSG_ALL[lang_selected][83]
#define MSG_STORE_EPROM MSG_ALL[lang_selected][84]
#define MSG_LOAD_EPROM MSG_ALL[lang_selected][85]
#define MSG_RESTORE_FAILSAFE MSG_ALL[lang_selected][86]
#define MSG_REFRESH MSG_ALL[lang_selected][87]
#define MSG_WATCH MSG_ALL[lang_selected][88]
#define MSG_PREPARE MSG_ALL[lang_selected][89]
#define MSG_TUNE MSG_ALL[lang_selected][90]
#define MSG_PAUSE_PRINT MSG_ALL[lang_selected][91]
#define MSG_RESUME_PRINT MSG_ALL[lang_selected][92]
#define MSG_STOP_PRINT MSG_ALL[lang_selected][93]
#define MSG_CARD_MENU MSG_ALL[lang_selected][94]
#define MSG_NO_CARD MSG_ALL[lang_selected][95]
#define MSG_DWELL MSG_ALL[lang_selected][96]
#define MSG_USERWAIT MSG_ALL[lang_selected][97]
#define MSG_RESUMING MSG_ALL[lang_selected][98]
#define MSG_PRINT_ABORTED MSG_ALL[lang_selected][99]
#define MSG_NO_MOVE MSG_ALL[lang_selected][100]
#define MSG_KILLED MSG_ALL[lang_selected][101]
#define MSG_STOPPED MSG_ALL[lang_selected][102]
#define MSG_CONTROL_RETRACT MSG_ALL[lang_selected][103]
#define MSG_CONTROL_RETRACT_SWAP MSG_ALL[lang_selected][104]
#define MSG_CONTROL_RETRACTF MSG_ALL[lang_selected][105]
#define MSG_CONTROL_RETRACT_ZLIFT MSG_ALL[lang_selected][106]
#define MSG_CONTROL_RETRACT_RECOVER MSG_ALL[lang_selected][107]
#define MSG_CONTROL_RETRACT_RECOVER_SWAP MSG_ALL[lang_selected][108]
#define MSG_CONTROL_RETRACT_RECOVERF MSG_ALL[lang_selected][109]
#define MSG_AUTORETRACT MSG_ALL[lang_selected][110]
#define MSG_FILAMENTCHANGE MSG_ALL[lang_selected][111]
#define MSG_INIT_SDCARD MSG_ALL[lang_selected][112]
#define MSG_CNG_SDCARD MSG_ALL[lang_selected][113]
#define MSG_ZPROBE_OUT MSG_ALL[lang_selected][114]
#define MSG_POSITION_UNKNOWN MSG_ALL[lang_selected][115]
#define MSG_ZPROBE_ZOFFSET MSG_ALL[lang_selected][116]
#define MSG_BABYSTEP_X MSG_ALL[lang_selected][117]
#define MSG_BABYSTEP_Y MSG_ALL[lang_selected][118]
#define MSG_BABYSTEP_Z MSG_ALL[lang_selected][119]
#define MSG_ENDSTOP_ABORT MSG_ALL[lang_selected][120]
#define MSG_ADJUSTZ MSG_ALL[lang_selected][121]
#define MSG_HOMEYZ MSG_ALL[lang_selected][122]
#define MSG_SETTINGS MSG_ALL[lang_selected][123]
#define MSG_PREHEAT MSG_ALL[lang_selected][124]
#define MSG_UNLOAD_FILAMENT MSG_ALL[lang_selected][125]
#define MSG_LOAD_FILAMENT MSG_ALL[lang_selected][126]
#define MSG_RECTRACT MSG_ALL[lang_selected][127]
#define MSG_ERROR MSG_ALL[lang_selected][128]
#define MSG_PREHEAT_NOZZLE MSG_ALL[lang_selected][129]
#define MSG_SUPPORT MSG_ALL[lang_selected][130]
#define MSG_CORRECTLY MSG_ALL[lang_selected][131]
#define MSG_YES MSG_ALL[lang_selected][132]
#define MSG_NO MSG_ALL[lang_selected][133]
#define MSG_NOT_LOADED MSG_ALL[lang_selected][134]
#define MSG_NOT_COLOR MSG_ALL[lang_selected][135]
#define MSG_LOADING_FILAMENT MSG_ALL[lang_selected][136]
#define MSG_PLEASE_WAIT MSG_ALL[lang_selected][137]
#define MSG_LOADING_COLOR MSG_ALL[lang_selected][138]
#define MSG_CHANGE_SUCCESS MSG_ALL[lang_selected][139]
#define MSG_PRESS MSG_ALL[lang_selected][140]
#define MSG_INSERT_FILAMENT MSG_ALL[lang_selected][141]
#define MSG_CHANGING_FILAMENT MSG_ALL[lang_selected][142]
#define MSG_SILENT_MODE_ON MSG_ALL[lang_selected][143]
#define MSG_SILENT_MODE_OFF MSG_ALL[lang_selected][144]
#define MSG_REBOOT MSG_ALL[lang_selected][145]
#define MSG_TAKE_EFFECT MSG_ALL[lang_selected][146]
#define MSG_Enqueing MSG_ALL[lang_selected][147]
#define MSG_POWERUP MSG_ALL[lang_selected][148]
#define MSG_EXTERNAL_RESET MSG_ALL[lang_selected][149]
#define MSG_BROWNOUT_RESET MSG_ALL[lang_selected][150]
#define MSG_WATCHDOG_RESET MSG_ALL[lang_selected][151]
#define MSG_SOFTWARE_RESET MSG_ALL[lang_selected][152]
#define MSG_AUTHOR MSG_ALL[lang_selected][153]
#define MSG_CONFIGURATION_VER MSG_ALL[lang_selected][154]
#define MSG_FREE_MEMORY MSG_ALL[lang_selected][155]
#define MSG_PLANNER_BUFFER_BYTES MSG_ALL[lang_selected][156]
#define MSG_OK MSG_ALL[lang_selected][157]
#define MSG_FILE_SAVED MSG_ALL[lang_selected][158]
#define MSG_ERR_LINE_NO MSG_ALL[lang_selected][159]
#define MSG_ERR_CHECKSUM_MISMATCH MSG_ALL[lang_selected][160]
#define MSG_ERR_NO_CHECKSUM MSG_ALL[lang_selected][161]
#define MSG_ERR_NO_LINENUMBER_WITH_CHECKSUM MSG_ALL[lang_selected][162]
#define MSG_FILE_PRINTED MSG_ALL[lang_selected][163]
#define MSG_BEGIN_FILE_LIST MSG_ALL[lang_selected][164]
#define MSG_END_FILE_LIST MSG_ALL[lang_selected][165]
#define MSG_M104_INVALID_EXTRUDER MSG_ALL[lang_selected][166]
#define MSG_M105_INVALID_EXTRUDER MSG_ALL[lang_selected][167]
#define MSG_M200_INVALID_EXTRUDER MSG_ALL[lang_selected][168]
#define MSG_M218_INVALID_EXTRUDER MSG_ALL[lang_selected][169]
#define MSG_M221_INVALID_EXTRUDER MSG_ALL[lang_selected][170]
#define MSG_ERR_NO_THERMISTORS MSG_ALL[lang_selected][171]
#define MSG_M109_INVALID_EXTRUDER MSG_ALL[lang_selected][172]
#define MSG_HEATING MSG_ALL[lang_selected][173]
#define MSG_HEATING_COMPLETE MSG_ALL[lang_selected][174]
#define MSG_BED_HEATING MSG_ALL[lang_selected][175]
#define MSG_BED_DONE MSG_ALL[lang_selected][176]
#define MSG_M115_REPORT MSG_ALL[lang_selected][177]
#define MSG_COUNT_X MSG_ALL[lang_selected][178]
#define MSG_ERR_KILLED MSG_ALL[lang_selected][179]
#define MSG_ERR_STOPPED MSG_ALL[lang_selected][180]
#define MSG_RESEND MSG_ALL[lang_selected][181]
#define MSG_UNKNOWN_COMMAND MSG_ALL[lang_selected][182]
#define MSG_ACTIVE_EXTRUDER MSG_ALL[lang_selected][183]
#define MSG_INVALID_EXTRUDER MSG_ALL[lang_selected][184]
#define MSG_X_MIN MSG_ALL[lang_selected][185]
#define MSG_X_MAX MSG_ALL[lang_selected][186]
#define MSG_Y_MIN MSG_ALL[lang_selected][187]
#define MSG_Y_MAX MSG_ALL[lang_selected][188]
#define MSG_Z_MIN MSG_ALL[lang_selected][189]
#define MSG_Z_MAX MSG_ALL[lang_selected][190]
#define MSG_M119_REPORT MSG_ALL[lang_selected][191]
#define MSG_ENDSTOP_HIT MSG_ALL[lang_selected][192]
#define MSG_ENDSTOP_OPEN MSG_ALL[lang_selected][193]
#define MSG_HOTEND_OFFSET MSG_ALL[lang_selected][194]
#define MSG_SD_CANT_OPEN_SUBDIR MSG_ALL[lang_selected][195]
#define MSG_SD_INIT_FAIL MSG_ALL[lang_selected][196]
#define MSG_SD_VOL_INIT_FAIL MSG_ALL[lang_selected][197]
#define MSG_SD_OPENROOT_FAIL MSG_ALL[lang_selected][198]
#define MSG_SD_CARD_OK MSG_ALL[lang_selected][199]
#define MSG_SD_WORKDIR_FAIL MSG_ALL[lang_selected][200]
#define MSG_SD_OPEN_FILE_FAIL MSG_ALL[lang_selected][201]
#define MSG_SD_FILE_OPENED MSG_ALL[lang_selected][202]
#define MSG_SD_SIZE MSG_ALL[lang_selected][203]
#define MSG_SD_FILE_SELECTED MSG_ALL[lang_selected][204]
#define MSG_SD_WRITE_TO_FILE MSG_ALL[lang_selected][205]
#define MSG_SD_PRINTING_BYTE MSG_ALL[lang_selected][206]
#define MSG_SD_NOT_PRINTING MSG_ALL[lang_selected][207]
#define MSG_SD_ERR_WRITE_TO_FILE MSG_ALL[lang_selected][208]
#define MSG_SD_CANT_ENTER_SUBDIR MSG_ALL[lang_selected][209]
#define MSG_STEPPER_TOO_HIGH MSG_ALL[lang_selected][210]
#define MSG_ENDSTOPS_HIT MSG_ALL[lang_selected][211]
#define MSG_ERR_COLD_EXTRUDE_STOP MSG_ALL[lang_selected][212]
#define MSG_ERR_LONG_EXTRUDE_STOP MSG_ALL[lang_selected][213]
#define MSG_BABYSTEPPING_X MSG_ALL[lang_selected][214]
#define MSG_BABYSTEPPING_Y MSG_ALL[lang_selected][215]
#define MSG_BABYSTEPPING_Z MSG_ALL[lang_selected][216]
#define MSG_SERIAL_ERROR_MENU_STRUCTURE MSG_ALL[lang_selected][217]
#define MSG_LANGUAGE_NAME MSG_ALL[lang_selected][218]
#define MSG_LANGUAGE_SELECT MSG_ALL[lang_selected][219]
#define MSG_PRUSA3D MSG_ALL[lang_selected][220]
#define MSG_PRUSA3D_FORUM MSG_ALL[lang_selected][221]
#define MSG_PRUSA3D_HOWTO MSG_ALL[lang_selected][222]
#define LANGUAGE_NAME 218
#define LANGUAGE_SELECT 219
#define LANG_NUM 2
char* CAT2(const char *s1,const char *s2);
char* CAT4(const char *s1,const char *s2,const char *s3,const char *s4);
#endif //LANGUAGE_ALL.H

View file

@ -233,5 +233,10 @@
#define MSG_BABYSTEPPING_Z "Dostavovani Z"
#define MSG_SERIAL_ERROR_MENU_STRUCTURE "Error in menu structure"
#define MSG_LANGUAGE_NAME "Cestina"
#define MSG_LANGUAGE_SELECT "Vyber jazyka "
#define MSG_PRUSA3D "prusa3d.cz"
#define MSG_PRUSA3D_FORUM "forum.prusa3d.cz"
#define MSG_PRUSA3D_HOWTO "howto.prusa3d.cz"
#endif // LANGUAGE_EN_H

View file

@ -234,7 +234,11 @@
#define MSG_BABYSTEPPING_Z "Adjusting Z"
#define MSG_SERIAL_ERROR_MENU_STRUCTURE "Error in menu structure"
#define MSG_LANGUAGE_NAME "English"
#define MSG_LANGUAGE_SELECT "Select language "
#define MSG_PRUSA3D "prusa3d.com"
#define MSG_PRUSA3D_FORUM "forum.prusa3d.com"
#define MSG_PRUSA3D_HOWTO "howto.prusa3d.com"
#endif // LANGUAGE_EN_H

7
pins.h
View file

@ -24,6 +24,7 @@
******************************************************************/
#if MOTHERBOARD == 302
#define MINI-RAMBO
#endif
#if MOTHERBOARD == 301 || MOTHERBOARD == 302
#define KNOWN_BOARD
@ -109,6 +110,9 @@
#define HEATER_2_PIN -1
#endif
#ifdef MINI-RAMBO
#define ELECTRONICS "RAMBo-13a"
#define HEATER_0_PIN 3
#define HEATER_BED_PIN 4
#define FAN_1_PIN -1 //6
@ -118,6 +122,8 @@
#define MOTOR_CURRENT_PWM_E_PIN 44
#else //RAMBo
#define ELECTRONICS "RAMBo-big"
#define E1_STEP_PIN 33
#define E1_DIR_PIN 42
#define E1_ENABLE_PIN 25
@ -199,6 +205,7 @@
* Rambo mini Pin Assignments 1.0
******************************************************************/
#if MOTHERBOARD == 102
#define ELECTRONICS "RAMBo-10a"
#define KNOWN_BOARD
#ifndef __AVR_ATmega2560__
#error Oops! Make sure you have 'Arduino Mega 2560' selected from the 'Tools -> Boards' menu.

4
planner.cpp Executable file → Normal file
View file

@ -566,7 +566,7 @@ void plan_buffer_line(const float &x, const float &y, const float &z, const floa
{
position[E_AXIS]=target[E_AXIS]; //behave as if the move really took place, but ignore E part
SERIAL_ECHO_START;
SERIAL_ECHOLNPGM(MSG_ERR_COLD_EXTRUDE_STOP);
SERIAL_ECHOLNRPGM(MSG_ERR_COLD_EXTRUDE_STOP);
}
#ifdef PREVENT_LENGTHY_EXTRUDE
@ -574,7 +574,7 @@ void plan_buffer_line(const float &x, const float &y, const float &z, const floa
{
position[E_AXIS]=target[E_AXIS]; //behave as if the move really took place, but ignore E part
SERIAL_ECHO_START;
SERIAL_ECHOLNPGM(MSG_ERR_LONG_EXTRUDE_STOP);
SERIAL_ECHOLNRPGM(MSG_ERR_LONG_EXTRUDE_STOP);
}
#endif
}

View file

@ -178,18 +178,18 @@ void checkHitEndstops()
{
if( endstop_x_hit || endstop_y_hit || endstop_z_hit) {
SERIAL_ECHO_START;
SERIAL_ECHOPGM(MSG_ENDSTOPS_HIT);
SERIAL_ECHORPGM(MSG_ENDSTOPS_HIT);
if(endstop_x_hit) {
SERIAL_ECHOPAIR(" X:",(float)endstops_trigsteps[X_AXIS]/axis_steps_per_unit[X_AXIS]);
LCD_MESSAGEPGM(MSG_ENDSTOPS_HIT "X");
LCD_MESSAGERPGM(CAT2(MSG_ENDSTOPS_HIT, PSTR("X")));
}
if(endstop_y_hit) {
SERIAL_ECHOPAIR(" Y:",(float)endstops_trigsteps[Y_AXIS]/axis_steps_per_unit[Y_AXIS]);
LCD_MESSAGEPGM(MSG_ENDSTOPS_HIT "Y");
LCD_MESSAGERPGM(CAT2(MSG_ENDSTOPS_HIT, PSTR("Y")));
}
if(endstop_z_hit) {
SERIAL_ECHOPAIR(" Z:",(float)endstops_trigsteps[Z_AXIS]/axis_steps_per_unit[Z_AXIS]);
LCD_MESSAGEPGM(MSG_ENDSTOPS_HIT "Z");
LCD_MESSAGERPGM(CAT2(MSG_ENDSTOPS_HIT,PSTR("Z")));
}
SERIAL_ECHOLN("");
endstop_x_hit=false;

File diff suppressed because it is too large Load diff

10
ultralcd.h Executable file → Normal file
View file

@ -3,6 +3,12 @@
#include "Marlin.h"
#define EEPROM_SILENT 4095
#define EEPROM_BABYSTEP_X 4093
#define EEPROM_BABYSTEP_Y 4091
#define EEPROM_BABYSTEP_Z 4089
#define EEPROM_LANG 4088
#ifdef ULTRA_LCD
void lcd_update();
@ -20,7 +26,7 @@
void lcd_loading_filament();
void lcd_change_success();
void lcd_loading_color();
void lcd_force_language_selection();
bool lcd_detected(void);
@ -33,6 +39,8 @@
#define LCD_MESSAGEPGM(x) lcd_setstatuspgm(PSTR(x))
#define LCD_ALERTMESSAGEPGM(x) lcd_setalertstatuspgm(PSTR(x))
#define LCD_MESSAGERPGM(x) lcd_setstatuspgm((x))
#define LCD_ALERTMESSAGERPGM(x) lcd_setalertstatuspgm((x))
#define LCD_UPDATE_INTERVAL 100
#define LCD_TIMEOUT_TO_STATUS 15000

86
ultralcd_implementation_hitachi_HD44780.h Executable file → Normal file
View file

@ -232,6 +232,8 @@ extern volatile uint16_t buttons; //an extended version of the last checked but
#define LCD_STR_FOLDER "\x05"
#define LCD_STR_FEEDRATE "\x06"
#define LCD_STR_CLOCK "\x07"
#define LCD_STR_ARROW_UP "\x0B"
#define LCD_STR_ARROW_DOWN "\x01"
#define LCD_STR_ARROW_RIGHT "\x7E" /* from the default character set */
static void lcd_set_custom_characters(
@ -311,6 +313,7 @@ static void lcd_set_custom_characters(
B00000
}; //thanks Sonny Mounicou
#else
/*
byte feedrate[8] = {
B11100,
B10100,
@ -321,6 +324,29 @@ static void lcd_set_custom_characters(
B00010,
B00010
};
*/
/*
byte feedrate[8] = {
B01100,
B10011,
B00000,
B01100,
B10011,
B00000,
B01100,
B10011
};
*/
byte feedrate[8] = {
B00000,
B00100,
B10010,
B01001,
B10010,
B00100,
B00000,
B00000
};
#endif
byte clock[8] = {
@ -334,6 +360,29 @@ static void lcd_set_custom_characters(
B00000
}; //thanks Sonny Mounicou
byte arrup[8] = {
B00100,
B01110,
B11111,
B00000,
B00000,
B00000,
B00000,
B00000
};
byte arrdown[8] = {
B00000,
B00000,
B00000,
B00000,
B00000,
B10001,
B01010,
B00100
};
#if defined(LCD_PROGRESS_BAR) && defined(SDSUPPORT)
static bool char_mode = false;
byte progress[3][8] = { {
@ -391,9 +440,44 @@ static void lcd_set_custom_characters(
lcd.createChar(LCD_STR_FOLDER[0], folder);
lcd.createChar(LCD_STR_FEEDRATE[0], feedrate);
lcd.createChar(LCD_STR_CLOCK[0], clock);
//lcd.createChar(LCD_STR_ARROW_UP[0], arrup);
//lcd.createChar(LCD_STR_ARROW_DOWN[0], arrdown);
#endif
}
void lcd_set_custom_characters_arrows()
{
byte arrdown[8] = {
B00000,
B00000,
B00000,
B00000,
B00000,
B10001,
B01010,
B00100
};
lcd.createChar(1, arrdown);
}
void lcd_set_custom_characters_degree()
{
byte degree[8] = {
B01100,
B10010,
B10010,
B01100,
B00000,
B00000,
B00000,
B00000
};
lcd.createChar(1, degree);
}
static void lcd_implementation_init(
#if defined(LCD_PROGRESS_BAR) && defined(SDSUPPORT)
bool progress_bar_set=true
@ -889,6 +973,8 @@ static void lcd_implementation_drawmenu_sddirectory(uint8_t row, const char* pst
#define lcd_implementation_drawmenu_gcode(row, pstr, gcode) lcd_implementation_drawmenu_generic(row, pstr, ' ', ' ')
#define lcd_implementation_drawmenu_function_selected(row, pstr, data) lcd_implementation_drawmenu_generic(row, pstr, '>', ' ')
#define lcd_implementation_drawmenu_function(row, pstr, data) lcd_implementation_drawmenu_generic(row, pstr, ' ', ' ')
#define lcd_implementation_drawmenu_setlang_selected(row, pstr, data) lcd_implementation_drawmenu_generic(row, pstr, '>', ' ')
#define lcd_implementation_drawmenu_setlang(row, pstr, data) lcd_implementation_drawmenu_generic(row, pstr, ' ', ' ')
static void lcd_implementation_quick_feedback()
{

View file

@ -6,7 +6,8 @@
*------------------------------------*/
// Printer revision
#define REVISION "175-1b"
#define FILAMENT_SIZE "1-75mm"
#define NOZZLE_TYPE "E3D-v6"
// Printer name
#define CUSTOM_MENDEL_NAME "Prusa i3"
@ -14,9 +15,6 @@
// Electronics
#define MOTHERBOARD BOARD_RAMBO_MINI_1_0
// Language setting
#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(cz)
/*------------------------------------
AXIS SETTINGS

View file

@ -6,7 +6,8 @@
*------------------------------------*/
// Printer revision
#define REVISION "175-1a"
#define FILAMENT_SIZE "1-75mm"
#define NOZZLE_TYPE "E3D-v6lite"
// Printer name
#define CUSTOM_MENDEL_NAME "Prusa i3"
@ -14,8 +15,6 @@
// Electronics
#define MOTHERBOARD BOARD_RAMBO_MINI_1_0
// Language setting
#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en)
/*------------------------------------

View file

@ -6,7 +6,8 @@
*------------------------------------*/
// Printer revision
#define REVISION "175-2b"
#define FILAMENT_SIZE "1-75mm"
#define NOZZLE_TYPE "E3D-v6"
// Printer name
#define CUSTOM_MENDEL_NAME "Prusa i3"
@ -14,8 +15,6 @@
// Electronics
#define MOTHERBOARD BOARD_RAMBO_MINI_1_3
// Language setting
#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(cz)
/*------------------------------------

View file

@ -6,7 +6,8 @@
*------------------------------------*/
// Printer revision
#define REVISION "175-2a"
#define FILAMENT_SIZE "1-75mm"
#define NOZZLE_TYPE "E3D-v6lite"
// Printer name
#define CUSTOM_MENDEL_NAME "Prusa i3"
@ -14,8 +15,6 @@
// Electronics
#define MOTHERBOARD BOARD_RAMBO_MINI_1_3
// Language setting
#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en)
/*------------------------------------

View file

@ -1,230 +0,0 @@
#ifndef CONFIGURATION_PRUSA_H
#define CONFIGURATION_PRUSA_H
/*------------------------------------
GENERAL SETTINGS
*------------------------------------*/
// Printer revision
#define REVISION "175-2a"
// Printer name
#define CUSTOM_MENDEL_NAME "Prusa i3"
// Electronics
#define MOTHERBOARD BOARD_RAMBO_MINI_1_3
// Language setting
#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en)
/*------------------------------------
AXIS SETTINGS
*------------------------------------*/
// Steps per unit {X,Y,Z,E}
#define DEFAULT_AXIS_STEPS_PER_UNIT {100,100,3200/8,174.2}
// Endstop inverting
const bool X_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool Y_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool Z_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
// Home position
#define MANUAL_X_HOME_POS 0
#define MANUAL_Y_HOME_POS 0
#define MANUAL_Z_HOME_POS 0.25
// Travel limits after homing
#define X_MAX_POS 214
#define X_MIN_POS 0
#define Y_MAX_POS 198
#define Y_MIN_POS 0
#define Z_MAX_POS 201
#define Z_MIN_POS 0.23
#define NUM_AXIS 4 // The axis order in all axis related arrays is X, Y, Z, E
#define HOMING_FEEDRATE {3000, 3000, 800, 0} // set the homing speeds (mm/min)
#define DEFAULT_MAX_FEEDRATE {500, 500, 1800, 25} // (mm/sec)
#define DEFAULT_MAX_ACCELERATION {9000,9000,1000,10000} // X, Y, Z, E maximum start speed for accelerated moves. E default values are good for Skeinforge 40+, for older versions raise them a lot.
#define DEFAULT_ACCELERATION 3000 // X, Y, Z and E max acceleration in mm/s^2 for printing moves
#define DEFAULT_RETRACT_ACCELERATION 3000 // X, Y, Z and E max acceleration in mm/s^2 for retracts
#define MANUAL_FEEDRATE {3000, 3000, 2000, 100} // set the speeds for manual moves (mm/min)
/*------------------------------------
EXTRUDER SETTINGS
*------------------------------------*/
// Mintemps
#define HEATER_0_MINTEMP 15
#define HEATER_1_MINTEMP 5
#define HEATER_2_MINTEMP 5
#define BED_MINTEMP 15
// Maxtemps
#define HEATER_0_MAXTEMP 259
#define HEATER_1_MAXTEMP 259
#define HEATER_2_MAXTEMP 259
#define BED_MAXTEMP 150
// Define PID constants for extruder
#define DEFAULT_Kp 40.925
#define DEFAULT_Ki 4.875
#define DEFAULT_Kd 86.085
// Extrude mintemp
#define EXTRUDE_MINTEMP 190
// Extruder cooling fans
#define EXTRUDER_0_AUTO_FAN_PIN 8
#define EXTRUDER_1_AUTO_FAN_PIN -1
#define EXTRUDER_2_AUTO_FAN_PIN -1
#define EXTRUDER_AUTO_FAN_TEMPERATURE 50
#define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed
/*------------------------------------
LOAD/UNLOAD FILAMENT SETTINGS
*------------------------------------*/
// Load filament commands
#define LOAD_FILAMENT_0 "M83"
#define LOAD_FILAMENT_1 "G1 E70 F400"
#define LOAD_FILAMENT_2 "G1 E40 F100"
// Unload filament commands
#define UNLOAD_FILAMENT_0 "M83"
#define UNLOAD_FILAMENT_1 "G1 E-80 F400"
/*------------------------------------
CHANGE FILAMENT SETTINGS
*------------------------------------*/
// Filament change configuration
#define FILAMENTCHANGEENABLE
#ifdef FILAMENTCHANGEENABLE
#define FILAMENTCHANGE_XPOS 211
#define FILAMENTCHANGE_YPOS 0
#define FILAMENTCHANGE_ZADD 2
#define FILAMENTCHANGE_FIRSTRETRACT -2
#define FILAMENTCHANGE_FINALRETRACT -80
#define FILAMENTCHANGE_FIRSTFEED 70
#define FILAMENTCHANGE_FINALFEED 50
#define FILAMENTCHANGE_RECFEED 5
#define FILAMENTCHANGE_XYFEED 70
#define FILAMENTCHANGE_EFEED 20
#define FILAMENTCHANGE_RFEED 400
#define FILAMENTCHANGE_EXFEED 2
#define FILAMENTCHANGE_ZFEED 15
#endif
/*------------------------------------
ADDITIONAL FEATURES SETTINGS
*------------------------------------*/
// Define Prusa filament runout sensor
//#define FILAMENT_RUNOUT_SUPPORT
#ifdef FILAMENT_RUNOUT_SUPPORT
#define FILAMENT_RUNOUT_SENSOR 1
#endif
/*------------------------------------
MOTOR CURRENT SETTINGS
*------------------------------------*/
// Motor Current setting for BIG RAMBo
#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
#define DIGIPOT_MOTOR_CURRENT_LOUD {135,135,135,135,135}
// Motor Current settings for RAMBo mini PWM value = MotorCurrentSetting * 255 / range
#if MOTHERBOARD == 102 || MOTHERBOARD == 302
#define MOTOR_CURRENT_PWM_RANGE 2000
#define DEFAULT_PWM_MOTOR_CURRENT {270, 450, 450} // {XY,Z,E}
#define DEFAULT_PWM_MOTOR_CURRENT_LOUD {540, 450, 500} // {XY,Z,E}
#endif
/*------------------------------------
PREHEAT SETTINGS
*------------------------------------*/
#define PLA_PREHEAT_HOTEND_TEMP 210
#define PLA_PREHEAT_HPB_TEMP 50
#define PLA_PREHEAT_FAN_SPEED 0
#define ABS_PREHEAT_HOTEND_TEMP 255
#define ABS_PREHEAT_HPB_TEMP 100
#define ABS_PREHEAT_FAN_SPEED 0
#define HIPS_PREHEAT_HOTEND_TEMP 220
#define HIPS_PREHEAT_HPB_TEMP 100
#define HIPS_PREHEAT_FAN_SPEED 0
#define PP_PREHEAT_HOTEND_TEMP 254
#define PP_PREHEAT_HPB_TEMP 100
#define PP_PREHEAT_FAN_SPEED 0
#define PET_PREHEAT_HOTEND_TEMP 240
#define PET_PREHEAT_HPB_TEMP 90
#define PET_PREHEAT_FAN_SPEED 0
#define FLEX_PREHEAT_HOTEND_TEMP 230
#define FLEX_PREHEAT_HPB_TEMP 50
#define FLEX_PREHEAT_FAN_SPEED 0
/*------------------------------------
THERMISTORS SETTINGS
*------------------------------------*/
//
//--NORMAL IS 4.7kohm PULLUP!-- 1kohm pullup can be used on hotend sensor, using correct resistor and table
//
//// Temperature sensor settings:
// -2 is thermocouple with MAX6675 (only for sensor 0)
// -1 is thermocouple with AD595
// 0 is not used
// 1 is 100k thermistor - best choice for EPCOS 100k (4.7k pullup)
// 2 is 200k thermistor - ATC Semitec 204GT-2 (4.7k pullup)
// 3 is Mendel-parts thermistor (4.7k pullup)
// 4 is 10k thermistor !! do not use it for a hotend. It gives bad resolution at high temp. !!
// 5 is 100K thermistor - ATC Semitec 104GT-2 (Used in ParCan & J-Head) (4.7k pullup)
// 6 is 100k EPCOS - Not as accurate as table 1 (created using a fluke thermocouple) (4.7k pullup)
// 7 is 100k Honeywell thermistor 135-104LAG-J01 (4.7k pullup)
// 71 is 100k Honeywell thermistor 135-104LAF-J01 (4.7k pullup)
// 8 is 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup)
// 9 is 100k GE Sensing AL03006-58.2K-97-G1 (4.7k pullup)
// 10 is 100k RS thermistor 198-961 (4.7k pullup)
// 11 is 100k beta 3950 1% thermistor (4.7k pullup)
// 12 is 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup) (calibrated for Makibox hot bed)
// 13 is 100k Hisens 3950 1% up to 300°C for hotend "Simple ONE " & "Hotend "All In ONE"
// 20 is the PT100 circuit found in the Ultimainboard V2.x
// 60 is 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
//
// 1k ohm pullup tables - This is not normal, you would have to have changed out your 4.7k for 1k
// (but gives greater accuracy and more stable PID)
// 51 is 100k thermistor - EPCOS (1k pullup)
// 52 is 200k thermistor - ATC Semitec 204GT-2 (1k pullup)
// 55 is 100k thermistor - ATC Semitec 104GT-2 (Used in ParCan & J-Head) (1k pullup)
//
// 1047 is Pt1000 with 4k7 pullup
// 1010 is Pt1000 with 1k pullup (non standard)
// 147 is Pt100 with 4k7 pullup
// 110 is Pt100 with 1k pullup (non standard)
#define TEMP_SENSOR_0 5
#define TEMP_SENSOR_1 0
#define TEMP_SENSOR_2 0
#define TEMP_SENSOR_BED 1
#endif //__CONFIGURATION_PRUSA_H

View file

@ -1,230 +0,0 @@
#ifndef CONFIGURATION_PRUSA_H
#define CONFIGURATION_PRUSA_H
/*------------------------------------
GENERAL SETTINGS
*------------------------------------*/
// Printer revision
#define REVISION "175-1a"
// Printer name
#define CUSTOM_MENDEL_NAME "Prusa i3"
// Electronics
#define MOTHERBOARD BOARD_RAMBO_MINI_1_0
// Language setting
#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(cz)
/*------------------------------------
AXIS SETTINGS
*------------------------------------*/
// Steps per unit {X,Y,Z,E}
#define DEFAULT_AXIS_STEPS_PER_UNIT {100,100,3200/0.8,174.2}
// Endstop inverting
const bool X_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool Y_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool Z_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
// Home position
#define MANUAL_X_HOME_POS 0
#define MANUAL_Y_HOME_POS 0
#define MANUAL_Z_HOME_POS 0.25
// Travel limits after homing
#define X_MAX_POS 214
#define X_MIN_POS 0
#define Y_MAX_POS 198
#define Y_MIN_POS 0
#define Z_MAX_POS 201
#define Z_MIN_POS 0.23
#define NUM_AXIS 4 // The axis order in all axis related arrays is X, Y, Z, E
#define HOMING_FEEDRATE {3000, 3000, 240, 0} // set the homing speeds (mm/min)
#define DEFAULT_MAX_FEEDRATE {500, 500, 3, 25} // (mm/sec)
#define DEFAULT_MAX_ACCELERATION {9000,9000,30,10000} // X, Y, Z, E maximum start speed for accelerated moves. E default values are good for Skeinforge 40+, for older versions raise them a lot.
#define DEFAULT_ACCELERATION 3000 // X, Y, Z and E max acceleration in mm/s^2 for printing moves
#define DEFAULT_RETRACT_ACCELERATION 3000 // X, Y, Z and E max acceleration in mm/s^2 for retracts
#define MANUAL_FEEDRATE {3000, 3000, 240, 60} // set the speeds for manual moves (mm/min)
/*------------------------------------
EXTRUDER SETTINGS
*------------------------------------*/
// Mintemps
#define HEATER_0_MINTEMP 15
#define HEATER_1_MINTEMP 5
#define HEATER_2_MINTEMP 5
#define BED_MINTEMP 15
// Maxtemps
#define HEATER_0_MAXTEMP 265
#define HEATER_1_MAXTEMP 265
#define HEATER_2_MAXTEMP 265
#define BED_MAXTEMP 150
// Define PID constants for extruder
#define DEFAULT_Kp 40.925
#define DEFAULT_Ki 4.875
#define DEFAULT_Kd 86.085
// Extrude mintemp
#define EXTRUDE_MINTEMP 190
// Extruder cooling fans
#define EXTRUDER_0_AUTO_FAN_PIN 8
#define EXTRUDER_1_AUTO_FAN_PIN -1
#define EXTRUDER_2_AUTO_FAN_PIN -1
#define EXTRUDER_AUTO_FAN_TEMPERATURE 50
#define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed
/*------------------------------------
LOAD/UNLOAD FILAMENT SETTINGS
*------------------------------------*/
// Load filament commands
#define LOAD_FILAMENT_0 "M83"
#define LOAD_FILAMENT_1 "G1 E70 F400"
#define LOAD_FILAMENT_2 "G1 E40 F100"
// Unload filament commands
#define UNLOAD_FILAMENT_0 "M83"
#define UNLOAD_FILAMENT_1 "G1 E-80 F400"
/*------------------------------------
CHANGE FILAMENT SETTINGS
*------------------------------------*/
// Filament change configuration
#define FILAMENTCHANGEENABLE
#ifdef FILAMENTCHANGEENABLE
#define FILAMENTCHANGE_XPOS 211
#define FILAMENTCHANGE_YPOS 0
#define FILAMENTCHANGE_ZADD 2
#define FILAMENTCHANGE_FIRSTRETRACT -2
#define FILAMENTCHANGE_FINALRETRACT -80
#define FILAMENTCHANGE_FIRSTFEED 70
#define FILAMENTCHANGE_FINALFEED 50
#define FILAMENTCHANGE_RECFEED 5
#define FILAMENTCHANGE_XYFEED 70
#define FILAMENTCHANGE_EFEED 20
#define FILAMENTCHANGE_RFEED 400
#define FILAMENTCHANGE_EXFEED 2
#define FILAMENTCHANGE_ZFEED 300
#endif
/*------------------------------------
ADDITIONAL FEATURES SETTINGS
*------------------------------------*/
// Define Prusa filament runout sensor
//#define FILAMENT_RUNOUT_SUPPORT
#ifdef FILAMENT_RUNOUT_SUPPORT
#define FILAMENT_RUNOUT_SENSOR 1
#endif
/*------------------------------------
MOTOR CURRENT SETTINGS
*------------------------------------*/
// Motor Current setting for BIG RAMBo
#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
#define DIGIPOT_MOTOR_CURRENT_LOUD {135,135,135,135,135}
// Motor Current settings for RAMBo mini PWM value = MotorCurrentSetting * 255 / range
#if MOTHERBOARD == 102 || MOTHERBOARD == 302
#define MOTOR_CURRENT_PWM_RANGE 2000
#define DEFAULT_PWM_MOTOR_CURRENT {270, 450, 450} // {XY,Z,E}
#define DEFAULT_PWM_MOTOR_CURRENT_LOUD {540, 450, 500} // {XY,Z,E}
#endif
/*------------------------------------
PREHEAT SETTINGS
*------------------------------------*/
#define PLA_PREHEAT_HOTEND_TEMP 210
#define PLA_PREHEAT_HPB_TEMP 50
#define PLA_PREHEAT_FAN_SPEED 0
#define ABS_PREHEAT_HOTEND_TEMP 255
#define ABS_PREHEAT_HPB_TEMP 100
#define ABS_PREHEAT_FAN_SPEED 0
#define HIPS_PREHEAT_HOTEND_TEMP 220
#define HIPS_PREHEAT_HPB_TEMP 100
#define HIPS_PREHEAT_FAN_SPEED 0
#define PP_PREHEAT_HOTEND_TEMP 254
#define PP_PREHEAT_HPB_TEMP 100
#define PP_PREHEAT_FAN_SPEED 0
#define PET_PREHEAT_HOTEND_TEMP 240
#define PET_PREHEAT_HPB_TEMP 90
#define PET_PREHEAT_FAN_SPEED 0
#define FLEX_PREHEAT_HOTEND_TEMP 230
#define FLEX_PREHEAT_HPB_TEMP 50
#define FLEX_PREHEAT_FAN_SPEED 0
/*------------------------------------
THERMISTORS SETTINGS
*------------------------------------*/
//
//--NORMAL IS 4.7kohm PULLUP!-- 1kohm pullup can be used on hotend sensor, using correct resistor and table
//
//// Temperature sensor settings:
// -2 is thermocouple with MAX6675 (only for sensor 0)
// -1 is thermocouple with AD595
// 0 is not used
// 1 is 100k thermistor - best choice for EPCOS 100k (4.7k pullup)
// 2 is 200k thermistor - ATC Semitec 204GT-2 (4.7k pullup)
// 3 is Mendel-parts thermistor (4.7k pullup)
// 4 is 10k thermistor !! do not use it for a hotend. It gives bad resolution at high temp. !!
// 5 is 100K thermistor - ATC Semitec 104GT-2 (Used in ParCan & J-Head) (4.7k pullup)
// 6 is 100k EPCOS - Not as accurate as table 1 (created using a fluke thermocouple) (4.7k pullup)
// 7 is 100k Honeywell thermistor 135-104LAG-J01 (4.7k pullup)
// 71 is 100k Honeywell thermistor 135-104LAF-J01 (4.7k pullup)
// 8 is 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup)
// 9 is 100k GE Sensing AL03006-58.2K-97-G1 (4.7k pullup)
// 10 is 100k RS thermistor 198-961 (4.7k pullup)
// 11 is 100k beta 3950 1% thermistor (4.7k pullup)
// 12 is 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup) (calibrated for Makibox hot bed)
// 13 is 100k Hisens 3950 1% up to 300°C for hotend "Simple ONE " & "Hotend "All In ONE"
// 20 is the PT100 circuit found in the Ultimainboard V2.x
// 60 is 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
//
// 1k ohm pullup tables - This is not normal, you would have to have changed out your 4.7k for 1k
// (but gives greater accuracy and more stable PID)
// 51 is 100k thermistor - EPCOS (1k pullup)
// 52 is 200k thermistor - ATC Semitec 204GT-2 (1k pullup)
// 55 is 100k thermistor - ATC Semitec 104GT-2 (Used in ParCan & J-Head) (1k pullup)
//
// 1047 is Pt1000 with 4k7 pullup
// 1010 is Pt1000 with 1k pullup (non standard)
// 147 is Pt100 with 4k7 pullup
// 110 is Pt100 with 1k pullup (non standard)
#define TEMP_SENSOR_0 5
#define TEMP_SENSOR_1 0
#define TEMP_SENSOR_2 0
#define TEMP_SENSOR_BED 1
#endif //__CONFIGURATION_PRUSA_H

View file

@ -1,230 +0,0 @@
#ifndef CONFIGURATION_PRUSA_H
#define CONFIGURATION_PRUSA_H
/*------------------------------------
GENERAL SETTINGS
*------------------------------------*/
// Printer revision
#define REVISION "175-1b"
// Printer name
#define CUSTOM_MENDEL_NAME "Prusa i3"
// Electronics
#define MOTHERBOARD BOARD_RAMBO_MINI_1_0
// Language setting
#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en)
/*------------------------------------
AXIS SETTINGS
*------------------------------------*/
// Steps per unit {X,Y,Z,E}
#define DEFAULT_AXIS_STEPS_PER_UNIT {100,100,3200/0.8,174.2}
// Endstop inverting
const bool X_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool Y_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool Z_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
// Home position
#define MANUAL_X_HOME_POS 0
#define MANUAL_Y_HOME_POS 0
#define MANUAL_Z_HOME_POS 0.25
// Travel limits after homing
#define X_MAX_POS 214
#define X_MIN_POS 0
#define Y_MAX_POS 198
#define Y_MIN_POS 0
#define Z_MAX_POS 201
#define Z_MIN_POS 0.23
#define NUM_AXIS 4 // The axis order in all axis related arrays is X, Y, Z, E
#define HOMING_FEEDRATE {3000, 3000, 240, 0} // set the homing speeds (mm/min)
#define DEFAULT_MAX_FEEDRATE {500, 500, 3, 25} // (mm/sec)
#define DEFAULT_MAX_ACCELERATION {9000,9000,30,10000} // X, Y, Z, E maximum start speed for accelerated moves. E default values are good for Skeinforge 40+, for older versions raise them a lot.
#define DEFAULT_ACCELERATION 3000 // X, Y, Z and E max acceleration in mm/s^2 for printing moves
#define DEFAULT_RETRACT_ACCELERATION 3000 // X, Y, Z and E max acceleration in mm/s^2 for retracts
#define MANUAL_FEEDRATE {3000, 3000, 240, 60} // set the speeds for manual moves (mm/min)
/*------------------------------------
EXTRUDER SETTINGS
*------------------------------------*/
// Mintemps
#define HEATER_0_MINTEMP 15
#define HEATER_1_MINTEMP 5
#define HEATER_2_MINTEMP 5
#define BED_MINTEMP 15
// Maxtemps
#define HEATER_0_MAXTEMP 310
#define HEATER_1_MAXTEMP 310
#define HEATER_2_MAXTEMP 310
#define BED_MAXTEMP 150
// Define PID constants for extruder
#define DEFAULT_Kp 40.925
#define DEFAULT_Ki 4.875
#define DEFAULT_Kd 86.085
// Extrude mintemp
#define EXTRUDE_MINTEMP 190
// Extruder cooling fans
#define EXTRUDER_0_AUTO_FAN_PIN 8
#define EXTRUDER_1_AUTO_FAN_PIN -1
#define EXTRUDER_2_AUTO_FAN_PIN -1
#define EXTRUDER_AUTO_FAN_TEMPERATURE 50
#define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed
/*------------------------------------
LOAD/UNLOAD FILAMENT SETTINGS
*------------------------------------*/
// Load filament commands
#define LOAD_FILAMENT_0 "M83"
#define LOAD_FILAMENT_1 "G1 E70 F400"
#define LOAD_FILAMENT_2 "G1 E40 F100"
// Unload filament commands
#define UNLOAD_FILAMENT_0 "M83"
#define UNLOAD_FILAMENT_1 "G1 E-80 F400"
/*------------------------------------
CHANGE FILAMENT SETTINGS
*------------------------------------*/
// Filament change configuration
#define FILAMENTCHANGEENABLE
#ifdef FILAMENTCHANGEENABLE
#define FILAMENTCHANGE_XPOS 211
#define FILAMENTCHANGE_YPOS 0
#define FILAMENTCHANGE_ZADD 2
#define FILAMENTCHANGE_FIRSTRETRACT -2
#define FILAMENTCHANGE_FINALRETRACT -80
#define FILAMENTCHANGE_FIRSTFEED 70
#define FILAMENTCHANGE_FINALFEED 50
#define FILAMENTCHANGE_RECFEED 5
#define FILAMENTCHANGE_XYFEED 70
#define FILAMENTCHANGE_EFEED 20
#define FILAMENTCHANGE_RFEED 400
#define FILAMENTCHANGE_EXFEED 2
#define FILAMENTCHANGE_ZFEED 300
#endif
/*------------------------------------
ADDITIONAL FEATURES SETTINGS
*------------------------------------*/
// Define Prusa filament runout sensor
//#define FILAMENT_RUNOUT_SUPPORT
#ifdef FILAMENT_RUNOUT_SUPPORT
#define FILAMENT_RUNOUT_SENSOR 1
#endif
/*------------------------------------
MOTOR CURRENT SETTINGS
*------------------------------------*/
// Motor Current setting for BIG RAMBo
#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
#define DIGIPOT_MOTOR_CURRENT_LOUD {135,135,135,135,135}
// Motor Current settings for RAMBo mini PWM value = MotorCurrentSetting * 255 / range
#if MOTHERBOARD == 102 || MOTHERBOARD == 302
#define MOTOR_CURRENT_PWM_RANGE 2000
#define DEFAULT_PWM_MOTOR_CURRENT {270, 450, 450} // {XY,Z,E}
#define DEFAULT_PWM_MOTOR_CURRENT_LOUD {540, 450, 500} // {XY,Z,E}
#endif
/*------------------------------------
PREHEAT SETTINGS
*------------------------------------*/
#define PLA_PREHEAT_HOTEND_TEMP 210
#define PLA_PREHEAT_HPB_TEMP 50
#define PLA_PREHEAT_FAN_SPEED 0
#define ABS_PREHEAT_HOTEND_TEMP 255
#define ABS_PREHEAT_HPB_TEMP 100
#define ABS_PREHEAT_FAN_SPEED 0
#define HIPS_PREHEAT_HOTEND_TEMP 220
#define HIPS_PREHEAT_HPB_TEMP 100
#define HIPS_PREHEAT_FAN_SPEED 0
#define PP_PREHEAT_HOTEND_TEMP 254
#define PP_PREHEAT_HPB_TEMP 100
#define PP_PREHEAT_FAN_SPEED 0
#define PET_PREHEAT_HOTEND_TEMP 240
#define PET_PREHEAT_HPB_TEMP 90
#define PET_PREHEAT_FAN_SPEED 0
#define FLEX_PREHEAT_HOTEND_TEMP 230
#define FLEX_PREHEAT_HPB_TEMP 50
#define FLEX_PREHEAT_FAN_SPEED 0
/*------------------------------------
THERMISTORS SETTINGS
*------------------------------------*/
//
//--NORMAL IS 4.7kohm PULLUP!-- 1kohm pullup can be used on hotend sensor, using correct resistor and table
//
//// Temperature sensor settings:
// -2 is thermocouple with MAX6675 (only for sensor 0)
// -1 is thermocouple with AD595
// 0 is not used
// 1 is 100k thermistor - best choice for EPCOS 100k (4.7k pullup)
// 2 is 200k thermistor - ATC Semitec 204GT-2 (4.7k pullup)
// 3 is Mendel-parts thermistor (4.7k pullup)
// 4 is 10k thermistor !! do not use it for a hotend. It gives bad resolution at high temp. !!
// 5 is 100K thermistor - ATC Semitec 104GT-2 (Used in ParCan & J-Head) (4.7k pullup)
// 6 is 100k EPCOS - Not as accurate as table 1 (created using a fluke thermocouple) (4.7k pullup)
// 7 is 100k Honeywell thermistor 135-104LAG-J01 (4.7k pullup)
// 71 is 100k Honeywell thermistor 135-104LAF-J01 (4.7k pullup)
// 8 is 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup)
// 9 is 100k GE Sensing AL03006-58.2K-97-G1 (4.7k pullup)
// 10 is 100k RS thermistor 198-961 (4.7k pullup)
// 11 is 100k beta 3950 1% thermistor (4.7k pullup)
// 12 is 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup) (calibrated for Makibox hot bed)
// 13 is 100k Hisens 3950 1% up to 300°C for hotend "Simple ONE " & "Hotend "All In ONE"
// 20 is the PT100 circuit found in the Ultimainboard V2.x
// 60 is 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
//
// 1k ohm pullup tables - This is not normal, you would have to have changed out your 4.7k for 1k
// (but gives greater accuracy and more stable PID)
// 51 is 100k thermistor - EPCOS (1k pullup)
// 52 is 200k thermistor - ATC Semitec 204GT-2 (1k pullup)
// 55 is 100k thermistor - ATC Semitec 104GT-2 (Used in ParCan & J-Head) (1k pullup)
//
// 1047 is Pt1000 with 4k7 pullup
// 1010 is Pt1000 with 1k pullup (non standard)
// 147 is Pt100 with 4k7 pullup
// 110 is Pt100 with 1k pullup (non standard)
#define TEMP_SENSOR_0 5
#define TEMP_SENSOR_1 0
#define TEMP_SENSOR_2 0
#define TEMP_SENSOR_BED 1
#endif //__CONFIGURATION_PRUSA_H

View file

@ -1,230 +0,0 @@
#ifndef CONFIGURATION_PRUSA_H
#define CONFIGURATION_PRUSA_H
/*------------------------------------
GENERAL SETTINGS
*------------------------------------*/
// Printer revision
#define REVISION "175-2a"
// Printer name
#define CUSTOM_MENDEL_NAME "Prusa i3"
// Electronics
#define MOTHERBOARD BOARD_RAMBO_MINI_1_3
// Language setting
#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(cz)
/*------------------------------------
AXIS SETTINGS
*------------------------------------*/
// Steps per unit {X,Y,Z,E}
#define DEFAULT_AXIS_STEPS_PER_UNIT {100,100,3200/0.8,174.2}
// Endstop inverting
const bool X_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool Y_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool Z_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
// Home position
#define MANUAL_X_HOME_POS 0
#define MANUAL_Y_HOME_POS 0
#define MANUAL_Z_HOME_POS 0.25
// Travel limits after homing
#define X_MAX_POS 214
#define X_MIN_POS 0
#define Y_MAX_POS 198
#define Y_MIN_POS 0
#define Z_MAX_POS 201
#define Z_MIN_POS 0.23
#define NUM_AXIS 4 // The axis order in all axis related arrays is X, Y, Z, E
#define HOMING_FEEDRATE {3000, 3000, 240, 0} // set the homing speeds (mm/min)
#define DEFAULT_MAX_FEEDRATE {500, 500, 3, 25} // (mm/sec)
#define DEFAULT_MAX_ACCELERATION {9000,9000,30,10000} // X, Y, Z, E maximum start speed for accelerated moves. E default values are good for Skeinforge 40+, for older versions raise them a lot.
#define DEFAULT_ACCELERATION 3000 // X, Y, Z and E max acceleration in mm/s^2 for printing moves
#define DEFAULT_RETRACT_ACCELERATION 3000 // X, Y, Z and E max acceleration in mm/s^2 for retracts
#define MANUAL_FEEDRATE {3000, 3000, 240, 60} // set the speeds for manual moves (mm/min)
/*------------------------------------
EXTRUDER SETTINGS
*------------------------------------*/
// Mintemps
#define HEATER_0_MINTEMP 15
#define HEATER_1_MINTEMP 5
#define HEATER_2_MINTEMP 5
#define BED_MINTEMP 15
// Maxtemps
#define HEATER_0_MAXTEMP 265
#define HEATER_1_MAXTEMP 265
#define HEATER_2_MAXTEMP 265
#define BED_MAXTEMP 150
// Define PID constants for extruder
#define DEFAULT_Kp 40.925
#define DEFAULT_Ki 4.875
#define DEFAULT_Kd 86.085
// Extrude mintemp
#define EXTRUDE_MINTEMP 190
// Extruder cooling fans
#define EXTRUDER_0_AUTO_FAN_PIN 8
#define EXTRUDER_1_AUTO_FAN_PIN -1
#define EXTRUDER_2_AUTO_FAN_PIN -1
#define EXTRUDER_AUTO_FAN_TEMPERATURE 50
#define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed
/*------------------------------------
LOAD/UNLOAD FILAMENT SETTINGS
*------------------------------------*/
// Load filament commands
#define LOAD_FILAMENT_0 "M83"
#define LOAD_FILAMENT_1 "G1 E70 F400"
#define LOAD_FILAMENT_2 "G1 E40 F100"
// Unload filament commands
#define UNLOAD_FILAMENT_0 "M83"
#define UNLOAD_FILAMENT_1 "G1 E-80 F400"
/*------------------------------------
CHANGE FILAMENT SETTINGS
*------------------------------------*/
// Filament change configuration
#define FILAMENTCHANGEENABLE
#ifdef FILAMENTCHANGEENABLE
#define FILAMENTCHANGE_XPOS 211
#define FILAMENTCHANGE_YPOS 0
#define FILAMENTCHANGE_ZADD 2
#define FILAMENTCHANGE_FIRSTRETRACT -2
#define FILAMENTCHANGE_FINALRETRACT -80
#define FILAMENTCHANGE_FIRSTFEED 70
#define FILAMENTCHANGE_FINALFEED 50
#define FILAMENTCHANGE_RECFEED 5
#define FILAMENTCHANGE_XYFEED 70
#define FILAMENTCHANGE_EFEED 20
#define FILAMENTCHANGE_RFEED 400
#define FILAMENTCHANGE_EXFEED 2
#define FILAMENTCHANGE_ZFEED 300
#endif
/*------------------------------------
ADDITIONAL FEATURES SETTINGS
*------------------------------------*/
// Define Prusa filament runout sensor
//#define FILAMENT_RUNOUT_SUPPORT
#ifdef FILAMENT_RUNOUT_SUPPORT
#define FILAMENT_RUNOUT_SENSOR 1
#endif
/*------------------------------------
MOTOR CURRENT SETTINGS
*------------------------------------*/
// Motor Current setting for BIG RAMBo
#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
#define DIGIPOT_MOTOR_CURRENT_LOUD {135,135,135,135,135}
// Motor Current settings for RAMBo mini PWM value = MotorCurrentSetting * 255 / range
#if MOTHERBOARD == 102 || MOTHERBOARD == 302
#define MOTOR_CURRENT_PWM_RANGE 2000
#define DEFAULT_PWM_MOTOR_CURRENT {270, 450, 450} // {XY,Z,E}
#define DEFAULT_PWM_MOTOR_CURRENT_LOUD {540, 450, 500} // {XY,Z,E}
#endif
/*------------------------------------
PREHEAT SETTINGS
*------------------------------------*/
#define PLA_PREHEAT_HOTEND_TEMP 210
#define PLA_PREHEAT_HPB_TEMP 50
#define PLA_PREHEAT_FAN_SPEED 0
#define ABS_PREHEAT_HOTEND_TEMP 255
#define ABS_PREHEAT_HPB_TEMP 100
#define ABS_PREHEAT_FAN_SPEED 0
#define HIPS_PREHEAT_HOTEND_TEMP 220
#define HIPS_PREHEAT_HPB_TEMP 100
#define HIPS_PREHEAT_FAN_SPEED 0
#define PP_PREHEAT_HOTEND_TEMP 254
#define PP_PREHEAT_HPB_TEMP 100
#define PP_PREHEAT_FAN_SPEED 0
#define PET_PREHEAT_HOTEND_TEMP 240
#define PET_PREHEAT_HPB_TEMP 90
#define PET_PREHEAT_FAN_SPEED 0
#define FLEX_PREHEAT_HOTEND_TEMP 230
#define FLEX_PREHEAT_HPB_TEMP 50
#define FLEX_PREHEAT_FAN_SPEED 0
/*------------------------------------
THERMISTORS SETTINGS
*------------------------------------*/
//
//--NORMAL IS 4.7kohm PULLUP!-- 1kohm pullup can be used on hotend sensor, using correct resistor and table
//
//// Temperature sensor settings:
// -2 is thermocouple with MAX6675 (only for sensor 0)
// -1 is thermocouple with AD595
// 0 is not used
// 1 is 100k thermistor - best choice for EPCOS 100k (4.7k pullup)
// 2 is 200k thermistor - ATC Semitec 204GT-2 (4.7k pullup)
// 3 is Mendel-parts thermistor (4.7k pullup)
// 4 is 10k thermistor !! do not use it for a hotend. It gives bad resolution at high temp. !!
// 5 is 100K thermistor - ATC Semitec 104GT-2 (Used in ParCan & J-Head) (4.7k pullup)
// 6 is 100k EPCOS - Not as accurate as table 1 (created using a fluke thermocouple) (4.7k pullup)
// 7 is 100k Honeywell thermistor 135-104LAG-J01 (4.7k pullup)
// 71 is 100k Honeywell thermistor 135-104LAF-J01 (4.7k pullup)
// 8 is 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup)
// 9 is 100k GE Sensing AL03006-58.2K-97-G1 (4.7k pullup)
// 10 is 100k RS thermistor 198-961 (4.7k pullup)
// 11 is 100k beta 3950 1% thermistor (4.7k pullup)
// 12 is 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup) (calibrated for Makibox hot bed)
// 13 is 100k Hisens 3950 1% up to 300°C for hotend "Simple ONE " & "Hotend "All In ONE"
// 20 is the PT100 circuit found in the Ultimainboard V2.x
// 60 is 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
//
// 1k ohm pullup tables - This is not normal, you would have to have changed out your 4.7k for 1k
// (but gives greater accuracy and more stable PID)
// 51 is 100k thermistor - EPCOS (1k pullup)
// 52 is 200k thermistor - ATC Semitec 204GT-2 (1k pullup)
// 55 is 100k thermistor - ATC Semitec 104GT-2 (Used in ParCan & J-Head) (1k pullup)
//
// 1047 is Pt1000 with 4k7 pullup
// 1010 is Pt1000 with 1k pullup (non standard)
// 147 is Pt100 with 4k7 pullup
// 110 is Pt100 with 1k pullup (non standard)
#define TEMP_SENSOR_0 5
#define TEMP_SENSOR_1 0
#define TEMP_SENSOR_2 0
#define TEMP_SENSOR_BED 1
#endif //__CONFIGURATION_PRUSA_H

View file

@ -1,230 +0,0 @@
#ifndef CONFIGURATION_PRUSA_H
#define CONFIGURATION_PRUSA_H
/*------------------------------------
GENERAL SETTINGS
*------------------------------------*/
// Printer revision
#define REVISION "175-2b"
// Printer name
#define CUSTOM_MENDEL_NAME "Prusa i3"
// Electronics
#define MOTHERBOARD BOARD_RAMBO_MINI_1_3
// Language setting
#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en)
/*------------------------------------
AXIS SETTINGS
*------------------------------------*/
// Steps per unit {X,Y,Z,E}
#define DEFAULT_AXIS_STEPS_PER_UNIT {100,100,3200/0.8,174.2}
// Endstop inverting
const bool X_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool Y_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool Z_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
// Home position
#define MANUAL_X_HOME_POS 0
#define MANUAL_Y_HOME_POS 0
#define MANUAL_Z_HOME_POS 0.25
// Travel limits after homing
#define X_MAX_POS 214
#define X_MIN_POS 0
#define Y_MAX_POS 198
#define Y_MIN_POS 0
#define Z_MAX_POS 201
#define Z_MIN_POS 0.23
#define NUM_AXIS 4 // The axis order in all axis related arrays is X, Y, Z, E
#define HOMING_FEEDRATE {3000, 3000, 240, 0} // set the homing speeds (mm/min)
#define DEFAULT_MAX_FEEDRATE {500, 500, 3, 25} // (mm/sec)
#define DEFAULT_MAX_ACCELERATION {9000,9000,30,10000} // X, Y, Z, E maximum start speed for accelerated moves. E default values are good for Skeinforge 40+, for older versions raise them a lot.
#define DEFAULT_ACCELERATION 3000 // X, Y, Z and E max acceleration in mm/s^2 for printing moves
#define DEFAULT_RETRACT_ACCELERATION 3000 // X, Y, Z and E max acceleration in mm/s^2 for retracts
#define MANUAL_FEEDRATE {3000, 3000, 240, 60} // set the speeds for manual moves (mm/min)
/*------------------------------------
EXTRUDER SETTINGS
*------------------------------------*/
// Mintemps
#define HEATER_0_MINTEMP 15
#define HEATER_1_MINTEMP 5
#define HEATER_2_MINTEMP 5
#define BED_MINTEMP 15
// Maxtemps
#define HEATER_0_MAXTEMP 310
#define HEATER_1_MAXTEMP 310
#define HEATER_2_MAXTEMP 310
#define BED_MAXTEMP 150
// Define PID constants for extruder
#define DEFAULT_Kp 40.925
#define DEFAULT_Ki 4.875
#define DEFAULT_Kd 86.085
// Extrude mintemp
#define EXTRUDE_MINTEMP 190
// Extruder cooling fans
#define EXTRUDER_0_AUTO_FAN_PIN 8
#define EXTRUDER_1_AUTO_FAN_PIN -1
#define EXTRUDER_2_AUTO_FAN_PIN -1
#define EXTRUDER_AUTO_FAN_TEMPERATURE 50
#define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed
/*------------------------------------
LOAD/UNLOAD FILAMENT SETTINGS
*------------------------------------*/
// Load filament commands
#define LOAD_FILAMENT_0 "M83"
#define LOAD_FILAMENT_1 "G1 E70 F400"
#define LOAD_FILAMENT_2 "G1 E40 F100"
// Unload filament commands
#define UNLOAD_FILAMENT_0 "M83"
#define UNLOAD_FILAMENT_1 "G1 E-80 F400"
/*------------------------------------
CHANGE FILAMENT SETTINGS
*------------------------------------*/
// Filament change configuration
#define FILAMENTCHANGEENABLE
#ifdef FILAMENTCHANGEENABLE
#define FILAMENTCHANGE_XPOS 211
#define FILAMENTCHANGE_YPOS 0
#define FILAMENTCHANGE_ZADD 2
#define FILAMENTCHANGE_FIRSTRETRACT -2
#define FILAMENTCHANGE_FINALRETRACT -80
#define FILAMENTCHANGE_FIRSTFEED 70
#define FILAMENTCHANGE_FINALFEED 50
#define FILAMENTCHANGE_RECFEED 5
#define FILAMENTCHANGE_XYFEED 70
#define FILAMENTCHANGE_EFEED 20
#define FILAMENTCHANGE_RFEED 400
#define FILAMENTCHANGE_EXFEED 2
#define FILAMENTCHANGE_ZFEED 300
#endif
/*------------------------------------
ADDITIONAL FEATURES SETTINGS
*------------------------------------*/
// Define Prusa filament runout sensor
//#define FILAMENT_RUNOUT_SUPPORT
#ifdef FILAMENT_RUNOUT_SUPPORT
#define FILAMENT_RUNOUT_SENSOR 1
#endif
/*------------------------------------
MOTOR CURRENT SETTINGS
*------------------------------------*/
// Motor Current setting for BIG RAMBo
#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
#define DIGIPOT_MOTOR_CURRENT_LOUD {135,135,135,135,135}
// Motor Current settings for RAMBo mini PWM value = MotorCurrentSetting * 255 / range
#if MOTHERBOARD == 102 || MOTHERBOARD == 302
#define MOTOR_CURRENT_PWM_RANGE 2000
#define DEFAULT_PWM_MOTOR_CURRENT {270, 450, 450} // {XY,Z,E}
#define DEFAULT_PWM_MOTOR_CURRENT_LOUD {540, 450, 500} // {XY,Z,E}
#endif
/*------------------------------------
PREHEAT SETTINGS
*------------------------------------*/
#define PLA_PREHEAT_HOTEND_TEMP 210
#define PLA_PREHEAT_HPB_TEMP 50
#define PLA_PREHEAT_FAN_SPEED 0
#define ABS_PREHEAT_HOTEND_TEMP 255
#define ABS_PREHEAT_HPB_TEMP 100
#define ABS_PREHEAT_FAN_SPEED 0
#define HIPS_PREHEAT_HOTEND_TEMP 220
#define HIPS_PREHEAT_HPB_TEMP 100
#define HIPS_PREHEAT_FAN_SPEED 0
#define PP_PREHEAT_HOTEND_TEMP 254
#define PP_PREHEAT_HPB_TEMP 100
#define PP_PREHEAT_FAN_SPEED 0
#define PET_PREHEAT_HOTEND_TEMP 240
#define PET_PREHEAT_HPB_TEMP 90
#define PET_PREHEAT_FAN_SPEED 0
#define FLEX_PREHEAT_HOTEND_TEMP 230
#define FLEX_PREHEAT_HPB_TEMP 50
#define FLEX_PREHEAT_FAN_SPEED 0
/*------------------------------------
THERMISTORS SETTINGS
*------------------------------------*/
//
//--NORMAL IS 4.7kohm PULLUP!-- 1kohm pullup can be used on hotend sensor, using correct resistor and table
//
//// Temperature sensor settings:
// -2 is thermocouple with MAX6675 (only for sensor 0)
// -1 is thermocouple with AD595
// 0 is not used
// 1 is 100k thermistor - best choice for EPCOS 100k (4.7k pullup)
// 2 is 200k thermistor - ATC Semitec 204GT-2 (4.7k pullup)
// 3 is Mendel-parts thermistor (4.7k pullup)
// 4 is 10k thermistor !! do not use it for a hotend. It gives bad resolution at high temp. !!
// 5 is 100K thermistor - ATC Semitec 104GT-2 (Used in ParCan & J-Head) (4.7k pullup)
// 6 is 100k EPCOS - Not as accurate as table 1 (created using a fluke thermocouple) (4.7k pullup)
// 7 is 100k Honeywell thermistor 135-104LAG-J01 (4.7k pullup)
// 71 is 100k Honeywell thermistor 135-104LAF-J01 (4.7k pullup)
// 8 is 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup)
// 9 is 100k GE Sensing AL03006-58.2K-97-G1 (4.7k pullup)
// 10 is 100k RS thermistor 198-961 (4.7k pullup)
// 11 is 100k beta 3950 1% thermistor (4.7k pullup)
// 12 is 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup) (calibrated for Makibox hot bed)
// 13 is 100k Hisens 3950 1% up to 300°C for hotend "Simple ONE " & "Hotend "All In ONE"
// 20 is the PT100 circuit found in the Ultimainboard V2.x
// 60 is 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
//
// 1k ohm pullup tables - This is not normal, you would have to have changed out your 4.7k for 1k
// (but gives greater accuracy and more stable PID)
// 51 is 100k thermistor - EPCOS (1k pullup)
// 52 is 200k thermistor - ATC Semitec 204GT-2 (1k pullup)
// 55 is 100k thermistor - ATC Semitec 104GT-2 (Used in ParCan & J-Head) (1k pullup)
//
// 1047 is Pt1000 with 4k7 pullup
// 1010 is Pt1000 with 1k pullup (non standard)
// 147 is Pt100 with 4k7 pullup
// 110 is Pt100 with 1k pullup (non standard)
#define TEMP_SENSOR_0 5
#define TEMP_SENSOR_1 0
#define TEMP_SENSOR_2 0
#define TEMP_SENSOR_BED 1
#endif //__CONFIGURATION_PRUSA_H

View file

@ -1,231 +0,0 @@
#ifndef CONFIGURATION_PRUSA_H
#define CONFIGURATION_PRUSA_H
/*------------------------------------
GENERAL SETTINGS
*------------------------------------*/
// Printer revision
#define REVISION "300-1a"
#define THREEMM_PRINTER
// Printer name
#define CUSTOM_MENDEL_NAME "Prusa i3"
// Electronics
#define MOTHERBOARD BOARD_RAMBO_MINI_1_0
// Language setting
#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en)
/*------------------------------------
AXIS SETTINGS
*------------------------------------*/
// Steps per unit {X,Y,Z,E}
#define DEFAULT_AXIS_STEPS_PER_UNIT {100,100,3200/0.8,350*1.5}
// Endstop inverting
const bool X_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool Y_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool Z_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
// Home position
#define MANUAL_X_HOME_POS 0
#define MANUAL_Y_HOME_POS 0
#define MANUAL_Z_HOME_POS 0.25
// Travel limits after homing
#define X_MAX_POS 214
#define X_MIN_POS 0
#define Y_MAX_POS 198
#define Y_MIN_POS 0
#define Z_MAX_POS 201
#define Z_MIN_POS 0.23
#define NUM_AXIS 4 // The axis order in all axis related arrays is X, Y, Z, E
#define HOMING_FEEDRATE {3000, 3000, 240, 0} // set the homing speeds (mm/min)
#define DEFAULT_MAX_FEEDRATE {500, 500, 3, 25} // (mm/sec)
#define DEFAULT_MAX_ACCELERATION {9000,9000,30,10000} // X, Y, Z, E maximum start speed for accelerated moves. E default values are good for Skeinforge 40+, for older versions raise them a lot.
#define DEFAULT_ACCELERATION 3000 // X, Y, Z and E max acceleration in mm/s^2 for printing moves
#define DEFAULT_RETRACT_ACCELERATION 3000 // X, Y, Z and E max acceleration in mm/s^2 for retracts
#define MANUAL_FEEDRATE {3000, 3000, 240, 60} // set the speeds for manual moves (mm/min)
/*------------------------------------
EXTRUDER SETTINGS
*------------------------------------*/
// Mintemps
#define HEATER_0_MINTEMP 15
#define HEATER_1_MINTEMP 5
#define HEATER_2_MINTEMP 5
#define BED_MINTEMP 15
// Maxtemps
#define HEATER_0_MAXTEMP 315
#define HEATER_1_MAXTEMP 275
#define HEATER_2_MAXTEMP 275
#define BED_MAXTEMP 150
// Define PID constants for extruder
#define DEFAULT_Kp 12.7
#define DEFAULT_Ki 1.09
#define DEFAULT_Kd 37.4
// Extrude mintemp
#define EXTRUDE_MINTEMP 190
// Extruder cooling fans
#define EXTRUDER_0_AUTO_FAN_PIN 6
#define EXTRUDER_1_AUTO_FAN_PIN -1
#define EXTRUDER_2_AUTO_FAN_PIN -1
#define EXTRUDER_AUTO_FAN_TEMPERATURE 50
#define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed
/*------------------------------------
LOAD/UNLOAD FILAMENT SETTINGS
*------------------------------------*/
// Load filament commands
#define LOAD_FILAMENT_0 "M83"
#define LOAD_FILAMENT_1 "G1 E65 F400"
#define LOAD_FILAMENT_2 "G1 E40 F100"
// Unload filament commands
#define UNLOAD_FILAMENT_0 "M83"
#define UNLOAD_FILAMENT_1 "G1 E-80 F400"
/*------------------------------------
CHANGE FILAMENT SETTINGS
*------------------------------------*/
// Filament change configuration
#define FILAMENTCHANGEENABLE
#ifdef FILAMENTCHANGEENABLE
#define FILAMENTCHANGE_XPOS 211
#define FILAMENTCHANGE_YPOS 0
#define FILAMENTCHANGE_ZADD 2
#define FILAMENTCHANGE_FIRSTRETRACT -2
#define FILAMENTCHANGE_FINALRETRACT -80
#define FILAMENTCHANGE_FIRSTFEED 70
#define FILAMENTCHANGE_FINALFEED 50
#define FILAMENTCHANGE_RECFEED 5
#define FILAMENTCHANGE_XYFEED 70
#define FILAMENTCHANGE_EFEED 20
#define FILAMENTCHANGE_RFEED 400
#define FILAMENTCHANGE_EXFEED 2
#define FILAMENTCHANGE_ZFEED 300
#endif
/*------------------------------------
ADDITIONAL FEATURES SETTINGS
*------------------------------------*/
// Define Prusa filament runout sensor
//#define FILAMENT_RUNOUT_SUPPORT
#ifdef FILAMENT_RUNOUT_SUPPORT
#define FILAMENT_RUNOUT_SENSOR 1
#endif
/*------------------------------------
MOTOR CURRENT SETTINGS
*------------------------------------*/
// Motor Current setting for BIG RAMBo
#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
#define DIGIPOT_MOTOR_CURRENT_LOUD {135,135,135,135,135}
// Motor Current settings for RAMBo mini PWM value = MotorCurrentSetting * 255 / range
#if MOTHERBOARD == 102 || MOTHERBOARD == 302
#define MOTOR_CURRENT_PWM_RANGE 2000
#define DEFAULT_PWM_MOTOR_CURRENT {270, 450, 850} // {XY,Z,E}
#define DEFAULT_PWM_MOTOR_CURRENT_LOUD {540, 450, 500} // {XY,Z,E}
#endif
/*------------------------------------
PREHEAT SETTINGS
*------------------------------------*/
#define PLA_PREHEAT_HOTEND_TEMP 220
#define PLA_PREHEAT_HPB_TEMP 50
#define PLA_PREHEAT_FAN_SPEED 255
#define ABS_PREHEAT_HOTEND_TEMP 285
#define ABS_PREHEAT_HPB_TEMP 100
#define ABS_PREHEAT_FAN_SPEED 255
#define HIPS_PREHEAT_HOTEND_TEMP 220
#define HIPS_PREHEAT_HPB_TEMP 100
#define HIPS_PREHEAT_FAN_SPEED 0
#define PP_PREHEAT_HOTEND_TEMP 254
#define PP_PREHEAT_HPB_TEMP 100
#define PP_PREHEAT_FAN_SPEED 0
#define PET_PREHEAT_HOTEND_TEMP 240
#define PET_PREHEAT_HPB_TEMP 90
#define PET_PREHEAT_FAN_SPEED 0
#define FLEX_PREHEAT_HOTEND_TEMP 250
#define FLEX_PREHEAT_HPB_TEMP 50
#define FLEX_PREHEAT_FAN_SPEED 0
/*------------------------------------
THERMISTORS SETTINGS
*------------------------------------*/
//
//--NORMAL IS 4.7kohm PULLUP!-- 1kohm pullup can be used on hotend sensor, using correct resistor and table
//
//// Temperature sensor settings:
// -2 is thermocouple with MAX6675 (only for sensor 0)
// -1 is thermocouple with AD595
// 0 is not used
// 1 is 100k thermistor - best choice for EPCOS 100k (4.7k pullup)
// 2 is 200k thermistor - ATC Semitec 204GT-2 (4.7k pullup)
// 3 is Mendel-parts thermistor (4.7k pullup)
// 4 is 10k thermistor !! do not use it for a hotend. It gives bad resolution at high temp. !!
// 5 is 100K thermistor - ATC Semitec 104GT-2 (Used in ParCan & J-Head) (4.7k pullup)
// 6 is 100k EPCOS - Not as accurate as table 1 (created using a fluke thermocouple) (4.7k pullup)
// 7 is 100k Honeywell thermistor 135-104LAG-J01 (4.7k pullup)
// 71 is 100k Honeywell thermistor 135-104LAF-J01 (4.7k pullup)
// 8 is 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup)
// 9 is 100k GE Sensing AL03006-58.2K-97-G1 (4.7k pullup)
// 10 is 100k RS thermistor 198-961 (4.7k pullup)
// 11 is 100k beta 3950 1% thermistor (4.7k pullup)
// 12 is 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup) (calibrated for Makibox hot bed)
// 13 is 100k Hisens 3950 1% up to 300°C for hotend "Simple ONE " & "Hotend "All In ONE"
// 20 is the PT100 circuit found in the Ultimainboard V2.x
// 60 is 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
//
// 1k ohm pullup tables - This is not normal, you would have to have changed out your 4.7k for 1k
// (but gives greater accuracy and more stable PID)
// 51 is 100k thermistor - EPCOS (1k pullup)
// 52 is 200k thermistor - ATC Semitec 204GT-2 (1k pullup)
// 55 is 100k thermistor - ATC Semitec 104GT-2 (Used in ParCan & J-Head) (1k pullup)
//
// 1047 is Pt1000 with 4k7 pullup
// 1010 is Pt1000 with 1k pullup (non standard)
// 147 is Pt100 with 4k7 pullup
// 110 is Pt100 with 1k pullup (non standard)
#define TEMP_SENSOR_0 1
#define TEMP_SENSOR_1 0
#define TEMP_SENSOR_2 0
#define TEMP_SENSOR_BED 1
#endif //__CONFIGURATION_PRUSA_H

View file

@ -1,231 +0,0 @@
#ifndef CONFIGURATION_PRUSA_H
#define CONFIGURATION_PRUSA_H
/*------------------------------------
GENERAL SETTINGS
*------------------------------------*/
// Printer revision
#define REVISION "300-2a"
#define THREEMM_PRINTER
// Printer name
#define CUSTOM_MENDEL_NAME "Prusa i3"
// Electronics
#define MOTHERBOARD BOARD_RAMBO_MINI_1_3
// Language setting
#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(cz)
/*------------------------------------
AXIS SETTINGS
*------------------------------------*/
// Steps per unit {X,Y,Z,E}
#define DEFAULT_AXIS_STEPS_PER_UNIT {100,100,3200/0.8,350*1.5}
// Endstop inverting
const bool X_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool Y_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool Z_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
// Home position
#define MANUAL_X_HOME_POS 0
#define MANUAL_Y_HOME_POS 0
#define MANUAL_Z_HOME_POS 0.25
// Travel limits after homing
#define X_MAX_POS 214
#define X_MIN_POS 0
#define Y_MAX_POS 198
#define Y_MIN_POS 0
#define Z_MAX_POS 201
#define Z_MIN_POS 0.23
#define NUM_AXIS 4 // The axis order in all axis related arrays is X, Y, Z, E
#define HOMING_FEEDRATE {3000, 3000, 240, 0} // set the homing speeds (mm/min)
#define DEFAULT_MAX_FEEDRATE {500, 500, 3, 25} // (mm/sec)
#define DEFAULT_MAX_ACCELERATION {9000,9000,30,10000} // X, Y, Z, E maximum start speed for accelerated moves. E default values are good for Skeinforge 40+, for older versions raise them a lot.
#define DEFAULT_ACCELERATION 3000 // X, Y, Z and E max acceleration in mm/s^2 for printing moves
#define DEFAULT_RETRACT_ACCELERATION 3000 // X, Y, Z and E max acceleration in mm/s^2 for retracts
#define MANUAL_FEEDRATE {3000, 3000, 240, 60} // set the speeds for manual moves (mm/min)
/*------------------------------------
EXTRUDER SETTINGS
*------------------------------------*/
// Mintemps
#define HEATER_0_MINTEMP 15
#define HEATER_1_MINTEMP 5
#define HEATER_2_MINTEMP 5
#define BED_MINTEMP 15
// Maxtemps
#define HEATER_0_MAXTEMP 315
#define HEATER_1_MAXTEMP 275
#define HEATER_2_MAXTEMP 275
#define BED_MAXTEMP 150
// Define PID constants for extruder
#define DEFAULT_Kp 12.7
#define DEFAULT_Ki 1.09
#define DEFAULT_Kd 37.4
// Extrude mintemp
#define EXTRUDE_MINTEMP 190
// Extruder cooling fans
#define EXTRUDER_0_AUTO_FAN_PIN 6
#define EXTRUDER_1_AUTO_FAN_PIN -1
#define EXTRUDER_2_AUTO_FAN_PIN -1
#define EXTRUDER_AUTO_FAN_TEMPERATURE 50
#define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed
/*------------------------------------
LOAD/UNLOAD FILAMENT SETTINGS
*------------------------------------*/
// Load filament commands
#define LOAD_FILAMENT_0 "M83"
#define LOAD_FILAMENT_1 "G1 E65 F400"
#define LOAD_FILAMENT_2 "G1 E40 F100"
// Unload filament commands
#define UNLOAD_FILAMENT_0 "M83"
#define UNLOAD_FILAMENT_1 "G1 E-80 F400"
/*------------------------------------
CHANGE FILAMENT SETTINGS
*------------------------------------*/
// Filament change configuration
#define FILAMENTCHANGEENABLE
#ifdef FILAMENTCHANGEENABLE
#define FILAMENTCHANGE_XPOS 211
#define FILAMENTCHANGE_YPOS 0
#define FILAMENTCHANGE_ZADD 2
#define FILAMENTCHANGE_FIRSTRETRACT -2
#define FILAMENTCHANGE_FINALRETRACT -80
#define FILAMENTCHANGE_FIRSTFEED 70
#define FILAMENTCHANGE_FINALFEED 50
#define FILAMENTCHANGE_RECFEED 5
#define FILAMENTCHANGE_XYFEED 70
#define FILAMENTCHANGE_EFEED 20
#define FILAMENTCHANGE_RFEED 400
#define FILAMENTCHANGE_EXFEED 2
#define FILAMENTCHANGE_ZFEED 300
#endif
/*------------------------------------
ADDITIONAL FEATURES SETTINGS
*------------------------------------*/
// Define Prusa filament runout sensor
//#define FILAMENT_RUNOUT_SUPPORT
#ifdef FILAMENT_RUNOUT_SUPPORT
#define FILAMENT_RUNOUT_SENSOR 1
#endif
/*------------------------------------
MOTOR CURRENT SETTINGS
*------------------------------------*/
// Motor Current setting for BIG RAMBo
#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
#define DIGIPOT_MOTOR_CURRENT_LOUD {135,135,135,135,135}
// Motor Current settings for RAMBo mini PWM value = MotorCurrentSetting * 255 / range
#if MOTHERBOARD == 102 || MOTHERBOARD == 302
#define MOTOR_CURRENT_PWM_RANGE 2000
#define DEFAULT_PWM_MOTOR_CURRENT {270, 450, 850} // {XY,Z,E}
#define DEFAULT_PWM_MOTOR_CURRENT_LOUD {540, 450, 500} // {XY,Z,E}
#endif
/*------------------------------------
PREHEAT SETTINGS
*------------------------------------*/
#define PLA_PREHEAT_HOTEND_TEMP 220
#define PLA_PREHEAT_HPB_TEMP 50
#define PLA_PREHEAT_FAN_SPEED 255
#define ABS_PREHEAT_HOTEND_TEMP 285
#define ABS_PREHEAT_HPB_TEMP 100
#define ABS_PREHEAT_FAN_SPEED 255
#define HIPS_PREHEAT_HOTEND_TEMP 220
#define HIPS_PREHEAT_HPB_TEMP 100
#define HIPS_PREHEAT_FAN_SPEED 0
#define PP_PREHEAT_HOTEND_TEMP 254
#define PP_PREHEAT_HPB_TEMP 100
#define PP_PREHEAT_FAN_SPEED 0
#define PET_PREHEAT_HOTEND_TEMP 240
#define PET_PREHEAT_HPB_TEMP 90
#define PET_PREHEAT_FAN_SPEED 0
#define FLEX_PREHEAT_HOTEND_TEMP 250
#define FLEX_PREHEAT_HPB_TEMP 50
#define FLEX_PREHEAT_FAN_SPEED 0
/*------------------------------------
THERMISTORS SETTINGS
*------------------------------------*/
//
//--NORMAL IS 4.7kohm PULLUP!-- 1kohm pullup can be used on hotend sensor, using correct resistor and table
//
//// Temperature sensor settings:
// -2 is thermocouple with MAX6675 (only for sensor 0)
// -1 is thermocouple with AD595
// 0 is not used
// 1 is 100k thermistor - best choice for EPCOS 100k (4.7k pullup)
// 2 is 200k thermistor - ATC Semitec 204GT-2 (4.7k pullup)
// 3 is Mendel-parts thermistor (4.7k pullup)
// 4 is 10k thermistor !! do not use it for a hotend. It gives bad resolution at high temp. !!
// 5 is 100K thermistor - ATC Semitec 104GT-2 (Used in ParCan & J-Head) (4.7k pullup)
// 6 is 100k EPCOS - Not as accurate as table 1 (created using a fluke thermocouple) (4.7k pullup)
// 7 is 100k Honeywell thermistor 135-104LAG-J01 (4.7k pullup)
// 71 is 100k Honeywell thermistor 135-104LAF-J01 (4.7k pullup)
// 8 is 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup)
// 9 is 100k GE Sensing AL03006-58.2K-97-G1 (4.7k pullup)
// 10 is 100k RS thermistor 198-961 (4.7k pullup)
// 11 is 100k beta 3950 1% thermistor (4.7k pullup)
// 12 is 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup) (calibrated for Makibox hot bed)
// 13 is 100k Hisens 3950 1% up to 300°C for hotend "Simple ONE " & "Hotend "All In ONE"
// 20 is the PT100 circuit found in the Ultimainboard V2.x
// 60 is 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
//
// 1k ohm pullup tables - This is not normal, you would have to have changed out your 4.7k for 1k
// (but gives greater accuracy and more stable PID)
// 51 is 100k thermistor - EPCOS (1k pullup)
// 52 is 200k thermistor - ATC Semitec 204GT-2 (1k pullup)
// 55 is 100k thermistor - ATC Semitec 104GT-2 (Used in ParCan & J-Head) (1k pullup)
//
// 1047 is Pt1000 with 4k7 pullup
// 1010 is Pt1000 with 1k pullup (non standard)
// 147 is Pt100 with 4k7 pullup
// 110 is Pt100 with 1k pullup (non standard)
#define TEMP_SENSOR_0 1
#define TEMP_SENSOR_1 0
#define TEMP_SENSOR_2 0
#define TEMP_SENSOR_BED 1
#endif //__CONFIGURATION_PRUSA_H

View file

@ -6,7 +6,8 @@
*------------------------------------*/
// Printer revision
#define REVISION "300-1a"
#define FILAMENT_SIZE "3mm"
#define NOZZLE_TYPE "PrusaNmk2"
#define THREEMM_PRINTER
// Printer name
@ -15,8 +16,6 @@
// Electronics
#define MOTHERBOARD BOARD_RAMBO_MINI_1_0
// Language setting
#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(cz)
/*------------------------------------

View file

@ -6,7 +6,8 @@
*------------------------------------*/
// Printer revision
#define REVISION "300-2a"
#define FILAMENT_SIZE "3mm"
#define NOZZLE_TYPE "PrusaNmk2"
#define THREEMM_PRINTER
// Printer name
@ -15,8 +16,6 @@
// Electronics
#define MOTHERBOARD BOARD_RAMBO_MINI_1_3
// Language setting
#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en)
/*------------------------------------