chore: use settings from radio JSON files instead of hal.h (#7411)

Co-authored-by: 3djc <3djc@gh.com>
This commit is contained in:
philmoz
2026-07-13 10:15:50 +10:00
committed by GitHub
co-authored by 3djc
parent 445c09f662
commit f3cabd42f7
100 changed files with 3290 additions and 2193 deletions
+2
View File
@@ -130,6 +130,8 @@ function(AddHWGenTarget input template output)
COMMAND ${GEN_JSON} > ${output}
DEPENDS ${INPUT_JSON} ${TEMPLATE} ${GEN_PY_DEPS} ${CMAKE_BINARY_DIR}/CMakeCache.txt
)
add_custom_target(${template} DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${output})
endfunction()
macro(AddHeadersSources)
+24 -17
View File
@@ -1226,32 +1226,39 @@ bool BoardJson::loadFile(Board::Type board, QString hwdefn, InputsTable * inputs
if (obj.value("display").isObject()) {
const QJsonObject &o = obj.value("display").toObject();
display.w = o.value("w").toInt();
display.h = o.value("h").toInt();
display.phys_w = o.value("phys_w").toInt();
display.phys_h = o.value("phys_h").toInt();
display.depth = o.value("depth").toInt();
display.color = o.value("color").toInt();
display.oled = o.value("oled").toInt();
display.backlight_color = o.value("backlight_color").toInt();
display.w = o.value("lcd_w").toInt();
display.h = o.value("lcd_h").toInt();
display.phys_w = o.value("lcd_phys_w").toInt();
display.phys_h = o.value("lcd_phys_h").toInt();
display.depth = o.value("lcd_depth").toInt();
display.color = display.depth == 16 ? 1 : 0;
display.oled = o.value("oled_screen").toBool();
}
if (obj.value("custom_switches").isObject()) {
const QJsonObject &o = obj.value("custom_switches").toObject();
if (obj.value("backlight").isObject()) {
const QJsonObject &o = obj.value("backlight").toObject();
cfs.rgb_led = o.value("rgb_led").toInt();
cfs.groups = o.value("groups").toInt();
display.backlight_color = o.value("has_backlight_color").toBool();
}
if (obj.value("leds").isObject()) {
const QJsonObject &o = obj.value("leds").toObject();
int cfs_led_strip_length = o.value("cfs_led_strip_length").toInt();
int cfs_leds_per_switch = o.value("cfs_leds_per_switch").toInt();
cfs.groups = cfs_leds_per_switch ? cfs_led_strip_length / (2 * cfs_leds_per_switch) : 0;
cfs.rgb_led = cfs.groups > 0;
hardware.has_bling_leds = o.value("bling_led_strip_length").toInt();
}
if (obj.value("hardware").isObject()) {
const QJsonObject &o = obj.value("hardware").toObject();
hardware.has_audio_mute = o.value("has_audio_mute").toInt();
hardware.has_bling_leds = o.value("has_bling_leds").toInt();
hardware.has_ext_module_support = o.value("has_ext_module_support").toInt();
hardware.has_int_module_support = o.value("has_int_module_support").toInt();
hardware.has_audio_mute = o.value("has_audio_mute").toBool();
hardware.has_ext_module_support = o.value("has_ext_module_support").toBool();
hardware.has_int_module_support = o.value("has_int_module_support").toBool();
hardware.sport_max_baudrate = o.value("sport_max_baudrate").toInt();
hardware.surface = o.value("surface").toInt();
hardware.surface = o.value("surface").toBool();
hardware.cpu = o.value("cpu").toString().toStdString();
hardware.cpu_type = o.value("cpu_type").toString().toStdString();
}
+23
View File
@@ -124,6 +124,29 @@ add_definitions(
set(HW_DESC_JSON ${FLAVOUR}.json)
# Generate files from radio JSON
AddHWGenTarget(${HW_DESC_JSON} hal_settings hal_settings.h)
AddHWGenTarget(${HW_DESC_JSON} hal_keys hal_keys.inc)
AddHWGenTarget(${HW_DESC_JSON} hal_adc_inputs hal_adc_inputs.inc)
AddHWGenTarget(${HW_DESC_JSON} yaml_inputs yaml_inputs.inc)
AddHWGenTarget(${HW_DESC_JSON} lua_inputs lua_inputs.inc)
AddHWGenTarget(${HW_DESC_JSON} lua_mixsrc lua_mixsrc.inc)
AddHWGenTarget(${HW_DESC_JSON} lua_keys lua_keys.inc)
AddHWGenTarget(${HW_DESC_JSON} stm32_keys stm32_keys.inc)
AddHWGenTarget(${HW_DESC_JSON} stm32_switches stm32_switches.inc)
AddHWGenTarget(${HW_DESC_JSON} stm32_adc_inputs stm32_adc_inputs.inc)
AddHWGenTarget(${HW_DESC_JSON} stm32_pwm_inputs stm32_pwm_inputs.inc)
AddHWGenTarget(${HW_DESC_JSON} simu_keys simu_keys.inc)
AddHWGenTarget(${HW_DESC_JSON} simu_switches simu_switches.inc)
add_dependencies(board hal_settings hal_keys hal_adc_inputs stm32_keys stm32_switches stm32_adc_inputs stm32_pwm_inputs yaml_inputs lua_inputs lua_mixsrc lua_keys)
add_dependencies(board_bl hal_settings hal_keys stm32_keys)
include(hal/CMakeLists.txt)
add_subdirectory(bitmaps)
+1 -15
View File
@@ -1,16 +1,6 @@
# Generate hardware struct defs
AddHWGenTarget(${HW_DESC_JSON} stm32_keys stm32_keys.inc)
AddHWGenTarget(${HW_DESC_JSON} stm32_switches stm32_switches.inc)
AddHWGenTarget(${HW_DESC_JSON} stm32_adc_inputs stm32_adc_inputs.inc)
AddHWGenTarget(${HW_DESC_JSON} stm32_pwm_inputs stm32_pwm_inputs.inc)
AddHWGenTarget(${HW_DESC_JSON} hal_adc_inputs hal_adc_inputs.inc)
# Dependencies common to bootloader and firmware
set(MINIMAL_BOARD_LIB_SRC
${RADIO_SRC_DIR}/boards/hw_defs/${HW_DESC_JSON}
${CMAKE_CURRENT_BINARY_DIR}/stm32_keys.inc
boards/generic_stm32/inputs.cpp
boards/generic_stm32/i2c_bus.cpp
boards/generic_stm32/bl_keys.cpp
@@ -19,11 +9,6 @@ set(MINIMAL_BOARD_LIB_SRC
# Dependencies only used in firmware
set(BOARD_LIB_SRC
${CMAKE_CURRENT_BINARY_DIR}/stm32_switches.inc
${CMAKE_CURRENT_BINARY_DIR}/stm32_adc_inputs.inc
${CMAKE_CURRENT_BINARY_DIR}/stm32_pwm_inputs.inc
${CMAKE_CURRENT_BINARY_DIR}/hal_adc_inputs.inc
boards/generic_stm32/module_ports.cpp
boards/generic_stm32/trainer_ports.cpp
boards/generic_stm32/sport_update.cpp
@@ -38,6 +23,7 @@ set(BOARD_LIB_SRC
)
add_library(minimal_board_lib OBJECT EXCLUDE_FROM_ALL ${MINIMAL_BOARD_LIB_SRC})
add_dependencies(minimal_board_lib stm32_keys)
add_library(board_lib OBJECT EXCLUDE_FROM_ALL ${BOARD_LIB_SRC})
add_dependencies(board_lib minimal_board_lib)
+41 -16
View File
@@ -307,27 +307,52 @@
}
],
"display": {
"w": 128,
"h": 64,
"phys_w": 128,
"phys_h": 64,
"depth": 1,
"color": 0,
"oled": 0,
"backlight_color": 0
"lcd_w": 128,
"lcd_h": 64,
"lcd_phys_w": 128,
"lcd_phys_h": 64,
"lcd_depth": 1,
"lcd_vertical_invert": true
},
"custom_switches": {
"rgb_led": 0,
"groups": 0
"backlight": {
"backlight_bdtr": "TIM_BDTR_MOE"
},
"leds": {
"status_leds": true,
"led_red_gpio": "GPIO_PIN(GPIOE, 13)",
"led_green_gpio": "GPIO_PIN(GPIOA, 7)",
"led_blue_gpio": "GPIO_PIN(GPIOE, 2)"
},
"hardware": {
"has_audio_mute": 1,
"has_bling_leds": 0,
"has_ext_module_support": 1,
"has_int_module_support": 1,
"has_audio_mute": true,
"has_ext_module_support": true,
"has_int_module_support": true,
"sport_max_baudrate": 400000,
"surface": 0,
"cpu": "STM32F407xG",
"cpu_type": "STM32F4"
},
"timers": {
"cpu_freq": 168000000,
"peri1_frequency": 42000000,
"peri2_frequency": 84000000,
"timer_mult_apb1": 2,
"timer_mult_apb2": 2,
"ms_timer": "TIM14",
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
"mixer_scheduler_timer": "TIM12",
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
},
"haptic": {
"haptic_pwm": true,
"haptic_gpio": "GPIO_PIN(GPIOB, 3)",
"haptic_gpio_af": "GPIO_AF1",
"haptic_timer": "TIM2",
"haptic_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"haptic_counter_register": "HAPTIC_TIMER->CCR2",
"haptic_ccmr1": "TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2",
"haptic_ccer": "TIM_CCER_CC2E"
}
}
+43 -16
View File
@@ -376,27 +376,54 @@
}
],
"display": {
"w": 128,
"h": 64,
"phys_w": 128,
"phys_h": 64,
"depth": 1,
"color": 0,
"oled": 1,
"backlight_color": 0
"lcd_w": 128,
"lcd_h": 64,
"lcd_phys_w": 128,
"lcd_phys_h": 64,
"lcd_depth": 1,
"oled_screen": true,
"lcd_horizontal_invert": true,
"lcd_vertical_invert": true
},
"custom_switches": {
"rgb_led": 0,
"groups": 3
"backlight": {
"backlight_bdtr": "TIM_BDTR_MOE"
},
"leds": {
"status_leds": true,
"led_red_gpio": "GPIO_PIN(GPIOC, 5)",
"led_green_gpio": "GPIO_PIN(GPIOG, 1)",
"led_blue_gpio": "GPIO_PIN(GPIOC, 4)"
},
"hardware": {
"has_audio_mute": 1,
"has_bling_leds": 0,
"has_ext_module_support": 1,
"has_int_module_support": 1,
"has_audio_mute": true,
"has_ext_module_support": true,
"has_int_module_support": true,
"sport_max_baudrate": 400000,
"surface": 0,
"cpu": "STM32F407xG",
"cpu_type": "STM32F4"
},
"timers": {
"cpu_freq": 168000000,
"peri1_frequency": 42000000,
"peri2_frequency": 84000000,
"timer_mult_apb1": 2,
"timer_mult_apb2": 2,
"ms_timer": "TIM14",
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
"mixer_scheduler_timer": "TIM12",
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
},
"haptic": {
"haptic_pwm": true,
"haptic_gpio": "GPIO_PIN(GPIOB, 3)",
"haptic_gpio_af": "GPIO_AF1",
"haptic_timer": "TIM2",
"haptic_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"haptic_counter_register": "HAPTIC_TIMER->CCR2",
"haptic_ccmr1": "TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2",
"haptic_ccer": "TIM_CCER_CC2E"
}
}
+38 -16
View File
@@ -256,27 +256,49 @@
}
],
"display": {
"w": 128,
"h": 64,
"phys_w": 128,
"phys_h": 64,
"depth": 1,
"color": 0,
"oled": 0,
"backlight_color": 0
"lcd_w": 128,
"lcd_h": 64,
"lcd_phys_w": 128,
"lcd_phys_h": 64,
"lcd_depth": 1,
"lcd_vertical_invert": true
},
"custom_switches": {
"rgb_led": 0,
"groups": 0
"leds": {
"status_leds": true,
"led_red_gpio": "GPIO_PIN(GPIOC, 2)",
"led_green_gpio": "GPIO_PIN(GPIOC, 0)",
"led_blue_gpio": "GPIO_PIN(GPIOC, 1)"
},
"hardware": {
"has_audio_mute": 1,
"has_bling_leds": 0,
"has_ext_module_support": 1,
"has_int_module_support": 1,
"has_audio_mute": true,
"has_ext_module_support": true,
"has_int_module_support": true,
"sport_max_baudrate": 400000,
"surface": 0,
"cpu": "STM32F407xE",
"cpu_type": "STM32F4"
},
"timers": {
"cpu_freq": 168000000,
"peri1_frequency": 42000000,
"peri2_frequency": 84000000,
"timer_mult_apb1": 2,
"timer_mult_apb2": 2,
"ms_timer": "TIM14",
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
"mixer_scheduler_timer": "TIM12",
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
},
"haptic": {
"haptic_pwm": true,
"haptic_gpio": "GPIO_PIN(GPIOB, 8)",
"haptic_gpio_af": "GPIO_AF3",
"haptic_timer": "TIM10",
"haptic_timer_freq": "(PERI2_FREQUENCY * TIMER_MULT_APB2)",
"haptic_counter_register": "HAPTIC_TIMER->CCR1",
"haptic_ccmr1": "TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2",
"haptic_ccer": "TIM_CCER_CC1E"
}
}
+38 -16
View File
@@ -321,27 +321,49 @@
}
],
"display": {
"w": 320,
"h": 480,
"phys_w": 320,
"phys_h": 480,
"depth": 16,
"color": 1,
"oled": 0,
"backlight_color": 0
"lcd_w": 320,
"lcd_h": 480,
"lcd_phys_w": 320,
"lcd_phys_h": 480,
"lcd_depth": 16,
"ltdc_irq_prio": 4,
"dma_screen_irq_prio": 6
},
"custom_switches": {
"rgb_led": 0,
"groups": 0
"backlight": {
"backlight_gpio": "GPIO_PIN(GPIOA, 15)",
"backlight_timer": "TIM2",
"backlight_gpio_af": "GPIO_AF1",
"backlight_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)"
},
"hardware": {
"has_audio_mute": 1,
"has_bling_leds": 0,
"has_ext_module_support": 1,
"has_int_module_support": 1,
"has_audio_mute": true,
"has_ext_module_support": true,
"has_int_module_support": true,
"sport_max_baudrate": 400000,
"surface": 0,
"cpu": "STM32F429xI",
"cpu_type": "STM32F4"
},
"timers": {
"cpu_freq": 168000000,
"peri1_frequency": 42000000,
"peri2_frequency": 84000000,
"timer_mult_apb1": 2,
"timer_mult_apb2": 2,
"ms_timer": "TIM14",
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
"mixer_scheduler_timer": "TIM12",
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
},
"haptic": {
"haptic_pwm": true,
"haptic_gpio": "GPIO_PIN(GPIOA, 8)",
"haptic_gpio_timer": "TIM1",
"haptic_gpio_af": "GPIO_AF1",
"haptic_timer_output_enable": "TIM_CCER_CC1E | TIM_CCER_CC1NE",
"haptic_timer_mode": "TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1PE",
"haptic_timer_compare_value": "HAPTIC_GPIO_TIMER->CCR1"
}
}
+39 -16
View File
@@ -415,27 +415,50 @@
}
],
"display": {
"w": 480,
"h": 272,
"phys_w": 480,
"phys_h": 272,
"depth": 16,
"color": 1,
"oled": 0,
"backlight_color": 0
"lcd_w": 480,
"lcd_h": 272,
"lcd_phys_w": 480,
"lcd_phys_h": 272,
"lcd_depth": 16,
"lcd_vertical_invert": true,
"ltdc_irq_prio": 4,
"dma_screen_irq_prio": 6
},
"custom_switches": {
"rgb_led": 0,
"groups": 0
"leds": {
"status_leds": true,
"led_red_gpio": "GPIO_PIN(GPIOE, 2)",
"led_green_gpio": "GPIO_PIN(GPIOE, 4)",
"led_blue_gpio": "GPIO_PIN(GPIOE, 5)"
},
"hardware": {
"has_audio_mute": 1,
"has_bling_leds": 0,
"has_ext_module_support": 1,
"has_int_module_support": 1,
"has_audio_mute": true,
"has_ext_module_support": true,
"has_int_module_support": true,
"sport_max_baudrate": 400000,
"surface": 0,
"cpu": "STM32F429xI",
"cpu_type": "STM32F4"
},
"timers": {
"cpu_freq": 168000000,
"peri1_frequency": 42000000,
"peri2_frequency": 84000000,
"timer_mult_apb1": 2,
"timer_mult_apb2": 2,
"ms_timer": "TIM14",
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
"mixer_scheduler_timer": "TIM13",
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"mixer_scheduler_timer_irqn": "TIM8_UP_TIM13_IRQn",
"mixer_scheduler_timer_irqhandler": "TIM8_UP_TIM13_IRQHandler"
},
"haptic": {
"haptic_pwm": true,
"haptic_gpio": "GPIO_PIN(GPIOE, 6)",
"haptic_gpio_timer": "TIM9",
"haptic_gpio_af": "GPIO_AF3",
"haptic_timer_output_enable": "TIM_CCER_CC2E",
"haptic_timer_mode": "TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2",
"haptic_timer_compare_value": "HAPTIC_GPIO_TIMER->CCR2"
}
}
+59 -16
View File
@@ -417,27 +417,70 @@
}
],
"display": {
"w": 128,
"h": 64,
"phys_w": 128,
"phys_h": 64,
"depth": 1,
"color": 0,
"oled": 1,
"backlight_color": 0
"lcd_w": 128,
"lcd_h": 64,
"lcd_phys_w": 128,
"lcd_phys_h": 64,
"lcd_depth": 1,
"oled_screen": true,
"lcd_horizontal_invert": true
},
"custom_switches": {
"rgb_led": 1,
"groups": 4
"backlight": {
"backlight_bdtr": "TIM_BDTR_MOE"
},
"leds": {
"led_strip_length": 8,
"bling_led_strip_start": 0,
"bling_led_strip_length": 0,
"cfs_led_strip_start": 0,
"cfs_led_strip_length": 8,
"cfs_leds_per_switch": 1,
"led_strip_gpio": "GPIO_PIN(GPIOA, 8)",
"led_strip_gpio_af": "LL_GPIO_AF_1",
"led_strip_timer": "TIM1",
"led_strip_timer_freq": "(PERI2_FREQUENCY * TIMER_MULT_APB2)",
"led_strip_timer_channel": "LL_TIM_CHANNEL_CH1",
"led_strip_timer_dma": "DMA2",
"led_strip_timer_dma_channel": "LL_DMA_CHANNEL_6",
"led_strip_timer_dma_stream": "LL_DMA_STREAM_5",
"led_strip_timer_dma_irqn": "DMA2_Stream5_IRQn",
"led_strip_timer_dma_irqhandler": "DMA2_Stream5_IRQHandler",
"led_strip_refresh_period": 50,
"status_leds": true,
"led_red_gpio": "GPIO_PIN(GPIOE, 13)",
"led_green_gpio": "GPIO_PIN(GPIOA, 7)",
"led_blue_gpio": "GPIO_PIN(GPIOE, 2)"
},
"hardware": {
"has_audio_mute": 1,
"has_bling_leds": 0,
"has_ext_module_support": 1,
"has_int_module_support": 1,
"has_audio_mute": true,
"has_ext_module_support": true,
"has_int_module_support": true,
"sport_max_baudrate": 400000,
"surface": 0,
"cpu": "STM32F407xG",
"cpu_type": "STM32F4"
},
"timers": {
"cpu_freq": 168000000,
"peri1_frequency": 42000000,
"peri2_frequency": 84000000,
"timer_mult_apb1": 2,
"timer_mult_apb2": 2,
"ms_timer": "TIM14",
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
"mixer_scheduler_timer": "TIM12",
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
},
"haptic": {
"haptic_pwm": true,
"haptic_gpio": "GPIO_PIN(GPIOB, 3)",
"haptic_gpio_af": "GPIO_AF1",
"haptic_timer": "TIM2",
"haptic_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"haptic_counter_register": "HAPTIC_TIMER->CCR2",
"haptic_ccmr1": "TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2",
"haptic_ccer": "TIM_CCER_CC2E"
}
}
+40 -16
View File
@@ -236,27 +236,51 @@
}
],
"display": {
"w": 128,
"h": 64,
"phys_w": 128,
"phys_h": 64,
"depth": 1,
"color": 0,
"oled": 1,
"backlight_color": 0
"lcd_w": 128,
"lcd_h": 64,
"lcd_phys_w": 128,
"lcd_phys_h": 64,
"lcd_depth": 1,
"oled_screen": true,
"lcd_horizontal_invert": true,
"lcd_vertical_invert": true
},
"custom_switches": {
"rgb_led": 0,
"groups": 0
"leds": {
"status_leds": true,
"led_red_gpio": "GPIO_PIN(GPIOC, 5)",
"led_green_gpio": "GPIO_PIN(GPIOC, 4)",
"led_blue_gpio": "GPIO_PIN(GPIOB, 1)"
},
"hardware": {
"has_audio_mute": 1,
"has_bling_leds": 0,
"has_ext_module_support": 1,
"has_int_module_support": 1,
"has_audio_mute": true,
"has_ext_module_support": true,
"has_int_module_support": true,
"sport_max_baudrate": 400000,
"surface": 0,
"cpu": "STM32F205xE",
"cpu_type": "STM32F2"
},
"timers": {
"cpu_freq": 120000000,
"peri1_frequency": 30000000,
"peri2_frequency": 60000000,
"timer_mult_apb1": 2,
"timer_mult_apb2": 2,
"ms_timer": "TIM14",
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
"mixer_scheduler_timer": "TIM12",
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
},
"haptic": {
"haptic_pwm": true,
"haptic_gpio": "GPIO_PIN(GPIOB, 8)",
"haptic_gpio_af": "GPIO_AF3",
"haptic_timer": "TIM10",
"haptic_timer_freq": "(PERI2_FREQUENCY * TIMER_MULT_APB2)",
"haptic_counter_register": "HAPTIC_TIMER->CCR1",
"haptic_ccmr1": "TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2",
"haptic_ccer": "TIM_CCER_CC1E"
}
}
+56 -16
View File
@@ -285,27 +285,67 @@
}
],
"display": {
"w": 128,
"h": 64,
"phys_w": 128,
"phys_h": 64,
"depth": 1,
"color": 0,
"oled": 0,
"backlight_color": 0
"lcd_w": 128,
"lcd_h": 64,
"lcd_phys_w": 128,
"lcd_phys_h": 64,
"lcd_depth": 1,
"lcd_vertical_invert": true
},
"custom_switches": {
"rgb_led": 0,
"groups": 0
"backlight": {
"backlight_bdtr": "TIM_BDTR_MOE"
},
"leds": {
"led_strip_length": 7,
"bling_led_strip_start": 0,
"bling_led_strip_length": 7,
"led_strip_gpio": "GPIO_PIN(GPIOA, 8)",
"led_strip_gpio_af": "LL_GPIO_AF_1",
"led_strip_timer": "TIM1",
"led_strip_timer_freq": "(PERI2_FREQUENCY * TIMER_MULT_APB2)",
"led_strip_timer_channel": "LL_TIM_CHANNEL_CH1",
"led_strip_timer_dma": "DMA2",
"led_strip_timer_dma_channel": "LL_DMA_CHANNEL_6",
"led_strip_timer_dma_stream": "LL_DMA_STREAM_5",
"led_strip_timer_dma_irqn": "DMA2_Stream5_IRQn",
"led_strip_timer_dma_irqhandler": "DMA2_Stream5_IRQHandler",
"led_strip_refresh_period": 50,
"status_leds": true,
"led_red_gpio": "GPIO_PIN(GPIOE, 13)",
"led_green_gpio": "GPIO_PIN(GPIOA, 7)",
"led_blue_gpio": "GPIO_PIN(GPIOE, 2)"
},
"hardware": {
"has_audio_mute": 1,
"has_bling_leds": 7,
"has_ext_module_support": 1,
"has_int_module_support": 1,
"has_audio_mute": true,
"has_ext_module_support": true,
"has_int_module_support": true,
"sport_max_baudrate": 400000,
"surface": 1,
"surface": true,
"cpu": "STM32F407xG",
"cpu_type": "STM32F4"
},
"timers": {
"cpu_freq": 168000000,
"peri1_frequency": 42000000,
"peri2_frequency": 84000000,
"timer_mult_apb1": 2,
"timer_mult_apb2": 2,
"ms_timer": "TIM14",
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
"mixer_scheduler_timer": "TIM12",
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
},
"haptic": {
"haptic_pwm": true,
"haptic_gpio": "GPIO_PIN(GPIOB, 3)",
"haptic_gpio_af": "GPIO_AF1",
"haptic_timer": "TIM2",
"haptic_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"haptic_counter_register": "HAPTIC_TIMER->CCR2",
"haptic_ccmr1": "TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2",
"haptic_ccer": "TIM_CCER_CC2E"
}
}
+75 -16
View File
@@ -148,27 +148,86 @@
}
],
"display": {
"w": 320,
"h": 480,
"phys_w": 320,
"phys_h": 480,
"depth": 16,
"color": 1,
"oled": 0,
"backlight_color": 0
"lcd_w": 320,
"lcd_h": 480,
"lcd_phys_w": 320,
"lcd_phys_h": 480,
"lcd_depth": 16,
"ltdc_irq_prio": 4,
"dma_screen_irq_prio": 6
},
"custom_switches": {
"rgb_led": 0,
"groups": 0
"backlight": {
"backlight_gpio": "GPIO_PIN(GPIOA, 15)",
"backlight_timer": "TIM2",
"backlight_gpio_af": "GPIO_AF1",
"backlight_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)"
},
"leds": {
"led_strip_length": 4,
"bling_led_strip_start": 0,
"bling_led_strip_length": 4,
"led_strip_gpio": "GPIO_PIN(GPIOH, 12)",
"led_strip_gpio_af": "LL_GPIO_AF_2",
"led_strip_timer": "TIM5",
"led_strip_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"led_strip_timer_channel": "LL_TIM_CHANNEL_CH3",
"led_strip_timer_dma": "DMA1",
"led_strip_timer_dma_channel": "LL_DMA_CHANNEL_6",
"led_strip_timer_dma_stream": "LL_DMA_STREAM_0",
"led_strip_timer_dma_irqn": "DMA1_Stream0_IRQn",
"led_strip_timer_dma_irqhandler": "DMA1_Stream0_IRQHandler",
"led_strip_refresh_period": 50,
"status_leds": true
},
"hardware": {
"has_audio_mute": 1,
"has_bling_leds": 4,
"has_ext_module_support": 1,
"has_int_module_support": 1,
"has_audio_mute": true,
"has_ext_module_support": true,
"has_int_module_support": true,
"sport_max_baudrate": 400000,
"surface": 0,
"cpu": "STM32F429xI",
"cpu_type": "STM32F4"
},
"timers": {
"cpu_freq": 168000000,
"peri1_frequency": 42000000,
"peri2_frequency": 84000000,
"timer_mult_apb1": 2,
"timer_mult_apb2": 2,
"ms_timer": "TIM14",
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
"mixer_scheduler_timer": "TIM12",
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
},
"rotenc": {
"rotary_encoder_gpio": "GPIOH",
"rotary_encoder_gpio_pin_a": "LL_GPIO_PIN_11",
"rotary_encoder_gpio_pin_b": "LL_GPIO_PIN_10",
"rotary_encoder_position": "((ROTARY_ENCODER_GPIO->IDR >> 10) & 0x03)",
"rotary_encoder_exti_line1": "LL_EXTI_LINE_11",
"rotary_encoder_exti_line2": "LL_EXTI_LINE_10",
"exti": [
{
"irq": "EXTI15_10_IRQ",
"priority": 5
}
],
"rotary_encoder_exti_port": "LL_SYSCFG_EXTI_PORTH",
"rotary_encoder_exti_sys_line1": "LL_SYSCFG_EXTI_LINE11",
"rotary_encoder_exti_sys_line2": "LL_SYSCFG_EXTI_LINE10",
"rotary_encoder_timer": "TIM13",
"rotary_encoder_timer_irqn": "TIM8_UP_TIM13_IRQn",
"rotary_encoder_timer_irqhandler": "TIM8_UP_TIM13_IRQHandler"
},
"haptic": {
"haptic_pwm": true,
"haptic_gpio": "GPIO_PIN(GPIOB, 0)",
"haptic_gpio_timer": "TIM1",
"haptic_gpio_af": "GPIO_AF1",
"haptic_timer_output_enable": "TIM_CCER_CC2NE",
"haptic_timer_mode": "TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2 | TIM_CCMR1_OC2PE",
"haptic_timer_compare_value": "HAPTIC_GPIO_TIMER->CCR2"
}
}
+38 -16
View File
@@ -321,27 +321,49 @@
}
],
"display": {
"w": 320,
"h": 480,
"phys_w": 320,
"phys_h": 480,
"depth": 16,
"color": 1,
"oled": 0,
"backlight_color": 0
"lcd_w": 320,
"lcd_h": 480,
"lcd_phys_w": 320,
"lcd_phys_h": 480,
"lcd_depth": 16,
"ltdc_irq_prio": 4,
"dma_screen_irq_prio": 6
},
"custom_switches": {
"rgb_led": 0,
"groups": 0
"backlight": {
"backlight_gpio": "GPIO_PIN(GPIOA, 15)",
"backlight_timer": "TIM2",
"backlight_gpio_af": "GPIO_AF1",
"backlight_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)"
},
"hardware": {
"has_audio_mute": 1,
"has_bling_leds": 0,
"has_ext_module_support": 1,
"has_int_module_support": 1,
"has_audio_mute": true,
"has_ext_module_support": true,
"has_int_module_support": true,
"sport_max_baudrate": 400000,
"surface": 0,
"cpu": "STM32F429xI",
"cpu_type": "STM32F4"
},
"timers": {
"cpu_freq": 168000000,
"peri1_frequency": 42000000,
"peri2_frequency": 84000000,
"timer_mult_apb1": 2,
"timer_mult_apb2": 2,
"ms_timer": "TIM14",
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
"mixer_scheduler_timer": "TIM12",
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
},
"haptic": {
"haptic_pwm": true,
"haptic_gpio": "GPIO_PIN(GPIOA, 8)",
"haptic_gpio_timer": "TIM1",
"haptic_gpio_af": "GPIO_AF1",
"haptic_timer_output_enable": "TIM_CCER_CC1E | TIM_CCER_CC1NE",
"haptic_timer_mode": "TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1PE",
"haptic_timer_compare_value": "HAPTIC_GPIO_TIMER->CCR1"
}
}
+77 -16
View File
@@ -284,27 +284,88 @@
}
],
"display": {
"w": 320,
"h": 240,
"phys_w": 320,
"phys_h": 240,
"depth": 16,
"color": 1,
"oled": 0,
"backlight_color": 0
"lcd_w": 320,
"lcd_h": 240,
"lcd_phys_w": 320,
"lcd_phys_h": 240,
"lcd_depth": 16
},
"custom_switches": {
"rgb_led": 1,
"groups": 2
"backlight": {
"backlight_gpio": "GPIO_PIN(GPIOB, 3)",
"backlight_timer": "TIM2",
"backlight_gpio_af": "GPIO_AF1",
"backlight_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)"
},
"leds": {
"led_strip_length": 14,
"bling_led_strip_start": 10,
"bling_led_strip_length": 4,
"cfs_led_strip_start": 0,
"cfs_led_strip_length": 8,
"cfs_leds_per_switch": 2,
"led_strip_gpio": "GPIO_PIN(GPIOF, 6)",
"led_strip_gpio_af": "LL_GPIO_AF_1",
"led_strip_timer": "TIM16",
"led_strip_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"led_strip_timer_channel": "LL_TIM_CHANNEL_CH1",
"led_strip_timer_dma": "DMA1",
"led_strip_timer_dma_channel": "LL_DMAMUX1_REQ_TIM16_UP",
"led_strip_timer_dma_stream": "LL_DMA_STREAM_0",
"led_strip_timer_dma_irqn": "DMA1_Stream0_IRQn",
"led_strip_timer_dma_irqhandler": "DMA1_Stream0_IRQHandler",
"led_strip_refresh_period": 50,
"status_leds": true
},
"hardware": {
"has_audio_mute": 1,
"has_bling_leds": 4,
"has_ext_module_support": 1,
"has_int_module_support": 1,
"has_audio_mute": true,
"has_ext_module_support": true,
"has_int_module_support": true,
"sport_max_baudrate": 400000,
"surface": 0,
"cpu": "STM32H750xB",
"cpu_type": "STM32H7"
},
"timers": {
"cpu_freq": 400000000,
"peri1_frequency": 100000000,
"peri2_frequency": 100000000,
"timer_mult_apb1": 2,
"timer_mult_apb2": 2,
"ms_timer": "TIM14",
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
"mixer_scheduler_timer": "TIM12",
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
},
"imu": {
"imu_i2c_bus": "I2C_Bus_2",
"imu_i2c_address": "0x6A"
},
"rotenc": {
"rotary_encoder_gpio": "GPIOA",
"rotary_encoder_gpio_pin_a": "LL_GPIO_PIN_6",
"rotary_encoder_gpio_pin_b": "LL_GPIO_PIN_7",
"rotary_encoder_position": "((ROTARY_ENCODER_GPIO->IDR >> 6) & 0x03)",
"rotary_encoder_exti_line1": "LL_EXTI_LINE_6",
"rotary_encoder_exti_line2": "LL_EXTI_LINE_7",
"exti": [
{
"irq": "EXTI9_5_IRQ",
"priority": 5
}
],
"rotary_encoder_exti_port": "LL_SYSCFG_EXTI_PORTA",
"rotary_encoder_exti_sys_line1": "LL_SYSCFG_EXTI_LINE6",
"rotary_encoder_exti_sys_line2": "LL_SYSCFG_EXTI_LINE7",
"rotary_encoder_timer": "TIM17",
"rotary_encoder_timer_irqn": "TIM17_IRQn",
"rotary_encoder_timer_irqhandler": "TIM17_IRQHandler"
},
"haptic": {
"haptic_pwm": true,
"haptic_gpio": "GPIO_PIN(GPIOA, 15)",
"haptic_gpio_timer": "TIM2",
"haptic_gpio_af": "GPIO_AF1"
}
}
+54 -16
View File
@@ -292,27 +292,65 @@
}
],
"display": {
"w": 480,
"h": 320,
"phys_w": 320,
"phys_h": 480,
"depth": 16,
"color": 1,
"oled": 0,
"backlight_color": 0
"lcd_w": 480,
"lcd_h": 320,
"lcd_phys_w": 320,
"lcd_phys_h": 480,
"lcd_depth": 16,
"ltdc_irq_prio": 4,
"dma_screen_irq_prio": 6
},
"custom_switches": {
"rgb_led": 0,
"groups": 0
"backlight": {
"backlight_gpio": "GPIO_PIN(GPIOA, 15)",
"backlight_timer": "TIM2",
"backlight_gpio_af": "GPIO_AF1",
"backlight_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)"
},
"leds": {
"led_strip_length": 4,
"bling_led_strip_start": 0,
"bling_led_strip_length": 4,
"led_strip_gpio": "GPIO_PIN(GPIOH, 12)",
"led_strip_gpio_af": "LL_GPIO_AF_2",
"led_strip_timer": "TIM5",
"led_strip_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"led_strip_timer_channel": "LL_TIM_CHANNEL_CH3",
"led_strip_timer_dma": "DMA1",
"led_strip_timer_dma_channel": "LL_DMA_CHANNEL_6",
"led_strip_timer_dma_stream": "LL_DMA_STREAM_0",
"led_strip_timer_dma_irqn": "DMA1_Stream0_IRQn",
"led_strip_timer_dma_irqhandler": "DMA1_Stream0_IRQHandler",
"led_strip_refresh_period": 50,
"status_leds": true
},
"hardware": {
"has_audio_mute": 0,
"has_bling_leds": 4,
"has_ext_module_support": 1,
"has_int_module_support": 1,
"has_ext_module_support": true,
"has_int_module_support": true,
"sport_max_baudrate": 400000,
"surface": 0,
"cpu": "STM32F429xI",
"cpu_type": "STM32F4"
},
"timers": {
"cpu_freq": 168000000,
"peri1_frequency": 42000000,
"peri2_frequency": 84000000,
"timer_mult_apb1": 2,
"timer_mult_apb2": 2,
"ms_timer": "TIM14",
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
"mixer_scheduler_timer": "TIM12",
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
},
"haptic": {
"haptic_pwm": true,
"haptic_gpio": "GPIO_PIN(GPIOA, 8)",
"haptic_gpio_timer": "TIM1",
"haptic_gpio_af": "GPIO_AF1",
"haptic_timer_output_enable": "TIM_CCER_CC1E | TIM_CCER_CC1NE",
"haptic_timer_mode": "TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1PE",
"haptic_timer_compare_value": "HAPTIC_GPIO_TIMER->CCR1"
}
}
+54 -16
View File
@@ -336,27 +336,65 @@
}
],
"display": {
"w": 480,
"h": 320,
"phys_w": 320,
"phys_h": 480,
"depth": 16,
"color": 1,
"oled": 0,
"backlight_color": 0
"lcd_w": 480,
"lcd_h": 320,
"lcd_phys_w": 320,
"lcd_phys_h": 480,
"lcd_depth": 16,
"ltdc_irq_prio": 4,
"dma_screen_irq_prio": 6
},
"custom_switches": {
"rgb_led": 0,
"groups": 0
"backlight": {
"backlight_gpio": "GPIO_PIN(GPIOA, 15)",
"backlight_timer": "TIM2",
"backlight_gpio_af": "GPIO_AF1",
"backlight_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)"
},
"leds": {
"led_strip_length": 4,
"bling_led_strip_start": 0,
"bling_led_strip_length": 4,
"led_strip_gpio": "GPIO_PIN(GPIOH, 12)",
"led_strip_gpio_af": "LL_GPIO_AF_2",
"led_strip_timer": "TIM5",
"led_strip_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"led_strip_timer_channel": "LL_TIM_CHANNEL_CH3",
"led_strip_timer_dma": "DMA1",
"led_strip_timer_dma_channel": "LL_DMA_CHANNEL_6",
"led_strip_timer_dma_stream": "LL_DMA_STREAM_0",
"led_strip_timer_dma_irqn": "DMA1_Stream0_IRQn",
"led_strip_timer_dma_irqhandler": "DMA1_Stream0_IRQHandler",
"led_strip_refresh_period": 50,
"status_leds": true
},
"hardware": {
"has_audio_mute": 0,
"has_bling_leds": 4,
"has_ext_module_support": 1,
"has_int_module_support": 1,
"has_ext_module_support": true,
"has_int_module_support": true,
"sport_max_baudrate": 400000,
"surface": 0,
"cpu": "STM32F429xI",
"cpu_type": "STM32F4"
},
"timers": {
"cpu_freq": 168000000,
"peri1_frequency": 42000000,
"peri2_frequency": 84000000,
"timer_mult_apb1": 2,
"timer_mult_apb2": 2,
"ms_timer": "TIM14",
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
"mixer_scheduler_timer": "TIM12",
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
},
"haptic": {
"haptic_pwm": true,
"haptic_gpio": "GPIO_PIN(GPIOA, 8)",
"haptic_gpio_timer": "TIM1",
"haptic_gpio_af": "GPIO_AF1",
"haptic_timer_output_enable": "TIM_CCER_CC1E | TIM_CCER_CC1NE",
"haptic_timer_mode": "TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1PE",
"haptic_timer_compare_value": "HAPTIC_GPIO_TIMER->CCR1"
}
}
+55 -16
View File
@@ -307,27 +307,66 @@
}
],
"display": {
"w": 480,
"h": 320,
"phys_w": 320,
"phys_h": 480,
"depth": 16,
"color": 1,
"oled": 0,
"backlight_color": 0
"lcd_w": 480,
"lcd_h": 320,
"lcd_phys_w": 320,
"lcd_phys_h": 480,
"lcd_depth": 16,
"ltdc_irq_prio": 4,
"dma_screen_irq_prio": 6
},
"custom_switches": {
"rgb_led": 0,
"groups": 0
"backlight": {
"backlight_gpio": "GPIO_PIN(GPIOA, 15)",
"backlight_timer": "TIM2",
"backlight_gpio_af": "GPIO_AF1",
"backlight_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)"
},
"leds": {
"led_strip_length": 4,
"bling_led_strip_start": 0,
"bling_led_strip_length": 4,
"led_strip_gpio": "GPIO_PIN(GPIOH, 12)",
"led_strip_gpio_af": "LL_GPIO_AF_2",
"led_strip_timer": "TIM5",
"led_strip_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"led_strip_timer_channel": "LL_TIM_CHANNEL_CH3",
"led_strip_timer_dma": "DMA1",
"led_strip_timer_dma_channel": "LL_DMA_CHANNEL_6",
"led_strip_timer_dma_stream": "LL_DMA_STREAM_0",
"led_strip_timer_dma_irqn": "DMA1_Stream0_IRQn",
"led_strip_timer_dma_irqhandler": "DMA1_Stream0_IRQHandler",
"led_strip_refresh_period": 50,
"status_leds": true
},
"hardware": {
"has_audio_mute": 1,
"has_bling_leds": 4,
"has_ext_module_support": 1,
"has_int_module_support": 1,
"has_audio_mute": true,
"has_ext_module_support": true,
"has_int_module_support": true,
"sport_max_baudrate": 400000,
"surface": 0,
"cpu": "STM32F429xI",
"cpu_type": "STM32F4"
},
"timers": {
"cpu_freq": 168000000,
"peri1_frequency": 42000000,
"peri2_frequency": 84000000,
"timer_mult_apb1": 2,
"timer_mult_apb2": 2,
"ms_timer": "TIM14",
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
"mixer_scheduler_timer": "TIM12",
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
},
"haptic": {
"haptic_pwm": true,
"haptic_gpio": "GPIO_PIN(GPIOA, 8)",
"haptic_gpio_timer": "TIM1",
"haptic_gpio_af": "GPIO_AF1",
"haptic_timer_output_enable": "TIM_CCER_CC1E | TIM_CCER_CC1NE",
"haptic_timer_mode": "TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1PE",
"haptic_timer_compare_value": "HAPTIC_GPIO_TIMER->CCR1"
}
}
+41 -16
View File
@@ -270,27 +270,52 @@
}
],
"display": {
"w": 128,
"h": 64,
"phys_w": 128,
"phys_h": 64,
"depth": 1,
"color": 0,
"oled": 0,
"backlight_color": 0
"lcd_w": 128,
"lcd_h": 64,
"lcd_phys_w": 128,
"lcd_phys_h": 64,
"lcd_depth": 1,
"lcd_vertical_invert": true
},
"custom_switches": {
"rgb_led": 0,
"groups": 0
"backlight": {
"backlight_bdtr": "TIM_BDTR_MOE"
},
"leds": {
"status_leds": true,
"led_red_gpio": "GPIO_PIN(GPIOE, 13)",
"led_green_gpio": "GPIO_PIN(GPIOE, 2)",
"led_blue_gpio": "GPIO_PIN(GPIOA, 7)"
},
"hardware": {
"has_audio_mute": 1,
"has_bling_leds": 0,
"has_ext_module_support": 1,
"has_int_module_support": 1,
"has_audio_mute": true,
"has_ext_module_support": true,
"has_int_module_support": true,
"sport_max_baudrate": 400000,
"surface": 0,
"cpu": "STM32F407xE",
"cpu_type": "STM32F4"
},
"timers": {
"cpu_freq": 168000000,
"peri1_frequency": 42000000,
"peri2_frequency": 84000000,
"timer_mult_apb1": 2,
"timer_mult_apb2": 2,
"ms_timer": "TIM14",
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
"mixer_scheduler_timer": "TIM12",
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
},
"haptic": {
"haptic_pwm": true,
"haptic_gpio": "GPIO_PIN(GPIOB, 3)",
"haptic_gpio_af": "GPIO_AF1",
"haptic_timer": "TIM2",
"haptic_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"haptic_counter_register": "HAPTIC_TIMER->CCR2",
"haptic_ccmr1": "TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2",
"haptic_ccer": "TIM_CCER_CC2E"
}
}
+87 -16
View File
@@ -384,27 +384,98 @@
}
],
"display": {
"w": 480,
"h": 320,
"phys_w": 320,
"phys_h": 480,
"depth": 16,
"color": 1,
"oled": 0,
"backlight_color": 0
"lcd_w": 480,
"lcd_h": 320,
"lcd_phys_w": 320,
"lcd_phys_h": 480,
"lcd_depth": 16,
"ltdc_irq_prio": 4,
"dma_screen_irq_prio": 6
},
"custom_switches": {
"rgb_led": 1,
"groups": 3
"backlight": {
"backlight_gpio": "GPIO_PIN(GPIOC, 6)",
"backlight_timer": "TIM3",
"backlight_gpio_af": "GPIO_AF2",
"backlight_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)"
},
"leds": {
"led_strip_length": 24,
"bling_led_strip_start": 0,
"bling_led_strip_length": 12,
"cfs_led_strip_start": 12,
"cfs_led_strip_length": 12,
"cfs_leds_per_switch": 2,
"led_strip_gpio": "GPIO_PIN(GPIOA, 15)",
"led_strip_gpio_af": "LL_GPIO_AF_1",
"led_strip_timer": "TIM2",
"led_strip_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"led_strip_timer_channel": "LL_TIM_CHANNEL_CH1",
"led_strip_timer_dma": "DMA1",
"led_strip_timer_dma_channel": "LL_DMAMUX1_REQ_TIM2_UP",
"led_strip_timer_dma_stream": "LL_DMA_STREAM_0",
"led_strip_timer_dma_irqn": "DMA1_Stream0_IRQn",
"led_strip_timer_dma_irqhandler": "DMA1_Stream0_IRQHandler",
"led_strip_refresh_period": 50,
"status_leds": true
},
"hardware": {
"has_audio_mute": 1,
"has_bling_leds": 12,
"has_ext_module_support": 1,
"has_int_module_support": 1,
"has_audio_mute": true,
"has_ext_module_support": true,
"has_int_module_support": true,
"sport_max_baudrate": 400000,
"surface": 0,
"cpu": "STM32H750xB",
"cpu_type": "STM32H7"
},
"timers": {
"cpu_freq": 400000000,
"peri1_frequency": 100000000,
"peri2_frequency": 100000000,
"timer_mult_apb1": 2,
"timer_mult_apb2": 2,
"ms_timer": "TIM14",
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
"mixer_scheduler_timer": "TIM12",
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
},
"imu": {
"imu_i2c_bus": "I2C_Bus_1",
"imu_i2c_address": "0x6A"
},
"rotenc": {
"rotary_encoder_inverted": true,
"rotary_encoder_gpio": "GPIOG",
"rotary_encoder_gpio_pin_a": "LL_GPIO_PIN_2",
"rotary_encoder_gpio_pin_b": "LL_GPIO_PIN_3",
"rotary_encoder_position": "((ROTARY_ENCODER_GPIO->IDR >> 2) & 0x03)",
"rotary_encoder_exti_line1": "LL_EXTI_LINE_2",
"rotary_encoder_exti_line2": "LL_EXTI_LINE_3",
"exti": [
{
"irq": "EXTI2_IRQ",
"priority": 5
},
{
"irq": "EXTI3_IRQ",
"priority": 5
}
],
"rotary_encoder_exti_port": "LL_SYSCFG_EXTI_PORTG",
"rotary_encoder_exti_sys_line1": "LL_SYSCFG_EXTI_LINE2",
"rotary_encoder_exti_sys_line2": "LL_SYSCFG_EXTI_LINE3",
"rotary_encoder_timer": "TIM17",
"rotary_encoder_timer_irqn": "TIM17_IRQn",
"rotary_encoder_timer_irqhandler": "TIM17_IRQHandler"
},
"haptic": {
"haptic_pwm": true,
"haptic_gpio": "GPIO_PIN(GPIOB, 5)",
"haptic_gpio_timer": "TIM3",
"haptic_gpio_af": "GPIO_AF2",
"haptic_timer_output_enable": "TIM_CCER_CC2E | TIM_CCER_CC2NE",
"haptic_timer_mode": "TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2 | TIM_CCMR1_OC2PE",
"haptic_timer_compare_value": "HAPTIC_GPIO_TIMER->CCR2"
}
}
+38 -16
View File
@@ -312,27 +312,49 @@
}
],
"display": {
"w": 128,
"h": 64,
"phys_w": 128,
"phys_h": 64,
"depth": 1,
"color": 0,
"oled": 0,
"backlight_color": 0
"lcd_w": 128,
"lcd_h": 64,
"lcd_phys_w": 128,
"lcd_phys_h": 64,
"lcd_depth": 1,
"lcd_vertical_invert": true
},
"custom_switches": {
"rgb_led": 0,
"groups": 0
"leds": {
"status_leds": true,
"led_red_gpio": "GPIO_PIN(GPIOC, 5)",
"led_green_gpio": "GPIO_PIN(GPIOC, 4)",
"led_blue_gpio": "GPIO_PIN(GPIOB, 1)"
},
"hardware": {
"has_audio_mute": 1,
"has_bling_leds": 0,
"has_ext_module_support": 1,
"has_int_module_support": 1,
"has_audio_mute": true,
"has_ext_module_support": true,
"has_int_module_support": true,
"sport_max_baudrate": 400000,
"surface": 0,
"cpu": "STM32F205xE",
"cpu_type": "STM32F2"
},
"timers": {
"cpu_freq": 120000000,
"peri1_frequency": 30000000,
"peri2_frequency": 60000000,
"timer_mult_apb1": 2,
"timer_mult_apb2": 2,
"ms_timer": "TIM14",
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
"mixer_scheduler_timer": "TIM12",
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
},
"haptic": {
"haptic_pwm": true,
"haptic_gpio": "GPIO_PIN(GPIOB, 8)",
"haptic_gpio_af": "GPIO_AF3",
"haptic_timer": "TIM10",
"haptic_timer_freq": "(PERI2_FREQUENCY * TIMER_MULT_APB2)",
"haptic_counter_register": "HAPTIC_TIMER->CCR1",
"haptic_ccmr1": "TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2",
"haptic_ccer": "TIM_CCER_CC1E"
}
}
+41 -16
View File
@@ -270,27 +270,52 @@
}
],
"display": {
"w": 128,
"h": 64,
"phys_w": 128,
"phys_h": 64,
"depth": 1,
"color": 0,
"oled": 0,
"backlight_color": 0
"lcd_w": 128,
"lcd_h": 64,
"lcd_phys_w": 128,
"lcd_phys_h": 64,
"lcd_depth": 1,
"lcd_vertical_invert": true
},
"custom_switches": {
"rgb_led": 0,
"groups": 0
"backlight": {
"backlight_bdtr": "TIM_BDTR_MOE"
},
"leds": {
"status_leds": true,
"led_red_gpio": "GPIO_PIN(GPIOE, 2)",
"led_green_gpio": "GPIO_PIN(GPIOA, 7)",
"led_blue_gpio": "GPIO_PIN(GPIOE, 13)"
},
"hardware": {
"has_audio_mute": 1,
"has_bling_leds": 0,
"has_ext_module_support": 1,
"has_int_module_support": 1,
"has_audio_mute": true,
"has_ext_module_support": true,
"has_int_module_support": true,
"sport_max_baudrate": 400000,
"surface": 0,
"cpu": "STM32F407xG",
"cpu_type": "STM32F4"
},
"timers": {
"cpu_freq": 168000000,
"peri1_frequency": 42000000,
"peri2_frequency": 84000000,
"timer_mult_apb1": 2,
"timer_mult_apb2": 2,
"ms_timer": "TIM14",
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
"mixer_scheduler_timer": "TIM12",
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
},
"haptic": {
"haptic_pwm": true,
"haptic_gpio": "GPIO_PIN(GPIOB, 3)",
"haptic_gpio_af": "GPIO_AF1",
"haptic_timer": "TIM2",
"haptic_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"haptic_counter_register": "HAPTIC_TIMER->CCR2",
"haptic_ccmr1": "TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2",
"haptic_ccer": "TIM_CCER_CC2E"
}
}
+56 -16
View File
@@ -270,27 +270,67 @@
}
],
"display": {
"w": 128,
"h": 64,
"phys_w": 128,
"phys_h": 64,
"depth": 1,
"color": 0,
"oled": 1,
"backlight_color": 0
"lcd_w": 128,
"lcd_h": 64,
"lcd_phys_w": 128,
"lcd_phys_h": 64,
"lcd_depth": 1,
"oled_screen": true,
"lcd_horizontal_invert": true
},
"custom_switches": {
"rgb_led": 0,
"groups": 0
"backlight": {
"backlight_bdtr": "TIM_BDTR_MOE"
},
"leds": {
"led_strip_length": 1,
"bling_led_strip_start": 0,
"bling_led_strip_length": 1,
"led_strip_gpio": "GPIO_PIN(GPIOA, 10)",
"led_strip_gpio_af": "LL_GPIO_AF_1",
"led_strip_timer": "TIM1",
"led_strip_timer_freq": "(PERI2_FREQUENCY * TIMER_MULT_APB2)",
"led_strip_timer_channel": "LL_TIM_CHANNEL_CH3",
"led_strip_timer_dma": "DMA2",
"led_strip_timer_dma_channel": "LL_DMA_CHANNEL_6",
"led_strip_timer_dma_stream": "LL_DMA_STREAM_5",
"led_strip_timer_dma_irqn": "DMA2_Stream5_IRQn",
"led_strip_timer_dma_irqhandler": "DMA2_Stream5_IRQHandler",
"led_strip_refresh_period": 50,
"status_leds": true,
"led_red_gpio": "GPIO_PIN(GPIOE, 2)",
"led_green_gpio": "GPIO_PIN(GPIOA, 7)",
"led_blue_gpio": "GPIO_PIN(GPIOE, 13)"
},
"hardware": {
"has_audio_mute": 1,
"has_bling_leds": 1,
"has_ext_module_support": 1,
"has_int_module_support": 1,
"has_audio_mute": true,
"has_ext_module_support": true,
"has_int_module_support": true,
"sport_max_baudrate": 400000,
"surface": 0,
"cpu": "STM32F407xG",
"cpu_type": "STM32F4"
},
"timers": {
"cpu_freq": 168000000,
"peri1_frequency": 42000000,
"peri2_frequency": 84000000,
"timer_mult_apb1": 2,
"timer_mult_apb2": 2,
"ms_timer": "TIM14",
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
"mixer_scheduler_timer": "TIM12",
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
},
"haptic": {
"haptic_pwm": true,
"haptic_gpio": "GPIO_PIN(GPIOB, 3)",
"haptic_gpio_af": "GPIO_AF1",
"haptic_timer": "TIM2",
"haptic_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"haptic_counter_register": "HAPTIC_TIMER->CCR2",
"haptic_ccmr1": "TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2",
"haptic_ccer": "TIM_CCER_CC2E"
}
}
+38 -16
View File
@@ -350,27 +350,49 @@
}
],
"display": {
"w": 480,
"h": 320,
"phys_w": 480,
"phys_h": 320,
"depth": 16,
"color": 1,
"oled": 0,
"backlight_color": 0
"lcd_w": 480,
"lcd_h": 320,
"lcd_phys_w": 480,
"lcd_phys_h": 320,
"lcd_depth": 16,
"ltdc_irq_prio": 4,
"dma_screen_irq_prio": 6
},
"custom_switches": {
"rgb_led": 0,
"groups": 3
"leds": {
"status_leds": true,
"led_red_gpio": "GPIO_PIN(GPIOI, 14)",
"led_green_gpio": "GPIO_PIN(GPIOC, 13)",
"led_blue_gpio": "GPIO_PIN(GPIOE, 3)"
},
"hardware": {
"has_audio_mute": 1,
"has_bling_leds": 0,
"has_ext_module_support": 1,
"has_int_module_support": 1,
"has_audio_mute": true,
"has_ext_module_support": true,
"has_int_module_support": true,
"sport_max_baudrate": 400000,
"surface": 0,
"cpu": "STM32F429xI",
"cpu_type": "STM32F4"
},
"timers": {
"cpu_freq": 168000000,
"peri1_frequency": 42000000,
"peri2_frequency": 84000000,
"timer_mult_apb1": 2,
"timer_mult_apb2": 2,
"ms_timer": "TIM14",
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
"mixer_scheduler_timer": "TIM13",
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"mixer_scheduler_timer_irqn": "TIM8_UP_TIM13_IRQn",
"mixer_scheduler_timer_irqhandler": "TIM8_UP_TIM13_IRQHandler"
},
"haptic": {
"haptic_pwm": true,
"haptic_gpio": "GPIO_PIN(GPIOA, 5)",
"haptic_gpio_timer": "TIM2",
"haptic_gpio_af": "GPIO_AF1",
"haptic_timer_output_enable": "TIM_CCER_CC1E | TIM_CCER_CC1NE",
"haptic_timer_mode": "TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1PE",
"haptic_timer_compare_value": "HAPTIC_GPIO_TIMER->CCR1"
}
}
+84 -16
View File
@@ -354,27 +354,95 @@
}
],
"display": {
"w": 480,
"h": 320,
"phys_w": 480,
"phys_h": 320,
"depth": 16,
"color": 1,
"oled": 0,
"backlight_color": 0
"lcd_w": 480,
"lcd_h": 320,
"lcd_phys_w": 480,
"lcd_phys_h": 320,
"lcd_depth": 16,
"ltdc_irq_prio": 4,
"dma_screen_irq_prio": 6
},
"custom_switches": {
"rgb_led": 1,
"groups": 3
"backlight": {
"backlight_gpio": "GPIO_PIN(GPIOA, 5)",
"backlight_timer": "TIM2",
"backlight_timer_channel": "LL_TIM_CHANNEL_CH1",
"backlight_gpio_af": "GPIO_AF1",
"backlight_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)"
},
"leds": {
"led_strip_length": 7,
"bling_led_strip_start": 6,
"bling_led_strip_length": 1,
"cfs_led_strip_start": 0,
"cfs_led_strip_length": 6,
"cfs_leds_per_switch": 1,
"led_strip_gpio": "GPIO_PIN(GPIOA, 10)",
"led_strip_gpio_af": "LL_GPIO_AF_1",
"led_strip_timer": "TIM1",
"led_strip_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"led_strip_timer_channel": "LL_TIM_CHANNEL_CH3",
"led_strip_timer_dma": "DMA1",
"led_strip_timer_dma_channel": "LL_DMAMUX1_REQ_TIM1_UP",
"led_strip_timer_dma_stream": "LL_DMA_STREAM_0",
"led_strip_timer_dma_irqn": "DMA1_Stream0_IRQn",
"led_strip_timer_dma_irqhandler": "DMA1_Stream0_IRQHandler",
"led_strip_refresh_period": 50,
"status_leds": true,
"led_red_gpio": "GPIO_PIN(GPIOA, 8)",
"led_green_gpio": "GPIO_PIN(GPIOJ, 13)",
"led_blue_gpio": "GPIO_PIN(GPIOG, 7)"
},
"hardware": {
"has_audio_mute": 1,
"has_bling_leds": 1,
"has_ext_module_support": 1,
"has_int_module_support": 1,
"has_audio_mute": true,
"has_ext_module_support": true,
"has_int_module_support": true,
"sport_max_baudrate": 400000,
"surface": 0,
"cpu": "STM32H750xB",
"cpu_type": "STM32H7"
},
"timers": {
"cpu_freq": 480000000,
"peri1_frequency": 120000000,
"peri2_frequency": 120000000,
"timer_mult_apb1": 2,
"timer_mult_apb2": 2,
"ms_timer": "TIM14",
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
"mixer_scheduler_timer": "TIM12",
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
},
"rotenc": {
"rotary_encoder_gpio_a": "GPIOA",
"rotary_encoder_gpio_pin_a": "LL_GPIO_PIN_6",
"rotary_encoder_gpio_b": "GPIOA",
"rotary_encoder_gpio_pin_b": "LL_GPIO_PIN_7",
"rotary_encoder_position": "(((ROTARY_ENCODER_GPIO_A->IDR >> 6) & 0x01)|((ROTARY_ENCODER_GPIO_B->IDR >> 6) & 0x02))",
"rotary_encoder_exti_line1": "LL_EXTI_LINE_6",
"rotary_encoder_exti_line2": "LL_EXTI_LINE_7",
"exti": [
{
"irq": "EXTI9_5_IRQ",
"priority": 9
}
],
"rotary_encoder_exti_port_a": "LL_SYSCFG_EXTI_PORTA",
"rotary_encoder_exti_port_b": "LL_SYSCFG_EXTI_PORTA",
"rotary_encoder_exti_sys_line1": "LL_SYSCFG_EXTI_LINE6",
"rotary_encoder_exti_sys_line2": "LL_SYSCFG_EXTI_LINE7",
"rotary_encoder_timer": "TIM17",
"rotary_encoder_timer_irqn": "TIM17_IRQn",
"rotary_encoder_timer_irqhandler": "TIM17_IRQHandler"
},
"haptic": {
"haptic_pwm": true,
"haptic_gpio": "GPIO_PIN(GPIOE, 6)",
"haptic_gpio_timer": "TIM15",
"haptic_gpio_af": "GPIO_AF4",
"haptic_timer_output_enable": "TIM_CCER_CC2E | TIM_CCER_CC2NE",
"haptic_timer_mode": "TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2 | TIM_CCMR1_OC2PE",
"haptic_timer_compare_value": "HAPTIC_GPIO_TIMER->CCR2"
}
}
+39 -16
View File
@@ -429,27 +429,50 @@
}
],
"display": {
"w": 480,
"h": 272,
"phys_w": 480,
"phys_h": 272,
"depth": 16,
"color": 1,
"oled": 0,
"backlight_color": 0
"lcd_w": 480,
"lcd_h": 272,
"lcd_phys_w": 480,
"lcd_phys_h": 272,
"lcd_depth": 16,
"lcd_vertical_invert": true,
"ltdc_irq_prio": 4,
"dma_screen_irq_prio": 6
},
"custom_switches": {
"rgb_led": 0,
"groups": 0
"leds": {
"status_leds": true,
"led_red_gpio": "GPIO_PIN(GPIOE, 2)",
"led_green_gpio": "GPIO_PIN(GPIOE, 4)",
"led_blue_gpio": "GPIO_PIN(GPIOE, 5)"
},
"hardware": {
"has_audio_mute": 1,
"has_bling_leds": 0,
"has_ext_module_support": 1,
"has_int_module_support": 1,
"has_audio_mute": true,
"has_ext_module_support": true,
"has_int_module_support": true,
"sport_max_baudrate": 400000,
"surface": 0,
"cpu": "STM32F429xI",
"cpu_type": "STM32F4"
},
"timers": {
"cpu_freq": 168000000,
"peri1_frequency": 42000000,
"peri2_frequency": 84000000,
"timer_mult_apb1": 2,
"timer_mult_apb2": 2,
"ms_timer": "TIM14",
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
"mixer_scheduler_timer": "TIM13",
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"mixer_scheduler_timer_irqn": "TIM8_UP_TIM13_IRQn",
"mixer_scheduler_timer_irqhandler": "TIM8_UP_TIM13_IRQHandler"
},
"haptic": {
"haptic_pwm": true,
"haptic_gpio": "GPIO_PIN(GPIOE, 6)",
"haptic_gpio_timer": "TIM9",
"haptic_gpio_af": "GPIO_AF3",
"haptic_timer_output_enable": "TIM_CCER_CC2E",
"haptic_timer_mode": "TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2",
"haptic_timer_compare_value": "HAPTIC_GPIO_TIMER->CCR2"
}
}
+38 -16
View File
@@ -431,27 +431,49 @@
}
],
"display": {
"w": 480,
"h": 272,
"phys_w": 480,
"phys_h": 272,
"depth": 16,
"color": 1,
"oled": 0,
"backlight_color": 0
"lcd_w": 480,
"lcd_h": 272,
"lcd_phys_w": 480,
"lcd_phys_h": 272,
"lcd_depth": 16,
"ltdc_irq_prio": 4,
"dma_screen_irq_prio": 6
},
"custom_switches": {
"rgb_led": 0,
"groups": 0
"leds": {
"status_leds": true,
"led_red_gpio": "GPIO_PIN(GPIOE, 2)",
"led_green_gpio": "GPIO_PIN(GPIOE, 4)",
"led_blue_gpio": "GPIO_PIN(GPIOE, 5)"
},
"hardware": {
"has_audio_mute": 1,
"has_bling_leds": 0,
"has_ext_module_support": 1,
"has_int_module_support": 1,
"has_audio_mute": true,
"has_ext_module_support": true,
"has_int_module_support": true,
"sport_max_baudrate": 400000,
"surface": 0,
"cpu": "STM32F429xI",
"cpu_type": "STM32F4"
},
"timers": {
"cpu_freq": 168000000,
"peri1_frequency": 42000000,
"peri2_frequency": 84000000,
"timer_mult_apb1": 2,
"timer_mult_apb2": 2,
"ms_timer": "TIM14",
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
"mixer_scheduler_timer": "TIM13",
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"mixer_scheduler_timer_irqn": "TIM8_UP_TIM13_IRQn",
"mixer_scheduler_timer_irqhandler": "TIM8_UP_TIM13_IRQHandler"
},
"haptic": {
"haptic_pwm": true,
"haptic_gpio": "GPIO_PIN(GPIOE, 6)",
"haptic_gpio_timer": "TIM9",
"haptic_gpio_af": "GPIO_AF3",
"haptic_timer_output_enable": "TIM_CCER_CC2E",
"haptic_timer_mode": "TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2",
"haptic_timer_compare_value": "HAPTIC_GPIO_TIMER->CCR2"
}
}
+40 -16
View File
@@ -509,27 +509,51 @@
}
],
"display": {
"w": 128,
"h": 64,
"phys_w": 128,
"phys_h": 64,
"depth": 1,
"color": 0,
"oled": 1,
"backlight_color": 0
"lcd_w": 128,
"lcd_h": 64,
"lcd_phys_w": 128,
"lcd_phys_h": 64,
"lcd_depth": 1,
"oled_screen": true,
"lcd_horizontal_invert": true,
"lcd_vertical_invert": true
},
"custom_switches": {
"rgb_led": 0,
"groups": 3
"leds": {
"status_leds": true,
"led_red_gpio": "GPIO_PIN(GPIOC, 5)",
"led_green_gpio": "GPIO_PIN(GPIOG, 1)",
"led_blue_gpio": "GPIO_PIN(GPIOC, 4)"
},
"hardware": {
"has_audio_mute": 1,
"has_bling_leds": 0,
"has_ext_module_support": 1,
"has_int_module_support": 1,
"has_audio_mute": true,
"has_ext_module_support": true,
"has_int_module_support": true,
"sport_max_baudrate": 400000,
"surface": 0,
"cpu": "STM32F407xE",
"cpu_type": "STM32F4"
},
"timers": {
"cpu_freq": 168000000,
"peri1_frequency": 42000000,
"peri2_frequency": 84000000,
"timer_mult_apb1": 2,
"timer_mult_apb2": 2,
"ms_timer": "TIM14",
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
"mixer_scheduler_timer": "TIM12",
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
},
"haptic": {
"haptic_pwm": true,
"haptic_gpio": "GPIO_PIN(GPIOB, 8)",
"haptic_gpio_af": "GPIO_AF3",
"haptic_timer": "TIM10",
"haptic_timer_freq": "(PERI2_FREQUENCY * TIMER_MULT_APB2)",
"haptic_counter_register": "HAPTIC_TIMER->CCR1",
"haptic_ccmr1": "TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2",
"haptic_ccer": "TIM_CCER_CC1E"
}
}
+43 -16
View File
@@ -509,27 +509,54 @@
}
],
"display": {
"w": 128,
"h": 64,
"phys_w": 128,
"phys_h": 64,
"depth": 1,
"color": 0,
"oled": 1,
"backlight_color": 0
"lcd_w": 128,
"lcd_h": 64,
"lcd_phys_w": 128,
"lcd_phys_h": 64,
"lcd_depth": 1,
"oled_screen": true,
"lcd_horizontal_invert": true,
"lcd_vertical_invert": true
},
"custom_switches": {
"rgb_led": 0,
"groups": 3
"backlight": {
"backlight_bdtr": "TIM_BDTR_MOE"
},
"leds": {
"status_leds": true,
"led_red_gpio": "GPIO_PIN(GPIOC, 5)",
"led_green_gpio": "GPIO_PIN(GPIOG, 1)",
"led_blue_gpio": "GPIO_PIN(GPIOC, 4)"
},
"hardware": {
"has_audio_mute": 1,
"has_bling_leds": 0,
"has_ext_module_support": 1,
"has_int_module_support": 1,
"has_audio_mute": true,
"has_ext_module_support": true,
"has_int_module_support": true,
"sport_max_baudrate": 400000,
"surface": 0,
"cpu": "STM32F407xG",
"cpu_type": "STM32F4"
},
"timers": {
"cpu_freq": 168000000,
"peri1_frequency": 42000000,
"peri2_frequency": 84000000,
"timer_mult_apb1": 2,
"timer_mult_apb2": 2,
"ms_timer": "TIM14",
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
"mixer_scheduler_timer": "TIM12",
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
},
"haptic": {
"haptic_pwm": true,
"haptic_gpio": "GPIO_PIN(GPIOB, 3)",
"haptic_gpio_af": "GPIO_AF1",
"haptic_timer": "TIM2",
"haptic_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"haptic_counter_register": "HAPTIC_TIMER->CCR2",
"haptic_ccmr1": "TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2",
"haptic_ccer": "TIM_CCER_CC2E"
}
}
+76 -16
View File
@@ -463,27 +463,87 @@
}
],
"display": {
"w": 480,
"h": 320,
"phys_w": 320,
"phys_h": 480,
"depth": 16,
"color": 1,
"oled": 0,
"backlight_color": 0
"lcd_w": 480,
"lcd_h": 320,
"lcd_phys_w": 320,
"lcd_phys_h": 480,
"lcd_depth": 16
},
"custom_switches": {
"rgb_led": 1,
"groups": 3
"leds": {
"led_strip_length": 7,
"bling_led_strip_start": 6,
"bling_led_strip_length": 1,
"cfs_led_strip_start": 0,
"cfs_led_strip_length": 6,
"cfs_leds_per_switch": 1,
"led_strip_gpio": "GPIO_PIN(GPIOA, 10)",
"led_strip_gpio_af": "LL_GPIO_AF_1",
"led_strip_timer": "TIM1",
"led_strip_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"led_strip_timer_channel": "LL_TIM_CHANNEL_CH3",
"led_strip_timer_dma": "DMA1",
"led_strip_timer_dma_channel": "LL_DMAMUX1_REQ_TIM1_UP",
"led_strip_timer_dma_stream": "LL_DMA_STREAM_0",
"led_strip_timer_dma_irqn": "DMA1_Stream0_IRQn",
"led_strip_timer_dma_irqhandler": "DMA1_Stream0_IRQHandler",
"led_strip_refresh_period": 50,
"status_leds": true,
"led_red_gpio": "GPIO_PIN(GPIOB, 15)",
"led_red2_gpio": "GPIO_PIN(GPIOJ, 12)",
"led_green_gpio": "GPIO_PIN(GPIOB, 13)",
"led_blue_gpio": "GPIO_PIN(GPIOB, 12)"
},
"hardware": {
"has_audio_mute": 1,
"has_bling_leds": 1,
"has_ext_module_support": 1,
"has_int_module_support": 1,
"has_audio_mute": true,
"has_ext_module_support": true,
"has_int_module_support": true,
"sport_max_baudrate": 400000,
"surface": 0,
"cpu": "STM32H750xB",
"cpu_type": "STM32H7"
},
"timers": {
"cpu_freq": 480000000,
"peri1_frequency": 120000000,
"peri2_frequency": 120000000,
"timer_mult_apb1": 2,
"timer_mult_apb2": 2,
"ms_timer": "TIM14",
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
"mixer_scheduler_timer": "TIM12",
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
},
"rotenc": {
"rotary_encoder_gpio_a": "GPIOA",
"rotary_encoder_gpio_pin_a": "LL_GPIO_PIN_6",
"rotary_encoder_gpio_b": "GPIOA",
"rotary_encoder_gpio_pin_b": "LL_GPIO_PIN_7",
"rotary_encoder_position": "(((ROTARY_ENCODER_GPIO_A->IDR >> 6) & 0x01)|((ROTARY_ENCODER_GPIO_B->IDR >> 6) & 0x02))",
"rotary_encoder_exti_line1": "LL_EXTI_LINE_6",
"rotary_encoder_exti_line2": "LL_EXTI_LINE_7",
"exti": [
{
"irq": "EXTI9_5_IRQ",
"priority": 9
}
],
"rotary_encoder_exti_port_a": "LL_SYSCFG_EXTI_PORTA",
"rotary_encoder_exti_port_b": "LL_SYSCFG_EXTI_PORTA",
"rotary_encoder_exti_sys_line1": "LL_SYSCFG_EXTI_LINE6",
"rotary_encoder_exti_sys_line2": "LL_SYSCFG_EXTI_LINE7",
"rotary_encoder_timer": "TIM17",
"rotary_encoder_timer_irqn": "TIM17_IRQn",
"rotary_encoder_timer_irqhandler": "TIM17_IRQHandler"
},
"haptic": {
"haptic_pwm": true,
"haptic_gpio": "GPIO_PIN(GPIOE, 6)",
"haptic_gpio_timer": "TIM15",
"haptic_gpio_af": "GPIO_AF4",
"haptic_timer_output_enable": "TIM_CCER_CC2E | TIM_CCER_CC2NE",
"haptic_timer_mode": "TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2 | TIM_CCMR1_OC2PE",
"haptic_timer_compare_value": "HAPTIC_GPIO_TIMER->CCR2"
}
}
+37 -16
View File
@@ -252,27 +252,48 @@
}
],
"display": {
"w": 128,
"h": 64,
"phys_w": 128,
"phys_h": 64,
"depth": 1,
"color": 0,
"oled": 0,
"backlight_color": 0
"lcd_w": 128,
"lcd_h": 64,
"lcd_phys_w": 128,
"lcd_phys_h": 64,
"lcd_depth": 1,
"lcd_vertical_invert": true
},
"custom_switches": {
"rgb_led": 0,
"groups": 0
"leds": {
"status_leds": true,
"led_red_gpio": "GPIO_PIN(GPIOC, 4)",
"led_green_gpio": "GPIO_PIN(GPIOB, 1)",
"led_blue_gpio": "GPIO_PIN(GPIOC, 5)"
},
"hardware": {
"has_audio_mute": 1,
"has_bling_leds": 0,
"has_ext_module_support": 0,
"has_int_module_support": 1,
"has_audio_mute": true,
"has_int_module_support": true,
"sport_max_baudrate": 400000,
"surface": 0,
"cpu": "STM32F205xE",
"cpu_type": "STM32F2"
},
"timers": {
"cpu_freq": 120000000,
"peri1_frequency": 30000000,
"peri2_frequency": 60000000,
"timer_mult_apb1": 2,
"timer_mult_apb2": 2,
"ms_timer": "TIM14",
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
"mixer_scheduler_timer": "TIM12",
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
},
"haptic": {
"haptic_pwm": true,
"haptic_gpio": "GPIO_PIN(GPIOB, 8)",
"haptic_gpio_af": "GPIO_AF3",
"haptic_timer": "TIM10",
"haptic_timer_freq": "(PERI2_FREQUENCY * TIMER_MULT_APB2)",
"haptic_counter_register": "HAPTIC_TIMER->CCR1",
"haptic_ccmr1": "TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2",
"haptic_ccer": "TIM_CCER_CC1E"
}
}
+38 -16
View File
@@ -236,27 +236,49 @@
}
],
"display": {
"w": 128,
"h": 64,
"phys_w": 128,
"phys_h": 64,
"depth": 1,
"color": 0,
"oled": 0,
"backlight_color": 0
"lcd_w": 128,
"lcd_h": 64,
"lcd_phys_w": 128,
"lcd_phys_h": 64,
"lcd_depth": 1,
"lcd_vertical_invert": true
},
"custom_switches": {
"rgb_led": 0,
"groups": 0
"leds": {
"status_leds": true,
"led_red_gpio": "GPIO_PIN(GPIOC, 5)",
"led_green_gpio": "GPIO_PIN(GPIOB, 1)",
"led_blue_gpio": "GPIO_PIN(GPIOC, 4)"
},
"hardware": {
"has_audio_mute": 1,
"has_bling_leds": 0,
"has_ext_module_support": 1,
"has_int_module_support": 1,
"has_audio_mute": true,
"has_ext_module_support": true,
"has_int_module_support": true,
"sport_max_baudrate": 400000,
"surface": 0,
"cpu": "STM32F205xE",
"cpu_type": "STM32F2"
},
"timers": {
"cpu_freq": 120000000,
"peri1_frequency": 30000000,
"peri2_frequency": 60000000,
"timer_mult_apb1": 2,
"timer_mult_apb2": 2,
"ms_timer": "TIM14",
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
"mixer_scheduler_timer": "TIM12",
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
},
"haptic": {
"haptic_pwm": true,
"haptic_gpio": "GPIO_PIN(GPIOB, 8)",
"haptic_gpio_af": "GPIO_AF3",
"haptic_timer": "TIM10",
"haptic_timer_freq": "(PERI2_FREQUENCY * TIMER_MULT_APB2)",
"haptic_counter_register": "HAPTIC_TIMER->CCR1",
"haptic_ccmr1": "TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2",
"haptic_ccer": "TIM_CCER_CC1E"
}
}
+38 -16
View File
@@ -342,27 +342,49 @@
}
],
"display": {
"w": 128,
"h": 64,
"phys_w": 128,
"phys_h": 64,
"depth": 1,
"color": 0,
"oled": 0,
"backlight_color": 0
"lcd_w": 128,
"lcd_h": 64,
"lcd_phys_w": 128,
"lcd_phys_h": 64,
"lcd_depth": 1,
"lcd_vertical_invert": true
},
"custom_switches": {
"rgb_led": 0,
"groups": 3
"leds": {
"status_leds": true,
"led_red_gpio": "GPIO_PIN(GPIOC, 5)",
"led_green_gpio": "GPIO_PIN(GPIOB, 1)",
"led_blue_gpio": "GPIO_PIN(GPIOC, 4)"
},
"hardware": {
"has_audio_mute": 1,
"has_bling_leds": 0,
"has_ext_module_support": 1,
"has_int_module_support": 1,
"has_audio_mute": true,
"has_ext_module_support": true,
"has_int_module_support": true,
"sport_max_baudrate": 400000,
"surface": 0,
"cpu": "STM32F205xE",
"cpu_type": "STM32F2"
},
"timers": {
"cpu_freq": 120000000,
"peri1_frequency": 30000000,
"peri2_frequency": 60000000,
"timer_mult_apb1": 2,
"timer_mult_apb2": 2,
"ms_timer": "TIM14",
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
"mixer_scheduler_timer": "TIM12",
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
},
"haptic": {
"haptic_pwm": true,
"haptic_gpio": "GPIO_PIN(GPIOB, 8)",
"haptic_gpio_af": "GPIO_AF3",
"haptic_timer": "TIM10",
"haptic_timer_freq": "(PERI2_FREQUENCY * TIMER_MULT_APB2)",
"haptic_counter_register": "HAPTIC_TIMER->CCR1",
"haptic_ccmr1": "TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2",
"haptic_ccer": "TIM_CCER_CC1E"
}
}
+43 -16
View File
@@ -270,27 +270,54 @@
}
],
"display": {
"w": 128,
"h": 64,
"phys_w": 128,
"phys_h": 64,
"depth": 1,
"color": 0,
"oled": 1,
"backlight_color": 0
"lcd_w": 128,
"lcd_h": 64,
"lcd_phys_w": 128,
"lcd_phys_h": 64,
"lcd_depth": 1,
"oled_screen": true,
"lcd_horizontal_invert": true,
"lcd_vertical_invert": true
},
"custom_switches": {
"rgb_led": 0,
"groups": 0
"backlight": {
"backlight_bdtr": "TIM_BDTR_MOE"
},
"leds": {
"status_leds": true,
"led_red_gpio": "GPIO_PIN(GPIOE, 2)",
"led_green_gpio": "GPIO_PIN(GPIOA, 7)",
"led_blue_gpio": "GPIO_PIN(GPIOE, 13)"
},
"hardware": {
"has_audio_mute": 1,
"has_bling_leds": 0,
"has_ext_module_support": 1,
"has_int_module_support": 1,
"has_audio_mute": true,
"has_ext_module_support": true,
"has_int_module_support": true,
"sport_max_baudrate": 400000,
"surface": 0,
"cpu": "STM32F407xG",
"cpu_type": "STM32F4"
},
"timers": {
"cpu_freq": 168000000,
"peri1_frequency": 42000000,
"peri2_frequency": 84000000,
"timer_mult_apb1": 2,
"timer_mult_apb2": 2,
"ms_timer": "TIM14",
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
"mixer_scheduler_timer": "TIM12",
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
},
"haptic": {
"haptic_pwm": true,
"haptic_gpio": "GPIO_PIN(GPIOB, 3)",
"haptic_gpio_af": "GPIO_AF1",
"haptic_timer": "TIM2",
"haptic_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"haptic_counter_register": "HAPTIC_TIMER->CCR2",
"haptic_ccmr1": "TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2",
"haptic_ccer": "TIM_CCER_CC2E"
}
}
+40 -16
View File
@@ -370,27 +370,51 @@
}
],
"display": {
"w": 128,
"h": 64,
"phys_w": 128,
"phys_h": 64,
"depth": 1,
"color": 0,
"oled": 1,
"backlight_color": 0
"lcd_w": 128,
"lcd_h": 64,
"lcd_phys_w": 128,
"lcd_phys_h": 64,
"lcd_depth": 1,
"oled_screen": true,
"lcd_horizontal_invert": true,
"lcd_vertical_invert": true
},
"custom_switches": {
"rgb_led": 0,
"groups": 3
"leds": {
"status_leds": true,
"led_red_gpio": "GPIO_PIN(GPIOC, 5)",
"led_green_gpio": "GPIO_PIN(GPIOB, 1)",
"led_blue_gpio": "GPIO_PIN(GPIOC, 4)"
},
"hardware": {
"has_audio_mute": 1,
"has_bling_leds": 0,
"has_ext_module_support": 1,
"has_int_module_support": 1,
"has_audio_mute": true,
"has_ext_module_support": true,
"has_int_module_support": true,
"sport_max_baudrate": 400000,
"surface": 0,
"cpu": "STM32F407xE",
"cpu_type": "STM32F4"
},
"timers": {
"cpu_freq": 168000000,
"peri1_frequency": 42000000,
"peri2_frequency": 84000000,
"timer_mult_apb1": 2,
"timer_mult_apb2": 2,
"ms_timer": "TIM14",
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
"mixer_scheduler_timer": "TIM12",
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
},
"haptic": {
"haptic_pwm": true,
"haptic_gpio": "GPIO_PIN(GPIOB, 8)",
"haptic_gpio_af": "GPIO_AF3",
"haptic_timer": "TIM10",
"haptic_timer_freq": "(PERI2_FREQUENCY * TIMER_MULT_APB2)",
"haptic_counter_register": "HAPTIC_TIMER->CCR1",
"haptic_ccmr1": "TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2",
"haptic_ccer": "TIM_CCER_CC1E"
}
}
+38 -16
View File
@@ -322,27 +322,49 @@
}
],
"display": {
"w": 128,
"h": 64,
"phys_w": 128,
"phys_h": 64,
"depth": 1,
"color": 0,
"oled": 0,
"backlight_color": 0
"lcd_w": 128,
"lcd_h": 64,
"lcd_phys_w": 128,
"lcd_phys_h": 64,
"lcd_depth": 1,
"lcd_vertical_invert": true
},
"custom_switches": {
"rgb_led": 0,
"groups": 0
"leds": {
"status_leds": true,
"led_red_gpio": "GPIO_PIN(GPIOC, 5)",
"led_green_gpio": "GPIO_PIN(GPIOB, 1)",
"led_blue_gpio": "GPIO_PIN(GPIOC, 4)"
},
"hardware": {
"has_audio_mute": 1,
"has_bling_leds": 0,
"has_ext_module_support": 1,
"has_int_module_support": 1,
"has_audio_mute": true,
"has_ext_module_support": true,
"has_int_module_support": true,
"sport_max_baudrate": 400000,
"surface": 0,
"cpu": "STM32F205xE",
"cpu_type": "STM32F2"
},
"timers": {
"cpu_freq": 120000000,
"peri1_frequency": 30000000,
"peri2_frequency": 60000000,
"timer_mult_apb1": 2,
"timer_mult_apb2": 2,
"ms_timer": "TIM14",
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
"mixer_scheduler_timer": "TIM12",
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
},
"haptic": {
"haptic_pwm": true,
"haptic_gpio": "GPIO_PIN(GPIOB, 8)",
"haptic_gpio_af": "GPIO_AF3",
"haptic_timer": "TIM10",
"haptic_timer_freq": "(PERI2_FREQUENCY * TIMER_MULT_APB2)",
"haptic_counter_register": "HAPTIC_TIMER->CCR1",
"haptic_ccmr1": "TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2",
"haptic_ccer": "TIM_CCER_CC1E"
}
}
+41 -16
View File
@@ -299,27 +299,52 @@
}
],
"display": {
"w": 128,
"h": 64,
"phys_w": 128,
"phys_h": 64,
"depth": 1,
"color": 0,
"oled": 0,
"backlight_color": 0
"lcd_w": 128,
"lcd_h": 64,
"lcd_phys_w": 128,
"lcd_phys_h": 64,
"lcd_depth": 1,
"lcd_vertical_invert": true
},
"custom_switches": {
"rgb_led": 0,
"groups": 0
"backlight": {
"backlight_bdtr": "TIM_BDTR_MOE"
},
"leds": {
"status_leds": true,
"led_red_gpio": "GPIO_PIN(GPIOE, 13)",
"led_green_gpio": "GPIO_PIN(GPIOA, 7)",
"led_blue_gpio": "GPIO_PIN(GPIOE, 2)"
},
"hardware": {
"has_audio_mute": 1,
"has_bling_leds": 0,
"has_ext_module_support": 1,
"has_int_module_support": 1,
"has_audio_mute": true,
"has_ext_module_support": true,
"has_int_module_support": true,
"sport_max_baudrate": 400000,
"surface": 0,
"cpu": "STM32F407xE",
"cpu_type": "STM32F4"
},
"timers": {
"cpu_freq": 168000000,
"peri1_frequency": 42000000,
"peri2_frequency": 84000000,
"timer_mult_apb1": 2,
"timer_mult_apb2": 2,
"ms_timer": "TIM14",
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
"mixer_scheduler_timer": "TIM12",
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
},
"haptic": {
"haptic_pwm": true,
"haptic_gpio": "GPIO_PIN(GPIOB, 3)",
"haptic_gpio_af": "GPIO_AF1",
"haptic_timer": "TIM2",
"haptic_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"haptic_counter_register": "HAPTIC_TIMER->CCR2",
"haptic_ccmr1": "TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2",
"haptic_ccer": "TIM_CCER_CC2E"
}
}
+100 -16
View File
@@ -324,27 +324,111 @@
}
],
"display": {
"w": 480,
"h": 320,
"phys_w": 320,
"phys_h": 480,
"depth": 16,
"color": 1,
"oled": 0,
"backlight_color": 0
"lcd_w": 480,
"lcd_h": 320,
"lcd_phys_w": 320,
"lcd_phys_h": 480,
"lcd_depth": 16,
"ltdc_irq_prio": 4,
"dma_screen_irq_prio": 6
},
"custom_switches": {
"rgb_led": 1,
"groups": 3
"backlight": {
"backlight_gpio": "GPIO_PIN(GPIOA, 10)",
"backlight_timer": "TIM1",
"backlight_timer_channel": "LL_TIM_CHANNEL_CH3",
"backlight_gpio_af": "GPIO_AF1",
"backlight_timer_freq": "(PERI2_FREQUENCY * TIMER_MULT_APB2)"
},
"leds": {
"led_strip_length": 26,
"bling_led_strip_start": 6,
"bling_led_strip_length": 20,
"cfs_led_strip_start": 0,
"cfs_led_strip_length": 6,
"cfs_leds_per_switch": 1,
"led_strip_gpio": "GPIO_PIN(GPIOA, 0)",
"led_strip_gpio_af": "LL_GPIO_AF_1",
"led_strip_timer": "TIM2",
"led_strip_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"led_strip_timer_channel": "LL_TIM_CHANNEL_CH1",
"led_strip_timer_dma": "DMA1",
"led_strip_timer_dma_channel": "LL_DMAMUX1_REQ_TIM2_UP",
"led_strip_timer_dma_stream": "LL_DMA_STREAM_0",
"led_strip_timer_dma_irqn": "DMA1_Stream0_IRQn",
"led_strip_timer_dma_irqhandler": "DMA1_Stream0_IRQHandler",
"led_strip_refresh_period": 50,
"status_leds": true,
"led_red_gpio": "GPIO_PIN(GPIOI, 8)",
"led_green_gpio": "GPIO_PIN(GPIOI, 11)",
"led_blue_gpio": "GPIO_PIN(GPIOI, 10)"
},
"hardware": {
"has_audio_mute": 0,
"has_bling_leds": 20,
"has_ext_module_support": 1,
"has_int_module_support": 1,
"has_ext_module_support": true,
"has_int_module_support": true,
"sport_max_baudrate": 400000,
"surface": 0,
"cpu": "STM32H750xB",
"cpu_type": "STM32H7"
},
"timers": {
"cpu_freq": 480000000,
"peri1_frequency": 120000000,
"peri2_frequency": 120000000,
"timer_mult_apb1": 2,
"timer_mult_apb2": 2,
"ms_timer": "TIM14",
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
"mixer_scheduler_timer": "TIM12",
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
},
"imu": {
"imu_i2c_bus": "I2C_Bus_1",
"imu_int_gpio": "GPIO_PIN(GPIOG, 13)",
"imu_invert_x": true,
"imu_invert_y": true,
"exti": [
{
"irq": "EXTI15_10_IRQ",
"priority": 6
}
]
},
"rotenc": {
"rotary_encoder_inverted": true,
"rotary_encoder_gpio_a": "GPIOI",
"rotary_encoder_gpio_pin_a": "LL_GPIO_PIN_7",
"rotary_encoder_gpio_b": "GPIOJ",
"rotary_encoder_gpio_pin_b": "LL_GPIO_PIN_8",
"rotary_encoder_position": "(((ROTARY_ENCODER_GPIO_A->IDR >> 7) & 0x01)|((ROTARY_ENCODER_GPIO_B->IDR >> 7) & 0x02))",
"rotary_encoder_exti_line1": "LL_EXTI_LINE_7",
"rotary_encoder_exti_line2": "LL_EXTI_LINE_8",
"exti": [
{
"irq": "EXTI7_IRQ",
"priority": 5
},
{
"irq": "EXTI8_IRQ",
"priority": 5
}
],
"rotary_encoder_exti_port_a": "LL_SYSCFG_EXTI_PORTI",
"rotary_encoder_exti_port_b": "LL_SYSCFG_EXTI_PORTJ",
"rotary_encoder_exti_sys_line1": "LL_SYSCFG_EXTI_LINE7",
"rotary_encoder_exti_sys_line2": "LL_SYSCFG_EXTI_LINE8",
"rotary_encoder_timer": "TIM17",
"rotary_encoder_timer_irqn": "TIM17_IRQn",
"rotary_encoder_timer_irqhandler": "TIM17_IRQHandler"
},
"haptic": {
"haptic_pwm": true,
"haptic_gpio": "GPIO_PIN(GPIOC, 7)",
"haptic_gpio_timer": "TIM3",
"haptic_gpio_af": "GPIO_AF2",
"haptic_timer_output_enable": "TIM_CCER_CC2E | TIM_CCER_CC2NE",
"haptic_timer_mode": "TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2 | TIM_CCMR1_OC2PE",
"haptic_timer_compare_value": "HAPTIC_GPIO_TIMER->CCR2"
}
}
+39 -16
View File
@@ -437,27 +437,50 @@
}
],
"display": {
"w": 480,
"h": 272,
"phys_w": 480,
"phys_h": 272,
"depth": 16,
"color": 1,
"oled": 0,
"backlight_color": 0
"lcd_w": 480,
"lcd_h": 272,
"lcd_phys_w": 480,
"lcd_phys_h": 272,
"lcd_depth": 16,
"lcd_vertical_invert": true,
"ltdc_irq_prio": 4,
"dma_screen_irq_prio": 6
},
"custom_switches": {
"rgb_led": 0,
"groups": 0
"leds": {
"status_leds": true,
"led_red_gpio": "GPIO_PIN(GPIOE, 2)",
"led_green_gpio": "GPIO_PIN(GPIOE, 4)",
"led_blue_gpio": "GPIO_PIN(GPIOE, 5)"
},
"hardware": {
"has_audio_mute": 1,
"has_bling_leds": 0,
"has_ext_module_support": 1,
"has_int_module_support": 1,
"has_audio_mute": true,
"has_ext_module_support": true,
"has_int_module_support": true,
"sport_max_baudrate": 400000,
"surface": 0,
"cpu": "STM32F429xI",
"cpu_type": "STM32F4"
},
"timers": {
"cpu_freq": 168000000,
"peri1_frequency": 42000000,
"peri2_frequency": 84000000,
"timer_mult_apb1": 2,
"timer_mult_apb2": 2,
"ms_timer": "TIM14",
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
"mixer_scheduler_timer": "TIM13",
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"mixer_scheduler_timer_irqn": "TIM8_UP_TIM13_IRQn",
"mixer_scheduler_timer_irqhandler": "TIM8_UP_TIM13_IRQHandler"
},
"haptic": {
"haptic_pwm": true,
"haptic_gpio": "GPIO_PIN(GPIOE, 6)",
"haptic_gpio_timer": "TIM9",
"haptic_gpio_af": "GPIO_AF3",
"haptic_timer_output_enable": "TIM_CCER_CC2E",
"haptic_timer_mode": "TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2",
"haptic_timer_compare_value": "HAPTIC_GPIO_TIMER->CCR2"
}
}
+100 -16
View File
@@ -438,27 +438,111 @@
}
],
"display": {
"w": 800,
"h": 480,
"phys_w": 800,
"phys_h": 480,
"depth": 16,
"color": 1,
"oled": 0,
"backlight_color": 0
"lcd_w": 800,
"lcd_h": 480,
"lcd_phys_w": 800,
"lcd_phys_h": 480,
"lcd_depth": 16,
"ltdc_irq_prio": 4,
"dma_screen_irq_prio": 6
},
"custom_switches": {
"rgb_led": 1,
"groups": 3
"backlight": {
"backlight_gpio": "GPIO_PIN(GPIOA, 10)",
"backlight_timer": "TIM1",
"backlight_timer_channel": "LL_TIM_CHANNEL_CH3",
"backlight_gpio_af": "GPIO_AF1",
"backlight_timer_freq": "(PERI2_FREQUENCY * TIMER_MULT_APB2)"
},
"leds": {
"led_strip_length": 26,
"bling_led_strip_start": 6,
"bling_led_strip_length": 20,
"cfs_led_strip_start": 0,
"cfs_led_strip_length": 6,
"cfs_leds_per_switch": 1,
"led_strip_gpio": "GPIO_PIN(GPIOA, 0)",
"led_strip_gpio_af": "LL_GPIO_AF_1",
"led_strip_timer": "TIM2",
"led_strip_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"led_strip_timer_channel": "LL_TIM_CHANNEL_CH1",
"led_strip_timer_dma": "DMA1",
"led_strip_timer_dma_channel": "LL_DMAMUX1_REQ_TIM2_UP",
"led_strip_timer_dma_stream": "LL_DMA_STREAM_0",
"led_strip_timer_dma_irqn": "DMA1_Stream0_IRQn",
"led_strip_timer_dma_irqhandler": "DMA1_Stream0_IRQHandler",
"led_strip_refresh_period": 50,
"status_leds": true,
"led_red_gpio": "GPIO_PIN(GPIOI, 8)",
"led_green_gpio": "GPIO_PIN(GPIOI, 11)",
"led_blue_gpio": "GPIO_PIN(GPIOI, 10)"
},
"hardware": {
"has_audio_mute": 0,
"has_bling_leds": 20,
"has_ext_module_support": 1,
"has_int_module_support": 1,
"has_ext_module_support": true,
"has_int_module_support": true,
"sport_max_baudrate": 400000,
"surface": 0,
"cpu": "STM32H750xB",
"cpu_type": "STM32H7"
},
"timers": {
"cpu_freq": 480000000,
"peri1_frequency": 120000000,
"peri2_frequency": 120000000,
"timer_mult_apb1": 2,
"timer_mult_apb2": 2,
"ms_timer": "TIM14",
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
"mixer_scheduler_timer": "TIM12",
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
},
"imu": {
"imu_i2c_bus": "I2C_Bus_2",
"imu_int_gpio": "GPIO_PIN(GPIOG, 13)",
"imu_invert_x": true,
"imu_invert_y": true,
"exti": [
{
"irq": "EXTI15_10_IRQ",
"priority": 6
}
]
},
"rotenc": {
"rotary_encoder_inverted": true,
"rotary_encoder_gpio_a": "GPIOI",
"rotary_encoder_gpio_pin_a": "LL_GPIO_PIN_7",
"rotary_encoder_gpio_b": "GPIOJ",
"rotary_encoder_gpio_pin_b": "LL_GPIO_PIN_8",
"rotary_encoder_position": "(((ROTARY_ENCODER_GPIO_A->IDR >> 7) & 0x01)|((ROTARY_ENCODER_GPIO_B->IDR >> 7) & 0x02))",
"rotary_encoder_exti_line1": "LL_EXTI_LINE_7",
"rotary_encoder_exti_line2": "LL_EXTI_LINE_8",
"exti": [
{
"irq": "EXTI7_IRQ",
"priority": 5
},
{
"irq": "EXTI8_IRQ",
"priority": 5
}
],
"rotary_encoder_exti_port_a": "LL_SYSCFG_EXTI_PORTI",
"rotary_encoder_exti_port_b": "LL_SYSCFG_EXTI_PORTJ",
"rotary_encoder_exti_sys_line1": "LL_SYSCFG_EXTI_LINE7",
"rotary_encoder_exti_sys_line2": "LL_SYSCFG_EXTI_LINE8",
"rotary_encoder_timer": "TIM17",
"rotary_encoder_timer_irqn": "TIM17_IRQn",
"rotary_encoder_timer_irqhandler": "TIM17_IRQHandler"
},
"haptic": {
"haptic_pwm": true,
"haptic_gpio": "GPIO_PIN(GPIOC, 7)",
"haptic_gpio_timer": "TIM3",
"haptic_gpio_af": "GPIO_AF2",
"haptic_timer_output_enable": "TIM_CCER_CC2E | TIM_CCER_CC2NE",
"haptic_timer_mode": "TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2 | TIM_CCMR1_OC2PE",
"haptic_timer_compare_value": "HAPTIC_GPIO_TIMER->CCR2"
}
}
+52 -16
View File
@@ -333,27 +333,63 @@
}
],
"display": {
"w": 128,
"h": 64,
"phys_w": 128,
"phys_h": 64,
"depth": 1,
"color": 0,
"oled": 0,
"backlight_color": 0
"lcd_w": 128,
"lcd_h": 64,
"lcd_phys_w": 128,
"lcd_phys_h": 64,
"lcd_depth": 1,
"lcd_vertical_invert": true
},
"custom_switches": {
"rgb_led": 0,
"groups": 0
"backlight": {
"backlight_bdtr": "TIM_BDTR_MOE"
},
"leds": {
"led_strip_length": 6,
"led_strip_gpio": "GPIO_PIN(GPIOA, 10)",
"led_strip_gpio_af": "LL_GPIO_AF_1",
"led_strip_timer": "TIM1",
"led_strip_timer_freq": "(PERI2_FREQUENCY * TIMER_MULT_APB2)",
"led_strip_timer_channel": "LL_TIM_CHANNEL_CH3",
"led_strip_timer_dma": "DMA2",
"led_strip_timer_dma_channel": "LL_DMA_CHANNEL_6",
"led_strip_timer_dma_stream": "LL_DMA_STREAM_5",
"led_strip_timer_dma_irqn": "DMA2_Stream5_IRQn",
"led_strip_timer_dma_irqhandler": "DMA2_Stream5_IRQHandler",
"led_strip_refresh_period": 50,
"status_leds": true,
"led_red_gpio": "GPIO_PIN(GPIOE, 13)",
"led_green_gpio": "GPIO_PIN(GPIOE, 14)",
"led_blue_gpio": "GPIO_PIN(GPIOE, 2)"
},
"hardware": {
"has_audio_mute": 0,
"has_bling_leds": 0,
"has_ext_module_support": 1,
"has_int_module_support": 1,
"has_ext_module_support": true,
"has_int_module_support": true,
"sport_max_baudrate": 400000,
"surface": 0,
"cpu": "STM32F407xG",
"cpu_type": "STM32F4"
},
"timers": {
"cpu_freq": 168000000,
"peri1_frequency": 42000000,
"peri2_frequency": 84000000,
"timer_mult_apb1": 2,
"timer_mult_apb2": 2,
"ms_timer": "TIM14",
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
"mixer_scheduler_timer": "TIM12",
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
},
"haptic": {
"haptic_pwm": true,
"haptic_gpio": "GPIO_PIN(GPIOB, 3)",
"haptic_gpio_af": "GPIO_AF1",
"haptic_timer": "TIM2",
"haptic_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"haptic_counter_register": "HAPTIC_TIMER->CCR2",
"haptic_ccmr1": "TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2",
"haptic_ccer": "TIM_CCER_CC2E"
}
}
+55 -16
View File
@@ -333,27 +333,66 @@
}
],
"display": {
"w": 128,
"h": 64,
"phys_w": 128,
"phys_h": 64,
"depth": 1,
"color": 0,
"oled": 1,
"backlight_color": 0
"lcd_w": 128,
"lcd_h": 64,
"lcd_phys_w": 128,
"lcd_phys_h": 64,
"lcd_depth": 1,
"oled_screen": true,
"lcd_horizontal_invert": true
},
"custom_switches": {
"rgb_led": 0,
"groups": 0
"backlight": {
"backlight_bdtr": "TIM_BDTR_MOE"
},
"leds": {
"led_strip_length": 38,
"bling_led_strip_start": 6,
"bling_led_strip_length": 32,
"led_strip_gpio": "GPIO_PIN(GPIOA, 10)",
"led_strip_gpio_af": "LL_GPIO_AF_1",
"led_strip_timer": "TIM1",
"led_strip_timer_freq": "(PERI2_FREQUENCY * TIMER_MULT_APB2)",
"led_strip_timer_channel": "LL_TIM_CHANNEL_CH3",
"led_strip_timer_dma": "DMA2",
"led_strip_timer_dma_channel": "LL_DMA_CHANNEL_6",
"led_strip_timer_dma_stream": "LL_DMA_STREAM_5",
"led_strip_timer_dma_irqn": "DMA2_Stream5_IRQn",
"led_strip_timer_dma_irqhandler": "DMA2_Stream5_IRQHandler",
"led_strip_refresh_period": 50,
"status_leds": true,
"led_red_gpio": "GPIO_PIN(GPIOE, 13)",
"led_green_gpio": "GPIO_PIN(GPIOE, 14)",
"led_blue_gpio": "GPIO_PIN(GPIOE, 2)"
},
"hardware": {
"has_audio_mute": 0,
"has_bling_leds": 32,
"has_ext_module_support": 1,
"has_int_module_support": 1,
"has_ext_module_support": true,
"has_int_module_support": true,
"sport_max_baudrate": 400000,
"surface": 0,
"cpu": "STM32F407xG",
"cpu_type": "STM32F4"
},
"timers": {
"cpu_freq": 168000000,
"peri1_frequency": 42000000,
"peri2_frequency": 84000000,
"timer_mult_apb1": 2,
"timer_mult_apb2": 2,
"ms_timer": "TIM14",
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
"mixer_scheduler_timer": "TIM12",
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
},
"haptic": {
"haptic_pwm": true,
"haptic_gpio": "GPIO_PIN(GPIOB, 3)",
"haptic_gpio_af": "GPIO_AF1",
"haptic_timer": "TIM2",
"haptic_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"haptic_counter_register": "HAPTIC_TIMER->CCR2",
"haptic_ccmr1": "TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2",
"haptic_ccer": "TIM_CCER_CC2E"
}
}
+52 -16
View File
@@ -435,27 +435,63 @@
}
],
"display": {
"w": 480,
"h": 272,
"phys_w": 480,
"phys_h": 272,
"depth": 16,
"color": 1,
"oled": 0,
"backlight_color": 0
"lcd_w": 480,
"lcd_h": 272,
"lcd_phys_w": 480,
"lcd_phys_h": 272,
"lcd_depth": 16,
"ltdc_irq_prio": 4,
"dma_screen_irq_prio": 6
},
"custom_switches": {
"rgb_led": 0,
"groups": 0
"leds": {
"led_strip_length": 40,
"bling_led_strip_start": 6,
"bling_led_strip_length": 34,
"led_strip_gpio": "GPIO_PIN(GPIOA, 10)",
"led_strip_gpio_af": "LL_GPIO_AF_1",
"led_strip_timer": "TIM1",
"led_strip_timer_freq": "(PERI2_FREQUENCY * TIMER_MULT_APB2)",
"led_strip_timer_channel": "LL_TIM_CHANNEL_CH3",
"led_strip_timer_dma": "DMA2",
"led_strip_timer_dma_channel": "LL_DMA_CHANNEL_6",
"led_strip_timer_dma_stream": "LL_DMA_STREAM_5",
"led_strip_timer_dma_irqn": "DMA2_Stream5_IRQn",
"led_strip_timer_dma_irqhandler": "DMA2_Stream5_IRQHandler",
"led_strip_refresh_period": 50,
"status_leds": true,
"led_red_gpio": "GPIO_PIN(GPIOE, 2)",
"led_green_gpio": "GPIO_PIN(GPIOE, 4)",
"led_blue_gpio": "GPIO_PIN(GPIOE, 5)"
},
"hardware": {
"has_audio_mute": 1,
"has_bling_leds": 34,
"has_ext_module_support": 1,
"has_int_module_support": 1,
"has_audio_mute": true,
"has_ext_module_support": true,
"has_int_module_support": true,
"sport_max_baudrate": 400000,
"surface": 0,
"cpu": "STM32F429xI",
"cpu_type": "STM32F4"
},
"timers": {
"cpu_freq": 168000000,
"peri1_frequency": 42000000,
"peri2_frequency": 84000000,
"timer_mult_apb1": 2,
"timer_mult_apb2": 2,
"ms_timer": "TIM14",
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
"mixer_scheduler_timer": "TIM13",
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"mixer_scheduler_timer_irqn": "TIM8_UP_TIM13_IRQn",
"mixer_scheduler_timer_irqhandler": "TIM8_UP_TIM13_IRQHandler"
},
"haptic": {
"haptic_pwm": true,
"haptic_gpio": "GPIO_PIN(GPIOE, 6)",
"haptic_gpio_timer": "TIM9",
"haptic_gpio_af": "GPIO_AF3",
"haptic_timer_output_enable": "TIM_CCER_CC2E",
"haptic_timer_mode": "TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2",
"haptic_timer_compare_value": "HAPTIC_GPIO_TIMER->CCR2"
}
}
+38 -16
View File
@@ -435,27 +435,49 @@
}
],
"display": {
"w": 480,
"h": 272,
"phys_w": 480,
"phys_h": 272,
"depth": 16,
"color": 1,
"oled": 0,
"backlight_color": 0
"lcd_w": 480,
"lcd_h": 272,
"lcd_phys_w": 480,
"lcd_phys_h": 272,
"lcd_depth": 16,
"lcd_vertical_invert": true,
"ltdc_irq_prio": 4,
"dma_screen_irq_prio": 6
},
"custom_switches": {
"rgb_led": 0,
"groups": 0
"leds": {
"status_leds": true,
"led_red_gpio": "GPIO_PIN(GPIOE, 2)",
"led_blue_gpio": "GPIO_PIN(GPIOE, 5)"
},
"hardware": {
"has_audio_mute": 1,
"has_bling_leds": 0,
"has_ext_module_support": 1,
"has_int_module_support": 1,
"has_audio_mute": true,
"has_ext_module_support": true,
"has_int_module_support": true,
"sport_max_baudrate": 250000,
"surface": 0,
"cpu": "STM32F429xI",
"cpu_type": "STM32F4"
},
"timers": {
"cpu_freq": 168000000,
"peri1_frequency": 42000000,
"peri2_frequency": 84000000,
"timer_mult_apb1": 2,
"timer_mult_apb2": 2,
"ms_timer": "TIM14",
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
"mixer_scheduler_timer": "TIM13",
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"mixer_scheduler_timer_irqn": "TIM8_UP_TIM13_IRQn",
"mixer_scheduler_timer_irqhandler": "TIM8_UP_TIM13_IRQHandler"
},
"haptic": {
"haptic_pwm": true,
"haptic_gpio": "GPIO_PIN(GPIOE, 6)",
"haptic_gpio_timer": "TIM9",
"haptic_gpio_af": "GPIO_AF3",
"haptic_timer_output_enable": "TIM_CCER_CC2E",
"haptic_timer_mode": "TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2",
"haptic_timer_compare_value": "HAPTIC_GPIO_TIMER->CCR2"
}
}
+38 -16
View File
@@ -435,27 +435,49 @@
}
],
"display": {
"w": 480,
"h": 272,
"phys_w": 480,
"phys_h": 272,
"depth": 16,
"color": 1,
"oled": 0,
"backlight_color": 0
"lcd_w": 480,
"lcd_h": 272,
"lcd_phys_w": 480,
"lcd_phys_h": 272,
"lcd_depth": 16,
"lcd_vertical_invert": true,
"ltdc_irq_prio": 4,
"dma_screen_irq_prio": 6
},
"custom_switches": {
"rgb_led": 0,
"groups": 0
"leds": {
"status_leds": true,
"led_red_gpio": "GPIO_PIN(GPIOE, 2)",
"led_blue_gpio": "GPIO_PIN(GPIOE, 5)"
},
"hardware": {
"has_audio_mute": 1,
"has_bling_leds": 0,
"has_ext_module_support": 1,
"has_int_module_support": 1,
"has_audio_mute": true,
"has_ext_module_support": true,
"has_int_module_support": true,
"sport_max_baudrate": 250000,
"surface": 0,
"cpu": "STM32F429xI",
"cpu_type": "STM32F4"
},
"timers": {
"cpu_freq": 168000000,
"peri1_frequency": 42000000,
"peri2_frequency": 84000000,
"timer_mult_apb1": 2,
"timer_mult_apb2": 2,
"ms_timer": "TIM14",
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
"mixer_scheduler_timer": "TIM13",
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"mixer_scheduler_timer_irqn": "TIM8_UP_TIM13_IRQn",
"mixer_scheduler_timer_irqhandler": "TIM8_UP_TIM13_IRQHandler"
},
"haptic": {
"haptic_pwm": true,
"haptic_gpio": "GPIO_PIN(GPIOE, 6)",
"haptic_gpio_timer": "TIM9",
"haptic_gpio_af": "GPIO_AF3",
"haptic_timer_output_enable": "TIM_CCER_CC2E",
"haptic_timer_mode": "TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2",
"haptic_timer_compare_value": "HAPTIC_GPIO_TIMER->CCR2"
}
}
+34 -16
View File
@@ -428,27 +428,45 @@
}
],
"display": {
"w": 480,
"h": 272,
"phys_w": 480,
"phys_h": 272,
"depth": 16,
"color": 1,
"oled": 0,
"backlight_color": 0
"lcd_w": 480,
"lcd_h": 272,
"lcd_phys_w": 480,
"lcd_phys_h": 272,
"lcd_depth": 16,
"ltdc_irq_prio": 4,
"dma_screen_irq_prio": 6
},
"custom_switches": {
"rgb_led": 0,
"groups": 0
"leds": {
"status_leds": true
},
"hardware": {
"has_audio_mute": 0,
"has_bling_leds": 0,
"has_ext_module_support": 1,
"has_int_module_support": 1,
"has_ext_module_support": true,
"has_int_module_support": true,
"sport_max_baudrate": 250000,
"surface": 0,
"cpu": "STM32F429xI",
"cpu_type": "STM32F4"
},
"timers": {
"cpu_freq": 168000000,
"peri1_frequency": 42000000,
"peri2_frequency": 84000000,
"timer_mult_apb1": 2,
"timer_mult_apb2": 2,
"ms_timer": "TIM14",
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
"mixer_scheduler_timer": "TIM13",
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"mixer_scheduler_timer_irqn": "TIM8_UP_TIM13_IRQn",
"mixer_scheduler_timer_irqhandler": "TIM8_UP_TIM13_IRQHandler"
},
"haptic": {
"haptic_pwm": true,
"haptic_gpio": "GPIO_PIN(GPIOA, 2)",
"haptic_gpio_timer": "TIM9",
"haptic_gpio_af": "GPIO_AF3",
"haptic_timer_output_enable": "TIM_CCER_CC1E",
"haptic_timer_mode": "TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2",
"haptic_timer_compare_value": "HAPTIC_GPIO_TIMER->CCR1"
}
}
+36 -16
View File
@@ -302,27 +302,47 @@
}
],
"display": {
"w": 128,
"h": 64,
"phys_w": 128,
"phys_h": 64,
"depth": 1,
"color": 0,
"oled": 0,
"backlight_color": 0
"lcd_w": 128,
"lcd_h": 64,
"lcd_phys_w": 128,
"lcd_phys_h": 64,
"lcd_depth": 1
},
"custom_switches": {
"rgb_led": 0,
"groups": 0
"leds": {
"status_leds": true,
"led_red_gpio": "GPIO_PIN(GPIOC, 5)",
"led_green_gpio": "GPIO_PIN(GPIOC, 4)",
"led_blue_gpio": "GPIO_PIN(GPIOB, 1)"
},
"hardware": {
"has_audio_mute": 0,
"has_bling_leds": 0,
"has_ext_module_support": 1,
"has_int_module_support": 1,
"has_ext_module_support": true,
"has_int_module_support": true,
"sport_max_baudrate": 250000,
"surface": 0,
"cpu": "STM32F205xE",
"cpu_type": "STM32F2"
},
"timers": {
"cpu_freq": 120000000,
"peri1_frequency": 30000000,
"peri2_frequency": 60000000,
"timer_mult_apb1": 2,
"timer_mult_apb2": 2,
"ms_timer": "TIM14",
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
"mixer_scheduler_timer": "TIM12",
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
},
"haptic": {
"haptic_pwm": true,
"haptic_gpio": "GPIO_PIN(GPIOB, 8)",
"haptic_gpio_af": "GPIO_AF3",
"haptic_timer": "TIM10",
"haptic_timer_freq": "(PERI2_FREQUENCY * TIMER_MULT_APB2)",
"haptic_counter_register": "HAPTIC_TIMER->CCR1",
"haptic_ccmr1": "TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2",
"haptic_ccer": "TIM_CCER_CC1E"
}
}
+35 -16
View File
@@ -288,27 +288,46 @@
}
],
"display": {
"w": 128,
"h": 64,
"phys_w": 128,
"phys_h": 64,
"depth": 1,
"color": 0,
"oled": 0,
"backlight_color": 0
"lcd_w": 128,
"lcd_h": 64,
"lcd_phys_w": 128,
"lcd_phys_h": 64,
"lcd_depth": 1
},
"custom_switches": {
"rgb_led": 0,
"groups": 0
"leds": {
"status_leds": true,
"led_red_gpio": "GPIO_PIN(GPIOC, 4)",
"led_blue_gpio": "GPIO_PIN(GPIOB, 1)"
},
"hardware": {
"has_audio_mute": 0,
"has_bling_leds": 0,
"has_ext_module_support": 1,
"has_int_module_support": 1,
"has_ext_module_support": true,
"has_int_module_support": true,
"sport_max_baudrate": 400000,
"surface": 0,
"cpu": "STM32F407xE",
"cpu_type": "STM32F4"
},
"timers": {
"cpu_freq": 168000000,
"peri1_frequency": 42000000,
"peri2_frequency": 84000000,
"timer_mult_apb1": 2,
"timer_mult_apb2": 2,
"ms_timer": "TIM14",
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
"mixer_scheduler_timer": "TIM12",
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
},
"haptic": {
"haptic_pwm": true,
"haptic_gpio": "GPIO_PIN(GPIOA, 10)",
"haptic_gpio_af": "GPIO_AF1",
"haptic_timer": "TIM1",
"haptic_timer_freq": "(PERI2_FREQUENCY * TIMER_MULT_APB2)",
"haptic_counter_register": "HAPTIC_TIMER->CCR3",
"haptic_ccmr2": "TIM_CCMR2_OC3M_1 | TIM_CCMR2_OC3M_2",
"haptic_ccer": "TIM_CCER_CC3E"
}
}
+32 -16
View File
@@ -355,27 +355,43 @@
}
],
"display": {
"w": 212,
"h": 64,
"phys_w": 212,
"phys_h": 64,
"depth": 4,
"color": 0,
"oled": 0,
"backlight_color": 1
"lcd_w": 212,
"lcd_h": 64,
"lcd_phys_w": 212,
"lcd_phys_h": 64,
"lcd_depth": 4
},
"custom_switches": {
"rgb_led": 0,
"groups": 0
"backlight": {
"has_backlight_color": true
},
"hardware": {
"has_audio_mute": 0,
"has_bling_leds": 0,
"has_ext_module_support": 1,
"has_int_module_support": 0,
"has_ext_module_support": true,
"sport_max_baudrate": 400000,
"surface": 0,
"cpu": "STM32F205xE",
"cpu_type": "STM32F2"
},
"timers": {
"cpu_freq": 120000000,
"peri1_frequency": 30000000,
"peri2_frequency": 60000000,
"timer_mult_apb1": 2,
"timer_mult_apb2": 2,
"ms_timer": "TIM14",
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
"mixer_scheduler_timer": "TIM12",
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
},
"haptic": {
"haptic_pwm": true,
"haptic_gpio": "GPIO_PIN(GPIOB, 8)",
"haptic_gpio_af": "GPIO_AF3",
"haptic_timer": "TIM10",
"haptic_timer_freq": "(PERI2_FREQUENCY * TIMER_MULT_APB2)",
"haptic_counter_register": "HAPTIC_TIMER->CCR1",
"haptic_ccmr1": "TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2",
"haptic_ccer": "TIM_CCER_CC1E"
}
}
+38 -16
View File
@@ -343,27 +343,49 @@
}
],
"display": {
"w": 212,
"h": 64,
"phys_w": 212,
"phys_h": 64,
"depth": 4,
"color": 0,
"oled": 0,
"backlight_color": 1
"lcd_w": 212,
"lcd_h": 64,
"lcd_phys_w": 212,
"lcd_phys_h": 64,
"lcd_depth": 4
},
"custom_switches": {
"rgb_led": 0,
"groups": 0
"backlight": {
"has_backlight_color": true
},
"leds": {
"status_leds": true,
"gpio_led_gpio_on": "gpio_clear",
"gpio_led_gpio_off": "gpio_set",
"led_red_gpio": "GPIO_PIN(GPIOA, 13)"
},
"hardware": {
"has_audio_mute": 0,
"has_bling_leds": 0,
"has_ext_module_support": 1,
"has_int_module_support": 0,
"has_ext_module_support": true,
"sport_max_baudrate": 400000,
"surface": 0,
"cpu": "STM32F407xE",
"cpu_type": "STM32F4"
},
"timers": {
"cpu_freq": 168000000,
"peri1_frequency": 42000000,
"peri2_frequency": 84000000,
"timer_mult_apb1": 2,
"timer_mult_apb2": 2,
"ms_timer": "TIM14",
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
"mixer_scheduler_timer": "TIM12",
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
},
"haptic": {
"haptic_pwm": true,
"haptic_gpio": "GPIO_PIN(GPIOA, 10)",
"haptic_gpio_af": "GPIO_AF1",
"haptic_timer": "TIM1",
"haptic_timer_freq": "(PERI2_FREQUENCY * TIMER_MULT_APB2)",
"haptic_counter_register": "HAPTIC_TIMER->CCR3",
"haptic_ccmr2": "TIM_CCMR2_OC3M_1 | TIM_CCMR2_OC3M_2",
"haptic_ccer": "TIM_CCER_CC3E"
}
}
+23 -17
View File
@@ -344,27 +344,33 @@
}
],
"display": {
"w": 212,
"h": 64,
"phys_w": 212,
"phys_h": 64,
"depth": 4,
"color": 0,
"oled": 0,
"backlight_color": 0
},
"custom_switches": {
"rgb_led": 0,
"groups": 0
"lcd_w": 212,
"lcd_h": 64,
"lcd_phys_w": 212,
"lcd_phys_h": 64,
"lcd_depth": 4
},
"hardware": {
"has_audio_mute": 0,
"has_bling_leds": 0,
"has_ext_module_support": 1,
"has_int_module_support": 0,
"has_ext_module_support": true,
"sport_max_baudrate": 400000,
"surface": 0,
"cpu": "STM32F205xE",
"cpu_type": "STM32F2"
},
"timers": {
"cpu_freq": 120000000,
"peri1_frequency": 30000000,
"peri2_frequency": 60000000,
"timer_mult_apb1": 2,
"timer_mult_apb2": 2,
"ms_timer": "TIM14",
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
"mixer_scheduler_timer": "TIM12",
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
},
"haptic": {
"haptic_gpio": "GPIO_PIN(GPIOC, 14)"
}
}
+32 -16
View File
@@ -547,27 +547,43 @@
}
],
"display": {
"w": 212,
"h": 64,
"phys_w": 212,
"phys_h": 64,
"depth": 4,
"color": 0,
"oled": 0,
"backlight_color": 1
"lcd_w": 212,
"lcd_h": 64,
"lcd_phys_w": 212,
"lcd_phys_h": 64,
"lcd_depth": 4
},
"custom_switches": {
"rgb_led": 0,
"groups": 0
"backlight": {
"has_backlight_color": true
},
"hardware": {
"has_audio_mute": 0,
"has_bling_leds": 0,
"has_ext_module_support": 1,
"has_int_module_support": 0,
"has_ext_module_support": true,
"sport_max_baudrate": 400000,
"surface": 0,
"cpu": "STM32F407xE",
"cpu_type": "STM32F4"
},
"timers": {
"cpu_freq": 168000000,
"peri1_frequency": 42000000,
"peri2_frequency": 84000000,
"timer_mult_apb1": 2,
"timer_mult_apb2": 2,
"ms_timer": "TIM14",
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
"mixer_scheduler_timer": "TIM12",
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
},
"haptic": {
"haptic_pwm": true,
"haptic_gpio": "GPIO_PIN(GPIOB, 8)",
"haptic_gpio_af": "GPIO_AF3",
"haptic_timer": "TIM10",
"haptic_timer_freq": "(PERI2_FREQUENCY * TIMER_MULT_APB2)",
"haptic_counter_register": "HAPTIC_TIMER->CCR1",
"haptic_ccmr1": "TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2",
"haptic_ccer": "TIM_CCER_CC1E"
}
}
+39 -16
View File
@@ -247,27 +247,50 @@
}
],
"display": {
"w": 128,
"h": 64,
"phys_w": 128,
"phys_h": 64,
"depth": 1,
"color": 0,
"oled": 0,
"backlight_color": 0
"lcd_w": 128,
"lcd_h": 64,
"lcd_phys_w": 128,
"lcd_phys_h": 64,
"lcd_depth": 1
},
"custom_switches": {
"rgb_led": 0,
"groups": 0
"backlight": {
"backlight_bdtr": "TIM_BDTR_MOE"
},
"leds": {
"status_leds": true,
"led_red_gpio": "GPIO_PIN(GPIOE, 5)",
"led_green_gpio": "GPIO_PIN(GPIOE, 4)",
"led_blue_gpio": "GPIO_PIN(GPIOE, 6)"
},
"hardware": {
"has_audio_mute": 0,
"has_bling_leds": 0,
"has_ext_module_support": 1,
"has_int_module_support": 1,
"has_ext_module_support": true,
"has_int_module_support": true,
"sport_max_baudrate": 250000,
"surface": 0,
"cpu": "STM32F205xE",
"cpu_type": "STM32F2"
},
"timers": {
"cpu_freq": 120000000,
"peri1_frequency": 30000000,
"peri2_frequency": 60000000,
"timer_mult_apb1": 2,
"timer_mult_apb2": 2,
"ms_timer": "TIM14",
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
"mixer_scheduler_timer": "TIM12",
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
},
"haptic": {
"haptic_pwm": true,
"haptic_gpio": "GPIO_PIN(GPIOB, 3)",
"haptic_gpio_af": "GPIO_AF1",
"haptic_timer": "TIM2",
"haptic_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"haptic_counter_register": "HAPTIC_TIMER->CCR2",
"haptic_ccmr1": "TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2",
"haptic_ccer": "TIM_CCER_CC2E"
}
}
+38 -16
View File
@@ -275,27 +275,49 @@
}
],
"display": {
"w": 128,
"h": 64,
"phys_w": 128,
"phys_h": 64,
"depth": 1,
"color": 0,
"oled": 0,
"backlight_color": 0
"lcd_w": 128,
"lcd_h": 64,
"lcd_phys_w": 128,
"lcd_phys_h": 64,
"lcd_depth": 1
},
"custom_switches": {
"rgb_led": 0,
"groups": 0
"backlight": {
"backlight_bdtr": "TIM_BDTR_MOE"
},
"leds": {
"status_leds": true,
"led_red_gpio": "GPIO_PIN(GPIOE, 5)",
"led_blue_gpio": "GPIO_PIN(GPIOE, 6)"
},
"hardware": {
"has_audio_mute": 0,
"has_bling_leds": 0,
"has_ext_module_support": 1,
"has_int_module_support": 1,
"has_ext_module_support": true,
"has_int_module_support": true,
"sport_max_baudrate": 250000,
"surface": 0,
"cpu": "STM32F205xE",
"cpu_type": "STM32F2"
},
"timers": {
"cpu_freq": 120000000,
"peri1_frequency": 30000000,
"peri2_frequency": 60000000,
"timer_mult_apb1": 2,
"timer_mult_apb2": 2,
"ms_timer": "TIM14",
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
"mixer_scheduler_timer": "TIM12",
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
},
"haptic": {
"haptic_pwm": true,
"haptic_gpio": "GPIO_PIN(GPIOB, 3)",
"haptic_gpio_af": "GPIO_AF1",
"haptic_timer": "TIM2",
"haptic_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"haptic_counter_register": "HAPTIC_TIMER->CCR2",
"haptic_ccmr1": "TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2",
"haptic_ccer": "TIM_CCER_CC2E"
}
}
+41 -16
View File
@@ -253,27 +253,52 @@
}
],
"display": {
"w": 128,
"h": 64,
"phys_w": 128,
"phys_h": 64,
"depth": 1,
"color": 0,
"oled": 0,
"backlight_color": 0
"lcd_w": 128,
"lcd_h": 64,
"lcd_phys_w": 128,
"lcd_phys_h": 64,
"lcd_depth": 1
},
"custom_switches": {
"rgb_led": 0,
"groups": 0
"backlight": {
"backlight_bdtr": "TIM_BDTR_MOE"
},
"leds": {
"status_leds": true,
"gpio_led_gpio_on": "gpio_clear",
"gpio_led_gpio_off": "gpio_set",
"led_red_gpio": "GPIO_PIN(GPIOE, 4)",
"led_green_gpio": "GPIO_PIN(GPIOE, 5)",
"led_blue_gpio": "GPIO_PIN(GPIOE, 6)"
},
"hardware": {
"has_audio_mute": 0,
"has_bling_leds": 0,
"has_ext_module_support": 1,
"has_int_module_support": 1,
"has_ext_module_support": true,
"has_int_module_support": true,
"sport_max_baudrate": 250000,
"surface": 0,
"cpu": "STM32F205xE",
"cpu_type": "STM32F2"
},
"timers": {
"cpu_freq": 120000000,
"peri1_frequency": 30000000,
"peri2_frequency": 60000000,
"timer_mult_apb1": 2,
"timer_mult_apb2": 2,
"ms_timer": "TIM14",
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
"mixer_scheduler_timer": "TIM12",
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
},
"haptic": {
"haptic_pwm": true,
"haptic_gpio": "GPIO_PIN(GPIOB, 3)",
"haptic_gpio_af": "GPIO_AF1",
"haptic_timer": "TIM2",
"haptic_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"haptic_counter_register": "HAPTIC_TIMER->CCR2",
"haptic_ccmr1": "TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2",
"haptic_ccer": "TIM_CCER_CC2E"
}
}
+40 -16
View File
@@ -281,27 +281,51 @@
}
],
"display": {
"w": 128,
"h": 64,
"phys_w": 128,
"phys_h": 64,
"depth": 1,
"color": 0,
"oled": 0,
"backlight_color": 0
"lcd_w": 128,
"lcd_h": 64,
"lcd_phys_w": 128,
"lcd_phys_h": 64,
"lcd_depth": 1
},
"custom_switches": {
"rgb_led": 0,
"groups": 0
"backlight": {
"backlight_bdtr": "TIM_BDTR_MOE"
},
"leds": {
"status_leds": true,
"gpio_led_gpio_on": "gpio_clear",
"gpio_led_gpio_off": "gpio_set",
"led_red_gpio": "GPIO_PIN(GPIOE, 4)",
"led_blue_gpio": "GPIO_PIN(GPIOE, 6)"
},
"hardware": {
"has_audio_mute": 0,
"has_bling_leds": 0,
"has_ext_module_support": 1,
"has_int_module_support": 1,
"has_ext_module_support": true,
"has_int_module_support": true,
"sport_max_baudrate": 250000,
"surface": 0,
"cpu": "STM32F205xE",
"cpu_type": "STM32F2"
},
"timers": {
"cpu_freq": 120000000,
"peri1_frequency": 30000000,
"peri2_frequency": 60000000,
"timer_mult_apb1": 2,
"timer_mult_apb2": 2,
"ms_timer": "TIM14",
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
"mixer_scheduler_timer": "TIM12",
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
},
"haptic": {
"haptic_pwm": true,
"haptic_gpio": "GPIO_PIN(GPIOB, 3)",
"haptic_gpio_af": "GPIO_AF1",
"haptic_timer": "TIM2",
"haptic_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"haptic_counter_register": "HAPTIC_TIMER->CCR2",
"haptic_ccmr1": "TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2",
"haptic_ccer": "TIM_CCER_CC2E"
}
}
+41 -16
View File
@@ -323,27 +323,52 @@
}
],
"display": {
"w": 128,
"h": 64,
"phys_w": 128,
"phys_h": 64,
"depth": 1,
"color": 0,
"oled": 0,
"backlight_color": 0
"lcd_w": 128,
"lcd_h": 64,
"lcd_phys_w": 128,
"lcd_phys_h": 64,
"lcd_depth": 1,
"lcd_vertical_invert": true
},
"custom_switches": {
"rgb_led": 0,
"groups": 0
"backlight": {
"backlight_bdtr": "TIM_BDTR_MOE"
},
"leds": {
"status_leds": true,
"led_red_gpio": "GPIO_PIN(GPIOE, 13)",
"led_green_gpio": "GPIO_PIN(GPIOE, 2)",
"led_blue_gpio": "GPIO_PIN(GPIOA, 7)"
},
"hardware": {
"has_audio_mute": 1,
"has_bling_leds": 0,
"has_ext_module_support": 1,
"has_int_module_support": 1,
"has_audio_mute": true,
"has_ext_module_support": true,
"has_int_module_support": true,
"sport_max_baudrate": 400000,
"surface": 0,
"cpu": "STM32F407xE",
"cpu_type": "STM32F4"
},
"timers": {
"cpu_freq": 168000000,
"peri1_frequency": 42000000,
"peri2_frequency": 84000000,
"timer_mult_apb1": 2,
"timer_mult_apb2": 2,
"ms_timer": "TIM14",
"ms_timer_irqn": "TIM8_TRG_COM_TIM14_IRQn",
"ms_timer_irqhandler": "TIM8_TRG_COM_TIM14_IRQHandler",
"mixer_scheduler_timer": "TIM12",
"mixer_scheduler_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"mixer_scheduler_timer_irqn": "TIM8_BRK_TIM12_IRQn",
"mixer_scheduler_timer_irqhandler": "TIM8_BRK_TIM12_IRQHandler"
},
"haptic": {
"haptic_pwm": true,
"haptic_gpio": "GPIO_PIN(GPIOB, 3)",
"haptic_gpio_af": "GPIO_AF1",
"haptic_timer": "TIM2",
"haptic_timer_freq": "(PERI1_FREQUENCY * TIMER_MULT_APB1)",
"haptic_counter_register": "HAPTIC_TIMER->CCR2",
"haptic_ccmr1": "TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2",
"haptic_ccer": "TIM_CCER_CC2E"
}
}
-4
View File
@@ -1,11 +1,7 @@
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
# AddHardwareDefTarget(${HW_DESC_JSON})
AddHWGenTarget(${HW_DESC_JSON} hal_keys hal_keys.inc)
set(BOOTLOADER_SRC ${BOOTLOADER_SRC}
${CMAKE_CURRENT_BINARY_DIR}/hal_keys.inc
${RADIO_SRC_DIR}/os/time_nortos.cpp
${RADIO_SRC_DIR}/os/sleep_nortos.cpp
${RADIO_SRC_DIR}/keys.cpp
+38 -38
View File
@@ -25,7 +25,7 @@
Functions cfn_sorted[] = {
#if defined(TRANSLATIONS_CN)
#if !defined(OLED_SCREEN)
#if !OLED_SCREEN
/* 背光 */ FUNC_BACKLIGHT,
#endif
/* 播放背景音乐 */ FUNC_BACKGND_MUSIC,
@@ -45,7 +45,7 @@ Functions cfn_sorted[] = {
/* 禁用触摸 */ FUNC_DISABLE_TOUCH,
#endif
/* 竞速模式 */ FUNC_RACING_MODE,
#if defined(OLED_SCREEN)
#if OLED_SCREEN
/* 亮度 */ FUNC_BACKLIGHT,
#endif
/* 模块对频 */ FUNC_BIND,
@@ -77,7 +77,7 @@ Functions cfn_sorted[] = {
/* Hudba */ FUNC_BACKGND_MUSIC,
/* Hudba pauza */ FUNC_BACKGND_MUSIC_PAUSE,
/* Insta-Trim */ FUNC_INSTANT_TRIM,
#if defined(OLED_SCREEN)
#if OLED_SCREEN
/* Jas */ FUNC_BACKLIGHT,
#endif
/* Kontrola dosahu */ FUNC_RANGECHECK,
@@ -89,7 +89,7 @@ Functions cfn_sorted[] = {
/* ModuleBind */ FUNC_BIND,
/* Nastav */ FUNC_ADJUST_GVAR,
/* Nastavit Failsafe */ FUNC_SET_FAILSAFE,
#if !defined(OLED_SCREEN)
#if !OLED_SCREEN
/* Podsvětlení */ FUNC_BACKLIGHT,
#endif
/* Přehrát wav */ FUNC_PLAY_TRACK,
@@ -112,7 +112,7 @@ Functions cfn_sorted[] = {
/* Změna */ FUNC_SET_TIMER,
#elif defined(TRANSLATIONS_DA)
/* Afstand kontrol */ FUNC_RANGECHECK,
#if !defined(OLED_SCREEN)
#if !OLED_SCREEN
/* Baggrund lys */ FUNC_BACKLIGHT,
#endif
/* Baggrund musik */ FUNC_BACKGND_MUSIC,
@@ -134,7 +134,7 @@ Functions cfn_sorted[] = {
/* RGB lys */ FUNC_RGB_LED,
/* Ræs tilstand */ FUNC_RACING_MODE,
/* SD Log */ FUNC_LOGS,
#if defined(OLED_SCREEN)
#if OLED_SCREEN
/* Skarphed */ FUNC_BACKLIGHT,
#endif
/* Skærm klip */ FUNC_SCREENSHOT,
@@ -159,7 +159,7 @@ Functions cfn_sorted[] = {
/* Datei abspielen */ FUNC_PLAY_TRACK,
/* Haptik */ FUNC_HAPTIC,
/* Hauptseite anzeigen */ FUNC_SET_SCREEN,
#if defined(OLED_SCREEN)
#if OLED_SCREEN
/* Helligkeit */ FUNC_BACKLIGHT,
#endif
/* Inst. Trim */ FUNC_INSTANT_TRIM,
@@ -167,7 +167,7 @@ Functions cfn_sorted[] = {
/* Kein Touch */ FUNC_DISABLE_TOUCH,
#endif
/* Lautstr. */ FUNC_VOLUME,
#if !defined(OLED_SCREEN)
#if !OLED_SCREEN
/* LCD Licht */ FUNC_BACKLIGHT,
#endif
#if defined(VIDEO_SWITCH)
@@ -202,7 +202,7 @@ Functions cfn_sorted[] = {
/* Audio Amp Off */ FUNC_DISABLE_AUDIO_AMP,
/* BgMúsica */ FUNC_BACKGND_MUSIC,
/* BgMúsica|| */ FUNC_BACKGND_MUSIC_PAUSE,
#if defined(OLED_SCREEN)
#if OLED_SCREEN
/* Brillo */ FUNC_BACKLIGHT,
#endif
/* Captura */ FUNC_SCREENSHOT,
@@ -216,7 +216,7 @@ Functions cfn_sorted[] = {
/* LCD to Video */ FUNC_LCD_TO_VIDEO,
#endif
/* Lua Script */ FUNC_PLAY_SCRIPT,
#if !defined(OLED_SCREEN)
#if !OLED_SCREEN
/* Luz Fondo */ FUNC_BACKLIGHT,
#endif
#if defined(COLORLCD)
@@ -242,14 +242,14 @@ Functions cfn_sorted[] = {
#elif defined(TRANSLATIONS_FI)
/* Adjust */ FUNC_ADJUST_GVAR,
/* Audio Amp Off */ FUNC_DISABLE_AUDIO_AMP,
#if !defined(OLED_SCREEN)
#if !OLED_SCREEN
/* Backlight */ FUNC_BACKLIGHT,
#endif
/* BgMusic */ FUNC_BACKGND_MUSIC,
/* BgMusic || */ FUNC_BACKGND_MUSIC_PAUSE,
/* Haptic */ FUNC_HAPTIC,
/* Inst. Trim */ FUNC_INSTANT_TRIM,
#if defined(OLED_SCREEN)
#if OLED_SCREEN
/* Kirkkaus */ FUNC_BACKLIGHT,
#endif
#if defined(VIDEO_SWITCH)
@@ -297,7 +297,7 @@ Functions cfn_sorted[] = {
#endif
/* Lire valeur */ FUNC_PLAY_VALUE,
/* Logs SD */ FUNC_LOGS,
#if defined(OLED_SCREEN)
#if OLED_SCREEN
/* Luminosité */ FUNC_BACKLIGHT,
#endif
/* Musique */ FUNC_BACKGND_MUSIC,
@@ -313,7 +313,7 @@ Functions cfn_sorted[] = {
/* Règle Failsafe */ FUNC_SET_FAILSAFE,
/* Remise à 0 */ FUNC_RESET,
/* Remplace */ FUNC_OVERRIDE_CHANNEL,
#if !defined(OLED_SCREEN)
#if !OLED_SCREEN
/* Rétroécl. */ FUNC_BACKLIGHT,
#endif
/* RGB leds */ FUNC_RGB_LED,
@@ -348,14 +348,14 @@ Functions cfn_sorted[] = {
/* Set */ FUNC_SET_TIMER,
/* SetFailsafe */ FUNC_SET_FAILSAFE,
/* Vario */ FUNC_VARIO,
#if !defined(OLED_SCREEN)
#if !OLED_SCREEN
/* אור אחורי */ FUNC_BACKLIGHT,
#endif
/* איפוס */ FUNC_RESET,
#if defined(DEBUG)
/* בדיקה */ FUNC_TEST,
#endif
#if defined(OLED_SCREEN)
#if OLED_SCREEN
/* בהירות */ FUNC_BACKLIGHT,
#endif
/* הגדרת מסך ראשי */ FUNC_SET_SCREEN,
@@ -383,7 +383,7 @@ Functions cfn_sorted[] = {
/* Leds RGB */ FUNC_RGB_LED,
/* Leggi Valore */ FUNC_PLAY_VALUE,
/* Log scheda SD */ FUNC_LOGS,
#if defined(OLED_SCREEN)
#if OLED_SCREEN
/* Luminosità */ FUNC_BACKLIGHT,
#endif
/* Maestro */ FUNC_TRAINER,
@@ -395,7 +395,7 @@ Functions cfn_sorted[] = {
#endif
/* RangeCheck */ FUNC_RANGECHECK,
/* Regola */ FUNC_ADJUST_GVAR,
#if !defined(OLED_SCREEN)
#if !OLED_SCREEN
/* Retroillum. */ FUNC_BACKLIGHT,
#endif
/* Screenshot */ FUNC_SCREENSHOT,
@@ -434,7 +434,7 @@ Functions cfn_sorted[] = {
#endif
/* トレーナー */ FUNC_TRAINER,
/* バイブレート */ FUNC_HAPTIC,
#if !defined(OLED_SCREEN)
#if !OLED_SCREEN
/* バックライト */ FUNC_BACKLIGHT,
#endif
/* バリオ */ FUNC_VARIO,
@@ -445,7 +445,7 @@ Functions cfn_sorted[] = {
/* レンジチェック */ FUNC_RANGECHECK,
/* 音源再生 */ FUNC_PLAY_TRACK,
/* 画面キャプチャ */ FUNC_SCREENSHOT,
#if defined(OLED_SCREEN)
#if OLED_SCREEN
/* 輝度 */ FUNC_BACKLIGHT,
#endif
/* 再生値 */ FUNC_PLAY_VALUE,
@@ -467,12 +467,12 @@ Functions cfn_sorted[] = {
/* 메인 화면 설정 */ FUNC_SET_SCREEN,
/* 모듈 바인딩 */ FUNC_BIND,
/* 바리오 */ FUNC_VARIO,
#if defined(OLED_SCREEN)
#if OLED_SCREEN
/* 밝기 */ FUNC_BACKLIGHT,
#endif
/* 배경 음악 */ FUNC_BACKGND_MUSIC,
/* 배경 음악 일시정지 */ FUNC_BACKGND_MUSIC_PAUSE,
#if !defined(OLED_SCREEN)
#if !OLED_SCREEN
/* 백라이트 */ FUNC_BACKLIGHT,
#endif
/* 볼륨 */ FUNC_VOLUME,
@@ -499,14 +499,14 @@ Functions cfn_sorted[] = {
/* 페일세이프 설정 */ FUNC_SET_FAILSAFE,
#elif defined(TRANSLATIONS_NL)
/* Audio Amp Off */ FUNC_DISABLE_AUDIO_AMP,
#if !defined(OLED_SCREEN)
#if !OLED_SCREEN
/* Backlight */ FUNC_BACKLIGHT,
#endif
/* BgMusic */ FUNC_BACKGND_MUSIC,
/* BgMusic || */ FUNC_BACKGND_MUSIC_PAUSE,
/* Geluid */ FUNC_PLAY_SOUND,
/* Haptic */ FUNC_HAPTIC,
#if defined(OLED_SCREEN)
#if OLED_SCREEN
/* Helderheid */ FUNC_BACKLIGHT,
#endif
/* Inst. Trim */ FUNC_INSTANT_TRIM,
@@ -547,7 +547,7 @@ Functions cfn_sorted[] = {
/* GrajŚcieżk */ FUNC_PLAY_TRACK,
/* GrajWartoś */ FUNC_PLAY_VALUE,
/* Inst-Trim */ FUNC_INSTANT_TRIM,
#if defined(OLED_SCREEN)
#if OLED_SCREEN
/* Jasność */ FUNC_BACKLIGHT,
#endif
#if defined(VIDEO_SWITCH)
@@ -560,7 +560,7 @@ Functions cfn_sorted[] = {
#if defined(COLORLCD)
/* No Touch */ FUNC_DISABLE_TOUCH,
#endif
#if !defined(OLED_SCREEN)
#if !OLED_SCREEN
/* Podświetl */ FUNC_BACKLIGHT,
#endif
#if defined(FUNCTION_SWITCHES)
@@ -589,7 +589,7 @@ Functions cfn_sorted[] = {
/* BgMusica */ FUNC_BACKGND_MUSIC,
/* BgMusica || */ FUNC_BACKGND_MUSIC_PAUSE,
/* BindMódulo */ FUNC_BIND,
#if defined(OLED_SCREEN)
#if OLED_SCREEN
/* Brilho */ FUNC_BACKLIGHT,
#endif
/* Capt. Tela */ FUNC_SCREENSHOT,
@@ -601,7 +601,7 @@ Functions cfn_sorted[] = {
#endif
/* Leds RGB */ FUNC_RGB_LED,
/* Logs SD */ FUNC_LOGS,
#if !defined(OLED_SCREEN)
#if !OLED_SCREEN
/* LuzFundo */ FUNC_BACKLIGHT,
#endif
/* ModCorrida */ FUNC_RACING_MODE,
@@ -651,10 +651,10 @@ Functions cfn_sorted[] = {
#endif
/* Настройка */ FUNC_ADJUST_GVAR,
/* Оменить */ FUNC_OVERRIDE_CHANNEL,
#if defined(OLED_SCREEN)
#if OLED_SCREEN
/* Подсветка */ FUNC_BACKLIGHT,
#endif
#if !defined(OLED_SCREEN)
#if !OLED_SCREEN
/* Подсветка */ FUNC_BACKLIGHT,
#endif
/* Пров диапаз */ FUNC_RANGECHECK,
@@ -671,7 +671,7 @@ Functions cfn_sorted[] = {
/* Установ */ FUNC_SET_TIMER,
#elif defined(TRANSLATIONS_SE)
/* Audioförstärkare av */ FUNC_DISABLE_AUDIO_AMP,
#if !defined(OLED_SCREEN)
#if !OLED_SCREEN
/* Belysning */ FUNC_BACKLIGHT,
#endif
#if defined(COLORLCD)
@@ -682,7 +682,7 @@ Functions cfn_sorted[] = {
#if defined(VIDEO_SWITCH)
/* LCD till Video */ FUNC_LCD_TO_VIDEO,
#endif
#if defined(OLED_SCREEN)
#if OLED_SCREEN
/* Ljusstyrka */ FUNC_BACKLIGHT,
#endif
/* Logga data */ FUNC_LOGS,
@@ -719,7 +719,7 @@ Functions cfn_sorted[] = {
#endif
/* RGB LED 燈 */ FUNC_RGB_LED,
/* Vario傳感器 */ FUNC_VARIO,
#if defined(OLED_SCREEN)
#if OLED_SCREEN
/* 亮度 */ FUNC_BACKLIGHT,
#endif
/* 修改全局變量GV值 */ FUNC_ADJUST_GVAR,
@@ -744,7 +744,7 @@ Functions cfn_sorted[] = {
/* 禁用觸摸 */ FUNC_DISABLE_TOUCH,
#endif
/* 競速模式 */ FUNC_RACING_MODE,
#if !defined(OLED_SCREEN)
#if !OLED_SCREEN
/* 背光 */ FUNC_BACKLIGHT,
#endif
/* 記錄日誌LOG */ FUNC_LOGS,
@@ -770,7 +770,7 @@ Functions cfn_sorted[] = {
/* Налашт. */ FUNC_ADJUST_GVAR,
/* Перевизнач. */ FUNC_OVERRIDE_CHANNEL,
/* ПеревірДіап. */ FUNC_RANGECHECK,
#if !defined(OLED_SCREEN)
#if !OLED_SCREEN
/* Підсвіт. */ FUNC_BACKLIGHT,
#endif
/* Підсил. вимк. */ FUNC_DISABLE_AUDIO_AMP,
@@ -786,7 +786,7 @@ Functions cfn_sorted[] = {
/* Тренер */ FUNC_TRAINER,
/* Фон.Муз. */ FUNC_BACKGND_MUSIC,
/* Фон.Муз. || */ FUNC_BACKGND_MUSIC_PAUSE,
#if defined(OLED_SCREEN)
#if OLED_SCREEN
/* Яскравість */ FUNC_BACKLIGHT,
#endif
#if defined(VIDEO_SWITCH)
@@ -801,12 +801,12 @@ Functions cfn_sorted[] = {
#else
/* Adjust */ FUNC_ADJUST_GVAR,
/* Audio Amp Off */ FUNC_DISABLE_AUDIO_AMP,
#if !defined(OLED_SCREEN)
#if !OLED_SCREEN
/* Backlight */ FUNC_BACKLIGHT,
#endif
/* BgMusic */ FUNC_BACKGND_MUSIC,
/* BgMusic || */ FUNC_BACKGND_MUSIC_PAUSE,
#if defined(OLED_SCREEN)
#if OLED_SCREEN
/* Brightness */ FUNC_BACKLIGHT,
#endif
/* Haptic */ FUNC_HAPTIC,
+1 -1
View File
@@ -1181,7 +1181,7 @@ PACK(struct RadioData {
NOBACKUP(uint8_t getBrightness() const
{
#if defined(OLED_SCREEN)
#if OLED_SCREEN
return contrast;
#else
return backlightBright;
+1 -1
View File
@@ -607,7 +607,7 @@ void calcBacklightValue(int16_t source)
#if defined(COLORLCD)
requiredBacklightBright = BACKLIGHT_LEVEL_MAX - (g_eeGeneral.blOffBright +
((1024 + raw) * ((BACKLIGHT_LEVEL_MAX - g_eeGeneral.backlightBright) - g_eeGeneral.blOffBright) / 2048));
#elif defined(OLED_SCREEN)
#elif OLED_SCREEN
requiredBacklightBright = (raw + 1024) * 254 / 2048;
#else
requiredBacklightBright = (1024 - raw) * 100 / 2048;
+1 -1
View File
@@ -568,7 +568,7 @@ constexpr uint8_t OPENTX_START_NO_SPLASH = 0x01;
constexpr uint8_t OPENTX_START_NO_CALIBRATION = 0x02;
constexpr uint8_t OPENTX_START_NO_CHECKS = 0x04;
#if defined(STATUS_LEDS)
#if STATUS_LEDS
#define LED_ERROR_BEGIN() ledRed()
// Green "ready to use" if available, unless overridden by user or mfg preference
#if !defined(POWER_LED_BLUE) && (defined(LED_GREEN_GPIO) || defined(LED_STRIP_GPIO))
+1 -1
View File
@@ -546,7 +546,7 @@ const char* funcGetLabel(uint8_t func)
case FUNC_LOGS:
return STR_SF_LOGS;
case FUNC_BACKLIGHT:
#if defined(OLED_SCREEN)
#if OLED_SCREEN
return STR_BRIGHTNESS;
#else
return STR_SF_BACKLIGHT;
+1 -1
View File
@@ -319,7 +319,7 @@ void lcdSetContrast(bool useDefault)
{
#if defined(BOOT)
lcdSetRefVolt(LCD_CONTRAST_DEFAULT);
#elif defined(OLED_SCREEN)
#elif OLED_SCREEN
// Handled by brightness feature
if (useDefault)
lcdSetRefVolt(LCD_CONTRAST_DEFAULT);
+4 -4
View File
@@ -555,9 +555,9 @@ void menuRadioSetup(event_t event)
if(attr) g_eeGeneral.inactivityTimer = checkIncDec(event, g_eeGeneral.inactivityTimer, 0, 250, EE_GENERAL); //0..250minutes
break;
#if defined(BACKLIGHT_GPIO) || defined(OLED_SCREEN)
#if defined(BACKLIGHT_GPIO) || OLED_SCREEN
case ITEM_RADIO_SETUP_BACKLIGHT_LABEL:
#if defined(OLED_SCREEN)
#if OLED_SCREEN
lcdDrawTextAlignedLeft(y, STR_BRIGHTNESS);
#else
lcdDrawTextAlignedLeft(y, STR_BACKLIGHT_LABEL);
@@ -581,7 +581,7 @@ void menuRadioSetup(event_t event)
case ITEM_RADIO_SETUP_BRIGHTNESS:
lcdDrawTextIndented(y, STR_BRIGHTNESS);
#if defined(OLED_SCREEN)
#if OLED_SCREEN
lcdDrawNumber(LCD_W-2, y, g_eeGeneral.contrast, attr|RIGHT);
if (attr) {
CHECK_INCDEC_GENVAR(event, g_eeGeneral.contrast, LCD_CONTRAST_MIN, LCD_CONTRAST_MAX);
@@ -610,7 +610,7 @@ void menuRadioSetup(event_t event)
break;
#endif
#if !defined(OLED_SCREEN)
#if !OLED_SCREEN
case ITEM_RADIO_SETUP_CONTRAST:
lcdDrawTextIndented(y, STR_CONTRAST);
lcdDrawNumber(LCD_W-2, y, g_eeGeneral.contrast, attr|RIGHT);
+9 -3
View File
@@ -43,6 +43,12 @@ int8_t slider_5pos(coord_t y, int8_t value, event_t event, uint8_t attr, const c
return editChoice(RADIO_SETUP_2ND_COLUMN, y, title, nullptr, value, -2, +2, attr, event, INDENT_WIDTH);
}
#if HAS_BACKLIGHT_COLOR
#define CASE_HAS_BACKLIGHT_COLOR(x) x,
#else
#define CASE_HAS_BACKLIGHT_COLOR(x)
#endif
enum MenuRadioSetupItems {
CASE_RTCLOCK(ITEM_RADIO_SETUP_DATE)
CASE_RTCLOCK(ITEM_RADIO_SETUP_TIME)
@@ -80,7 +86,7 @@ enum MenuRadioSetupItems {
ITEM_RADIO_SETUP_BACKLIGHT_DELAY,
ITEM_RADIO_SETUP_BRIGHTNESS,
ITEM_RADIO_SETUP_CONTRAST,
CASE_PCBX9E_PCBX9DP(ITEM_RADIO_SETUP_BACKLIGHT_COLOR)
CASE_HAS_BACKLIGHT_COLOR(ITEM_RADIO_SETUP_BACKLIGHT_COLOR)
ITEM_RADIO_SETUP_BACKLIGHT_SOURCE,
ITEM_RADIO_SETUP_BACKLIGHT_SOURCE_OVERRIDE,
ITEM_RADIO_SETUP_FLASH_BEEP,
@@ -224,7 +230,7 @@ void menuRadioSetup(event_t event)
0, // backlight delay
0, // brightness
0, // contrast
CASE_PCBX9E_PCBX9DP(0) // backlight color
CASE_HAS_BACKLIGHT_COLOR(0) // backlight color
0, // backlight control
BACKLIGHT_WARNING_ROW(LABEL(0)), // backlight control override warning
0, // flash beep
@@ -585,7 +591,7 @@ void menuRadioSetup(event_t event)
}
break;
#if defined(PCBX9DP) || defined(PCBX9E)
#if HAS_BACKLIGHT_COLOR
case ITEM_RADIO_SETUP_BACKLIGHT_COLOR:
lcdDrawTextIndented(y, STR_BLCOLOR);
drawSlider(RADIO_SETUP_2ND_COLUMN, y, g_eeGeneral.backlightColor, 20, attr);
+1 -1
View File
@@ -94,7 +94,7 @@ static void init_lvgl_disp_drv()
disp_drv.ver_res = LCD_H; /*Set the vertical resolution in pixels*/
disp_drv.full_refresh = 0;
#if !defined(LCD_VERTICAL_INVERT)
#if !LCD_VERTICAL_INVERT
disp_drv.direct_mode = 1;
#elif defined(RADIO_F16)
disp_drv.direct_mode = (hardwareOptions.pcbrev > 0) ? 1 : 0;
+2 -2
View File
@@ -71,7 +71,7 @@ static lv_disp_drv_t* refr_disp = nullptr;
static void flushLcd(lv_disp_drv_t* disp_drv, const lv_area_t* area,
lv_color_t* color_p)
{
#if !defined(LCD_VERTICAL_INVERT) || defined(RADIO_F16)
#if !LCD_VERTICAL_INVERT || defined(RADIO_F16)
#if defined(RADIO_F16)
if (hardwareOptions.pcbrev > 0)
#endif
@@ -126,7 +126,7 @@ static void init_lvgl_disp_drv()
disp_drv.ver_res = LCD_H; /*Set the vertical resolution in pixels*/
disp_drv.full_refresh = 0;
#if !defined(LCD_VERTICAL_INVERT)
#if !LCD_VERTICAL_INVERT
disp_drv.direct_mode = 1;
#elif defined(RADIO_F16)
disp_drv.direct_mode = (hardwareOptions.pcbrev > 0) ? 1 : 0;
@@ -35,13 +35,13 @@
#define CASE_IMU(x)
#endif
#if defined(OLED_SCREEN)
#if OLED_SCREEN
#define CASE_CONTRAST(x)
#else
#define CASE_CONTRAST(x) x,
#endif
#if defined(BACKLIGHT_GPIO) || defined(OLED_SCREEN)
#if defined(BACKLIGHT_GPIO) || OLED_SCREEN
#define CASE_BACKLIGHT(x) x,
#else
#define CASE_BACKLIGHT(x)
@@ -119,10 +119,4 @@
#define CASE_LUA_MODEL_SCRIPTS(x)
#endif
#if defined(PCBX9DP) || defined(PCBX9E)
#define CASE_PCBX9E_PCBX9DP(x) x,
#else
#define CASE_PCBX9E_PCBX9DP(x)
#endif
#define CASE_SPLASH_PARAM(x) x,
@@ -95,7 +95,7 @@ enum {
ITEM_RADIO_HARDWARE_JITTER_FILTER,
ITEM_RADIO_HARDWARE_RAS,
ITEM_RADIO_HARDWARE_SPORT_UPDATE_POWER,
#if (defined(BACKLIGHT_GPIO) || defined(OLED_SCREEN)) && (LCD_W == 128)
#if (defined(BACKLIGHT_GPIO) || OLED_SCREEN) && (LCD_W == 128)
ITEM_RADIO_HARDWARE_SCREEN_LABEL,
ITEM_RADIO_HARDWARE_SCREEN_INVERT,
#endif
@@ -367,7 +367,7 @@ static void _init_menu_tab_array(uint8_t* tab, size_t len)
tab[ITEM_RADIO_HARDWARE_SPORT_UPDATE_POWER] = HIDDEN_ROW;
}
#if (defined(BACKLIGHT_GPIO) || defined(OLED_SCREEN)) && (LCD_W == 128)
#if (defined(BACKLIGHT_GPIO) || OLED_SCREEN) && (LCD_W == 128)
tab[ITEM_RADIO_HARDWARE_SCREEN_LABEL] = READONLY_ROW;
tab[ITEM_RADIO_HARDWARE_SCREEN_INVERT] = 0;
#endif
@@ -612,7 +612,7 @@ void menuRadioHardware(event_t event)
}
break;
#if (defined(BACKLIGHT_GPIO) || defined(OLED_SCREEN)) && (LCD_W == 128)
#if (defined(BACKLIGHT_GPIO) || OLED_SCREEN) && (LCD_W == 128)
case ITEM_RADIO_HARDWARE_SCREEN_LABEL:
lcdDrawTextAlignedLeft(y, STR_SCREEN);
break;
+1 -1
View File
@@ -167,7 +167,7 @@ const uint8_t BMP_HEADER[] = {
/* important colors */ 0x00, 0x00, 0x00, 0x00,
#if !defined(COLORLCD)
/* grayscale palette */
#if defined(OLED_SCREEN)
#if OLED_SCREEN
0x00, 0x00, 0x00, 0x00, 0x11, 0x11, 0x11, 0x00, 0x22, 0x22, 0x22, 0x00, 0x33, 0x33, 0x33, 0x00,
0x44, 0x44, 0x44, 0x00, 0x55, 0x55, 0x55, 0x00, 0x66, 0x66, 0x66, 0x00, 0x77, 0x77, 0x77, 0x00,
0x88, 0x88, 0x88, 0x00, 0x99, 0x99, 0x99, 0x00, 0xaa, 0xaa, 0xaa, 0x00, 0xbb, 0xbb, 0xbb, 0x00,
-7
View File
@@ -1,12 +1,5 @@
AddHWGenTarget(${HW_DESC_JSON} hal_keys hal_keys.inc)
# add_library(hal_keys OBJECT EXCLUDE_FROM_ALL
# ${CMAKE_CURRENT_BINARY_DIR}/hal_keys.inc
# hal/key_driver.cpp
# )
set(SRC ${SRC}
${CMAKE_CURRENT_BINARY_DIR}/hal_keys.inc
hal/key_driver.cpp
hal/module_port.cpp
hal/adc_driver.cpp
-15
View File
@@ -27,21 +27,6 @@ set(SRC ${SRC}
lua/lua_event.cpp
)
AddHWGenTarget(${HW_DESC_JSON} lua_inputs lua_inputs.inc)
AddHWGenTarget(${HW_DESC_JSON} lua_mixsrc lua_mixsrc.inc)
AddHWGenTarget(${HW_DESC_JSON} lua_keys lua_keys.inc)
set(SRC ${SRC}
${CMAKE_CURRENT_BINARY_DIR}/lua_inputs.inc
${CMAKE_CURRENT_BINARY_DIR}/lua_mixsrc.inc
${CMAKE_CURRENT_BINARY_DIR}/lua_keys.inc
)
# helper target for testing purposes
add_custom_target(lua_inputs DEPENDS ${HW_DESC_JSON} lua_inputs.inc)
add_custom_target(lua_mixsrc DEPENDS ${HW_DESC_JSON} lua_mixsrc.inc)
add_custom_target(lua_keys DEPENDS ${HW_DESC_JSON} lua_keys.inc)
if(GUI_DIR STREQUAL colorlcd)
set(SRC ${SRC} lua/api_colorlcd.cpp lua/api_colorlcd_lvgl.cpp lua/widgets.cpp)
else()
+1
View File
@@ -2897,6 +2897,7 @@ static int luaGetTrainerStatus(lua_State * L)
// To simplify code below
#if !defined(BLING_LED_STRIP_LENGTH)
#define BLING_LED_STRIP_START 0
#define BLING_LED_STRIP_LENGTH 0
#endif
#if !defined(CFS_LED_STRIP_LENGTH)
-7
View File
@@ -101,10 +101,3 @@ add_custom_target(yaml_data
${RADIO_DIRECTORY}/src/myeeprom.h
${RADIO_DIRECTORY}/util/generate_yaml.py
)
AddHWGenTarget(${HW_DESC_JSON} yaml_inputs yaml_inputs.inc)
set(SRC ${SRC} ${CMAKE_CURRENT_BINARY_DIR}/yaml_inputs.inc)
# helper target for testing purposes
add_custom_target(yaml_inputs DEPENDS ${HW_DESC_JSON} yaml_inputs.inc)
@@ -128,6 +128,8 @@ if(NOT NATIVE_BUILD)
${STM32_DRIVER_DIR}/stm32_i2c_driver.cpp
)
add_dependencies(stm32_drivers hal_settings)
set(FIRMWARE_SRC ${FIRMWARE_SRC} $<TARGET_OBJECTS:stm32_drivers>)
set(FIRMWARE_SRC ${FIRMWARE_SRC} $<TARGET_OBJECTS:stm32_drivers_w_dbg_fw>)
@@ -85,7 +85,7 @@ void rotaryEncoderCheck()
};
#endif
uint8_t pins = ROTARY_ENCODER_POSITION();
uint8_t pins = ROTARY_ENCODER_POSITION;
// No change - do nothing
if (pins == lastPins) {
@@ -230,7 +230,7 @@ void rotaryEncoderInit()
NVIC_SetPriority(ROTARY_ENCODER_TIMER_IRQn, 7);
// Get initial position
lastPins = ROTARY_ENCODER_POSITION();
lastPins = ROTARY_ENCODER_POSITION;
skipUntilDetent = !ON_DETENT(lastPins);
}
+1 -1
View File
@@ -266,7 +266,7 @@ void boardOff()
rgbLedClearAll();
#endif
#if defined(STATUS_LEDS) && !defined(BOOT)
#if STATUS_LEDS && !defined(BOOT)
ledOff();
#endif
backlightEnable(0);
+3 -92
View File
@@ -21,11 +21,7 @@
#pragma once
#define CPU_FREQ 168000000
#define PERI1_FREQUENCY 42000000
#define PERI2_FREQUENCY 84000000
#define TIMER_MULT_APB1 2
#define TIMER_MULT_APB2 2
#include "hal_settings.h"
#define TELEMETRY_EXTI_PRIO 0 // required for soft serial
@@ -33,7 +29,7 @@
#define ROTARY_ENCODER_GPIO GPIOH
#define ROTARY_ENCODER_GPIO_PIN_A LL_GPIO_PIN_11 // PH.11
#define ROTARY_ENCODER_GPIO_PIN_B LL_GPIO_PIN_10 // PH.10
#define ROTARY_ENCODER_POSITION() ((ROTARY_ENCODER_GPIO->IDR >> 10) & 0x03)
#define ROTARY_ENCODER_POSITION ((ROTARY_ENCODER_GPIO->IDR >> 10) & 0x03)
#define ROTARY_ENCODER_EXTI_LINE1 LL_EXTI_LINE_11
#define ROTARY_ENCODER_EXTI_LINE2 LL_EXTI_LINE_10
#if !defined(USE_EXTI15_10_IRQ)
@@ -143,22 +139,6 @@
#pragma message "PCBREV_TOUCH_PULL_TYPE not defined, defaulting to GPIO_IN_PD"
#endif
// Led
#define STATUS_LEDS
#if defined(PCBX12S)
#define LED_GPIO GPIO_PIN(GPIOI, 5) // PI.05
#elif defined(RADIO_T15)
#define LED_RED_GPIO GPIO_PIN(GPIOI, 14) //PI.14
#define LED_GREEN_GPIO GPIO_PIN(GPIOC, 13) //PC.13
#define LED_BLUE_GPIO GPIO_PIN(GPIOE, 3) //PE.03
#elif defined(PCBX10)
#define LED_RED_GPIO GPIO_PIN(GPIOE, 2) // PE.02
#if !defined(MANUFACTURER_FRSKY) // no green on X10/X10 Express
#define LED_GREEN_GPIO GPIO_PIN(GPIOE, 4) // PE.04
#endif
#define LED_BLUE_GPIO GPIO_PIN(GPIOE, 5) // PE.05
#endif
// Customisable switches leds
#if defined(RADIO_T15)
#define FSLED_GPIO_PIN_1 GPIO_PIN(GPIOA, 15) //PA.15
@@ -300,19 +280,12 @@
#define LCD_SPI_SCK_GPIO_PIN LL_GPIO_PIN_2 // PE.02
#define LCD_SPI_MISO_GPIO_PIN LL_GPIO_PIN_5 // PE.05
#define LCD_SPI_MOSI_GPIO_PIN LL_GPIO_PIN_6 // PE.06
#define LTDC_IRQ_PRIO 4
#define DMA_SCREEN_IRQ_PRIO 6
#else
#if defined(PCBX12S)
#define LCD_GPIO_NRST GPIO_PIN(GPIOF, 10) // PF.10
#elif defined(PCBX10)
#define LCD_GPIO_NRST GPIO_PIN(GPIOI, 10) // PI.10
#endif
#if defined(PCBX10) && !defined(RADIO_T18) && !defined(RADIO_V16)
#define LCD_VERTICAL_INVERT
#endif
#define LTDC_IRQ_PRIO 4
#define DMA_SCREEN_IRQ_PRIO 6
#endif
// Backlight
@@ -501,28 +474,7 @@
#endif
// Haptic
#define HAPTIC_PWM
#if defined(PCBX12S)
#define HAPTIC_GPIO GPIO_PIN(GPIOA, 2) // PA.02
#define HAPTIC_GPIO_TIMER TIM9
#define HAPTIC_GPIO_AF GPIO_AF3
#define HAPTIC_TIMER_OUTPUT_ENABLE TIM_CCER_CC1E
#define HAPTIC_TIMER_MODE TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2
#define HAPTIC_TIMER_COMPARE_VALUE HAPTIC_GPIO_TIMER->CCR1
#elif defined(RADIO_T15) // TIM2_CH1
#define HAPTIC_GPIO GPIO_PIN(GPIOA, 5) // PA.05
#define HAPTIC_GPIO_TIMER TIM2
#define HAPTIC_GPIO_AF GPIO_AF1
#define HAPTIC_TIMER_OUTPUT_ENABLE TIM_CCER_CC1E | TIM_CCER_CC1NE;
#define HAPTIC_TIMER_MODE TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1PE
#define HAPTIC_TIMER_COMPARE_VALUE HAPTIC_GPIO_TIMER->CCR1
#elif defined(PCBX10)
#define HAPTIC_GPIO GPIO_PIN(GPIOE, 6) // PE.06
#define HAPTIC_GPIO_TIMER TIM9
#define HAPTIC_GPIO_AF GPIO_AF3
#define HAPTIC_TIMER_OUTPUT_ENABLE TIM_CCER_CC2E
#define HAPTIC_TIMER_MODE TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2
#define HAPTIC_TIMER_COMPARE_VALUE HAPTIC_GPIO_TIMER->CCR2
#if !defined(PCBX12S) && !defined(RADIO_T15) && defined(PCBX10)
// FlySky Hall Sticks
#define FLYSKY_HALL_SERIAL_USART UART4
#define FLYSKY_HALL_DMA_Channel LL_DMA_CHANNEL_4
@@ -534,24 +486,6 @@
#define FLYSKY_HALL_DMA_Stream_TX LL_DMA_STREAM_4
#endif
#if defined(RADIO_V16)
// LED Strip
#define LED_STRIP_LENGTH 40
#define BLING_LED_STRIP_START 6
#define BLING_LED_STRIP_LENGTH 34
#define LED_STRIP_GPIO GPIO_PIN(GPIOA, 10) // PA.10 / TIM1_CH3
#define LED_STRIP_GPIO_AF LL_GPIO_AF_1 // TIM1/2
#define LED_STRIP_TIMER TIM1
#define LED_STRIP_TIMER_FREQ (PERI2_FREQUENCY * TIMER_MULT_APB2)
#define LED_STRIP_TIMER_CHANNEL LL_TIM_CHANNEL_CH3
#define LED_STRIP_TIMER_DMA DMA2
#define LED_STRIP_TIMER_DMA_CHANNEL LL_DMA_CHANNEL_6
#define LED_STRIP_TIMER_DMA_STREAM LL_DMA_STREAM_5
#define LED_STRIP_TIMER_DMA_IRQn DMA2_Stream5_IRQn
#define LED_STRIP_TIMER_DMA_IRQHandler DMA2_Stream5_IRQHandler
#define LED_STRIP_REFRESH_PERIOD 50 //ms
#endif
// Internal PXX1 Module:
// -> let's assume all internal XJT modules used are either X10 or X12S type
#define EXTERNAL_ANTENNA
@@ -691,17 +625,6 @@
#define TRAINER_MODULE_CPPM_GPIO_AF LL_GPIO_AF_2
#endif
// Millisecond timer
#define MS_TIMER TIM14
#define MS_TIMER_IRQn TIM8_TRG_COM_TIM14_IRQn
#define MS_TIMER_IRQHandler TIM8_TRG_COM_TIM14_IRQHandler
// Mixer scheduler timer
#define MIXER_SCHEDULER_TIMER TIM13
#define MIXER_SCHEDULER_TIMER_FREQ (PERI1_FREQUENCY * TIMER_MULT_APB1)
#define MIXER_SCHEDULER_TIMER_IRQn TIM8_UP_TIM13_IRQn
#define MIXER_SCHEDULER_TIMER_IRQHandler TIM8_UP_TIM13_IRQHandler
// Bluetooth
#define STORAGE_BLUETOOTH
#if defined(BLUETOOTH)
@@ -744,15 +667,3 @@
// SDRAM
#define SDRAM_BANK2
#if defined(RADIO_T15)
#define LCD_W 480
#define LCD_H 320
#else
#define LCD_W 480
#define LCD_H 272
#endif
#define LCD_PHYS_H LCD_H
#define LCD_PHYS_W LCD_W
#define LCD_DEPTH 16
+4 -4
View File
@@ -58,7 +58,7 @@
static LTDC_HandleTypeDef hltdc;
static void* initialFrameBuffer = nullptr;
#if defined(LCD_VERTICAL_INVERT)
#if LCD_VERTICAL_INVERT
typedef uint16_t pixel_t;
static pixel_t _LCD_BUF_1[DISPLAY_BUFFER_SIZE] __SDRAM;
static pixel_t _LCD_BUF_2[DISPLAY_BUFFER_SIZE] __SDRAM;
@@ -137,7 +137,7 @@ static void _update_frame_buffer_addr(uint16_t* addr)
static void startLcdRefresh(lv_disp_drv_t *disp_drv, uint16_t *buffer,
const rect_t &copy_area)
{
#if defined(LCD_VERTICAL_INVERT)
#if LCD_VERTICAL_INVERT
#if defined(RADIO_F16)
if(hardwareOptions.pcbrev > 0) {
// Direct mode
@@ -382,7 +382,7 @@ void LCD_LayerInit()
layer.ImageHeight = LCD_PHYS_H;
/* Start Address configuration : the LCD Frame buffer is defined on SDRAM w/ Offset */
#if defined(LCD_VERTICAL_INVERT)
#if LCD_VERTICAL_INVERT
intptr_t layer_address;
#if defined(RADIO_F16)
if (hardwareOptions.pcbrev > 0)
@@ -423,7 +423,7 @@ void LCD_Init(void)
extern "C"
void lcdInit()
{
#if defined(LCD_VERTICAL_INVERT)
#if LCD_VERTICAL_INVERT
// Clear buffer first
memset(_LCD_BUF_1, 0, sizeof(_LCD_BUF_1));
memset(_LCD_BUF_2, 0, sizeof(_LCD_BUF_2));
+1 -87
View File
@@ -22,12 +22,7 @@
#ifndef _HAL_H_
#define _HAL_H_
#define CPU_FREQ 400000000
#define PERI1_FREQUENCY 100000000
#define PERI2_FREQUENCY 100000000
#define TIMER_MULT_APB1 2
#define TIMER_MULT_APB2 2
#include "hal_settings.h"
/* Timers Allocation:
* TIM3 = Haptic / Backlight
@@ -107,12 +102,6 @@
#define LCD_SPI_MISO GPIO_PIN(GPIOG, 9)
#define LCD_SPI_BAUD 50000000
// Backlight
#define BACKLIGHT_GPIO GPIO_PIN(GPIOB, 03) // TIM2_CH2
#define BACKLIGHT_TIMER TIM2
#define BACKLIGHT_GPIO_AF GPIO_AF1
#define BACKLIGHT_TIMER_FREQ (PERI1_FREQUENCY * TIMER_MULT_APB1)
// QSPI Flash
#define QSPI_MAX_FREQ 80000000U // 80 MHz
#define QSPI_CLK_GPIO GPIO_PIN(GPIOB, 2)
@@ -172,13 +161,6 @@
#define I2C_B2_GPIO_AF LL_GPIO_AF_4
#define I2C_B2_CLK_RATE 400000
// Haptic: TIM3_CH2
#define HAPTIC_PWM
#define HAPTIC_GPIO GPIO_PIN(GPIOA, 15) // PA.15
#define HAPTIC_GPIO_TIMER TIM2
#define HAPTIC_GPIO_AF GPIO_AF1
// Flysky Hall Stick
#define FLYSKY_HALL_SERIAL_USART USART2
@@ -191,30 +173,6 @@
#define FLYSKY_HALL_DMA_Stream_TX LL_DMA_STREAM_4
#define FLYSKY_HALL_DMA_Channel LL_DMAMUX1_REQ_USART2_RX
// TODO LED Strip PF.06
// LED Strip
#define LED_STRIP_LENGTH 14
#define BLING_LED_STRIP_START 10
#define BLING_LED_STRIP_LENGTH 4
#define CFS_LED_STRIP_START 0
#define CFS_LED_STRIP_LENGTH 8
#define CFS_LEDS_PER_SWITCH 2
#define LED_STRIP_GPIO GPIO_PIN(GPIOF, 06) // PF.06 / TIM16_CH1
#define LED_STRIP_GPIO_AF LL_GPIO_AF_1 // TIM1/2/16/17
#define LED_STRIP_TIMER TIM16
#define LED_STRIP_TIMER_FREQ (PERI1_FREQUENCY * TIMER_MULT_APB1)
#define LED_STRIP_TIMER_CHANNEL LL_TIM_CHANNEL_CH1
#define LED_STRIP_TIMER_DMA DMA1
#define LED_STRIP_TIMER_DMA_CHANNEL LL_DMAMUX1_REQ_TIM16_UP
#define LED_STRIP_TIMER_DMA_STREAM LL_DMA_STREAM_0
#define LED_STRIP_TIMER_DMA_IRQn DMA1_Stream0_IRQn
#define LED_STRIP_TIMER_DMA_IRQHandler DMA1_Stream0_IRQHandler
#define LED_STRIP_REFRESH_PERIOD 50 //ms
#define RGB_LED_OFFSET 10
#define STATUS_LEDS
#define LED_CHARGING_START 0
#define LED_CHARGING_END 13
@@ -286,48 +244,4 @@
#define TOUCH_I2C_BUS I2C_Bus_1
#define TOUCH_I2C_CLK_RATE 100000
// Rotary Encoder
#define ROTARY_ENCODER_NAVIGATION
#define ROTARY_ENCODER_GPIO GPIOA
#define ROTARY_ENCODER_GPIO_PIN_A LL_GPIO_PIN_6 // PA.06
#define ROTARY_ENCODER_GPIO_PIN_B LL_GPIO_PIN_7 // PA.07
#define ROTARY_ENCODER_POSITION() ((ROTARY_ENCODER_GPIO->IDR >> 6) & 0x03)
#define ROTARY_ENCODER_EXTI_LINE1 LL_EXTI_LINE_6
#define ROTARY_ENCODER_EXTI_LINE2 LL_EXTI_LINE_7
// port extender interrupt
#if !defined(USE_EXTI9_5_IRQ)
#define USE_EXTI9_5_IRQ
#define EXTI9_5_IRQ_Priority 5
#endif
#define ROTARY_ENCODER_EXTI_PORT LL_SYSCFG_EXTI_PORTA
#define ROTARY_ENCODER_EXTI_SYS_LINE1 LL_SYSCFG_EXTI_LINE6
#define ROTARY_ENCODER_EXTI_SYS_LINE2 LL_SYSCFG_EXTI_LINE7
#define ROTARY_ENCODER_TIMER TIM17
#define ROTARY_ENCODER_TIMER_IRQn TIM17_IRQn
#define ROTARY_ENCODER_TIMER_IRQHandler TIM17_IRQHandler
// Millisecond timer
#define MS_TIMER TIM14
#define MS_TIMER_IRQn TIM8_TRG_COM_TIM14_IRQn
#define MS_TIMER_IRQHandler TIM8_TRG_COM_TIM14_IRQHandler
// Mixer scheduler timer
#define MIXER_SCHEDULER_TIMER TIM12
#define MIXER_SCHEDULER_TIMER_FREQ (PERI1_FREQUENCY * TIMER_MULT_APB1)
#define MIXER_SCHEDULER_TIMER_IRQn TIM8_BRK_TIM12_IRQn
#define MIXER_SCHEDULER_TIMER_IRQHandler TIM8_BRK_TIM12_IRQHandler
// IMU / Gyro
#define IMU_I2C_BUS I2C_Bus_2
#define IMU_I2C_ADDRESS 0x6A
#define LCD_W 320
#define LCD_H 240
#define LCD_PHYS_W LCD_W
#define LCD_PHYS_H LCD_H
#define LCD_DEPTH 16
#endif // _HAL_H_
-1
View File
@@ -203,7 +203,6 @@ add_dependencies(board_bl ${BITMAPS_TARGET})
if(PCBREV STREQUAL NB4P)
target_sources(board_bl PUBLIC
${CMAKE_CURRENT_BINARY_DIR}/stm32_adc_inputs.inc
boards/generic_stm32/analog_inputs.cpp
)
endif()
+1 -102
View File
@@ -21,13 +21,7 @@
#pragma once
#define CPU_FREQ 168000000
// HSI is at 168Mhz (over-drive is not enabled!)
#define PERI1_FREQUENCY 42000000
#define PERI2_FREQUENCY 84000000
#define TIMER_MULT_APB1 2
#define TIMER_MULT_APB2 2
#include "hal_settings.h"
/* Timers Allocation:
* TIM1 = Haptic
@@ -252,41 +246,11 @@
#define LCD_SPI_SCK_GPIO GPIO_PIN(GPIOE, 2) // PE.02
#define LCD_SPI_MISO_GPIO GPIO_PIN(GPIOE, 5) // PE.05
#define LCD_SPI_MOSI_GPIO GPIO_PIN(GPIOE, 6) // PE.06
#define LTDC_IRQ_PRIO 4
#define DMA_SCREEN_IRQ_PRIO 6
// Backlight
// TODO TIM3, TIM8, TIM14, review the channel in backlight_driver.cpp according to the chosen timer
#define BACKLIGHT_RCC_APB2Periph 0
#define BACKLIGHT_GPIO GPIO_PIN(GPIOA, 15) // PA.15
#define BACKLIGHT_TIMER TIM2
#define BACKLIGHT_GPIO_AF GPIO_AF1
#define BACKLIGHT_TIMER_FREQ (PERI1_FREQUENCY * TIMER_MULT_APB1)
//used in BOOTLOADER
#define SERIAL_RCC_AHB1Periph 0
#define SERIAL_RCC_APB1Periph 0
#if defined(RADIO_NB4P)
// Rotary Encoder
#define ROTARY_ENCODER_GPIO GPIOH
#define ROTARY_ENCODER_GPIO_PIN_A LL_GPIO_PIN_11 // PH.11
#define ROTARY_ENCODER_GPIO_PIN_B LL_GPIO_PIN_10 // PH.10
#define ROTARY_ENCODER_POSITION() ((ROTARY_ENCODER_GPIO->IDR >> 10) & 0x03)
#define ROTARY_ENCODER_EXTI_LINE1 LL_EXTI_LINE_11
#define ROTARY_ENCODER_EXTI_LINE2 LL_EXTI_LINE_10
#if !defined(USE_EXTI15_10_IRQ)
#define USE_EXTI15_10_IRQ
#define EXTI15_10_IRQ_Priority 5
#endif
#define ROTARY_ENCODER_EXTI_PORT LL_SYSCFG_EXTI_PORTH
#define ROTARY_ENCODER_EXTI_SYS_LINE1 LL_SYSCFG_EXTI_LINE11
#define ROTARY_ENCODER_EXTI_SYS_LINE2 LL_SYSCFG_EXTI_LINE10
#define ROTARY_ENCODER_TIMER TIM13
#define ROTARY_ENCODER_TIMER_IRQn TIM8_UP_TIM13_IRQn
#define ROTARY_ENCODER_TIMER_IRQHandler TIM8_UP_TIM13_IRQHandler
#endif
#if defined(RADIO_NV14_FAMILY) || defined(RADIO_PL18U)
// SD card
#if defined(RADIO_PL18U)
@@ -389,25 +353,6 @@
#define EXTI9_5_IRQ_Priority 9
#endif
// Haptic: TIM1_CH1
#if defined(RADIO_NB4P)
#define HAPTIC_PWM
#define HAPTIC_GPIO GPIO_PIN(GPIOB, 0) // PB.00
#define HAPTIC_GPIO_TIMER TIM1
#define HAPTIC_GPIO_AF GPIO_AF1
#define HAPTIC_TIMER_OUTPUT_ENABLE TIM_CCER_CC2NE
#define HAPTIC_TIMER_MODE TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2 | TIM_CCMR1_OC2PE
#define HAPTIC_TIMER_COMPARE_VALUE HAPTIC_GPIO_TIMER->CCR2
#else
#define HAPTIC_PWM
#define HAPTIC_GPIO GPIO_PIN(GPIOA, 8) // PA.08
#define HAPTIC_GPIO_TIMER TIM1
#define HAPTIC_GPIO_AF GPIO_AF1
#define HAPTIC_TIMER_OUTPUT_ENABLE TIM_CCER_CC1E | TIM_CCER_CC1NE
#define HAPTIC_TIMER_MODE TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1PE
#define HAPTIC_TIMER_COMPARE_VALUE HAPTIC_GPIO_TIMER->CCR1
#endif
// Flysky Hall Stick
#define FLYSKY_HALL_SERIAL_USART UART4
#define FLYSKY_HALL_DMA_Channel LL_DMA_CHANNEL_4
@@ -424,26 +369,6 @@
#define FLYSKY_HALL_DMA_Stream_RX LL_DMA_STREAM_2
#define FLYSKY_HALL_DMA_Stream_TX LL_DMA_STREAM_4
// LED Strip
#if !defined(RADIO_NV14_FAMILY)
#define LED_STRIP_LENGTH 4
#define BLING_LED_STRIP_START 0
#define BLING_LED_STRIP_LENGTH 4
#define LED_STRIP_GPIO GPIO_PIN(GPIOH, 12) // PH.12 / TIM5_CH3
#define LED_STRIP_GPIO_AF LL_GPIO_AF_2 // TIM3/4/5
#define LED_STRIP_TIMER TIM5
#define LED_STRIP_TIMER_FREQ (PERI1_FREQUENCY * TIMER_MULT_APB1)
#define LED_STRIP_TIMER_CHANNEL LL_TIM_CHANNEL_CH3
#define LED_STRIP_TIMER_DMA DMA1
#define LED_STRIP_TIMER_DMA_CHANNEL LL_DMA_CHANNEL_6
#define LED_STRIP_TIMER_DMA_STREAM LL_DMA_STREAM_0
#define LED_STRIP_TIMER_DMA_IRQn DMA1_Stream0_IRQn
#define LED_STRIP_TIMER_DMA_IRQHandler DMA1_Stream0_IRQHandler
#define LED_STRIP_REFRESH_PERIOD 50 //ms
#define STATUS_LEDS
#endif
// Internal Module
#if defined(RADIO_PL18) || defined(RADIO_PL18U)
#if defined(RADIO_PL18U)
@@ -603,34 +528,8 @@
#define BT_CMD_MODE_GPIO GPIO_PIN(GPIOH, 6) // PH.06
#endif
// Millisecond timer
#define MS_TIMER TIM14
#define MS_TIMER_IRQn TIM8_TRG_COM_TIM14_IRQn
#define MS_TIMER_IRQHandler TIM8_TRG_COM_TIM14_IRQHandler
// Mixer scheduler timer
#define MIXER_SCHEDULER_TIMER TIM12
#define MIXER_SCHEDULER_TIMER_FREQ (PERI1_FREQUENCY * TIMER_MULT_APB1)
#define MIXER_SCHEDULER_TIMER_IRQn TIM8_BRK_TIM12_IRQn
#define MIXER_SCHEDULER_TIMER_IRQHandler TIM8_BRK_TIM12_IRQHandler
// SDRAM
#define SDRAM_BANK1
#if defined(RADIO_PL18U)
#define SDRAM_32MB
#endif
// LCD Settings
#if defined(RADIO_NB4P) || defined(RADIO_NV14_FAMILY)
#define LCD_W 320
#define LCD_H 480
#else
#define LCD_W 480
#define LCD_H 320
#endif
#define LCD_PHYS_W 320
#define LCD_PHYS_H 480
#define LCD_DEPTH 16
#define LCD_CONTRAST_DEFAULT 20
+2 -11
View File
@@ -40,17 +40,6 @@ set(SIMU_DRIVERS
abnormal_reboot.cpp
)
set(HW_DESC_JSON ${FLAVOUR}.json)
AddHWGenTarget(${HW_DESC_JSON} simu_keys simu_keys.inc)
AddHWGenTarget(${HW_DESC_JSON} simu_switches simu_switches.inc)
AddHWGenTarget(${HW_DESC_JSON} hal_adc_inputs hal_adc_inputs.inc)
set(SIMU_DRIVERS ${SIMU_DRIVERS}
${CMAKE_CURRENT_BINARY_DIR}/simu_keys.inc
${CMAKE_CURRENT_BINARY_DIR}/simu_switches.inc
${CMAKE_CURRENT_BINARY_DIR}/hal_adc_inputs.inc
)
include_directories(${CMAKE_CURRENT_BINARY_DIR})
# Pack all simu driver sources into an object lib
@@ -58,6 +47,8 @@ add_library(simu_drivers OBJECT EXCLUDE_FROM_ALL
${SIMU_DRIVERS}
)
add_dependencies(simu_drivers simu_keys simu_switches hal_settings hal_keys hal_adc_inputs lua_inputs lua_mixsrc lua_keys yaml_inputs)
get_property(SIMU_SRC_OPTIONS
TARGET radiolib_native
PROPERTY INTERFACE_COMPILE_OPTIONS
+3 -3
View File
@@ -53,7 +53,7 @@ void lcdRefresh()
#include <lvgl/lvgl.h>
#if defined(LCD_VERTICAL_INVERT)
#if LCD_VERTICAL_INVERT
static pixel_t _LCD_BUF1[DISPLAY_BUFFER_SIZE] __SDRAM;
static pixel_t _LCD_BUF2[DISPLAY_BUFFER_SIZE] __SDRAM;
@@ -98,7 +98,7 @@ pixel_t* simuLcdBuf = nullptr;
static void simuRefreshLcd(lv_disp_drv_t * disp_drv, uint16_t *buffer, const rect_t& copy_area)
{
#if !defined(LCD_VERTICAL_INVERT) // rename into "Use direct mode" ???
#if !LCD_VERTICAL_INVERT // rename into "Use direct mode" ???
// Direct mode: driver flush is called on final LVGL flush
// simply set LVGL's buffer as our current frame buffer
@@ -162,7 +162,7 @@ void lcdSetInitalFrameBuffer(void*) {}
void lcdInit()
{
#if defined(LCD_VERTICAL_INVERT)
#if LCD_VERTICAL_INVERT
memset(_LCD_BUF1, 0, sizeof(_LCD_BUF1));
memset(_LCD_BUF2, 0, sizeof(_LCD_BUF2));
#endif
+1 -90
View File
@@ -36,13 +36,7 @@
// - Ext. Mod. TIM4_UP: DMA2 stream 6
//
#define CPU_FREQ 400000000
#define PERI1_FREQUENCY 100000000
#define PERI2_FREQUENCY 100000000
#define TIMER_MULT_APB1 2
#define TIMER_MULT_APB2 2
#include "hal_settings.h"
#define ADC_VREF_PREC2 329
@@ -126,14 +120,6 @@
#define LCD_SPI_GPIO GPIOE
#define LCD_SPI_SCK_GPIO_PIN LL_GPIO_PIN_4 // PE.04
#define LCD_SPI_MOSI_GPIO_PIN LL_GPIO_PIN_3 // PE.03
#define LTDC_IRQ_PRIO 4
#define DMA_SCREEN_IRQ_PRIO 6
// Backlight
#define BACKLIGHT_GPIO GPIO_PIN(GPIOC, 06) // TIM3_CH1
#define BACKLIGHT_TIMER TIM3
#define BACKLIGHT_GPIO_AF GPIO_AF2
#define BACKLIGHT_TIMER_FREQ (PERI1_FREQUENCY * TIMER_MULT_APB1)
// QSPI Flash
#define QSPI_MAX_FREQ 80000000U // 80 MHz
@@ -206,15 +192,6 @@
#define I2C_B2_GPIO_AF LL_GPIO_AF_4
#define I2C_B2_CLK_RATE 400000
// Haptic: TIM3_CH2
#define HAPTIC_PWM
#define HAPTIC_GPIO GPIO_PIN(GPIOB, 5) // PB.05
#define HAPTIC_GPIO_TIMER TIM3
#define HAPTIC_GPIO_AF GPIO_AF2
#define HAPTIC_TIMER_OUTPUT_ENABLE TIM_CCER_CC2E | TIM_CCER_CC2NE;
#define HAPTIC_TIMER_MODE TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2 | TIM_CCMR1_OC2PE
#define HAPTIC_TIMER_COMPARE_VALUE HAPTIC_GPIO_TIMER->CCR2
// Flysky Hall Stick
#define FLYSKY_HALL_SERIAL_USART USART2
@@ -227,25 +204,6 @@
#define FLYSKY_HALL_DMA_Stream_TX LL_DMA_STREAM_4
#define FLYSKY_HALL_DMA_Channel LL_DMAMUX1_REQ_USART2_RX
// LED Strip
#define LED_STRIP_LENGTH 24
#define BLING_LED_STRIP_START 0
#define BLING_LED_STRIP_LENGTH 12
#define CFS_LED_STRIP_START 12
#define CFS_LED_STRIP_LENGTH 12
#define CFS_LEDS_PER_SWITCH 2
#define LED_STRIP_GPIO GPIO_PIN(GPIOA, 15) // PA.15 / TIM2_CH1
#define LED_STRIP_GPIO_AF LL_GPIO_AF_1 // TIM1/2/16/17
#define LED_STRIP_TIMER TIM2
#define LED_STRIP_TIMER_FREQ (PERI1_FREQUENCY * TIMER_MULT_APB1)
#define LED_STRIP_TIMER_CHANNEL LL_TIM_CHANNEL_CH1
#define LED_STRIP_TIMER_DMA DMA1
#define LED_STRIP_TIMER_DMA_CHANNEL LL_DMAMUX1_REQ_TIM2_UP
#define LED_STRIP_TIMER_DMA_STREAM LL_DMA_STREAM_0
#define LED_STRIP_TIMER_DMA_IRQn DMA1_Stream0_IRQn
#define LED_STRIP_TIMER_DMA_IRQHandler DMA1_Stream0_IRQHandler
#define LED_STRIP_REFRESH_PERIOD 50 //ms
#define STATUS_LEDS
#define LED_CHARGING_START 12
#define LED_CHARGING_END 23
@@ -332,50 +290,3 @@
#define USE_EXTI15_10_IRQ
#define EXTI15_10_IRQ_Priority 5
#endif
#define IMU_I2C_BUS I2C_Bus_1
#define IMU_I2C_ADDRESS 0x6A
//ROTARY emulation for trims as buttons
#define ROTARY_ENCODER_NAVIGATION
// Rotary Encoder
#define ROTARY_ENCODER_INVERTED
#define ROTARY_ENCODER_GPIO GPIOG
#define ROTARY_ENCODER_GPIO_PIN_A LL_GPIO_PIN_2 // PG.02
#define ROTARY_ENCODER_GPIO_PIN_B LL_GPIO_PIN_3 // PG.03
#define ROTARY_ENCODER_POSITION() ((ROTARY_ENCODER_GPIO->IDR >> 2) & 0x03)
#define ROTARY_ENCODER_EXTI_LINE1 LL_EXTI_LINE_2
#define ROTARY_ENCODER_EXTI_LINE2 LL_EXTI_LINE_3
#if !defined(USE_EXTI2_IRQ)
#define USE_EXTI2_IRQ
#define EXTI2_IRQ_Priority 5
#endif
#if !defined(USE_EXTI3_IRQ)
#define USE_EXTI3_IRQ
#define EXTI3_IRQ_Priority 5
#endif
#define ROTARY_ENCODER_EXTI_PORT LL_SYSCFG_EXTI_PORTG
#define ROTARY_ENCODER_EXTI_SYS_LINE1 LL_SYSCFG_EXTI_LINE2
#define ROTARY_ENCODER_EXTI_SYS_LINE2 LL_SYSCFG_EXTI_LINE3
#define ROTARY_ENCODER_TIMER TIM17
#define ROTARY_ENCODER_TIMER_IRQn TIM17_IRQn
#define ROTARY_ENCODER_TIMER_IRQHandler TIM17_IRQHandler
// Millisecond timer
#define MS_TIMER TIM14
#define MS_TIMER_IRQn TIM8_TRG_COM_TIM14_IRQn
#define MS_TIMER_IRQHandler TIM8_TRG_COM_TIM14_IRQHandler
// Mixer scheduler timer
#define MIXER_SCHEDULER_TIMER TIM12
#define MIXER_SCHEDULER_TIMER_FREQ (PERI1_FREQUENCY * TIMER_MULT_APB1)
#define MIXER_SCHEDULER_TIMER_IRQn TIM8_BRK_TIM12_IRQn
#define MIXER_SCHEDULER_TIMER_IRQHandler TIM8_BRK_TIM12_IRQHandler
#define LCD_W 480
#define LCD_H 320
#define LCD_PHYS_W LCD_H
#define LCD_PHYS_H LCD_W
#define LCD_DEPTH 16
+1 -160
View File
@@ -66,12 +66,7 @@ USART6: EXTMODULE_USART
#ifndef _HAL_H_
#define _HAL_H_
#define CPU_FREQ 480000000
#define PERI1_FREQUENCY 120000000
#define PERI2_FREQUENCY 120000000
#define TIMER_MULT_APB1 2
#define TIMER_MULT_APB2 2
#include "hal_settings.h"
// Keys
#define KEYS_GPIO_REG_PAGEDN GPIOI
@@ -112,69 +107,6 @@ USART6: EXTMODULE_USART
#define TRIMS_GPIO_REG_RVU GPIOB
#define TRIMS_GPIO_PIN_RVU LL_GPIO_PIN_15
// Switches
#define SWITCHES_GPIO_REG_A_H GPIOB
#define SWITCHES_GPIO_PIN_A_H LL_GPIO_PIN_0 // PB.00
#define SWITCHES_GPIO_REG_A_L GPIOC
#define SWITCHES_GPIO_PIN_A_L LL_GPIO_PIN_4 // PC.04
#define SWITCHES_A_INVERTED
#define SWITCHES_GPIO_REG_B_H GPIOD
#define SWITCHES_GPIO_PIN_B_H LL_GPIO_PIN_4 // PD.04
#define SWITCHES_GPIO_REG_B_L GPIOJ
#define SWITCHES_GPIO_PIN_B_L LL_GPIO_PIN_7 // PJ.07
#define SWITCHES_B_INVERTED
#define SWITCHES_GPIO_REG_C_H GPIOH
#define SWITCHES_GPIO_PIN_C_H LL_GPIO_PIN_3 // PH.03
#define SWITCHES_GPIO_REG_C_L GPIOJ
#define SWITCHES_GPIO_PIN_C_L LL_GPIO_PIN_0 // PJ.00
#define SWITCHES_C_INVERTED
#define SWITCHES_GPIO_REG_D_H GPIOJ
#define SWITCHES_GPIO_PIN_D_H LL_GPIO_PIN_14 // PJ.14
#define SWITCHES_GPIO_REG_D_L GPIOH
#define SWITCHES_GPIO_PIN_D_L LL_GPIO_PIN_15 // PH.15
#define SWITCHES_D_INVERTED
#define SWITCHES_GPIO_REG_E GPIOE
#define SWITCHES_GPIO_PIN_E LL_GPIO_PIN_5 // PE.05
#define SWITCHES_GPIO_REG_F GPIOA
#define SWITCHES_GPIO_PIN_F LL_GPIO_PIN_15 // PA.15
// function switches
//SW1
#define FUNCTION_SWITCH_1 SG
#define SWITCHES_GPIO_REG_G GPIOH
#define SWITCHES_GPIO_PIN_G LL_GPIO_PIN_11 // PH.11
#define SWITCHES_G_CFS_IDX 0
//SW2
#define FUNCTION_SWITCH_2 SH
#define SWITCHES_GPIO_REG_H GPIOH
#define SWITCHES_GPIO_PIN_H LL_GPIO_PIN_9 // PH.09
#define SWITCHES_H_CFS_IDX 1
//SW3
#define FUNCTION_SWITCH_3 SI
#define SWITCHES_GPIO_REG_I GPIOH
#define SWITCHES_GPIO_PIN_I LL_GPIO_PIN_10 // PH.10
#define SWITCHES_I_CFS_IDX 2
//SW4
#define FUNCTION_SWITCH_4 SJ
#define SWITCHES_GPIO_REG_J GPIOH
#define SWITCHES_GPIO_PIN_J LL_GPIO_PIN_13 // PH.123
#define SWITCHES_J_CFS_IDX 3
//SW5
#define FUNCTION_SWITCH_5 SK
#define SWITCHES_GPIO_REG_K GPIOH
#define SWITCHES_GPIO_PIN_K LL_GPIO_PIN_14 // PH.14
#define SWITCHES_K_CFS_IDX 4
//SW6
#define FUNCTION_SWITCH_6 SL
#define SWITCHES_GPIO_REG_L GPIOH
#define SWITCHES_GPIO_PIN_L LL_GPIO_PIN_12 // PH.12
#define SWITCHES_L_CFS_IDX 5
// ADC
#define ADC_GPIO_PIN_STICK_LH LL_GPIO_PIN_0 // PA.00 ADC1_INP16
#define ADC_GPIO_PIN_STICK_LV LL_GPIO_PIN_3 // PA.03 ADC12_INP15
@@ -270,19 +202,10 @@ USART6: EXTMODULE_USART
#define LCD_SPI_SCK_GPIO_PIN LL_GPIO_PIN_3
#define LCD_SPI_MISO_GPIO_PIN LL_GPIO_PIN_4
#define LCD_SPI_MOSI_GPIO_PIN LL_GPIO_PIN_5
#define LTDC_IRQ_PRIO 4
#define DMA_SCREEN_IRQ_PRIO 6
#define LCD_NRST_GPIO GPIOI
#define LCD_NRST_GPIO_PIN LL_GPIO_PIN_15
// Backlight
#define BACKLIGHT_GPIO GPIO_PIN(GPIOA, 5) // TIM2_CH1
#define BACKLIGHT_TIMER TIM2
#define BACKLIGHT_TIMER_CHANNEL LL_TIM_CHANNEL_CH1
#define BACKLIGHT_GPIO_AF GPIO_AF1
#define BACKLIGHT_TIMER_FREQ (PERI1_FREQUENCY * TIMER_MULT_APB1)
// QSPI Flash
#define QSPI_CLK_GPIO GPIO_PIN(GPIOF, 10)
#define QSPI_CLK_GPIO_AF GPIO_AF9
@@ -334,41 +257,6 @@ USART6: EXTMODULE_USART
#define I2C_B2_GPIO_AF LL_GPIO_AF_4
#define I2C_B2_CLK_RATE 400000
// Haptic
#define HAPTIC_PWM
#define HAPTIC_GPIO GPIO_PIN(GPIOE, 6) // TIM15_CH2
#define HAPTIC_GPIO_TIMER TIM15
#define HAPTIC_GPIO_AF GPIO_AF4
#define HAPTIC_TIMER_OUTPUT_ENABLE TIM_CCER_CC2E | TIM_CCER_CC2NE;
#define HAPTIC_TIMER_MODE TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2 | TIM_CCMR1_OC2PE
#define HAPTIC_TIMER_COMPARE_VALUE HAPTIC_GPIO_TIMER->CCR2
// LED Strip
#define LED_STRIP_LENGTH 7 // 6POS + 1 common (many leds in //)
#define BLING_LED_STRIP_START 6
#define BLING_LED_STRIP_LENGTH 1
#define CFS_LED_STRIP_START 0
#define CFS_LED_STRIP_LENGTH 6
#define CFS_LEDS_PER_SWITCH 1
#define LED_STRIP_GPIO GPIO_PIN(GPIOA, 10) // PA.00 / TIM1_CH3
#define LED_STRIP_GPIO_AF LL_GPIO_AF_1 // TIM1_CH3
#define LED_STRIP_TIMER TIM1
#define LED_STRIP_TIMER_FREQ (PERI1_FREQUENCY * TIMER_MULT_APB1)
#define LED_STRIP_TIMER_CHANNEL LL_TIM_CHANNEL_CH3
#define LED_STRIP_TIMER_DMA DMA1
#define LED_STRIP_TIMER_DMA_CHANNEL LL_DMAMUX1_REQ_TIM1_UP
#define LED_STRIP_TIMER_DMA_STREAM LL_DMA_STREAM_0
#define LED_STRIP_TIMER_DMA_IRQn DMA1_Stream0_IRQn
#define LED_STRIP_TIMER_DMA_IRQHandler DMA1_Stream0_IRQHandler
#define LED_STRIP_REFRESH_PERIOD 50 //ms
#define STATUS_LEDS
#define GPIO_LED_GPIO_ON gpio_set
#define GPIO_LED_GPIO_OFF gpio_clear
#define LED_RED_GPIO GPIO_PIN(GPIOA, 8)
#define LED_GREEN_GPIO GPIO_PIN(GPIOJ, 13)
#define LED_BLUE_GPIO GPIO_PIN(GPIOG, 7)
// Internal Module
#define INTMODULE_PWR_GPIO GPIO_PIN(GPIOI, 1)
#define INTMODULE_BOOTCMD_GPIO GPIO_PIN(GPIOD, 7)
@@ -449,53 +337,6 @@ USART6: EXTMODULE_USART
#define EXTI15_10_IRQ_Priority 9
#endif
//ROTARY emulation for trims as buttons
#define ROTARY_ENCODER_NAVIGATION
// Rotary Encoder
#define ROTARY_ENCODER_GPIO_A GPIOA
#define ROTARY_ENCODER_GPIO_PIN_A LL_GPIO_PIN_6
#define ROTARY_ENCODER_GPIO_B GPIOA
#define ROTARY_ENCODER_GPIO_PIN_B LL_GPIO_PIN_7
#define ROTARY_ENCODER_POSITION() (((ROTARY_ENCODER_GPIO_A->IDR >> 6) & 0x01)|((ROTARY_ENCODER_GPIO_B->IDR >> 6) & 0x02))
#define ROTARY_ENCODER_EXTI_LINE1 LL_EXTI_LINE_6
#define ROTARY_ENCODER_EXTI_LINE2 LL_EXTI_LINE_7
#if !defined(USE_EXTI9_5_IRQ)
#define USE_EXTI9_5_IRQ
#define EXTI9_5_IRQ_Priority 9
#endif
#define ROTARY_ENCODER_EXTI_PORT_A LL_SYSCFG_EXTI_PORTA
#define ROTARY_ENCODER_EXTI_PORT_B LL_SYSCFG_EXTI_PORTA
#define ROTARY_ENCODER_EXTI_SYS_LINE1 LL_SYSCFG_EXTI_LINE6
#define ROTARY_ENCODER_EXTI_SYS_LINE2 LL_SYSCFG_EXTI_LINE7
#define ROTARY_ENCODER_TIMER TIM17
#define ROTARY_ENCODER_TIMER_IRQn TIM17_IRQn
#define ROTARY_ENCODER_TIMER_IRQHandler TIM17_IRQHandler
// Millisecond timer
#define MS_TIMER TIM14
#define MS_TIMER_IRQn TIM8_TRG_COM_TIM14_IRQn
#define MS_TIMER_IRQHandler TIM8_TRG_COM_TIM14_IRQHandler
// Mixer scheduler timer
#define MIXER_SCHEDULER_TIMER TIM12
#define MIXER_SCHEDULER_TIMER_FREQ (PERI1_FREQUENCY * TIMER_MULT_APB1)
#define MIXER_SCHEDULER_TIMER_IRQn TIM8_BRK_TIM12_IRQn
#define MIXER_SCHEDULER_TIMER_IRQHandler TIM8_BRK_TIM12_IRQHandler
#define LANDSCAPE_LCD true
#define PORTRAIT_LCD false
#define LANDSCAPE_LCD_SML false
#define LANDSCAPE_LCD_STD true
#define LANDSCAPE_LCD_LRG false
#define LCD_W 480
#define LCD_H 320
#define LCD_PHYS_W LCD_W
#define LCD_PHYS_H LCD_H
#define LCD_DEPTH 16
#define LSE_DRIVE_STRENGTH RCC_LSEDRIVE_HIGH
#endif // _HAL_H_
+1 -89
View File
@@ -59,12 +59,7 @@ TIM17: ROTARY_ENCODER_TIMER
#ifndef _HAL_H_
#define _HAL_H_
#define CPU_FREQ 480000000
#define PERI1_FREQUENCY 120000000
#define PERI2_FREQUENCY 120000000
#define TIMER_MULT_APB1 2
#define TIMER_MULT_APB2 2
#include "hal_settings.h"
#define ADC_VREF_PREC2 330
@@ -179,15 +174,6 @@ TIM17: ROTARY_ENCODER_TIMER
#define I2C_B2_GPIO_AF LL_GPIO_AF_4
#define I2C_B2_CLK_RATE 400000
// Haptic
#define HAPTIC_PWM
#define HAPTIC_GPIO GPIO_PIN(GPIOE, 6) // TIM15_CH2
#define HAPTIC_GPIO_TIMER TIM15
#define HAPTIC_GPIO_AF GPIO_AF4
#define HAPTIC_TIMER_OUTPUT_ENABLE TIM_CCER_CC2E | TIM_CCER_CC2NE;
#define HAPTIC_TIMER_MODE TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2 | TIM_CCMR1_OC2PE
#define HAPTIC_TIMER_COMPARE_VALUE HAPTIC_GPIO_TIMER->CCR2
// Flysky Hall Stick
#define FLYSKY_HALL_SERIAL_USART USART3
#define FLYSKY_HALL_SERIAL_TX_GPIO GPIO_PIN(GPIOB, 10)
@@ -197,33 +183,6 @@ TIM17: ROTARY_ENCODER_TIMER
#define FLYSKY_HALL_DMA_Stream_RX LL_DMA_STREAM_2
#define FLYSKY_HALL_DMA_Channel LL_DMAMUX1_REQ_USART3_RX
// LED Strip
#define LED_STRIP_LENGTH 7 // 6POS + 1 common (many leds in //)
#define BLING_LED_STRIP_START 6
#define BLING_LED_STRIP_LENGTH 1
#define CFS_LED_STRIP_START 0
#define CFS_LED_STRIP_LENGTH 6
#define CFS_LEDS_PER_SWITCH 1
#define LED_STRIP_GPIO GPIO_PIN(GPIOA, 10) // PA.00 / TIM1_CH3
#define LED_STRIP_GPIO_AF LL_GPIO_AF_1 // TIM1_CH3
#define LED_STRIP_TIMER TIM1
#define LED_STRIP_TIMER_FREQ (PERI1_FREQUENCY * TIMER_MULT_APB1)
#define LED_STRIP_TIMER_CHANNEL LL_TIM_CHANNEL_CH3
#define LED_STRIP_TIMER_DMA DMA1
#define LED_STRIP_TIMER_DMA_CHANNEL LL_DMAMUX1_REQ_TIM1_UP
#define LED_STRIP_TIMER_DMA_STREAM LL_DMA_STREAM_0
#define LED_STRIP_TIMER_DMA_IRQn DMA1_Stream0_IRQn
#define LED_STRIP_TIMER_DMA_IRQHandler DMA1_Stream0_IRQHandler
#define LED_STRIP_REFRESH_PERIOD 50 //ms
#define STATUS_LEDS
#define GPIO_LED_GPIO_ON gpio_set
#define GPIO_LED_GPIO_OFF gpio_clear
#define LED_RED_GPIO GPIO_PIN(GPIOB, 15)
#define LED_RED2_GPIO GPIO_PIN(GPIOJ, 12)
#define LED_GREEN_GPIO GPIO_PIN(GPIOB, 13)
#define LED_BLUE_GPIO GPIO_PIN(GPIOB, 12)
// Internal Module
#define INTMODULE_PWR_GPIO GPIO_PIN(GPIOI, 1)
#define INTMODULE_BOOTCMD_GPIO GPIO_PIN(GPIOD, 7)
@@ -304,53 +263,6 @@ TIM17: ROTARY_ENCODER_TIMER
#define EXTI15_10_IRQ_Priority 9
#endif
//ROTARY emulation for trims as buttons
#define ROTARY_ENCODER_NAVIGATION
// Rotary Encoder
#define ROTARY_ENCODER_GPIO_A GPIOA
#define ROTARY_ENCODER_GPIO_PIN_A LL_GPIO_PIN_6
#define ROTARY_ENCODER_GPIO_B GPIOA
#define ROTARY_ENCODER_GPIO_PIN_B LL_GPIO_PIN_7
#define ROTARY_ENCODER_POSITION() (((ROTARY_ENCODER_GPIO_A->IDR >> 6) & 0x01)|((ROTARY_ENCODER_GPIO_B->IDR >> 6) & 0x02))
#define ROTARY_ENCODER_EXTI_LINE1 LL_EXTI_LINE_6
#define ROTARY_ENCODER_EXTI_LINE2 LL_EXTI_LINE_7
#if !defined(USE_EXTI9_5_IRQ)
#define USE_EXTI9_5_IRQ
#define EXTI9_5_IRQ_Priority 9
#endif
#define ROTARY_ENCODER_EXTI_PORT_A LL_SYSCFG_EXTI_PORTA
#define ROTARY_ENCODER_EXTI_PORT_B LL_SYSCFG_EXTI_PORTA
#define ROTARY_ENCODER_EXTI_SYS_LINE1 LL_SYSCFG_EXTI_LINE6
#define ROTARY_ENCODER_EXTI_SYS_LINE2 LL_SYSCFG_EXTI_LINE7
#define ROTARY_ENCODER_TIMER TIM17
#define ROTARY_ENCODER_TIMER_IRQn TIM17_IRQn
#define ROTARY_ENCODER_TIMER_IRQHandler TIM17_IRQHandler
// Millisecond timer
#define MS_TIMER TIM14
#define MS_TIMER_IRQn TIM8_TRG_COM_TIM14_IRQn
#define MS_TIMER_IRQHandler TIM8_TRG_COM_TIM14_IRQHandler
// Mixer scheduler timer
#define MIXER_SCHEDULER_TIMER TIM12
#define MIXER_SCHEDULER_TIMER_FREQ (PERI1_FREQUENCY * TIMER_MULT_APB1)
#define MIXER_SCHEDULER_TIMER_IRQn TIM8_BRK_TIM12_IRQn
#define MIXER_SCHEDULER_TIMER_IRQHandler TIM8_BRK_TIM12_IRQHandler
#define LANDSCAPE_LCD true
#define PORTRAIT_LCD false
#define LANDSCAPE_LCD_SML false
#define LANDSCAPE_LCD_STD true
#define LANDSCAPE_LCD_LRG false
#define LCD_W 480
#define LCD_H 320
#define LCD_PHYS_W LCD_W
#define LCD_PHYS_H LCD_H
#define LCD_DEPTH 16
#define LSE_DRIVE_STRENGTH RCC_LSEDRIVE_HIGH
#endif // _HAL_H_
-9
View File
@@ -41,7 +41,6 @@ if(PCB STREQUAL X9E)
set(BITMAPS_TARGET taranis_bitmaps)
set(FONTS_TARGET taranis_fonts)
set(LCD_DRIVER lcd_driver_spi.cpp)
set(STATUS_LEDS NO)
set(BLUETOOTH YES)
set(ROTARY_ENCODER YES)
set(MODULE_SIZE_STD YES)
@@ -64,7 +63,6 @@ elseif(PCB STREQUAL X9D+)
set(CPU_TYPE_FULL STM32F407xE)
set(PWR_BUTTON "PRESS" CACHE STRING "Pwr button type (PRESS/SWITCH)")
add_definitions(-DSOFTWARE_VOLUME -DPWR_BUTTON_${PWR_BUTTON} -DHARDWARE_POWER_MANAGEMENT_UNIT)
set(STATUS_LEDS YES)
set(PXX2 ON)
set(PXX_FREQUENCY "HIGH")
set(BLUETOOTH YES)
@@ -77,7 +75,6 @@ elseif(PCB STREQUAL X9D+)
set(FLAVOUR x9d+)
set(CPU_TYPE_FULL STM32F205xE)
set(AUX_SERIAL ON)
set(STATUS_LEDS NO)
set(MODULE_SIZE_STD YES)
endif()
elseif(PCB STREQUAL X9D)
@@ -92,7 +89,6 @@ elseif(PCB STREQUAL X9D)
set(FONTS_TARGET taranis_fonts)
set(LCD_DRIVER lcd_driver_aspi.cpp)
set(AUX_SERIAL ON)
set(STATUS_LEDS NO)
add_definitions(-DMANUFACTURER_FRSKY)
set(MODULE_SIZE_STD YES)
elseif(PCB STREQUAL X7)
@@ -103,7 +99,6 @@ elseif(PCB STREQUAL X7)
set(BITMAPS_TARGET 9x_bitmaps)
set(FONTS_TARGET 9x_fonts_1bit)
set(LCD_DRIVER lcd_driver_spi.cpp)
set(STATUS_LEDS YES)
add_definitions(-DPCBX7 -DSOFTWARE_VOLUME)
add_definitions(-DPWR_BUTTON_${PWR_BUTTON})
if(PCBREV STREQUAL T12)
@@ -429,7 +424,6 @@ elseif(PCB STREQUAL X9LITE)
set(BITMAPS_TARGET 9x_bitmaps)
set(FONTS_TARGET 9x_fonts_1bit)
set(LCD_DRIVER lcd_driver_spi.cpp)
set(STATUS_LEDS YES)
set(ROTARY_ENCODER YES)
add_definitions(-DMANUFACTURER_FRSKY)
elseif(PCB STREQUAL X9LITES)
@@ -449,7 +443,6 @@ elseif(PCB STREQUAL X9LITES)
set(BITMAPS_TARGET 9x_bitmaps)
set(FONTS_TARGET 9x_fonts_1bit)
set(LCD_DRIVER lcd_driver_spi.cpp)
set(STATUS_LEDS YES)
set(BLUETOOTH YES)
set(ROTARY_ENCODER YES)
add_definitions(-DMANUFACTURER_FRSKY)
@@ -470,7 +463,6 @@ elseif(PCB STREQUAL XLITE)
set(BITMAPS_TARGET 9x_bitmaps)
set(FONTS_TARGET 9x_fonts_1bit)
set(LCD_DRIVER lcd_driver_spi.cpp)
set(STATUS_LEDS YES)
set(BLUETOOTH YES)
add_definitions(-DMANUFACTURER_FRSKY)
elseif(PCB STREQUAL XLITES)
@@ -489,7 +481,6 @@ elseif(PCB STREQUAL XLITES)
set(BITMAPS_TARGET 9x_bitmaps)
set(FONTS_TARGET 9x_fonts_1bit)
set(LCD_DRIVER lcd_driver_spi.cpp)
set(STATUS_LEDS YES)
set(PXX2 ON)
set(BLUETOOTH YES)
set(IMU YES)
+3 -3
View File
@@ -163,7 +163,7 @@ void boardInit()
pwrInit();
boardInitModulePorts();
#if defined(STATUS_LEDS)
#if STATUS_LEDS
ledInit();
#if !defined(POWER_LED_BLUE)
ledBlue();
@@ -201,7 +201,7 @@ void boardInit()
if (getBatteryVoltage() >= 780) setFSLedON(3);
if (getBatteryVoltage() >= 820) setFSLedON(4);
if (getBatteryVoltage() >= 842) setFSLedON(5);
#elif defined(STATUS_LEDS)
#elif STATUS_LEDS
// Use Status LED to indicate battery charge level instead
if (getBatteryVoltage() <= 660) ledRed(); // low discharge
else if (getBatteryVoltage() <= 842) ledBlue(); // charging
@@ -290,7 +290,7 @@ void boardOff()
rgbLedClearAll();
#endif
#if defined(STATUS_LEDS) && !defined(BOOT)
#if STATUS_LEDS && !defined(BOOT)
ledOff();
#endif
+5 -5
View File
@@ -181,7 +181,7 @@ void pwrResetHandler();
#define pwrForcePressed() false
// Backlight driver
#if defined(OLED_SCREEN)
#if OLED_SCREEN
#define BACKLIGHT_DISABLE() lcdSetRefVolt(0)
#define BACKLIGHT_FORCED_ON 255
#else
@@ -199,7 +199,7 @@ bool isBacklightEnabled();
void backlightEnable(uint8_t level, uint8_t color);
#define BACKLIGHT_ENABLE() \
backlightEnable(currentBacklightBright, g_eeGeneral.backlightColor)
#elif defined(OLED_SCREEN)
#elif OLED_SCREEN
#define BACKLIGHT_ENABLE() lcdSetRefVolt(currentBacklightBright)
#else
void backlightEnable(uint8_t level);
@@ -255,7 +255,7 @@ void ledBlue();
#define LCD_CONTRAST_DEFAULT 25
#else
#define IS_LCD_RESET_NEEDED() true
#if defined(OLED_SCREEN)
#if OLED_SCREEN
#define LCD_CONTRAST_MIN 2
#define LCD_CONTRAST_MAX 254
#else
@@ -269,7 +269,7 @@ void ledBlue();
#define LCD_BRIGHTNESS_DEFAULT 30
#endif
#if defined(OLED_SCREEN)
#if OLED_SCREEN
#define LCD_CONTRAST_DEFAULT 254 // full brightness
#elif defined(RADIO_TX12) || defined(RADIO_TX12MK2) || defined(RADIO_BOXER) || defined(RADIO_MT12)
#define LCD_CONTRAST_DEFAULT 20
@@ -278,7 +278,7 @@ void ledBlue();
#else
#define LCD_CONTRAST_DEFAULT 15
#endif
#if defined(OLED_SCREEN)
#if OLED_SCREEN
// add offset 2px because driver (SH1106) of the 1.3 OLED is for a 132 display
#define LCD_W_OFFSET 0x02
#endif
+6 -242
View File
@@ -21,25 +21,7 @@
#pragma once
#if defined(STM32F413xx)
#define CPU_FREQ 100000000
#define PERI1_FREQUENCY 50000000
#define PERI2_FREQUENCY 100000000
#define TIMER_MULT_APB1 1
#define TIMER_MULT_APB2 1
#elif defined(STM32F4)
#define CPU_FREQ 168000000
#define PERI1_FREQUENCY 42000000
#define PERI2_FREQUENCY 84000000
#define TIMER_MULT_APB1 2
#define TIMER_MULT_APB2 2
#else
#define CPU_FREQ 120000000
#define PERI1_FREQUENCY 30000000
#define PERI2_FREQUENCY 60000000
#define TIMER_MULT_APB1 2
#define TIMER_MULT_APB2 2
#endif
#include "hal_settings.h"
#define TELEMETRY_EXTI_PRIO 0 // required for soft serial
@@ -58,7 +40,7 @@
#define ROTARY_ENCODER_GPIO GPIOD
#define ROTARY_ENCODER_GPIO_PIN_A LL_GPIO_PIN_12 // PD.12
#define ROTARY_ENCODER_GPIO_PIN_B LL_GPIO_PIN_13 // PD.13
#define ROTARY_ENCODER_POSITION() (ROTARY_ENCODER_GPIO->IDR >> 12) & 0x03
#define ROTARY_ENCODER_POSITION (ROTARY_ENCODER_GPIO->IDR >> 12) & 0x03
#define ROTARY_ENCODER_EXTI_LINE1 LL_EXTI_LINE_12
#define ROTARY_ENCODER_EXTI_LINE2 LL_EXTI_LINE_13
#define ROTARY_ENCODER_EXTI_PORT LL_SYSCFG_EXTI_PORTD
@@ -74,7 +56,7 @@
#define ROTARY_ENCODER_GPIO GPIOE
#define ROTARY_ENCODER_GPIO_PIN_A LL_GPIO_PIN_10 // PE.10
#define ROTARY_ENCODER_GPIO_PIN_B LL_GPIO_PIN_11 // PE.11
#define ROTARY_ENCODER_POSITION() (((ROTARY_ENCODER_GPIO->IDR >> 9) & 0x02) + ((ROTARY_ENCODER_GPIO->IDR >> 11) & 0x01))
#define ROTARY_ENCODER_POSITION (((ROTARY_ENCODER_GPIO->IDR >> 9) & 0x02) + ((ROTARY_ENCODER_GPIO->IDR >> 11) & 0x01))
#define ROTARY_ENCODER_EXTI_LINE1 LL_EXTI_LINE_10
#define ROTARY_ENCODER_EXTI_LINE2 LL_EXTI_LINE_11
#define ROTARY_ENCODER_EXTI_PORT LL_SYSCFG_EXTI_PORTE
@@ -90,7 +72,7 @@
#define ROTARY_ENCODER_GPIO GPIOE
#define ROTARY_ENCODER_GPIO_PIN_A LL_GPIO_PIN_9 // PE.09
#define ROTARY_ENCODER_GPIO_PIN_B LL_GPIO_PIN_11 // PE.11
#define ROTARY_ENCODER_POSITION() (((ROTARY_ENCODER_GPIO->IDR >> 10) & 0x02) + ((ROTARY_ENCODER_GPIO->IDR >> 9) & 0x01))
#define ROTARY_ENCODER_POSITION (((ROTARY_ENCODER_GPIO->IDR >> 10) & 0x02) + ((ROTARY_ENCODER_GPIO->IDR >> 9) & 0x01))
#define ROTARY_ENCODER_EXTI_LINE1 LL_EXTI_LINE_9
#define ROTARY_ENCODER_EXTI_LINE2 LL_EXTI_LINE_11
// ROTARY_ENCODER_EXTI_LINE1 IRQ
@@ -111,7 +93,7 @@
#define ROTARY_ENCODER_GPIO GPIOE
#define ROTARY_ENCODER_GPIO_PIN_A LL_GPIO_PIN_10 // PE.10
#define ROTARY_ENCODER_GPIO_PIN_B LL_GPIO_PIN_12 // PE.12
#define ROTARY_ENCODER_POSITION() (((ROTARY_ENCODER_GPIO->IDR >> 12) & 0x01) + ((ROTARY_ENCODER_GPIO->IDR >> 9) & 0x02))
#define ROTARY_ENCODER_POSITION (((ROTARY_ENCODER_GPIO->IDR >> 12) & 0x01) + ((ROTARY_ENCODER_GPIO->IDR >> 9) & 0x02))
#define ROTARY_ENCODER_EXTI_LINE1 LL_EXTI_LINE_10
#define ROTARY_ENCODER_EXTI_LINE2 LL_EXTI_LINE_12
#define ROTARY_ENCODER_EXTI_PORT LL_SYSCFG_EXTI_PORTE
@@ -127,7 +109,7 @@
#define ROTARY_ENCODER_GPIO GPIOE
#define ROTARY_ENCODER_GPIO_PIN_A LL_GPIO_PIN_9 // PE.9
#define ROTARY_ENCODER_GPIO_PIN_B LL_GPIO_PIN_10 // PE.10
#define ROTARY_ENCODER_POSITION() ((ROTARY_ENCODER_GPIO->IDR >> 9) & 0x03)
#define ROTARY_ENCODER_POSITION ((ROTARY_ENCODER_GPIO->IDR >> 9) & 0x03)
#define ROTARY_ENCODER_EXTI_LINE1 LL_EXTI_LINE_9
#define ROTARY_ENCODER_EXTI_LINE2 LL_EXTI_LINE_10
#define ROTARY_ENCODER_EXTI_PORT LL_SYSCFG_EXTI_PORTE
@@ -246,158 +228,6 @@
#define PWR_ON_GPIO GPIO_PIN(GPIOD, 0) // PD.00
#endif
#if defined(RADIO_X9DP2019)
#define STATUS_LEDS
#define GPIO_LED_GPIO_ON gpio_clear
#define GPIO_LED_GPIO_OFF gpio_set
#define LED_RED_GPIO GPIO_PIN(GPIOA, 13)
#elif defined(PCBXLITES)
#define STATUS_LEDS
#define GPIO_LED_GPIO_ON gpio_clear
#define GPIO_LED_GPIO_OFF gpio_set
#define LED_RED_GPIO GPIO_PIN(GPIOE, 4) // PE.04
#define LED_BLUE_GPIO GPIO_PIN(GPIOE, 6) // PE.06
#elif defined(PCBXLITE)
#define STATUS_LEDS
#define GPIO_LED_GPIO_ON gpio_clear
#define GPIO_LED_GPIO_OFF gpio_set
#define LED_GREEN_GPIO GPIO_PIN(GPIOE, 5) // PE.05
#define LED_RED_GPIO GPIO_PIN(GPIOE, 4) // PE.04
#define LED_BLUE_GPIO GPIO_PIN(GPIOE, 6) // PE.06
#elif defined(PCBX7ACCESS)
#define STATUS_LEDS
#define GPIO_LED_GPIO_ON gpio_set
#define GPIO_LED_GPIO_OFF gpio_clear
#define LED_BLUE_GPIO GPIO_PIN(GPIOB, 1) // PB.01
#define LED_RED_GPIO GPIO_PIN(GPIOC, 4) // PC.04
#elif defined(RADIO_T8)
#define STATUS_LEDS
#define GPIO_LED_GPIO_ON gpio_set
#define GPIO_LED_GPIO_OFF gpio_clear
#define LED_GREEN_GPIO GPIO_PIN(GPIOB, 1) // PB.01
#define LED_RED_GPIO GPIO_PIN(GPIOC, 4) // PC.04
#define LED_BLUE_GPIO GPIO_PIN(GPIOC, 5) // PC.05
#elif defined(RADIO_COMMANDO8)
#define STATUS_LEDS
#define GPIO_LED_GPIO_ON gpio_set
#define GPIO_LED_GPIO_OFF gpio_clear
#define LED_GREEN_GPIO GPIO_PIN(GPIOC, 0) // PC.00
#define LED_RED_GPIO GPIO_PIN(GPIOC, 2) // PC.02
#define LED_BLUE_GPIO GPIO_PIN(GPIOC, 1) // PC.01
#elif defined(RADIO_ZORRO) || defined(RADIO_POCKET)
#define STATUS_LEDS
#define GPIO_LED_GPIO_ON gpio_set
#define GPIO_LED_GPIO_OFF gpio_clear
#define LED_GREEN_GPIO GPIO_PIN(GPIOE, 2) // PE.02
#define LED_RED_GPIO GPIO_PIN(GPIOE, 13) // PE.13
#define LED_BLUE_GPIO GPIO_PIN(GPIOA, 7) // PA.07
#elif defined(RADIO_T14) || defined(RADIO_T12MAX) || defined(RADIO_TPROS)
#define STATUS_LEDS
#define GPIO_LED_GPIO_ON gpio_set
#define GPIO_LED_GPIO_OFF gpio_clear
#define LED_RED_GPIO GPIO_PIN(GPIOE, 2) // PE.02
#define LED_BLUE_GPIO GPIO_PIN(GPIOE, 13) // PE.13
#define LED_GREEN_GPIO GPIO_PIN(GPIOA, 7) // PA.07
#elif defined(RADIO_TLITE) || defined(RADIO_TPRO) || defined(RADIO_TPROV2) || defined(RADIO_TX12)
#define STATUS_LEDS
#define GPIO_LED_GPIO_ON gpio_set
#define GPIO_LED_GPIO_OFF gpio_clear
#define LED_GREEN_GPIO GPIO_PIN(GPIOB, 1) // PB.01
#define LED_RED_GPIO GPIO_PIN(GPIOC, 5) // PC.05
#define LED_BLUE_GPIO GPIO_PIN(GPIOC, 4) // PC.04
#elif defined(RADIO_FAMILY_T20) || defined(RADIO_BUMBLEBEE)
#define STATUS_LEDS
#define GPIO_LED_GPIO_ON gpio_set
#define GPIO_LED_GPIO_OFF gpio_clear
#define LED_GREEN_GPIO GPIO_PIN(GPIOG, 1) // PG.01
#define LED_RED_GPIO GPIO_PIN(GPIOC, 5) // PC.05
#define LED_BLUE_GPIO GPIO_PIN(GPIOC, 4) // PC.04
#elif defined(RADIO_TX12MK2) || defined(RADIO_BOXER) || defined(RADIO_MT12) || defined(RADIO_GX12)
#define STATUS_LEDS
#define GPIO_LED_GPIO_ON gpio_set
#define GPIO_LED_GPIO_OFF gpio_clear
#define LED_GREEN_GPIO GPIO_PIN(GPIOA, 7) // PA.07
#define LED_RED_GPIO GPIO_PIN(GPIOE, 13) // PE.13
#define LED_BLUE_GPIO GPIO_PIN(GPIOE, 2) // PE.02
#elif defined(RADIO_V14) || defined(RADIO_V12)
#define STATUS_LEDS
#define GPIO_LED_GPIO_ON gpio_set
#define GPIO_LED_GPIO_OFF gpio_clear
#define LED_GREEN_GPIO GPIO_PIN(GPIOE, 14) // PE.14
#define LED_RED_GPIO GPIO_PIN(GPIOE, 13) // PE.13
#define LED_BLUE_GPIO GPIO_PIN(GPIOE, 2) // PE.02
#elif defined(PCBX7)
#define STATUS_LEDS
#define GPIO_LED_GPIO_ON gpio_set
#define GPIO_LED_GPIO_OFF gpio_clear
#define LED_GREEN_GPIO GPIO_PIN(GPIOC, 4) // PC.04
#define LED_RED_GPIO GPIO_PIN(GPIOC, 5) // PC.05
#define LED_BLUE_GPIO GPIO_PIN(GPIOB, 1) // PB.01
#elif defined(PCBX9LITES)
#define STATUS_LEDS
#define GPIO_LED_GPIO_ON gpio_set
#define GPIO_LED_GPIO_OFF gpio_clear
#define LED_RED_GPIO GPIO_PIN(GPIOE, 5) // PE.05
#define LED_BLUE_GPIO GPIO_PIN(GPIOE, 6) // PE.06
#elif defined(PCBX9LITE)
#define STATUS_LEDS
#define GPIO_LED_GPIO_ON gpio_set
#define GPIO_LED_GPIO_OFF gpio_clear
#define LED_GREEN_GPIO GPIO_PIN(GPIOE, 4) // PE.04
#define LED_RED_GPIO GPIO_PIN(GPIOE, 5) // PE.05
#define LED_BLUE_GPIO GPIO_PIN(GPIOE, 6) // PE.06
#endif
// LED Strip
#if defined(RGBLEDS)
#if defined(RADIO_GX12)
#define LED_STRIP_LENGTH 8
#define BLING_LED_STRIP_START 0
#define BLING_LED_STRIP_LENGTH 0
#define CFS_LED_STRIP_START 0
#define CFS_LED_STRIP_LENGTH 8
#define CFS_LEDS_PER_SWITCH 1
#else
#define LED_STRIP_LENGTH 7
#define BLING_LED_STRIP_START 0
#define BLING_LED_STRIP_LENGTH 7
#endif
#define LED_STRIP_GPIO GPIO_PIN(GPIOA, 8) // PA.08 / TIM1_CH1
#define LED_STRIP_GPIO_AF LL_GPIO_AF_1 // TIM1 / TIM2
#define LED_STRIP_TIMER TIM1
#define LED_STRIP_TIMER_FREQ (PERI2_FREQUENCY * TIMER_MULT_APB2)
#define LED_STRIP_TIMER_CHANNEL LL_TIM_CHANNEL_CH1
#define LED_STRIP_TIMER_DMA DMA2
#define LED_STRIP_TIMER_DMA_CHANNEL LL_DMA_CHANNEL_6
#define LED_STRIP_TIMER_DMA_STREAM LL_DMA_STREAM_5
#define LED_STRIP_TIMER_DMA_IRQn DMA2_Stream5_IRQn
#define LED_STRIP_TIMER_DMA_IRQHandler DMA2_Stream5_IRQHandler
#define LED_STRIP_REFRESH_PERIOD 50 //ms
#elif defined(RADIO_T14) || defined(RADIO_V14) || defined(RADIO_V12)
#if defined(RADIO_V14)
#define LED_STRIP_LENGTH 38
#define BLING_LED_STRIP_START 6
#define BLING_LED_STRIP_LENGTH 32
#elif defined(RADIO_V12)
#define LED_STRIP_LENGTH 6 // 6POS switches only?
#else
#define LED_STRIP_LENGTH 1
#define BLING_LED_STRIP_START 0
#define BLING_LED_STRIP_LENGTH 1
#endif
#define LED_STRIP_GPIO GPIO_PIN(GPIOA, 10) // PA.10 / TIM1_CH3
#define LED_STRIP_GPIO_AF LL_GPIO_AF_1
#define LED_STRIP_TIMER TIM1
#define LED_STRIP_TIMER_FREQ (PERI2_FREQUENCY * TIMER_MULT_APB2)
#define LED_STRIP_TIMER_CHANNEL LL_TIM_CHANNEL_CH3
#define LED_STRIP_TIMER_DMA DMA2
#define LED_STRIP_TIMER_DMA_CHANNEL LL_DMA_CHANNEL_6
#define LED_STRIP_TIMER_DMA_STREAM LL_DMA_STREAM_5
#define LED_STRIP_TIMER_DMA_IRQn DMA2_Stream5_IRQn
#define LED_STRIP_TIMER_DMA_IRQHandler DMA2_Stream5_IRQHandler
#define LED_STRIP_REFRESH_PERIOD 50 //ms
#endif
#if defined(FUNCTION_SWITCHES)
#if defined(RADIO_BUMBLEBEE)
#define GPIO_FSLED_GPIO_ON GPIO_SetBits
@@ -950,13 +780,6 @@
#endif
// LCD driver
#if defined(RADIO_TX12) || defined(RADIO_TX12MK2) || defined(RADIO_BOXER) || defined(RADIO_ZORRO) || defined(RADIO_POCKET) || defined(RADIO_FAMILY_JUMPER_T12) || defined(RADIO_T8) || defined(RADIO_COMMANDO8) || defined(RADIO_TPRO) || defined(RADIO_TPROV2) || defined(RADIO_TPROS) || defined(RADIO_FAMILY_T20) || defined(RADIO_MT12) || defined(RADIO_T12MAX) || defined(RADIO_V12) || defined(RADIO_BUMBLEBEE)
#define LCD_VERTICAL_INVERT
#endif
#if defined(RADIO_LR3PRO) || defined(RADIO_TPROV2) || defined(RADIO_TPROS) || defined(RADIO_FAMILY_T20) || defined(RADIO_T14) || defined(RADIO_BUMBLEBEE) || defined(RADIO_GX12) || defined(RADIO_V14)
#define LCD_HORIZONTAL_INVERT
#define OLED_SCREEN
#endif
#if defined(RADIO_T14) || defined(RADIO_GX12) || defined(RADIO_V14)
#define SSD1309_LCD
#endif
@@ -1152,39 +975,6 @@
#endif
#endif
// Haptic
#if defined(PCBXLITE) || defined(PCBX9LITE) || defined(RADIO_ZORRO) || defined(RADIO_POCKET) || defined(RADIO_TX12MK2)|| defined(RADIO_BOXER) || defined(RADIO_MT12) || defined(RADIO_T20V2) || defined(RADIO_T14) || defined(RADIO_T12MAX) || defined(RADIO_TPROS) || defined(RADIO_V14) || defined(RADIO_V12) || defined(RADIO_BUMBLEBEE) || defined(RADIO_GX12)
#define HAPTIC_PWM
#define HAPTIC_GPIO GPIO_PIN(GPIOB, 3) // PB.03
#define HAPTIC_GPIO_AF GPIO_AF1
#define HAPTIC_TIMER TIM2 // Timer 2 Channel1
#define HAPTIC_TIMER_FREQ (PERI1_FREQUENCY * TIMER_MULT_APB1)
#define HAPTIC_COUNTER_REGISTER HAPTIC_TIMER->CCR2
#define HAPTIC_CCMR1 TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2
#define HAPTIC_CCER TIM_CCER_CC2E
#define BACKLIGHT_BDTR TIM_BDTR_MOE
#elif defined(RADIO_X9DP2019) || defined(RADIO_X7ACCESS)
#define HAPTIC_PWM
#define HAPTIC_GPIO GPIO_PIN(GPIOA, 10) // PA.10
#define HAPTIC_GPIO_AF GPIO_AF1
#define HAPTIC_TIMER TIM1 // Timer1 Channel3
#define HAPTIC_TIMER_FREQ (PERI2_FREQUENCY * TIMER_MULT_APB2)
#define HAPTIC_COUNTER_REGISTER HAPTIC_TIMER->CCR3
#define HAPTIC_CCMR2 TIM_CCMR2_OC3M_1 | TIM_CCMR2_OC3M_2
#define HAPTIC_CCER TIM_CCER_CC3E
#elif defined(PCBX9E) || defined(PCBX9DP) || defined(PCBX7)
#define HAPTIC_PWM
#define HAPTIC_GPIO GPIO_PIN(GPIOB, 8) // PB.08
#define HAPTIC_GPIO_AF GPIO_AF3
#define HAPTIC_TIMER TIM10 // Timer 10 Channel1
#define HAPTIC_TIMER_FREQ (PERI2_FREQUENCY * TIMER_MULT_APB2)
#define HAPTIC_COUNTER_REGISTER HAPTIC_TIMER->CCR1
#define HAPTIC_CCMR1 TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2
#define HAPTIC_CCER TIM_CCER_CC1E
#else
#define HAPTIC_GPIO GPIO_PIN(GPIOC, 12) // PC.12
#endif
#if defined(RADIO_BOXER) || defined(RADIO_FAMILY_T20) || defined(RADIO_X9DP2019) || defined (RADIO_V14) || defined(RADIO_GX12)
// Flysky Hall Stick
#define FLYSKY_HALL_SERIAL_USART UART4
@@ -1256,29 +1046,3 @@
#define STORAGE_BLUETOOTH
#endif
#endif
// Millisecond timer
#define MS_TIMER TIM14
#define MS_TIMER_IRQn TIM8_TRG_COM_TIM14_IRQn
#define MS_TIMER_IRQHandler TIM8_TRG_COM_TIM14_IRQHandler
// Mixer scheduler timer
#define MIXER_SCHEDULER_TIMER TIM12
#define MIXER_SCHEDULER_TIMER_FREQ (PERI1_FREQUENCY * TIMER_MULT_APB1)
#define MIXER_SCHEDULER_TIMER_IRQn TIM8_BRK_TIM12_IRQn
#define MIXER_SCHEDULER_TIMER_IRQHandler TIM8_BRK_TIM12_IRQHandler
// LCD driver
#if defined(PCBX9D) || defined(PCBX9DP) || defined(PCBX9E)
#define LCD_W 212
#define LCD_H 64
#define LCD_DEPTH 4
#else
#define LCD_W 128
#define LCD_H 64
#define LCD_DEPTH 1
#endif
#if defined(PCBX9DP) || defined(PCBX9E)
#define HAS_BACKLIGHT_COLOR
#endif
+4 -4
View File
@@ -35,7 +35,7 @@
#include "edgetx.h"
#endif
#if defined(OLED_SCREEN)
#if OLED_SCREEN
#define LCD_CONTRAST_OFFSET 0
#elif defined(RADIO_FAMILY_JUMPER_T12) || defined(MANUFACTURER_RADIOMASTER) || defined(RADIO_COMMANDO8) || defined(RADIO_TPRO) || defined(RADIO_T12MAX) || defined(RADIO_V12) || defined(RADIO_V14)
#define LCD_CONTRAST_OFFSET -10
@@ -158,7 +158,7 @@ void lcdStart()
gpio_set(OLED_VCC_CS);
#endif
#else
#if defined(LCD_VERTICAL_INVERT)
#if LCD_VERTICAL_INVERT
// T12 and TX12 have the screen inverted.
#if defined(RADIO_V12)
lcdWriteCommand(0xe2); // (14) Soft reset
@@ -174,7 +174,7 @@ void lcdStart()
lcdWriteCommand(0xa6); // Set display mode
#else
lcdWriteCommand(0xe2); // (14) Soft reset
#if defined(LCD_HORIZONTAL_INVERT)
#if LCD_HORIZONTAL_INVERT
lcdWriteCommand(0xa1); // Set seg
#else
lcdWriteCommand(0xa0); // Set seg
@@ -295,7 +295,7 @@ void lcdRefresh(bool wait)
#else
lcdWriteCommand(0x10); // Column addr 0
lcdWriteCommand(0xB0 | y); // Page addr y
#if !defined(LCD_VERTICAL_INVERT)
#if !LCD_VERTICAL_INVERT
lcdWriteCommand(0x04);
#endif
#endif
+1 -116
View File
@@ -65,12 +65,7 @@ SAI1_Block_A: PDM_CLOCK (1 MHz bit-clock output on SAI1_CK1 / PE5, !FLYSKY_GIMBA
#ifndef _HAL_H_
#define _HAL_H_
#define CPU_FREQ 480000000
#define PERI1_FREQUENCY 120000000
#define PERI2_FREQUENCY 120000000
#define TIMER_MULT_APB1 2
#define TIMER_MULT_APB2 2
#include "hal_settings.h"
// Expanders
#define IO_INT_GPIO GPIO_PIN(GPIOD, 3)
@@ -136,22 +131,12 @@ SAI1_Block_A: PDM_CLOCK (1 MHz bit-clock output on SAI1_CK1 / PE5, !FLYSKY_GIMBA
#define LCD_SPI_MOSI_GPIO GPIOI
#define LCD_SPI_MOSI_GPIO_PIN LL_GPIO_PIN_9
#define LTDC_IRQ_PRIO 4
#define DMA_SCREEN_IRQ_PRIO 6
#define LCD_RESET_GPIO GPIOJ
#define LCD_RESET_GPIO_PIN LL_GPIO_PIN_12
#define LCD_TE_GPIO GPIOI
#define LCD_TE_GPIO_PIN LL_GPIO_PIN_4
// Backlight
#define BACKLIGHT_GPIO GPIO_PIN(GPIOA, 10) // TIM1_CH3
#define BACKLIGHT_TIMER TIM1
#define BACKLIGHT_TIMER_CHANNEL LL_TIM_CHANNEL_CH3
#define BACKLIGHT_GPIO_AF GPIO_AF1
#define BACKLIGHT_TIMER_FREQ (PERI1_FREQUENCY * TIMER_MULT_APB1)
// QSPI Flash
#define QSPI_CLK_GPIO GPIO_PIN(GPIOF, 10)
#define QSPI_CLK_GPIO_AF GPIO_AF9
@@ -231,41 +216,6 @@ SAI1_Block_A: PDM_CLOCK (1 MHz bit-clock output on SAI1_CK1 / PE5, !FLYSKY_GIMBA
#define I2C_B1_GPIO_AF LL_GPIO_AF_4
#define I2C_B1_CLK_RATE 400000
// Haptic: TIM3_CH2
#define HAPTIC_PWM
#define HAPTIC_GPIO GPIO_PIN(GPIOC, 7)
#define HAPTIC_GPIO_TIMER TIM3
#define HAPTIC_GPIO_AF GPIO_AF2
#define HAPTIC_TIMER_OUTPUT_ENABLE TIM_CCER_CC2E | TIM_CCER_CC2NE;
#define HAPTIC_TIMER_MODE TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2 | TIM_CCMR1_OC2PE
#define HAPTIC_TIMER_COMPARE_VALUE HAPTIC_GPIO_TIMER->CCR2
// LED Strip
#define LED_STRIP_LENGTH 26 // 6POS + 2 rings of 10
#define BLING_LED_STRIP_START 6
#define BLING_LED_STRIP_LENGTH 20
#define CFS_LED_STRIP_START 0
#define CFS_LED_STRIP_LENGTH 6
#define CFS_LEDS_PER_SWITCH 1
#define LED_STRIP_GPIO GPIO_PIN(GPIOA, 0) // PA.00 / TIM2_CH1
#define LED_STRIP_GPIO_AF LL_GPIO_AF_1 // TIM1/2/16/17
#define LED_STRIP_TIMER TIM2
#define LED_STRIP_TIMER_FREQ (PERI1_FREQUENCY * TIMER_MULT_APB1)
#define LED_STRIP_TIMER_CHANNEL LL_TIM_CHANNEL_CH1
#define LED_STRIP_TIMER_DMA DMA1
#define LED_STRIP_TIMER_DMA_CHANNEL LL_DMAMUX1_REQ_TIM2_UP
#define LED_STRIP_TIMER_DMA_STREAM LL_DMA_STREAM_0
#define LED_STRIP_TIMER_DMA_IRQn DMA1_Stream0_IRQn
#define LED_STRIP_TIMER_DMA_IRQHandler DMA1_Stream0_IRQHandler
#define LED_STRIP_REFRESH_PERIOD 50 //ms
#define STATUS_LEDS
#define GPIO_LED_GPIO_ON gpio_set
#define GPIO_LED_GPIO_OFF gpio_clear
#define LED_RED_GPIO GPIO_PIN(GPIOI, 8) // PI.08
#define LED_GREEN_GPIO GPIO_PIN(GPIOI, 11) // PI.11
#define LED_BLUE_GPIO GPIO_PIN(GPIOI, 10) // PI.10
// Internal Module
#define INTMODULE_PWR_GPIO GPIO_PIN(GPIOB, 13) // PB.13
#define INTMODULE_BOOTCMD_GPIO GPIO_PIN(GPIOH, 9) // PH.09
@@ -399,71 +349,6 @@ SAI1_Block_A: PDM_CLOCK (1 MHz bit-clock output on SAI1_CK1 / PE5, !FLYSKY_GIMBA
#define EXTI2_IRQ_Priority 9
#endif
// IMU
#define IMU_I2C_BUS I2C_Bus_1
#define IMU_INT_GPIO GPIO_PIN(GPIOG, 13) // PG.13
#define IMU_INVERT_X // X axis mounted reversed (default, user-overridable)
#define IMU_INVERT_Y // Y axis mounted reversed (default, user-overridable)
// IMU_INT_EXTI IRQ
#if !defined(USE_EXTI15_10_IRQ)
#define USE_EXTI15_10_IRQ
#define EXTI15_10_IRQ_Priority 6
#endif
//ROTARY emulation for trims as buttons
#define ROTARY_ENCODER_NAVIGATION
// Rotary Encoder
#define ROTARY_ENCODER_INVERTED
#define ROTARY_ENCODER_GPIO_A GPIOI
#define ROTARY_ENCODER_GPIO_PIN_A LL_GPIO_PIN_7
#define ROTARY_ENCODER_GPIO_B GPIOJ
#define ROTARY_ENCODER_GPIO_PIN_B LL_GPIO_PIN_8
#define ROTARY_ENCODER_POSITION() (((ROTARY_ENCODER_GPIO_A->IDR >> 7) & 0x01)|((ROTARY_ENCODER_GPIO_B->IDR >> 7) & 0x02))
#define ROTARY_ENCODER_EXTI_LINE1 LL_EXTI_LINE_7
#define ROTARY_ENCODER_EXTI_LINE2 LL_EXTI_LINE_8
#if !defined(USE_EXTI7_IRQ)
#define USE_EXTI7_IRQ
#define EXTI7_IRQ_Priority 5
#endif
#if !defined(USE_EXTI8_IRQ)
#define USE_EXTI8_IRQ
#define EXTI8_IRQ_Priority 5
#endif
#define ROTARY_ENCODER_EXTI_PORT_A LL_SYSCFG_EXTI_PORTI
#define ROTARY_ENCODER_EXTI_PORT_B LL_SYSCFG_EXTI_PORTJ
#define ROTARY_ENCODER_EXTI_SYS_LINE1 LL_SYSCFG_EXTI_LINE7
#define ROTARY_ENCODER_EXTI_SYS_LINE2 LL_SYSCFG_EXTI_LINE8
#define ROTARY_ENCODER_TIMER TIM17
#define ROTARY_ENCODER_TIMER_IRQn TIM17_IRQn
#define ROTARY_ENCODER_TIMER_IRQHandler TIM17_IRQHandler
// Millisecond timer
#define MS_TIMER TIM14
#define MS_TIMER_IRQn TIM8_TRG_COM_TIM14_IRQn
#define MS_TIMER_IRQHandler TIM8_TRG_COM_TIM14_IRQHandler
// Mixer scheduler timer
#define MIXER_SCHEDULER_TIMER TIM12
#define MIXER_SCHEDULER_TIMER_FREQ (PERI1_FREQUENCY * TIMER_MULT_APB1)
#define MIXER_SCHEDULER_TIMER_IRQn TIM8_BRK_TIM12_IRQn
#define MIXER_SCHEDULER_TIMER_IRQHandler TIM8_BRK_TIM12_IRQHandler
#define LANDSCAPE_LCD true
#define PORTRAIT_LCD false
#define LANDSCAPE_LCD_SML false
#define LANDSCAPE_LCD_STD true
#define LANDSCAPE_LCD_LRG false
#define LCD_W 480
#define LCD_H 320
#define LCD_PHYS_W LCD_H
#define LCD_PHYS_H LCD_W
#define LCD_DEPTH 16
#define LSE_DRIVE_STRENGTH RCC_LSEDRIVE_HIGH
#endif // _HAL_H_
+1 -191
View File
@@ -72,12 +72,7 @@ USART6: INTMODULE_USART
#ifndef _HAL_H_
#define _HAL_H_
#define CPU_FREQ 480000000
#define PERI1_FREQUENCY 120000000
#define PERI2_FREQUENCY 120000000
#define TIMER_MULT_APB1 2
#define TIMER_MULT_APB2 2
#include "hal_settings.h"
// Keys
#define KEYS_GPIO_REG_PAGEDN GPIOA
@@ -132,91 +127,6 @@ USART6: INTMODULE_USART
#define TRIMS_GPIO_REG_LSU GPIOH
#define TRIMS_GPIO_PIN_LSU LL_GPIO_PIN_13
// Extender Switches
#define SWITCHES_A_3POS
#define SWITCHES_GPIO_REG_A_H
#define SWITCHES_GPIO_PIN_A_H PCA95XX_P15
#define SWITCHES_GPIO_REG_A_L
#define SWITCHES_GPIO_PIN_A_L PCA95XX_P14
#define SWITCHES_B_3POS
#define SWITCHES_GPIO_REG_B_H
#define SWITCHES_GPIO_PIN_B_H PCA95XX_P13
#define SWITCHES_GPIO_REG_B_L
#define SWITCHES_GPIO_PIN_B_L PCA95XX_P12
#define SWITCHES_C_3POS
#define SWITCHES_GPIO_REG_C_H
#define SWITCHES_GPIO_PIN_C_H PCA95XX_P11
#define SWITCHES_GPIO_REG_C_L
#define SWITCHES_GPIO_PIN_C_L PCA95XX_P10
#define SWITCHES_D_3POS
#define SWITCHES_GPIO_REG_D_H
#define SWITCHES_GPIO_PIN_D_H PCA95XX_P7
#define SWITCHES_GPIO_REG_D_L
#define SWITCHES_GPIO_PIN_D_L PCA95XX_P6
#define SWITCHES_E_3POS
#define SWITCHES_GPIO_REG_E_H
#define SWITCHES_GPIO_PIN_E_H PCA95XX_P16
#define SWITCHES_GPIO_REG_E_L
#define SWITCHES_GPIO_PIN_E_L PCA95XX_P17
#define SWITCHES_F_2POS
#define SWITCHES_GPIO_REG_F
#define SWITCHES_GPIO_PIN_F PCA95XX_P1
#define SWITCHES_G_3POS
#define SWITCHES_GPIO_REG_G_H
#define SWITCHES_GPIO_PIN_G_H PCA95XX_P4
#define SWITCHES_GPIO_REG_G_L
#define SWITCHES_GPIO_PIN_G_L PCA95XX_P5
#define SWITCHES_H_2POS
#define SWITCHES_GPIO_REG_H
#define SWITCHES_GPIO_PIN_H PCA95XX_P0
#define SWITCHES_I_2POS
#define SWITCHES_GPIO_REG_I
#define SWITCHES_GPIO_PIN_I PCA95XX_P2
#define SWITCHES_J_2POS
#define SWITCHES_GPIO_REG_J
#define SWITCHES_GPIO_PIN_J PCA95XX_P3
// function switches
//SW1
#define SWITCHES_GPIO_REG_K
#define SWITCHES_GPIO_PIN_K PCA95XX_P0
#define SWITCHES_K_CFS_IDX 0
#define FUNCTION_SWITCH_1 SK
//SW2
#define SWITCHES_GPIO_REG_L
#define SWITCHES_GPIO_PIN_L PCA95XX_P1
#define SWITCHES_L_CFS_IDX 1
#define FUNCTION_SWITCH_2 SL
//SW3
#define SWITCHES_GPIO_REG_M
#define SWITCHES_GPIO_PIN_M PCA95XX_P2
#define SWITCHES_M_CFS_IDX 2
#define FUNCTION_SWITCH_3 SM
//SW4
#define SWITCHES_GPIO_REG_N
#define SWITCHES_GPIO_PIN_N PCA95XX_P3
#define SWITCHES_N_CFS_IDX 3
#define FUNCTION_SWITCH_4 SN
//SW5
#define SWITCHES_GPIO_REG_O
#define SWITCHES_GPIO_PIN_O PCA95XX_P4
#define SWITCHES_O_CFS_IDX 4
#define FUNCTION_SWITCH_5 SO
//SW6
#define SWITCHES_GPIO_REG_P
#define SWITCHES_GPIO_PIN_P PCA95XX_P5
#define SWITCHES_P_CFS_IDX 5
#define FUNCTION_SWITCH_6 SP
// Expanders
#define IO_INT_GPIO GPIO_PIN(GPIOD, 3)
#define IO_RESET_GPIO GPIO_PIN(GPIOG, 10)
@@ -343,19 +253,9 @@ USART6: INTMODULE_USART
// LCD
#define LTDC_IRQ_PRIO 4
#define DMA_SCREEN_IRQ_PRIO 6
#define LCD_RESET_GPIO GPIOJ
#define LCD_RESET_GPIO_PIN LL_GPIO_PIN_12
// Backlight
#define BACKLIGHT_GPIO GPIO_PIN(GPIOA, 10) // TIM1_CH3
#define BACKLIGHT_TIMER TIM1
#define BACKLIGHT_TIMER_CHANNEL LL_TIM_CHANNEL_CH3
#define BACKLIGHT_GPIO_AF GPIO_AF1
#define BACKLIGHT_TIMER_FREQ (PERI1_FREQUENCY * TIMER_MULT_APB1)
// QSPI Flash
#define QSPI_CLK_GPIO GPIO_PIN(GPIOF, 10)
#define QSPI_CLK_GPIO_AF GPIO_AF9
@@ -443,41 +343,6 @@ USART6: INTMODULE_USART
#define I2C_B2_GPIO_AF LL_GPIO_AF_4
#define I2C_B2_CLK_RATE 400000
// Haptic: TIM3_CH2
#define HAPTIC_PWM
#define HAPTIC_GPIO GPIO_PIN(GPIOC, 7)
#define HAPTIC_GPIO_TIMER TIM3
#define HAPTIC_GPIO_AF GPIO_AF2
#define HAPTIC_TIMER_OUTPUT_ENABLE TIM_CCER_CC2E | TIM_CCER_CC2NE;
#define HAPTIC_TIMER_MODE TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2M_2 | TIM_CCMR1_OC2PE
#define HAPTIC_TIMER_COMPARE_VALUE HAPTIC_GPIO_TIMER->CCR2
// LED Strip
#define LED_STRIP_LENGTH 26 // 6POS + 2 rings of 10
#define BLING_LED_STRIP_START 6
#define BLING_LED_STRIP_LENGTH 20
#define CFS_LED_STRIP_START 0
#define CFS_LED_STRIP_LENGTH 6
#define CFS_LEDS_PER_SWITCH 1
#define LED_STRIP_GPIO GPIO_PIN(GPIOA, 0) // PA.00 / TIM2_CH1
#define LED_STRIP_GPIO_AF LL_GPIO_AF_1 // TIM1/2/16/17
#define LED_STRIP_TIMER TIM2
#define LED_STRIP_TIMER_FREQ (PERI1_FREQUENCY * TIMER_MULT_APB1)
#define LED_STRIP_TIMER_CHANNEL LL_TIM_CHANNEL_CH1
#define LED_STRIP_TIMER_DMA DMA1
#define LED_STRIP_TIMER_DMA_CHANNEL LL_DMAMUX1_REQ_TIM2_UP
#define LED_STRIP_TIMER_DMA_STREAM LL_DMA_STREAM_0
#define LED_STRIP_TIMER_DMA_IRQn DMA1_Stream0_IRQn
#define LED_STRIP_TIMER_DMA_IRQHandler DMA1_Stream0_IRQHandler
#define LED_STRIP_REFRESH_PERIOD 50 //ms
#define STATUS_LEDS
#define GPIO_LED_GPIO_ON gpio_set
#define GPIO_LED_GPIO_OFF gpio_clear
#define LED_RED_GPIO GPIO_PIN(GPIOI, 8) // PI.08
#define LED_GREEN_GPIO GPIO_PIN(GPIOI, 11) // PI.11
#define LED_BLUE_GPIO GPIO_PIN(GPIOI, 10) // PI.10
// Internal Module
#define INTMODULE_PWR_GPIO GPIO_PIN(GPIOB, 13) // PB.13
#define INTMODULE_BOOTCMD_GPIO GPIO_PIN(GPIOH, 9) // PH.09
@@ -599,61 +464,6 @@ USART6: INTMODULE_USART
#define EXTI2_IRQ_Priority 9
#endif
#define IMU_I2C_BUS I2C_Bus_2
#define IMU_INT_GPIO GPIO_PIN(GPIOG, 13) // PG.13
#define IMU_INVERT_X // X axis mounted reversed (default, user-overridable)
#define IMU_INVERT_Y // Y axis mounted reversed (default, user-overridable)
#if !defined(USE_EXTI15_10_IRQ)
#define USE_EXTI15_10_IRQ
#define EXTI15_10_IRQ_Priority 6
#endif
//ROTARY emulation for trims as buttons
#define ROTARY_ENCODER_NAVIGATION
// Rotary Encoder
#define ROTARY_ENCODER_INVERTED
#define ROTARY_ENCODER_GPIO_A GPIOI
#define ROTARY_ENCODER_GPIO_PIN_A LL_GPIO_PIN_7
#define ROTARY_ENCODER_GPIO_B GPIOJ
#define ROTARY_ENCODER_GPIO_PIN_B LL_GPIO_PIN_8
#define ROTARY_ENCODER_POSITION() (((ROTARY_ENCODER_GPIO_A->IDR >> 7) & 0x01)|((ROTARY_ENCODER_GPIO_B->IDR >> 7) & 0x02))
#define ROTARY_ENCODER_EXTI_LINE1 LL_EXTI_LINE_7
#define ROTARY_ENCODER_EXTI_LINE2 LL_EXTI_LINE_8
#if !defined(USE_EXTI7_IRQ)
#define USE_EXTI7_IRQ
#define EXTI7_IRQ_Priority 5
#endif
#if !defined(USE_EXTI8_IRQ)
#define USE_EXTI8_IRQ
#define EXTI8_IRQ_Priority 5
#endif
#define ROTARY_ENCODER_EXTI_PORT_A LL_SYSCFG_EXTI_PORTI
#define ROTARY_ENCODER_EXTI_PORT_B LL_SYSCFG_EXTI_PORTJ
#define ROTARY_ENCODER_EXTI_SYS_LINE1 LL_SYSCFG_EXTI_LINE7
#define ROTARY_ENCODER_EXTI_SYS_LINE2 LL_SYSCFG_EXTI_LINE8
#define ROTARY_ENCODER_TIMER TIM17
#define ROTARY_ENCODER_TIMER_IRQn TIM17_IRQn
#define ROTARY_ENCODER_TIMER_IRQHandler TIM17_IRQHandler
// Millisecond timer
#define MS_TIMER TIM14
#define MS_TIMER_IRQn TIM8_TRG_COM_TIM14_IRQn
#define MS_TIMER_IRQHandler TIM8_TRG_COM_TIM14_IRQHandler
// Mixer scheduler timer
#define MIXER_SCHEDULER_TIMER TIM12
#define MIXER_SCHEDULER_TIMER_FREQ (PERI1_FREQUENCY * TIMER_MULT_APB1)
#define MIXER_SCHEDULER_TIMER_IRQn TIM8_BRK_TIM12_IRQn
#define MIXER_SCHEDULER_TIMER_IRQHandler TIM8_BRK_TIM12_IRQHandler
#define LCD_W 800
#define LCD_H 480
#define LCD_PHYS_W LCD_W
#define LCD_PHYS_H LCD_H
#define LCD_DEPTH 16
#define LSE_DRIVE_STRENGTH RCC_LSEDRIVE_HIGH
#endif // _HAL_H_
+7
View File
@@ -88,6 +88,13 @@ def generate_from_template(json_filename, template_filename, target):
legacy_inputs=legacy_inputs,
main_labels=MAIN_CONTROL_LUT,
key_index=key_index,
display=hw_def.display,
leds=hw_def.leds,
backlight=hw_def.backlight,
timers=hw_def.timers,
imu=hw_def.imu,
rotenc=hw_def.rotenc,
haptic=hw_def.haptic,
)
try:
+126
View File
@@ -0,0 +1,126 @@
//
// WARNING: DO NOT EDIT THIS FILE
// This file has been generated from the target's JSON hardware description
//
#pragma once
{% if timers %}
// Timers
{% for name, val in timers %}
{% if val is not none %}
{% if val is sameas true or val is sameas false %}
#define {{ name | upper }} {{ val | tojson }}
{% elif name.endswith('_irqn') %}
#define {{ name[:name | length - 1 ] | upper }}n {{ val }}
{% elif name.endswith('_irqhandler') %}
#define {{ name[:name | length - 7 ] | upper }}Handler {{ val }}
{% else %}
#define {{ name | upper }} {{ val }}
{% endif %}
{% endif %}
{% endfor %}
{% endif -%}
{% if display %}
// Display
{% for name, val in display %}
{% if val is not none %}
{% if val is sameas true or val is sameas false %}
#define {{ name | upper }} {{ val | tojson }}
{% else %}
#define {{ name | upper }} {{ val }}
{% endif %}
{% endif %}
{% endfor %}
{% endif -%}
{% if backlight %}
// Backlight
{% for name, val in backlight %}
{% if val is not none %}
{% if val is sameas true or val is sameas false %}
#define {{ name | upper }} {{ val | tojson }}
{% else %}
#define {{ name | upper }} {{ val }}
{% endif %}
{% endif %}
{% endfor %}
{% endif -%}
{% if leds %}
// LEDS
{% for name, val in leds %}
{% if val is not none %}
{% if val is sameas true or val is sameas false %}
#define {{ name | upper }} {{ val | tojson }}
{% elif name.endswith('_irqn') %}
#define {{ name[:name | length - 1 ] | upper }}n {{ val }}
{% elif name.endswith('_irqhandler') %}
#define {{ name[:name | length - 7 ] | upper }}Handler {{ val }}
{% else %}
#define {{ name | upper }} {{ val }}
{% endif %}
{% endif %}
{% endfor %}
{% endif -%}
{% if imu %}
// IMU
{% for name, val in imu %}
{% if val is not none and val is not sameas false %}
{% if val is sameas true %}
#define {{ name | upper }}
{% elif name == 'exti' %}
{% for exti in val %}
#define USE_{{ exti.irq }}
#define {{ exti.irq }}_Priority {{ exti.priority }}
{% endfor %}
{% else %}
#define {{ name | upper }} {{ val }}
{% endif %}
{% endif %}
{% endfor %}
{% endif -%}
{% if rotenc %}
// Rotary Encoder
#define ROTARY_ENCODER_NAVIGATION
{% for name, val in rotenc %}
{% if val is not none and val is not sameas false %}
{% if val is sameas true %}
#define {{ name | upper }}
{% elif name == 'exti' %}
{% for exti in val %}
#define USE_{{ exti.irq }}
#define {{ exti.irq }}_Priority {{ exti.priority }}
{% endfor %}
{% elif name.endswith('_irqn') %}
#define {{ name[:name | length - 1 ] | upper }}n {{ val }}
{% elif name.endswith('_irqhandler') %}
#define {{ name[:name | length - 7 ] | upper }}Handler {{ val }}
{% else %}
#define {{ name | upper }} {{ val }}
{% endif %}
{% endif %}
{% endfor %}
{% endif -%}
{% if haptic %}
// Haptic
{% for name, val in haptic %}
{% if val is not none and val is not sameas false %}
{% if val is sameas true %}
#define {{ name | upper }}
{% else %}
#define {{ name | upper }} {{ val }}
{% endif %}
{% endif %}
{% endfor %}
{% endif -%}
+114
View File
@@ -165,6 +165,113 @@ class LuxInput(BaseModel):
pin: Optional[str] = None
channel: Optional[Union[str, int]] = None
class EXTI(BaseModel):
irq: str
priority: int
class Timers(BaseModel):
cpu_freq: int
peri1_frequency: int
peri2_frequency: int
timer_mult_apb1: int
timer_mult_apb2: int
ms_timer: str
ms_timer_irqn: str
ms_timer_irqhandler: str
mixer_scheduler_timer: str
mixer_scheduler_timer_freq: str
mixer_scheduler_timer_irqn: str
mixer_scheduler_timer_irqhandler: str
class Backlight(BaseModel):
has_backlight_color: Optional[bool] = False
backlight_gpio: Optional[str] = None
backlight_timer: Optional[str] = None
backlight_timer_channel: Optional[str] = None
backlight_gpio_af: Optional[str] = None
backlight_timer_freq: Optional[str] = None
backlight_bdtr: Optional[str] = None
class Display(BaseModel):
lcd_w: int
lcd_h: int
lcd_phys_w: int
lcd_phys_h: int
lcd_depth: int
oled_screen: Optional[bool] = False
lcd_horizontal_invert: Optional[bool] = False
lcd_vertical_invert: Optional[bool] = False
ltdc_irq_prio: Optional[int] = None
dma_screen_irq_prio: Optional[int] = None
class LEDS(BaseModel):
led_strip_length: Optional[int] = None
bling_led_strip_start: Optional[int] = None
bling_led_strip_length: Optional[int] = None
cfs_led_strip_start: Optional[int] = None
cfs_led_strip_length: Optional[int] = None
cfs_leds_per_switch: Optional[int] = None
led_strip_gpio: Optional[str] = None
led_strip_gpio_af: Optional[str] = None
led_strip_timer: Optional[str] = None
led_strip_timer_freq: Optional[str] = None
led_strip_timer_channel: Optional[str] = None
led_strip_timer_dma: Optional[str] = None
led_strip_timer_dma_channel: Optional[str] = None
led_strip_timer_dma_stream: Optional[str] = None
led_strip_timer_dma_irqn: Optional[str] = None
led_strip_timer_dma_irqhandler: Optional[str] = None
led_strip_refresh_period: Optional[int] = None
status_leds: Optional[bool] = False
gpio_led_gpio_on: Optional[str] = None
gpio_led_gpio_off: Optional[str] = None
led_red_gpio: Optional[str] = None
led_red2_gpio: Optional[str] = None
led_green_gpio: Optional[str] = None
led_blue_gpio: Optional[str] = None
class IMU(BaseModel):
imu_i2c_bus: Optional[str] = None
imu_int_gpio: Optional[str] = None
imu_i2c_address: Optional[str] = None
exti: Optional[List[EXTI]] = None
imu_invert_x: Optional[bool] = None
imu_invert_y: Optional[bool] = None
class RotEnc(BaseModel):
rotary_encoder_inverted: Optional[bool] = None
rotary_encoder_gpio: Optional[str] = None
rotary_encoder_gpio_a: Optional[str] = None
rotary_encoder_gpio_b: Optional[str] = None
rotary_encoder_gpio_pin_a: Optional[str] = None
rotary_encoder_gpio_pin_b: Optional[str] = None
rotary_encoder_position: Optional[str] = None
rotary_encoder_exti_line1: Optional[str] = None
rotary_encoder_exti_line2: Optional[str] = None
rotary_encoder_exti_port: Optional[str] = None
rotary_encoder_exti_port_a: Optional[str] = None
rotary_encoder_exti_port_b: Optional[str] = None
rotary_encoder_exti_sys_line1: Optional[str] = None
rotary_encoder_exti_sys_line2: Optional[str] = None
rotary_encoder_timer: Optional[str] = None
rotary_encoder_timer_irqn: Optional[str] = None
rotary_encoder_timer_irqhandler: Optional[str] = None
exti: Optional[List[EXTI]] = None
class Haptic(BaseModel):
haptic_pwm: Optional[bool] = None
haptic_gpio: Optional[str] = None
haptic_gpio_timer: Optional[str] = None
haptic_gpio_af: Optional[str] = None
haptic_timer_output_enable: Optional[str] = None
haptic_timer_mode: Optional[str] = None
haptic_timer_compare_value: Optional[str] = None
haptic_timer: Optional[str] = None
haptic_timer_freq: Optional[str] = None
haptic_counter_register: Optional[str] = None
haptic_ccmr1: Optional[str] = None
haptic_ccmr2: Optional[str] = None
haptic_ccer: Optional[str] = None
Input = Union[StickInput, FlexInput, SwitchInput, RawInput, VBatInput, RTCBatInput, LuxInput]
@@ -309,6 +416,13 @@ class HardwareDefinition(BaseModel):
adc_inputs: ADCInputs
switches: List[Switch]
keys: List[Key]
display: Display
leds: Optional[LEDS] = None
backlight: Optional[Backlight] = None
timers: Timers
imu: Optional[IMU] = None
rotenc: Optional[RotEnc] = None
haptic: Optional[Haptic] = None
@staticmethod
def from_json(data: Union[str, bytes, bytearray]) -> "HardwareDefinition":
+2 -2
View File
@@ -118,8 +118,8 @@ int main()
{ TR_SF_VARIO, "FUNC_VARIO", FUNC_VARIO, "" },
{ TR_SF_HAPTIC, "FUNC_HAPTIC", FUNC_HAPTIC, "" },
{ TR_SF_LOGS, "FUNC_LOGS", FUNC_LOGS, "" },
{ TR_BRIGHTNESS, "FUNC_BACKLIGHT", FUNC_BACKLIGHT, "defined(OLED_SCREEN)" },
{ TR_SF_BACKLIGHT, "FUNC_BACKLIGHT", FUNC_BACKLIGHT, "!defined(OLED_SCREEN)" },
{ TR_BRIGHTNESS, "FUNC_BACKLIGHT", FUNC_BACKLIGHT, "OLED_SCREEN" },
{ TR_SF_BACKLIGHT, "FUNC_BACKLIGHT", FUNC_BACKLIGHT, "!OLED_SCREEN" },
{ TR_SF_SCREENSHOT, "FUNC_SCREENSHOT", FUNC_SCREENSHOT, "" },
{ TR_SF_RACING_MODE, "FUNC_RACING_MODE", FUNC_RACING_MODE, "" },
{ TR_SF_DISABLE_TOUCH, "FUNC_DISABLE_TOUCH", FUNC_DISABLE_TOUCH, "defined(COLORLCD)" },
+377
View File
@@ -0,0 +1,377 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://edgetx.org/schemas/hw_defs.schema.json",
"title": "EdgeTX radio hardware definition",
"description": "Schema describing the per-target hardware definition JSON files under radio/src/boards/hw_defs/.",
"type": "object",
"additionalProperties": false,
"required": [
"adc_inputs",
"switches",
"keys",
"trims",
"display",
"hardware",
"timers"
],
"properties": {
"adc_inputs": { "$ref": "#/$defs/adc_inputs" },
"switches": { "type": "array", "items": { "$ref": "#/$defs/switch" } },
"keys": { "type": "array", "items": { "$ref": "#/$defs/key" } },
"trims": { "type": "array", "items": { "$ref": "#/$defs/trim" } },
"display": { "$ref": "#/$defs/display" },
"leds": { "$ref": "#/$defs/leds" },
"backlight": { "$ref": "#/$defs/backlight" },
"hardware": { "$ref": "#/$defs/hardware" },
"timers": { "$ref": "#/$defs/timers" },
"imu": { "$ref": "#/$defs/imu" },
"rotenc": { "$ref": "#/$defs/rotenc" }
},
"$defs": {
"gpio_port": {
"description": "STM32 LL GPIO port macro, e.g. GPIOA..GPIOK.",
"type": "string",
"pattern": "^GPIO[A-K]$"
},
"gpio_pin": {
"description": "GPIO pin macro. Usually an STM32 LL macro (LL_GPIO_PIN_0..LL_GPIO_PIN_15), but may also be an I/O expander macro (e.g. PCA95XX_PIN_5, PCA95XX_P14, AW9523B_PIN_0).",
"type": "string",
"pattern": "^[A-Z][A-Z0-9_]*$"
},
"gpio_pin_macro": {
"description": "Combined GPIO macro form GPIO_PIN(port, n) used by some LED fields.",
"type": "string",
"pattern": "^GPIO_PIN\\(GPIO[A-K],\\s*\\d+\\)$"
},
"adc_inputs": {
"type": "object",
"additionalProperties": false,
"required": ["adcs", "inputs"],
"properties": {
"adcs": { "type": "array", "items": { "$ref": "#/$defs/adc" }, "minItems": 1 },
"inputs": { "type": "array", "items": { "$ref": "#/$defs/adc_input" } }
}
},
"adc": {
"type": "object",
"additionalProperties": false,
"required": ["name", "adc"],
"properties": {
"name": { "type": "string" },
"adc": { "type": "string", "pattern": "^(ADC[1-9]|SPI[1-9])$" },
"dma": { "type": ["string", "null"], "pattern": "^DMA[12]$" },
"dma_channel": { "type": "string" },
"dma_stream": { "type": "string" },
"dma_stream_irq": { "type": "string" },
"dma_stream_irq_handler": { "type": "string" },
"sample_time": { "type": "string" },
"gpio_pin_cs": { "type": "string" },
"gpio_pin_sck": { "type": "string" },
"gpio_pin_miso": { "type": "string" },
"gpio_pin_mosi": { "type": "string" }
}
},
"adc_input": {
"type": "object",
"additionalProperties": false,
"required": ["name", "type", "adc"],
"properties": {
"name": { "type": "string" },
"type": {
"type": "string",
"enum": ["STICK", "FLEX", "VBAT", "RTC_BAT", "SWITCH", "LUX", "RAW"]
},
"adc": { "type": "string" },
"gpio": { "anyOf": [ { "$ref": "#/$defs/gpio_port" }, { "type": "null" } ] },
"pin": { "anyOf": [ { "$ref": "#/$defs/gpio_pin" }, { "type": "null" } ] },
"channel": {
"anyOf": [
{ "type": "string", "pattern": "^LL_ADC_CHANNEL_[A-Z0-9_]+$" },
{ "type": "integer" },
{ "type": "null" }
]
},
"inverted": { "type": "boolean" },
"label": { "type": "string" },
"short_label": { "type": "string" },
"default": {
"type": "string",
"enum": ["NONE", "POT", "POT_CENTER", "SLIDER", "MULTIPOS", "AXIS_X", "AXIS_Y"]
},
"pwm_channel": { "type": "integer" }
}
},
"switch": {
"type": "object",
"additionalProperties": false,
"required": ["name", "type", "default", "is_cfs"],
"properties": {
"name": { "type": "string" },
"type": { "type": "string", "enum": ["2POS", "3POS", "ADC"] },
"flags": { "type": "integer" },
"inverted": { "type": "boolean" },
"default": { "type": "string", "enum": ["NONE", "2POS", "3POS", "TOGGLE"] },
"display": {
"anyOf": [
{ "type": "null" },
{
"type": "array",
"items": { "type": "integer" },
"minItems": 2,
"maxItems": 2
}
]
},
"is_cfs": { "type": "boolean" },
"cfs_idx": { "type": "integer" },
"gpio": { "anyOf": [ { "$ref": "#/$defs/gpio_port" }, { "type": "null" } ] },
"pin": { "$ref": "#/$defs/gpio_pin" },
"gpio_high": { "anyOf": [ { "$ref": "#/$defs/gpio_port" }, { "type": "null" } ] },
"pin_high": { "$ref": "#/$defs/gpio_pin" },
"gpio_low": { "anyOf": [ { "$ref": "#/$defs/gpio_port" }, { "type": "null" } ] },
"pin_low": { "$ref": "#/$defs/gpio_pin" },
"adc_input": { "type": "string" }
},
"allOf": [
{
"if": { "properties": { "type": { "const": "ADC" } }, "required": ["type"] },
"then": { "required": ["adc_input"] }
}
]
},
"key": {
"type": "object",
"additionalProperties": false,
"required": ["active_low", "key", "name", "label"],
"properties": {
"gpio": { "anyOf": [ { "$ref": "#/$defs/gpio_port" }, { "type": "null" } ] },
"pin": { "anyOf": [ { "$ref": "#/$defs/gpio_pin" }, { "type": "null" } ] },
"active_low": { "type": "boolean" },
"key": {
"type": "string",
"enum": [
"KEY_MENU", "KEY_EXIT", "KEY_ENTER",
"KEY_PAGEUP", "KEY_PAGEDN",
"KEY_UP", "KEY_DOWN", "KEY_LEFT", "KEY_RIGHT",
"KEY_PLUS", "KEY_MINUS",
"KEY_MODEL", "KEY_SYS", "KEY_TELE",
"KEY_SHIFT"
]
},
"name": { "type": "string" },
"label": { "type": "string" }
}
},
"trim_pin": {
"type": "object",
"additionalProperties": false,
"required": ["gpio", "pin", "active_low"],
"properties": {
"gpio": { "$ref": "#/$defs/gpio_port" },
"pin": { "$ref": "#/$defs/gpio_pin" },
"active_low": { "type": "boolean" }
}
},
"trim": {
"type": "object",
"additionalProperties": false,
"required": ["name"],
"properties": {
"name": { "type": "string" },
"dec": { "$ref": "#/$defs/trim_pin" },
"inc": { "$ref": "#/$defs/trim_pin" },
"active_low": { "type": "boolean" }
}
},
"exti": {
"type": "object",
"additionalProperties": false,
"properties": {
"irq": { "type": "string" },
"priority": { "type": "integer" }
}
},
"display": {
"type": "object",
"additionalProperties": false,
"required": ["lcd_w", "lcd_h", "lcd_phys_w", "lcd_phys_h", "lcd_depth"],
"properties": {
"lcd_w": { "type": "integer", "minimum": 1 },
"lcd_h": { "type": "integer", "minimum": 1 },
"lcd_phys_w": { "type": "integer", "minimum": 1 },
"lcd_phys_h": { "type": "integer", "minimum": 1 },
"lcd_depth": { "type": "integer", "enum": [1, 4, 8, 16, 24, 32] },
"lcd_vertical_invert": { "type": "boolean" },
"lcd_horizontal_invert": { "type": "boolean" },
"ltdc_irq_prio": { "type": "integer", "minimum": 0, "maximum": 15 },
"dma_screen_irq_prio": { "type": "integer", "minimum": 0, "maximum": 15 },
"oled_screen": { "type": "boolean" }
}
},
"leds": {
"type": "object",
"additionalProperties": false,
"properties": {
"status_leds": { "type": "boolean" },
"led_red_gpio": { "type": "string" },
"led_red2_gpio": { "type": "string" },
"led_green_gpio": { "type": "string" },
"led_blue_gpio": { "type": "string" },
"gpio_led_gpio_on": { "type": "string" },
"gpio_led_gpio_off": { "type": "string" },
"led_strip_gpio": { "type": "string" },
"led_strip_gpio_af": { "type": "string" },
"led_strip_length": { "type": "integer", "minimum": 0 },
"led_strip_refresh_period": { "type": "integer", "minimum": 0 },
"led_strip_timer": { "type": "string" },
"led_strip_timer_channel": { "type": "string" },
"led_strip_timer_freq": { "type": "string" },
"led_strip_timer_dma": { "type": "string" },
"led_strip_timer_dma_channel": { "type": "string" },
"led_strip_timer_dma_stream": { "type": "string" },
"led_strip_timer_dma_irqn": { "type": "string" },
"led_strip_timer_dma_irqhandler": { "type": "string" },
"cfs_led_strip_start": { "type": "integer", "minimum": 0 },
"cfs_led_strip_length": { "type": "integer", "minimum": 0 },
"cfs_leds_per_switch": { "type": "integer", "minimum": 0 },
"bling_led_strip_start": { "type": "integer", "minimum": 0 },
"bling_led_strip_length": { "type": "integer", "minimum": 0 }
}
},
"backlight": {
"type": "object",
"additionalProperties": false,
"properties": {
"backlight_gpio": { "type": "string" },
"backlight_gpio_af": { "type": "string" },
"backlight_timer": { "type": "string" },
"backlight_timer_channel":{ "type": "string" },
"backlight_timer_freq": { "type": "string" },
"backlight_bdtr": { "type": "string" },
"has_backlight_color": { "type": "boolean" }
}
},
"hardware": {
"type": "object",
"additionalProperties": false,
"required": ["cpu", "cpu_type"],
"properties": {
"cpu": { "type": "string", "pattern": "^STM32[A-Za-z0-9]+$" },
"cpu_type": { "type": "string", "enum": ["STM32F2", "STM32F4", "STM32H7"] },
"has_audio_mute": { "type": "boolean" },
"has_ext_module_support": { "type": "boolean" },
"has_int_module_support": { "type": "boolean" },
"sport_max_baudrate": { "type": "integer", "minimum": 0 },
"surface": { "type": "boolean" }
}
},
"timers": {
"type": "object",
"additionalProperties": false,
"required": [
"cpu_freq",
"peri1_frequency",
"peri2_frequency",
"timer_mult_apb1",
"timer_mult_apb2",
"ms_timer",
"ms_timer_irqn",
"ms_timer_irqhandler",
"mixer_scheduler_timer",
"mixer_scheduler_timer_freq",
"mixer_scheduler_timer_irqn",
"mixer_scheduler_timer_irqhandler"
],
"properties": {
"cpu_freq": { "type": "integer", "minimum": 1 },
"peri1_frequency": { "type": "integer", "minimum": 1 },
"peri2_frequency": { "type": "integer", "minimum": 1 },
"timer_mult_apb1": { "type": "integer", "minimum": 1 },
"timer_mult_apb2": { "type": "integer", "minimum": 1 },
"ms_timer": { "type": "string" },
"ms_timer_irqn": { "type": "string" },
"ms_timer_irqhandler": { "type": "string" },
"mixer_scheduler_timer": { "type": "string" },
"mixer_scheduler_timer_freq": { "type": "string" },
"mixer_scheduler_timer_irqn": { "type": "string" },
"mixer_scheduler_timer_irqhandler": { "type": "string" }
}
},
"imu": {
"type": "object",
"additionalProperties": false,
"properties": {
"imu_i2c_bus": { "type": "string" },
"imu_int_gpio": { "type": "string" },
"imu_i2c_address": { "type": "string" },
"imu_invert_x": { "type": "boolean" },
"imu_invert_y": { "type": "boolean" },
"exti": { "type": "array", "items": { "$ref": "#/$defs/exti" } }
}
},
"rotenc": {
"type": "object",
"additionalProperties": false,
"properties": {
"rotary_encoder_inverted": { "type": "boolean" },
"rotary_encoder_gpio": { "type": "string" },
"rotary_encoder_gpio_a": { "type": "string" },
"rotary_encoder_gpio_b": { "type": "string" },
"rotary_encoder_gpio_pin_a": { "type": "string" },
"rotary_encoder_gpio_pin_b": { "type": "string" },
"rotary_encoder_position": { "type": "string" },
"rotary_encoder_exti_line1": { "type": "string" },
"rotary_encoder_exti_line2": { "type": "string" },
"rotary_encoder_exti_port": { "type": "string" },
"rotary_encoder_exti_port_a": { "type": "string" },
"rotary_encoder_exti_port_b": { "type": "string" },
"rotary_encoder_exti_sys_line1": { "type": "string" },
"rotary_encoder_exti_sys_line2": { "type": "string" },
"rotary_encoder_timer": { "type": "string" },
"rotary_encoder_timer_irqn": { "type": "string" },
"rotary_encoder_timer_irqhandler": { "type": "string" },
"exti": { "type": "array", "items": { "$ref": "#/$defs/exti" } }
}
},
"haptic": {
"type": "object",
"additionalProperties": false,
"properties": {
"haptic_pwm": { "type": "boolean" },
"haptic_gpio": { "type": "string" },
"haptic_gpio_timer": { "type": "string" },
"haptic_gpio_af": { "type": "string" },
"haptic_timer_output_enable": { "type": "string" },
"haptic_timer_mode": { "type": "string" },
"haptic_timer_compare_value": { "type": "string" },
"haptic_timer": { "type": "string" },
"haptic_timer_freq": { "type": "string" },
"haptic_counter_register": { "type": "string" },
"haptic_ccmr1": { "type": "string" },
"haptic_ccmr2": { "type": "string" },
"haptic_ccer": { "type": "string" },
}
}
}
}