# PowerPico
**Repository Path**: kingham/power-pico
## Basic Information
- **Project Name**: PowerPico
- **Description**: 便携USB CC表,低功耗分析仪,高精度电流采样,支持 PD3.0 PPS 协议诱骗充当可调电源。配合优雅上位机,为电子设备提供全方位的功耗监控~
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2026-03-02
- **Last Updated**: 2026-03-03
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
中文 | English
---
## 📖 项目简介
**Power-Pico** 不仅仅是一个 USB 电流表。它是专为嵌入式开发者设计的**高精度低功耗分析工具**。针对传统电流表在 $\mu A$ 级别测量时的物理局限性,Power-Pico 采用了创新的**多档位自动切换采样**设计,实现了从 $1\mu A$ 到 $5A$ 的全量程覆盖。
bilibili主页 |
演示视频 |
硬件开源
### ✨ 核心特性
- **uA 级高精度**:采用 INA190 零漂移放大器,配合三档电阻分段采样。
- **协议诱骗**:支持 PD2.0 PPS 协议诱骗,最高支持 20V/5A 诱骗输出。
- **高性能 UI**:基于 STM32F411 + LVGL v9.2,提供丝滑的实时波形显示。
- **优雅上位机**:配套 PySide6 开发的 Power-Pico Client,支持数据导出与实时功耗分析。
- **通用Type-C**:全部接口都是Typec-C,可以方便的外接Type-C转鳄鱼头等接头。
- **3D打印外壳**:提供完整的方便用户组装的 3D 打印外壳与亚克力面板设计方案。
---
## 🛠️ 硬件参数分析
| 模块 | 选型 | 优势 |
| :--- | :--- | :--- |
| **主控** | STM32F411CEU6 | 100MHz 高主频,支持 DSP 指令加速波形处理 |
| **电流采样** | INA190 | 0.5nA 输入偏置电流,μA 级测量的核心保证 |
| **ADC** | 12-bit (STM32 Internal) | 配合 DMA 实现 10kHz 以上的高速稳定采样 |
| **屏幕** | 1.54" TFT (ST7789) | 240x240 分辨率,高对比度显示 |
---
## 🚀 快速复刻
### 1.硬件
自行焊接硬件,或购买淘宝已经焊接组装好的套件
立创硬件开源界面:https://oshwhub.com/no_chicken/powerpico
### 2. 固件自行编译烧录
项目基于 Keil MDK 开发:
1. 克隆仓库:`git clone https://github.com/kingham/Power-Pico.git`
2. SWD口烧录BootLoader
3. 自行编译PowerPico,编译好生成的`.bin`文件再使用PowerPico Client烧录即可
### 3. 结构组装
实物组装如下图所示:
3D爆炸图如下图所示:
### 4. 上位机运行
安装PowerPico Client使用即可,目前只支持windows操作系统。
## 🛠️ 使用说明
1. 硬件操作说明
Power-Pico的按键操作说明,和各个界面展示,如下图所示。顶部按键为 **换页/Boot** 按键,长按住顶部按键再上电,会直接进入Boot模式强制升级模式。
Power-Pico硬件目前只支持 **中文简体/English** 2种语言。
2. PPS诱骗操作说明
首先进入setting界面,来到诱骗选项,点击确认,进入诱骗,然后即可进行电压调节。注意:目前只支持 PPS 诱骗!测试时需要看下充电头协议支持!
3. 客户端操作说明
PowerPico Client电脑客户端可以用于波形查看、记录、导出;能够进行对下位机硬件的固件升级。客户端目前支持 **中文简体/中文繁体/English/日本語** 4种语言。
PowerPico Client客户端上位机的具体使用方法详见:[客户端操作说明](https://no-chicken.com/content/Power-Pico/UserManual/client_operation.html)
## 🔍️ 精度测量
注意: Type-C接口线的电源和GND之间是有电阻的,一般是MΩ级别,会影响测量
使用 SDM3055 六位半万用表进行对比,如下图所示:
| SDM3055示数 | Power-Pico示数 | 绝对误差 | 相对误差 |
| :--- | :--- | :--- | :--- |
| 52.03 uA | 52.05 uA | 0.02uA | 0.4% |
| 518.84 uA | 518.4 uA | 0.5 uA | 1.0% |
| 5.22 mA | 5.29 mA | 0.07 mA | 1.3% |
| 469.3 mA | 482.7 mA | 13.4 mA | 2.9% |
| 1.78 A | 1.81 A | 0.03 A | 1.7% |
| 5.19 V | 5.24 V | 0.05 V | 1.0% |
| 15.20 V | 15.56 V | 0.36 V | 2.4% |
| 19.98 V | 20.17 V | 0.19 V | 1.0% |
---
## 📂 项目结构
```text
Power-Pico/
├── Firmware/ # 固件,包括BootLoader.hex和App.bin
├── Hardware/ # 原理图
├── 3D models/ # STL文件,用于3D打印外壳
└── Software/ # PowerPico的MDK软件工程,包括BootLoader和App
```
---
## 💻代码框架
跟以前的项目一样,采用了 BootLoader + App 的结构,方便USB升级。程序分区如下图所示。
- 起始的sector0,1,2的48kB区域为BootLoader区域
- 第3个sector的16kB区域为升级信息区域,用于开机校检App完整性,具体的校检内容详见BootLoader代码
- 从0x08010000第4个扇区开始后的区域,都为App区域(之所以不做AB分区是片上Flash不够)
使用USB进行高速数据传输,数据包组成如下图所示。每个数据包100组数据,加上头共计711Bytes。
---
## 📖 参考资料
---
## 🤝 提交共享
欢迎提交 Issue 或 Pull Request 来增加项目功能,或修改代码bug!!