Преглед на файлове

Merge pull request #4955 from thinkyhead/rc_debug_pins

PINS_DEBUGGING and M43: Read pin states
Scott Lahteine преди 8 години
родител
ревизия
ee01def16d
променени са 48 файла, в които са добавени 936 реда и са изтрити 299 реда
  1. 5
    0
      Marlin/Configuration_adv.h
  2. 205
    152
      Marlin/Marlin_main.cpp
  3. 5
    0
      Marlin/example_configurations/Cartesio/Configuration_adv.h
  4. 5
    0
      Marlin/example_configurations/Felix/Configuration_adv.h
  5. 5
    0
      Marlin/example_configurations/Hephestos/Configuration_adv.h
  6. 5
    0
      Marlin/example_configurations/Hephestos_2/Configuration_adv.h
  7. 5
    0
      Marlin/example_configurations/K8200/Configuration_adv.h
  8. 5
    0
      Marlin/example_configurations/K8400/Configuration_adv.h
  9. 5
    0
      Marlin/example_configurations/RigidBot/Configuration_adv.h
  10. 5
    0
      Marlin/example_configurations/SCARA/Configuration_adv.h
  11. 5
    0
      Marlin/example_configurations/TAZ4/Configuration_adv.h
  12. 5
    0
      Marlin/example_configurations/WITBOX/Configuration_adv.h
  13. 5
    0
      Marlin/example_configurations/delta/biv2.5/Configuration_adv.h
  14. 5
    0
      Marlin/example_configurations/delta/generic/Configuration_adv.h
  15. 5
    0
      Marlin/example_configurations/delta/kossel_mini/Configuration_adv.h
  16. 5
    0
      Marlin/example_configurations/delta/kossel_pro/Configuration_adv.h
  17. 5
    0
      Marlin/example_configurations/delta/kossel_xl/Configuration_adv.h
  18. 5
    0
      Marlin/example_configurations/makibox/Configuration_adv.h
  19. 5
    0
      Marlin/example_configurations/tvrrug/Round2/Configuration_adv.h
  20. 0
    2
      Marlin/fastio.h
  21. 20
    3
      Marlin/pins.h
  22. 447
    0
      Marlin/pinsDebug.h
  23. 2
    2
      Marlin/pins_5DPRINT.h
  24. 2
    2
      Marlin/pins_99.h
  25. 3
    3
      Marlin/pins_A4JP.h
  26. 2
    2
      Marlin/pins_BAM_DICE_DUE.h
  27. 2
    2
      Marlin/pins_BRAINWAVE.h
  28. 3
    3
      Marlin/pins_BRAINWAVE_PRO.h
  29. 3
    3
      Marlin/pins_CHEAPTRONIC.h
  30. 5
    5
      Marlin/pins_CNCONTROLS_11.h
  31. 6
    6
      Marlin/pins_CNCONTROLS_12.h
  32. 4
    4
      Marlin/pins_ELEFU_3.h
  33. 1
    1
      Marlin/pins_GEN3_MONOLITHIC.h
  34. 2
    2
      Marlin/pins_GEN3_PLUS.h
  35. 7
    7
      Marlin/pins_GEN6.h
  36. 2
    2
      Marlin/pins_GEN7_12.h
  37. 32
    23
      Marlin/pins_GEN7_14.h
  38. 37
    29
      Marlin/pins_GEN7_CUSTOM.h
  39. 3
    3
      Marlin/pins_LEAPFROG.h
  40. 7
    7
      Marlin/pins_MEGACONTROLLER.h
  41. 4
    4
      Marlin/pins_MEGATRONICS.h
  42. 6
    6
      Marlin/pins_MEGATRONICS_2.h
  43. 8
    8
      Marlin/pins_MEGATRONICS_3.h
  44. 3
    3
      Marlin/pins_MINIRAMBO.h
  45. 3
    3
      Marlin/pins_MINITRONICS.h
  46. 3
    3
      Marlin/pins_OMCA.h
  47. 20
    6
      Marlin/pins_OMCA_A.h
  48. 4
    3
      Marlin/pins_PRINTRBOARD.h

+ 5
- 0
Marlin/Configuration_adv.h Целия файл

@@ -810,4 +810,9 @@
810 810
 //#define EXPERIMENTAL_I2CBUS
811 811
 #define I2C_SLAVE_ADDRESS  0 // Set a value from 8 to 127 to act as a slave
812 812
 
813
+/**
814
+ * Add M43 command for pins info and testing
815
+ */
816
+//#define PINS_DEBUGGING
817
+
813 818
 #endif // CONFIGURATION_ADV_H

+ 205
- 152
Marlin/Marlin_main.cpp Целия файл

@@ -417,8 +417,6 @@ const char axis_codes[NUM_AXIS] = {'X', 'Y', 'Z', 'E'};
417 417
 // Number of characters read in the current line of serial input
418 418
 static int serial_count = 0;
419 419
 
420
-const int sensitive_pins[] = SENSITIVE_PINS; ///< Sensitive pin list for M42
421
-
422 420
 // Inactivity shutdown
423 421
 millis_t previous_cmd_ms = 0;
424 422
 static millis_t max_inactive_time = 0;
@@ -1310,7 +1308,7 @@ bool get_target_extruder_from_command(int code) {
1310 1308
   static float duplicate_extruder_x_offset = DEFAULT_DUPLICATION_X_OFFSET; // used in mode 2
1311 1309
   static float duplicate_extruder_temp_offset = 0;   // used in mode 2
1312 1310
 
1313
-#endif //DUAL_X_CARRIAGE
1311
+#endif // DUAL_X_CARRIAGE
1314 1312
 
1315 1313
 /**
1316 1314
  * Software endstops can be used to monitor the open end of
@@ -4615,6 +4613,16 @@ inline void gcode_M31() {
4615 4613
 #endif // SDSUPPORT
4616 4614
 
4617 4615
 /**
4616
+ * Sensitive pin test for M42, M226
4617
+ */
4618
+static bool pin_is_protected(uint8_t pin) {
4619
+  static const int sensitive_pins[] = SENSITIVE_PINS;
4620
+  for (uint8_t i = 0; i < COUNT(sensitive_pins); i++)
4621
+    if (sensitive_pins[i] == pin) return true;
4622
+  return false;
4623
+}
4624
+
4625
+/**
4618 4626
  * M42: Change pin status via GCode
4619 4627
  *
4620 4628
  *  P<pin>  Pin number (LED if omitted)
@@ -4629,12 +4637,11 @@ inline void gcode_M42() {
4629 4637
   int pin_number = code_seen('P') ? code_value_int() : LED_PIN;
4630 4638
   if (pin_number < 0) return;
4631 4639
 
4632
-  for (uint8_t i = 0; i < COUNT(sensitive_pins); i++)
4633
-    if (pin_number == sensitive_pins[i]) {
4634
-      SERIAL_ERROR_START;
4635
-      SERIAL_ERRORLNPGM(MSG_ERR_PROTECTED_PIN);
4636
-      return;
4637
-    }
4640
+  if (pin_is_protected(pin_number)) {
4641
+    SERIAL_ERROR_START;
4642
+    SERIAL_ERRORLNPGM(MSG_ERR_PROTECTED_PIN);
4643
+    return;
4644
+  }
4638 4645
 
4639 4646
   pinMode(pin_number, OUTPUT);
4640 4647
   digitalWrite(pin_number, pin_status);
@@ -4655,6 +4662,66 @@ inline void gcode_M42() {
4655 4662
   #endif
4656 4663
 }
4657 4664
 
4665
+#if ENABLED(PINS_DEBUGGING)
4666
+
4667
+  #include "pinsDebug.h"
4668
+
4669
+  /**
4670
+   * M43: Pin report and debug
4671
+   *
4672
+   *      P<pin> Will read/watch a single pin
4673
+   *      W      Watch pins for changes until reboot
4674
+   */
4675
+  inline void gcode_M43() {
4676
+    int first_pin = 0, last_pin = DIO_COUNT - 1;
4677
+    if (code_seen('P')) {
4678
+      first_pin = last_pin = code_value_byte();
4679
+      if (first_pin > DIO_COUNT - 1) return;
4680
+    }
4681
+
4682
+    if (code_seen('W') && code_value_bool()) { // watch digital pins
4683
+      byte pin_state[last_pin - first_pin + 1];
4684
+      for (int8_t pin = first_pin; pin <= last_pin; pin++) {
4685
+        if (pin_is_protected(pin)) continue;
4686
+        pinMode(pin, INPUT_PULLUP);
4687
+        // if (IS_ANALOG(pin))
4688
+        //   pin_state[pin - first_pin] = analogRead(pin - analogInputToDigitalPin(0)); // int16_t pin_state[...]
4689
+        // else
4690
+          pin_state[pin - first_pin] = digitalRead(pin);
4691
+      }
4692
+
4693
+      #if ENABLED(EMERGENCY_PARSER)
4694
+        wait_for_user = true;
4695
+      #endif
4696
+
4697
+      for(;;) {
4698
+        for (int8_t pin = first_pin; pin <= last_pin; pin++) {
4699
+          if (pin_is_protected(pin)) continue;
4700
+          byte val;
4701
+          // if (IS_ANALOG(pin))
4702
+          //   val = analogRead(pin - analogInputToDigitalPin(0)); // int16_t val
4703
+          // else
4704
+            val = digitalRead(pin);
4705
+          if (val != pin_state[pin - first_pin]) {
4706
+            report_pin_state(pin);
4707
+            pin_state[pin - first_pin] = val;
4708
+          }
4709
+        }
4710
+
4711
+        #if ENABLED(EMERGENCY_PARSER)
4712
+          if (!wait_for_user) break;
4713
+        #endif
4714
+
4715
+        safe_delay(500);
4716
+      }
4717
+    }
4718
+    else // single pins report
4719
+      for (int8_t pin = first_pin; pin <= last_pin; pin++)
4720
+        report_pin_state(pin);
4721
+  }
4722
+
4723
+#endif // PINS_DEBUGGING
4724
+
4658 4725
 #if ENABLED(Z_MIN_PROBE_REPEATABILITY_TEST)
4659 4726
 
4660 4727
   /**
@@ -5980,7 +6047,8 @@ inline void gcode_M206() {
5980 6047
 
5981 6048
   /**
5982 6049
    * M209: Enable automatic retract (M209 S1)
5983
-   *       detect if the slicer did not support G10/11: every normal extrude-only move will be classified as retract depending on the direction.
6050
+   *   For slicers that don't support G10/11, reversed extrude-only
6051
+   *   moves will be classified as retraction.
5984 6052
    */
5985 6053
   inline void gcode_M209() {
5986 6054
     if (code_seen('S')) {
@@ -6076,43 +6144,31 @@ inline void gcode_M221() {
6076 6144
  */
6077 6145
 inline void gcode_M226() {
6078 6146
   if (code_seen('P')) {
6079
-    int pin_number = code_value_int();
6080
-    int pin_state = code_seen('S') ? code_value_int() : -1; // required pin state - default is inverted
6081
-
6082
-    if (pin_state >= -1 && pin_state <= 1) {
6147
+    int pin_number = code_value_int(),
6148
+        pin_state = code_seen('S') ? code_value_int() : -1; // required pin state - default is inverted
6083 6149
 
6084
-      for (uint8_t i = 0; i < COUNT(sensitive_pins); i++) {
6085
-        if (sensitive_pins[i] == pin_number) {
6086
-          pin_number = -1;
6087
-          break;
6088
-        }
6089
-      }
6150
+    if (pin_state >= -1 && pin_state <= 1 && pin_number > -1 && !pin_is_protected(pin_number)) {
6090 6151
 
6091
-      if (pin_number > -1) {
6092
-        int target = LOW;
6152
+      int target = LOW;
6093 6153
 
6094
-        stepper.synchronize();
6095
-
6096
-        pinMode(pin_number, INPUT);
6097
-
6098
-        switch (pin_state) {
6099
-          case 1:
6100
-            target = HIGH;
6101
-            break;
6102
-
6103
-          case 0:
6104
-            target = LOW;
6105
-            break;
6154
+      stepper.synchronize();
6106 6155
 
6107
-          case -1:
6108
-            target = !digitalRead(pin_number);
6109
-            break;
6110
-        }
6156
+      pinMode(pin_number, INPUT);
6157
+      switch (pin_state) {
6158
+        case 1:
6159
+          target = HIGH;
6160
+          break;
6161
+        case 0:
6162
+          target = LOW;
6163
+          break;
6164
+        case -1:
6165
+          target = !digitalRead(pin_number);
6166
+          break;
6167
+      }
6111 6168
 
6112
-        while (digitalRead(pin_number) != target) idle();
6169
+      while (digitalRead(pin_number) != target) idle();
6113 6170
 
6114
-      } // pin_number > -1
6115
-    } // pin_state -1 0 1
6171
+    } // pin_state -1 0 1 && pin_number > -1
6116 6172
   } // code_seen('P')
6117 6173
 }
6118 6174
 
@@ -7628,90 +7684,87 @@ void process_next_command() {
7628 7684
 
7629 7685
     case 'M': switch (codenum) {
7630 7686
       #if ENABLED(ULTIPANEL) || ENABLED(EMERGENCY_PARSER)
7631
-        case 0: // M0 - Unconditional stop - Wait for user button press on LCD
7632
-        case 1: // M1 - Conditional stop - Wait for user button press on LCD
7687
+        case 0: // M0: Unconditional stop - Wait for user button press on LCD
7688
+        case 1: // M1: Conditional stop - Wait for user button press on LCD
7633 7689
           gcode_M0_M1();
7634 7690
           break;
7635 7691
       #endif // ULTIPANEL
7636 7692
 
7637
-      case 17:
7693
+      case 17: // M17: Enable all stepper motors
7638 7694
         gcode_M17();
7639 7695
         break;
7640 7696
 
7641 7697
       #if ENABLED(SDSUPPORT)
7642
-        case 20: // M20 - list SD card
7698
+        case 20: // M20: list SD card
7643 7699
           gcode_M20(); break;
7644
-        case 21: // M21 - init SD card
7700
+        case 21: // M21: init SD card
7645 7701
           gcode_M21(); break;
7646
-        case 22: //M22 - release SD card
7702
+        case 22: // M22: release SD card
7647 7703
           gcode_M22(); break;
7648
-        case 23: //M23 - Select file
7704
+        case 23: // M23: Select file
7649 7705
           gcode_M23(); break;
7650
-        case 24: //M24 - Start SD print
7706
+        case 24: // M24: Start SD print
7651 7707
           gcode_M24(); break;
7652
-        case 25: //M25 - Pause SD print
7708
+        case 25: // M25: Pause SD print
7653 7709
           gcode_M25(); break;
7654
-        case 26: //M26 - Set SD index
7710
+        case 26: // M26: Set SD index
7655 7711
           gcode_M26(); break;
7656
-        case 27: //M27 - Get SD status
7712
+        case 27: // M27: Get SD status
7657 7713
           gcode_M27(); break;
7658
-        case 28: //M28 - Start SD write
7714
+        case 28: // M28: Start SD write
7659 7715
           gcode_M28(); break;
7660
-        case 29: //M29 - Stop SD write
7716
+        case 29: // M29: Stop SD write
7661 7717
           gcode_M29(); break;
7662
-        case 30: //M30 <filename> Delete File
7718
+        case 30: // M30 <filename> Delete File
7663 7719
           gcode_M30(); break;
7664
-        case 32: //M32 - Select file and start SD print
7720
+        case 32: // M32: Select file and start SD print
7665 7721
           gcode_M32(); break;
7666 7722
 
7667 7723
         #if ENABLED(LONG_FILENAME_HOST_SUPPORT)
7668
-          case 33: //M33 - Get the long full path to a file or folder
7724
+          case 33: // M33: Get the long full path to a file or folder
7669 7725
             gcode_M33(); break;
7670
-        #endif // LONG_FILENAME_HOST_SUPPORT
7726
+        #endif
7671 7727
 
7672
-        case 928: //M928 - Start SD write
7728
+        case 928: // M928: Start SD write
7673 7729
           gcode_M928(); break;
7674 7730
       #endif //SDSUPPORT
7675 7731
 
7676
-      case 31: //M31 take time since the start of the SD print or an M109 command
7677
-        gcode_M31();
7678
-        break;
7732
+      case 31: // M31: Report time since the start of SD print or last M109
7733
+        gcode_M31(); break;
7679 7734
 
7680
-      case 42: //M42 -Change pin status via gcode
7681
-        gcode_M42();
7682
-        break;
7735
+      case 42: // M42: Change pin state
7736
+        gcode_M42(); break;
7737
+
7738
+      #if ENABLED(PINS_DEBUGGING)
7739
+        case 43: // M43: Read pin state
7740
+          gcode_M43(); break;
7741
+      #endif
7683 7742
 
7684 7743
       #if ENABLED(Z_MIN_PROBE_REPEATABILITY_TEST)
7685
-        case 48: // M48 Z probe repeatability
7744
+        case 48: // M48: Z probe repeatability test
7686 7745
           gcode_M48();
7687 7746
           break;
7688 7747
       #endif // Z_MIN_PROBE_REPEATABILITY_TEST
7689 7748
 
7690
-      case 75: // Start print timer
7691
-        gcode_M75();
7692
-        break;
7693
-
7694
-      case 76: // Pause print timer
7695
-        gcode_M76();
7696
-        break;
7697
-
7698
-      case 77: // Stop print timer
7699
-        gcode_M77();
7700
-        break;
7749
+      case 75: // M75: Start print timer
7750
+        gcode_M75(); break;
7751
+      case 76: // M76: Pause print timer
7752
+        gcode_M76(); break;
7753
+      case 77: // M77: Stop print timer
7754
+        gcode_M77(); break;
7701 7755
 
7702 7756
       #if ENABLED(PRINTCOUNTER)
7703
-        case 78: // Show print statistics
7704
-          gcode_M78();
7705
-          break;
7757
+        case 78: // M78: Show print statistics
7758
+          gcode_M78(); break;
7706 7759
       #endif
7707 7760
 
7708 7761
       #if ENABLED(M100_FREE_MEMORY_WATCHER)
7709
-        case 100:
7762
+        case 100: // M100: Free Memory Report
7710 7763
           gcode_M100();
7711 7764
           break;
7712 7765
       #endif
7713 7766
 
7714
-      case 104: // M104
7767
+      case 104: // M104: Set hot end temperature
7715 7768
         gcode_M104();
7716 7769
         break;
7717 7770
 
@@ -7745,21 +7798,21 @@ void process_next_command() {
7745 7798
           break;
7746 7799
       #endif
7747 7800
 
7748
-      case 140: // M140: Set bed temp
7801
+      case 140: // M140: Set bed temperature
7749 7802
         gcode_M140();
7750 7803
         break;
7751 7804
 
7752
-      case 105: // M105: Read current temperature
7805
+      case 105: // M105: Report current temperature
7753 7806
         gcode_M105();
7754 7807
         KEEPALIVE_STATE(NOT_BUSY);
7755 7808
         return; // "ok" already printed
7756 7809
 
7757
-      case 109: // M109: Wait for temperature
7810
+      case 109: // M109: Wait for hotend temperature to reach target
7758 7811
         gcode_M109();
7759 7812
         break;
7760 7813
 
7761 7814
       #if HAS_TEMP_BED
7762
-        case 190: // M190: Wait for bed heater to reach target
7815
+        case 190: // M190: Wait for bed temperature to reach target
7763 7816
           gcode_M190();
7764 7817
           break;
7765 7818
       #endif // HAS_TEMP_BED
@@ -7807,17 +7860,17 @@ void process_next_command() {
7807 7860
         gcode_M81();
7808 7861
         break;
7809 7862
 
7810
-      case 82:
7863
+      case 82: // M83: Set E axis normal mode (same as other axes)
7811 7864
         gcode_M82();
7812 7865
         break;
7813
-      case 83:
7866
+      case 83: // M83: Set E axis relative mode
7814 7867
         gcode_M83();
7815 7868
         break;
7816
-      case 18: // (for compatibility)
7817
-      case 84: // M84
7869
+      case 18: // M18 => M84
7870
+      case 84: // M84: Disable all steppers or set timeout
7818 7871
         gcode_M18_M84();
7819 7872
         break;
7820
-      case 85: // M85
7873
+      case 85: // M85: Set inactivity stepper shutdown timeout
7821 7874
         gcode_M85();
7822 7875
         break;
7823 7876
       case 92: // M92: Set the steps-per-unit for one or more axes
@@ -7851,51 +7904,51 @@ void process_next_command() {
7851 7904
       #endif
7852 7905
 
7853 7906
       #if ENABLED(TEMPERATURE_UNITS_SUPPORT)
7854
-        case 149:
7907
+        case 149: // M149: Set temperature units
7855 7908
           gcode_M149();
7856 7909
           break;
7857 7910
       #endif
7858 7911
 
7859 7912
       #if ENABLED(BLINKM)
7860 7913
 
7861
-        case 150: // M150
7914
+        case 150: // M150: Set the BlinkM LCD color
7862 7915
           gcode_M150();
7863 7916
           break;
7864 7917
 
7865
-      #endif //BLINKM
7918
+      #endif // BLINKM
7866 7919
 
7867 7920
       #if ENABLED(EXPERIMENTAL_I2CBUS)
7868 7921
 
7869
-        case 155:
7922
+        case 155: // M155: Send data to an i2c slave
7870 7923
           gcode_M155();
7871 7924
           break;
7872 7925
 
7873
-        case 156:
7926
+        case 156: // M156: Request data from an i2c slave
7874 7927
           gcode_M156();
7875 7928
           break;
7876 7929
 
7877 7930
       #endif //EXPERIMENTAL_I2CBUS
7878 7931
 
7879 7932
       #if ENABLED(MIXING_EXTRUDER)
7880
-        case 163: // M163 S<int> P<float> set weight for a mixing extruder
7933
+        case 163: // M163: Set a component weight for mixing extruder
7881 7934
           gcode_M163();
7882 7935
           break;
7883 7936
         #if MIXING_VIRTUAL_TOOLS > 1
7884
-          case 164: // M164 S<int> save current mix as a virtual extruder
7937
+          case 164: // M164: Save current mix as a virtual extruder
7885 7938
             gcode_M164();
7886 7939
             break;
7887 7940
         #endif
7888 7941
         #if ENABLED(DIRECT_MIXING_IN_G1)
7889
-          case 165: // M165 [ABCDHI]<float> set multiple mix weights
7942
+          case 165: // M165: Set multiple mix weights
7890 7943
             gcode_M165();
7891 7944
             break;
7892 7945
         #endif
7893 7946
       #endif
7894 7947
 
7895
-      case 200: // M200 D<diameter> Set filament diameter and set E axis units to cubic. (Use S0 to revert to linear units.)
7948
+      case 200: // M200: Set filament diameter, E to cubic units
7896 7949
         gcode_M200();
7897 7950
         break;
7898
-      case 201: // M201
7951
+      case 201: // M201: Set max acceleration for print moves (units/s^2)
7899 7952
         gcode_M201();
7900 7953
         break;
7901 7954
       #if 0 // Not used for Sprinter/grbl gen6
@@ -7903,180 +7956,180 @@ void process_next_command() {
7903 7956
           gcode_M202();
7904 7957
           break;
7905 7958
       #endif
7906
-      case 203: // M203 max feedrate units/sec
7959
+      case 203: // M203: Set max feedrate (units/sec)
7907 7960
         gcode_M203();
7908 7961
         break;
7909
-      case 204: // M204 acclereration S normal moves T filmanent only moves
7962
+      case 204: // M204: Set acceleration
7910 7963
         gcode_M204();
7911 7964
         break;
7912
-      case 205: //M205 advanced settings:  minimum travel speed S=while printing T=travel only,  B=minimum segment time X= maximum xy jerk, Z=maximum Z jerk
7965
+      case 205: //M205: Set advanced settings
7913 7966
         gcode_M205();
7914 7967
         break;
7915
-      case 206: // M206 additional homing offset
7968
+      case 206: // M206: Set home offsets
7916 7969
         gcode_M206();
7917 7970
         break;
7918 7971
 
7919 7972
       #if ENABLED(DELTA)
7920
-        case 665: // M665 set delta configurations L<diagonal_rod> R<delta_radius> S<segments_per_sec>
7973
+        case 665: // M665: Set delta configurations
7921 7974
           gcode_M665();
7922 7975
           break;
7923 7976
       #endif
7924 7977
 
7925 7978
       #if ENABLED(DELTA) || ENABLED(Z_DUAL_ENDSTOPS)
7926
-        case 666: // M666 set delta / dual endstop adjustment
7979
+        case 666: // M666: Set delta or dual endstop adjustment
7927 7980
           gcode_M666();
7928 7981
           break;
7929 7982
       #endif
7930 7983
 
7931 7984
       #if ENABLED(FWRETRACT)
7932
-        case 207: // M207 - Set Retract Length: S<length>, Feedrate: F<units/min>, and Z lift: Z<distance>
7985
+        case 207: // M207: Set Retract Length, Feedrate, and Z lift
7933 7986
           gcode_M207();
7934 7987
           break;
7935
-        case 208: // M208 - Set Recover (unretract) Additional (!) Length: S<length> and Feedrate: F<units/min>
7988
+        case 208: // M208: Set Recover (unretract) Additional Length and Feedrate
7936 7989
           gcode_M208();
7937 7990
           break;
7938
-        case 209: // M209 - Turn Automatic Retract Detection on/off: S<bool> (For slicers that don't support G10/11). Every normal extrude-only move will be classified as retract depending on the direction.
7991
+        case 209: // M209: Turn Automatic Retract Detection on/off
7939 7992
           gcode_M209();
7940 7993
           break;
7941 7994
       #endif // FWRETRACT
7942 7995
 
7943
-      case 211: // M211 - Enable, Disable, and/or Report software endstops
7996
+      case 211: // M211: Enable, Disable, and/or Report software endstops
7944 7997
         gcode_M211();
7945 7998
         break;
7946 7999
 
7947 8000
       #if HOTENDS > 1
7948
-        case 218: // M218 - Set a tool offset: T<index> X<offset> Y<offset>
8001
+        case 218: // M218: Set a tool offset
7949 8002
           gcode_M218();
7950 8003
           break;
7951 8004
       #endif
7952 8005
 
7953
-      case 220: // M220 - Set Feedrate Percentage: S<percent> ("FR" on your LCD)
8006
+      case 220: // M220: Set Feedrate Percentage: S<percent> ("FR" on your LCD)
7954 8007
         gcode_M220();
7955 8008
         break;
7956 8009
 
7957
-      case 221: // M221 - Set Flow Percentage: S<percent>
8010
+      case 221: // M221: Set Flow Percentage
7958 8011
         gcode_M221();
7959 8012
         break;
7960 8013
 
7961
-      case 226: // M226 P<pin number> S<pin state>- Wait until the specified pin reaches the state required
8014
+      case 226: // M226: Wait until a pin reaches a state
7962 8015
         gcode_M226();
7963 8016
         break;
7964 8017
 
7965 8018
       #if HAS_SERVOS
7966
-        case 280: // M280 - set servo position absolute. P: servo index, S: angle or microseconds
8019
+        case 280: // M280: Set servo position absolute
7967 8020
           gcode_M280();
7968 8021
           break;
7969 8022
       #endif // HAS_SERVOS
7970 8023
 
7971 8024
       #if HAS_BUZZER
7972
-        case 300: // M300 - Play beep tone
8025
+        case 300: // M300: Play beep tone
7973 8026
           gcode_M300();
7974 8027
           break;
7975 8028
       #endif // HAS_BUZZER
7976 8029
 
7977 8030
       #if ENABLED(PIDTEMP)
7978
-        case 301: // M301
8031
+        case 301: // M301: Set hotend PID parameters
7979 8032
           gcode_M301();
7980 8033
           break;
7981 8034
       #endif // PIDTEMP
7982 8035
 
7983 8036
       #if ENABLED(PIDTEMPBED)
7984
-        case 304: // M304
8037
+        case 304: // M304: Set bed PID parameters
7985 8038
           gcode_M304();
7986 8039
           break;
7987 8040
       #endif // PIDTEMPBED
7988 8041
 
7989 8042
       #if defined(CHDK) || HAS_PHOTOGRAPH
7990
-        case 240: // M240  Triggers a camera by emulating a Canon RC-1 : http://www.doc-diy.net/photo/rc-1_hacked/
8043
+        case 240: // M240: Trigger a camera by emulating a Canon RC-1 : http://www.doc-diy.net/photo/rc-1_hacked/
7991 8044
           gcode_M240();
7992 8045
           break;
7993 8046
       #endif // CHDK || PHOTOGRAPH_PIN
7994 8047
 
7995 8048
       #if HAS_LCD_CONTRAST
7996
-        case 250: // M250  Set LCD contrast value: C<value> (value 0..63)
8049
+        case 250: // M250: Set LCD contrast
7997 8050
           gcode_M250();
7998 8051
           break;
7999 8052
       #endif // HAS_LCD_CONTRAST
8000 8053
 
8001 8054
       #if ENABLED(PREVENT_COLD_EXTRUSION)
8002
-        case 302: // allow cold extrudes, or set the minimum extrude temperature
8055
+        case 302: // M302: Allow cold extrudes (set the minimum extrude temperature)
8003 8056
           gcode_M302();
8004 8057
           break;
8005 8058
       #endif // PREVENT_COLD_EXTRUSION
8006 8059
 
8007
-      case 303: // M303 PID autotune
8060
+      case 303: // M303: PID autotune
8008 8061
         gcode_M303();
8009 8062
         break;
8010 8063
 
8011 8064
       #if ENABLED(MORGAN_SCARA)
8012
-        case 360:  // M360 SCARA Theta pos1
8065
+        case 360:  // M360: SCARA Theta pos1
8013 8066
           if (gcode_M360()) return;
8014 8067
           break;
8015
-        case 361:  // M361 SCARA Theta pos2
8068
+        case 361:  // M361: SCARA Theta pos2
8016 8069
           if (gcode_M361()) return;
8017 8070
           break;
8018
-        case 362:  // M362 SCARA Psi pos1
8071
+        case 362:  // M362: SCARA Psi pos1
8019 8072
           if (gcode_M362()) return;
8020 8073
           break;
8021
-        case 363:  // M363 SCARA Psi pos2
8074
+        case 363:  // M363: SCARA Psi pos2
8022 8075
           if (gcode_M363()) return;
8023 8076
           break;
8024
-        case 364:  // M364 SCARA Psi pos3 (90 deg to Theta)
8077
+        case 364:  // M364: SCARA Psi pos3 (90 deg to Theta)
8025 8078
           if (gcode_M364()) return;
8026 8079
           break;
8027 8080
       #endif // SCARA
8028 8081
 
8029
-      case 400: // M400 finish all moves
8082
+      case 400: // M400: Finish all moves
8030 8083
         gcode_M400();
8031 8084
         break;
8032 8085
 
8033 8086
       #if HAS_BED_PROBE
8034
-        case 401:
8087
+        case 401: // M401: Deploy probe
8035 8088
           gcode_M401();
8036 8089
           break;
8037
-        case 402:
8090
+        case 402: // M402: Stow probe
8038 8091
           gcode_M402();
8039 8092
           break;
8040 8093
       #endif // HAS_BED_PROBE
8041 8094
 
8042 8095
       #if ENABLED(FILAMENT_WIDTH_SENSOR)
8043
-        case 404:  //M404 Enter the nominal filament width (3mm, 1.75mm ) N<3.0> or display nominal filament width
8096
+        case 404:  // M404: Enter the nominal filament width (3mm, 1.75mm ) N<3.0> or display nominal filament width
8044 8097
           gcode_M404();
8045 8098
           break;
8046
-        case 405:  //M405 Turn on filament sensor for control
8099
+        case 405:  // M405: Turn on filament sensor for control
8047 8100
           gcode_M405();
8048 8101
           break;
8049
-        case 406:  //M406 Turn off filament sensor for control
8102
+        case 406:  // M406: Turn off filament sensor for control
8050 8103
           gcode_M406();
8051 8104
           break;
8052
-        case 407:   //M407 Display measured filament diameter
8105
+        case 407:   // M407: Display measured filament diameter
8053 8106
           gcode_M407();
8054 8107
           break;
8055 8108
       #endif // ENABLED(FILAMENT_WIDTH_SENSOR)
8056 8109
 
8057 8110
       #if ENABLED(MESH_BED_LEVELING)
8058
-        case 420: // M420 Enable/Disable Mesh Bed Leveling
8111
+        case 420: // M420: Enable/Disable Mesh Bed Leveling
8059 8112
           gcode_M420();
8060 8113
           break;
8061
-        case 421: // M421 Set a Mesh Bed Leveling Z coordinate
8114
+        case 421: // M421: Set a Mesh Bed Leveling Z coordinate
8062 8115
           gcode_M421();
8063 8116
           break;
8064 8117
       #endif
8065 8118
 
8066
-      case 428: // M428 Apply current_position to home_offset
8119
+      case 428: // M428: Apply current_position to home_offset
8067 8120
         gcode_M428();
8068 8121
         break;
8069 8122
 
8070
-      case 500: // M500 Store settings in EEPROM
8123
+      case 500: // M500: Store settings in EEPROM
8071 8124
         gcode_M500();
8072 8125
         break;
8073
-      case 501: // M501 Read settings from EEPROM
8126
+      case 501: // M501: Read settings from EEPROM
8074 8127
         gcode_M501();
8075 8128
         break;
8076
-      case 502: // M502 Revert to default settings
8129
+      case 502: // M502: Revert to default settings
8077 8130
         gcode_M502();
8078 8131
         break;
8079
-      case 503: // M503 print settings currently in memory
8132
+      case 503: // M503: print settings currently in memory
8080 8133
         gcode_M503();
8081 8134
         break;
8082 8135
 
@@ -8087,46 +8140,46 @@ void process_next_command() {
8087 8140
       #endif
8088 8141
 
8089 8142
       #if HAS_BED_PROBE
8090
-        case 851: // Set Z Probe Z Offset
8143
+        case 851: // M851: Set Z Probe Z Offset
8091 8144
           gcode_M851();
8092 8145
           break;
8093 8146
       #endif // HAS_BED_PROBE
8094 8147
 
8095 8148
       #if ENABLED(FILAMENT_CHANGE_FEATURE)
8096
-        case 600: //Pause for filament change X[pos] Y[pos] Z[relative lift] E[initial retract] L[later retract distance for removal]
8149
+        case 600: // M600: Pause for filament change
8097 8150
           gcode_M600();
8098 8151
           break;
8099 8152
       #endif // FILAMENT_CHANGE_FEATURE
8100 8153
 
8101 8154
       #if ENABLED(DUAL_X_CARRIAGE)
8102
-        case 605:
8155
+        case 605: // M605: Set Dual X Carriage movement mode
8103 8156
           gcode_M605();
8104 8157
           break;
8105 8158
       #endif // DUAL_X_CARRIAGE
8106 8159
 
8107 8160
       #if ENABLED(LIN_ADVANCE)
8108
-        case 905: // M905 Set advance factor.
8161
+        case 905: // M905: Set advance K factor.
8109 8162
           gcode_M905();
8110 8163
           break;
8111 8164
       #endif
8112 8165
 
8113
-      case 907: // M907 Set digital trimpot motor current using axis codes.
8166
+      case 907: // M907: Set digital trimpot motor current using axis codes.
8114 8167
         gcode_M907();
8115 8168
         break;
8116 8169
 
8117 8170
       #if HAS_DIGIPOTSS || ENABLED(DAC_STEPPER_CURRENT)
8118 8171
 
8119
-        case 908: // M908 Control digital trimpot directly.
8172
+        case 908: // M908: Control digital trimpot directly.
8120 8173
           gcode_M908();
8121 8174
           break;
8122 8175
 
8123 8176
         #if ENABLED(DAC_STEPPER_CURRENT) // As with Printrbot RevF
8124 8177
 
8125
-          case 909: // M909 Print digipot/DAC current value
8178
+          case 909: // M909: Print digipot/DAC current value
8126 8179
             gcode_M909();
8127 8180
             break;
8128 8181
 
8129
-          case 910: // M910 Commit digipot/DAC value to external EEPROM
8182
+          case 910: // M910: Commit digipot/DAC value to external EEPROM
8130 8183
             gcode_M910();
8131 8184
             break;
8132 8185
 
@@ -8136,11 +8189,11 @@ void process_next_command() {
8136 8189
 
8137 8190
       #if HAS_MICROSTEPS
8138 8191
 
8139
-        case 350: // M350 Set microstepping mode. Warning: Steps per unit remains unchanged. S code sets stepping mode for all drivers.
8192
+        case 350: // M350: Set microstepping mode. Warning: Steps per unit remains unchanged. S code sets stepping mode for all drivers.
8140 8193
           gcode_M350();
8141 8194
           break;
8142 8195
 
8143
-        case 351: // M351 Toggle MS1 MS2 pins directly, S# determines MS1 or MS2, X# sets the pin high/low.
8196
+        case 351: // M351: Toggle MS1 MS2 pins directly, S# determines MS1 or MS2, X# sets the pin high/low.
8144 8197
           gcode_M351();
8145 8198
           break;
8146 8199
 

+ 5
- 0
Marlin/example_configurations/Cartesio/Configuration_adv.h Целия файл

@@ -810,4 +810,9 @@
810 810
 //#define EXPERIMENTAL_I2CBUS
811 811
 #define I2C_SLAVE_ADDRESS  0 // Set a value from 8 to 127 to act as a slave
812 812
 
813
+/**
814
+ * Add M43 command for pins info and testing
815
+ */
816
+//#define PINS_DEBUGGING
817
+
813 818
 #endif // CONFIGURATION_ADV_H

+ 5
- 0
Marlin/example_configurations/Felix/Configuration_adv.h Целия файл

@@ -810,4 +810,9 @@
810 810
 //#define EXPERIMENTAL_I2CBUS
811 811
 #define I2C_SLAVE_ADDRESS  0 // Set a value from 8 to 127 to act as a slave
812 812
 
813
+/**
814
+ * Add M43 command for pins info and testing
815
+ */
816
+//#define PINS_DEBUGGING
817
+
813 818
 #endif // CONFIGURATION_ADV_H

+ 5
- 0
Marlin/example_configurations/Hephestos/Configuration_adv.h Целия файл

@@ -810,4 +810,9 @@
810 810
 //#define EXPERIMENTAL_I2CBUS
811 811
 #define I2C_SLAVE_ADDRESS  0 // Set a value from 8 to 127 to act as a slave
812 812
 
813
+/**
814
+ * Add M43 command for pins info and testing
815
+ */
816
+//#define PINS_DEBUGGING
817
+
813 818
 #endif // CONFIGURATION_ADV_H

+ 5
- 0
Marlin/example_configurations/Hephestos_2/Configuration_adv.h Целия файл

@@ -810,4 +810,9 @@
810 810
 //#define EXPERIMENTAL_I2CBUS
811 811
 #define I2C_SLAVE_ADDRESS  0 // Set a value from 8 to 127 to act as a slave
812 812
 
813
+/**
814
+ * Add M43 command for pins info and testing
815
+ */
816
+//#define PINS_DEBUGGING
817
+
813 818
 #endif // CONFIGURATION_ADV_H

+ 5
- 0
Marlin/example_configurations/K8200/Configuration_adv.h Целия файл

@@ -816,4 +816,9 @@
816 816
 //#define EXPERIMENTAL_I2CBUS
817 817
 #define I2C_SLAVE_ADDRESS  0 // Set a value from 8 to 127 to act as a slave
818 818
 
819
+/**
820
+ * Add M43 command for pins info and testing
821
+ */
822
+//#define PINS_DEBUGGING
823
+
819 824
 #endif // CONFIGURATION_ADV_H

+ 5
- 0
Marlin/example_configurations/K8400/Configuration_adv.h Целия файл

@@ -810,4 +810,9 @@
810 810
 //#define EXPERIMENTAL_I2CBUS
811 811
 #define I2C_SLAVE_ADDRESS  0 // Set a value from 8 to 127 to act as a slave
812 812
 
813
+/**
814
+ * Add M43 command for pins info and testing
815
+ */
816
+//#define PINS_DEBUGGING
817
+
813 818
 #endif // CONFIGURATION_ADV_H

+ 5
- 0
Marlin/example_configurations/RigidBot/Configuration_adv.h Целия файл

@@ -810,4 +810,9 @@
810 810
 //#define EXPERIMENTAL_I2CBUS
811 811
 #define I2C_SLAVE_ADDRESS  0 // Set a value from 8 to 127 to act as a slave
812 812
 
813
+/**
814
+ * Add M43 command for pins info and testing
815
+ */
816
+//#define PINS_DEBUGGING
817
+
813 818
 #endif // CONFIGURATION_ADV_H

+ 5
- 0
Marlin/example_configurations/SCARA/Configuration_adv.h Целия файл

@@ -810,4 +810,9 @@
810 810
 //#define EXPERIMENTAL_I2CBUS
811 811
 #define I2C_SLAVE_ADDRESS  0 // Set a value from 8 to 127 to act as a slave
812 812
 
813
+/**
814
+ * Add M43 command for pins info and testing
815
+ */
816
+//#define PINS_DEBUGGING
817
+
813 818
 #endif // CONFIGURATION_ADV_H

+ 5
- 0
Marlin/example_configurations/TAZ4/Configuration_adv.h Целия файл

@@ -818,4 +818,9 @@
818 818
 //#define EXPERIMENTAL_I2CBUS
819 819
 #define I2C_SLAVE_ADDRESS  0 // Set a value from 8 to 127 to act as a slave
820 820
 
821
+/**
822
+ * Add M43 command for pins info and testing
823
+ */
824
+//#define PINS_DEBUGGING
825
+
821 826
 #endif // CONFIGURATION_ADV_H

+ 5
- 0
Marlin/example_configurations/WITBOX/Configuration_adv.h Целия файл

@@ -810,4 +810,9 @@
810 810
 //#define EXPERIMENTAL_I2CBUS
811 811
 #define I2C_SLAVE_ADDRESS  0 // Set a value from 8 to 127 to act as a slave
812 812
 
813
+/**
814
+ * Add M43 command for pins info and testing
815
+ */
816
+//#define PINS_DEBUGGING
817
+
813 818
 #endif // CONFIGURATION_ADV_H

+ 5
- 0
Marlin/example_configurations/delta/biv2.5/Configuration_adv.h Целия файл

@@ -812,4 +812,9 @@
812 812
 //#define EXPERIMENTAL_I2CBUS
813 813
 #define I2C_SLAVE_ADDRESS  0 // Set a value from 8 to 127 to act as a slave
814 814
 
815
+/**
816
+ * Add M43 command for pins info and testing
817
+ */
818
+//#define PINS_DEBUGGING
819
+
815 820
 #endif // CONFIGURATION_ADV_H

+ 5
- 0
Marlin/example_configurations/delta/generic/Configuration_adv.h Целия файл

@@ -812,4 +812,9 @@
812 812
 //#define EXPERIMENTAL_I2CBUS
813 813
 #define I2C_SLAVE_ADDRESS  0 // Set a value from 8 to 127 to act as a slave
814 814
 
815
+/**
816
+ * Add M43 command for pins info and testing
817
+ */
818
+//#define PINS_DEBUGGING
819
+
815 820
 #endif // CONFIGURATION_ADV_H

+ 5
- 0
Marlin/example_configurations/delta/kossel_mini/Configuration_adv.h Целия файл

@@ -812,4 +812,9 @@
812 812
 //#define EXPERIMENTAL_I2CBUS
813 813
 #define I2C_SLAVE_ADDRESS  0 // Set a value from 8 to 127 to act as a slave
814 814
 
815
+/**
816
+ * Add M43 command for pins info and testing
817
+ */
818
+//#define PINS_DEBUGGING
819
+
815 820
 #endif // CONFIGURATION_ADV_H

+ 5
- 0
Marlin/example_configurations/delta/kossel_pro/Configuration_adv.h Целия файл

@@ -817,4 +817,9 @@
817 817
 //#define EXPERIMENTAL_I2CBUS
818 818
 #define I2C_SLAVE_ADDRESS  0 // Set a value from 8 to 127 to act as a slave
819 819
 
820
+/**
821
+ * Add M43 command for pins info and testing
822
+ */
823
+//#define PINS_DEBUGGING
824
+
820 825
 #endif // CONFIGURATION_ADV_H

+ 5
- 0
Marlin/example_configurations/delta/kossel_xl/Configuration_adv.h Целия файл

@@ -812,4 +812,9 @@
812 812
 //#define EXPERIMENTAL_I2CBUS
813 813
 #define I2C_SLAVE_ADDRESS  0 // Set a value from 8 to 127 to act as a slave
814 814
 
815
+/**
816
+ * Add M43 command for pins info and testing
817
+ */
818
+//#define PINS_DEBUGGING
819
+
815 820
 #endif // CONFIGURATION_ADV_H

+ 5
- 0
Marlin/example_configurations/makibox/Configuration_adv.h Целия файл

@@ -810,4 +810,9 @@
810 810
 //#define EXPERIMENTAL_I2CBUS
811 811
 #define I2C_SLAVE_ADDRESS  0 // Set a value from 8 to 127 to act as a slave
812 812
 
813
+/**
814
+ * Add M43 command for pins info and testing
815
+ */
816
+//#define PINS_DEBUGGING
817
+
813 818
 #endif // CONFIGURATION_ADV_H

+ 5
- 0
Marlin/example_configurations/tvrrug/Round2/Configuration_adv.h Целия файл

@@ -810,4 +810,9 @@
810 810
 //#define EXPERIMENTAL_I2CBUS
811 811
 #define I2C_SLAVE_ADDRESS  0 // Set a value from 8 to 127 to act as a slave
812 812
 
813
+/**
814
+ * Add M43 command for pins info and testing
815
+ */
816
+//#define PINS_DEBUGGING
817
+
813 818
 #endif // CONFIGURATION_ADV_H

+ 0
- 2
Marlin/fastio.h Целия файл

@@ -275,8 +275,6 @@
275 275
   #define DIO21_DDR   DDRC
276 276
   #define DIO21_PWM   NULL
277 277
 
278
-
279
-
280 278
   #undef PB0
281 279
   #define PB0_PIN     PINB0
282 280
   #define PB0_RPORT   PINB

+ 20
- 3
Marlin/pins.h Целия файл

@@ -230,6 +230,9 @@
230 230
 #ifndef HEATER_3_PIN
231 231
   #define HEATER_3_PIN -1
232 232
 #endif
233
+#ifndef HEATER_4_PIN
234
+  #define HEATER_4_PIN -1
235
+#endif
233 236
 #ifndef HEATER_BED_PIN
234 237
   #define HEATER_BED_PIN -1
235 238
 #endif
@@ -273,13 +276,14 @@
273 276
 #endif
274 277
 
275 278
 // Marlin needs to account for pins that equal -1
276
-#define marlinAnalogInputToDigitalPin(p) ((p) == -1 ? -1 : (p) + 0xA0)
279
+#define marlinAnalogInputToDigitalPin(p) ((p) == -1 ? -1 : analogInputToDigitalPin(p))
277 280
 
278 281
 // List of pins which to ignore when asked to change by gcode, 0 and 1 are RX and TX, do not mess with those!
279 282
 #define _E0_PINS E0_STEP_PIN, E0_DIR_PIN, E0_ENABLE_PIN, E0_MS1_PIN, E0_MS2_PIN,
280 283
 #define _E1_PINS
281 284
 #define _E2_PINS
282 285
 #define _E3_PINS
286
+#define _E4_PINS
283 287
 
284 288
 #if EXTRUDERS > 1
285 289
   #undef _E1_PINS
@@ -290,6 +294,10 @@
290 294
     #if EXTRUDERS > 3
291 295
       #undef _E3_PINS
292 296
       #define _E3_PINS E3_STEP_PIN, E3_DIR_PIN, E3_ENABLE_PIN,
297
+      #if EXTRUDERS > 4
298
+        #undef _E4_PINS
299
+        #define _E4_PINS E4_STEP_PIN, E4_DIR_PIN, E4_ENABLE_PIN,
300
+      #endif
293 301
     #endif
294 302
   #endif
295 303
 #endif
@@ -298,6 +306,7 @@
298 306
 #define _H1_PINS
299 307
 #define _H2_PINS
300 308
 #define _H3_PINS
309
+#define _H4_PINS
301 310
 
302 311
 #if HOTENDS > 1
303 312
   #undef _H1_PINS
@@ -308,6 +317,10 @@
308 317
     #if HOTENDS > 3
309 318
       #undef _H3_PINS
310 319
       #define _H3_PINS HEATER_3_PIN, EXTRUDER_3_AUTO_FAN_PIN, marlinAnalogInputToDigitalPin(TEMP_3_PIN),
320
+      #if HOTENDS > 4
321
+        #undef _H4_PINS
322
+        #define _H4_PINS HEATER_4_PIN, marlinAnalogInputToDigitalPin(TEMP_4_PIN),
323
+      #endif
311 324
     #endif
312 325
   #endif
313 326
 #elif ENABLED(MIXING_EXTRUDER)
@@ -319,6 +332,10 @@
319 332
     #if MIXING_STEPPERS > 3
320 333
       #undef _E3_PINS
321 334
       #define _E3_PINS E3_STEP_PIN, E3_DIR_PIN, E3_ENABLE_PIN,
335
+      #if MIXING_STEPPERS > 4
336
+        #undef _E4_PINS
337
+        #define _E4_PINS E4_STEP_PIN, E4_DIR_PIN, E4_ENABLE_PIN,
338
+      #endif
322 339
     #endif
323 340
   #endif
324 341
 #endif
@@ -451,8 +468,8 @@
451 468
     Y_STEP_PIN, Y_DIR_PIN, Y_ENABLE_PIN, Y_MIN_PIN, Y_MAX_PIN, \
452 469
     Z_STEP_PIN, Z_DIR_PIN, Z_ENABLE_PIN, Z_MIN_PIN, Z_MAX_PIN, Z_MIN_PROBE_PIN, \
453 470
     PS_ON_PIN, HEATER_BED_PIN, FAN_PIN, FAN1_PIN, FAN2_PIN, CONTROLLERFAN_PIN, \
454
-    _E0_PINS _E1_PINS _E2_PINS _E3_PINS BED_PINS \
455
-    _H0_PINS _H1_PINS _H2_PINS _H3_PINS \
471
+    _E0_PINS _E1_PINS _E2_PINS _E3_PINS _E4_PINS BED_PINS \
472
+    _H0_PINS _H1_PINS _H2_PINS _H3_PINS _H4_PINS \
456 473
     _X2_PINS _Y2_PINS _Z2_PINS \
457 474
     X_MS1_PIN, X_MS2_PIN, Y_MS1_PIN, Y_MS2_PIN, Z_MS1_PIN, Z_MS2_PIN \
458 475
   }

+ 447
- 0
Marlin/pinsDebug.h Целия файл

@@ -0,0 +1,447 @@
1
+/**
2
+ * Marlin 3D Printer Firmware
3
+ * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
4
+ *
5
+ * Based on Sprinter and grbl.
6
+ * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
7
+ *
8
+ * This program is free software: you can redistribute it and/or modify
9
+ * it under the terms of the GNU General Public License as published by
10
+ * the Free Software Foundation, either version 3 of the License, or
11
+ * (at your option) any later version.
12
+ *
13
+ * This program is distributed in the hope that it will be useful,
14
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16
+ * GNU General Public License for more details.
17
+ *
18
+ * You should have received a copy of the GNU General Public License
19
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
20
+ *
21
+ */
22
+
23
+// How many DIO pins are defined?
24
+#if defined(DIO85_PIN)
25
+  #define DIO_COUNT 86
26
+#elif defined(DIO53_PIN)
27
+  #define DIO_COUNT 54
28
+#elif defined(DIO47_PIN)
29
+  #define DIO_COUNT 48
30
+#elif defined(DIO31_PIN)
31
+  #define DIO_COUNT 32
32
+#elif defined(DIO21_PIN)
33
+  #define DIO_COUNT 22
34
+#endif
35
+
36
+#define _PIN_SAY(NAME) { SERIAL_ECHOPGM(STRINGIFY(NAME)); return true; }
37
+#define PIN_SAY(NAME) if (pin == NAME) _PIN_SAY(_##NAME##_);
38
+#define ANALOG_PIN_SAY(NAME) if (pin == analogInputToDigitalPin(NAME)) _PIN_SAY(_##NAME##_);
39
+#define IS_ANALOG(P) if ((P) >= analogInputToDigitalPin(0) && ((P) <= analogInputToDigitalPin(15) || (P) <= analogInputToDigitalPin(5)))
40
+
41
+// Report pin name for a given fastio digital pin index
42
+static bool report_pin_name(int8_t pin) {
43
+
44
+  SERIAL_ECHO((int)pin);
45
+  SERIAL_CHAR(' ');
46
+
47
+  if (IS_ANALOG(pin)) {
48
+    SERIAL_CHAR('('); SERIAL_CHAR('A');
49
+    SERIAL_ECHO(int(pin - analogInputToDigitalPin(0)));
50
+    SERIAL_CHAR(')'); SERIAL_CHAR(' ');
51
+  }
52
+
53
+  #if defined(RXD) && RXD > -1
54
+    if (pin == 0) { SERIAL_ECHOPGM("RXD"); return true; }
55
+  #endif
56
+  #if defined(TXD) && TXD > -1
57
+    if (pin == 1) { SERIAL_ECHOPGM("TXD"); return true; }
58
+  #endif
59
+
60
+  #if PIN_EXISTS(SERVO0)
61
+    PIN_SAY(SERVO0_PIN);
62
+  #endif
63
+  #if PIN_EXISTS(SERVO1)
64
+    PIN_SAY(SERVO1_PIN);
65
+  #endif
66
+  #if PIN_EXISTS(SERVO2)
67
+    PIN_SAY(SERVO2_PIN);
68
+  #endif
69
+  #if PIN_EXISTS(SERVO3)
70
+    PIN_SAY(SERVO3_PIN);
71
+  #endif
72
+
73
+  #if PIN_EXISTS(X_MIN)
74
+    PIN_SAY(X_MIN_PIN);
75
+  #endif
76
+  #if PIN_EXISTS(X_MAX)
77
+    PIN_SAY(X_MAX_PIN);
78
+  #endif
79
+  #if PIN_EXISTS(Y_MIN)
80
+    PIN_SAY(Y_MIN_PIN);
81
+  #endif
82
+  #if PIN_EXISTS(Y_MAX)
83
+    PIN_SAY(Y_MAX_PIN);
84
+  #endif
85
+  #if PIN_EXISTS(Z_MIN)
86
+    PIN_SAY(Z_MIN_PIN);
87
+  #endif
88
+  #if PIN_EXISTS(Z_MAX)
89
+    PIN_SAY(Z_MAX_PIN);
90
+  #endif
91
+  #if PIN_EXISTS(Z_MIN_PROBE)
92
+    PIN_SAY(Z_MIN_PROBE_PIN);
93
+  #endif
94
+  #if PIN_EXISTS(X_STEP)
95
+    PIN_SAY(X_STEP_PIN);
96
+  #endif
97
+  #if PIN_EXISTS(X_DIR)
98
+    PIN_SAY(X_DIR_PIN);
99
+  #endif
100
+  #if PIN_EXISTS(X_ENABLE)
101
+    PIN_SAY(X_ENABLE_PIN);
102
+  #endif
103
+  #if PIN_EXISTS(X_MS1)
104
+    PIN_SAY(X_MS1_PIN);
105
+  #endif
106
+  #if PIN_EXISTS(X_MS2)
107
+    PIN_SAY(X_MS2_PIN);
108
+  #endif
109
+  #if PIN_EXISTS(X2_STEP)
110
+    PIN_SAY(X2_STEP_PIN);
111
+  #endif
112
+  #if PIN_EXISTS(X2_DIR)
113
+    PIN_SAY(X2_DIR_PIN);
114
+  #endif
115
+  #if PIN_EXISTS(X2_ENABLE)
116
+    PIN_SAY(X2_ENABLE_PIN);
117
+  #endif
118
+  #if PIN_EXISTS(Y_STEP)
119
+    PIN_SAY(Y_STEP_PIN);
120
+  #endif
121
+  #if PIN_EXISTS(Y_DIR)
122
+    PIN_SAY(Y_DIR_PIN);
123
+  #endif
124
+  #if PIN_EXISTS(Y_ENABLE)
125
+    PIN_SAY(Y_ENABLE_PIN);
126
+  #endif
127
+  #if PIN_EXISTS(Y_MS1)
128
+    PIN_SAY(Y_MS1_PIN);
129
+  #endif
130
+  #if PIN_EXISTS(Y_MS2)
131
+    PIN_SAY(Y_MS2_PIN);
132
+  #endif
133
+  #if PIN_EXISTS(Y2_STEP)
134
+    PIN_SAY(Y2_STEP_PIN);
135
+  #endif
136
+  #if PIN_EXISTS(Y2_DIR)
137
+    PIN_SAY(Y2_DIR_PIN);
138
+  #endif
139
+  #if PIN_EXISTS(Y2_ENABLE)
140
+    PIN_SAY(Y2_ENABLE_PIN);
141
+  #endif
142
+  #if PIN_EXISTS(Z_STEP)
143
+    PIN_SAY(Z_STEP_PIN);
144
+  #endif
145
+  #if PIN_EXISTS(Z_DIR)
146
+    PIN_SAY(Z_DIR_PIN);
147
+  #endif
148
+  #if PIN_EXISTS(Z_ENABLE)
149
+    PIN_SAY(Z_ENABLE_PIN);
150
+  #endif
151
+  #if PIN_EXISTS(Z_MS1)
152
+    PIN_SAY(Z_MS1_PIN);
153
+  #endif
154
+  #if PIN_EXISTS(Z_MS2)
155
+    PIN_SAY(Z_MS2_PIN);
156
+  #endif
157
+  #if PIN_EXISTS(Z2_STEP)
158
+    PIN_SAY(Z2_STEP_PIN);
159
+  #endif
160
+  #if PIN_EXISTS(Z2_DIR)
161
+    PIN_SAY(Z2_DIR_PIN);
162
+  #endif
163
+  #if PIN_EXISTS(Z2_ENABLE)
164
+    PIN_SAY(Z2_ENABLE_PIN);
165
+  #endif
166
+
167
+  #if PIN_EXISTS(E0_STEP)
168
+    PIN_SAY(E0_STEP_PIN);
169
+  #endif
170
+  #if PIN_EXISTS(E0_DIR)
171
+    PIN_SAY(E0_DIR_PIN);
172
+  #endif
173
+  #if PIN_EXISTS(E0_ENABLE)
174
+    PIN_SAY(E0_ENABLE_PIN);
175
+  #endif
176
+  #if PIN_EXISTS(E0_MS1)
177
+    PIN_SAY(E0_MS1_PIN);
178
+  #endif
179
+  #if PIN_EXISTS(E0_MS2)
180
+    PIN_SAY(E0_MS2_PIN);
181
+  #endif
182
+  #if PIN_EXISTS(E1_STEP)
183
+    PIN_SAY(E1_STEP_PIN);
184
+  #endif
185
+  #if PIN_EXISTS(E1_DIR)
186
+    PIN_SAY(E1_DIR_PIN);
187
+  #endif
188
+  #if PIN_EXISTS(E1_ENABLE)
189
+    PIN_SAY(E1_ENABLE_PIN);
190
+  #endif
191
+  #if PIN_EXISTS(E1_MS1)
192
+    PIN_SAY(E1_MS1_PIN);
193
+  #endif
194
+  #if PIN_EXISTS(E1_MS2)
195
+    PIN_SAY(E1_MS2_PIN);
196
+  #endif
197
+  #if PIN_EXISTS(E2_STEP)
198
+    PIN_SAY(E2_STEP_PIN);
199
+  #endif
200
+  #if PIN_EXISTS(E2_DIR)
201
+    PIN_SAY(E2_DIR_PIN);
202
+  #endif
203
+  #if PIN_EXISTS(E2_ENABLE)
204
+    PIN_SAY(E2_ENABLE_PIN);
205
+  #endif
206
+  #if PIN_EXISTS(E3_STEP)
207
+    PIN_SAY(E3_STEP_PIN);
208
+  #endif
209
+  #if PIN_EXISTS(E3_DIR)
210
+    PIN_SAY(E3_DIR_PIN);
211
+  #endif
212
+  #if PIN_EXISTS(E3_ENABLE)
213
+    PIN_SAY(E3_ENABLE_PIN);
214
+  #endif
215
+  #if PIN_EXISTS(E4_STEP)
216
+    PIN_SAY(E4_STEP_PIN);
217
+  #endif
218
+  #if PIN_EXISTS(E4_DIR)
219
+    PIN_SAY(E4_DIR_PIN);
220
+  #endif
221
+  #if PIN_EXISTS(E4_ENABLE)
222
+    PIN_SAY(E4_ENABLE_PIN);
223
+  #endif
224
+
225
+  #if PIN_EXISTS(FAN)
226
+    PIN_SAY(FAN_PIN);
227
+  #endif
228
+  #if PIN_EXISTS(FAN1)
229
+    PIN_SAY(FAN1_PIN);
230
+  #endif
231
+  #if PIN_EXISTS(FAN2)
232
+    PIN_SAY(FAN2_PIN);
233
+  #endif
234
+  #if PIN_EXISTS(CONTROLLERFAN)
235
+    PIN_SAY(CONTROLLERFAN_PIN);
236
+  #endif
237
+  #if PIN_EXISTS(EXTRUDER_0_AUTO_FAN)
238
+    PIN_SAY(EXTRUDER_0_AUTO_FAN_PIN);
239
+  #endif
240
+  #if PIN_EXISTS(EXTRUDER_1_AUTO_FAN)
241
+    PIN_SAY(EXTRUDER_1_AUTO_FAN_PIN);
242
+  #endif
243
+  #if PIN_EXISTS(EXTRUDER_2_AUTO_FAN)
244
+    PIN_SAY(EXTRUDER_2_AUTO_FAN_PIN);
245
+  #endif
246
+  #if PIN_EXISTS(EXTRUDER_3_AUTO_FAN)
247
+    PIN_SAY(EXTRUDER_3_AUTO_FAN_PIN);
248
+  #endif
249
+  #if PIN_EXISTS(HEATER_0)
250
+    PIN_SAY(HEATER_0_PIN);
251
+  #endif
252
+  #if PIN_EXISTS(HEATER_1)
253
+    PIN_SAY(HEATER_1_PIN);
254
+  #endif
255
+  #if PIN_EXISTS(HEATER_2)
256
+    PIN_SAY(HEATER_2_PIN);
257
+  #endif
258
+  #if PIN_EXISTS(HEATER_3)
259
+    PIN_SAY(HEATER_3_PIN);
260
+  #endif
261
+  #if PIN_EXISTS(HEATER_BED)
262
+    PIN_SAY(HEATER_BED_PIN);
263
+  #endif
264
+
265
+  #if PIN_EXISTS(X_ATT)
266
+    PIN_SAY(X_ATT_PIN);
267
+  #endif
268
+  #if PIN_EXISTS(Y_ATT)
269
+    PIN_SAY(Y_ATT_PIN);
270
+  #endif
271
+  #if PIN_EXISTS(Z_ATT)
272
+    PIN_SAY(Z_ATT_PIN);
273
+  #endif
274
+  #if PIN_EXISTS(E0_ATT)
275
+    PIN_SAY(E0_ATT_PIN);
276
+  #endif
277
+
278
+  #if PIN_EXISTS(TEMP_0)
279
+    ANALOG_PIN_SAY(TEMP_0_PIN);
280
+  #endif
281
+  #if PIN_EXISTS(TEMP_1)
282
+    ANALOG_PIN_SAY(TEMP_1_PIN);
283
+  #endif
284
+  #if PIN_EXISTS(TEMP_2)
285
+    ANALOG_PIN_SAY(TEMP_2_PIN);
286
+  #endif
287
+  #if PIN_EXISTS(TEMP_3)
288
+    ANALOG_PIN_SAY(TEMP_3_PIN);
289
+  #endif
290
+  #if PIN_EXISTS(TEMP_BED)
291
+    ANALOG_PIN_SAY(TEMP_BED_PIN);
292
+  #endif
293
+  #if PIN_EXISTS(FILWIDTH)
294
+    ANALOG_PIN_SAY(FILWIDTH_PIN);
295
+  #endif
296
+
297
+  #if PIN_EXISTS(BEEPER)
298
+    PIN_SAY(BEEPER_PIN);
299
+  #endif
300
+  #if PIN_EXISTS(SLED)
301
+    PIN_SAY(SLED_PIN);
302
+  #endif
303
+  #if PIN_EXISTS(FIL_RUNOUT)
304
+    PIN_SAY(FIL_RUNOUT_PIN);
305
+  #endif
306
+
307
+  #if PIN_EXISTS(LED)
308
+    PIN_SAY(LED_PIN);
309
+  #endif
310
+  // #if defined(DEBUG_LED) && DEBUG_LED > -1
311
+  //   PIN_SAY(DEBUG_LED);
312
+  // #endif
313
+  #if PIN_EXISTS(STAT_LED_RED)
314
+    PIN_SAY(STAT_LED_RED_PIN);
315
+  #endif
316
+  #if PIN_EXISTS(STAT_LED_BLUE)
317
+    PIN_SAY(STAT_LED_BLUE_PIN);
318
+  #endif
319
+
320
+  #if PIN_EXISTS(DIGIPOTSS)
321
+    PIN_SAY(DIGIPOTSS_PIN);
322
+  #endif
323
+
324
+  #if PIN_EXISTS(SCK)
325
+    PIN_SAY(SCK_PIN);
326
+  #endif
327
+  #if PIN_EXISTS(MISO)
328
+    PIN_SAY(MISO_PIN);
329
+  #endif
330
+  #if PIN_EXISTS(MOSI)
331
+    PIN_SAY(MOSI_PIN);
332
+  #endif
333
+  #if PIN_EXISTS(SS)
334
+    PIN_SAY(SS_PIN);
335
+  #endif
336
+
337
+  #if PIN_EXISTS(SD_DETECT)
338
+    PIN_SAY(SD_DETECT_PIN);
339
+  #endif
340
+
341
+  #if defined(SDPOWER) && SDPOWER > -1
342
+    PIN_SAY(SDPOWER);
343
+  #endif
344
+  #if defined(SDSS) && SDSS > -1
345
+    PIN_SAY(SDSS);
346
+  #endif
347
+  #if defined(I2C_SCL) && I2C_SCL > -1
348
+    PIN_SAY(I2C_SCL);
349
+  #endif
350
+  #if defined(I2C_SDA) && I2C_SDA > -1
351
+    PIN_SAY(I2C_SDA);
352
+  #endif
353
+  #if defined(SCL) && SCL > -1
354
+    PIN_SAY(SCL);
355
+  #endif
356
+  #if defined(SDA) && SDA > -1
357
+    PIN_SAY(SDA);
358
+  #endif
359
+
360
+  #if PIN_EXISTS(PS_ON)
361
+    PIN_SAY(PS_ON_PIN);
362
+  #endif
363
+  #if PIN_EXISTS(KILL)
364
+    PIN_SAY(KILL_PIN);
365
+  #endif
366
+  #if PIN_EXISTS(SUICIDE)
367
+    PIN_SAY(SUICIDE_PIN);
368
+  #endif
369
+  #if PIN_EXISTS(DEBUG)
370
+    PIN_SAY(DEBUG_PIN);
371
+  #endif
372
+  #if PIN_EXISTS(PHOTOGRAPH)
373
+    PIN_SAY(PHOTOGRAPH_PIN);
374
+  #endif
375
+
376
+  #if PIN_EXISTS(BEEPER)
377
+    PIN_SAY(BEEPER_PIN);
378
+  #endif
379
+  #if defined(BTN_EN1) && BTN_EN1 > -1
380
+    PIN_SAY(BTN_EN1);
381
+  #endif
382
+  #if defined(BTN_EN2) && BTN_EN2 > -1
383
+    PIN_SAY(BTN_EN2);
384
+  #endif
385
+  #if defined(BTN_ENC) && BTN_ENC > -1
386
+    PIN_SAY(BTN_ENC);
387
+  #endif
388
+  #if defined(LCD_PINS_RS) && LCD_PINS_RS > -1
389
+    PIN_SAY(LCD_PINS_RS);
390
+  #endif
391
+  #if defined(LCD_PINS_ENABLE) && LCD_PINS_ENABLE > -1
392
+    PIN_SAY(LCD_PINS_ENABLE);
393
+  #endif
394
+  #if defined(LCD_PINS_D4) && LCD_PINS_D4 > -1
395
+    PIN_SAY(LCD_PINS_D4);
396
+  #endif
397
+  #if defined(LCD_PINS_D5) && LCD_PINS_D5 > -1
398
+    PIN_SAY(LCD_PINS_D5);
399
+  #endif
400
+  #if defined(LCD_PINS_D6) && LCD_PINS_D6 > -1
401
+    PIN_SAY(LCD_PINS_D6);
402
+  #endif
403
+  #if defined(LCD_PINS_D7) && LCD_PINS_D7 > -1
404
+    PIN_SAY(LCD_PINS_D7);
405
+  #endif
406
+
407
+  #if PIN_EXISTS(RAMPS_D8)
408
+    PIN_SAY(RAMPS_D8_PIN);
409
+  #endif
410
+  #if PIN_EXISTS(RAMPS_D9)
411
+    PIN_SAY(RAMPS_D9_PIN);
412
+  #endif
413
+  #if PIN_EXISTS(RAMPS_D10)
414
+    PIN_SAY(RAMPS_D10_PIN);
415
+  #endif
416
+  #if PIN_EXISTS(MOSFET_D)
417
+    PIN_SAY(MOSFET_D_PIN);
418
+  #endif
419
+
420
+  #if PIN_EXISTS(TX_ENABLE)
421
+    PIN_SAY(TX_ENABLE_PIN);
422
+  #endif
423
+  #if PIN_EXISTS(RX_ENABLE)
424
+    PIN_SAY(RX_ENABLE_PIN);
425
+  #endif
426
+
427
+  SERIAL_ECHOPGM("<unused>");
428
+  return false;
429
+}
430
+
431
+inline void report_pin_state(int8_t pin) {
432
+  if (report_pin_name(pin)) {
433
+    if (pin_is_protected(pin))
434
+      SERIAL_ECHOPGM(" (protected)");
435
+    else {
436
+      SERIAL_ECHOPGM(" = ");
437
+      pinMode(pin, INPUT_PULLUP);
438
+      SERIAL_ECHO(digitalRead(pin));
439
+      if (IS_ANALOG(pin)) {
440
+        SERIAL_CHAR(' '); SERIAL_CHAR('(');
441
+        SERIAL_ECHO(analogRead(pin - analogInputToDigitalPin(0)));
442
+        SERIAL_CHAR(')');
443
+      }
444
+    }
445
+  }
446
+  SERIAL_EOL;
447
+}

+ 2
- 2
Marlin/pins_5DPRINT.h Целия файл

@@ -75,8 +75,8 @@
75 75
 //
76 76
 // Temperature Sensors
77 77
 //
78
-#define TEMP_0_PIN          1  // Analog
79
-#define TEMP_BED_PIN        0  // Analog
78
+#define TEMP_0_PIN          1   // Analog Input
79
+#define TEMP_BED_PIN        0   // Analog Input
80 80
 
81 81
 //
82 82
 // Heaters / Fans

+ 2
- 2
Marlin/pins_99.h Целия файл

@@ -55,8 +55,8 @@
55 55
 //
56 56
 // Temperature Sensors
57 57
 //
58
-#define TEMP_0_PIN          6   // ANALOG INPUT - NOT DIGITAL OUTPUT
59
-#define TEMP_BED_PIN       10
58
+#define TEMP_0_PIN          6   // Analog Input
59
+#define TEMP_BED_PIN       10   // Analog Input
60 60
 
61 61
 //
62 62
 // Heaters / Fans

+ 3
- 3
Marlin/pins_A4JP.h Целия файл

@@ -40,7 +40,7 @@
40 40
 
41 41
 #define SLED_PIN -1
42 42
 
43
-#define FILWIDTH_PIN        3  // ANALOG NUMBERING
43
+#define FILWIDTH_PIN        3   // Analog Input
44 44
 
45 45
 /************************************************
46 46
  * Rambo pin assignments old
@@ -112,8 +112,8 @@
112 112
 #define FAN0_PIN             6
113 113
 #define FAN1_PIN             2
114 114
 
115
-#define TEMP_0_PIN           0
116
-#define TEMP_BED_PIN         7
115
+#define TEMP_0_PIN           0   // Analog Input
116
+#define TEMP_BED_PIN         7   // Analog Input
117 117
 
118 118
 #define SDSS                53
119 119
 #define LED_PIN             13

+ 2
- 2
Marlin/pins_BAM_DICE_DUE.h Целия файл

@@ -34,5 +34,5 @@
34 34
 
35 35
 #undef TEMP_0_PIN
36 36
 #undef TEMP_1_PIN
37
-#define TEMP_0_PIN          9 // ANALOG NUMBERING
38
-#define TEMP_1_PIN         11 // ANALOG NUMBERING
37
+#define TEMP_0_PIN          9   // Analog Input
38
+#define TEMP_1_PIN         11   // Analog Input

+ 2
- 2
Marlin/pins_BRAINWAVE.h Целия файл

@@ -68,8 +68,8 @@
68 68
 //
69 69
 // Temperature Sensors
70 70
 //
71
-#define TEMP_0_PIN          7  // Extruder / Analog pin numbering
72
-#define TEMP_BED_PIN        6  // Bed / Analog pin numbering
71
+#define TEMP_0_PIN          7   // Analog Input
72
+#define TEMP_BED_PIN        6   // Analog Input
73 73
 
74 74
 //
75 75
 // Heaters / Fans

+ 3
- 3
Marlin/pins_BRAINWAVE_PRO.h Целия файл

@@ -78,9 +78,9 @@
78 78
 //
79 79
 // Temperature Sensors
80 80
 //
81
-#define TEMP_0_PIN          2  // Extruder / Analog pin numbering
82
-#define TEMP_1_PIN          1  // Spare / Analog pin numbering
83
-#define TEMP_BED_PIN        0  // Bed / Analog pin numbering
81
+#define TEMP_0_PIN          2   // Analog Input
82
+#define TEMP_1_PIN          1   // Analog Input
83
+#define TEMP_BED_PIN        0   // Analog Input
84 84
 
85 85
 //
86 86
 // Heaters / Fans

+ 3
- 3
Marlin/pins_CHEAPTRONIC.h Целия файл

@@ -64,9 +64,9 @@
64 64
 //
65 65
 // Temperature sensors
66 66
 //
67
-#define TEMP_0_PIN         15
68
-#define TEMP_1_PIN         14
69
-#define TEMP_BED_PIN       13
67
+#define TEMP_0_PIN         15   // Analog Input
68
+#define TEMP_1_PIN         14   // Analog Input
69
+#define TEMP_BED_PIN       13   // Analog Input
70 70
 
71 71
 //
72 72
 // Heaters / Fans

+ 5
- 5
Marlin/pins_CNCONTROLS_11.h Целия файл

@@ -51,11 +51,11 @@
51 51
 //
52 52
 // Temperature Sensors
53 53
 //
54
-#define TEMP_0_PIN          0  // ANALOG INPUT !!
55
-#define TEMP_1_PIN          3  // 3 for tool2 -> 2 for chambertemp
56
-#define TEMP_2_PIN          2  // 9 for tool3 -> 2 for chambertemp
57
-#define TEMP_3_PIN         11  // 11 for tool4 -> 2 for chambertemp
58
-#define TEMP_BED_PIN        1  // ANALOG INPUT !!
54
+#define TEMP_0_PIN          0   // Analog Input
55
+#define TEMP_1_PIN          3   // Analog Input.  3 for tool2 -> 2 for chambertemp
56
+#define TEMP_2_PIN          2   // Analog Input.  9 for tool3 -> 2 for chambertemp
57
+#define TEMP_3_PIN         11   // Analog Input. 11 for tool4 -> 2 for chambertemp
58
+#define TEMP_BED_PIN        1   // Analog Input
59 59
 
60 60
 //
61 61
 // Heaters / Fans

+ 6
- 6
Marlin/pins_CNCONTROLS_12.h Целия файл

@@ -51,12 +51,12 @@
51 51
 //
52 52
 // Temperature Sensors
53 53
 //
54
-#define TEMP_0_PIN          0  // ANALOG INPUT !!
55
-#define TEMP_1_PIN          9  // 9 for tool2 -> 13 for chambertemp
56
-#define TEMP_2_PIN         13  // 10 for tool3 -> 13 for chambertemp
57
-#define TEMP_3_PIN         11  // 11 for tool4 -> 13 for chambertemp
58
-#define TEMP_BED_PIN       14  // ANALOG INPUT !!
59
-//#define TEMP_CHAMBER_PIN   13  // ANALOG INPUT !!
54
+#define TEMP_0_PIN          0   // Analog Input
55
+#define TEMP_1_PIN          9   // Analog Input.  9 for tool2 -> 13 for chambertemp
56
+#define TEMP_2_PIN         13   // Analog Input. 10 for tool3 -> 13 for chambertemp
57
+#define TEMP_3_PIN         11   // Analog Input. 11 for tool4 -> 13 for chambertemp
58
+#define TEMP_BED_PIN       14   // Analog Input
59
+//#define TEMP_CHAMBER_PIN   13   // Analog Input
60 60
 
61 61
 //
62 62
 // Heaters / Fans

+ 4
- 4
Marlin/pins_ELEFU_3.h Целия файл

@@ -77,10 +77,10 @@
77 77
 //
78 78
 // Temperature Sensors
79 79
 //
80
-#define TEMP_0_PIN          3 // ANALOG NUMBERING
81
-#define TEMP_1_PIN          2 // ANALOG NUMBERING
82
-#define TEMP_2_PIN          1 // ANALOG NUMBERING
83
-#define TEMP_BED_PIN        0 // ANALOG NUMBERING
80
+#define TEMP_0_PIN          3   // Analog Input
81
+#define TEMP_1_PIN          2   // Analog Input
82
+#define TEMP_2_PIN          1   // Analog Input
83
+#define TEMP_BED_PIN        0   // Analog Input
84 84
 
85 85
 //
86 86
 // Heaters / Fans

+ 1
- 1
Marlin/pins_GEN3_MONOLITHIC.h Целия файл

@@ -60,7 +60,7 @@
60 60
 //
61 61
 // Temperature Sensors
62 62
 //
63
-#define TEMP_0_PIN          0
63
+#define TEMP_0_PIN          0   // Analog Input
64 64
 
65 65
 //
66 66
 // Heaters

+ 2
- 2
Marlin/pins_GEN3_PLUS.h Целия файл

@@ -61,8 +61,8 @@
61 61
 //
62 62
 // Temperature Sensors
63 63
 //
64
-#define TEMP_0_PIN          0   // ANALOG INPUT (pin 33 extruder)
65
-#define TEMP_BED_PIN        5   // ANALOG INPUT (pin 34 bed)
64
+#define TEMP_0_PIN          0   // Analog Input (pin 33 extruder)
65
+#define TEMP_BED_PIN        5   // Analog Input (pin 34 bed)
66 66
 
67 67
 //
68 68
 // Heaters

+ 7
- 7
Marlin/pins_GEN6.h Целия файл

@@ -56,23 +56,23 @@
56 56
 #define Z_DIR_PIN          28
57 57
 #define Z_ENABLE_PIN       29
58 58
 
59
-#define E0_STEP_PIN         4    //Edited @ EJE Electronics 20100715
60
-#define E0_DIR_PIN          2    //Edited @ EJE Electronics 20100715
61
-#define E0_ENABLE_PIN       3    //Added @ EJE Electronics 20100715
59
+#define E0_STEP_PIN         4   //Edited @ EJE Electronics 20100715
60
+#define E0_DIR_PIN          2   //Edited @ EJE Electronics 20100715
61
+#define E0_ENABLE_PIN       3   //Added @ EJE Electronics 20100715
62 62
 
63 63
 //
64 64
 // Temperature Sensor
65 65
 //
66
-#define TEMP_0_PIN          5    //changed @ rkoeppl 20110410
66
+#define TEMP_0_PIN          5   // Analog Input
67 67
 
68 68
 //
69 69
 // Heaters
70 70
 //
71
-#define HEATER_0_PIN       14    //changed @ rkoeppl 20110410
71
+#define HEATER_0_PIN       14   //changed @ rkoeppl 20110410
72 72
 
73 73
 #if !MB(GEN6)
74
-  #define HEATER_BED_PIN    1    //changed @ rkoeppl 20110410
75
-  #define TEMP_BED_PIN      0    //changed @ rkoeppl 20110410
74
+  #define HEATER_BED_PIN    1   //changed @ rkoeppl 20110410
75
+  #define TEMP_BED_PIN      0   // Analog Input
76 76
 #endif
77 77
 
78 78
 //

+ 2
- 2
Marlin/pins_GEN7_12.h Целия файл

@@ -73,8 +73,8 @@
73 73
 //
74 74
 // Temperature Sensors
75 75
 //
76
-#define TEMP_0_PIN          1
77
-#define TEMP_BED_PIN        2
76
+#define TEMP_0_PIN          1   // Analog Input
77
+#define TEMP_BED_PIN        2   // Analog Input
78 78
 
79 79
 //
80 80
 // Heaters / Fans

+ 32
- 23
Marlin/pins_GEN7_14.h Целия файл

@@ -32,40 +32,49 @@
32 32
 
33 33
 #define GEN7_VERSION 14 // v1.4
34 34
 
35
-//x axis pins
36
-#define X_STEP_PIN 29
37
-#define X_DIR_PIN 28
38
-#define X_ENABLE_PIN 25
39
-#define X_STOP_PIN 0
35
+//
36
+// Limit switches
37
+//
38
+#define X_STOP_PIN          0
39
+#define Y_STOP_PIN          1
40
+#define Z_STOP_PIN          2
40 41
 
41
-//y axis pins
42
-#define Y_STEP_PIN 27
43
-#define Y_DIR_PIN 26
44
-#define Y_ENABLE_PIN 25
45
-#define Y_STOP_PIN 1
42
+//
43
+// Steppers
44
+//
45
+#define X_STEP_PIN         29
46
+#define X_DIR_PIN          28
47
+#define X_ENABLE_PIN       25
46 48
 
47
-//z axis pins
48
-#define Z_STEP_PIN 23
49
-#define Z_DIR_PIN 22
50
-#define Z_ENABLE_PIN 25
51
-#define Z_STOP_PIN 2
49
+#define Y_STEP_PIN         27
50
+#define Y_DIR_PIN          26
51
+#define Y_ENABLE_PIN       25
52 52
 
53
-//extruder pins
54
-#define E0_STEP_PIN 19
55
-#define E0_DIR_PIN 18
56
-#define E0_ENABLE_PIN 25
53
+#define Z_STEP_PIN         23
54
+#define Z_DIR_PIN          22
55
+#define Z_ENABLE_PIN       25
57 56
 
58
-#define TEMP_0_PIN 1
59
-#define TEMP_BED_PIN 0
57
+#define E0_STEP_PIN        19
58
+#define E0_DIR_PIN         18
59
+#define E0_ENABLE_PIN      25
60 60
 
61
+//
62
+// Temperature Sensors
63
+//
64
+#define TEMP_0_PIN          1   // Analog Input
65
+#define TEMP_BED_PIN        0   // Analog Input
66
+
67
+//
68
+// Heaters
69
+//
61 70
 #define HEATER_0_PIN 4
62 71
 #define HEATER_BED_PIN 3
63 72
 
64 73
 #define PS_ON_PIN 15
65 74
 
66
-//our pin for debugging.
75
+// A pin for debugging
67 76
 #define DEBUG_PIN 0
68 77
 
69
-//our RS485 pins
78
+// RS485 pins
70 79
 #define TX_ENABLE_PIN 12
71 80
 #define RX_ENABLE_PIN 13

+ 37
- 29
Marlin/pins_GEN7_CUSTOM.h Целия файл

@@ -33,58 +33,66 @@
33 33
 
34 34
 #define BOARD_NAME      "Gen7 Custom"
35 35
 
36
-//x axis pins
37
-#define X_STEP_PIN      21                  // different from standard GEN7
38
-#define X_DIR_PIN       20                  // different from standard GEN7
39
-#define X_ENABLE_PIN    24
36
+//
37
+// Limit Switches
38
+//
40 39
 #define X_STOP_PIN       0
40
+#define Y_STOP_PIN       1
41
+#define Z_STOP_PIN       2
42
+
43
+//
44
+// Steppers
45
+//
46
+#define X_STEP_PIN      21   // different from standard GEN7
47
+#define X_DIR_PIN       20   // different from standard GEN7
48
+#define X_ENABLE_PIN    24
41 49
 
42
-//y axis pins
43 50
 #define Y_STEP_PIN      23
44 51
 #define Y_DIR_PIN       22
45 52
 #define Y_ENABLE_PIN    24
46
-#define Y_STOP_PIN       1
47 53
 
48
-//z axis pins
49 54
 #define Z_STEP_PIN      26
50 55
 #define Z_DIR_PIN       25
51 56
 #define Z_ENABLE_PIN    24
52
-#define Z_STOP_PIN       2
53 57
 
54
-//extruder pins
55 58
 #define E0_STEP_PIN     28
56 59
 #define E0_DIR_PIN      27
57 60
 #define E0_ENABLE_PIN   24
58 61
 
59
-#define TEMP_0_PIN       2
60
-#define TEMP_BED_PIN     1   // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! (pin 34 bed)
62
+//
63
+// Temperature Sensors
64
+//
65
+#define TEMP_0_PIN       2   // Analog Input
66
+#define TEMP_BED_PIN     1   // Analog Input (pin 34 bed)
61 67
 
68
+//
69
+// Heaters
70
+//
62 71
 #define HEATER_0_PIN     4
63 72
 #define HEATER_BED_PIN   3  // (bed)
64 73
 
65 74
 #define SDSS            31                  // SCL pin of I2C header || CS Pin for SD Card support
66 75
 
67 76
 #define PS_ON_PIN       19
68
-//our pin for debugging.
69 77
 
78
+// A pin for debugging
70 79
 #define DEBUG_PIN       -1
71 80
 
72
-//our RS485 pins
73
-//#define TX_ENABLE_PIN       12
74
-//#define RX_ENABLE_PIN       13
75
-
76
-#define BEEPER_PIN       -1
81
+#define BEEPER_PIN      -1
77 82
 
78
-//Pins for 4bit LCD Support
79
-#define LCD_PINS_RS 18
83
+// 4bit LCD Support
84
+#define LCD_PINS_RS     18
80 85
 #define LCD_PINS_ENABLE 17
81
-#define LCD_PINS_D4 16
82
-#define LCD_PINS_D5 15
83
-#define LCD_PINS_D6 13
84
-#define LCD_PINS_D7 14
85
-
86
-//buttons are directly attached
87
-#define BTN_EN1 11
88
-#define BTN_EN2 10
89
-#define BTN_ENC 12
90
-
86
+#define LCD_PINS_D4     16
87
+#define LCD_PINS_D5     15
88
+#define LCD_PINS_D6     13
89
+#define LCD_PINS_D7     14
90
+
91
+// Buttons are directly attached
92
+#define BTN_EN1         11
93
+#define BTN_EN2         10
94
+#define BTN_ENC         12
95
+
96
+// RS485 pins
97
+//#define TX_ENABLE_PIN   12
98
+//#define RX_ENABLE_PIN   13

+ 3
- 3
Marlin/pins_LEAPFROG.h Целия файл

@@ -74,9 +74,9 @@
74 74
 //
75 75
 // Temperature Sensors
76 76
 //
77
-#define TEMP_0_PIN         13 //D27   // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!!
78
-#define TEMP_1_PIN         15 // 1
79
-#define TEMP_BED_PIN       14 // 1,2 or I2C
77
+#define TEMP_0_PIN         13   // Analog Input (D27)
78
+#define TEMP_1_PIN         15   // Analog Input (1)
79
+#define TEMP_BED_PIN       14   // Analog Input (1,2 or I2C)
80 80
 
81 81
 //
82 82
 // Heaters / Fans

+ 7
- 7
Marlin/pins_MEGACONTROLLER.h Целия файл

@@ -92,23 +92,23 @@
92 92
 // Temperature Sensors
93 93
 //
94 94
 #if TEMP_SENSOR_0 == -1
95
-  #define TEMP_0_PIN        4 // ANALOG NUMBERING
95
+  #define TEMP_0_PIN        4   // Analog Input
96 96
 #else
97
-  #define TEMP_0_PIN        0 // ANALOG NUMBERING
97
+  #define TEMP_0_PIN        0   // Analog Input
98 98
 #endif
99 99
 
100 100
 #if TEMP_SENSOR_1 == -1
101
-  #define TEMP_1_PIN        5 // ANALOG NUMBERING
101
+  #define TEMP_1_PIN        5   // Analog Input
102 102
 #else
103
-  #define TEMP_1_PIN        2 // ANALOG NUMBERING
103
+  #define TEMP_1_PIN        2   // Analog Input
104 104
 #endif
105 105
 
106
-#define TEMP_2_PIN          3 // ANALOG NUMBERING
106
+#define TEMP_2_PIN          3   // Analog Input
107 107
 
108 108
 #if TEMP_SENSOR_BED == -1
109
-  #define TEMP_BED_PIN      6 // ANALOG NUMBERING
109
+  #define TEMP_BED_PIN      6   // Analog Input
110 110
 #else
111
-  #define TEMP_BED_PIN      1 // ANALOG NUMBERING
111
+  #define TEMP_BED_PIN      1   // Analog Input
112 112
 #endif
113 113
 
114 114
 //

+ 4
- 4
Marlin/pins_MEGATRONICS.h Целия файл

@@ -82,12 +82,12 @@
82 82
 // Temperature Sensors
83 83
 //
84 84
 #if TEMP_SENSOR_0 == -1
85
-  #define TEMP_0_PIN        8   // ANALOG NUMBERING
85
+  #define TEMP_0_PIN        8   // Analog Input
86 86
 #else
87
-  #define TEMP_0_PIN       13   // ANALOG NUMBERING
87
+  #define TEMP_0_PIN       13   // Analog Input
88 88
 #endif
89
-#define TEMP_1_PIN         15   // ANALOG NUMBERING
90
-#define TEMP_BED_PIN       14   // ANALOG NUMBERING
89
+#define TEMP_1_PIN         15   // Analog Input
90
+#define TEMP_BED_PIN       14   // Analog Input
91 91
 
92 92
 //
93 93
 // Heaters / Fans

+ 6
- 6
Marlin/pins_MEGATRONICS_2.h Целия файл

@@ -86,21 +86,21 @@
86 86
 // Temperature Sensors
87 87
 //
88 88
 #if TEMP_SENSOR_0 == -1
89
-  #define TEMP_0_PIN        4 // ANALOG NUMBERING
89
+  #define TEMP_0_PIN        4   // Analog Input
90 90
 #else
91
-  #define TEMP_0_PIN       13 // ANALOG NUMBERING
91
+  #define TEMP_0_PIN       13   // Analog Input
92 92
 #endif
93 93
 
94 94
 #if TEMP_SENSOR_1 == -1
95
-  #define TEMP_1_PIN        8 // ANALOG NUMBERING
95
+  #define TEMP_1_PIN        8   // Analog Input
96 96
 #else
97
-  #define TEMP_1_PIN       15 // ANALOG NUMBERING
97
+  #define TEMP_1_PIN       15   // Analog Input
98 98
 #endif
99 99
 
100 100
 #if TEMP_SENSOR_BED == -1
101
-  #define TEMP_BED_PIN      8 // ANALOG NUMBERING
101
+  #define TEMP_BED_PIN      8   // Analog Input
102 102
 #else
103
-  #define TEMP_BED_PIN     14 // ANALOG NUMBERING
103
+  #define TEMP_BED_PIN     14   // Analog Input
104 104
 #endif
105 105
 
106 106
 //

+ 8
- 8
Marlin/pins_MEGATRONICS_3.h Целия файл

@@ -102,24 +102,24 @@
102 102
 // Temperature Sensors
103 103
 //
104 104
 #if TEMP_SENSOR_0 == -1
105
-  #define TEMP_0_PIN       11 // ANALOG NUMBERING
105
+  #define TEMP_0_PIN       11   // Analog Input
106 106
 #else
107
-  #define TEMP_0_PIN       15 // ANALOG NUMBERING
107
+  #define TEMP_0_PIN       15   // Analog Input
108 108
 #endif
109 109
 #if TEMP_SENSOR_1 == -1
110
-  #define TEMP_1_PIN       10 // ANALOG NUMBERING
110
+  #define TEMP_1_PIN       10   // Analog Input
111 111
 #else
112
-  #define TEMP_1_PIN       13 // ANALOG NUMBERING
112
+  #define TEMP_1_PIN       13   // Analog Input
113 113
 #endif
114 114
 #if TEMP_SENSOR_2 == -1
115
-  #define TEMP_2_PIN        9 // ANALOG NUMBERING
115
+  #define TEMP_2_PIN        9   // Analog Input
116 116
 #else
117
-  #define TEMP_2_PIN       12 // ANALOG NUMBERING
117
+  #define TEMP_2_PIN       12   // Analog Input
118 118
 #endif
119 119
 #if TEMP_SENSOR_BED == -1
120
-  #define TEMP_BED_PIN      8 // ANALOG NUMBERING
120
+  #define TEMP_BED_PIN      8   // Analog Input
121 121
 #else
122
-  #define TEMP_BED_PIN     14 // ANALOG NUMBERING
122
+  #define TEMP_BED_PIN     14   // Analog Input
123 123
 #endif
124 124
 
125 125
 //

+ 3
- 3
Marlin/pins_MINIRAMBO.h Целия файл

@@ -89,9 +89,9 @@
89 89
 //
90 90
 // Temperature Sensors
91 91
 //
92
-#define TEMP_0_PIN          0
93
-#define TEMP_1_PIN          1
94
-#define TEMP_BED_PIN        2
92
+#define TEMP_0_PIN          0   // Analog Input
93
+#define TEMP_1_PIN          1   // Analog Input
94
+#define TEMP_BED_PIN        2   // Analog Input
95 95
 
96 96
 //
97 97
 // Heaters / Fans

+ 3
- 3
Marlin/pins_MINITRONICS.h Целия файл

@@ -74,9 +74,9 @@
74 74
 #define SDSS               16
75 75
 #define LED_PIN            46
76 76
 
77
-#define TEMP_0_PIN          7 // ANALOG NUMBERING
78
-#define TEMP_1_PIN          6 // ANALOG NUMBERING
79
-#define TEMP_BED_PIN        6 // ANALOG NUMBERING
77
+#define TEMP_0_PIN          7   // Analog Input
78
+#define TEMP_1_PIN          6   // Analog Input
79
+#define TEMP_BED_PIN        6   // Analog Input
80 80
 
81 81
 //
82 82
 // Heaters / Fans

+ 3
- 3
Marlin/pins_OMCA.h Целия файл

@@ -98,9 +98,9 @@
98 98
 #define HEATER_0_PIN        3 // DONE PWM on RIGHT connector
99 99
 #define HEATER_BED_PIN      4
100 100
 
101
-#define TEMP_0_PIN          0 // ANALOG INPUT NUMBERING
102
-#define TEMP_1_PIN          1 // ANALOG
103
-#define TEMP_BED_PIN        2 // 1,2 or I2C
101
+#define TEMP_0_PIN          0   // Analog Input
102
+#define TEMP_1_PIN          1   // Analog Input
103
+#define TEMP_BED_PIN        2   // Analog Input (1,2 or I2C)
104 104
 
105 105
 #define I2C_SCL            16
106 106
 #define I2C_SDA            17

+ 20
- 6
Marlin/pins_OMCA_A.h Целия файл

@@ -56,20 +56,27 @@
56 56
 
57 57
 #define BOARD_NAME         "Alpha OMCA"
58 58
 
59
+//
60
+// Limit Switches
61
+//
62
+#define X_STOP_PIN          0
63
+#define Y_STOP_PIN          1
64
+#define Z_STOP_PIN          2
65
+
66
+//
67
+// Steppers
68
+//
59 69
 #define X_STEP_PIN         21
60 70
 #define X_DIR_PIN          20
61 71
 #define X_ENABLE_PIN       24
62
-#define X_STOP_PIN          0
63 72
 
64 73
 #define Y_STEP_PIN         23
65 74
 #define Y_DIR_PIN          22
66 75
 #define Y_ENABLE_PIN       24
67
-#define Y_STOP_PIN          1
68 76
 
69 77
 #define Z_STEP_PIN         26
70 78
 #define Z_DIR_PIN          25
71 79
 #define Z_ENABLE_PIN       24
72
-#define Z_STOP_PIN          2
73 80
 
74 81
 #define E0_STEP_PIN        28
75 82
 #define E0_DIR_PIN         27
@@ -83,10 +90,17 @@
83 90
 #define E2_DIR_PIN         -1 // 16
84 91
 #define E2_ENABLE_PIN      24
85 92
 
86
-#define SDSS               11
87
-#define FAN_PIN             3
93
+//
94
+// Temperature Sensors
95
+//
96
+#define TEMP_0_PIN          0   // Analog Input (D27)
88 97
 
98
+//
99
+// Heaters / Fans
100
+//
89 101
 #define HEATER_0_PIN        4
90
-#define TEMP_0_PIN          0 //D27   // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!!
102
+#define FAN_PIN             3
103
+
104
+#define SDSS               11
91 105
 
92 106
 /*  Unused (1) (2) (3) 4 5 6 7 8 9 10 11 12 13 (14) (15) (16) 17 (18) (19) (20) (21) (22) (23) 24 (25) (26) (27) 28 (29) (30) (31)  */

+ 4
- 3
Marlin/pins_PRINTRBOARD.h Целия файл

@@ -79,10 +79,11 @@
79 79
   #define Y_STOP_PIN        8 // Ystop in Ystop socket
80 80
 #endif
81 81
 #define Z_STOP_PIN         36
82
-#define TEMP_0_PIN          1  // Extruder / Analog pin numbering
83
-#define TEMP_BED_PIN        0  // Bed / Analog pin numbering
84 82
 
85
-#define FILWIDTH_PIN        2  // ANALOG NUMBERING
83
+#define TEMP_0_PIN          1   // Analog Input
84
+#define TEMP_BED_PIN        0   // Analog Input
85
+
86
+#define FILWIDTH_PIN        2   // Analog Input
86 87
 
87 88
 ////LCD Pin Setup////
88 89
 

Loading…
Отказ
Запис