diff --git a/README.md b/README.md index 6371c9b..7c88bcb 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,191 @@ -# Power-Pico -文件夹分层结构: +

+ 中文 | English +

+
+

Power-Pico

+

一款产品级的便携式 USB 电流表与低功耗测量分析仪

+ + + + + + +
+ + +
+ +--- + +## 📖 项目简介 + +**Power-Pico** 不仅仅是一个 USB 电流表。它是专为嵌入式开发者设计的**高精度低功耗分析工具**。针对传统电流表在 $\mu A$ 级别测量时的物理局限性,Power-Pico 采用了创新的**多档位自动切换采样**设计,实现了从 $1\mu A$ 到 $5A$ 的全量程覆盖。 + +
+ 展示图 +
+ +### ✨ 核心特性 +- **uA 级高精度**:采用 INA190 零漂移放大器,配合三档电阻分段采样。 +- **协议诱骗**:支持 PD2.0 PPS 协议诱骗,最高支持 20V/5A 诱骗输出。 +- **高性能 UI**:基于 STM32F411 + LVGL v9.2,提供丝滑的实时波形显示。 +- **跨平台上位机**:配套 PySide6 开发的 Power-Pico Client,支持数据导出与实时功耗分析。 +- **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爆炸图如下图所示: + +
+ +
+ 3D爆炸左侧图 +
+ +
+ 3D爆炸右侧图 +
+
+ +### 4. 上位机运行 +安装PowerPico Client使用即可,目前只支持window。 + +## 🛠️ 使用说明 + +1. 硬件操作说明 + + Power-Pico的按键操作说明,和各个界面展示,如下图所示。顶部按键为 **换页/Boot** 按键,长按住顶部按键再上电,会直接进入Boot模式强制升级模式。 + + Power-Pico硬件目前只支持 **中文简体/English** 2种语言。 + +
+ +
+ 按键说明图 +
+ +
+ 开机界面图 +
+ +
+ main界面图 +
+ +
+ +
+ +
+ 设置界面图 +
+ +
+ PPS界面1 +
+ +
+ PPS界面2 +
+ +
+ +2. 客户端操作说明 + + PowerPico Client电脑客户端可以用于波形查看、记录、导出;能够进行对下位机硬件的固件升级。客户端目前支持 **中文简体/中文繁体/English/日本語** 4种语言。 + + PowerPico Client客户端上位机的具体使用方法详见:[客户端操作说明](https://no-chicken.com/content/Power-Pico/UserManual/client_operation.html) + +
+ +
+ 波形界面图 +
+ +
+ 固件升级界面 +
+ +
+ +
+ 波形界面图2 +
+ +
+ 设置界面 +
+ +
+ +## 📂 项目结构 +```text +Power-Pico/ +├── Firmware/ # 固件,包括BootLoader.hex和App.bin +├── Hardware/ # 原理图 +├── 3D models/ # STL文件,用于3D打印外壳 +└── Software/ # PowerPico的MDK软件工程,包括BootLoader和App +``` + +## 💻代码框架 + +跟以前的项目一样,采用了 BootLoader + App 的结构,方便USB升级。程序分区如下图所示。 + + +
+ flash分区图 +
+ +使用USB进行高速数据传输,数据包组成如下图所示。每个数据包100组数据,加上头共计711Bytes。 +
+ 数据包结构图 +
+ +📖 参考资料 + + + +🤝 提交共享 + +欢迎提交 Issue 或 Pull Request 来增加项目功能,或修改代码bug!! diff --git a/README_EN.md b/README_EN.md new file mode 100644 index 0000000..d536c7e --- /dev/null +++ b/README_EN.md @@ -0,0 +1,191 @@ +

+ 中文 | English +

+ +
+

Power-Pico

+

A Product-Grade Portable USB Ammeter and Low-Power Measurement Analyzer

+ + + + + + +
+ + +
+ +--- + +## 📖 Project Introduction + +**Power-Pico** is more than just a USB ammeter. It is a **high-precision, low-power analysis tool** designed specifically for embedded developers. To overcome the physical limitations of traditional ammeters in the μA-level measurement, Power-Pico adopts an innovative **multi-range auto-switching sampling** design, achieving full-range coverage from $1\mu A$ to $5A$. + +
+ Display +
+ +### ✨ Core Features +- **μA-Level High Precision**: Utilizes the INA190 zero-drift amplifier with three-resistor segmented sampling. +- **Protocol Trigger**: Supports PD2.0 PPS protocol triggering, with up to 20V/5A output. +- **High-Performance UI**: Based on STM32F411 + LVGL v8.3, providing a smooth real-time waveform display. +- **Cross-Platform PC Client**: Comes with the Power-Pico Client developed with PySide6, supporting data export and real-time power analysis. +- **3D Printed Enclosure**: Provides a complete design for a 3D printed enclosure and acrylic panel. + +--- + +## 🛠️ Hardware Parameter Analysis + +| Module | Model | Advantage | +| :--- | :--- | :--- | +| **MCU** | STM32F411CEU6 | 100MHz high frequency, supports DSP instructions to accelerate waveform processing | +| **Current Sensing** | INA190 | 0.5nA input bias current, the core guarantee for μA-level measurement | +| **ADC** | 12-bit (STM32 Internal) | Achieves high-speed stable sampling above 10kHz with DMA | +| **Screen** | 1.54" TFT (ST7789) | 240x240 resolution, high-contrast display | + +--- + +## 🚀 Quick Replication + +### 1. Hardware +Solder the hardware yourself, or purchase a pre-soldered and assembled kit from Taobao. +LCSC Open Source Hub page: https://oshwhub.com/no_chicken/powerpico + +### 2. Firmware Compilation and Flashing +The project is developed based on Keil MDK: +1. Clone the repository: `git clone https://github.com/kingham/Power-Pico.git` +2. Flash the BootLoader via the SWD port. +3. Compile PowerPico yourself. The generated `.bin` file can then be flashed using the PowerPico Client. + +### 3. Assembly + +The physical assembly is shown in the figure below: + + +The exploded 3D view is as follows: + +
+ +
+ 3D Exploded View Left +
+ +
+ 3D Exploded View Right +
+
+ +### 4. Running the PC Client +Install and use the PowerPico Client. Currently, it only supports Windows. + +## 🛠️ User Guide + +1. Hardware Operation + + The button operations and various interface displays of Power-Pico are shown below. The top button is the **Page Switch/Boot** button. Press and hold the top button before powering on to enter Boot mode for a forced firmware upgrade. + + The Power-Pico hardware currently supports 2 languages: **Simplified Chinese/English**. + +
+ +
+ Button Functions +
+ +
+ Startup Page +
+ +
+ Main Page +
+ +
+ +
+ +
+ Settings Page +
+ +
+ PPS Page 1 +
+ +
+ PPS Page 2 +
+ +
+ +2. Client Operation + + The PowerPico Client for PC can be used for waveform viewing, recording, exporting, and upgrading the firmware of the hardware. The client currently supports 4 languages: **Simplified Chinese/Traditional Chinese/English/Japanese**. + + For detailed instructions on using the PowerPico Client, please refer to: [Client Operation Manual](https://no-chicken.com/content/Power-Pico/UserManual/client_operation.html) + +
+ +
+ Waveform Interface +
+ +
+ Firmware Upgrade Interface +
+
+
+ +
+ Waveform Interface 2 +
+ +
+ Settings Interface +
+ +
+ +## 📂 Project Structure +```text +Power-Pico/ +├── Firmware/ # Firmware, including BootLoader.hex and App.bin +├── Hardware/ # Schematics +├── 3D models/ # STL files for 3D printing the enclosure +└── Software/ # MDK software project for PowerPico, including BootLoader and App +``` + +## 💻 Code Framework + +Similar to previous projects, it uses a BootLoader + App structure for easy USB upgrades. The program partitioning is shown below. + + +
+ Flash Partitioning +
+ +High-speed data transmission is performed via USB. The data packet structure is shown below. Each packet contains 100 data sets, totaling 711 bytes including the header. +
+ Data Packet Structure +
+ +📖 References + + + +🤝 Contribute + +Welcome to submit Issues or Pull Requests to add new features to the project or fix code bugs!! diff --git a/images/boom.gif b/images/boom.gif new file mode 100644 index 0000000..3257173 Binary files /dev/null and b/images/boom.gif differ diff --git a/images/boom.png b/images/boom.png new file mode 100644 index 0000000..fad19e9 Binary files /dev/null and b/images/boom.png differ diff --git a/images/firmware_client.png b/images/firmware_client.png new file mode 100644 index 0000000..6946893 Binary files /dev/null and b/images/firmware_client.png differ diff --git a/images/flash.png b/images/flash.png new file mode 100644 index 0000000..939bb9b Binary files /dev/null and b/images/flash.png differ diff --git a/images/key_func.png b/images/key_func.png new file mode 100644 index 0000000..8be4bf2 Binary files /dev/null and b/images/key_func.png differ diff --git a/images/main2316.png b/images/main2316.png new file mode 100644 index 0000000..62c95c0 Binary files /dev/null and b/images/main2316.png differ diff --git a/images/main_page.png b/images/main_page.png new file mode 100644 index 0000000..4bd2e14 Binary files /dev/null and b/images/main_page.png differ diff --git a/images/pps_page1.png b/images/pps_page1.png new file mode 100644 index 0000000..325358b Binary files /dev/null and b/images/pps_page1.png differ diff --git a/images/pps_page2.png b/images/pps_page2.png new file mode 100644 index 0000000..89d9a45 Binary files /dev/null and b/images/pps_page2.png differ diff --git a/images/protocol.png b/images/protocol.png new file mode 100644 index 0000000..e92b743 Binary files /dev/null and b/images/protocol.png differ diff --git a/images/set_client.png b/images/set_client.png new file mode 100644 index 0000000..0584818 Binary files /dev/null and b/images/set_client.png differ diff --git a/images/set_page.png b/images/set_page.png new file mode 100644 index 0000000..ca4cf66 Binary files /dev/null and b/images/set_page.png differ diff --git a/images/startup_page.png b/images/startup_page.png new file mode 100644 index 0000000..44abee6 Binary files /dev/null and b/images/startup_page.png differ diff --git a/images/wave_client1.png b/images/wave_client1.png new file mode 100644 index 0000000..16cdc7f Binary files /dev/null and b/images/wave_client1.png differ diff --git a/images/wave_client2.png b/images/wave_client2.png new file mode 100644 index 0000000..cd53a83 Binary files /dev/null and b/images/wave_client2.png differ