mirror of
https://github.com/meshtastic/firmware.git
synced 2025-10-27 23:12:39 +00:00
240 lines
9.1 KiB
C
240 lines
9.1 KiB
C
// ELRS Target Selection - automatically defined by PlatformIO environment
|
|
// #define ELRS_BAYCKRC_RRD1_2400
|
|
// #define ELRS_GENERIC_C3_TD_2400
|
|
// #define ELRS_HDZERO_HALO_2400
|
|
// #define ELRS_BAYCKRC_PWMC3_2400
|
|
// #define ELRS_GENERIC_C3_PWM_2400
|
|
// #define ELRS_JUMPER_C3_PWM6_2400
|
|
// #define ELRS_BAYCKRC_RRD2_DUAL
|
|
// #define ELRS_BAYCKRC_DUALC3_DUAL
|
|
// #define ELRS_BETAFPV_SUPERX_NANO_DUAL
|
|
// #define ELRS_BROTHERHOBBY_DUALC3_DUAL
|
|
// #define ELRS_GENERIC_C3_TRUE_DIVERSITY_DUAL
|
|
// #define ELRS_BAYCKRC_RR2_DUAL
|
|
// #define ELRS_BAYCKRC_SINGLE_DUAL
|
|
// #define ELRS_BAYCKRC_UR100_DUAL
|
|
// #define ELRS_BAYCKRC_UR500_DUAL
|
|
// #define ELRS_BAYCKRC_UR1000_DUAL
|
|
// #define ELRS_BETAFPV_SUPERX_MONO_DUAL
|
|
// #define ELRS_DAKEFPV_RX900_DUAL
|
|
// #define ELRS_GENERIC_C3_PLAIN_DUAL
|
|
// #define ELRS_GEPRC_SINGLE_DUAL
|
|
// #define ELRS_SUB250_SINGLE_DUAL
|
|
// #define ELRS_RADIOMASTER_XR2_DUAL
|
|
// #define ELRS_RADIOMASTER_XR1_DUAL
|
|
// #define ELRS_RADIOMASTER_XR3_DUAL
|
|
// #define ELRS_BAYCKRC_PWM_DUAL
|
|
// #define ELRS_GENERIC_C3_PWM_DUAL
|
|
// #define ELRS_BOTLAB_BOTLINK1_2400
|
|
// #define ELRS_FLYCOLOR_C3_2400
|
|
// #define ELRS_GENERIC_C3_PLAIN_2400
|
|
// #define ELRS_GENERIC_C3_PLAIN_PA_2400
|
|
// #define ELRS_HDZERO_AIO15_2400
|
|
// #define ELRS_NEWBEEDRONE_MICROG_2400
|
|
// #define ELRS_NEWBEEDRONE_C324D_2400
|
|
// #define ELRS_SPEEDYBEE_AIO_2400
|
|
// #define ELRS_TUNERC_TUNERC_2400_NANO_PA_RX_2400
|
|
|
|
// Common settings
|
|
#undef HAS_GPS
|
|
#undef GPS_RX_PIN
|
|
#undef GPS_TX_PIN
|
|
#undef EXT_NOTIFY_OUT
|
|
|
|
// Global chip-specific pin mappings
|
|
// SX128X mappings (2.4GHz)
|
|
#define SX128X_CS LORA_CS
|
|
#define SX128X_DIO1 LORA_DIO1
|
|
#define SX128X_BUSY LORA_BUSY
|
|
#define SX128X_RESET LORA_RESET
|
|
|
|
// LR1121 mappings (dual-band)
|
|
#define LR1121_SPI_NSS_PIN LORA_CS
|
|
#define LR1121_SPI_SCK_PIN LORA_SCK
|
|
#define LR1121_SPI_MOSI_PIN LORA_MOSI
|
|
#define LR1121_SPI_MISO_PIN LORA_MISO
|
|
#define LR1121_NRESET_PIN LORA_RESET
|
|
#define LR1121_BUSY_PIN LORA_BUSY
|
|
#define LR1121_IRQ_PIN LORA_DIO1
|
|
#define LR11X0_DIO_AS_RF_SWITCH
|
|
|
|
// Second radio mappings for true diversity
|
|
#define SX128X_CS_2 LORA_CS_2
|
|
#define SX128X_DIO0_2 LORA_DIO0_2
|
|
#define SX128X_DIO1_2 LORA_DIO1_2
|
|
#define SX128X_BUSY_2 LORA_BUSY_2
|
|
#define SX128X_RESET_2 LORA_RESET_2
|
|
#define LR1121_SPI_NSS_2_PIN LORA_CS_2
|
|
#define LR1121_NRESET_2_PIN LORA_RESET_2
|
|
#define LR1121_BUSY_2_PIN LORA_BUSY_2
|
|
#define LR1121_IRQ_2_PIN LORA_DIO1_2
|
|
|
|
// Pin Configuration 1 - Shared by multiple targets
|
|
#if defined(ELRS_BAYCKRC_RRD1_2400) || defined(ELRS_GENERIC_C3_TD_2400) || defined(ELRS_HDZERO_HALO_2400)
|
|
#define USE_SX1280
|
|
#define TWO_RADIOS
|
|
|
|
// Radio pins
|
|
#define LORA_BUSY 3
|
|
#define LORA_CS 0
|
|
#define LORA_DIO1 1
|
|
#define LORA_MISO 5
|
|
#define LORA_MOSI 4
|
|
#define LORA_RESET 2
|
|
#define LORA_SCK 6
|
|
|
|
// Second radio pins (true diversity)
|
|
#define LORA_BUSY_2 8
|
|
#define LORA_CS_2 7
|
|
#define LORA_DIO1_2 18
|
|
#define LORA_RESET_2 10
|
|
|
|
// Other pins
|
|
#define NEOPIXEL_DATA 19
|
|
#define SERIAL_RX_PIN 20
|
|
#define SERIAL_TX_PIN 21
|
|
|
|
|
|
// RGB LED
|
|
#define HAS_NEOPIXEL
|
|
#define NEOPIXEL_COUNT 1
|
|
#define NEOPIXEL_TYPE (NEO_GRB + NEO_KHZ800)
|
|
#endif // defined(ELRS_BAYCKRC_RRD1_2400) || defined(ELRS_GENERIC_C3_TD_2400) || defined(ELRS_HDZERO_HALO_2400)
|
|
|
|
// Pin Configuration 2 - Shared by multiple targets
|
|
#if defined(ELRS_BAYCKRC_PWMC3_2400) || defined(ELRS_GENERIC_C3_PWM_2400) || defined(ELRS_JUMPER_C3_PWM6_2400)
|
|
#define USE_SX1280
|
|
|
|
// Radio pins
|
|
#define LORA_BUSY 3
|
|
#define LORA_CS 7
|
|
#define LORA_DIO1 1
|
|
#define LORA_MISO 5
|
|
#define LORA_MOSI 4
|
|
#define LORA_RESET 2
|
|
#define LORA_SCK 6
|
|
|
|
// Other pins
|
|
#define NEOPIXEL_DATA 8
|
|
|
|
|
|
// RGB LED
|
|
#define HAS_NEOPIXEL
|
|
#define NEOPIXEL_COUNT 1
|
|
#define NEOPIXEL_TYPE (NEO_GRB + NEO_KHZ800)
|
|
#endif // defined(ELRS_BAYCKRC_PWMC3_2400) || defined(ELRS_GENERIC_C3_PWM_2400) || defined(ELRS_JUMPER_C3_PWM6_2400)
|
|
|
|
// Pin Configuration 3 - Shared by multiple targets
|
|
#if defined(ELRS_BAYCKRC_RRD2_DUAL) || defined(ELRS_BAYCKRC_DUALC3_DUAL) || defined(ELRS_BETAFPV_SUPERX_NANO_DUAL) || defined(ELRS_BROTHERHOBBY_DUALC3_DUAL) || defined(ELRS_GENERIC_C3_TRUE_DIVERSITY_DUAL)
|
|
#define USE_LR1121
|
|
#define TWO_RADIOS
|
|
|
|
// Radio pins
|
|
#define LORA_BUSY 3
|
|
#define LORA_CS 0
|
|
#define LORA_DIO1 1
|
|
#define LORA_MISO 5
|
|
#define LORA_MOSI 4
|
|
#define LORA_RESET 2
|
|
#define LORA_SCK 6
|
|
|
|
// Second radio pins (true diversity)
|
|
#define LORA_BUSY_2 8
|
|
#define LORA_CS_2 7
|
|
#define LORA_DIO1_2 18
|
|
#define LORA_RESET_2 10
|
|
|
|
// Other pins
|
|
#define NEOPIXEL_DATA 19
|
|
#define SERIAL_RX_PIN 20
|
|
#define SERIAL_TX_PIN 21
|
|
|
|
|
|
// RGB LED
|
|
#define HAS_NEOPIXEL
|
|
#define NEOPIXEL_COUNT 1
|
|
#define NEOPIXEL_TYPE (NEO_GRB + NEO_KHZ800)
|
|
#endif // defined(ELRS_BAYCKRC_RRD2_DUAL) || defined(ELRS_BAYCKRC_DUALC3_DUAL) || defined(ELRS_BETAFPV_SUPERX_NANO_DUAL) || defined(ELRS_BROTHERHOBBY_DUALC3_DUAL) || defined(ELRS_GENERIC_C3_TRUE_DIVERSITY_DUAL)
|
|
|
|
// Pin Configuration 4 - Shared by multiple targets
|
|
#if defined(ELRS_BAYCKRC_RR2_DUAL) || defined(ELRS_BAYCKRC_SINGLE_DUAL) || defined(ELRS_BAYCKRC_UR100_DUAL) || defined(ELRS_BAYCKRC_UR500_DUAL) || defined(ELRS_BAYCKRC_UR1000_DUAL) || defined(ELRS_BETAFPV_SUPERX_MONO_DUAL) || defined(ELRS_DAKEFPV_RX900_DUAL) || defined(ELRS_GENERIC_C3_PLAIN_DUAL) || defined(ELRS_GEPRC_SINGLE_DUAL) || defined(ELRS_SUB250_SINGLE_DUAL) || defined(ELRS_RADIOMASTER_XR2_DUAL) || defined(ELRS_RADIOMASTER_XR1_DUAL) || defined(ELRS_RADIOMASTER_XR3_DUAL)
|
|
#define USE_LR1121
|
|
|
|
// Radio pins
|
|
#define LORA_BUSY 3
|
|
#define LORA_CS 7
|
|
#define LORA_DIO1 1
|
|
#define LORA_MISO 5
|
|
#define LORA_MOSI 4
|
|
#define LORA_RESET 2
|
|
#define LORA_SCK 6
|
|
|
|
// Other pins
|
|
#define NEOPIXEL_DATA 8
|
|
#define SERIAL_RX_PIN 20
|
|
#define SERIAL_TX_PIN 21
|
|
|
|
|
|
// RGB LED
|
|
#define HAS_NEOPIXEL
|
|
#define NEOPIXEL_COUNT 1
|
|
#define NEOPIXEL_TYPE (NEO_GRB + NEO_KHZ800)
|
|
#endif // defined(ELRS_BAYCKRC_RR2_DUAL) || defined(ELRS_BAYCKRC_SINGLE_DUAL) || defined(ELRS_BAYCKRC_UR100_DUAL) || defined(ELRS_BAYCKRC_UR500_DUAL) || defined(ELRS_BAYCKRC_UR1000_DUAL) || defined(ELRS_BETAFPV_SUPERX_MONO_DUAL) || defined(ELRS_DAKEFPV_RX900_DUAL) || defined(ELRS_GENERIC_C3_PLAIN_DUAL) || defined(ELRS_GEPRC_SINGLE_DUAL) || defined(ELRS_SUB250_SINGLE_DUAL) || defined(ELRS_RADIOMASTER_XR2_DUAL) || defined(ELRS_RADIOMASTER_XR1_DUAL) || defined(ELRS_RADIOMASTER_XR3_DUAL)
|
|
|
|
// Pin Configuration 5 - Shared by multiple targets
|
|
#if defined(ELRS_BAYCKRC_PWM_DUAL) || defined(ELRS_GENERIC_C3_PWM_DUAL)
|
|
#define USE_LR1121
|
|
|
|
// Radio pins
|
|
#define LORA_BUSY 3
|
|
#define LORA_CS 7
|
|
#define LORA_DIO1 1
|
|
#define LORA_MISO 5
|
|
#define LORA_MOSI 4
|
|
#define LORA_RESET 2
|
|
#define LORA_SCK 6
|
|
|
|
// Other pins
|
|
#define NEOPIXEL_DATA 8
|
|
|
|
|
|
// RGB LED
|
|
#define HAS_NEOPIXEL
|
|
#define NEOPIXEL_COUNT 1
|
|
#define NEOPIXEL_TYPE (NEO_GRB + NEO_KHZ800)
|
|
#endif // defined(ELRS_BAYCKRC_PWM_DUAL) || defined(ELRS_GENERIC_C3_PWM_DUAL)
|
|
|
|
// Pin Configuration 6 - Shared by multiple targets
|
|
#if defined(ELRS_BOTLAB_BOTLINK1_2400) || defined(ELRS_FLYCOLOR_C3_2400) || defined(ELRS_GENERIC_C3_PLAIN_2400) || defined(ELRS_GENERIC_C3_PLAIN_PA_2400) || defined(ELRS_HDZERO_AIO15_2400) || defined(ELRS_NEWBEEDRONE_MICROG_2400) || defined(ELRS_NEWBEEDRONE_C324D_2400) || defined(ELRS_SPEEDYBEE_AIO_2400) || defined(ELRS_TUNERC_TUNERC_2400_NANO_PA_RX_2400)
|
|
#define USE_SX1280
|
|
|
|
// Radio pins
|
|
#define LORA_BUSY 3
|
|
#define LORA_CS 7
|
|
#define LORA_DIO1 1
|
|
#define LORA_MISO 5
|
|
#define LORA_MOSI 4
|
|
#define LORA_RESET 2
|
|
#define LORA_SCK 6
|
|
|
|
// Other pins
|
|
#define NEOPIXEL_DATA 8
|
|
#define SERIAL_RX_PIN 20
|
|
#define SERIAL_TX_PIN 21
|
|
|
|
|
|
// RGB LED
|
|
#define HAS_NEOPIXEL
|
|
#define NEOPIXEL_COUNT 1
|
|
#define NEOPIXEL_TYPE (NEO_GRB + NEO_KHZ800)
|
|
#endif // defined(ELRS_BOTLAB_BOTLINK1_2400) || defined(ELRS_FLYCOLOR_C3_2400) || defined(ELRS_GENERIC_C3_PLAIN_2400) || defined(ELRS_GENERIC_C3_PLAIN_PA_2400) || defined(ELRS_HDZERO_AIO15_2400) || defined(ELRS_NEWBEEDRONE_MICROG_2400) || defined(ELRS_NEWBEEDRONE_C324D_2400) || defined(ELRS_SPEEDYBEE_AIO_2400) || defined(ELRS_TUNERC_TUNERC_2400_NANO_PA_RX_2400)
|
|
|
|
// Set second radio CS pin high at startup to disable it
|
|
#if defined(TWO_RADIOS)
|
|
#define PIN_ENABLE_HIGH LORA_CS_2
|
|
#endif // TWO_RADIOS
|
|
|
|
// Ensure only one target is selected
|
|
#if defined(ELRS_BAYCKRC_RRD1_2400) + defined(ELRS_GENERIC_C3_TD_2400) + defined(ELRS_HDZERO_HALO_2400) + defined(ELRS_BAYCKRC_PWMC3_2400) + defined(ELRS_GENERIC_C3_PWM_2400) + defined(ELRS_JUMPER_C3_PWM6_2400) + defined(ELRS_BAYCKRC_RRD2_DUAL) + defined(ELRS_BAYCKRC_DUALC3_DUAL) + defined(ELRS_BETAFPV_SUPERX_NANO_DUAL) + defined(ELRS_BROTHERHOBBY_DUALC3_DUAL) + defined(ELRS_GENERIC_C3_TRUE_DIVERSITY_DUAL) + defined(ELRS_BAYCKRC_RR2_DUAL) + defined(ELRS_BAYCKRC_SINGLE_DUAL) + defined(ELRS_BAYCKRC_UR100_DUAL) + defined(ELRS_BAYCKRC_UR500_DUAL) + defined(ELRS_BAYCKRC_UR1000_DUAL) + defined(ELRS_BETAFPV_SUPERX_MONO_DUAL) + defined(ELRS_DAKEFPV_RX900_DUAL) + defined(ELRS_GENERIC_C3_PLAIN_DUAL) + defined(ELRS_GEPRC_SINGLE_DUAL) + defined(ELRS_SUB250_SINGLE_DUAL) + defined(ELRS_RADIOMASTER_XR2_DUAL) + defined(ELRS_RADIOMASTER_XR1_DUAL) + defined(ELRS_RADIOMASTER_XR3_DUAL) + defined(ELRS_BAYCKRC_PWM_DUAL) + defined(ELRS_GENERIC_C3_PWM_DUAL) + defined(ELRS_BOTLAB_BOTLINK1_2400) + defined(ELRS_FLYCOLOR_C3_2400) + defined(ELRS_GENERIC_C3_PLAIN_2400) + defined(ELRS_GENERIC_C3_PLAIN_PA_2400) + defined(ELRS_HDZERO_AIO15_2400) + defined(ELRS_NEWBEEDRONE_MICROG_2400) + defined(ELRS_NEWBEEDRONE_C324D_2400) + defined(ELRS_SPEEDYBEE_AIO_2400) + defined(ELRS_TUNERC_TUNERC_2400_NANO_PA_RX_2400) != 1
|
|
#error "Exactly one ELRS target must be defined"
|
|
#endif |