+/*---------------------------------------------------------------------------------------------------------------------------------------------------\r
+ * PENTAX:\r
+ *---------------------------------------------------------------------------------------------------------------------------------------------------\r
+ */\r
+#define PENTAX_START_BIT_PULSE_TIME 13000.0e-6 // 13 msec pulse\r
+#define PENTAX_START_BIT_PAUSE_TIME 3000.0e-6 // 3 msec pause\r
+#define PENTAX_PULSE_TIME 1000.0e-6 // 1 msec pulse\r
+#define PENTAX_1_PAUSE_TIME 3000.0e-6 // 3 msec pause\r
+#define PENTAX_0_PAUSE_TIME 1000.0e-6 // 1 msec pause\r
+#define PENTAX_FRAME_REPEAT_PAUSE_TIME 60.0e-3 // frame repeat after 60ms\r
+#define PENTAX_ADDRESS_OFFSET 0 // skip 0 bits\r
+#define PENTAX_ADDRESS_LEN 0 // read 0 address bits\r
+#define PENTAX_COMMAND_OFFSET 0 // skip 0 bits\r
+#define PENTAX_COMMAND_LEN 6 // read 6 bits\r
+#define PENTAX_COMPLETE_DATA_LEN 6 // complete length\r
+#define PENTAX_STOP_BIT 1 // has stop bit\r
+#define PENTAX_LSB 0 // LSB...MSB\r
+#define PENTAX_FLAGS 0 // flags\r
+\r
+/*---------------------------------------------------------------------------------------------------------------------------------------------------\r
+ * ACP24: Stiebel Eltron ACP24 air conditioner\r
+ *---------------------------------------------------------------------------------------------------------------------------------------------------\r
+ */\r
+#define ACP24_START_BIT_PULSE_TIME 390.0e-6 // 390 usec pulse\r
+#define ACP24_START_BIT_PAUSE_TIME 950.0e-6 // 950 usec pause\r
+#define ACP24_PULSE_TIME 390.0e-6 // 390 usec pulse\r
+#define ACP24_1_PAUSE_TIME 1300.0e-6 // 1300 usec pause\r
+#define ACP24_0_PAUSE_TIME 950.0e-6 // 950 usec pause\r
+#define ACP24_FRAME_REPEAT_PAUSE_TIME 22.0e-3 // frame repeat after 22ms?\r
+#define ACP24_ADDRESS_OFFSET 0 // skip 0 bits\r
+#define ACP24_ADDRESS_LEN 0 // read 6 address bits\r
+#define ACP24_COMMAND_OFFSET 0 // skip 6 bits\r
+#define ACP24_COMMAND_LEN 0 // read 0 bits (70 bits will be read and compressed by special routine)\r
+#define ACP24_COMPLETE_DATA_LEN 70 // complete length\r
+#define ACP24_STOP_BIT 1 // has stop bit\r
+#define ACP24_LSB 0 // LSB...MSB\r
+#define ACP24_FLAGS 0 // flags\r
+\r
+/*---------------------------------------------------------------------------------------------------------------------------------------------------\r
+ * RADIO1 - e.g. Tevion\r
+ *---------------------------------------------------------------------------------------------------------------------------------------------------\r
+ */\r
+#define RADIO1_START_BIT_PULSE_TIME 3000.0e-6 // 3000 usec pulse\r
+#define RADIO1_START_BIT_PAUSE_TIME 7000.0e-6 // 7000 usec pulse\r
+#define RADIO1_0_PULSE_TIME 500.0e-6 // 500 usec pulse\r
+#define RADIO1_0_PAUSE_TIME 1000.0e-6 // 1000 usec pause\r
+#define RADIO1_1_PULSE_TIME 1000.0e-6 // 1000 usec pulse\r
+#define RADIO1_1_PAUSE_TIME 500.0e-6 // 500 usec pause\r
+\r
+#define RADIO1_FRAME_REPEAT_PAUSE_TIME 25.0e-3 // frame repeat after 25ms\r
+#define RADIO1_ADDRESS_OFFSET 4 // skip 4 bits\r
+#define RADIO1_ADDRESS_LEN 16 // read 16 address bits\r
+#define RADIO1_COMMAND_OFFSET 20 // skip 4 + 16 bits\r
+#define RADIO1_COMMAND_LEN 3 // read 3 command bits\r
+#define RADIO1_COMPLETE_DATA_LEN 23 // complete length\r
+#define RADIO1_STOP_BIT 1 // has stop bit\r
+#define RADIO1_LSB 1 // LSB...MSB?\r
+#define RADIO1_FLAGS 0 // flags\r
+\r