added suicide pin for a power supply to the arduino that is only active if the arduino is holding high for an output.
This commit is contained in:
parent
3814bbb529
commit
cee5f9020a
2 changed files with 35 additions and 4 deletions
|
@ -161,7 +161,7 @@ static bool fromsd[BUFSIZE];
|
||||||
static int bufindr = 0;
|
static int bufindr = 0;
|
||||||
static int bufindw = 0;
|
static int bufindw = 0;
|
||||||
static int buflen = 0;
|
static int buflen = 0;
|
||||||
static int i = 0;
|
//static int i = 0;
|
||||||
static char serial_char;
|
static char serial_char;
|
||||||
static int serial_count = 0;
|
static int serial_count = 0;
|
||||||
static boolean comment_mode = false;
|
static boolean comment_mode = false;
|
||||||
|
@ -233,8 +233,30 @@ void setup_photpin()
|
||||||
#endif
|
#endif
|
||||||
#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()
|
void setup()
|
||||||
{
|
{
|
||||||
|
setup_powerhold();
|
||||||
MSerial.begin(BAUDRATE);
|
MSerial.begin(BAUDRATE);
|
||||||
SERIAL_ECHO_START;
|
SERIAL_ECHO_START;
|
||||||
SERIAL_ECHOLNPGM(VERSION_STRING);
|
SERIAL_ECHOLNPGM(VERSION_STRING);
|
||||||
|
@ -912,10 +934,17 @@ FORCE_INLINE void process_commands()
|
||||||
case 80: // M80 - ATX Power On
|
case 80: // M80 - ATX Power On
|
||||||
SET_OUTPUT(PS_ON_PIN); //GND
|
SET_OUTPUT(PS_ON_PIN); //GND
|
||||||
break;
|
break;
|
||||||
|
#endif
|
||||||
|
|
||||||
case 81: // M81 - ATX Power Off
|
case 81: // M81 - ATX Power Off
|
||||||
SET_INPUT(PS_ON_PIN); //Floating
|
#if (SUICIDE_PIN >-1)
|
||||||
break;
|
suicide();
|
||||||
#endif
|
#else
|
||||||
|
#if (PS_ON_PIN > -1)
|
||||||
|
SET_INPUT(PS_ON_PIN); //Floating
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
case 82:
|
case 82:
|
||||||
axis_relative_modes[3] = false;
|
axis_relative_modes[3] = false;
|
||||||
break;
|
break;
|
||||||
|
@ -1314,6 +1343,7 @@ void kill()
|
||||||
SERIAL_ERROR_START;
|
SERIAL_ERROR_START;
|
||||||
SERIAL_ERRORLNPGM("Printer halted. kill() called !!");
|
SERIAL_ERRORLNPGM("Printer halted. kill() called !!");
|
||||||
LCD_MESSAGEPGM("KILLED. ");
|
LCD_MESSAGEPGM("KILLED. ");
|
||||||
|
suicide();
|
||||||
while(1); // Wait for reset
|
while(1); // Wait for reset
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -582,6 +582,7 @@
|
||||||
#define FAN_PIN 7
|
#define FAN_PIN 7
|
||||||
#define PS_ON_PIN 12
|
#define PS_ON_PIN 12
|
||||||
#define KILL_PIN -1
|
#define KILL_PIN -1
|
||||||
|
#define SUICIDE_PIN 54 //PIN that has to be turned on right after start, to keep power flowing.
|
||||||
|
|
||||||
#ifdef ULTRA_LCD
|
#ifdef ULTRA_LCD
|
||||||
|
|
||||||
|
|
Reference in a new issue