Skip to the content
4 layers45 × 40 mmHid sfp flasher, the printed circuit board in 3D

Hid sfp flasher

nxzz/SFP-Flasher1

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

6

README

README.md

sfp-eerom-web

ブラウザ(WebHID)から RP2040(Pico) I2C ゲートウェイ経由で SFP モジュールの EEPROM を読み書きするツール一式。 ダンプ/解析、クローン書込(実シリアル番号を維持)、DWDM 波長設定をブラウザだけで行えます。

text
┌────────────┐   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] cmd0x00 PING / 0x01 READ / 0x02 WRITE / 0x03 SCAN
[2] bus0 or 1
[3] addr7bit I2C アドレス
[4] regレジスタ/オフセット(READ/WRITE 開始位置)
[5] lenREAD=読み出しバイト数 / WRITE=書き込みバイト数
[6..]WRITE データ

IN レポート(デバイス → ブラウザ, 64B):

オフセット内容
[0] seq要求の seq をエコー
[1] status0x00 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)。

bash
cd device-src
pio run                 # ビルド
pio run --target upload  # Pico へ書き込み(BOOTSEL でマウント)

Web アプリの実行

bash
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
QtyValueFootprintReferences
110.1uCapacitor_SMD:C_0402_1005MetricC3, C6, C7, C10, C11, C12, C13, C14, C15, C16, C18
410kResistor_SMD:R_0402_1005MetricR17, R18, R19, R20
4MountingHoleMountingHole:MountingHole_3.2mm_M3H1, H1, H1, H2
21kResistor_SMD:R_0402_1005MetricR7, R8
21uCapacitor_SMD:C_0402_1005MetricC8, C9
230pFCapacitor_SMD:C_0603_1608MetricC1, C2
233Resistor_SMD:R_0402_1005MetricR3, R4
25.1kResistor_SMD:R_0402_1005MetricR1, R2
110uCapacitor_SMD:C_0603_1608MetricC5
115kResistor_SMD:R_0603_1608MetricR6
12.2u 3AAlipart:CMLW4030S2R2MSTL1
14.7uCapacitor_SMD:C_0603_1608MetricC4
168kResistor_SMD:R_0603_1608MetricR5
1HC-TYPE-C-16P-01A-Olcsc:USB-C-SMD_G-SWITCH_GT-USB-7010ENUSB1
1PSRV05-4MR6T1Glcsc:SOT-23-6_L2.9-W1.6-P0.95-LS2.8-BLD1
1QSFP28 38PIN 49091-01M311lcsc:CONN-SMD_38P-P0.80_TE_1551920-2U4
1RESETButton_Switch_SMD:SW_SPST_PTS810SW2
1RP2040lcsc:LQFN-56_L7.0-W7.0-P0.4-EPU1
1SFP+Library:SFP20PJ1
1SMD-3225_4P12M20PF10PPMlcsc:CRYSTAL-SMD_4P-L3.2-W2.5-BLX1
1SMD0805B050TFlcsc:F0805F1
1TLV62569DBVPackage_TO_SOT_SMD:SOT-23-5U3
1USB_BOOTButton_Switch_SMD:SW_SPST_PTS810SW1
1W25Q16JVUXIQlcsc:USON-8_L3.0-W2.0-P0.50-BL-EPU2

Similar boards

  • 4 layers149.6 × 98 mmMch2022, the printed circuit board in 3D

    Mch2022

    kitspace-test-repos/kicad6-file-collection

    235 partsMIT
  • 4 layers190 × 100 mmRioctrl controller, the printed circuit board in 3D

    Rioctrl controller

    festlv/rioctrl-hw

    Hardware design for modular CNC controller

    281 parts16CERN-OHL-S-2.0
  • 6 layers50 × 60 mmTuxkeychain, the printed circuit board in 3D

    Tuxkeychain

    electron271/tuxkeychain

    Keychain shaped like Tux that can run Linux.

    56 parts18CC-BY-SA-4.0
  • 4 layers58.4 × 54 mmTempo bt, the printed circuit board in 3D

    Tempo bt

    rrainey/tempo-bt

    A Bluetooth LE version of the Tempo Skydiving data logger

    69 parts1GPL-3.0
  • 2 layers285 × 94.6 mmPH60 Rev3, the printed circuit board in 3D

    PH60 Rev3

    ph-design/PH60

    A printable 60% multi-layout wireless keyboard suite.

    264 parts163
  • 4 layers102.4 × 42 mmMK4001MTD USB Reader, the printed circuit board in 3D

    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.