Support for BariCUDA Paste Extruder derived from MakerBot Frostruder. Using Ultimachine RAMBo board. M126/M127 and M128/M129.
This commit is contained in:
		
				
					committed by
					
						 Erik van der Zalm
						Erik van der Zalm
					
				
			
			
				
	
			
			
			
						parent
						
							90664d20a4
						
					
				
				
					commit
					fbd899a37d
				
			| @@ -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 New Issue
	
	Block a user