Added more defines to the language.h file so that nowe most of the text strings are now configured via this file. Still got some hunting down to do to complete this task.

master
Blair Thompson 13 years ago
parent b4833d55c2
commit 046a8e0039

@ -0,0 +1,58 @@
#define __AVR_ATmega2560__
#define __cplusplus
#define __builtin_va_list int
#define __attribute__(x)
#define __inline__
#define __asm__(x)
#define ARDUINO 23
extern "C" void __cxa_pure_virtual() {}
#include "C:\arduino-0023\libraries\LiquidCrystal\LiquidCrystal.h"
#include "C:\arduino-0023\libraries\LiquidCrystal\LiquidCrystal.cpp"
void enquecommand(const char *cmd);
void setup_photpin();
void setup_powerhold();
void suicide();
void setup();
void loop();
void get_command();
float code_value();
long code_value_long();
bool code_seen(char code_string[]);
bool code_seen(char code);
void process_commands();
void process_commands();
void FlushSerialRequestResend();
void ClearToSend();
void get_coordinates();
void get_arc_coordinates();
void prepare_move();
void prepare_arc_move(char isclockwise);
void manage_inactivity(byte debug);
void kill();
void lcdProgMemprint(const char *str);
int intround(const float &x);
void lcd_status(const char* message);
void lcd_statuspgm(const char* message);
FORCE_INLINE void clear();
void lcd_init();
void beep();
void beepshort();
void lcd_status();
void buttons_init();
void buttons_check();
char *ftostr3(const float &x);
char *itostr2(const uint8_t &x);
char *ftostr31(const float &x);
char *ftostr32(const float &x);
char *itostr31(const int &xx);
char *itostr3(const int &xx);
char *itostr4(const int &xx);
char *ftostr51(const float &x);
char *ftostr52(const float &x);
void wd_init();
void wd_reset();
#include "C:\arduino-0023\hardware\arduino\cores\arduino\WProgram.h"
#include "C:\Users\Blair\Desktop\Marlin\Marlin\Marlin.pde"
#include "C:\Users\Blair\Desktop\Marlin\Marlin\ultralcd.pde"
#include "C:\Users\Blair\Desktop\Marlin\Marlin\watchdog.pde"

@ -254,28 +254,28 @@ void setup()
// Check startup - does nothing if bootloader sets MCUSR to 0 // Check startup - does nothing if bootloader sets MCUSR to 0
byte mcu = MCUSR; byte mcu = MCUSR;
if(mcu & 1) SERIAL_ECHOLNPGM("PowerUp"); if(mcu & 1) SERIAL_ECHOLNPGM(MSG_POWERUP);
if(mcu & 2) SERIAL_ECHOLNPGM("External Reset"); if(mcu & 2) SERIAL_ECHOLNPGM(MSG_EXTERNAL_RESET);
if(mcu & 4) SERIAL_ECHOLNPGM("Brown out Reset"); if(mcu & 4) SERIAL_ECHOLNPGM(MSG_BROWNOUT_RESET);
if(mcu & 8) SERIAL_ECHOLNPGM("Watchdog Reset"); if(mcu & 8) SERIAL_ECHOLNPGM(MSG_WATCHDOG_RESET);
if(mcu & 32) SERIAL_ECHOLNPGM("Software Reset"); if(mcu & 32) SERIAL_ECHOLNPGM(MSG_SOFTWARE_RESET);
MCUSR=0; MCUSR=0;
SERIAL_ECHOPGM("Marlin: "); SERIAL_ECHOPGM(MSG_MARLIN);
SERIAL_ECHOLNPGM(VERSION_STRING); SERIAL_ECHOLNPGM(VERSION_STRING);
#ifdef STRING_VERSION_CONFIG_H #ifdef STRING_VERSION_CONFIG_H
#ifdef STRING_CONFIG_H_AUTHOR #ifdef STRING_CONFIG_H_AUTHOR
SERIAL_ECHO_START; SERIAL_ECHO_START;
SERIAL_ECHOPGM("Configuration.h: "); SERIAL_ECHOPGM(MSG_CONFIGURATION_VER);
SERIAL_ECHOPGM(STRING_VERSION_CONFIG_H); SERIAL_ECHOPGM(STRING_VERSION_CONFIG_H);
SERIAL_ECHOPGM(" | Author: "); SERIAL_ECHOPGM(MSG_AUTHOR);
SERIAL_ECHOLNPGM(STRING_CONFIG_H_AUTHOR); SERIAL_ECHOLNPGM(STRING_CONFIG_H_AUTHOR);
#endif #endif
#endif #endif
SERIAL_ECHO_START; SERIAL_ECHO_START;
SERIAL_ECHOPGM("Free Memory:"); SERIAL_ECHOPGM(MSG_FREE_MEMORY);
SERIAL_ECHO(freeMemory()); SERIAL_ECHO(freeMemory());
SERIAL_ECHOPGM(" PlannerBufferBytes:"); SERIAL_ECHOPGM(MSG_PLANNER_BUFFER_BYTES);
SERIAL_ECHOLN((int)sizeof(block_t)*BLOCK_BUFFER_SIZE); SERIAL_ECHOLN((int)sizeof(block_t)*BLOCK_BUFFER_SIZE);
for(int8_t i = 0; i < BUFSIZE; i++) for(int8_t i = 0; i < BUFSIZE; i++)
{ {
@ -312,12 +312,12 @@ void loop()
if(strstr(cmdbuffer[bufindr],"M29") == NULL) if(strstr(cmdbuffer[bufindr],"M29") == NULL)
{ {
card.write_command(cmdbuffer[bufindr]); card.write_command(cmdbuffer[bufindr]);
SERIAL_PROTOCOLLNPGM("ok"); SERIAL_PROTOCOLLNPGM(MSG_OK);
} }
else else
{ {
card.closefile(); card.closefile();
SERIAL_PROTOCOLLNPGM("Done saving file."); SERIAL_PROTOCOLLNPGM(MSG_FILE_SAVED);
} }
} }
else else
@ -357,7 +357,7 @@ void get_command()
gcode_N = (strtol(&cmdbuffer[bufindw][strchr_pointer - cmdbuffer[bufindw] + 1], NULL, 10)); gcode_N = (strtol(&cmdbuffer[bufindw][strchr_pointer - cmdbuffer[bufindw] + 1], NULL, 10));
if(gcode_N != gcode_LastN+1 && (strstr(cmdbuffer[bufindw], "M110") == NULL) ) { if(gcode_N != gcode_LastN+1 && (strstr(cmdbuffer[bufindw], "M110") == NULL) ) {
SERIAL_ERROR_START; SERIAL_ERROR_START;
SERIAL_ERRORPGM("Line Number is not Last Line Number+1, Last Line:"); SERIAL_ERRORPGM(MSG_ERR_LINE_NO);
SERIAL_ERRORLN(gcode_LastN); SERIAL_ERRORLN(gcode_LastN);
//Serial.println(gcode_N); //Serial.println(gcode_N);
FlushSerialRequestResend(); FlushSerialRequestResend();
@ -374,7 +374,7 @@ void get_command()
if( (int)(strtod(&cmdbuffer[bufindw][strchr_pointer - cmdbuffer[bufindw] + 1], NULL)) != checksum) { if( (int)(strtod(&cmdbuffer[bufindw][strchr_pointer - cmdbuffer[bufindw] + 1], NULL)) != checksum) {
SERIAL_ERROR_START; SERIAL_ERROR_START;
SERIAL_ERRORPGM("checksum mismatch, Last Line:"); SERIAL_ERRORPGM(MSG_ERR_CHECKSUM_MISMATCH);
SERIAL_ERRORLN(gcode_LastN); SERIAL_ERRORLN(gcode_LastN);
FlushSerialRequestResend(); FlushSerialRequestResend();
serial_count = 0; serial_count = 0;
@ -385,7 +385,7 @@ void get_command()
else else
{ {
SERIAL_ERROR_START; SERIAL_ERROR_START;
SERIAL_ERRORPGM("No Checksum with line number, Last Line:"); SERIAL_ERRORPGM(MSG_ERR_NO_CHECKSUM);
SERIAL_ERRORLN(gcode_LastN); SERIAL_ERRORLN(gcode_LastN);
FlushSerialRequestResend(); FlushSerialRequestResend();
serial_count = 0; serial_count = 0;
@ -400,7 +400,7 @@ void get_command()
if((strstr(cmdbuffer[bufindw], "*") != NULL)) if((strstr(cmdbuffer[bufindw], "*") != NULL))
{ {
SERIAL_ERROR_START; SERIAL_ERROR_START;
SERIAL_ERRORPGM("No Line Number with checksum, Last Line:"); SERIAL_ERRORPGM(MSG_ERR_NO_LINENUMBER_WITH_CHECKSUM);
SERIAL_ERRORLN(gcode_LastN); SERIAL_ERRORLN(gcode_LastN);
serial_count = 0; serial_count = 0;
return; return;
@ -417,7 +417,7 @@ void get_command()
if(card.saving) if(card.saving)
break; break;
#endif //SDSUPPORT #endif //SDSUPPORT
SERIAL_PROTOCOLLNPGM("ok"); SERIAL_PROTOCOLLNPGM(MSG_OK);
break; break;
default: default:
break; break;
@ -445,7 +445,7 @@ void get_command()
if(serial_char == '\n' || serial_char == '\r' || serial_char == ':' || serial_count >= (MAX_CMD_SIZE - 1)||n==-1) if(serial_char == '\n' || serial_char == '\r' || serial_char == ':' || serial_count >= (MAX_CMD_SIZE - 1)||n==-1)
{ {
if(card.eof()){ if(card.eof()){
SERIAL_PROTOCOLLNPGM("Done printing file"); SERIAL_PROTOCOLLNPGM(MSG_FILE_PRINTED);
stoptime=millis(); stoptime=millis();
char time[30]; char time[30];
unsigned long t=(stoptime-starttime)/1000; unsigned long t=(stoptime-starttime)/1000;
@ -559,7 +559,7 @@ void process_commands()
prepare_arc_move(false); prepare_arc_move(false);
return; return;
case 4: // G4 dwell case 4: // G4 dwell
LCD_MESSAGEPGM("DWELL..."); LCD_MESSAGEPGM(MSG_DWELL);
codenum = 0; codenum = 0;
if(code_seen('P')) codenum = code_value(); // milliseconds to wait if(code_seen('P')) codenum = code_value(); // milliseconds to wait
if(code_seen('S')) codenum = code_value() * 1000; // seconds to wait if(code_seen('S')) codenum = code_value() * 1000; // seconds to wait
@ -681,7 +681,7 @@ void process_commands()
switch( (int)code_value() ) switch( (int)code_value() )
{ {
case 17: case 17:
LCD_MESSAGEPGM("No move."); LCD_MESSAGEPGM(MSG_NO_MOVE);
enable_x(); enable_x();
enable_y(); enable_y();
enable_z(); enable_z();
@ -692,9 +692,9 @@ void process_commands()
#ifdef SDSUPPORT #ifdef SDSUPPORT
case 20: // M20 - list SD card case 20: // M20 - list SD card
SERIAL_PROTOCOLLNPGM("Begin file list"); SERIAL_PROTOCOLLNPGM(MSG_BEGIN_FILE_LIST);
card.ls(); card.ls();
SERIAL_PROTOCOLLNPGM("End file list"); SERIAL_PROTOCOLLNPGM(MSG_END_FILE_LIST);
break; break;
case 21: // M21 - init SD card case 21: // M21 - init SD card
@ -787,7 +787,7 @@ void process_commands()
tmp_extruder = code_value(); tmp_extruder = code_value();
if(tmp_extruder >= EXTRUDERS) { if(tmp_extruder >= EXTRUDERS) {
SERIAL_ECHO_START; SERIAL_ECHO_START;
SERIAL_ECHO("M104 Invalid extruder "); SERIAL_ECHO(MSG_M104_INVALID_EXTRUDER);
SERIAL_ECHOLN(tmp_extruder); SERIAL_ECHOLN(tmp_extruder);
break; break;
} }
@ -804,7 +804,7 @@ void process_commands()
tmp_extruder = code_value(); tmp_extruder = code_value();
if(tmp_extruder >= EXTRUDERS) { if(tmp_extruder >= EXTRUDERS) {
SERIAL_ECHO_START; SERIAL_ECHO_START;
SERIAL_ECHO("M105 Invalid extruder "); SERIAL_ECHO(MSG_M105_INVALID_EXTRUDER);
SERIAL_ECHOLN(tmp_extruder); SERIAL_ECHOLN(tmp_extruder);
break; break;
} }
@ -818,7 +818,7 @@ void process_commands()
#endif //TEMP_BED_PIN #endif //TEMP_BED_PIN
#else #else
SERIAL_ERROR_START; SERIAL_ERROR_START;
SERIAL_ERRORLNPGM("No thermistors - no temp"); SERIAL_ERRORLNPGM(MSG_ERR_NO_THERMISTORS);
#endif #endif
#ifdef PIDTEMP #ifdef PIDTEMP
SERIAL_PROTOCOLPGM(" @:"); SERIAL_PROTOCOLPGM(" @:");
@ -834,12 +834,12 @@ void process_commands()
tmp_extruder = code_value(); tmp_extruder = code_value();
if(tmp_extruder >= EXTRUDERS) { if(tmp_extruder >= EXTRUDERS) {
SERIAL_ECHO_START; SERIAL_ECHO_START;
SERIAL_ECHO("M109 Invalid extruder "); SERIAL_ECHO(MSG_M109_INVALID_EXTRUDER);
SERIAL_ECHOLN(tmp_extruder); SERIAL_ECHOLN(tmp_extruder);
break; break;
} }
} }
LCD_MESSAGEPGM("Heating..."); LCD_MESSAGEPGM(MSG_HEATING);
#ifdef AUTOTEMP #ifdef AUTOTEMP
autotemp_enabled=false; autotemp_enabled=false;
#endif #endif
@ -905,14 +905,14 @@ void process_commands()
} }
#endif //TEMP_RESIDENCY_TIME #endif //TEMP_RESIDENCY_TIME
} }
LCD_MESSAGEPGM("Heating done."); LCD_MESSAGEPGM(MSG_HEATING_COMPLETE);
starttime=millis(); starttime=millis();
previous_millis_cmd = millis(); previous_millis_cmd = millis();
} }
break; break;
case 190: // M190 - Wait for bed heater to reach target. case 190: // M190 - Wait for bed heater to reach target.
#if TEMP_BED_PIN > -1 #if TEMP_BED_PIN > -1
LCD_MESSAGEPGM("Bed Heating."); LCD_MESSAGEPGM(MSG_BED_HEATING);
if (code_seen('S')) setTargetBed(code_value()); if (code_seen('S')) setTargetBed(code_value());
codenum = millis(); codenum = millis();
while(isHeatingBed()) while(isHeatingBed())
@ -930,7 +930,7 @@ void process_commands()
} }
manage_heater(); manage_heater();
} }
LCD_MESSAGEPGM("Bed done."); LCD_MESSAGEPGM(MSG_BED_DONE);
previous_millis_cmd = millis(); previous_millis_cmd = millis();
#endif #endif
break; break;
@ -1005,7 +1005,7 @@ void process_commands()
disable_e2(); disable_e2();
} }
#endif #endif
LCD_MESSAGEPGM("Partial Release"); LCD_MESSAGEPGM(MSG_PART_RELEASE);
} }
} }
break; break;
@ -1021,7 +1021,7 @@ void process_commands()
} }
break; break;
case 115: // M115 case 115: // M115
SerialprintPGM("FIRMWARE_NAME:Marlin; Sprinter/grbl mashup for gen6 FIRMWARE_URL:http://www.mendel-parts.com PROTOCOL_VERSION:1.0 MACHINE_TYPE:Mendel EXTRUDER_COUNT:1\n"); SerialprintPGM(MSG_M115_REPORT);
break; break;
case 117: // M117 display message case 117: // M117 display message
LCD_MESSAGE(cmdbuffer[bufindr]+5); LCD_MESSAGE(cmdbuffer[bufindr]+5);
@ -1036,7 +1036,7 @@ void process_commands()
SERIAL_PROTOCOLPGM("E:"); SERIAL_PROTOCOLPGM("E:");
SERIAL_PROTOCOL(current_position[E_AXIS]); SERIAL_PROTOCOL(current_position[E_AXIS]);
SERIAL_PROTOCOLPGM(" Count X:"); SERIAL_PROTOCOLPGM(MSG_COUNT_X);
SERIAL_PROTOCOL(float(st_get_position(X_AXIS))/axis_steps_per_unit[X_AXIS]); SERIAL_PROTOCOL(float(st_get_position(X_AXIS))/axis_steps_per_unit[X_AXIS]);
SERIAL_PROTOCOLPGM("Y:"); SERIAL_PROTOCOLPGM("Y:");
SERIAL_PROTOCOL(float(st_get_position(Y_AXIS))/axis_steps_per_unit[Y_AXIS]); SERIAL_PROTOCOL(float(st_get_position(Y_AXIS))/axis_steps_per_unit[Y_AXIS]);
@ -1047,27 +1047,27 @@ void process_commands()
break; break;
case 119: // M119 case 119: // M119
#if (X_MIN_PIN > -1) #if (X_MIN_PIN > -1)
SERIAL_PROTOCOLPGM("x_min:"); SERIAL_PROTOCOLPGM(MSG_X_MIN);
SERIAL_PROTOCOL(((READ(X_MIN_PIN)^X_ENDSTOPS_INVERTING)?"H ":"L ")); SERIAL_PROTOCOL(((READ(X_MIN_PIN)^X_ENDSTOPS_INVERTING)?"H ":"L "));
#endif #endif
#if (X_MAX_PIN > -1) #if (X_MAX_PIN > -1)
SERIAL_PROTOCOLPGM("x_max:"); SERIAL_PROTOCOLPGM(MSG_X_MAX);
SERIAL_PROTOCOL(((READ(X_MAX_PIN)^X_ENDSTOPS_INVERTING)?"H ":"L ")); SERIAL_PROTOCOL(((READ(X_MAX_PIN)^X_ENDSTOPS_INVERTING)?"H ":"L "));
#endif #endif
#if (Y_MIN_PIN > -1) #if (Y_MIN_PIN > -1)
SERIAL_PROTOCOLPGM("y_min:"); SERIAL_PROTOCOLPGM(MSG_Y_MIN);
SERIAL_PROTOCOL(((READ(Y_MIN_PIN)^Y_ENDSTOPS_INVERTING)?"H ":"L ")); SERIAL_PROTOCOL(((READ(Y_MIN_PIN)^Y_ENDSTOPS_INVERTING)?"H ":"L "));
#endif #endif
#if (Y_MAX_PIN > -1) #if (Y_MAX_PIN > -1)
SERIAL_PROTOCOLPGM("y_max:"); SERIAL_PROTOCOLPGM(MSG_Y_MAX);
SERIAL_PROTOCOL(((READ(Y_MAX_PIN)^Y_ENDSTOPS_INVERTING)?"H ":"L ")); SERIAL_PROTOCOL(((READ(Y_MAX_PIN)^Y_ENDSTOPS_INVERTING)?"H ":"L "));
#endif #endif
#if (Z_MIN_PIN > -1) #if (Z_MIN_PIN > -1)
SERIAL_PROTOCOLPGM("z_min:"); SERIAL_PROTOCOLPGM(MSG_Z_MIN);
SERIAL_PROTOCOL(((READ(Z_MIN_PIN)^Z_ENDSTOPS_INVERTING)?"H ":"L ")); SERIAL_PROTOCOL(((READ(Z_MIN_PIN)^Z_ENDSTOPS_INVERTING)?"H ":"L "));
#endif #endif
#if (Z_MAX_PIN > -1) #if (Z_MAX_PIN > -1)
SERIAL_PROTOCOLPGM("z_max:"); SERIAL_PROTOCOLPGM(MSG_Z_MAX);
SERIAL_PROTOCOL(((READ(Z_MAX_PIN)^Z_ENDSTOPS_INVERTING)?"H ":"L ")); SERIAL_PROTOCOL(((READ(Z_MAX_PIN)^Z_ENDSTOPS_INVERTING)?"H ":"L "));
#endif #endif
SERIAL_PROTOCOLLN(""); SERIAL_PROTOCOLLN("");
@ -1144,7 +1144,8 @@ void process_commands()
if(code_seen('C')) Kc = code_value(); if(code_seen('C')) Kc = code_value();
#endif #endif
updatePID(); updatePID();
SERIAL_PROTOCOL("ok p:"); SERIAL_PROTOCOL(MSG_OK);
SERIAL_PROTOCOL(" p:");
SERIAL_PROTOCOL(Kp); SERIAL_PROTOCOL(Kp);
SERIAL_PROTOCOL(" i:"); SERIAL_PROTOCOL(" i:");
SERIAL_PROTOCOL(Ki/PID_dT); SERIAL_PROTOCOL(Ki/PID_dT);
@ -1223,12 +1224,12 @@ void process_commands()
SERIAL_ECHO_START; SERIAL_ECHO_START;
SERIAL_ECHO("T"); SERIAL_ECHO("T");
SERIAL_ECHO(tmp_extruder); SERIAL_ECHO(tmp_extruder);
SERIAL_ECHOLN("Invalid extruder"); SERIAL_ECHOLN(MSG_INVALID_EXTRUDER);
} }
else { else {
active_extruder = tmp_extruder; active_extruder = tmp_extruder;
SERIAL_ECHO_START; SERIAL_ECHO_START;
SERIAL_ECHO("Active Extruder: "); SERIAL_ECHO(MSG_ACTIVE_EXTRUDER);
SERIAL_PROTOCOLLN((int)active_extruder); SERIAL_PROTOCOLLN((int)active_extruder);
} }
} }
@ -1236,7 +1237,7 @@ void process_commands()
else else
{ {
SERIAL_ECHO_START; SERIAL_ECHO_START;
SERIAL_ECHOPGM("Unknown command:\""); SERIAL_ECHOPGM(MSG_UNKNOWN_COMMAND);
SERIAL_ECHO(cmdbuffer[bufindr]); SERIAL_ECHO(cmdbuffer[bufindr]);
SERIAL_ECHOLNPGM("\""); SERIAL_ECHOLNPGM("\"");
} }
@ -1248,7 +1249,7 @@ void FlushSerialRequestResend()
{ {
//char cmdbuffer[bufindr][100]="Resend:"; //char cmdbuffer[bufindr][100]="Resend:";
MYSERIAL.flush(); MYSERIAL.flush();
SERIAL_PROTOCOLPGM("Resend:"); SERIAL_PROTOCOLPGM(MSG_RESEND);
SERIAL_PROTOCOLLN(gcode_LastN + 1); SERIAL_PROTOCOLLN(gcode_LastN + 1);
ClearToSend(); ClearToSend();
} }
@ -1260,7 +1261,7 @@ void ClearToSend()
if(fromsd[bufindr]) if(fromsd[bufindr])
return; return;
#endif //SDSUPPORT #endif //SDSUPPORT
SERIAL_PROTOCOLLNPGM("ok"); SERIAL_PROTOCOLLNPGM(MSG_OK);
} }
void get_coordinates() void get_coordinates()
@ -1370,8 +1371,8 @@ void kill()
if(PS_ON_PIN > -1) pinMode(PS_ON_PIN,INPUT); if(PS_ON_PIN > -1) pinMode(PS_ON_PIN,INPUT);
SERIAL_ERROR_START; SERIAL_ERROR_START;
SERIAL_ERRORLNPGM("Printer halted. kill() called !!"); SERIAL_ERRORLNPGM(MSG_ERR_KILLED);
LCD_MESSAGEPGM("KILLED. "); LCD_MESSAGEPGM(MSG_KILLED);
suicide(); suicide();
while(1); // Wait for reset while(1); // Wait for reset
} }

Binary file not shown.

@ -0,0 +1,20 @@

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Marlin", "Marlin.vcxproj", "{A6365572-B176-4C2F-9B18-A75B62059578}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{A6365572-B176-4C2F-9B18-A75B62059578}.Debug|Win32.ActiveCfg = Debug|Win32
{A6365572-B176-4C2F-9B18-A75B62059578}.Debug|Win32.Build.0 = Debug|Win32
{A6365572-B176-4C2F-9B18-A75B62059578}.Release|Win32.ActiveCfg = Release|Win32
{A6365572-B176-4C2F-9B18-A75B62059578}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

Binary file not shown.

@ -0,0 +1,117 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{A6365572-B176-4C2F-9B18-A75B62059578}</ProjectGuid>
<RootNamespace>Marlin</RootNamespace>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<IncludePath>C:\arduino-0023\hardware\arduino\cores\arduino;c:\arduino-0023\hardware\tools\avr\avr\include\;c:\arduino-0023\hardware\tools\avr\avr\include\avr\;c:\arduino-0023\hardware\tools\avr\avr\;c:\arduino-0023\hardware\tools\avr\lib\gcc\avr\4.3.2\include\;C:\arduino-0023\libraries\LiquidCrystal;C:\arduino-0023\libraries\LiquidCrystal\utility;</IncludePath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<IncludePath>C:\arduino-0023\hardware\arduino\cores\arduino;c:\arduino-0023\hardware\tools\avr\avr\include\;c:\arduino-0023\hardware\tools\avr\avr\include\avr\;c:\arduino-0023\hardware\tools\avr\avr\;c:\arduino-0023\hardware\tools\avr\lib\gcc\avr\4.3.2\include\;C:\arduino-0023\libraries\LiquidCrystal;C:\arduino-0023\libraries\LiquidCrystal\utility;</IncludePath>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<None Include="Marlin.pde" />
<None Include="ultralcd.pde" />
<None Include="watchdog.pde" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="cardreader.cpp" />
<ClCompile Include="MarlinSerial.cpp" />
<ClCompile Include="motion_control.cpp" />
<ClCompile Include="planner.cpp" />
<ClCompile Include="Sd2Card.cpp" />
<ClCompile Include="SdBaseFile.cpp" />
<ClCompile Include="SdFatUtil.cpp" />
<ClCompile Include="SdFile.cpp" />
<ClCompile Include="SdVolume.cpp" />
<ClCompile Include="stepper.cpp" />
<ClCompile Include="temperature.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="cardreader.h" />
<ClInclude Include="Configuration.h" />
<ClInclude Include="Configuration_adv.h" />
<ClInclude Include="EEPROMwrite.h" />
<ClInclude Include="fastio.h" />
<ClInclude Include="language.h" />
<ClInclude Include="Marlin.h" />
<ClInclude Include="MarlinSerial.h" />
<ClInclude Include="motion_control.h" />
<ClInclude Include="pins.h" />
<ClInclude Include="planner.h" />
<ClInclude Include="Sd2Card.h" />
<ClInclude Include="Sd2PinMap.h" />
<ClInclude Include="SdBaseFile.h" />
<ClInclude Include="SdFatConfig.h" />
<ClInclude Include="SdFatStructs.h" />
<ClInclude Include="SdFatUtil.h" />
<ClInclude Include="SdFile.h" />
<ClInclude Include="SdInfo.h" />
<ClInclude Include="SdVolume.h" />
<ClInclude Include="speed_lookuptable.h" />
<ClInclude Include="stepper.h" />
<ClInclude Include="temperature.h" />
<ClInclude Include="thermistortables.h" />
<ClInclude Include="ultralcd.h" />
<ClInclude Include="watchdog.h" />
<ClInclude Include="wiring.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

@ -0,0 +1,140 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<None Include="Marlin.pde" />
<None Include="ultralcd.pde" />
<None Include="watchdog.pde" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="cardreader.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="MarlinSerial.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="motion_control.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="planner.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Sd2Card.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="SdBaseFile.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="SdFatUtil.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="SdFile.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="SdVolume.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="stepper.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="temperature.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="cardreader.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Configuration.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Configuration_adv.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="EEPROMwrite.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="fastio.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="language.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Marlin.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="MarlinSerial.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="motion_control.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="pins.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="planner.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Sd2Card.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Sd2PinMap.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="SdBaseFile.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="SdFatConfig.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="SdFatStructs.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="SdFatUtil.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="SdFile.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="SdInfo.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="SdVolume.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="speed_lookuptable.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="stepper.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="temperature.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="thermistortables.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="ultralcd.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="watchdog.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="wiring.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
</Project>

@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
</Project>

@ -3,6 +3,8 @@
#include "ultralcd.h" #include "ultralcd.h"
#include "stepper.h" #include "stepper.h"
#include "temperature.h" #include "temperature.h"
#include "language.h"
#ifdef SDSUPPORT #ifdef SDSUPPORT
@ -75,7 +77,7 @@ void CardReader::lsDive(const char *prepend,SdFile parent)
if(lsAction==LS_SerialPrint) if(lsAction==LS_SerialPrint)
{ {
SERIAL_ECHO_START; SERIAL_ECHO_START;
SERIAL_ECHOLN("Cannot open subdir"); SERIAL_ECHOLN(MSG_SD_CANT_OPEN_SUBDIR);
SERIAL_ECHOLN(lfilename); SERIAL_ECHOLN(lfilename);
} }
} }
@ -143,28 +145,28 @@ void CardReader::initsd()
{ {
//if (!card.init(SPI_HALF_SPEED,SDSS)) //if (!card.init(SPI_HALF_SPEED,SDSS))
SERIAL_ECHO_START; SERIAL_ECHO_START;
SERIAL_ECHOLNPGM("SD init fail"); SERIAL_ECHOLNPGM(MSG_SD_INIT_FAIL);
} }
else if (!volume.init(&card)) else if (!volume.init(&card))
{ {
SERIAL_ERROR_START; SERIAL_ERROR_START;
SERIAL_ERRORLNPGM("volume.init failed"); SERIAL_ERRORLNPGM(MSG_SD_VOL_INIT_FAIL);
} }
else if (!root.openRoot(&volume)) else if (!root.openRoot(&volume))
{ {
SERIAL_ERROR_START; SERIAL_ERROR_START;
SERIAL_ERRORLNPGM("openRoot failed"); SERIAL_ERRORLNPGM(MSG_SD_OPENROOT_FAIL);
} }
else else
{ {
cardOK = true; cardOK = true;
SERIAL_ECHO_START; SERIAL_ECHO_START;
SERIAL_ECHOLNPGM("SD card ok"); SERIAL_ECHOLNPGM(MSG_SD_CARD_OK);
} }
curDir=&root; curDir=&root;
if(!workDir.openRoot(&volume)) if(!workDir.openRoot(&volume))
{ {
SERIAL_ECHOLNPGM("workDir open failed"); SERIAL_ECHOLNPGM(MSG_SD_WORKDIR_FAIL);
} }
} }
@ -173,7 +175,7 @@ void CardReader::setroot()
curDir=&root; curDir=&root;
if(!workDir.openRoot(&volume)) if(!workDir.openRoot(&volume))
{ {
SERIAL_ECHOLNPGM("workDir open failed"); SERIAL_ECHOLNPGM(MSG_SD_WORKDIR_FAIL);
} }
} }
void CardReader::release() void CardReader::release()
@ -230,7 +232,7 @@ void CardReader::openFile(char* name,bool read)
SERIAL_ECHOLN(subdirname); SERIAL_ECHOLN(subdirname);
if(!myDir.open(curDir,subdirname,O_READ)) if(!myDir.open(curDir,subdirname,O_READ))
{ {
SERIAL_PROTOCOLPGM("open failed, File: "); SERIAL_PROTOCOLPGM(MSG_SD_OPEN_FILE_FAIL);
SERIAL_PROTOCOL(subdirname); SERIAL_PROTOCOL(subdirname);
SERIAL_PROTOCOLLNPGM("."); SERIAL_PROTOCOLLNPGM(".");
return; return;
@ -260,18 +262,18 @@ void CardReader::openFile(char* name,bool read)
if (file.open(curDir, fname, O_READ)) if (file.open(curDir, fname, O_READ))
{ {
filesize = file.fileSize(); filesize = file.fileSize();
SERIAL_PROTOCOLPGM("File opened:"); SERIAL_PROTOCOLPGM(MSG_SD_FILE_OPENED);
SERIAL_PROTOCOL(fname); SERIAL_PROTOCOL(fname);
SERIAL_PROTOCOLPGM(" Size:"); SERIAL_PROTOCOLPGM(MSG_SD_SIZE);
SERIAL_PROTOCOLLN(filesize); SERIAL_PROTOCOLLN(filesize);
sdpos = 0; sdpos = 0;
SERIAL_PROTOCOLLNPGM("File selected"); SERIAL_PROTOCOLLNPGM(MSG_SD_FILE_SELECTED);
LCD_MESSAGE(fname); LCD_MESSAGE(fname);
} }
else else
{ {
SERIAL_PROTOCOLPGM("open failed, File: "); SERIAL_PROTOCOLPGM(MSG_SD_OPEN_FILE_FAIL);
SERIAL_PROTOCOL(fname); SERIAL_PROTOCOL(fname);
SERIAL_PROTOCOLLNPGM("."); SERIAL_PROTOCOLLNPGM(".");
} }
@ -280,14 +282,14 @@ void CardReader::openFile(char* name,bool read)
{ //write { //write
if (!file.open(curDir, fname, O_CREAT | O_APPEND | O_WRITE | O_TRUNC)) if (!file.open(curDir, fname, O_CREAT | O_APPEND | O_WRITE | O_TRUNC))
{ {
SERIAL_PROTOCOLPGM("open failed, File: "); SERIAL_PROTOCOLPGM(MSG_SD_OPEN_FILE_FAIL);
SERIAL_PROTOCOL(fname); SERIAL_PROTOCOL(fname);
SERIAL_PROTOCOLLNPGM("."); SERIAL_PROTOCOLLNPGM(".");
} }
else else
{ {
saving = true; saving = true;
SERIAL_PROTOCOLPGM("Writing to file: "); SERIAL_PROTOCOLPGM(MSG_SD_WRITE_TO_FILE);
SERIAL_PROTOCOLLN(name); SERIAL_PROTOCOLLN(name);
LCD_MESSAGE(fname); LCD_MESSAGE(fname);
} }
@ -298,13 +300,13 @@ void CardReader::openFile(char* name,bool read)
void CardReader::getStatus() void CardReader::getStatus()
{ {
if(cardOK){ if(cardOK){
SERIAL_PROTOCOLPGM("SD printing byte "); SERIAL_PROTOCOLPGM(MSG_SD_PRINTING_BYTE);
SERIAL_PROTOCOL(sdpos); SERIAL_PROTOCOL(sdpos);
SERIAL_PROTOCOLPGM("/"); SERIAL_PROTOCOLPGM("/");
SERIAL_PROTOCOLLN(filesize); SERIAL_PROTOCOLLN(filesize);
} }
else{ else{
SERIAL_PROTOCOLLNPGM("Not SD printing"); SERIAL_PROTOCOLLNPGM(MSG_SD_NOT_PRINTING);
} }
} }
void CardReader::write_command(char *buf) void CardReader::write_command(char *buf)
@ -326,7 +328,7 @@ void CardReader::write_command(char *buf)
if (file.writeError) if (file.writeError)
{ {
SERIAL_ERROR_START; SERIAL_ERROR_START;
SERIAL_ERRORLNPGM("error writing to file"); SERIAL_ERRORLNPGM(MSG_SD_ERR_WRITE_TO_FILE);
} }
} }
@ -420,7 +422,7 @@ void CardReader::chdir(const char * relpath)
if(!newfile.open(*parent,relpath, O_READ)) if(!newfile.open(*parent,relpath, O_READ))
{ {
SERIAL_ECHO_START; SERIAL_ECHO_START;
SERIAL_ECHOPGM("Cannot enter subdir:"); SERIAL_ECHOPGM(MSG_SD_CANT_ENTER_SUBDIR);
SERIAL_ECHOLN(relpath); SERIAL_ECHOLN(relpath);
} }
else else

@ -14,73 +14,8 @@
// LCD Menu Messages // LCD Menu Messages
// #define WELCOME_MSG "UltiMARLIN Ready."
#define WELCOME_MSG "RepRap Ready." #define WELCOME_MSG "RepRap Ready."
#define MSG_SD_INSERTED "Card Ready"
#define MSG_SD_REMOVED "Card Initiate"
#define MSG_MAIN " Main \003"
#define MSG_AUTOSTART " Autostart"
#define MSG_DISABLE_STEPPERS " Disable Steppers"
#define MSG_AUTO_HOME " Auto Home"
#define MSG_SET_ORIGIN " Set Origin"
#define MSG_PREHEAT_PLA " Preheat PLA"
#define MSG_PREHEAT_ABS " Preheat ABS"
#define MSG_COOLDOWN " Cooldown"
#define MSG_EXTRUDE " Extrude"
#define MSG_MOVE_AXIS " Move Axis \x7E"
#define MSG_SPEED " Speed:"
#define MSG_NOZZLE " \002Nozzle:"
#define MSG_BED " \002Bed:"
#define MSG_FAN_SPEED " Fan speed:"
#define MSG_FLOW " Flow:"
#define MSG_CONTROL " Control \003"
#define MSG_MIN " \002 Min:"
#define MSG_MAX " \002 Max:"
#define MSG_FACTOR " \002 Fact:"
#define MSG_AUTOTEMP " Autotemp:"
#define MSG_ON "On "
#define MSG_OFF "Off"
#define MSG_PID_P " PID-P: "
#define MSG_PID_I " PID-I: "
#define MSG_PID_D " PID-D: "
#define MSG_PID_C " PID-C: "
#define MSG_ACC " Acc:"
#define MSG_VXY_JERK " Vxy-jerk: "
#define MSG_VMAX " Vmax "
#define MSG_X "x:"
#define MSG_Y "y:"
#define MSG_Z "z:"
#define MSG_E "e:"
#define MSG_VMIN " Vmin:"
#define MSG_VTRAV_MIN " VTrav min:"
#define MSG_AMAX " Amax "
#define MSG_A_RETRACT " A-retract:"
#define MSG_XSTEPS " Xsteps/mm:"
#define MSG_YSTEPS " Ysteps/mm:"
#define MSG_ZSTEPS " Zsteps/mm:"
#define MSG_ESTEPS " Esteps/mm:"
#define MSG_MAIN_WIDE " Main \003"
#define MSG_TEMPERATURE_WIDE " Temperature \x7E"
#define MSG_MOTION_WIDE " Motion \x7E"
#define MSG_STORE_EPROM " Store EPROM"
#define MSG_LOAD_EPROM " Load EPROM"
#define MSG_RESTORE_FAILSAFE " Restore Failsafe"
#define MSG_REFRESH "\004Refresh"
#define MSG_WATCH " Watch \003"
#define MSG_PREPARE " Prepare \x7E"
#define MSG_CONTROL_ARROW " Control \x7E"
#define MSG_TUNE " Tune \x7E"
#define MSG_STOP_PRINT " Stop Print \x7E"
#define MSG_CARD_MENU " Card Menu \x7E"
#define MSG_NO_CARD " No Card"
#define MSG_SERIAL_ERROR_MENU_STRUCTURE "Something is wrong in the MenuStructure."
#endif
#if LANGUAGE_CHOICE == 2
// LCD Menu Messages
#define WELCOME_MSG "UltiMARLIN Ready."
#define MSG_SD_INSERTED "Card inserted" #define MSG_SD_INSERTED "Card inserted"
#define MSG_SD_REMOVED "Card removed" #define MSG_SD_REMOVED "Card removed"
#define MSG_MAIN " Main \003" #define MSG_MAIN " Main \003"
@ -132,87 +67,96 @@
#define MSG_REFRESH "\004Refresh" #define MSG_REFRESH "\004Refresh"
#define MSG_WATCH " Watch \003" #define MSG_WATCH " Watch \003"
#define MSG_PREPARE " Prepare \x7E" #define MSG_PREPARE " Prepare \x7E"
#define MSG_PREPARE_ALT " Prepare \003"
#define MSG_CONTROL_ARROW " Control \x7E" #define MSG_CONTROL_ARROW " Control \x7E"
#define MSG_TUNE " Tune \x7E" #define MSG_TUNE " Tune \x7E"
#define MSG_STOP_PRINT " Stop Print \x7E" #define MSG_STOP_PRINT " Stop Print \x7E"
#define MSG_CARD_MENU " Card Menu \x7E" #define MSG_CARD_MENU " Card Menu \x7E"
#define MSG_NO_CARD " No Card" #define MSG_NO_CARD " No Card"
#define MSG_SERIAL_ERROR_MENU_STRUCTURE "Something is wrong in the MenuStructure." #define MSG_SERIAL_ERROR_MENU_STRUCTURE "Something is wrong in the MenuStructure."
#define MSG_DWELL "DWELL..."
#define MSG_NO_MOVE "No move."
#define MSG_PART_RELEASE "Partial Release"
#define MSG_KILLED "KILLED. "
#define MSG_PREHEAT_PLA " Preheat PLA"
#define MSG_PREHEAT_ABS " Preheat ABS"
#define MSG_STEPPER_RELEASED "Released."
#endif
#if LANGUAGE_CHOICE == 3 // Serial Console Messages
// LCD Menu Messages #define MSG_Enqueing "enqueing \""
#define MSG_POWERUP "PowerUp"
#define MSG_EXTERNAL_RESET " External Reset"
#define MSG_BROWNOUT_RESET " Brown out Reset"
#define MSG_WATCHDOG_RESET " Watchdog Reset"
#define MSG_SOFTWARE_RESET " Software Reset"
#define MSG_MARLIN "Marlin: "
#define MSG_AUTHOR " | Author: "
#define MSG_CONFIGURATION_VER " Last Updated: "
#define MSG_FREE_MEMORY " Free Memory: "
#define MSG_PLANNER_BUFFER_BYTES " PlannerBufferBytes: "
#define MSG_OK "ok"
#define MSG_FILE_SAVED "Done saving file."
#define MSG_ERR_LINE_NO "Line Number is not Last Line Number+1, Last Line:"
#define MSG_ERR_CHECKSUM_MISMATCH "checksum mismatch, Last Line:"
#define MSG_ERR_NO_CHECKSUM "No Checksum with line number, Last Line:"
#define MSG_ERR_NO_LINENUMBER_WITH_CHECKSUM "No Line Number with checksum, Last Line:"
#define MSG_FILE_PRINTED "Done printing file"
#define MSG_BEGIN_FILE_LIST "Begin file list"
#define MSG_END_FILE_LIST "End file list"
#define MSG_M104_INVALID_EXTRUDER "M104 Invalid extruder "
#define MSG_M105_INVALID_EXTRUDER "M105 Invalid extruder "
#define MSG_ERR_NO_THERMISTORS "No thermistors - no temp"
#define MSG_M109_INVALID_EXTRUDER "M109 Invalid extruder "
#define MSG_HEATING "Heating..."
#define MSG_HEATING_COMPLETE "Heating done."
#define MSG_BED_HEATING "Bed Heating."
#define MSG_BED_DONE "Bed done."
#define MSG_M115_REPORT "FIRMWARE_NAME:Marlin V1; Sprinter/grbl mashup for gen6 FIRMWARE_URL:http://www.mendel-parts.com PROTOCOL_VERSION:1.0 MACHINE_TYPE:Mendel EXTRUDER_COUNT:1\n"
#define MSG_COUNT_X " Count X:"
#define MSG_ERR_KILLED "Printer halted. kill() called !!"
#define MSG_RESEND "Resend:"
#define MSG_UNKNOWN_COMMAND "Unknown command:\""
#define MSG_ACTIVE_EXTRUDER "Active Extruder: "
#define MSG_INVALID_EXTRUDER "Invalid extruder"
#define MSG_X_MIN "x_min:"
#define MSG_X_MAX "x_max:"
#define MSG_Y_MIN "y_min:"
#define MSG_Y_MAX "y_max:"
#define MSG_Z_MIN "z_min:"
#define MSG_Z_MAX "z_max:"
#define WELCOME_MSG "RepRap Ready." #define MSG_SD_CANT_OPEN_SUBDIR "Cannot open subdir"
#define MSG_SD_INSERTED "Card Ready" #define MSG_SD_INIT_FAIL "SD init fail"
#define MSG_SD_REMOVED "Card Initiate" #define MSG_SD_VOL_INIT_FAIL "volume.init failed"
#define MSG_MAIN " Main \003" #define MSG_SD_OPENROOT_FAIL "openRoot failed"
#define MSG_AUTOSTART " Autostart" #define MSG_SD_CARD_OK "SD card ok"
#define MSG_DISABLE_STEPPERS " Disable Steppers" #define MSG_SD_WORKDIR_FAIL "workDir open failed"
#define MSG_AUTO_HOME " Auto Home" #define MSG_SD_OPEN_FILE_FAIL "open failed, File: "
#define MSG_SET_ORIGIN " Set Origin" #define MSG_SD_FILE_OPENED "File opened:"
#define MSG_PREHEAT " Preheat" #define MSG_SD_SIZE " Size:"
#define MSG_COOLDOWN " Cooldown" #define MSG_SD_FILE_SELECTED "File selected"
#define MSG_EXTRUDE " Extrude" #define MSG_SD_WRITE_TO_FILE "Writing to file: "
#define MSG_MOVE_AXIS " Move Axis \x7E" #define MSG_SD_PRINTING_BYTE "SD printing byte "
#define MSG_SPEED " Speed:" #define MSG_SD_NOT_PRINTING "Not SD printing"
#define MSG_NOZZLE " \002Nozzle:" #define MSG_SD_ERR_WRITE_TO_FILE "error writing to file"
#define MSG_BED " \002Bed:" #define MSG_SD_CANT_ENTER_SUBDIR "Cannot enter subdir:"
#define MSG_FAN_SPEED " Fan speed:"
#define MSG_FLOW " Flow:"
#define MSG_CONTROL " Control \003"
#define MSG_MIN " \002 Min:"
#define MSG_MAX " \002 Max:"
#define MSG_FACTOR " \002 Fact:"
#define MSG_AUTOTEMP " Autotemp:"
#define MSG_ON "On "
#define MSG_OFF "Off"
#define MSG_PID_P " PID-P: "
#define MSG_PID_I " PID-I: "
#define MSG_PID_D " PID-D: "
#define MSG_PID_C " PID-C: "
#define MSG_ACC " Acc:"
#define MSG_VXY_JERK " Vxy-jerk: "
#define MSG_VMAX " Vmax "
#define MSG_X "x:"
#define MSG_Y "y:"
#define MSG_Z "z:"
#define MSG_E "e:"
#define MSG_VMIN " Vmin:"
#define MSG_VTRAV_MIN " VTrav min:"
#define MSG_AMAX " Amax "
#define MSG_A_RETRACT " A-retract:"
#define MSG_XSTEPS " Xsteps/mm:"
#define MSG_YSTEPS " Ysteps/mm:"
#define MSG_ZSTEPS " Zsteps/mm:"
#define MSG_ESTEPS " Esteps/mm:"
#define MSG_MAIN_WIDE " Main \003"
#define MSG_TEMPERATURE_WIDE " Temperature \x7E"
#define MSG_MOTION_WIDE " Motion \x7E"
#define MSG_STORE_EPROM " Store EPROM"
#define MSG_LOAD_EPROM " Load EPROM"
#define MSG_RESTORE_FAILSAFE " Restore Failsafe"
#define MSG_REFRESH "\004Refresh"
#define MSG_WATCH " Watch \003"
#define MSG_PREPARE " Prepare \x7E"
#define MSG_CONTROL_ARROW " Control \x7E"
#define MSG_TUNE " Tune \x7E"
#define MSG_STOP_PRINT " Stop Print \x7E"
#define MSG_CARD_MENU " Card Menu \x7E"
#define MSG_NO_CARD " No Card"
#define MSG_SERIAL_ERROR_MENU_STRUCTURE "Something is wrong in the MenuStructure."
#endif #define MSG_STEPPER_TO_HIGH "Steprate to high : "
#define MSG_ENDSTOPS_HIT "endstops hit: "
#define MSG_ERR_COLD_EXTRUDE_STOP " cold extrusion prevented"
#define MSG_ERR_LONG_EXTRUDE_STOP " too long extrusion prevented"
#if LANGUAGE_CHOICE == 4 #endif
#if LANGUAGE_CHOICE == 2
// LCD Menu Messages // LCD Menu Messages
#define WELCOME_MSG "RepRap Ready." #define WELCOME_MSG "UltiMARLIN Ready."
#define MSG_SD_INSERTED "Card Ready"
#define MSG_SD_REMOVED "Card Initiate" #define MSG_SD_INSERTED "Card inserted"
#define MSG_SD_REMOVED "Card removed"
#define MSG_MAIN " Main \003" #define MSG_MAIN " Main \003"
#define MSG_AUTOSTART " Autostart" #define MSG_AUTOSTART " Autostart"
#define MSG_DISABLE_STEPPERS " Disable Steppers" #define MSG_DISABLE_STEPPERS " Disable Steppers"
@ -262,78 +206,81 @@
#define MSG_REFRESH "\004Refresh" #define MSG_REFRESH "\004Refresh"
#define MSG_WATCH " Watch \003" #define MSG_WATCH " Watch \003"
#define MSG_PREPARE " Prepare \x7E" #define MSG_PREPARE " Prepare \x7E"
#define MSG_PREPARE_ALT " Prepare \003"
#define MSG_CONTROL_ARROW " Control \x7E" #define MSG_CONTROL_ARROW " Control \x7E"
#define MSG_TUNE " Tune \x7E" #define MSG_TUNE " Tune \x7E"
#define MSG_STOP_PRINT " Stop Print \x7E" #define MSG_STOP_PRINT " Stop Print \x7E"
#define MSG_CARD_MENU " Card Menu \x7E" #define MSG_CARD_MENU " Card Menu \x7E"
#define MSG_NO_CARD " No Card" #define MSG_NO_CARD " No Card"
#define MSG_SERIAL_ERROR_MENU_STRUCTURE "Something is wrong in the MenuStructure." #define MSG_SERIAL_ERROR_MENU_STRUCTURE "Something is wrong in the MenuStructure."
#define MSG_DWELL "DWELL..."
#define MSG_NO_MOVE "No move."
#define MSG_PART_RELEASE "Partial Release"
#define MSG_KILLED "KILLED. "
#define MSG_PREHEAT_PLA " Preheat PLA"
#define MSG_PREHEAT_ABS " Preheat ABS"
#endif
#if LANGUAGE_CHOICE == 5
// LCD Menu Messages // Serial Console Messages
#define WELCOME_MSG "RepRap Ready." #define MSG_Enqueing "enqueing \""
#define MSG_SD_INSERTED "Card Ready" #define MSG_POWERUP "PowerUp"
#define MSG_SD_REMOVED "Card Initiate" #define MSG_EXTERNAL_RESET " External Reset"
#define MSG_MAIN " Main \003" #define MSG_BROWNOUT_RESET " Brown out Reset"
#define MSG_AUTOSTART " Autostart" #define MSG_WATCHDOG_RESET " Watchdog Reset"
#define MSG_DISABLE_STEPPERS " Disable Steppers" #define MSG_SOFTWARE_RESET " Software Reset"
#define MSG_AUTO_HOME " Auto Home" #define MSG_MARLIN "Marlin: "
#define MSG_SET_ORIGIN " Set Origin" #define MSG_AUTHOR " | Author: "
#define MSG_PREHEAT " Preheat" #define MSG_CONFIGURATION_VER " Last Updated: "
#define MSG_COOLDOWN " Cooldown" #define MSG_FREE_MEMORY " Free Memory: "
#define MSG_EXTRUDE " Extrude" #define MSG_PLANNER_BUFFER_BYTES " PlannerBufferBytes: "
#define MSG_MOVE_AXIS " Move Axis \x7E" #define MSG_OK "ok"
#define MSG_SPEED " Speed:" #define MSG_FILE_SAVED "Done saving file."
#define MSG_NOZZLE " \002Nozzle:" #define MSG_ERR_LINE_NO "Line Number is not Last Line Number+1, Last Line:"
#define MSG_BED " \002Bed:" #define MSG_ERR_CHECKSUM_MISMATCH "checksum mismatch, Last Line:"
#define MSG_FAN_SPEED " Fan speed:" #define MSG_ERR_NO_CHECKSUM "No Checksum with line number, Last Line:"
#define MSG_FLOW " Flow:" #define MSG_ERR_NO_LINENUMBER_WITH_CHECKSUM "No Line Number with checksum, Last Line:"
#define MSG_CONTROL " Control \003" #define MSG_FILE_PRINTED "Done printing file"
#define MSG_MIN " \002 Min:" #define MSG_BEGIN_FILE_LIST "Begin file list"
#define MSG_MAX " \002 Max:" #define MSG_END_FILE_LIST "End file list"
#define MSG_FACTOR " \002 Fact:" #define MSG_M104_INVALID_EXTRUDER "M104 Invalid extruder "
#define MSG_AUTOTEMP " Autotemp:" #define MSG_M105_INVALID_EXTRUDER "M105 Invalid extruder "
#define MSG_ON "On " #define MSG_ERR_NO_THERMISTORS "No thermistors - no temp"
#define MSG_OFF "Off" #define MSG_M109_INVALID_EXTRUDER "M109 Invalid extruder "
#define MSG_PID_P " PID-P: " #define MSG_HEATING "Heating..."
#define MSG_PID_I " PID-I: " #define MSG_HEATING_COMPLETE "Heating done."
#define MSG_PID_D " PID-D: " #define MSG_BED_HEATING "Bed Heating."
#define MSG_PID_C " PID-C: " #define MSG_BED_DONE "Bed done."
#define MSG_ACC " Acc:" #define MSG_M115_REPORT "FIRMWARE_NAME:Marlin V1; Sprinter/grbl mashup for gen6 FIRMWARE_URL:http://www.mendel-parts.com PROTOCOL_VERSION:1.0 MACHINE_TYPE:Mendel EXTRUDER_COUNT:1\n"
#define MSG_VXY_JERK " Vxy-jerk: " #define MSG_COUNT_X " Count X:"
#define MSG_VMAX " Vmax " #define MSG_ERR_KILLED "Printer halted. kill() called !!"
#define MSG_X "x:" #define MSG_RESEND "Resend:"
#define MSG_Y "y:" #define MSG_UNKNOWN_COMMAND "Unknown command:\""
#define MSG_Z "z:" #define MSG_ACTIVE_EXTRUDER "Active Extruder: "
#define MSG_E "e:" #define MSG_INVALID_EXTRUDER "Invalid extruder"
#define MSG_VMIN " Vmin:" #define MSG_X_MIN "x_min:"
#define MSG_VTRAV_MIN " VTrav min:" #define MSG_X_MAX "x_max:"
#define MSG_AMAX " Amax " #define MSG_Y_MIN "y_min:"
#define MSG_A_RETRACT " A-retract:" #define MSG_Y_MAX "y_max:"
#define MSG_XSTEPS " Xsteps/mm:" #define MSG_Z_MIN "z_min:"
#define MSG_YSTEPS " Ysteps/mm:" #define MSG_Z_MAX "z_max:"
#define MSG_ZSTEPS " Zsteps/mm:"
#define MSG_ESTEPS " Esteps/mm:"
#define MSG_MAIN_WIDE " Main \003"
#define MSG_TEMPERATURE_WIDE " Temperature \x7E"
#define MSG_MOTION_WIDE " Motion \x7E"
#define MSG_STORE_EPROM " Store EPROM"
#define MSG_LOAD_EPROM " Load EPROM"
#define MSG_RESTORE_FAILSAFE " Restore Failsafe"
#define MSG_REFRESH "\004Refresh"
#define MSG_WATCH " Watch \003"
#define MSG_PREPARE " Prepare \x7E"
#define MSG_CONTROL_ARROW " Control \x7E"
#define MSG_TUNE " Tune \x7E"
#define MSG_STOP_PRINT " Stop Print \x7E"
#define MSG_CARD_MENU " Card Menu \x7E"
#define MSG_NO_CARD " No Card"
#define MSG_SERIAL_ERROR_MENU_STRUCTURE "Something is wrong in the MenuStructure."
#endif #define MSG_SD_CANT_OPEN_SUBDIR "Cannot open subdir"
#define MSG_SD_INIT_FAIL "SD init fail"
#define MSG_SD_VOL_INIT_FAIL "volume.init failed"
#define MSG_SD_OPENROOT_FAIL "openRoot failed"
#define MSG_SD_CARD_OK "SD card ok"
#define MSG_SD_WORKDIR_FAIL "workDir open failed"
#define MSG_SD_OPEN_FILE_FAIL "open failed, File: "
#define MSG_SD_FILE_OPENED "File opened:"
#define MSG_SD_SIZE " Size:"
#define MSG_SD_FILE_SELECTED "File selected"
#define MSG_SD_WRITE_TO_FILE "Writing to file: "
#define MSG_SD_PRINTING_BYTE "SD printing byte "
#define MSG_SD_NOT_PRINTING "Not SD printing"
#define MSG_SD_ERR_WRITE_TO_FILE "error writing to file"
#define MSG_SD_CANT_ENTER_SUBDIR "Cannot enter subdir:"
#endif
#endif // ifndef LANGUAGE_H #endif // ifndef LANGUAGE_H

@ -59,6 +59,7 @@
#include "stepper.h" #include "stepper.h"
#include "temperature.h" #include "temperature.h"
#include "ultralcd.h" #include "ultralcd.h"
#include "language.h"
//=========================================================================== //===========================================================================
//=============================public variables ============================ //=============================public variables ============================
@ -469,13 +470,13 @@ void plan_buffer_line(float &x, float &y, float &z, float &e, float feed_rate, u
{ {
position[E_AXIS]=target[E_AXIS]; //behave as if the move really took place, but ignore E part position[E_AXIS]=target[E_AXIS]; //behave as if the move really took place, but ignore E part
SERIAL_ECHO_START; SERIAL_ECHO_START;
SERIAL_ECHOLNPGM(" cold extrusion prevented"); SERIAL_ECHOLNPGM(MSG_ERR_COLD_EXTRUDE_STOP);
} }
if(labs(target[E_AXIS]-position[E_AXIS])>axis_steps_per_unit[E_AXIS]*EXTRUDE_MAXLENGTH) if(labs(target[E_AXIS]-position[E_AXIS])>axis_steps_per_unit[E_AXIS]*EXTRUDE_MAXLENGTH)
{ {
position[E_AXIS]=target[E_AXIS]; //behave as if the move really took place, but ignore E part position[E_AXIS]=target[E_AXIS]; //behave as if the move really took place, but ignore E part
SERIAL_ECHO_START; SERIAL_ECHO_START;
SERIAL_ECHOLNPGM(" too long extrusion prevented"); SERIAL_ECHOLNPGM(MSG_ERR_LONG_EXTRUDE_STOP);
} }
#endif #endif

@ -29,7 +29,7 @@
#include "planner.h" #include "planner.h"
#include "temperature.h" #include "temperature.h"
#include "ultralcd.h" #include "ultralcd.h"
#include "language.h"
#include "speed_lookuptable.h" #include "speed_lookuptable.h"
@ -172,7 +172,7 @@ void checkHitEndstops()
{ {
if( endstop_x_hit || endstop_y_hit || endstop_z_hit) { if( endstop_x_hit || endstop_y_hit || endstop_z_hit) {
SERIAL_ECHO_START; SERIAL_ECHO_START;
SERIAL_ECHOPGM("endstops hit: "); SERIAL_ECHOPGM(MSG_ENDSTOPS_HIT);
if(endstop_x_hit) { if(endstop_x_hit) {
SERIAL_ECHOPAIR(" X:",(float)endstops_trigsteps[X_AXIS]/axis_steps_per_unit[X_AXIS]); SERIAL_ECHOPAIR(" X:",(float)endstops_trigsteps[X_AXIS]/axis_steps_per_unit[X_AXIS]);
} }
@ -254,7 +254,7 @@ FORCE_INLINE unsigned short calc_timer(unsigned short step_rate) {
timer = (unsigned short)pgm_read_word_near(table_address); timer = (unsigned short)pgm_read_word_near(table_address);
timer -= (((unsigned short)pgm_read_word_near(table_address+2) * (unsigned char)(step_rate & 0x0007))>>3); timer -= (((unsigned short)pgm_read_word_near(table_address+2) * (unsigned char)(step_rate & 0x0007))>>3);
} }
if(timer < 100) { timer = 100; MYSERIAL.print("Steprate to high : "); MYSERIAL.println(step_rate); }//(20kHz this should never happen) if(timer < 100) { timer = 100; MYSERIAL.print(MSG_STEPPER_TO_HIGH); MYSERIAL.println(step_rate); }//(20kHz this should never happen)
return timer; return timer;
} }
@ -808,7 +808,7 @@ long st_get_position(uint8_t axis)
void finishAndDisableSteppers() void finishAndDisableSteppers()
{ {
st_synchronize(); st_synchronize();
LCD_MESSAGEPGM("Released."); LCD_MESSAGEPGM(MSG_STEPPER_RELEASED);
disable_x(); disable_x();
disable_y(); disable_y();
disable_z(); disable_z();

Loading…
Cancel
Save