

Hid sfp flasher
WebHIDで使えるSFP書き換えツール群
- Size
- 45 × 40 mm
- Copper layers
- 4
- Thickness
- 1.6 mm
- Parts
- 45
- Nets
- 84
- Pads
- 235
- Tracks, vias
- 470, 50
- Pours
- 1
- Routed
- Yes
- KiCad
- KiCad 10.0 (file 20260206)
- Created
- 4 Jun 2026
- Updated
- 21 Jun 2026
Overview
Hid sfp flasher is an open-source printed circuit board by nxzz, from the nxzz/SFP-Flasher repository on GitHub. It is a 4-layer board of 45 × 40 mm with 45 parts on 84 nets, routed with 470 tracks and 50 vias.
It is built around the RP2040, TLV62569DBV and W25Q16JVUXIQ, with the HC-TYPE-C-16P-01A-O, PSRV05-4MR6T1G and SMD0805B050TF among its other parts. Its parts include 17 capacitors, 12 resistors, 4 ICs, 2 switches and 1 diode. It belongs with the RP2040 boards of this library.
Main components
6RP2040
LQFN-56(7x7)12bit 133MHz 30 LQFN-56(7x7) Microcontrollers (MCU/MPU/SOC) ROHSRaspberry PiMicrocontrollers (MCU/MPU/SOC)TLV62569DBV
SOT-23-5-40℃~+125℃@(TJ) 1 1.5MHz 2.5V~5.5V 2A 600mV~5.5V Adjustable Buck Buck Built-in Yes SOT-23-5 DC-DC Converters ROHSTexas InstrumentsDC-DC ConvertersW25Q16JVUXIQ
USON-8-EP(2x3)-40℃~+85℃ 100,000 cycles 10uA 133MHz 16Mbit 2.7V~3.6V 20 Years 3ms SPI USON-8-EP(2x3) NOR FLASH ROHSWinbond ElecNOR FLASHHC-TYPE-C-16P-01A-O
SMD-25℃~+85℃ 1 10,000 cycles 16P 3A Female Orange Surface Mount, Right Angle Type-C USB 3.1 SMD USB Connectors ROHSHCTLUSB ConnectorsPSRV05-4MR6T1G
SOT-23-60.8pF 150W@8/20us 15V 4A@8/20us 5V 6V 80nA IEC 61000-4-2、IEC 61000-4-5、IEC 61000-4-4 SOT-23-6 ESD and Surge Protection (TVS/ESD) ROHSTECH PUBLICESD And Surge Protection (TVS/ESD)SMD0805B050TF
0805-40℃~+85℃ 1.25mm 1.5mm 100A 100ms 150mΩ 1A 2.2mm 500mA 500mW 6V 850mΩ 0805 Resettable Fuses ROHSBrightkingResettable Fuses
README
README.mdsfp-eerom-web
ブラウザ(WebHID)から RP2040(Pico) I2C ゲートウェイ経由で SFP モジュールの EEPROM を読み書きするツール一式。 ダンプ/解析、クローン書込(実シリアル番号を維持)、DWDM 波長設定をブラウザだけで行えます。
┌────────────┐ WebHID ┌──────────────┐ I2C ┌──────────────┐
│ ブラウザ │ ─ 64B HID ─ │ RP2040(Pico) │ ─ 0x50/ │ SFP module │
│ (web/) │ レポート │ gateway │ 0x51 ── │ EEPROM │
└────────────┘ └──────────────┘ └──────────────┘構成
| ディレクトリ | 内容 |
|---|---|
web/ | WebHID Web アプリ(Firebase Hosting にデプロイ)。ダンプ/クローン書込/DWDM 設定。詳細は web/README.md |
device-src/ | RP2040(Pico) ゲートウェイのファームウェア(PlatformIO / arduino-pico コア) |
WebHID ⇄ I2C プロトコル
64 バイト固定の HID IN/OUT レポートでコマンドをやり取りする汎用 I2C ゲートウェイです。 2 系統の I2C バスに対応します(bus0 = SDA/SCL = IO12/IO13、bus1 = IO26/IO27)。
OUT レポート(ブラウザ → デバイス, 64B):
| オフセット | 内容 |
|---|---|
[0] seq | 任意のシーケンス番号(応答にそのままエコー) |
[1] cmd | 0x00 PING / 0x01 READ / 0x02 WRITE / 0x03 SCAN |
[2] bus | 0 or 1 |
[3] addr | 7bit I2C アドレス |
[4] reg | レジスタ/オフセット(READ/WRITE 開始位置) |
[5] len | READ=読み出しバイト数 / WRITE=書き込みバイト数 |
[6..] | WRITE データ |
IN レポート(デバイス → ブラウザ, 64B):
| オフセット | 内容 |
|---|---|
[0] seq | 要求の seq をエコー |
[1] status | 0x00 OK / 0x01 NACK / 0x02 BADARG / 0x03 TOOBIG |
[2] len | 有効データ長 |
[3..] | データ(READ=読み出し値 / SCAN=見つかったアドレス列 / PING=版数) |
- READ は 1 回最大 61 バイト、WRITE は 1 回最大 58 バイト。
- WRITE は 8 バイトページ境界を跨がないよう Web アプリ側で自動分割します(24Cxx 系 EEPROM 対策)。
デバイスのビルド/書き込み
PlatformIO を使用します(arduino-pico / Earle Philhower コア、USB スタックは Adafruit TinyUSB)。
cd device-src
pio run # ビルド
pio run --target upload # Pico へ書き込み(BOOTSEL でマウント)Web アプリの実行
cd web
npx serve .
# → 表示された http://localhost:xxxx を Chrome / Edge で開くデプロイ手順や機能の詳細は web/README.md を参照してください。
動作要件
- Chrome / Edge など Chromium 系ブラウザ(WebHID 対応。iOS Safari は非対応。Android Chrome は対応)
- RP2040(Pico) ゲートウェイ(
device-src/のファームウェアを書き込んだもの)
注意
クローン書込は SFP の EEPROM を上書きします。先に「ダンプ/解析」でバックアップを取得してください。
Parts
45| Qty | Value | Footprint | References |
|---|---|---|---|
| 11 | 0.1u | Capacitor_SMD:C_0402_1005Metric | C3, C6, C7, C10, C11, C12, C13, C14, C15, C16, C18 |
| 4 | 10k | Resistor_SMD:R_0402_1005Metric | R17, R18, R19, R20 |
| 4 | MountingHole | MountingHole:MountingHole_3.2mm_M3 | H1, H1, H1, H2 |
| 2 | 1k | Resistor_SMD:R_0402_1005Metric | R7, R8 |
| 2 | 1u | Capacitor_SMD:C_0402_1005Metric | C8, C9 |
| 2 | 30pF | Capacitor_SMD:C_0603_1608Metric | C1, C2 |
| 2 | 33 | Resistor_SMD:R_0402_1005Metric | R3, R4 |
| 2 | 5.1k | Resistor_SMD:R_0402_1005Metric | R1, R2 |
| 1 | 10u | Capacitor_SMD:C_0603_1608Metric | C5 |
| 1 | 15k | Resistor_SMD:R_0603_1608Metric | R6 |
| 1 | 2.2u 3A | Alipart:CMLW4030S2R2MST | L1 |
| 1 | 4.7u | Capacitor_SMD:C_0603_1608Metric | C4 |
| 1 | 68k | Resistor_SMD:R_0603_1608Metric | R5 |
| 1 | HC-TYPE-C-16P-01A-O | lcsc:USB-C-SMD_G-SWITCH_GT-USB-7010EN | USB1 |
| 1 | PSRV05-4MR6T1G | lcsc:SOT-23-6_L2.9-W1.6-P0.95-LS2.8-BL | D1 |
| 1 | QSFP28 38PIN 49091-01M311 | lcsc:CONN-SMD_38P-P0.80_TE_1551920-2 | U4 |
| 1 | RESET | Button_Switch_SMD:SW_SPST_PTS810 | SW2 |
| 1 | RP2040 | lcsc:LQFN-56_L7.0-W7.0-P0.4-EP | U1 |
| 1 | SFP+ | Library:SFP20P | J1 |
| 1 | SMD-3225_4P12M20PF10PPM | lcsc:CRYSTAL-SMD_4P-L3.2-W2.5-BL | X1 |
| 1 | SMD0805B050TF | lcsc:F0805 | F1 |
| 1 | TLV62569DBV | Package_TO_SOT_SMD:SOT-23-5 | U3 |
| 1 | USB_BOOT | Button_Switch_SMD:SW_SPST_PTS810 | SW1 |
| 1 | W25Q16JVUXIQ | lcsc:USON-8_L3.0-W2.0-P0.50-BL-EP | U2 |
Similar boards
- 4 layers149.6 × 98 mm

- 4 layers104 × 168 mm

- 4 layers190 × 100 mm

Rioctrl controller
festlv/rioctrl-hw
Hardware design for modular CNC controller
281 parts16CERN-OHL-S-2.0 - 6 layers50 × 60 mm

Tuxkeychain
electron271/tuxkeychain
Keychain shaped like Tux that can run Linux.
56 parts18CC-BY-SA-4.0 - 4 layers99.5 × 99.5 mm

- 4 layers58.4 × 54 mm

- 2 layers285 × 94.6 mm

- 4 layers102.4 × 42 mm

MK4001MTD USB Reader
will127534/MK4001MTD-USB-Bridge
The MK4001MTD is a 4 GB Microdrive originally used in the Nokia N91 music phone and some other devices, like MP3 players or USB drives, back when flash storage was still quite expensive.
69 parts46
Questions
How big is the Hid sfp flasher PCB?
It measures 45 × 40 mm and has 4 copper layers, 1.6 mm thick.
What parts does the Hid sfp flasher use?
45 parts, built around the RP2040, TLV62569DBV, W25Q16JVUXIQ and HC-TYPE-C-16P-01A-O. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
Where can I download the Hid sfp flasher KiCad files?
From the nxzz/SFP-Flasher repository on GitHub, at the commit this page was made from: the board is pcb/hid-sfp-flasher.kicad_pcb and its schematic pcb/hid-sfp-flasher.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Hid sfp flasher design in my own project?
Its repository states no licence, so its author keeps all rights: ask nxzz before reusing the design.