diff --git a/boards/px4/io-v2/src/board_config.h b/boards/px4/io-v2/src/board_config.h
index 475d450379816f68d50b49b03b8f66394b629db4..0571ae22f31ddd0c868f6969a9ba20b53f4ab4b7 100644
--- a/boards/px4/io-v2/src/board_config.h
+++ b/boards/px4/io-v2/src/board_config.h
@@ -77,6 +77,27 @@
 #define GPIO_LED3 (GPIO_OUTPUT|GPIO_CNF_OUTOD|GPIO_MODE_50MHz|GPIO_OUTPUT_SET|GPIO_PORTB|GPIO_PIN13)
 #define GPIO_LED4 (GPIO_OUTPUT|GPIO_CNF_OUTOD|GPIO_MODE_50MHz|GPIO_OUTPUT_SET|GPIO_PORTA|GPIO_PIN11)
 
+#define GPIO_HEATER_OFF (GPIO_OUTPUT|GPIO_CNF_OUTPP|GPIO_MODE_50MHz|GPIO_OUTPUT_SET|GPIO_PORTB|GPIO_PIN14)
+
+#define GPIO_PC14 (GPIO_INPUT|GPIO_CNF_INFLOAT|GPIO_MODE_INPUT|GPIO_PORTC|GPIO_PIN14)
+#define GPIO_PC15 (GPIO_INPUT|GPIO_CNF_INFLOAT|GPIO_MODE_INPUT|GPIO_PORTC|GPIO_PIN15)
+
+/*  PixHawk 1:
+ *      PC14 Floating
+ *      PC15 Floating
+ *
+ *  PixHawk 2:
+ *      PC14 3.3v
+ *      PC15 GND
+ */
+
+#define GPIO_SENSE_PC14_DN (GPIO_INPUT|GPIO_CNF_INPULLDWN|GPIO_MODE_INPUT|GPIO_PORTC|GPIO_PIN14)
+#define GPIO_SENSE_PC15_UP (GPIO_INPUT|GPIO_CNF_INPULLUP|GPIO_MODE_INPUT|GPIO_PORTC|GPIO_PIN15)
+# define SENSE_PH1 0b10 /* Floating pulled as set */
+# define SENSE_PH2 0b01 /* Driven as tied */
+
+#define GPIO_HEATER_OFF (GPIO_OUTPUT|GPIO_CNF_OUTPP|GPIO_MODE_50MHz|GPIO_OUTPUT_SET|GPIO_PORTB|GPIO_PIN14)
+
 #define GPIO_USART1_RX_SPEKTRUM		(GPIO_OUTPUT|GPIO_CNF_OUTPP|GPIO_MODE_50MHz|GPIO_OUTPUT_SET|GPIO_PORTA|GPIO_PIN10)
 
 /* Safety switch button *******************************************************/
diff --git a/boards/px4/io-v2/src/init.c b/boards/px4/io-v2/src/init.c
index f7ba3635803c1bbd44986098af0b9c9cc9b06692..4d064e5b1354bba922b30f336a21100294fa70b0 100644
--- a/boards/px4/io-v2/src/init.c
+++ b/boards/px4/io-v2/src/init.c
@@ -86,12 +86,36 @@ __EXPORT void stm32_boardinitialize(void)
 
 	/* configure GPIOs */
 
+	/* Set up for sensing HW */
+
+	stm32_configgpio(GPIO_SENSE_PC14_DN);
+	stm32_configgpio(GPIO_SENSE_PC15_UP);
+
 	/* LEDS - default to off */
 	stm32_configgpio(GPIO_LED1);
 	stm32_configgpio(GPIO_LED2);
 	stm32_configgpio(GPIO_LED3);
 	stm32_configgpio(GPIO_LED4);
 
+	/*  PixHawk 1:
+	 *      PC14 Floating
+	 *      PC15 Floating
+	 *
+	 *  PixHawk 2:
+	 *      PC14 3.3v
+	 *      PC15 GND
+	 */
+
+	uint8_t sense = stm32_gpioread(GPIO_SENSE_PC15_UP) << 1  | stm32_gpioread(GPIO_SENSE_PC14_DN);
+
+	if (sense == SENSE_PH2) {
+		stm32_configgpio(GPIO_HEATER_OFF);
+	}
+
+	stm32_configgpio(GPIO_PC14);
+	stm32_configgpio(GPIO_PC15);
+
+
 	stm32_configgpio(GPIO_BTN_SAFETY);
 
 	/* spektrum power enable is active high - enable it by default */