From 7e2f1c7914aa51b49ac07a43dda955b303afa450 Mon Sep 17 00:00:00 2001 From: jff Date: Thu, 8 Jan 2026 16:17:30 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0README=E8=BF=9B=E8=A1=8C?= =?UTF-8?q?=E8=A1=A5=E5=85=85=E4=BD=BF=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 137 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 137 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..4f167dc --- /dev/null +++ b/README.md @@ -0,0 +1,137 @@ +# RP2350 + +## 前提: + +### 编译基础: + +`apt install cmake gcc-arm-none-eabi libnewlib-arm-none-eabi build-essential git python3 libstdc++-arm-none-eabi-newlib -y ` + +### 获取Pico SDK + +`git clone -b master https://github.com/raspberrypi/pico-sdk.git` + +`git submodule update --init` + +`export PICO_SDK_PATH=~/pico/pico-sdk` + +### 获取本项目源码: + +`git clone http://192.168.201.136:3000/jb/spmkey.git` + +`git submodule update --init --recursive` + + +本项目优先使用:微雪RP2350-USB-A(GPIO 16 连接 WS2812B RGB LED,已加入支持ws2812B,其他的自救) + +注意:26年以前的微雪RP2350是A2版本,存在安全漏洞,建议考虑:A4版 + +移植来自微雪RB2350 RGB例程,出bug,自救 + + +## fido-pico2支持的模拟PID/VID + +| 平台名称 (VIDPID 参数) | VID (厂商 ID) | PID (产品 ID) | 说明 | +|----|----|----|----| +| **NitroHSM** | `0x20A0` | `0x4230` | Nitrokey HSM | +| **NitroFIDO2** | `0x20A0` | `0x42B1` | Nitrokey FIDO2 | +| **NitroStart** | `0x20A0` | `0x4211` | Nitrokey Start | +| **NitroPro** | `0x20A0` | `0x4108` | Nitrokey Pro | +| **Nitro3** | `0x20A0` | `0x42B2` | Nitrokey 3 | +| **Yubikey5** | `0x1050` | `0x0407` | Yubico YubiKey 5 | +| **YubikeyNeo** | `0x1050` | `0x0116` | Yubico YubiKey NEO | +| **YubiHSM** | `0x1050` | `0x0030` | Yubico YubiHSM | +| **Gnuk** | `0x234B` | `0x0000` | Gnuk Token | +| **GnuPG** | `0x1209` | `0x2440` | GnuPG Smartcard | + +默认值:VID是:0xFEFF,PID:0xFCFD + +参考文件:pico-fido2/pico-keys-sdk/pico_keys_sdk_import.cmake + +cmake 参数:`cmake .. -DVIDPID=Yubikey5`或者 `cmake .. -DVIDPID=NitroFIDO2` + + +## pico-fido2其他参数 + +一键查看参数:grep -n "Pico Key|picokeys|PRODUCT|string_desc" + +参考文件: + +pico-fido2/pico-keys-sdk/src/usb/usb_descriptors.c + +pico-fido2/pico-keys-sdk/src/led/led_ws2812.c + +main 文件:pico-keys-sdk/src/main.c + +已经微调加入参数: + +| CMake参数 | 类型 | 示例 | 作用 | +|----|----|----|----| +| `-DUSB_MANUFACTURER` | 字符串 | `'"SPM-A2"'` | 设备名称 | +| `-DVIDPID` | 字符串 | `'"Yubico"'` | 制造商PID/VID | +| `-LED_BRIGHTNESS_DIV` | 数字 | `20(对应下方5%) ` | LED亮度(越大越暗) | + +亮度值说明 + +参考CMake编译命令: + +`cmake -DUSB_PRODUCT='"YubiKey-Alice"' \ -DUSB_MANUFACTURER='"Yubico"' \ -DUSB_LANDING_URL='"www.baidu.com"' \ -DLED_BRIGHTNESS_DIVISOR=20 \` + + +## 亮度参考表 + +| LED_BRIGHTNESS_DIV | 实际亮度 | 效果 | +|----|----|----| +| 1 | 100% | 非常亮 | +| 2 | 50% | 很亮 | +| 5 | 20% | 适中 | +| 10 | 10% | 较暗 | +| 20 | 5% | **默认**,暗,仍可见 | +| 50 | 2% | 最暗(自动限制) | +| >50 | 2% | 自动限制为最小 | + + +### 启用WS2812B(默认已配置) + +LED 配置(主CMakeLists.txt)启用ws2812 + +编辑文件:pico-fido2/CMakeLists.txt + +endif(ENABLE_OTP_APP)下方加入 + +#### WS2812 LED 配置 + +add_definitions(-DPICO_DEFAULT_WS2812_PIN=16) + +message(STATUS "WS2812 LED Pin: \\t\\t 16") + +#### 验证: + +cmake 输出显示:-- WS2812 LED Pin: 16 + + +## 编译 + +```javascript +PICO_SDK_PATH=~/pico/pico-sdk cmake .. \ + -DPICO_BOARD=pico2 \ + -DVIDPID=Yubikey5 \ + -DUSB_MANUFACTURER="Yubico" \ + -DUSB_PRODUCT_NAME="SPM-A2" \ + -DLED_BRIGHTNESS_DIV=20 + +make -j$(nproc) + +``` + + +注意:每次重新编译建议把build文件清空 + + +## 刷机 + +长按BOOT接电,把uf2文件复制到RP2350分区即可(自动重启) + + +备注支持查看本仓库的SupportList.md文件 + +