MdLink 简要介绍

📁 项目结构

 MdLink/
 ├── components/          # 第三方组件库和自定义库
 ├── main/               # 主应用程序入口
 ├── DAP/                # DAP调试器实现
 ├── driver/             # 硬件驱动层
 ├── esp_usb_jtag/       # ESP USB JTAG功能
 ├── game/               # 游戏功能模块
 ├── hal/                # 硬件抽象层
 ├── logic_analyzer/     # 逻辑分析仪功能
 ├── MDLink_Config/      # 项目配置文件
 ├── players/            # 媒体播放器功能
 ├── Settings/           # 系统设置功能
 ├── shell/              # 命令行交互界面
 ├── spiffs/             # SPIFFS文件系统
 ├── test/               # 测试代码
 ├── ui/                 # 用户界面组件
 ├── usb2uart/           # USB转串口功能
 ├── usb_extend_screen/  # USB扩展屏幕功能
 ├── usb_msc_wireless_disk/ # USB无线磁盘功能
 ├── usb_public/         # USB公共功能模块
 ├── wifi/               # WiFi功能模块
 ├── wireless/           # 无线通信功能
 ├── CMakeLists.txt      # 项目构建配置
 ├── partitions.csv      # 分区表配置
 ├── sdkconfig           # SDK配置文件
 └── README.md           # 项目说明文档

概述

MdLink 是一款基于 ESP32-S3-WROOM-1-N16R8 模组(搭载 Xtensa® 32 位 LX7 双核处理器,8MB PSRAM,16MB 外置 FLASH)的多功能嵌入式开发工具平台。系统采用 CherryUSB 作为 USB 库,LVGL 作为图形界面库,开发环境为 ESP-IDF 5.2.5。

设备开机时会显示图标并播放开机音乐,随后进入主界面。主界面分为四大板块:工具、媒体、娱乐和设置。用户可通过点击对应标签或左右滑动(支持无限循环滑动)切换界面。状态栏在联网成功后更新,电池功能暂未实现实时更新。

⚠️ 注意事项:

  • 语音控制默认关闭,可通过唤醒词“嗨,乐鑫”启用;

  • 截图功能默认开启,可在设置中配置,并通过按键触发;

  • 支持通过 Shell 查看设备信息及控制设备。

功能模块介绍

🔧 工具
  1. 逻辑分析仪 支持通过 PulseView 扫描设备并配置参数。

  2. 无线调试 可通过 ElaphureLink 连接 MdLink.local,使用 Keil 进行调试。

  3. 有线调试

    • DAP-Link:支持 ARM M3/M4 芯片调试,提供 IO 模拟、专用 IO 模拟、SPI 模拟及虚拟串口(CDC-ACM)功能;

    • ESP-UF2-JTAG:支持 ESP32 芯片调试,提供专用 IO 模拟和 UF2 拖拽下载。

  4. USB WIFI SD 卡

    • 插入 SD 卡后可显示容量和目录结构,支持文件浏览、视频/音乐播放、图片查看和文本阅读;

    • 连接电脑后,Windows 将识别为一个盘符(类似 U 盘);

    • 联网状态下,可通过浏览器访问 MdLink.local,支持文件查看和增删(文件大小需小于 20MB)。

  5. PWM 输出 (功能待完善)

  6. DAC 波形 (功能待完善)

  7. 电流表 (功能待完善)

  8. 示波器 (功能待完善)

  9. PD 输出 (功能待完善)

  10. 秒表 (功能待完善)

  11. 计算器 支持基本加减乘除运算。

  12. IP 定位 / 天气 使用中国气象局接口(公共 KEY),支持 IP 查询和天气预报。

    🔔 注意:公共 KEY 有访问频率限制,请勿频繁调用。

  13. 离线下载 (功能待完善)

  14. 空调遥控 / RMT 控制 使用 RMT 字节编码器(非 PWM),支持开关和调节运行状态。目前兼容海尔、美的部分空调型号。

  15. USB 副屏 安装 win10_idd_xfz1986_usb_graphic_driver 驱动后可用。

📻 媒体
  1. 视频播放 支持播放 SD 卡 video 目录下的视频文件。推荐使用以下 FFmpeg 命令转换视频格式:

    bash

     ffmpeg -i "input.mp4" -vf "scale=320:240:force_original_aspect_ratio=decrease,pad=320:240:(ow-iw)/2:(oh-ih)/2" -r 10 -c:v mjpeg -q:v 8 -c:a pcm_s16le -ar 16000 -ac 1 "output.avi"

  2. 音乐播放 支持播放 SD 卡中的音乐文件(需插入 SD 卡)。推荐使用 牛五音乐网 下载资源,并可利用以下命令调整音频参数:

    bash

     ffmpeg -i input.mp3 -ar 32000 output.mp3      # 调整采样率
     ffmpeg -i input.mp3 -b:a 32k output.mp3       # 调整比特率
     ffprobe input.mp3                            # 查看文件信息

    • 中文文件名支持:需在 FATFS 中配置代码页为 CP936,并启用长文件名支持。

  3. 录音机 支持录音及回放功能。

  4. 图片查看 自动读取 SD 卡 image 目录下的 JPG 图片,支持浏览、缩放(0.5–3 倍)、上一张/下一张切换。

  5. BLE 音箱 (功能待完善)

🎮 娱乐
  1. 小游戏 内置多款游戏:跳一跳、2048、消消乐、植物大战僵尸(简易模式)、象棋、切西瓜、骰子、Flappy Bird。

    🚧 后续计划:移植 NES 模拟器并支持蓝牙手柄。

  2. 文本阅读器 自动读取 SD 卡 text 目录下的 .txt 文件并显示。

  3. AI 对话 (功能待完善,需重新烧录代码)

⚙️ 设置
  1. 系统设置 配置信息存储于 custom_nvs(掉电不丢失),可设置:

    • 语言、屏幕亮度、颜色主题;

    • 语音控制开关;

    • 截图功能开关;

    • 恢复出厂设置;

    • 作者信息。

  2. WIFI 设置

    • WIFI 扫描:搜索并连接网络;

    • SmartConfig:通过 EspTouch 配网;

    • 蓝牙配网。

  3. OTA 更新 使用 ESP MMAP ASSETS 分离图片和音频资源。

    ⚠️ 因内存限制,暂不支持 OTA 功能。

硬件参考

软件与技术参考

技术文章推荐

🤝 参与贡献

欢迎提交 Issue 和 Pull Request!如有功能建议或问题反馈,请至 GitHub Issues

我们特别欢迎以下方面的贡献:

  • 功能完善和bug修复

  • 文档改进和翻译

  • 测试用例和性能优化

  • 新的功能模块开发

📧 联系信息

🎥 演示视频

欢迎前往B站观看演示视频:点击查看

⭐ 如果这个项目对你有帮助,欢迎 Star 支持!

转载请注明出处,谢谢合作。

🙏 致谢

感谢所有开源项目与社区的支持,特别是:

  • 乐鑫 (Espressif)

  • CherryUSB

  • LVGL 社区

  • 以及其他所有为本项目提供灵感和技术支持的开源项目

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐