Pārlūkot izejas kodu

Add Chamber servo vent, auto fan (#19519)

ladismrkolj 4 gadus atpakaļ
vecāks
revīzija
2c99c1e06f
Revīzijas autora e-pasta adrese nav piesaistīta nevienam kontam

+ 35
- 10
Marlin/Configuration_adv.h Parādīt failu

32
  */
32
  */
33
 #define CONFIGURATION_ADV_H_VERSION 020007
33
 #define CONFIGURATION_ADV_H_VERSION 020007
34
 
34
 
35
-// @section temperature
36
-
37
 //===========================================================================
35
 //===========================================================================
38
 //============================= Thermal Settings ============================
36
 //============================= Thermal Settings ============================
39
 //===========================================================================
37
 //===========================================================================
38
+// @section temperature
40
 
39
 
41
 /**
40
 /**
42
  * Thermocouple sensors are quite sensitive to noise.  Any noise induced in
41
  * Thermocouple sensors are quite sensitive to noise.  Any noise induced in
125
   #define HEATER_BED_INVERTING true
124
   #define HEATER_BED_INVERTING true
126
 #endif
125
 #endif
127
 
126
 
128
-/**
129
- * Heated Chamber settings
130
- */
127
+//
128
+// Heated Bed Bang-Bang options
129
+//
130
+#if DISABLED(PIDTEMPBED)
131
+  #define BED_CHECK_INTERVAL 5000   // (ms) Interval between checks in bang-bang control
132
+  #if ENABLED(BED_LIMIT_SWITCHING)
133
+    #define BED_HYSTERESIS 2        // (°C) Only set the relevant heater state when ABS(T-target) > BED_HYSTERESIS
134
+  #endif
135
+#endif
136
+
137
+//
138
+// Heated Chamber options
139
+//
131
 #if TEMP_SENSOR_CHAMBER
140
 #if TEMP_SENSOR_CHAMBER
132
   #define CHAMBER_MINTEMP             5
141
   #define CHAMBER_MINTEMP             5
133
   #define CHAMBER_MAXTEMP            60
142
   #define CHAMBER_MAXTEMP            60
135
   //#define CHAMBER_LIMIT_SWITCHING
144
   //#define CHAMBER_LIMIT_SWITCHING
136
   //#define HEATER_CHAMBER_PIN       44   // Chamber heater on/off pin
145
   //#define HEATER_CHAMBER_PIN       44   // Chamber heater on/off pin
137
   //#define HEATER_CHAMBER_INVERTING false
146
   //#define HEATER_CHAMBER_INVERTING false
138
-#endif
139
 
147
 
140
-#if DISABLED(PIDTEMPBED)
141
-  #define BED_CHECK_INTERVAL 5000 // ms between checks in bang-bang control
142
-  #if ENABLED(BED_LIMIT_SWITCHING)
143
-    #define BED_HYSTERESIS 2 // Only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
148
+  //#define CHAMBER_FAN               // Enable a fan on the chamber
149
+  #if ENABLED(CHAMBER_FAN)
150
+    #define CHAMBER_FAN_MODE 2        // Fan control mode: 0=Static; 1=Linear increase when temp is higher than target; 2=V-shaped curve.
151
+    #if CHAMBER_FAN_MODE == 0
152
+      #define CHAMBER_FAN_BASE  255   // Chamber fan PWM (0-255)
153
+    #elif CHAMBER_FAN_MODE == 1
154
+      #define CHAMBER_FAN_BASE  128   // Base chamber fan PWM (0-255); turns on when chamber temperature is above the target
155
+      #define CHAMBER_FAN_FACTOR 25   // PWM increase per °C above target
156
+    #elif CHAMBER_FAN_MODE == 2
157
+      #define CHAMBER_FAN_BASE  128   // Minimum chamber fan PWM (0-255)
158
+      #define CHAMBER_FAN_FACTOR 25   // PWM increase per °C difference from target
159
+    #endif
160
+  #endif
161
+
162
+  //#define CHAMBER_VENT              // Enable a servo-controlled vent on the chamber
163
+  #if ENABLED(CHAMBER_VENT)
164
+    #define CHAMBER_VENT_SERVO_NR  1  // Index of the vent servo
165
+    #define HIGH_EXCESS_HEAT_LIMIT 5  // How much above target temp to consider there is excess heat in the chamber
166
+    #define LOW_EXCESS_HEAT_LIMIT 3
167
+    #define MIN_COOLING_SLOPE_TIME_CHAMBER_VENT 20
168
+    #define MIN_COOLING_SLOPE_DEG_CHAMBER_VENT 1.5
144
   #endif
169
   #endif
145
 #endif
170
 #endif
146
 
171
 

+ 1
- 16
Marlin/src/inc/Conditionals_LCD.h Parādīt failu

603
   #define DO_SWITCH_EXTRUDER 1
603
   #define DO_SWITCH_EXTRUDER 1
604
 #endif
604
 #endif
605
 
605
 
606
-#ifdef SWITCHING_NOZZLE_E1_SERVO_NR
607
-  #define SWITCHING_NOZZLE_TWO_SERVOS 1
608
-#endif
609
-
610
 /**
606
 /**
611
  * Default hotend offsets, if not defined
607
  * Default hotend offsets, if not defined
612
  */
608
  */
657
   #ifndef Z_PROBE_SERVO_NR
653
   #ifndef Z_PROBE_SERVO_NR
658
     #define Z_PROBE_SERVO_NR 0
654
     #define Z_PROBE_SERVO_NR 0
659
   #endif
655
   #endif
660
-  #ifndef NUM_SERVOS
661
-    #define NUM_SERVOS (Z_PROBE_SERVO_NR + 1)
662
-  #endif
663
   #undef DEACTIVATE_SERVOS_AFTER_MOVE
656
   #undef DEACTIVATE_SERVOS_AFTER_MOVE
664
-  #if NUM_SERVOS == 1
665
-    #undef SERVO_DELAY
666
-    #define SERVO_DELAY { 50 }
667
-  #endif
668
 
657
 
669
   // Always disable probe pin inverting for BLTouch
658
   // Always disable probe pin inverting for BLTouch
670
   #undef Z_MIN_PROBE_ENDSTOP_INVERTING
659
   #undef Z_MIN_PROBE_ENDSTOP_INVERTING
675
   #endif
664
   #endif
676
 #endif
665
 #endif
677
 
666
 
678
-#ifndef NUM_SERVOS
679
-  #define NUM_SERVOS 0
680
-#endif
681
-
682
 /**
667
 /**
683
  * Set a flag for a servo probe (or BLTouch)
668
  * Set a flag for a servo probe (or BLTouch)
684
  */
669
  */
685
-#if defined(Z_PROBE_SERVO_NR) && Z_PROBE_SERVO_NR >= 0
670
+#ifdef Z_PROBE_SERVO_NR
686
   #define HAS_Z_SERVO_PROBE 1
671
   #define HAS_Z_SERVO_PROBE 1
687
 #endif
672
 #endif
688
 #if ANY(HAS_Z_SERVO_PROBE, SWITCHING_EXTRUDER, SWITCHING_NOZZLE)
673
 #if ANY(HAS_Z_SERVO_PROBE, SWITCHING_EXTRUDER, SWITCHING_NOZZLE)

+ 45
- 0
Marlin/src/inc/Conditionals_adv.h Parādīt failu

26
  * Defines that depend on advanced configuration.
26
  * Defines that depend on advanced configuration.
27
  */
27
  */
28
 
28
 
29
+#ifdef SWITCHING_NOZZLE_E1_SERVO_NR
30
+  #define SWITCHING_NOZZLE_TWO_SERVOS 1
31
+#endif
32
+
33
+// Determine NUM_SERVOS if none was supplied
34
+#ifndef NUM_SERVOS
35
+  #define NUM_SERVOS 0
36
+  #if ANY(CHAMBER_VENT, HAS_Z_SERVO_PROBE, SWITCHING_EXTRUDER, SWITCHING_NOZZLE)
37
+    #if NUM_SERVOS <= Z_PROBE_SERVO_NR
38
+      #undef NUM_SERVOS
39
+      #define NUM_SERVOS (Z_PROBE_SERVO_NR + 1)
40
+    #endif
41
+    #if NUM_SERVOS <= CHAMBER_VENT_SERVO_NR
42
+      #undef NUM_SERVOS
43
+      #define NUM_SERVOS (CHAMBER_VENT_SERVO_NR + 1)
44
+    #endif
45
+    #if NUM_SERVOS <= SWITCHING_TOOLHEAD_SERVO_NR
46
+      #undef NUM_SERVOS
47
+      #define NUM_SERVOS (SWITCHING_TOOLHEAD_SERVO_NR + 1)
48
+    #endif
49
+    #if NUM_SERVOS <= SWITCHING_NOZZLE_SERVO_NR
50
+      #undef NUM_SERVOS
51
+      #define NUM_SERVOS (SWITCHING_NOZZLE_SERVO_NR + 1)
52
+    #endif
53
+    #if NUM_SERVOS <= SWITCHING_NOZZLE_E1_SERVO_NR
54
+      #undef NUM_SERVOS
55
+      #define NUM_SERVOS (SWITCHING_NOZZLE_E1_SERVO_NR + 1)
56
+    #endif
57
+    #if NUM_SERVOS <= SWITCHING_EXTRUDER_SERVO_NR
58
+      #undef NUM_SERVOS
59
+      #define NUM_SERVOS (SWITCHING_EXTRUDER_SERVO_NR + 1)
60
+    #endif
61
+    #if NUM_SERVOS <= SWITCHING_EXTRUDER_E23_SERVO_NR
62
+      #undef NUM_SERVOS
63
+      #define NUM_SERVOS (SWITCHING_EXTRUDER_E23_SERVO_NR + 1)
64
+    #endif
65
+  #endif
66
+#endif
67
+
68
+// Convenience override for a BLTouch alone
69
+#if ENABLED(BLTOUCH) && NUM_SERVOS == 1
70
+  #undef SERVO_DELAY
71
+  #define SERVO_DELAY { 50 }
72
+#endif
73
+
29
 #if EXTRUDERS == 0
74
 #if EXTRUDERS == 0
30
   #define NO_VOLUMETRICS
75
   #define NO_VOLUMETRICS
31
   #undef TEMP_SENSOR_0
76
   #undef TEMP_SENSOR_0

+ 28
- 4
Marlin/src/inc/SanityCheck.h Parādīt failu

1249
    * NUM_SERVOS is required for a Z servo probe
1249
    * NUM_SERVOS is required for a Z servo probe
1250
    */
1250
    */
1251
   #if HAS_Z_SERVO_PROBE
1251
   #if HAS_Z_SERVO_PROBE
1252
-    #ifndef NUM_SERVOS
1253
-      #error "You must set NUM_SERVOS for a Z servo probe (Z_PROBE_SERVO_NR)."
1252
+    #if !NUM_SERVOS
1253
+      #error "NUM_SERVOS is required for a Z servo probe (Z_PROBE_SERVO_NR)."
1254
+    #elif Z_PROBE_SERVO_NR >= NUM_SERVOS
1255
+      #error "Z_PROBE_SERVO_NR must be smaller than NUM_SERVOS."
1254
     #elif Z_PROBE_SERVO_NR == 0 && !PIN_EXISTS(SERVO0)
1256
     #elif Z_PROBE_SERVO_NR == 0 && !PIN_EXISTS(SERVO0)
1255
       #error "SERVO0_PIN must be defined for your servo or BLTOUCH probe."
1257
       #error "SERVO0_PIN must be defined for your servo or BLTOUCH probe."
1256
     #elif Z_PROBE_SERVO_NR == 1 && !PIN_EXISTS(SERVO1)
1258
     #elif Z_PROBE_SERVO_NR == 1 && !PIN_EXISTS(SERVO1)
1259
       #error "SERVO2_PIN must be defined for your servo or BLTOUCH probe."
1261
       #error "SERVO2_PIN must be defined for your servo or BLTOUCH probe."
1260
     #elif Z_PROBE_SERVO_NR == 3 && !PIN_EXISTS(SERVO3)
1262
     #elif Z_PROBE_SERVO_NR == 3 && !PIN_EXISTS(SERVO3)
1261
       #error "SERVO3_PIN must be defined for your servo or BLTOUCH probe."
1263
       #error "SERVO3_PIN must be defined for your servo or BLTOUCH probe."
1262
-    #elif Z_PROBE_SERVO_NR >= NUM_SERVOS
1263
-      #error "Z_PROBE_SERVO_NR must be smaller than NUM_SERVOS."
1264
     #endif
1264
     #endif
1265
   #endif
1265
   #endif
1266
 
1266
 
1807
   #error "TEMP_SENSOR_CHAMBER requires TEMP_CHAMBER_PIN. Please add it to your configuration."
1807
   #error "TEMP_SENSOR_CHAMBER requires TEMP_CHAMBER_PIN. Please add it to your configuration."
1808
 #endif
1808
 #endif
1809
 
1809
 
1810
+#if ENABLED(CHAMBER_FAN) && !(defined(CHAMBER_FAN_MODE) && WITHIN(CHAMBER_FAN_MODE, 0, 2))
1811
+  #error "CHAMBER_FAN_MODE must be between 0 and 2. Please update your Configuration_adv.h."
1812
+#endif
1813
+
1814
+#if ENABLED(CHAMBER_VENT)
1815
+  #ifndef CHAMBER_VENT_SERVO_NR
1816
+    #error "CHAMBER_VENT_SERVO_NR is required for CHAMBER SERVO. Update your Configuration_adv.h."
1817
+  #elif !NUM_SERVOS
1818
+    #error "NUM_SERVOS is required for a Heated Chamber vent servo (CHAMBER_VENT_SERVO_NR)."
1819
+  #elif CHAMBER_VENT_SERVO_NR >= NUM_SERVOS
1820
+    #error "CHAMBER_VENT_SERVO_NR must be smaller than NUM_SERVOS."
1821
+  #elif HAS_Z_SERVO_PROBE && CHAMBER_VENT_SERVO_NR == Z_PROBE_SERVO_NR
1822
+    #error "CHAMBER SERVO is already used by BLTOUCH. Please change."
1823
+  #elif CHAMBER_VENT_SERVO_NR == 0 && !PIN_EXISTS(SERVO0)
1824
+    #error "SERVO0_PIN must be defined for your Heated Chamber vent servo."
1825
+  #elif CHAMBER_VENT_SERVO_NR == 1 && !PIN_EXISTS(SERVO1)
1826
+    #error "SERVO1_PIN must be defined for your Heated Chamber vent servo."
1827
+  #elif CHAMBER_VENT_SERVO_NR == 2 && !PIN_EXISTS(SERVO2)
1828
+    #error "SERVO2_PIN must be defined for your Heated Chamber vent servo."
1829
+  #elif CHAMBER_VENT_SERVO_NR == 3 && !PIN_EXISTS(SERVO3)
1830
+    #error "SERVO3_PIN must be defined for your Heated Chamber vent servo."
1831
+  #endif
1832
+#endif
1833
+
1810
 #if TEMP_SENSOR_PROBE
1834
 #if TEMP_SENSOR_PROBE
1811
   #if !PIN_EXISTS(TEMP_PROBE)
1835
   #if !PIN_EXISTS(TEMP_PROBE)
1812
     #error "TEMP_SENSOR_PROBE requires TEMP_PROBE_PIN. Please add it to your configuration."
1836
     #error "TEMP_SENSOR_PROBE requires TEMP_PROBE_PIN. Please add it to your configuration."

+ 83
- 9
Marlin/src/module/temperature.cpp Parādīt failu

111
   #include "../libs/buzzer.h"
111
   #include "../libs/buzzer.h"
112
 #endif
112
 #endif
113
 
113
 
114
+#if HAS_SERVOS
115
+  #include "./servo.h"
116
+#endif
114
 #if HOTEND_USES_THERMISTOR
117
 #if HOTEND_USES_THERMISTOR
115
   #if ENABLED(TEMP_SENSOR_1_AS_REDUNDANT)
118
   #if ENABLED(TEMP_SENSOR_1_AS_REDUNDANT)
116
     static const temp_entry_t* heater_ttbl_map[2] = { HEATER_0_TEMPTABLE, HEATER_1_TEMPTABLE };
119
     static const temp_entry_t* heater_ttbl_map[2] = { HEATER_0_TEMPTABLE, HEATER_1_TEMPTABLE };
271
 #if HAS_TEMP_CHAMBER
274
 #if HAS_TEMP_CHAMBER
272
   chamber_info_t Temperature::temp_chamber; // = { 0 }
275
   chamber_info_t Temperature::temp_chamber; // = { 0 }
273
   #if HAS_HEATED_CHAMBER
276
   #if HAS_HEATED_CHAMBER
277
+    int16_t fan_chamber_pwm;
278
+    bool flag_chamber_off;
279
+    bool flag_chamber_excess_heat = false;
280
+    millis_t next_cool_check_ms_2 = 0;
281
+    float old_temp = 9999;
274
     #ifdef CHAMBER_MINTEMP
282
     #ifdef CHAMBER_MINTEMP
275
       int16_t Temperature::mintemp_raw_CHAMBER = HEATER_CHAMBER_RAW_LO_TEMP;
283
       int16_t Temperature::mintemp_raw_CHAMBER = HEATER_CHAMBER_RAW_LO_TEMP;
276
     #endif
284
     #endif
1189
       }
1197
       }
1190
     #endif
1198
     #endif
1191
 
1199
 
1200
+    #if EITHER(CHAMBER_FAN, CHAMBER_VENT)
1201
+      if (temp_chamber.target > CHAMBER_MINTEMP) {
1202
+        flag_chamber_off = false;
1203
+
1204
+        #if ENABLED(CHAMBER_FAN)
1205
+          #if CHAMBER_FAN_MODE == 0
1206
+            fan_chamber_pwm = CHAMBER_FAN_BASE
1207
+          #elif CHAMBER_FAN_MODE == 1
1208
+            fan_chamber_pwm = temp_chamber.celsius > temp_chamber.target ? CHAMBER_FAN_BASE + ((temp_chamber.celsius - temp_chamber.target)  * CHAMBER_FAN_FACTOR ) : 0;
1209
+          #elif CHAMBER_FAN_MODE == 2
1210
+            fan_chamber_pwm = (CHAMBER_FAN_BASE) + (CHAMBER_FAN_FACTOR) * ABS(temp_chamber.celsius - temp_chamber.target);
1211
+            if (temp_chamber.soft_pwm_amount)
1212
+              fan_chamber_pwm += (CHAMBER_FAN_FACTOR) * 2;
1213
+          #endif
1214
+          fan_chamber_pwm = _MIN(225, fan_chamber_pwm);
1215
+          thermalManager.set_fan_speed(2, fan_chamber_pwm); // TODO: instead of fan 2, set to chamber fan
1216
+        #endif
1217
+
1218
+        #if ENABLED(CHAMBER_VENT)
1219
+          #ifndef MIN_COOLING_SLOPE_TIME_CHAMBER_VENT
1220
+            #define MIN_COOLING_SLOPE_TIME_CHAMBER_VENT 20
1221
+          #endif
1222
+          #ifndef MIN_COOLING_SLOPE_DEG_CHAMBER_VENT
1223
+            #define MIN_COOLING_SLOPE_DEG_CHAMBER_VENT 1.5
1224
+          #endif
1225
+          if( (temp_chamber.celsius - temp_chamber.target >= HIGH_EXCESS_HEAT_LIMIT) && !flag_chamber_excess_heat) {
1226
+          // open vent after MIN_COOLING_SLOPE_TIME_CHAMBER_VENT seconds
1227
+          // if the temperature did not drop at least MIN_COOLING_SLOPE_DEG_CHAMBER_VENT
1228
+            if (next_cool_check_ms_2 == 0 || ELAPSED(ms, next_cool_check_ms_2)) {
1229
+              if (old_temp - temp_chamber.celsius < float(MIN_COOLING_SLOPE_DEG_CHAMBER_VENT)) flag_chamber_excess_heat = true; //the bed is heating the chamber too much
1230
+              next_cool_check_ms_2 = ms + 1000UL * MIN_COOLING_SLOPE_TIME_CHAMBER_VENT;
1231
+              old_temp = temp_chamber.celsius;
1232
+            }
1233
+          }
1234
+          else {
1235
+            next_cool_check_ms_2 = 0;
1236
+            old_temp = 9999;
1237
+          }
1238
+          if (flag_chamber_excess_heat && (temp_chamber.celsius - temp_chamber.target <= -LOW_EXCESS_HEAT_LIMIT) ) {
1239
+            flag_chamber_excess_heat = false;
1240
+          }
1241
+        #endif
1242
+      }
1243
+      else if (!flag_chamber_off) {
1244
+        #if ENABLED(CHAMBER_FAN)
1245
+          flag_chamber_off = true;
1246
+          thermalManager.set_fan_speed(2, 0);
1247
+        #endif
1248
+        #if ENABLED(CHAMBER_VENT)
1249
+          flag_chamber_excess_heat = false;
1250
+          MOVE_SERVO(CHAMBER_VENT_SERVO_NR, 90);
1251
+        #endif
1252
+      }
1253
+    #endif
1254
+
1192
     if (ELAPSED(ms, next_chamber_check_ms)) {
1255
     if (ELAPSED(ms, next_chamber_check_ms)) {
1193
       next_chamber_check_ms = ms + CHAMBER_CHECK_INTERVAL;
1256
       next_chamber_check_ms = ms + CHAMBER_CHECK_INTERVAL;
1194
 
1257
 
1195
       if (WITHIN(temp_chamber.celsius, CHAMBER_MINTEMP, CHAMBER_MAXTEMP)) {
1258
       if (WITHIN(temp_chamber.celsius, CHAMBER_MINTEMP, CHAMBER_MAXTEMP)) {
1196
-        #if ENABLED(CHAMBER_LIMIT_SWITCHING)
1197
-          if (temp_chamber.celsius >= temp_chamber.target + TEMP_CHAMBER_HYSTERESIS)
1198
-            temp_chamber.soft_pwm_amount = 0;
1199
-          else if (temp_chamber.celsius <= temp_chamber.target - (TEMP_CHAMBER_HYSTERESIS))
1200
-            temp_chamber.soft_pwm_amount = MAX_CHAMBER_POWER >> 1;
1201
-        #else
1202
-          temp_chamber.soft_pwm_amount = temp_chamber.celsius < temp_chamber.target ? MAX_CHAMBER_POWER >> 1 : 0;
1203
-        #endif
1259
+        if (!flag_chamber_excess_heat){
1260
+          #if ENABLED(CHAMBER_LIMIT_SWITCHING)
1261
+            if (temp_chamber.celsius >= temp_chamber.target + TEMP_CHAMBER_HYSTERESIS)
1262
+              temp_chamber.soft_pwm_amount = 0;
1263
+            else if (temp_chamber.celsius <= temp_chamber.target - (TEMP_CHAMBER_HYSTERESIS))
1264
+              temp_chamber.soft_pwm_amount = (MAX_CHAMBER_POWER) >> 1;
1265
+          #else
1266
+            temp_chamber.soft_pwm_amount = temp_chamber.celsius < temp_chamber.target ? (MAX_CHAMBER_POWER) >> 1 : 0;
1267
+          #endif
1268
+          #if ENABLED(CHAMBER_VENT)
1269
+            if (!flag_chamber_off) MOVE_SERVO(CHAMBER_VENT_SERVO_NR, 0);
1270
+          #endif
1271
+        }
1272
+        else {
1273
+          temp_chamber.soft_pwm_amount = 0;
1274
+          #if ENABLED(CHAMBER_VENT)
1275
+            if (!flag_chamber_off) MOVE_SERVO(CHAMBER_VENT_SERVO_NR, temp_chamber.celsius <= temp_chamber.target ? 0 : 90);
1276
+          #endif
1277
+        }
1204
       }
1278
       }
1205
       else {
1279
       else {
1206
         temp_chamber.soft_pwm_amount = 0;
1280
         temp_chamber.soft_pwm_amount = 0;
3365
       #define MIN_COOLING_SLOPE_DEG_CHAMBER 1.50
3439
       #define MIN_COOLING_SLOPE_DEG_CHAMBER 1.50
3366
     #endif
3440
     #endif
3367
     #ifndef MIN_COOLING_SLOPE_TIME_CHAMBER
3441
     #ifndef MIN_COOLING_SLOPE_TIME_CHAMBER
3368
-      #define MIN_COOLING_SLOPE_TIME_CHAMBER 60
3442
+      #define MIN_COOLING_SLOPE_TIME_CHAMBER 120
3369
     #endif
3443
     #endif
3370
 
3444
 
3371
     bool Temperature::wait_for_chamber(const bool no_wait_for_cooling/*=true*/) {
3445
     bool Temperature::wait_for_chamber(const bool no_wait_for_cooling/*=true*/) {

+ 1
- 0
Marlin/src/pins/stm32f4/pins_BTT_SKR_PRO_common.h Parādīt failu

41
 // Servos
41
 // Servos
42
 //
42
 //
43
 #define SERVO0_PIN                          PA1
43
 #define SERVO0_PIN                          PA1
44
+#define SERVO1_PIN                          PC9
44
 
45
 
45
 //
46
 //
46
 // Trinamic Stallguard pins
47
 // Trinamic Stallguard pins

Notiek ielāde…
Atcelt
Saglabāt