Browse Source

Support for BariCUDA Paste Extruder derived from MakerBot Frostruder. Using Ultimachine RAMBo board. M126/M127 and M128/M129.

Jordan Miller 12 years ago
parent
commit
fbd899a37d
5 changed files with 61 additions and 1 deletions
  1. 2
    0
      Marlin/Marlin.h
  2. 37
    0
      Marlin/Marlin_main.cpp
  3. 1
    1
      Marlin/pins.h
  4. 19
    0
      Marlin/planner.cpp
  5. 2
    0
      Marlin/planner.h

+ 2
- 0
Marlin/Marlin.h View File

186
 extern float min_pos[3];
186
 extern float min_pos[3];
187
 extern float max_pos[3];
187
 extern float max_pos[3];
188
 extern int fanSpeed;
188
 extern int fanSpeed;
189
+extern int ValvePressure;
190
+extern int EtoPPressure;
189
 
191
 
190
 #ifdef FWRETRACT
192
 #ifdef FWRETRACT
191
 extern bool autoretract_enabled;
193
 extern bool autoretract_enabled;

+ 37
- 0
Marlin/Marlin_main.cpp View File

101
 // M115	- Capabilities string
101
 // M115	- Capabilities string
102
 // M117 - display message
102
 // M117 - display message
103
 // M119 - Output Endstop status to serial port
103
 // M119 - Output Endstop status to serial port
104
+// M126 - Solenoid Air Valve Open (BariCUDA support by jmil)
105
+// M127 - Solenoid Air Valve Closed (BariCUDA vent to atmospheric pressure by jmil)
106
+// M128 - EtoP Open (BariCUDA EtoP = electricity to air pressure transducer by jmil)
107
+// M129 - EtoP Closed (BariCUDA EtoP = electricity to air pressure transducer by jmil)
104
 // M140 - Set bed target temp
108
 // M140 - Set bed target temp
105
 // M190 - Wait for bed current temp to reach target temp.
109
 // M190 - Wait for bed current temp to reach target temp.
106
 // M200 - Set filament diameter
110
 // M200 - Set filament diameter
168
 #endif
172
 #endif
169
 uint8_t active_extruder = 0;
173
 uint8_t active_extruder = 0;
170
 int fanSpeed=0;
174
 int fanSpeed=0;
175
+int ValvePressure=0;
176
+int EtoPPressure=0;
171
 
177
 
172
 #ifdef FWRETRACT
178
 #ifdef FWRETRACT
173
   bool autoretract_enabled=true;
179
   bool autoretract_enabled=true;
1169
         break;
1175
         break;
1170
     #endif //FAN_PIN
1176
     #endif //FAN_PIN
1171
 
1177
 
1178
+	// PWM for HEATER_1_PIN
1179
+    #if HEATER_1_PIN > -1
1180
+      case 126: //M126 valve open
1181
+        if (code_seen('S')){
1182
+           ValvePressure=constrain(code_value(),0,255);
1183
+        }
1184
+        else {
1185
+          ValvePressure=255;			
1186
+        }
1187
+        break;
1188
+      case 127: //M127 valve closed
1189
+        ValvePressure = 0;
1190
+        break;
1191
+    #endif //HEATER_1_PIN
1192
+
1193
+	// PWM for HEATER_2_PIN
1194
+    #if HEATER_2_PIN > -1
1195
+      case 128: //M128 valve open
1196
+        if (code_seen('S')){
1197
+           EtoPPressure=constrain(code_value(),0,255);
1198
+        }
1199
+        else {
1200
+          EtoPPressure=255;			
1201
+        }
1202
+        break;
1203
+      case 129: //M129 valve closed
1204
+        EtoPPressure = 0;
1205
+        break;
1206
+    #endif //HEATER_2_PIN
1207
+
1208
+
1172
     #if (PS_ON_PIN > -1)
1209
     #if (PS_ON_PIN > -1)
1173
       case 80: // M80 - ATX Power On
1210
       case 80: // M80 - ATX Power On
1174
         SET_OUTPUT(PS_ON_PIN); //GND
1211
         SET_OUTPUT(PS_ON_PIN); //GND

+ 1
- 1
Marlin/pins.h View File

1474
 #define HEATER_1_PIN 7
1474
 #define HEATER_1_PIN 7
1475
 #define TEMP_1_PIN 1
1475
 #define TEMP_1_PIN 1
1476
 
1476
 
1477
-#define HEATER_2_PIN -1
1477
+#define HEATER_2_PIN 6
1478
 #define TEMP_2_PIN -1
1478
 #define TEMP_2_PIN -1
1479
 
1479
 
1480
 #define E0_STEP_PIN         34
1480
 #define E0_STEP_PIN         34

+ 19
- 0
Marlin/planner.cpp View File

439
   unsigned char z_active = 0;
439
   unsigned char z_active = 0;
440
   unsigned char e_active = 0;
440
   unsigned char e_active = 0;
441
   unsigned char tail_fan_speed = fanSpeed;
441
   unsigned char tail_fan_speed = fanSpeed;
442
+  unsigned char valve_pressure = 0;
443
+  unsigned char e_to_p_pressure = 0;
444
+  unsigned char tail_valve_pressure = 0;
445
+  unsigned char tail_e_to_p_pressure = 0;
442
   block_t *block;
446
   block_t *block;
443
 
447
 
444
   if(block_buffer_tail != block_buffer_head)
448
   if(block_buffer_tail != block_buffer_head)
445
   {
449
   {
446
     uint8_t block_index = block_buffer_tail;
450
     uint8_t block_index = block_buffer_tail;
447
     tail_fan_speed = block_buffer[block_index].fan_speed;
451
     tail_fan_speed = block_buffer[block_index].fan_speed;
452
+    tail_valve_pressure = block_buffer[block_index].valve_pressure;
453
+    tail_e_to_p_pressure = block_buffer[block_index].e_to_p_pressure;
448
     while(block_index != block_buffer_head)
454
     while(block_index != block_buffer_head)
449
     {
455
     {
450
       block = &block_buffer[block_index];
456
       block = &block_buffer[block_index];
486
 #ifdef AUTOTEMP
492
 #ifdef AUTOTEMP
487
   getHighESpeed();
493
   getHighESpeed();
488
 #endif
494
 #endif
495
+
496
+#if HEATER_1_PIN > -1
497
+    if (ValvePressure != 0){
498
+      analogWrite(HEATER_1_PIN,ValvePressure); // If buffer is empty use current fan speed
499
+    }
500
+#endif
501
+#if HEATER_2_PIN > -1
502
+    if (EtoPPressure != 0){
503
+      analogWrite(HEATER_2_PIN,EtoPPressure); // If buffer is empty use current fan speed
504
+    }
505
+#endif
489
 }
506
 }
490
 
507
 
491
 
508
 
559
   }
576
   }
560
 
577
 
561
   block->fan_speed = fanSpeed;
578
   block->fan_speed = fanSpeed;
579
+  block->valve_pressure = ValvePressure;
580
+  block->e_to_p_pressure = EtoPPressure;
562
 
581
 
563
   // Compute direction bits for this block 
582
   // Compute direction bits for this block 
564
   block->direction_bits = 0;
583
   block->direction_bits = 0;

+ 2
- 0
Marlin/planner.h View File

60
   unsigned long final_rate;                          // The minimal rate at exit
60
   unsigned long final_rate;                          // The minimal rate at exit
61
   unsigned long acceleration_st;                     // acceleration steps/sec^2
61
   unsigned long acceleration_st;                     // acceleration steps/sec^2
62
   unsigned long fan_speed;
62
   unsigned long fan_speed;
63
+  unsigned long valve_pressure;
64
+  unsigned long e_to_p_pressure;
63
   volatile char busy;
65
   volatile char busy;
64
 } block_t;
66
 } block_t;
65
 
67
 

Loading…
Cancel
Save