Support for BariCUDA Paste Extruder derived from MakerBot Frostruder. Using Ultimachine RAMBo board. M126/M127 and M128/M129.
This commit is contained in:
parent
90664d20a4
commit
fbd899a37d
5 changed files with 61 additions and 1 deletions
|
@ -186,6 +186,8 @@ extern float add_homeing[3];
|
||||||
extern float min_pos[3];
|
extern float min_pos[3];
|
||||||
extern float max_pos[3];
|
extern float max_pos[3];
|
||||||
extern int fanSpeed;
|
extern int fanSpeed;
|
||||||
|
extern int ValvePressure;
|
||||||
|
extern int EtoPPressure;
|
||||||
|
|
||||||
#ifdef FWRETRACT
|
#ifdef FWRETRACT
|
||||||
extern bool autoretract_enabled;
|
extern bool autoretract_enabled;
|
||||||
|
|
|
@ -101,6 +101,10 @@
|
||||||
// M115 - Capabilities string
|
// M115 - Capabilities string
|
||||||
// M117 - display message
|
// M117 - display message
|
||||||
// M119 - Output Endstop status to serial port
|
// M119 - Output Endstop status to serial port
|
||||||
|
// M126 - Solenoid Air Valve Open (BariCUDA support by jmil)
|
||||||
|
// M127 - Solenoid Air Valve Closed (BariCUDA vent to atmospheric pressure by jmil)
|
||||||
|
// M128 - EtoP Open (BariCUDA EtoP = electricity to air pressure transducer by jmil)
|
||||||
|
// M129 - EtoP Closed (BariCUDA EtoP = electricity to air pressure transducer by jmil)
|
||||||
// M140 - Set bed target temp
|
// M140 - Set bed target temp
|
||||||
// M190 - Wait for bed current temp to reach target temp.
|
// M190 - Wait for bed current temp to reach target temp.
|
||||||
// M200 - Set filament diameter
|
// M200 - Set filament diameter
|
||||||
|
@ -168,6 +172,8 @@ float extruder_offset[2][EXTRUDERS] = {
|
||||||
#endif
|
#endif
|
||||||
uint8_t active_extruder = 0;
|
uint8_t active_extruder = 0;
|
||||||
int fanSpeed=0;
|
int fanSpeed=0;
|
||||||
|
int ValvePressure=0;
|
||||||
|
int EtoPPressure=0;
|
||||||
|
|
||||||
#ifdef FWRETRACT
|
#ifdef FWRETRACT
|
||||||
bool autoretract_enabled=true;
|
bool autoretract_enabled=true;
|
||||||
|
@ -1169,6 +1175,37 @@ void process_commands()
|
||||||
break;
|
break;
|
||||||
#endif //FAN_PIN
|
#endif //FAN_PIN
|
||||||
|
|
||||||
|
// PWM for HEATER_1_PIN
|
||||||
|
#if HEATER_1_PIN > -1
|
||||||
|
case 126: //M126 valve open
|
||||||
|
if (code_seen('S')){
|
||||||
|
ValvePressure=constrain(code_value(),0,255);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
ValvePressure=255;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 127: //M127 valve closed
|
||||||
|
ValvePressure = 0;
|
||||||
|
break;
|
||||||
|
#endif //HEATER_1_PIN
|
||||||
|
|
||||||
|
// PWM for HEATER_2_PIN
|
||||||
|
#if HEATER_2_PIN > -1
|
||||||
|
case 128: //M128 valve open
|
||||||
|
if (code_seen('S')){
|
||||||
|
EtoPPressure=constrain(code_value(),0,255);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
EtoPPressure=255;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 129: //M129 valve closed
|
||||||
|
EtoPPressure = 0;
|
||||||
|
break;
|
||||||
|
#endif //HEATER_2_PIN
|
||||||
|
|
||||||
|
|
||||||
#if (PS_ON_PIN > -1)
|
#if (PS_ON_PIN > -1)
|
||||||
case 80: // M80 - ATX Power On
|
case 80: // M80 - ATX Power On
|
||||||
SET_OUTPUT(PS_ON_PIN); //GND
|
SET_OUTPUT(PS_ON_PIN); //GND
|
||||||
|
|
|
@ -1474,7 +1474,7 @@
|
||||||
#define HEATER_1_PIN 7
|
#define HEATER_1_PIN 7
|
||||||
#define TEMP_1_PIN 1
|
#define TEMP_1_PIN 1
|
||||||
|
|
||||||
#define HEATER_2_PIN -1
|
#define HEATER_2_PIN 6
|
||||||
#define TEMP_2_PIN -1
|
#define TEMP_2_PIN -1
|
||||||
|
|
||||||
#define E0_STEP_PIN 34
|
#define E0_STEP_PIN 34
|
||||||
|
|
|
@ -439,12 +439,18 @@ void check_axes_activity()
|
||||||
unsigned char z_active = 0;
|
unsigned char z_active = 0;
|
||||||
unsigned char e_active = 0;
|
unsigned char e_active = 0;
|
||||||
unsigned char tail_fan_speed = fanSpeed;
|
unsigned char tail_fan_speed = fanSpeed;
|
||||||
|
unsigned char valve_pressure = 0;
|
||||||
|
unsigned char e_to_p_pressure = 0;
|
||||||
|
unsigned char tail_valve_pressure = 0;
|
||||||
|
unsigned char tail_e_to_p_pressure = 0;
|
||||||
block_t *block;
|
block_t *block;
|
||||||
|
|
||||||
if(block_buffer_tail != block_buffer_head)
|
if(block_buffer_tail != block_buffer_head)
|
||||||
{
|
{
|
||||||
uint8_t block_index = block_buffer_tail;
|
uint8_t block_index = block_buffer_tail;
|
||||||
tail_fan_speed = block_buffer[block_index].fan_speed;
|
tail_fan_speed = block_buffer[block_index].fan_speed;
|
||||||
|
tail_valve_pressure = block_buffer[block_index].valve_pressure;
|
||||||
|
tail_e_to_p_pressure = block_buffer[block_index].e_to_p_pressure;
|
||||||
while(block_index != block_buffer_head)
|
while(block_index != block_buffer_head)
|
||||||
{
|
{
|
||||||
block = &block_buffer[block_index];
|
block = &block_buffer[block_index];
|
||||||
|
@ -486,6 +492,17 @@ void check_axes_activity()
|
||||||
#ifdef AUTOTEMP
|
#ifdef AUTOTEMP
|
||||||
getHighESpeed();
|
getHighESpeed();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if HEATER_1_PIN > -1
|
||||||
|
if (ValvePressure != 0){
|
||||||
|
analogWrite(HEATER_1_PIN,ValvePressure); // If buffer is empty use current fan speed
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#if HEATER_2_PIN > -1
|
||||||
|
if (EtoPPressure != 0){
|
||||||
|
analogWrite(HEATER_2_PIN,EtoPPressure); // If buffer is empty use current fan speed
|
||||||
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -559,6 +576,8 @@ void plan_buffer_line(const float &x, const float &y, const float &z, const floa
|
||||||
}
|
}
|
||||||
|
|
||||||
block->fan_speed = fanSpeed;
|
block->fan_speed = fanSpeed;
|
||||||
|
block->valve_pressure = ValvePressure;
|
||||||
|
block->e_to_p_pressure = EtoPPressure;
|
||||||
|
|
||||||
// Compute direction bits for this block
|
// Compute direction bits for this block
|
||||||
block->direction_bits = 0;
|
block->direction_bits = 0;
|
||||||
|
|
|
@ -60,6 +60,8 @@ typedef struct {
|
||||||
unsigned long final_rate; // The minimal rate at exit
|
unsigned long final_rate; // The minimal rate at exit
|
||||||
unsigned long acceleration_st; // acceleration steps/sec^2
|
unsigned long acceleration_st; // acceleration steps/sec^2
|
||||||
unsigned long fan_speed;
|
unsigned long fan_speed;
|
||||||
|
unsigned long valve_pressure;
|
||||||
|
unsigned long e_to_p_pressure;
|
||||||
volatile char busy;
|
volatile char busy;
|
||||||
} block_t;
|
} block_t;
|
||||||
|
|
||||||
|
|
Reference in a new issue