static int bufindr = 0;
static int bufindw = 0;
static int buflen = 0;
-static int i = 0;
+//static int i = 0;
static char serial_char;
static int serial_count = 0;
static boolean comment_mode = false;
#endif
#endif
}
+
+void setup_powerhold()
+{
+ #ifdef SUICIDE_PIN
+ #if (SUICIDE_PIN> -1)
+ SET_OUTPUT(SUICIDE_PIN);
+ WRITE(SUICIDE_PIN, HIGH);
+ #endif
+ #endif
+}
+
+void suicide()
+{
+ #ifdef SUICIDE_PIN
+ #if (SUICIDE_PIN> -1)
+ SET_OUTPUT(SUICIDE_PIN);
+ WRITE(SUICIDE_PIN, LOW);
+ #endif
+ #endif
+}
+
void setup()
{
+ setup_powerhold();
MSerial.begin(BAUDRATE);
SERIAL_ECHO_START;
SERIAL_ECHOLNPGM(VERSION_STRING);
case 80: // M80 - ATX Power On
SET_OUTPUT(PS_ON_PIN); //GND
break;
+ #endif
+
case 81: // M81 - ATX Power Off
- SET_INPUT(PS_ON_PIN); //Floating
- break;
- #endif
+ #if (SUICIDE_PIN >-1)
+ suicide();
+ #else
+ #if (PS_ON_PIN > -1)
+ SET_INPUT(PS_ON_PIN); //Floating
+ #endif
+ #endif
+
case 82:
axis_relative_modes[3] = false;
break;
SERIAL_ERROR_START;
SERIAL_ERRORLNPGM("Printer halted. kill() called !!");
LCD_MESSAGEPGM("KILLED. ");
+ suicide();
while(1); // Wait for reset
}