Gemini Xrossband (GemX) - LR1121 Driver (#2540)
[ExpressLRS.git] / src / include / target / Unified_ESP32_TX.h
blob20f5c8501f7985e1dbcf3efb7e6afb308238b5b5
1 #define TARGET_UNIFIED_TX
3 #define HARDWARE_VERSION ""
4 // DEVICE_NAME is not defined here because we get it from the SPIFFS file system
6 // // FM30
7 // TARGET_TX_FM30
8 // GPIO_PIN_ANT_CTRL
9 // GPIO_PIN_BLUETOOTH_EN
10 // GPIO_PIN_UART1RX_INVERT
11 // GPIO_PIN_UART1TX_INVERT
12 // GPIO_PIN_UART3RX_INVERT
14 // // Ghost
15 // TARGET_RX_GHOST_ATTO_V1
16 // TARGET_TX_GHOST
17 // TARGET_TX_GHOST_LITE
18 // GPIO_PIN_RF_AMP_DET // unused
20 // // Frsky/HM915
21 // GPIO_PIN_VRF1 // unused
22 // GPIO_PIN_VRF2 // unused
23 // GPIO_PIN_SWR // unused
24 // TARGET_EEPROM_400K
25 // TARGET_EEPROM_ADDR
26 // TARGET_USE_EEPROM
28 // // various (unused)
29 // GPIO_PIN_DIP1
30 // GPIO_PIN_DIP2
31 // GPIO_PIN_DIP3
32 // GPIO_PIN_DIP4
35 // ====================================
38 // Serial
39 #define GPIO_PIN_RCSIGNAL_RX hardware_pin(HARDWARE_serial_rx)
40 #define GPIO_PIN_RCSIGNAL_TX hardware_pin(HARDWARE_serial_tx)
42 // Radio
43 #define GPIO_PIN_BUSY hardware_pin(HARDWARE_radio_busy)
44 #define GPIO_PIN_BUSY_2 hardware_pin(HARDWARE_radio_busy_2)
45 #define GPIO_PIN_DIO0 hardware_pin(HARDWARE_radio_dio0)
46 #define GPIO_PIN_DIO0_2 hardware_pin(HARDWARE_radio_dio0_2)
47 #define GPIO_PIN_DIO1 hardware_pin(HARDWARE_radio_dio1)
48 #define GPIO_PIN_DIO1_2 hardware_pin(HARDWARE_radio_dio1_2)
49 #define GPIO_PIN_DIO2 hardware_pin(HARDWARE_radio_dio2)
50 #define GPIO_PIN_MISO hardware_pin(HARDWARE_radio_miso)
51 #define GPIO_PIN_MOSI hardware_pin(HARDWARE_radio_mosi)
52 #define GPIO_PIN_NSS hardware_pin(HARDWARE_radio_nss)
53 #define GPIO_PIN_NSS_2 hardware_pin(HARDWARE_radio_nss_2)
54 #define GPIO_PIN_RST hardware_pin(HARDWARE_radio_rst)
55 #define GPIO_PIN_RST_2 hardware_pin(HARDWARE_radio_rst_2)
56 #define GPIO_PIN_SCK hardware_pin(HARDWARE_radio_sck)
57 #define USE_HARDWARE_DCDC
58 #define OPT_USE_HARDWARE_DCDC hardware_flag(HARDWARE_radio_dcdc)
59 #define USE_SX1276_RFO_HF
60 #define OPT_USE_SX1276_RFO_HF hardware_flag(HARDWARE_radio_rfo_hf)
62 // Radio Antenna
63 #define GPIO_PIN_ANT_CTRL hardware_pin(HARDWARE_ant_ctrl)
64 #define GPIO_PIN_ANT_CTRL_COMPL hardware_pin(HARDWARE_ant_ctrl_compl)
66 // Radio power
67 #define GPIO_PIN_PA_ENABLE hardware_pin(HARDWARE_power_enable)
68 #define GPIO_PIN_RFamp_APC1 hardware_pin(HARDWARE_power_apc1)
69 #define GPIO_PIN_RFamp_APC2 hardware_pin(HARDWARE_power_apc2)
70 #define GPIO_PIN_RX_ENABLE hardware_pin(HARDWARE_power_rxen)
71 #define GPIO_PIN_TX_ENABLE hardware_pin(HARDWARE_power_txen)
72 #define GPIO_PIN_RX_ENABLE_2 hardware_pin(HARDWARE_power_rxen_2)
73 #define GPIO_PIN_TX_ENABLE_2 hardware_pin(HARDWARE_power_txen_2)
74 #define LBT_RSSI_THRESHOLD_OFFSET_DB hardware_int(HARDWARE_power_lna_gain)
75 #define MinPower (PowerLevels_e)hardware_int(HARDWARE_power_min)
76 #define HighPower (PowerLevels_e)hardware_int(HARDWARE_power_high)
77 #define MaxPower (PowerLevels_e)hardware_int(HARDWARE_power_max)
78 #define DefaultPower (PowerLevels_e)hardware_int(HARDWARE_power_default)
80 #define USE_SKY85321
81 #define GPIO_PIN_PA_PDET hardware_pin(HARDWARE_power_pdet)
82 #define SKY85321_PDET_INTERCEPT hardware_float(HARDWARE_power_pdet_intercept)
83 #define SKY85321_PDET_SLOPE hardware_float(HARDWARE_power_pdet_slope)
85 // default value 0 means direct!
86 // #define POWER_OUTPUT_ANALOG (hardware_int(HARDWARE_power_control)==1) // frsky only
87 // #define POWER_OUTPUT_DAC (hardware_int(HARDWARE_power_control)==2) // stm32 only
88 #define POWER_OUTPUT_DACWRITE (hardware_int(HARDWARE_power_control)==3)
89 #define POWER_OUTPUT_FIXED -99
90 #define POWER_OUTPUT_VALUES hardware_i16_array(HARDWARE_power_values)
91 #define POWER_OUTPUT_VALUES2 hardware_i16_array(HARDWARE_power_values2)
92 #define POWER_OUTPUT_VALUES_DUAL hardware_i16_array(HARDWARE_power_values_dual)
94 // Input
95 #define HAS_FIVE_WAY_BUTTON
97 #define GPIO_PIN_JOYSTICK hardware_pin(HARDWARE_joystick)
98 #define JOY_ADC_VALUES hardware_u16_array(HARDWARE_joystick_values)
100 #define GPIO_PIN_FIVE_WAY_INPUT1 hardware_pin(HARDWARE_five_way1)
101 #define GPIO_PIN_FIVE_WAY_INPUT2 hardware_pin(HARDWARE_five_way2)
102 #define GPIO_PIN_FIVE_WAY_INPUT3 hardware_pin(HARDWARE_five_way3)
104 #define GPIO_PIN_BUTTON hardware_pin(HARDWARE_button)
105 #define USER_BUTTON_LED hardware_pin(HARDWARE_button_led_index)
106 #define GPIO_PIN_BUTTON2 hardware_pin(HARDWARE_button2)
107 #define USER_BUTTON2_LED hardware_pin(HARDWARE_button2_led_index)
109 // Lighting
110 #define GPIO_PIN_LED hardware_pin(HARDWARE_led)
111 #define GPIO_PIN_LED_BLUE hardware_pin(HARDWARE_led_blue)
112 #define GPIO_LED_BLUE_INVERTED hardware_pin(HARDWARE_led_blue_invert)
113 #define GPIO_PIN_LED_GREEN hardware_pin(HARDWARE_led_green)
114 #define GPIO_LED_GREEN_INVERTED hardware_flag(HARDWARE_led_green_invert)
115 #define GPIO_PIN_LED_GREEN_RED hardware_pin(HARDWARE_led_green_red)
116 #define GPIO_PIN_LED_RED hardware_pin(HARDWARE_led_red)
117 #define GPIO_LED_RED_INVERTED hardware_pin(HARDWARE_led_red_invert)
118 #define GPIO_PIN_LED_RED_GREEN hardware_pin(HARDWARE_led_red_green)
120 #define GPIO_PIN_LED_WS2812 hardware_pin(HARDWARE_led_rgb)
121 // #define GPIO_PIN_LED_WS2812_FAST // stm32
122 #define WS2812_IS_GRB
123 #define OPT_WS2812_IS_GRB hardware_flag(HARDWARE_led_rgb_isgrb)
124 #define WS2812_STATUS_LEDS hardware_i16_array(HARDWARE_ledidx_rgb_status)
125 #define WS2812_STATUS_LEDS_COUNT hardware_int(HARDWARE_ledidx_rgb_status_count)
126 #define WS2812_VTX_STATUS_LEDS hardware_i16_array(HARDWARE_ledidx_rgb_vtx)
127 #define WS2812_VTX_STATUS_LEDS_COUNT hardware_int(HARDWARE_ledidx_rgb_vtx_count)
128 #define WS2812_BOOT_LEDS hardware_i16_array(HARDWARE_ledidx_rgb_boot)
129 #define WS2812_BOOT_LEDS_COUNT hardware_int(HARDWARE_ledidx_rgb_boot_count)
131 // OLED
132 #define GPIO_PIN_OLED_CS hardware_pin(HARDWARE_screen_cs) // SPI
133 #define GPIO_PIN_OLED_DC hardware_pin(HARDWARE_screen_dc) // SPI
134 #define GPIO_PIN_OLED_MOSI hardware_pin(HARDWARE_screen_mosi) // SPI
135 #define GPIO_PIN_OLED_RST hardware_pin(HARDWARE_screen_rst) // SPI & I2c (optional)
136 #define GPIO_PIN_OLED_SCK hardware_pin(HARDWARE_screen_sck) // clock for SPI & I2C
137 #define GPIO_PIN_OLED_SDA hardware_pin(HARDWARE_screen_sda) // I2C data
139 // screen_type == 0 is no oled
140 #define USE_OLED_I2C
141 #define OPT_USE_OLED_I2C (hardware_int(HARDWARE_screen_type)==1)
142 #define USE_OLED_SPI
143 #define OPT_USE_OLED_SPI (hardware_int(HARDWARE_screen_type)==2)
144 #define USE_OLED_SPI_SMALL
145 #define OPT_USE_OLED_SPI_SMALL (hardware_int(HARDWARE_screen_type)==3)
146 #define OLED_REVERSED
147 #define OPT_OLED_REVERSED hardware_flag(HARDWARE_screen_reversed)
149 // TFT
150 #define HAS_TFT_SCREEN
151 #define OPT_HAS_TFT_SCREEN (hardware_int(HARDWARE_screen_type)==4)
153 #define GPIO_PIN_TFT_BL hardware_pin(HARDWARE_screen_bl)
154 #define GPIO_PIN_TFT_CS hardware_pin(HARDWARE_screen_cs)
155 #define GPIO_PIN_TFT_DC hardware_pin(HARDWARE_screen_dc)
156 #define GPIO_PIN_TFT_MOSI hardware_pin(HARDWARE_screen_mosi)
157 #define GPIO_PIN_TFT_RST hardware_pin(HARDWARE_screen_rst)
158 #define GPIO_PIN_TFT_SCLK hardware_pin(HARDWARE_screen_sck)
160 // Backpack
161 #define USE_TX_BACKPACK
162 #define OPT_USE_TX_BACKPACK hardware_flag(HARDWARE_use_backpack)
163 #define BACKPACK_LOGGING_BAUD hardware_int(HARDWARE_debug_backpack_baud)
164 #define GPIO_PIN_DEBUG_RX hardware_pin(HARDWARE_debug_backpack_rx)
165 #define GPIO_PIN_DEBUG_TX hardware_pin(HARDWARE_debug_backpack_tx)
166 #define GPIO_PIN_BACKPACK_BOOT hardware_pin(HARDWARE_backpack_boot)
167 #define GPIO_PIN_BACKPACK_EN hardware_pin(HARDWARE_backpack_en)
168 #define PASSTHROUGH_BAUD hardware_int(HARDWARE_passthrough_baud)
170 // I2C
171 #define USE_I2C
172 #define GPIO_PIN_SCL hardware_pin(HARDWARE_i2c_scl)
173 #define GPIO_PIN_SDA hardware_pin(HARDWARE_i2c_sda)
175 // Misc sensors & things
176 #define GPIO_PIN_GSENSOR_INT hardware_pin(HARDWARE_misc_gsensor_int)
177 // #define GPIO_PIN_BUZZER hardware_pin(HARDWARE_misc_buzzer) // stm32 only
178 #define define HAS_FAN
179 #define GPIO_PIN_FAN_EN hardware_pin(HARDWARE_misc_fan_en)
180 #define GPIO_PIN_FAN_PWM hardware_pin(HARDWARE_misc_fan_pwm)
181 #define GPIO_PIN_FAN_TACHO hardware_pin(HARDWARE_misc_fan_tacho)
182 #define GPIO_PIN_FAN_SPEEDS hardware_u16_array(HARDWARE_misc_fan_speeds)
183 #define GPIO_PIN_FAN_SPEEDS_COUNT hardware_int(HARDWARE_misc_fan_speeds_count)
185 #define HAS_GSENSOR
186 #define HAS_GSENSOR_STK8xxx
187 #define OPT_HAS_GSENSOR_STK8xxx hardware_flag(HARDWARE_gsensor_stk8xxx)
188 #define OPT_HAS_GSENSOR OPT_HAS_GSENSOR_STK8xxx // If any of the sensors are present
190 #define HAS_THERMAL
191 #define HAS_THERMAL_LM75A
192 #define OPT_HAS_THERMAL_LM75A hardware_flag(HARDWARE_thermal_lm75a)
193 #define OPT_HAS_THERMAL OPT_HAS_THERMAL_LM75A // If any of the sensors are present
196 // These are RX settings
198 // PWM
199 GPIO_PIN_PWM_OUTPUTS
201 // VTX
202 GPIO_PIN_RF_AMP_PWM
203 GPIO_PIN_RF_AMP_VPD
204 GPIO_PIN_RF_AMP_VREF
205 GPIO_PIN_SPI_VTX_NSS
206 VPD_VALUES_25MW
207 VPD_VALUES_100MW
208 PWM_VALUES_25MW
209 PWM_VALUES_100MW