Commit 695a4318 authored by MagoKimbra's avatar MagoKimbra

Add M111 Repetier Debug command

Repetier command for Dryrun
parent b80ba5c6
...@@ -299,5 +299,12 @@ extern void digipot_i2c_set_current( int channel, float current ); ...@@ -299,5 +299,12 @@ extern void digipot_i2c_set_current( int channel, float current );
extern void digipot_i2c_init(); extern void digipot_i2c_init();
#endif #endif
// Debug with repetier
extern uint8_t debugLevel;
extern inline bool debugDryrun()
{
return ((debugLevel & 8)!=0);
}
#endif #endif
...@@ -124,6 +124,7 @@ ...@@ -124,6 +124,7 @@
// M109 - Sxxx Wait for extruder current temp to reach target temp. Waits only when heating // M109 - Sxxx Wait for extruder current temp to reach target temp. Waits only when heating
// Rxxx Wait for extruder current temp to reach target temp. Waits when heating and cooling // Rxxx Wait for extruder current temp to reach target temp. Waits when heating and cooling
// IF AUTOTEMP is enabled, S<mintemp> B<maxtemp> F<factor>. Exit autotemp by any M109 without F // IF AUTOTEMP is enabled, S<mintemp> B<maxtemp> F<factor>. Exit autotemp by any M109 without F
// M111 - Debug mode
// M112 - Emergency stop // M112 - Emergency stop
// M114 - Output current position to serial port // M114 - Output current position to serial port
// M115 - Capabilities string // M115 - Capabilities string
...@@ -306,6 +307,8 @@ float lastpos[4]; ...@@ -306,6 +307,8 @@ float lastpos[4];
uint8_t active_extruder = 0; uint8_t active_extruder = 0;
uint8_t active_driver = 0; uint8_t active_driver = 0;
uint8_t debugLevel = 0;
int fanSpeed=0; int fanSpeed=0;
#ifdef SERVO_ENDSTOPS #ifdef SERVO_ENDSTOPS
int servo_endstops[] = SERVO_ENDSTOPS; int servo_endstops[] = SERVO_ENDSTOPS;
...@@ -3383,9 +3386,8 @@ Sigma_Exit: ...@@ -3383,9 +3386,8 @@ Sigma_Exit:
#endif // ENABLE_AUTO_BED_LEVELING #endif // ENABLE_AUTO_BED_LEVELING
case 104: // M104 case 104: // M104
if(setTargetedHotend(104)){ if(setTargetedHotend(104)) break;
break; if(debugDryrun()) break;
}
if (code_seen('S')) setTargetHotend(code_value(), tmp_extruder); if (code_seen('S')) setTargetHotend(code_value(), tmp_extruder);
#ifdef DUAL_X_CARRIAGE #ifdef DUAL_X_CARRIAGE
if (dual_x_carriage_mode == DXC_DUPLICATION_MODE && tmp_extruder == 0) if (dual_x_carriage_mode == DXC_DUPLICATION_MODE && tmp_extruder == 0)
...@@ -3393,16 +3395,26 @@ Sigma_Exit: ...@@ -3393,16 +3395,26 @@ Sigma_Exit:
#endif #endif
setWatch(); setWatch();
break; break;
case 111: // M111 - Debug mode
if (code_seen('S')) debugLevel = code_value();
if (debugDryrun()) {
SERIAL_ECHOLN("DEBUG DRYRUN ENABLED");
setTargetBed(0);
for (int8_t cur_extruder = 0; cur_extruder < EXTRUDERS; ++cur_extruder) {
setTargetHotend(0, cur_extruder);
}
}
break;
case 112: // M112 -Emergency Stop case 112: // M112 -Emergency Stop
kill(); kill();
break; break;
case 140: // M140 set bed temp case 140: // M140 set bed temp
if(debugDryrun()) break;
if (code_seen('S')) setTargetBed(code_value()); if (code_seen('S')) setTargetBed(code_value());
break; break;
case 105 : // M105 case 105 : // M105
if(setTargetedHotend(105)){ if(setTargetedHotend(105)) break;
break; if(debugDryrun()) break;
}
#if defined(TEMP_0_PIN) && TEMP_0_PIN > -1 #if defined(TEMP_0_PIN) && TEMP_0_PIN > -1
SERIAL_PROTOCOLPGM("ok T:"); SERIAL_PROTOCOLPGM("ok T:");
SERIAL_PROTOCOL_F(degHotend(tmp_extruder),1); SERIAL_PROTOCOL_F(degHotend(tmp_extruder),1);
...@@ -3465,9 +3477,8 @@ Sigma_Exit: ...@@ -3465,9 +3477,8 @@ Sigma_Exit:
break; break;
case 109: case 109:
{// M109 - Wait for extruder heater to reach target. {// M109 - Wait for extruder heater to reach target.
if(setTargetedHotend(109)){ if(setTargetedHotend(109)) break;
break; if(debugDryrun()) break;
}
LCD_MESSAGEPGM(MSG_HEATING); LCD_MESSAGEPGM(MSG_HEATING);
#ifdef AUTOTEMP #ifdef AUTOTEMP
autotemp_enabled=false; autotemp_enabled=false;
...@@ -3558,6 +3569,7 @@ Sigma_Exit: ...@@ -3558,6 +3569,7 @@ Sigma_Exit:
break; break;
case 190: // M190 - Wait for bed heater to reach target. case 190: // M190 - Wait for bed heater to reach target.
#if defined(TEMP_BED_PIN) && TEMP_BED_PIN > -1 #if defined(TEMP_BED_PIN) && TEMP_BED_PIN > -1
if(debugDryrun()) break;
LCD_MESSAGEPGM(MSG_BED_HEATING); LCD_MESSAGEPGM(MSG_BED_HEATING);
if (code_seen('S')) { if (code_seen('S')) {
setTargetBed(code_value()); setTargetBed(code_value());
......
...@@ -567,7 +567,7 @@ void plan_buffer_line(const float &x, const float &y, const float &z, const floa ...@@ -567,7 +567,7 @@ void plan_buffer_line(const float &x, const float &y, const float &z, const floa
{ {
if (active_extruder!=1) if (active_extruder!=1)
{ {
if(degHotend(active_extruder)<extrude_min_temp) if(degHotend(active_extruder)<extrude_min_temp && !debugDryrun())
{ {
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;
...@@ -577,7 +577,7 @@ void plan_buffer_line(const float &x, const float &y, const float &z, const floa ...@@ -577,7 +577,7 @@ void plan_buffer_line(const float &x, const float &y, const float &z, const floa
#else // NO NPR2 #else // NO NPR2
if(target[E_AXIS]!=position[E_AXIS]) if(target[E_AXIS]!=position[E_AXIS])
{ {
if(degHotend(active_extruder)<extrude_min_temp) if(degHotend(active_extruder)<extrude_min_temp && !debugDryrun())
{ {
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;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment