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 max_pos[3]; | ||||
| extern int fanSpeed; | ||||
| extern int ValvePressure; | ||||
| extern int EtoPPressure; | ||||
|  | ||||
| #ifdef FWRETRACT | ||||
| extern bool autoretract_enabled; | ||||
|   | ||||
| @@ -101,6 +101,10 @@ | ||||
| // M115	- Capabilities string | ||||
| // M117 - display message | ||||
| // 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 | ||||
| // M190 - Wait for bed current temp to reach target temp. | ||||
| // M200 - Set filament diameter | ||||
| @@ -168,6 +172,8 @@ float extruder_offset[2][EXTRUDERS] = { | ||||
| #endif | ||||
| uint8_t active_extruder = 0; | ||||
| int fanSpeed=0; | ||||
| int ValvePressure=0; | ||||
| int EtoPPressure=0; | ||||
|  | ||||
| #ifdef FWRETRACT | ||||
|   bool autoretract_enabled=true; | ||||
| @@ -1169,6 +1175,37 @@ void process_commands() | ||||
|         break; | ||||
|     #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) | ||||
|       case 80: // M80 - ATX Power On | ||||
|         SET_OUTPUT(PS_ON_PIN); //GND | ||||
|   | ||||
| @@ -1474,7 +1474,7 @@ | ||||
| #define HEATER_1_PIN 7 | ||||
| #define TEMP_1_PIN 1 | ||||
|  | ||||
| #define HEATER_2_PIN -1 | ||||
| #define HEATER_2_PIN 6 | ||||
| #define TEMP_2_PIN -1 | ||||
|  | ||||
| #define E0_STEP_PIN         34 | ||||
|   | ||||
| @@ -439,12 +439,18 @@ void check_axes_activity() | ||||
|   unsigned char z_active = 0; | ||||
|   unsigned char e_active = 0; | ||||
|   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; | ||||
|  | ||||
|   if(block_buffer_tail != block_buffer_head) | ||||
|   { | ||||
|     uint8_t block_index = block_buffer_tail; | ||||
|     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) | ||||
|     { | ||||
|       block = &block_buffer[block_index]; | ||||
| @@ -486,6 +492,17 @@ void check_axes_activity() | ||||
| #ifdef AUTOTEMP | ||||
|   getHighESpeed(); | ||||
| #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->valve_pressure = ValvePressure; | ||||
|   block->e_to_p_pressure = EtoPPressure; | ||||
|  | ||||
|   // Compute direction bits for this block  | ||||
|   block->direction_bits = 0; | ||||
|   | ||||
| @@ -60,6 +60,8 @@ typedef struct { | ||||
|   unsigned long final_rate;                          // The minimal rate at exit | ||||
|   unsigned long acceleration_st;                     // acceleration steps/sec^2 | ||||
|   unsigned long fan_speed; | ||||
|   unsigned long valve_pressure; | ||||
|   unsigned long e_to_p_pressure; | ||||
|   volatile char busy; | ||||
| } block_t; | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user