diff --git a/Marlin/src/HAL/HAL_LPC1768/fastio.h b/Marlin/src/HAL/HAL_LPC1768/fastio.h
index 2da989a9c8d71e840078a5c8c00846051622dd93..a390810fca4f9371b41bb3bc0b066928691b5719 100644
--- a/Marlin/src/HAL/HAL_LPC1768/fastio.h
+++ b/Marlin/src/HAL/HAL_LPC1768/fastio.h
@@ -85,13 +85,22 @@ bool useable_hardware_PWM(pin_t pin);
 /// set pin as input with pullup mode
 #define _PULLUP(IO, v) (pinMode(IO, (v!=LOW ? INPUT_PULLUP : INPUT)))
 
+// hg42: all pins can be input or output (I hope)
+// hg42: undefined pins create compile error (IO, is no pin)
+// hg42: currently not used, but was used by pinsDebug
+
 /// check if pin is an input
-#define _GET_INPUT(IO)
+#define _GET_INPUT(IO)        (LPC1768_PIN_PIN(IO)>=0)
+
 /// check if pin is an output
-#define _GET_OUTPUT(IO)
+#define _GET_OUTPUT(IO)       (LPC1768_PIN_PIN(IO)>=0)
+
+// hg42: GET_TIMER is used only to check if it's a PWM pin
+// hg42: we cannot use USEABLE_HARDWARE_PWM because it uses a function that cannot be used statically
+// hg42: instead use PWM bit from the #define
 
 /// check if pin is an timer
-#define _GET_TIMER(IO)
+#define _GET_TIMER(IO)        LPC1768_PIN_PWM(IO)
 
 /// Read a pin wrapper
 #define READ(IO)  _READ(IO)
@@ -111,9 +120,9 @@ bool useable_hardware_PWM(pin_t pin);
 #define SET_OUTPUT(IO)  do{ _SET_OUTPUT(IO); _WRITE(IO, LOW); }while(0)
 
 /// check if pin is an input wrapper
-#define GET_INPUT(IO)  _GET_INPUT(IO) // todo: Never used?
+#define GET_INPUT(IO)  _GET_INPUT(IO)
 /// check if pin is an output wrapper
-#define GET_OUTPUT(IO)  _GET_OUTPUT(IO) //todo: Never Used?
+#define GET_OUTPUT(IO)  _GET_OUTPUT(IO)
 
 /// check if pin is an timer wrapper
 #define GET_TIMER(IO)  _GET_TIMER(IO)