Merge branch 'master' into 3.5.2-merge
[ExpressLRS.git] / src / include / target / Unified_ESP32_TX.h
blobac1791b43d54698417f84b344be3eadd9294d93a
1 #define HARDWARE_VERSION ""
3 // Serial
4 #define GPIO_PIN_RCSIGNAL_RX hardware_pin(HARDWARE_serial_rx)
5 #define GPIO_PIN_RCSIGNAL_TX hardware_pin(HARDWARE_serial_tx)
7 // Radio
8 #define GPIO_PIN_BUSY hardware_pin(HARDWARE_radio_busy)
9 #define GPIO_PIN_BUSY_2 hardware_pin(HARDWARE_radio_busy_2)
10 #define GPIO_PIN_DIO0 hardware_pin(HARDWARE_radio_dio0)
11 #define GPIO_PIN_DIO0_2 hardware_pin(HARDWARE_radio_dio0_2)
12 #define GPIO_PIN_DIO1 hardware_pin(HARDWARE_radio_dio1)
13 #define GPIO_PIN_DIO1_2 hardware_pin(HARDWARE_radio_dio1_2)
14 #define GPIO_PIN_DIO2 hardware_pin(HARDWARE_radio_dio2)
15 #define GPIO_PIN_MISO hardware_pin(HARDWARE_radio_miso)
16 #define GPIO_PIN_MOSI hardware_pin(HARDWARE_radio_mosi)
17 #define GPIO_PIN_NSS hardware_pin(HARDWARE_radio_nss)
18 #define GPIO_PIN_NSS_2 hardware_pin(HARDWARE_radio_nss_2)
19 #define GPIO_PIN_RST hardware_pin(HARDWARE_radio_rst)
20 #define GPIO_PIN_RST_2 hardware_pin(HARDWARE_radio_rst_2)
21 #define GPIO_PIN_SCK hardware_pin(HARDWARE_radio_sck)
22 #define USE_HARDWARE_DCDC
23 #define OPT_USE_HARDWARE_DCDC hardware_flag(HARDWARE_radio_dcdc)
24 #define USE_SX1276_RFO_HF
25 #define OPT_USE_SX1276_RFO_HF hardware_flag(HARDWARE_radio_rfo_hf)
26 #define LR1121_RFSW_CTRL hardware_u16_array(HARDWARE_radio_rfsw_ctrl)
27 #define LR1121_RFSW_CTRL_COUNT hardware_int(HARDWARE_radio_rfsw_ctrl_count)
29 // Radio Antenna
30 #define GPIO_PIN_ANT_CTRL hardware_pin(HARDWARE_ant_ctrl)
31 #define GPIO_PIN_ANT_CTRL_COMPL hardware_pin(HARDWARE_ant_ctrl_compl)
33 // Radio power
34 #define GPIO_PIN_PA_ENABLE hardware_pin(HARDWARE_power_enable)
35 #define GPIO_PIN_RFamp_APC1 hardware_pin(HARDWARE_power_apc1)
36 #define GPIO_PIN_RFamp_APC2 hardware_pin(HARDWARE_power_apc2)
37 #define GPIO_PIN_RX_ENABLE hardware_pin(HARDWARE_power_rxen)
38 #define GPIO_PIN_TX_ENABLE hardware_pin(HARDWARE_power_txen)
39 #define GPIO_PIN_RX_ENABLE_2 hardware_pin(HARDWARE_power_rxen_2)
40 #define GPIO_PIN_TX_ENABLE_2 hardware_pin(HARDWARE_power_txen_2)
41 #define LBT_RSSI_THRESHOLD_OFFSET_DB hardware_int(HARDWARE_power_lna_gain)
42 #define MinPower (PowerLevels_e)hardware_int(HARDWARE_power_min)
43 #define MaxPower (PowerLevels_e)hardware_int(HARDWARE_power_max)
44 #define DefaultPower (PowerLevels_e)hardware_int(HARDWARE_power_default)
46 #define GPIO_PIN_PA_PDET hardware_pin(HARDWARE_power_pdet)
47 #define SKY85321_PDET_INTERCEPT hardware_float(HARDWARE_power_pdet_intercept)
48 #define SKY85321_PDET_SLOPE hardware_float(HARDWARE_power_pdet_slope)
50 // default value 0 means direct!
51 #define POWER_OUTPUT_DACWRITE (hardware_int(HARDWARE_power_control)==3)
52 #define POWER_OUTPUT_VALUES hardware_i16_array(HARDWARE_power_values)
53 #define POWER_OUTPUT_VALUES_COUNT hardware_int(HARDWARE_power_values_count)
54 #define POWER_OUTPUT_VALUES2 hardware_i16_array(HARDWARE_power_values2)
55 #define POWER_OUTPUT_VALUES_DUAL hardware_i16_array(HARDWARE_power_values_dual)
56 #define POWER_OUTPUT_VALUES_DUAL_COUNT hardware_int(HARDWARE_power_values_dual_count)
58 // Input
59 #define HAS_FIVE_WAY_BUTTON
61 #define GPIO_PIN_JOYSTICK hardware_pin(HARDWARE_joystick)
62 #define JOY_ADC_VALUES hardware_u16_array(HARDWARE_joystick_values)
64 #define GPIO_PIN_FIVE_WAY_INPUT1 hardware_pin(HARDWARE_five_way1)
65 #define GPIO_PIN_FIVE_WAY_INPUT2 hardware_pin(HARDWARE_five_way2)
66 #define GPIO_PIN_FIVE_WAY_INPUT3 hardware_pin(HARDWARE_five_way3)
68 #define GPIO_PIN_BUTTON hardware_pin(HARDWARE_button)
69 #define USER_BUTTON_LED hardware_pin(HARDWARE_button_led_index)
70 #define GPIO_PIN_BUTTON2 hardware_pin(HARDWARE_button2)
71 #define USER_BUTTON2_LED hardware_pin(HARDWARE_button2_led_index)
73 // Lighting
74 #define GPIO_PIN_LED_BLUE hardware_pin(HARDWARE_led_blue)
75 #define GPIO_LED_BLUE_INVERTED hardware_pin(HARDWARE_led_blue_invert)
76 #define GPIO_PIN_LED_GREEN hardware_pin(HARDWARE_led_green)
77 #define GPIO_LED_GREEN_INVERTED hardware_flag(HARDWARE_led_green_invert)
78 #define GPIO_PIN_LED_RED (hardware_pin(HARDWARE_led_red) == UNDEF_PIN ? hardware_pin(HARDWARE_led) : hardware_pin(HARDWARE_led_red))
79 #define GPIO_LED_RED_INVERTED hardware_pin(HARDWARE_led_red_invert)
81 #define GPIO_PIN_LED_WS2812 hardware_pin(HARDWARE_led_rgb)
82 #define OPT_WS2812_IS_GRB hardware_flag(HARDWARE_led_rgb_isgrb)
83 #define WS2812_STATUS_LEDS hardware_i16_array(HARDWARE_ledidx_rgb_status)
84 #define WS2812_STATUS_LEDS_COUNT hardware_int(HARDWARE_ledidx_rgb_status_count)
85 #define WS2812_VTX_STATUS_LEDS hardware_i16_array(HARDWARE_ledidx_rgb_vtx)
86 #define WS2812_VTX_STATUS_LEDS_COUNT hardware_int(HARDWARE_ledidx_rgb_vtx_count)
87 #define WS2812_BOOT_LEDS hardware_i16_array(HARDWARE_ledidx_rgb_boot)
88 #define WS2812_BOOT_LEDS_COUNT hardware_int(HARDWARE_ledidx_rgb_boot_count)
90 // OLED
91 #define GPIO_PIN_OLED_CS hardware_pin(HARDWARE_screen_cs) // SPI
92 #define GPIO_PIN_OLED_DC hardware_pin(HARDWARE_screen_dc) // SPI
93 #define GPIO_PIN_OLED_MOSI hardware_pin(HARDWARE_screen_mosi) // SPI
94 #define GPIO_PIN_OLED_RST hardware_pin(HARDWARE_screen_rst) // SPI & I2c (optional)
95 #define GPIO_PIN_OLED_SCK hardware_pin(HARDWARE_screen_sck) // clock for SPI & I2C
96 #define GPIO_PIN_OLED_SDA hardware_pin(HARDWARE_screen_sda) // I2C data
98 // screen_type == 0 is no oled
99 #define USE_OLED_I2C
100 #define OPT_USE_OLED_I2C (hardware_int(HARDWARE_screen_type)==1)
101 #define USE_OLED_SPI
102 #define OPT_USE_OLED_SPI (hardware_int(HARDWARE_screen_type)==2)
103 #define USE_OLED_SPI_SMALL
104 #define OPT_USE_OLED_SPI_SMALL (hardware_int(HARDWARE_screen_type)==3)
105 #define OLED_REVERSED
106 #define OPT_OLED_REVERSED hardware_flag(HARDWARE_screen_reversed)
108 // TFT
109 #define HAS_TFT_SCREEN
110 #define OPT_HAS_TFT_SCREEN (hardware_int(HARDWARE_screen_type)==4)
112 #define GPIO_PIN_TFT_BL hardware_pin(HARDWARE_screen_bl)
113 #define GPIO_PIN_TFT_CS hardware_pin(HARDWARE_screen_cs)
114 #define GPIO_PIN_TFT_DC hardware_pin(HARDWARE_screen_dc)
115 #define GPIO_PIN_TFT_MOSI hardware_pin(HARDWARE_screen_mosi)
116 #define GPIO_PIN_TFT_RST hardware_pin(HARDWARE_screen_rst)
117 #define GPIO_PIN_TFT_SCLK hardware_pin(HARDWARE_screen_sck)
119 // Backpack
120 #define USE_TX_BACKPACK
121 #define OPT_USE_TX_BACKPACK hardware_flag(HARDWARE_use_backpack)
122 #define BACKPACK_LOGGING_BAUD hardware_int(HARDWARE_debug_backpack_baud)
123 #define GPIO_PIN_DEBUG_RX hardware_pin(HARDWARE_debug_backpack_rx)
124 #define GPIO_PIN_DEBUG_TX hardware_pin(HARDWARE_debug_backpack_tx)
125 #define GPIO_PIN_BACKPACK_BOOT hardware_pin(HARDWARE_backpack_boot)
126 #define GPIO_PIN_BACKPACK_EN hardware_pin(HARDWARE_backpack_en)
127 #define PASSTHROUGH_BAUD hardware_int(HARDWARE_passthrough_baud)
129 // I2C
130 #define GPIO_PIN_SCL hardware_pin(HARDWARE_i2c_scl)
131 #define GPIO_PIN_SDA hardware_pin(HARDWARE_i2c_sda)
133 // Misc sensors & things
134 #define GPIO_PIN_GSENSOR_INT hardware_pin(HARDWARE_misc_gsensor_int)
135 // #define GPIO_PIN_BUZZER hardware_pin(HARDWARE_misc_buzzer) // stm32 only
136 #define define HAS_FAN
137 #define GPIO_PIN_FAN_EN hardware_pin(HARDWARE_misc_fan_en)
138 #define GPIO_PIN_FAN_PWM hardware_pin(HARDWARE_misc_fan_pwm)
139 #define GPIO_PIN_FAN_TACHO hardware_pin(HARDWARE_misc_fan_tacho)
140 #define GPIO_PIN_FAN_SPEEDS hardware_u16_array(HARDWARE_misc_fan_speeds)
141 #define GPIO_PIN_FAN_SPEEDS_COUNT hardware_int(HARDWARE_misc_fan_speeds_count)
143 #define HAS_GSENSOR
144 #define HAS_GSENSOR_STK8xxx
145 #define OPT_HAS_GSENSOR_STK8xxx hardware_flag(HARDWARE_gsensor_stk8xxx)
146 #define OPT_HAS_GSENSOR OPT_HAS_GSENSOR_STK8xxx // If any of the sensors are present
148 #define HAS_THERMAL
149 #define HAS_THERMAL_LM75A
150 #define OPT_HAS_THERMAL_LM75A hardware_flag(HARDWARE_thermal_lm75a)
151 #define OPT_HAS_THERMAL OPT_HAS_THERMAL_LM75A // If any of the sensors are present