English | 中文
U3LogicAnalyzer 是配套 CH32H417 / CH569 USB 逻辑分析仪的 PC 上位机软件,基于 PulseView 0.5.0 修改,内置裁剪后的 sigrok 软件栈(libsigrok + libsigrokdecode), 支持 130 种协议解码(I²C / SPI / UART 等)。
- 硬件支持:CH32H417(USB3.0,最高 200MHz 采样)、CH569 热插拔检测
- Windows:原厂 CH375 驱动模式(CH375DLL)
- macOS / Linux:驱动内置 libusb 传输层,无需任何内核驱动(协议参考 WCH 官方 CH37X_LINUX SDK)
- 固件升级:IAP 对话框(HID 模式全平台可用;CH375 模式仅 Windows)
- 软件更新:通过 GitHub Releases 检查新版本
- 解码通道分配对话框
- 中文界面、深色主题、全新工具栏图标
- 130 个协议解码器
- 解码器自动发现:无需设置
SIGROKDECODE_DIR环境变量 - macOS 应用打包(.app)
- 应用名:U3LogicAnalyzer
固件工程位于仓库中的 firmware,包含 APP、IAP 以及 V3F/V5F 工程文件和已生成固件。
原工程链接:OSHWHub - CH32H417 Logic Analyzer
sigrok 后端 libsigrok(含 wch-ch32h417 驱动与 libusb 传输层)和协议解码器
libsigrokdecode(130 个)随仓库一同分发,clone 后即可构建:
git clone <仓库地址> U3LogicAnalyzer
cd U3LogicAnalyzer
./build_macos.sh构建脚本仍支持环境变量 LIBSIGROK_SRC / LIBSIGROKDECODE_SRC 指向其他
源码目录,或在前一级目录放置同名目录,便于复用自定义版本。
目录结构:
U3LogicAnalyzer/
├── main.cpp / CMakeLists.txt / pv/ # 上位机源码
├── libsigrok/ # sigrok 后端(含 wch-ch32h417 驱动)
├── libsigrokdecode/ # 130 个协议解码器
├── build_macos.sh # macOS / Linux 构建脚本
├── build_windows.sh # Windows(MSYS2)构建脚本
├── package_app.sh # macOS .app / DMG 打包
└── .github/workflows/build.yml # CI:三平台构建 + tag 发布
macOS(Homebrew):
brew install pkgconf cmake ninja qt@5 glibmm@2.66 glib libusb hidapi \
libzip boost python@3.14Linux(Debian/Ubuntu 示例,包名以发行版为准):
sudo apt install build-essential cmake ninja-build pkg-config \
qtbase5-dev qttools5-dev libqt5svg5-dev \
libglib2.0-dev libglibmm-2.4-dev libusb-1.0-0-dev \
libhidapi-dev libzip-dev libboost-dev libboost-filesystem-dev \
libboost-serialization-dev python3-devcd U3LogicAnalyzer
./build_macos.sh # 构建(产物在 build/,已被 .gitignore 忽略)
./build_macos.sh --clean # 全量重编(改过驱动或 CMake 后建议先 clean)脚本按顺序构建并安装到 build/install/:libsigrok(含 wch-ch32h417 驱动)
→ libsigrokcxx → libsigrokdecode(130 个解码器)→ LogicAnalyzer。
产物:build/pulseview_build/LogicAnalyzer
./build_macos.sh --run # 构建后直接启动
# 或手动:
./build/pulseview_build/LogicAnalyzer解码器会自动发现(优先 .app 内 Contents/Resources/decoders,其次安装前缀、
构建树),无需任何环境变量。
实机调试时可带日志级别运行:
./build/pulseview_build/LogicAnalyzer -l 5正常时日志应出现 Scan found 1 devices (wch-ch32h417),采集时出现连续的
Read ... bytes from pipe。
./package_app.sh # 生成 build/U3LogicAnalyzer.app
./package_app.sh --dmg # 再生成 build/U3LogicAnalyzer.dmg
open build/U3LogicAnalyzer.dmg # 打开后拖到 Applications 即完成安装build/U3LogicAnalyzer.app 完全自包含(Qt5 框架、sigrok 库及其全部依赖、
Python 运行时、130 个解码器、应用图标),可在 Finder 中双击运行。
build/U3LogicAnalyzer.dmg(约 70-80MB)内含 app 和 /Applications 快捷链接。
Windows 使用 MSYS2 MINGW64 环境,完整流程见配套发布包中的
README_CH32H417.md:
./setup_env.sh # 首次部署编译环境
./build.sh # 编译(或 ./build.sh --package 打包)
cd build_cmake/logicanalyzer_build && ./LogicAnalyzer.exe # 运行也可以直接用仓库内的 build_windows.sh(依赖用 pacman 安装,见脚本头部
注释),产物为 build/LogicAnalyzer-win64.zip(exe + DLL + 解码器 + run.bat)。
.github/workflows/build.yml 会在以下时机自动构建 macOS / Linux / Windows
三个平台版本:
- push 到
master或提交 PR:构建并上传构建产物(Actions artifacts) - 推送
v*标签(如git tag v1.1 && git push origin v1.1):构建后自动创建 GitHub Release,附带三个平台的安装包:U3LogicAnalyzer.dmg(macOS 安装镜像,拖拽安装)U3LogicAnalyzer-linux.tar.gz(Linux 二进制 + 解码器,需系统 Qt5/glib 等依赖)LogicAnalyzer-win64.zip(Windows 免安装包:exe + DLL + 解码器 + run.bat)
wch-ch32h417驱动的 CH375 驱动模式仅 Windows;macOS / Linux 使用 libusb 传输层。- IAP 的 CH375 模式仅 Windows;HID 模式全平台可用。
- U3 定制全量同步:品牌改名为 U3LogicAnalyzer、中文界面、CH32H417/CH569 设备支持、IAP 固件升级对话框、解码通道分配对话框、深色主题、新图标、 中文本地化翻译。
- macOS / Linux 适配:
build_macos.sh一键构建(libsigrok → libsigrokcxx → libsigrokdecode → LogicAnalyzer)package_app.sh打包 .app(macdeployqt + 依赖闭包 + ad-hoc 签名)- libsigrok 的
ch375_wrapper.c新增非 Windows 的 libusb 传输层(异步 缓冲上传模式,等价 Windows CH375DLL 语义) - 修复 clang 编译问题:缺返回类型声明、
std::thread成员函数指针、 Windows API 无条件引用、boost_system组件、-Wl,-Bdynamic等 - 修复崩溃:
unit_size_temp除零(16 通道场景) - 解码器自动发现(
main.cpp自动探测解码器目录;libsigrokdecode的 编译期DECODERS_DIR放开到所有平台)
- 应用名统一为 U3LogicAnalyzer(.app 包名、Info.plist、窗口标题)。
- 解码器菜单是空的? 现在已自动发现解码器;若仍为空,检查
build/install/share/libsigrokdecode/decoders是否存在,或设置SIGROKDECODE_DIR指向它后重启。 - 插上设备但扫描不到? 先
./LogicAnalyzer -l 5看日志;macOS/Linux 下 驱动为 libusb 传输层,确认lsusb/system_profiler SPUSBDataType能看到 1a86:5537。 - 打包后无法启动? 确认使用的是 qt@5 的 macdeployqt(脚本已固定),且
机器上没有残留的旧
build/LogicAnalyzer.app。
本项目基于 PulseView(sigrok 项目)修改,遵循 GNU 通用公共许可证(GPL) 第 3 版或更高版本(GPLv3+)。个别源码文件采用 GPLv2+、GPLv3+ 或 MIT 许可; 由于程序整体链接 GPLv3+ 库,程序整体按 GPLv3+ 授权。
随仓库分发的 libsigrok 与 libsigrokdecode 同样为 GPLv3+(树内均含
COPYING 文件);其中新增的 wch-ch32h417 驱动(含 libusb 传输层)版权归
Q2H2,文件头已标注 GPLv3 许可。
请参阅各源码文件头部了解完整版权信息。第三方资源(Tango 图标、 QDarkStyleSheet、DarkStyle、QHexView、ExprTk 等)的作者与许可信息保留在 英文 README.md 的 "Resource authors and licenses" 一节。
sigrok 项目主页:https://sigrok.org/wiki/PulseView
