-#if IRSND_SUPPORT_RECS80_PROTOCOL == 1 && F_INTERRUPTS < 20000\r
-#warning F_INTERRUPTS too low, RECS80 protocol disabled (should be at least 20000)\r
-#undef IRSND_SUPPORT_RECS80_PROTOCOL\r
-#define IRSND_SUPPORT_RECS80_PROTOCOL 0 // DO NOT CHANGE! F_INTERRUPTS too low!\r
-#endif\r
+# else // C18 compiler\r
+# define IRSND_OCx IRSND_PIC_CCP2 // Use PWMx for PIC\r
+ // change other PIC C18 specific settings:\r
+# define F_CPU 48000000UL // PIC frequency: set your freq here\r
+# define Pre_Scaler 4 // define prescaler for timer2 e.g. 1,4,16\r
+# define PIC_Scaler 2 // PIC needs /2 extra in IRSND_FREQ_32_KHZ calculation for right value\r
+# endif\r
+\r
+/*---------------------------------------------------------------------------------------------------------------------------------------------------\r
+ * ARM STM32 section:\r
+ *---------------------------------------------------------------------------------------------------------------------------------------------------\r
+ */\r
+#elif defined (ARM_STM32) // use B6 as IR output on STM32\r
+# define IRSND_PORT_LETTER B\r
+# define IRSND_BIT_NUMBER 6\r
+# define IRSND_TIMER_NUMBER 4\r
+# define IRSND_TIMER_CHANNEL_NUMBER 1 // only channel 1 can be used at the moment, others won't work\r