// Check selected board type #if defined (STM32_BOARD) && defined (ORANGE_TX) #error You must comment the board type STM32_BOARD in _Config.h to compile ORANGE_TX #endif #if not defined (ORANGE_TX) && not defined (STM32_BOARD) //Atmega328p #if not defined(ARDUINO_AVR_PRO) && not defined(ARDUINO_MULTI_NO_BOOT) && not defined(ARDUINO_MULTI_FLASH_FROM_TX) && not defined(ARDUINO_AVR_MINI) && not defined(ARDUINO_AVR_NANO) #error You must select one of these boards: "Multi 4-in-1", "Arduino Pro or Pro Mini" or "Arduino Mini" #endif #if F_CPU != 16000000L || not defined(__AVR_ATmega328P__) #error You must select the processor type "ATmega328(5V, 16MHz)" #endif #endif #if defined (STM32_BOARD) && not defined (ORANGE_TX) //STM32 #if not defined(ARDUINO_GENERIC_STM32F103C) && not defined(ARDUINO_MULTI_STM32_FLASH_FROM_TX) && not defined(ARDUINO_MULTI_STM32_NO_BOOT) #error You must select one of these boards: "Multi 4-in-1 (STM32F103CB)" or "Generic STM32F103C series" #endif #endif // Error if CHECK_FOR_BOOTLOADER is not enabled but a FLASH_FROM_TX board is selected #if (defined(ARDUINO_MULTI_FLASH_FROM_TX) || defined(ARDUINO_MULTI_STM32_FLASH_FROM_TX)) &! defined(CHECK_FOR_BOOTLOADER) #if defined(STM32_BOARD) #error "You have selected the 'Flash from TX' upload method but not enabled CHECK_FOR_BOOTLOADER." #else #error "You have selected the 'Flash from TX' bootloader but not enabled CHECK_FOR_BOOTLOADER." #endif #endif // Error if CHECK_FOR_BOOTLOADER is enabled but the 'Flash from TX' bootloader or upload method isn't selected. #if (defined(ARDUINO_MULTI_NO_BOOT) || defined(ARDUINO_MULTI_STM32_NO_BOOT)) && defined(CHECK_FOR_BOOTLOADER) #if defined(STM32_BOARD) #error "You have enabled CHECK_FOR_BOOTLOADER but not selected the 'Flash from TX' upload method." #else #error "You have enabled CHECK_FOR_BOOTLOADER but not selected the 'Flash from TX' bootloader." #endif #endif //Check failsafe throttle value #ifdef FAILSAFE_ENABLE #if ( FAILSAFE_THROTTLE_LOW < -125 ) || ( FAILSAFE_THROTTLE_LOW > 125 ) #error "The failsafe value for throttle is outside of the range -125..125." #endif #endif // Check forced tuning values are valid #ifdef FORCE_FRSKYD_TUNING #if ( FORCE_FRSKYD_TUNING < -127 ) || ( FORCE_FRSKYD_TUNING > 127 ) #error "The FrSkyD forced frequency tuning value is outside of the range -127..127." #endif #endif #ifdef FORCE_FRSKYV_TUNING #if ( FORCE_FRSKYV_TUNING < -127 ) || ( FORCE_FRSKYV_TUNING > 127 ) #error "The FrSkyV forced frequency tuning value is outside of the range -127..127." #endif #endif #ifdef FORCE_FRSKYX_TUNING #if ( FORCE_FRSKYX_TUNING < -127 ) || ( FORCE_FRSKYX_TUNING > 127 ) #error "The FrSkyX forced frequency tuning value is outside of the range -127..127." #endif #endif #ifdef FORCE_SFHSS_TUNING #if ( FORCE_SFHSS_TUNING < -127 ) || ( FORCE_SFHSS_TUNING > 127 ) #error "The SFHSS forced frequency tuning value is outside of the range -127..127." #endif #endif //Change/Force configuration if OrangeTX #ifdef ORANGE_TX #undef ENABLE_PPM // Disable PPM for OrangeTX module #undef A7105_INSTALLED // Disable A7105 for OrangeTX module #undef A7105_CSN_pin #undef CC2500_INSTALLED // Disable CC2500 for OrangeTX module #undef CC25_CSN_pin #undef NRF24L01_INSTALLED // Disable NRF for OrangeTX module #undef NRF_CSN_pin #define TELEMETRY // Enable telemetry #define INVERT_TELEMETRY // Enable invert telemetry #define DSM_TELEMETRY // Enable DSM telemetry #endif //Make sure protocols are selected correctly #ifndef A7105_INSTALLED #undef FLYSKY_A7105_INO #undef HUBSAN_A7105_INO #undef AFHDS2A_A7105_INO #endif #ifndef CYRF6936_INSTALLED #undef DEVO_CYRF6936_INO #undef DSM_CYRF6936_INO #undef J6PRO_CYRF6936_INO #undef WK2x01_CYRF6936_INO #endif #ifndef CC2500_INSTALLED #undef FRSKYD_CC2500_INO #undef FRSKYV_CC2500_INO #undef FRSKYX_CC2500_INO #undef SFHSS_CC2500_INO #endif #ifndef NRF24L01_INSTALLED #undef BAYANG_NRF24L01_INO #undef CG023_NRF24L01_INO #undef CX10_NRF24L01_INO #undef ESKY_NRF24L01_INO #undef HISKY_NRF24L01_INO #undef KN_NRF24L01_INO #undef SLT_NRF24L01_INO #undef SYMAX_NRF24L01_INO #undef V2X2_NRF24L01_INO #undef YD717_NRF24L01_INO #undef MT99XX_NRF24L01_INO #undef MJXQ_NRF24L01_INO #undef SHENQI_NRF24L01_INO #undef FY326_NRF24L01_INO #undef FQ777_NRF24L01_INO #undef ASSAN_NRF24L01_INO #undef HONTAI_NRF24L01_INO #undef Q303_NRF24L01_INO #undef GW008_NRF24L01_INO #undef DM002_NRF24L01_INO #undef CABELL_NRF24L01_INO #undef ESKY150_NRF24L01_INO #undef H8_3D_NRF24L01_INO #endif //Make sure telemetry is selected correctly #ifndef TELEMETRY #undef INVERT_TELEMETRY #undef AFHDS2A_FW_TELEMETRY #undef AFHDS2A_HUB_TELEMETRY #undef BAYANG_HUB_TELEMETRY #undef CABELL_HUB_TELEMETRY #undef HUBSAN_HUB_TELEMETRY #undef HUB_TELEMETRY #undef SPORT_TELEMETRY #undef DSM_TELEMETRY #undef MULTI_STATUS #undef MULTI_TELEMETRY #else #if defined MULTI_TELEMETRY && not defined INVERT_TELEMETRY #warning MULTI_TELEMETRY has been defined but not INVERT_TELEMETRY. They should be both enabled for OpenTX telemetry and status to work. #endif #if not defined(BAYANG_NRF24L01_INO) #undef BAYANG_HUB_TELEMETRY #endif #if not defined(CABELL_NRF24L01_INO) #undef CABELL_HUB_TELEMETRY #endif #if not defined(HUBSAN_A7105_INO) #undef HUBSAN_HUB_TELEMETRY #endif #if not defined(AFHDS2A_A7105_INO) #undef AFHDS2A_HUB_TELEMETRY #undef AFHDS2A_FW_TELEMETRY #endif #if not defined(FRSKYD_CC2500_INO) #undef HUB_TELEMETRY #endif #if not defined(FRSKYX_CC2500_INO) #undef SPORT_TELEMETRY #endif #if not defined(DSM_CYRF6936_INO) #undef DSM_TELEMETRY #endif #if not defined(DSM_TELEMETRY) && not defined(SPORT_TELEMETRY) && not defined(HUB_TELEMETRY) && not defined(HUBSAN_HUB_TELEMETRY) && not defined(BAYANG_HUB_TELEMETRY) && not defined(CABELL_HUB_TELEMETRY) && not defined(AFHDS2A_HUB_TELEMETRY) && not defined(AFHDS2A_FW_TELEMETRY) && not defined(MULTI_TELEMETRY) && not defined(MULTI_STATUS) #undef TELEMETRY #undef INVERT_TELEMETRY #endif #endif #if not defined (SPORT_TELEMETRY) || not defined (STM32_BOARD) #undef SPORT_POLLING #endif //Make sure TX is defined correctly #ifndef AILERON #error You must select a correct channel order. #endif #if not defined(PPM_MAX_100) || not defined(PPM_MIN_100) || not defined(PPM_MAX_125) || not defined(PPM_MIN_125) #error You must set correct TX end points. #endif #if defined(ENABLE_BIND_CH) #if BIND_CH<4 #error BIND_CH must be above 4. #endif #if BIND_CH>16 #error BIND_CH must be below or equal to 16. #endif #endif #if MIN_PPM_CHANNELS>16 #error MIN_PPM_CHANNELS must be below or equal to 16. The default for this value is 4. #endif #if MIN_PPM_CHANNELS<2 #error MIN_PPM_CHANNELS must be larger than 1. The default for this value is 4. #endif #if MAX_PPM_CHANNELS16 #error MAX_PPM_CHANNELS must be below or equal to 16. The default for this value is 16. #endif