From 0bd610ccd4370bf46fe0f4a0a520b1dc23561aad Mon Sep 17 00:00:00 2001 From: OPTOC <9159397+optoc@user.noreply.gitee.com> Date: Tue, 19 Aug 2025 18:19:34 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=96=B0=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/config/app_config/SERTRF.h | 62 +++++++++++++++++++ app/config/board_config/sertrf_esp32c3.h | 27 ++++++++ app/config/version.h | 11 ++++ main/Kconfig.projbuild | 8 +++ .../sdkconfig.release_SERTRF_esp32c3.defaults | 21 +++++++ 5 files changed, 129 insertions(+) create mode 100644 app/config/app_config/SERTRF.h create mode 100644 app/config/board_config/sertrf_esp32c3.h create mode 100644 sdkconfig_defaults/sdkconfig.release_SERTRF_esp32c3.defaults diff --git a/app/config/app_config/SERTRF.h b/app/config/app_config/SERTRF.h new file mode 100644 index 0000000..263b047 --- /dev/null +++ b/app/config/app_config/SERTRF.h @@ -0,0 +1,62 @@ +#if (CONFIG_PRODUCT_ID_SERTRF) + +#define _DEFAULT_DEVICE_NAME_BLE "SpeedyBee SERTRF-BLE" +#define _DEFAULT_DEVICE_NAME_WIFI "SpeedyBee SERTRF-WIF" +#define _DEFAULT_DRONE_DATA "MODE1_1.0" + +static cfg_app_t const s_cfg_app_default = { + + .version = APP_CONFIG_DATA_VER, // 配置版本,修改源码中此版本的值后, nvs 已同步的数据被恢复到默认值 + +#if (CONFIG_BUILD_BLE) + .rf_mode = DATA_BRIDGE_RF_MODE_BLE, // 当前的无线数据模式,由按键控制更改 +#elif (CONFIG_BUILD_WIFI) + .rf_mode = DATA_BRIDGE_RF_MODE_WIFI_AP, // 设置数据桥接模式:仅使用 UART <==> WIFI(AP) +#else + .rf_mode = DATA_BRIDGE_RF_MODE_OFF, // 设置数据桥接模式:关闭所有数据接口 +#endif + + .psPassword = "", // 透传密码 + + .device_name_ble = _DEFAULT_DEVICE_NAME_BLE, // BLE 设备名 + + .drone_data = _DEFAULT_DRONE_DATA, // 由 APP 通过命令设置,表示记录配置 + + /* 由 APP 通过命令设置, WIFI 部分的透传设置 */ + .wifi_setting = { + .ardupilot_passthrough_tcp_port = 4278, + .ardupilot_passthrough_udp_port = 14550, + .ardupilot_passthrough_udp_transfer_in_raw_mode = 1, // UDP 连接下, 0: 解析飞控数据帧转发, 1: 直接转发原文(默认) + .wifi_max_connection_num = 1, // WIFI 最多的连接数。范围 MIN_WIFI_STA_NUM..MAX_WIFI_STA_NUM + .uartBaudRate = 115200, // 串口透传波特率 + }, + + .wifi_ap_ipv4 = {192, 168, 1, 1}, // WIFI AP 模式下的 IP 地址 + .app_config_wifi_para.wifi_ap_ssid = _DEFAULT_DEVICE_NAME_WIFI, // WIFI AP 模式下的 SSID + .app_config_wifi_para.wifi_ap_password = "", // WIFI AP 模式下的 密码 + .app_config_wifi_para.wifi_sta_ssid = "eFLY", // WIFI STA 模式下的 SSID + .app_config_wifi_para.wifi_sta_password = "88888888", // WIFI STA 模式下的 密码 + + .udp_port_passthrough_broadcast = 14550, // udp 透传端口(广播端口) TODO + .udp_port_command = 14551, // udp 命令端口(本地端口) + .tcp_port_command = 4279, // tcp 命令端口(本地端口) + .tcp_port_telnet = 23, // tcp telnet 端口(默认23) + .tcp_port_dfu = 4280, // tcp DFU 升级服务端口(本地端口) + .tcp_port_msc = 4281, // tcp 黑匣子服务端口(本地端口) + + /* 功能模块开关 */ + .capacity = { + .pwrup_light = 1, // 短亮黄灯表示启动(方便观察是否有重启) + .ble = 1, // 使用 BLE + .ap = 1, // 使用 WIFI AP 模式 + .sta = 1, // 使用 WIFI STA 模式 + + .strip_pwrup = 0, // 使用灯带上电效果 + .strip_show_rf = 0, // 在灯带中用一个灯来显示射频数据接口状态的灯效图层 + .strip_link_fc = 0, // 开启灯带联动飞控 + .ws2812_bat_led_mode = 0, // 电量灯效, 0: 关闭, 1: 普通飞控, 2: 竞速飞控, 3: 固定翼飞控 + }, + .product_id = PRODUCT_ID, // 产品 ID +}; + +#endif diff --git a/app/config/board_config/sertrf_esp32c3.h b/app/config/board_config/sertrf_esp32c3.h new file mode 100644 index 0000000..b3dcf8e --- /dev/null +++ b/app/config/board_config/sertrf_esp32c3.h @@ -0,0 +1,27 @@ +#if (CONFIG_BOARD_NAME_SERTRF_ESP32C3) + +#define CONFIG_IDF_TARGET "esp32c3" /* 警告:请使用命令 idf.py set-target <参数> 选择对应的平台 */ + +static cfg_board_t const s_cfg_board_default = { + .firmware_str = PRODUCT_ID, + .platform_str = CONFIG_IDF_TARGET, + .board_name = "sertrf_esp32c3", + + /* 数据透传串口 */ + .uart_fc = { + .pin_txd = {7, _GPIO_DIR_OUT, _GPIO_PUD_PULL_UP}, + .pin_rxd = {6, _GPIO_DIR_IN, _GPIO_PUD_PULL_UP}, + .id = UART_NUM_1, + .irq_prior = 24, + .br = 115200, + }, + + /* ISP 控制脚 */ + .io_isp = { + .nrst = 4, // 复位控制引脚 + .boot0 = 5, // boot0 控制引脚 + }, + +}; + +#endif diff --git a/app/config/version.h b/app/config/version.h index 8350ae4..98b1a87 100644 --- a/app/config/version.h +++ b/app/config/version.h @@ -26,6 +26,17 @@ #define FW_VERSION_MINOR 0 #define FW_VERSION_BUILD 0 +#elif (CONFIG_PRODUCT_ID_SERTRF) + +#define PRODUCT_ID "SERTRF" + +#define BOARD_CONFIG_DATA_VER 0x0101 /* 对应 cfg_board_t::version */ +#define APP_CONFIG_DATA_VER 0 /* 对应 cfg_app_t::version */ + +#define FW_VERSION_MAIN 1 +#define FW_VERSION_MINOR 0 +#define FW_VERSION_BUILD 0 + #else #error 未定义配置 #endif diff --git a/main/Kconfig.projbuild b/main/Kconfig.projbuild index 112fac8..d672861 100644 --- a/main/Kconfig.projbuild +++ b/main/Kconfig.projbuild @@ -16,6 +16,9 @@ menu "APP 配置" config BOARD_NAME_DEVKIT_ESP32S3 bool "ESP32S3 开发板" + + config BOARD_NAME_SERTRF_ESP32C3 + bool "ESP32C3 开发串口转射频" endchoice # 选择产品描述符 @@ -35,6 +38,11 @@ menu "APP 配置" bool "识别号: SBDEMO 开发中" help 仅用于开发示例的产品描述符 + + config PRODUCT_ID_SERTRF + bool "识别号: SERTRF 开发串口转射频中" + help + 仅用于开发示例的产品描述符 endchoice menuconfig CAP_LED_STRIP diff --git a/sdkconfig_defaults/sdkconfig.release_SERTRF_esp32c3.defaults b/sdkconfig_defaults/sdkconfig.release_SERTRF_esp32c3.defaults new file mode 100644 index 0000000..3240b11 --- /dev/null +++ b/sdkconfig_defaults/sdkconfig.release_SERTRF_esp32c3.defaults @@ -0,0 +1,21 @@ +# This file was generated using idf.py save-defconfig. It can be edited manually. +# Espressif IoT Development Framework (ESP-IDF) 5.2.1 Project Minimal Configuration +# +CONFIG_IDF_TARGET="esp32c3" +CONFIG_BOOTLOADER_LOG_LEVEL_WARN=y +CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y +CONFIG_PARTITION_TABLE_CUSTOM=y +CONFIG_BT_ENABLED=y +CONFIG_BT_BLE_42_FEATURES_SUPPORTED=y +CONFIG_ESP_HTTP_CLIENT_ENABLE_DIGEST_AUTH=y +CONFIG_ESP_SLEEP_POWER_DOWN_FLASH=y +CONFIG_ESP_IPC_TASK_STACK_SIZE=1536 +CONFIG_ESP_TIMER_TASK_STACK_SIZE=2048 +CONFIG_FREERTOS_HZ=1000 +CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=768 +CONFIG_FREERTOS_ENABLE_BACKWARD_COMPATIBILITY=y +CONFIG_FREERTOS_TIMER_TASK_PRIORITY=24 +CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=1536 +CONFIG_FREERTOS_VTASKLIST_INCLUDE_COREID=y +CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS=y +CONFIG_LOG_DEFAULT_LEVEL_NONE=y