站内搜索
发作品签到
Muse Cube : STM32掌上终端/mp3
专业版

Muse Cube : STM32掌上终端/mp3

简介

Muse Cube 是一款全开源、以高品质音乐播放为核心的多功能掌上终端。项目以产品级标准打造,亦可作为 STM32 的学习开发板使用。

简介:Muse Cube 是一款全开源、以高品质音乐播放为核心的多功能掌上终端。项目以产品级标准打造,亦可作为 STM32 的学习开发板使用。
星火计划2026
复刻成本:165

开源协议

CC BY-NC-SA 4.0

(未经作者授权,禁止转载)
创建时间:2025-01-15 10:42:16更新时间:2026-06-01 16:13:52

描述

全开源,多功能的掌上终端。

Muse Cube 是一款全开源、以高品质音乐播放为核心的多功能掌上终端。项目以产品级标准打造,亦可作为 STM32 的学习开发板使用。它支持本地及 USB 音频播放,可通过 3.5mm 耳机或双扬声器输出;具备主从模式的多功能 USB 接口,并集成了 NES 游戏模拟、视频播放、像素画、闹钟时钟、背单词、抽签等多种应用。




0. 固件版本及未来更新说明

当前固件版本:V1.2

2026.6.1:特别注意,当前版本外壳安装难度较大,不排除后续可能对pcb布局进行更改,具体详见交流群内消息,避免可能造成的经济损失。

由于代码量较大,从 2025年1月 开发至今(2026年4月),部分软件功能仍在完善或尚未实现。当前版本不代表最终效果,考虑复刻前请务必知悉。

未来软件更新计划
• 自 2026年5月 起,每月发布一次固件更新。
• 用户反馈的 Bug 将在当月完成修复。
• 用户提出的有实现价值的功能将纳入后续更新计划。
V1.1 更新日志(已压缩)
------------------------------
- 重构项目目录结构、GUI图标资源布局,统一全局变量声明与定义位置。
- 新增闹钟(时钟/倒计时/秒表/闹钟)、日历、计算器、背单词、相册等应用。
- 桌面支持横向滑动翻页,容纳更多应用图标。
- 改进文件管理器:驱动器号显示、路径动态分配、格式检测与解码分发。
- 新增 DAC 高级设置、日期与时间设置、关于设备页面。
- 新增 SD 卡热插拔自动检测与自动挂载/卸载。
- 降低静态全局变量 RAM 占用,提升 GIF 解码性能。
- 改进键盘输入 UI 显示,新增拼音输入法。
- 移植 Letter Shell 嵌入式命令行库,新增 CMD 命令行终端。
- 减少 UI 任务对硬件的直接访问,优化任务分离与外设事件分发。

V1.2 更新日志
------------------------------
- 新增抽签应用。
- 优化输入法拼音搜索逻辑。
- 优化日志输出格式。
- 新增 KVDB 配置参数掉电不丢失功能。
- 新增 Letter Shell,支持通过 USB 虚拟串口调试。
- 优化 USB Device CDC 的开启逻辑。
- 降低 USB Device MSC 的内存占用,提升稳定性和性能。
- ES9018K2M 改用软件 I2C,提升系统稳定性。
- 提升 USB Device Display 功能的稳定性。
- 修复字库更新逻辑,并新增更新进度指示。
- 优化 USB Device HID 设备模拟的输入逻辑。
- 优化 USB Device UAC 1.0 和 UAC 2.0 的性能。
- 优化 USB FIFO 分配,提升 USB 整体性能。
- 优化 USB Host HID 设备读取逻辑,支持键盘、鼠标、手柄。
- 优化 USB Host MSC 设备读取逻辑,支持同时挂载两个 U 盘。
- 优化文件管理器 UI 显示逻辑,支持文件的复制、粘贴、删除操作。

1. 产品描述

  • 一手掌握:8×5×2.2 cm,比卡片更小,比竖放硬币更薄,可轻松装入口袋。
  • 接口齐全:USB-C、3.5mm 耳机孔、TF 卡槽,充电、听歌、扩容均方便。
  • 屏幕清晰:1.54 英寸 IPS 屏,240×240 分辨率,显示细腻、色彩鲜艳。
  • 续航无忧:2000 mAh 品牌电池,音乐播放或桌面常亮场景可支撑一整天。
  • 手感舒适:Switch 同款摇杆,按键布局符合人体工学,长时间操作不易疲劳。
  • 高品质音乐:支持多种无损格式,可通过3.5mm耳机或对称式双扬声器播放。
  • 外置解码:连接手机或电脑,可充当 USB 解码耳放(小尾巴),提升音质。
  • 复古游戏:内置 NES 模拟器,可随时游玩经典游戏;另提供像素画功能。
  • 多媒体浏览:支持阅读文本、查看代码、播放视频、浏览图片等。
  • 桌面助手:倒计时、番茄钟、桌面时钟、电脑副屏、背单词、课表等。
  • 抽签应用:内置随机抽签小工具,方便日常决策与娱乐。
  • 应急工具:模拟鼠标/键盘/手柄、记事本、闹钟、备忘录,适合会议演示等场景。
  • 轻量主机:可同时挂载两个 U 盘,支持文件的复制、粘贴、删除,支持串口调试与 USB 虚拟串口命令行,无电脑时可应急。
  • 调试利器:集成 Letter Shell,可通过 USB 虚拟串口进行命令行交互与系统调试。
  • 性能基础:STM32F4 处理器,168MHz 主频 + 192KB 运存,系统响应流畅。
  • 音频底子:DAC最高 32bit/192kHz 解码 + 独立供电 + 低抖动晶振,声音干净。
AI生成的产品宣传图

注:以上内容为模仿夸张推销风格,仅供娱乐,图片由AI生成,不代表实际性能。

为什么适合作为 STM32 学习开发板?

1.硬件全覆盖,教学无缝接轨:本项目基于 STM32F4 平台,使用 标准库 + Keil 开发环境,与江协科技等主流 STM32 入门教程完全兼容。项目中几乎用到了 STM32 全部常用硬件外设:SPI、I2C、USB、SDIO、PWM、ADC、I2S、RTC、独立看门狗 (IWDG)、NVIC 中断管理、随机数发生器 (RNG)、定时器 (Timer) 等,是巩固外设应用能力的绝佳实战素材。

2.软件生态丰富,一站式技能提升:通过本项目,你可以深入学习并实践多款经典嵌入式第三方库的移植与使用——FreeRTOS 实时操作系统、LVGL 图形界面、FatFs 文件系统、CherryUSB 协议栈、FlashDB 轻量级数据库。此外,还涵盖字库集成、动态内存池设计、多种格式音频/图片/视频解码(MP3、FLAC、AAC、JPEG、PNG、GIF、MJPEG 视频等)、NES 模拟器、UI 交互设计以及 DSP 库的应用,几乎覆盖了从裸机驱动到复杂应用的全栈嵌入式开发技能。


2. 使用说明

Muse Cube 外部接口一览

Muse Cube 外部接口一览

整体接口如上图所示,操作与功能说明如下:

  • 开机:向上拨动开关即可启动 Muse Cube。
  • 更新固件:关机状态下,按住上方按键的同时打开开关,即可进入固件更新模式。
  • 默认操作方法:
    • 拨动右侧摇杆 → 移动屏幕上的鼠标指针。
    • 任意方向拨动左侧摇杆并释放 → 视为“点击”。
    • 按下左侧摇杆 → 退回上一页。
    • 按下右侧摇杆(某些页面) → 调起浮动菜单。
  • 接口说明:
    • 左侧 USB Type-C 接口:默认为充电(5V 400mA)/ 对外供电(5V 500mA max)(自动识别);其他功能需进入 USB App 选择后生效。
    • 右侧上方 3.5mm 耳机接口:连接有线耳机。
    • 右侧下方 TF 卡卡槽:支持最高 32GB 容量的 TF 卡,用于扩展存储。
  • 扬声器:位于机身顶部,用作声音外放输出。

3. 复刻流程

复刻过程中有任何问题均可联系本人,也欢迎各位对软硬件提供优化方案。
所有复刻所需资源可在本页面及GitHub仓库中找到。

  1. PCB下单 – 使用嘉立创下单本项目的PCB板(共一块,7.5×4.5 cm 六层板)。
  2. 元器件采购 – 按照BOM表购买所有电子元件。元件来源:立创商城为主,淘宝优信电子也可。
    • 其中 ES9601K 可能无法在立创商城买到,可在淘宝(深圳市福田区永丹电子商行)以约18元购买,该货源成色接近全新原装。
    • 此外,6/1修正:必须使用TPS22918(TPS22917与TPS22918电路存在差异)。
  3. 焊接PCB – PCB与元件到货后,使用嘉立创SMT贴片服务或自行焊接(推荐使用加热台)。
  4. 购买结构件 – 在各大购物平台购买扬声器、摇杆、屏幕、电池、螺丝螺母等材料。
    • 输入设备:Switch 摇杆 × 2(拼多多约10元两个)。
    • 扬声器:适用OPPO Reno 10 pro原装喇叭总成 × 2(拼多多约15元两个)。
    • 电池:淘宝中顺芯 524075 2000mAh 三线带NTC 购买链接
    • 屏幕:淘宝中景圆电子 1.54寸240*240 ips lcd显示屏 驱动st7789 12pin 0.5mm插接式fpc(注意不要买成焊接式的)胶铁一体 购买链接
    • 螺丝:M1.6×2.5×2.5 热熔螺母 + M1.6×4 平头螺丝 15 对;M2×3.6×3.2 热熔螺母 + M2×5 平头螺丝 4 对。
    • 胶水:注意本项目提供的外壳安装热熔螺母时,并非热熔连接,而是使用502胶水固定(也试过环氧树脂AB胶,效果不如502)。
    • 端子:PH2.0 3p 公座(购买链接) 母座(已在BOM表中) 接线(购买链接),用于电池与PCB板的连接。 GH1.25 2p x 2 (购买链接) 用于连接扬声器和PCB。 PH2.0转2.54杜邦线 3p,用于连接STLink/DAPLink与PCB下载接口。
  5. 制作面板 – 使用嘉立创面板下单(面板文件位于PCB工程内)。参数:透明亚克力,底面,0.8mm,正品3M9448A(通用款),80*50mm,常规遮光(白底)。
  6. 3D打印外壳 – 外壳文件在附件中,推荐使用闲鱼代打或嘉立创3D打印服务。(闲鱼0.12mm精度约10元一套。)
  7. 烧录 – 测试PCB,使用ST-Link或DAPLink等下载Bootloader程序。
  8. 整机安装 – 完成Muse Cube的整体组装。
  9. 下载固件并开始使用 – 准备一个不大于32GB的TF卡,放入相关文件。获取最新固件,享受你的Muse Cube!

4. 硬件部分

4.1 硬件开源说明

本项目硬件(PCB、外壳、面板)采用 CC BY-NC-SA 4.0 协议(署名 - 非商业性使用 - 相同方式共享)。

特别说明: 如果您仅参考本项目的设计,只需PCB重新绘制,您就可以自行选择任何开源协议,无需再遵循 CC BY-NC-SA。

4.2 PCB 概况

  • 尺寸: 7.5 cm × 4.5 cm
  • 工艺: 嘉立创六层板、沉金工艺、盘中孔技术
  • 布局设计: 数模分离,单端 50 ohm 阻抗控制
  • 板载接口:
    • • USB Type-C × 1
    • • TF 卡座 × 1
    • • 3.5MM 耳机接口 × 1
    • • 开关 × 1
    • • 按钮 × 2(reset, wakeup)
    • • PH2.0 3p × 1(用于连接电池)
    • • GH1.25 2p × 2(用于连接扬声器)
    • • FPC 12p × 1(用于连接屏幕)
    • • FPC 5p × 2(用于连接摇杆)
    • • 预留 stlink debugger PH2.0 3p

4.3 元件选型

  • 选型原则:因为是 DIY 项目,不考虑量产成本约束,本项目的元件选型遵循性能优先、质量优先的逻辑,在合理价格范围内选取最优解,以确保整机的音质、稳定性和长期可靠性。
  • 主控:STM32F405
  • 板载 flash:w25q128 (16MB)
  • 扬声器运放:MAXIM(现为 ADI)的 MAX98357A × 2
  • 耳机运放:ESS Technology 的 es9018k2m + es9601k 组合
  • DAC 晶振:EPSON 的 38.4 MHz TCXO
  • 电源:电源管理、DCDC、LDO、模拟开关、负载开关、限流配电开关,均选用 TI 的合适元件
  • 电路保护:在接口处使用 ESD/TVS 保护元件

4.4 外设选型

  • 输入设备: switch 摇杆 × 2
  • 屏幕: 分辨率 240 × 240、1.54 英寸 LCD(中景园电子)
  • 扬声器: 手机拆机喇叭 × 2,组成双声道(据称为 AAC 1115E)
  • 电池: 中顺芯 524075 2000mAh

4.5 外壳

  • 尺寸: 8cm(长)× 5cm(宽)× 2.2cm(厚)
  • 设计: 使用 Blender 设计,提供可修改的 .blend 文件以及用于 3D 打印的 .stl 文件。
  • 连接: 使用 M1.6×2.5×2.5 热熔螺母 + M1.6×4 平头螺丝 15 对;M2×3.6×3.2 热熔螺母 + M2×5 平头螺丝 4 对。

4.6 面板

面板设计使用嘉立创完成,具体见项目文件。

硬件架构示意

电源架构示意

PCB 布线示意

PCB 渲染图

组装示意图


5. 软件部分

5.1 软件开源说明

本项目软件部分协议说明:

  • 我的代码:使用 MIT 协议
  • 使用的第三方库:遵循对应的第三方库协议
  • 整体项目/固件:受第三方库限制,使用 GNU GPL V3 协议

5.2 开发环境

  • 集成开发环境:Keil5
  • 编译器:ARM Compiler 5
  • 底层驱动:STM32 标准库

5.3 系统架构

  • 程序划分:分为引导加载程序(Bootloader)与主程序两部分。
  • • 引导加载程序:占用前 64 KB ROM 空间,借助 CherryUSB 的 UF2 协议实现 USB 拖拽式固件更新。
  • • 主程序:紧随引导加载程序存放。
  • 实时操作系统:FreeRTOS,负责任务调度。
  • 图形界面库:LVGL。
  • 内存管理:基于 TLSF 算法,动态管理 80 KB 普通 RAM 与 64 KB CCM RAM。
  • 系统时钟节拍:由 SysTick 定时器统一为 FreeRTOS 与 LVGL 提供。
  • 程序监控:独立看门狗(IWDG),防止程序卡死或跑飞。

5.4 外设与信号处理

  • 定时器:TIM8(LCD 背光亮度调节);TIM2(RTOS 运行状态监测定时器)。
  • 随机数与时钟:RNG 随机数发生器;实时时钟(RTC)支持公历转农历。
  • 屏幕与输入:42 MHz SPI + DMA;拼音输入法(优化搜索逻辑)。
  • 模拟信号采集:8 路 ADC + DMA(摇杆、Type-C CC 引脚、电池电压)。

5.5 存储与文件系统

  • Flash 存储 (W25Q128):8 MB FlashDB(键值+时序数据),支持 KVDB 配置参数掉电不丢失;剩余空间存放字库。
  • TF 卡存储:24 MHz 四线 SDIO + DMA,最高 32 GB,FatFS。

5.6 音频处理

  • • I2S2 + DMA 音频输出,模拟开关切换扬声器/耳机 DAC。
  • • 软件模拟 I2C 控制 ES9018K2M,提升系统稳定性。
  • • 音频解码库:libhelix-aac、libhelix-mp3、libfoxenflac、libdemac。
  • • 支持格式:WAV、MP3、FLAC、AAC、APE。

5.7 USB 功能

  • • 主从模式识别与切换:Type-C CC 引脚上下拉切换与电压检测。
  • • 协议栈:CherryUSB。
  • • 从机功能:CDC ACM(USB 串口/虚拟串口)、MSC(模拟 U 盘)、UAC1/UAC2(USB 音频)、Display(投屏)、HID 鼠标/键盘/手柄。
  • • 主机功能:串口助手、HID 键鼠/手柄、MSC 设备(支持同时挂载两个 U 盘)。
  • • 性能优化:USB FIFO 分配优化,UAC 音频性能提升,MSC 稳定性与内存占用降低,Display 投屏稳定性增强。

5.8 视频与图像解码

  • • 视频播放:RAW RGB565;MJPEG(TjpgDec,240×240@30fps)。
  • • 图片解码:GIF(AnimatedGIF)、PNG(PNGdec)、JPG、BMP。

5.9 综合设计思路

  1. 优化性能:硬件接口、使用 DMA、减少内存拷贝、常用代码寄存器优化。
  2. 保证可读性:简化代码结构、函数封装简单、避免复杂数据结构。
  3. 减少代码黑盒:手动移植第三方库、所有代码可优化修改。

5.10 AI 使用说明

  • UI 部分:仅完成框架,AI 生成代码后对功能实现进行审查。一般不审查具体代码实现。
  • 除 UI 以外的代码:自己编写或参考可信的代码实现,AI 仅用作 Bug 排查。对 AI 生成的代码需经过检查后方可使用。

代码开源网页截图

软件架构图

MuseCube V1.2 功能完成情况

计划中的功能将逐步完成,敬请关注后续更新。

固件源码目录树


MuseCube-V1.2/            基于STM32F405RGT6的手持多媒体播放器固件工程
│
├── 1-library/            STM32F4xx标准外设库(StdPeriph_Driver V1.8.1)
│
├── 2-start/              CMSIS启动层
│
├── 3-main/               应用入口层
│
├── 4-ware/               固件主体代码
│   ├── BSP/              板级支持包:硬件驱动
│   ├── Lib_FreeRTOS/     FreeRTOS实时操作系统内核(ARM Cortex-M4F移植)
│   ├── Lib_LVGL/         LVGL v8.x 嵌入式图形库
│   ├── Lib_Cherry_USB/   CherryUSB协议栈:支持USB Device/Host
│   ├── Lib_Fatfs/        FatFs FAT文件系统(挂载SD卡和USB存储)
│   ├── Lib_FlashDB/      FlashDB嵌入式数据库:KVDB + TSDB
│   ├── Lib_TLSF/         TLSF O(1)动态内存分配器,替代标准库malloc/free
│   ├── Lib_Music_lib/    音频解码库:Helix MP3/AAC、foxen-flac、DEMAC APE
│   ├── Lib_Tjpgd/        Tiny JPEG Decompressor超轻量JPEG解码库
│   ├── Lib_PNGdec/       PNG解码库(含zlib inflate解压)
│   ├── Lib_AnimatedGIF/  GIF解码库
│   ├── Lib_Letter_Shell/ Letter Shell嵌入式命令行交互shell
│   ├── Apps_Music/       音乐播放器应用层:播放状态机、I2S DMA双缓冲、解码封装
│   ├── Apps_Media/       媒体解码应用层:BMP/PNG/GIF/JPG/MJPEG视频解码封装
│   ├── Apps_NES/         NES模拟器:6502 CPU(汇编)、PPU图像渲染、APU音频
│   ├── Apps_Text/        文本应用层:TXT阅读器、LRC歌词解析、生词本管理
│   ├── GUI_Page/         全屏GUI页面(22个)
│   ├── GUI_Unit/         GUI可复用组件(22组)
│   ├── GUI_Icons/        GUI图标资源
│   ├── Tasks/            FreeRTOS任务实现:TaskManager任务管理器 + 7个任务
│   └── Utils/            工具函数:CPU使用率、FFT频谱分析、电池电量等
│
├── bootloader/           USB UF2引导加载程序
│   ├── 1-library/        STM32F4标准外设库子集
│   ├── 2-start/          CMSIS启动层:启动汇编文件、Cortex-M4核心访问头文件
│   ├── 3-main/           bootloader主入口
│   ├── 4-ware/           bootloader板级支持包
│   ├── 5-freertos/       FreeRTOS内核
│   └── 6-cherryusb/      CherryUSB Device协议栈
│
├── bin2uf2/              固件格式转换工具:将Keil输出的.bin/.hex转换为UF2格式
│
└── TFcard_files/         系统运行所需的TF卡资源文件
    

MuseCube V1.2 软件展示

当前版本不代表最终效果!由于还在开发阶段,暂无展示视频。

软件展示1
(音乐播放器页面)
软件展示2
(nes模拟器页面)
软件展示3
(视频播放页面)
软件展示4
(任务管理器页面)
软件展示5
(TXT阅读器页面)
新增图片1
新增图片2
新增图片3
新增图片4
新增图片5
新增图片6
新增图片7
新增图片8

使用开源库及其开源协议和项目地址

项目名称 开源协议 项目地址
FreeRTOSMIT licenseGitHub
LVGLMIT licenseGitHub
TLSF3-Clause BSD LicenseGitHub
FATFS1-Clause BSD Licenseelm-chan.org
CherryUSBApache-2.0 licenseGitHub
FlashDBApache-2.0 licenseGitHub
libhelix-mp3RPSL 1.0helixcommunity.org
libhelix-aacRPSL 1.0helixcommunity.org
libdemacGPLv2 or laterrockbox.org
libfoxenflacLGPL-2.1 licenseGitHub
PNGdecApache-2.0 licenseGitHub
TjpgdSee LICENSE fileelm-chan.org
AnimatedGIFApache-2.0 licenseGitHub
文泉驿点阵宋体 16pixGPL-2.0 licenseGitHub
寒蝉点阵体 7pixOFL-1.1GitHub
缝合像素字体 12pixMIT, OFL-1.1GitHub
Win10 USB 图形驱动未申明GitHub
English Wordlists未申明(无协议)GitHub
Letter ShellMIT licenseGitHub

壁纸致谢

本项目中使用的壁纸由画师 银锘 (b站@银锘诺锘) 绘制,已获得二次非商业分发的授权。

授权方式:非商业性使用,保留署名,禁止修改/转售。更多细节请联系画师本人。

致谢

• 感谢所有知道我在做这个项目并支持我的朋友,你们的鼓励是我前行的动力。

• 感谢 江协科技 提供的优质 STM32 入门教程,以及 正点原子 在 STM32、FreeRTOS、LVGL 方面的详实教学。

• 致敬所有开源工作者、网上文章与教程的分享者,是你们让知识自由流动。

• 使用 GitHub Copilot 等 AI 工具,在开发过程中提供了高效辅助。

联系与支持

• 作者 QQ:3793000877 或 交流群:1078563324(更建议直接qq联系,沟通更便捷)

• 本项目参与嘉立创星火计划2026,如果喜欢本项目,别忘了点赞、收藏、转发,也可以让更多开源爱好者看到!

📌 项目分支与共建计划

1. 如果你受到本项目启发,希望在现有软硬件基础上进行优化改版,并作为独立项目发布:

你独立完成的硬件部分,可以自由选择是否开源、是否商用,同时建议声明该项目基于 MuseCube 二次开发。

2. 如果你希望对本项目软硬件进行优化,并以开发者身份参与共建:

你的改动经过验证后,即可成为开发者团队的一员。若项目在嘉立创星火计划中获得收益,将根据贡献程度共享收益。

3. 项目分支与优化方向

  • 外壳:改变设备形态;优化外壳结构,简化安装流程,降低装配难度。
  • 硬件:移除扬声器电路或舍弃 USB 主机功能,换取更小的体积;升级更高保真的 DAC 与运放电路;将 PCB 改为四层板以降低成本;更换主控型号、屏幕规格、输入外设或电池容量等。
  • 软件:继续推进软件功能开发(具体可联系作者沟通);根据硬件变更进行适配与移植;实现更多应用功能。
  • 项目宣传:为项目拍摄介绍视频,并发布到指定的视频平台。
  • 性能测试:测试 3.5mm 耳机输出的总谐波失真、动态范围、信噪比等。
  • 面板:设计更好看的面板。
MuseCube V1.2 — 全开源掌上终端,软硬件持续进化

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

3D模型

序号文件名称下载次数
暂无数据

附件

序号文件名称下载次数
1
muse cube case.blend
103
2
正常版本.stl
18
3
预留调试开口.stl
16
克隆工程
添加到专辑
0
0
分享
Logo GIF0
侵权投诉
知识产权声明&复刻说明

本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。

请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。

底部导航