main
Ray Publish 0.1.0 96c36fe 7d ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746
{
  "slug": "ch348l",
  "version": "0.1.0",
  "type": "component",
  "description": "WCH Jiangsu Qin Heng USB Converters, LQFP-100(14x14). Pinout cross-checked by two models against the datasheet, KiCad symbol/footprint/3D.",
  "tags": [
    "component",
    "interface",
    "ch348l",
    "factory-2.0.0",
    "extractor-text"
  ],
  "dependencies": {},
  "hero": {
    "type": "image",
    "path": "docs/hero.png"
  },
  "files": [
    "page.json",
    "README.md",
    "ch348l.kicad_sym",
    "ch348l.kicad_mod",
    "ch348l.glb",
    "ch348l.step",
    "ch348l.lbr",
    "docs/hero.png",
    "docs/ch348l-datasheet.pdf",
    "viewers/symbol.html",
    "viewers/footprint.html",
    "ch348l-hero.glb",
    "ch348l-hero.overlay.json",
    "ch348l-etched.glb"
  ],
  "component": {
    "mpn": "CH348L",
    "manufacturer": "WCH Jiangsu Qin Heng",
    "package": "LQFP-100(14x14)",
    "pin_count": 100,
    "category": "Interface",
    "subcategory": "USB Converters",
    "datasheet": "https://jlcpcb.com/api/file/downloadByFileSystemAccessId/8589835198642102272",
    "parts": {
      "symbol": "ch348l.kicad_sym",
      "footprint": "ch348l.kicad_mod",
      "model_3d": "ch348l-hero.glb",
      "model_3d_plain": "ch348l-etched.glb",
      "model_3d_step": "ch348l-etched.step",
      "model_3d_step_plain": "ch348l.step",
      "lbr": "ch348l.lbr"
    },
    "distributor_links": {
      "lcsc": "C2979160"
    },
    "distributor_check": {
      "checked_at": "2026-10-18T11:23:46Z",
      "source": "Component Ocean /api/assign-pns",
      "digikey": {
        "pn": null,
        "status": "quota"
      },
      "mouser": {
        "pn": null,
        "status": "quota"
      }
    },
    "pins": [
      {
        "number": "1",
        "name": "DCD5/GPIO40",
        "type": "bidirectional",
        "description": "UART5 MODEM carrier-detect input, active low, also general-purpose GPIO40; the input is 5V tolerant (FT)."
      },
      {
        "number": "2",
        "name": "RI5/GPIO41",
        "type": "bidirectional",
        "description": "UART5 MODEM ring-indicator input, active low, also general-purpose GPIO41; the input is 5V tolerant (FT)."
      },
      {
        "number": "3",
        "name": "DSR1/GPIO27",
        "type": "bidirectional",
        "description": "UART1 MODEM data-set-ready input, active low, also general-purpose GPIO27; the input is 5V tolerant (FT)."
      },
      {
        "number": "4",
        "name": "DCD1/GPIO28",
        "type": "bidirectional",
        "description": "UART1 MODEM carrier-detect input, active low, also general-purpose GPIO28; the input is 5V tolerant (FT)."
      },
      {
        "number": "5",
        "name": "RI1/GPIO29",
        "type": "bidirectional",
        "description": "UART1 MODEM ring-indicator input, active low, also general-purpose GPIO29; the input is 5V tolerant (FT)."
      },
      {
        "number": "6",
        "name": "NC",
        "type": "unconnected",
        "description": "No-connect pin; must be left floating."
      },
      {
        "number": "7",
        "name": "CFG",
        "type": "input",
        "description": "Configuration pin selecting whether all DTRx/TNOWx pins (unified) or individual pins (via pull-down resistors) use the TNOW or DTR function, sampled at power-on."
      },
      {
        "number": "8",
        "name": "NC",
        "type": "unconnected",
        "description": "No-connect pin; must be left floating."
      },
      {
        "number": "9",
        "name": "NC",
        "type": "unconnected",
        "description": "No-connect pin; must be left floating."
      },
      {
        "number": "10",
        "name": "GND",
        "type": "power_in",
        "description": "Common ground; must be connected to the USB bus ground."
      },
      {
        "number": "11",
        "name": "VCC",
        "type": "power_in",
        "description": "Main 3.3V supply input (3.0V to 3.6V); requires an external decoupling capacitor of about 0.1uF to GND."
      },
      {
        "number": "12",
        "name": "XI",
        "type": "input",
        "description": "Crystal oscillator input; an 8MHz crystal with about 22pF load capacitors to GND is required between XI and XO."
      },
      {
        "number": "13",
        "name": "XO",
        "type": "output",
        "description": "Crystal oscillator inverting output; connect the 8MHz crystal between XI and XO with about 22pF to GND."
      },
      {
        "number": "14",
        "name": "RESET",
        "type": "input",
        "description": "External reset input, active low, with an internal pull-up resistor (RPU about 40K typical)."
      },
      {
        "number": "15",
        "name": "TXD5",
        "type": "output",
        "description": "UART5 serial data output, idle high."
      },
      {
        "number": "16",
        "name": "RXD5",
        "type": "input",
        "description": "UART5 serial data input with internal pull-up."
      },
      {
        "number": "17",
        "name": "TXD6",
        "type": "output",
        "description": "UART6 serial data output, idle high."
      },
      {
        "number": "18",
        "name": "RXD6",
        "type": "input",
        "description": "UART6 serial data input with internal pull-up."
      },
      {
        "number": "19",
        "name": "GND",
        "type": "power_in",
        "description": "Common ground; must be connected to the USB bus ground."
      },
      {
        "number": "20",
        "name": "GND",
        "type": "power_in",
        "description": "Common ground; must be connected to the USB bus ground."
      },
      {
        "number": "21",
        "name": "VIO",
        "type": "power_in",
        "description": "I/O port supply input for the serial and MODEM pins, supporting 1.8V, 2.5V or 3.3V (1.7V to 3.6V); requires an external decoupling capacitor."
      },
      {
        "number": "22",
        "name": "VIO",
        "type": "power_in",
        "description": "I/O port supply input for the serial and MODEM pins, supporting 1.8V, 2.5V or 3.3V (1.7V to 3.6V); requires an external decoupling capacitor."
      },
      {
        "number": "23",
        "name": "CTS1/GPIO2",
        "type": "bidirectional",
        "description": "UART1 MODEM clear-to-send input, active low, also general-purpose GPIO2."
      },
      {
        "number": "24",
        "name": "RTS1/GPIO3",
        "type": "bidirectional",
        "description": "UART1 MODEM request-to-send output, active low, also general-purpose GPIO3."
      },
      {
        "number": "25",
        "name": "TXD1",
        "type": "output",
        "description": "UART1 serial data output, idle high."
      },
      {
        "number": "26",
        "name": "RXD1",
        "type": "input",
        "description": "UART1 serial data input with internal pull-up."
      },
      {
        "number": "27",
        "name": "GND",
        "type": "power_in",
        "description": "Common ground; must be connected to the USB bus ground."
      },
      {
        "number": "28",
        "name": "VCC",
        "type": "power_in",
        "description": "Main 3.3V supply input (3.0V to 3.6V); requires an external decoupling capacitor of about 0.1uF to GND."
      },
      {
        "number": "29",
        "name": "ACT",
        "type": "output",
        "description": "USB configuration-complete status output, active low."
      },
      {
        "number": "30",
        "name": "DTR1/TNOW1/GPIO9",
        "type": "bidirectional",
        "description": "UART1 MODEM data-terminal-ready output, active low, or RS485 TNOW transmit-status output, also general-purpose GPIO9, selected by CFG at power-on."
      },
      {
        "number": "31",
        "name": "CTS6/GPIO16",
        "type": "bidirectional",
        "description": "UART6 MODEM clear-to-send input, active low, also general-purpose GPIO16."
      },
      {
        "number": "32",
        "name": "RTS6/GPIO17",
        "type": "bidirectional",
        "description": "UART6 MODEM request-to-send output, active low, also general-purpose GPIO17."
      },
      {
        "number": "33",
        "name": "TXD7",
        "type": "output",
        "description": "UART7 serial data output, idle high."
      },
      {
        "number": "34",
        "name": "RXD7",
        "type": "input",
        "description": "UART7 serial data input with internal pull-up; the input is 5V tolerant (FT)."
      },
      {
        "number": "35",
        "name": "CTS7/GPIO18",
        "type": "bidirectional",
        "description": "UART7 MODEM clear-to-send input, active low, also general-purpose GPIO18."
      },
      {
        "number": "36",
        "name": "RTS7/GPIO19",
        "type": "bidirectional",
        "description": "UART7 MODEM request-to-send output, active low, also general-purpose GPIO19."
      },
      {
        "number": "37",
        "name": "GND",
        "type": "power_in",
        "description": "Common ground; must be connected to the USB bus ground."
      },
      {
        "number": "38",
        "name": "DSR7/GPIO45",
        "type": "bidirectional",
        "description": "UART7 MODEM data-set-ready input, active low, also general-purpose GPIO45; the input is 5V tolerant (FT)."
      },
      {
        "number": "39",
        "name": "DCD7/GPIO46",
        "type": "bidirectional",
        "description": "UART7 MODEM carrier-detect input, active low, also general-purpose GPIO46; the input is 5V tolerant (FT)."
      },
      {
        "number": "40",
        "name": "RI7/GPIO47",
        "type": "bidirectional",
        "description": "UART7 MODEM ring-indicator input, active low, also general-purpose GPIO47; the input is 5V tolerant (FT)."
      },
      {
        "number": "41",
        "name": "DSR6/GPIO42",
        "type": "bidirectional",
        "description": "UART6 MODEM data-set-ready input, active low, also general-purpose GPIO42; the input is 5V tolerant (FT)."
      },
      {
        "number": "42",
        "name": "DCD6/GPIO43",
        "type": "bidirectional",
        "description": "UART6 MODEM carrier-detect input, active low, also general-purpose GPIO43; the input is 5V tolerant (FT)."
      },
      {
        "number": "43",
        "name": "RI6/GPIO44",
        "type": "bidirectional",
        "description": "UART6 MODEM ring-indicator input, active low, also general-purpose GPIO44; the input is 5V tolerant (FT)."
      },
      {
        "number": "44",
        "name": "DSR3/GPIO33",
        "type": "bidirectional",
        "description": "UART3 MODEM data-set-ready input, active low, also general-purpose GPIO33; the input is 5V tolerant (FT)."
      },
      {
        "number": "45",
        "name": "DCD3/GPIO34",
        "type": "bidirectional",
        "description": "UART3 MODEM carrier-detect input, active low, also general-purpose GPIO34; the input is 5V tolerant (FT)."
      },
      {
        "number": "46",
        "name": "RI3/GPIO35",
        "type": "bidirectional",
        "description": "UART3 MODEM ring-indicator input, active low, also general-purpose GPIO35; the input is 5V tolerant (FT)."
      },
      {
        "number": "47",
        "name": "TXD2",
        "type": "output",
        "description": "UART2 serial data output, idle high."
      },
      {
        "number": "48",
        "name": "RXD2",
        "type": "input",
        "description": "UART2 serial data input with internal pull-up; the input is 5V tolerant (FT)."
      },
      {
        "number": "49",
        "name": "GND",
        "type": "power_in",
        "description": "Common ground; must be connected to the USB bus ground."
      },
      {
        "number": "50",
        "name": "VIO",
        "type": "power_in",
        "description": "I/O port supply input for the serial and MODEM pins, supporting 1.8V, 2.5V or 3.3V (1.7V to 3.6V); requires an external decoupling capacitor."
      },
      {
        "number": "51",
        "name": "CTS3/GPIO6",
        "type": "bidirectional",
        "description": "UART3 MODEM clear-to-send input, active low, also general-purpose GPIO6; the input is 5V tolerant (FT)."
      },
      {
        "number": "52",
        "name": "CTS2/GPIO4",
        "type": "bidirectional",
        "description": "UART2 MODEM clear-to-send input, active low, also general-purpose GPIO4; the input is 5V tolerant (FT)."
      },
      {
        "number": "53",
        "name": "RTS2/GPIO5",
        "type": "bidirectional",
        "description": "UART2 MODEM request-to-send output, active low, also general-purpose GPIO5."
      },
      {
        "number": "54",
        "name": "RTS3/GPIO7",
        "type": "bidirectional",
        "description": "UART3 MODEM request-to-send output, active low, also general-purpose GPIO7."
      },
      {
        "number": "55",
        "name": "DSR2/GPIO30",
        "type": "bidirectional",
        "description": "UART2 MODEM data-set-ready input, active low, also general-purpose GPIO30; the input is 5V tolerant (FT)."
      },
      {
        "number": "56",
        "name": "DCD2/GPIO31",
        "type": "bidirectional",
        "description": "UART2 MODEM carrier-detect input, active low, also general-purpose GPIO31; the input is 5V tolerant (FT)."
      },
      {
        "number": "57",
        "name": "RI2/GPIO32",
        "type": "bidirectional",
        "description": "UART2 MODEM ring-indicator input, active low, also general-purpose GPIO32; the input is 5V tolerant (FT)."
      },
      {
        "number": "58",
        "name": "NC",
        "type": "unconnected",
        "description": "No-connect pin; must be left floating."
      },
      {
        "number": "59",
        "name": "NC",
        "type": "unconnected",
        "description": "No-connect pin; must be left floating."
      },
      {
        "number": "60",
        "name": "DSR0/GPIO24",
        "type": "bidirectional",
        "description": "UART0 MODEM data-set-ready input, active low, also general-purpose GPIO24; the input is 5V tolerant (FT)."
      },
      {
        "number": "61",
        "name": "DCD0/GPIO26",
        "type": "bidirectional",
        "description": "UART0 MODEM carrier-detect input, active low, also general-purpose GPIO26; the input is 5V tolerant (FT)."
      },
      {
        "number": "62",
        "name": "RI0/GPIO25",
        "type": "bidirectional",
        "description": "UART0 MODEM ring-indicator input, active low, also general-purpose GPIO25; the input is 5V tolerant (FT)."
      },
      {
        "number": "63",
        "name": "DTR4/TNOW4/GPIO20",
        "type": "bidirectional",
        "description": "UART4 MODEM data-terminal-ready output, active low, or RS485 TNOW transmit-status output, also general-purpose GPIO20; the pin is powered from VCC at 3.3V signal level."
      },
      {
        "number": "64",
        "name": "DTR5/TNOW5/GPIO21",
        "type": "bidirectional",
        "description": "UART5 MODEM data-terminal-ready output, active low, or RS485 TNOW transmit-status output, also general-purpose GPIO21; the pin is powered from VCC at 3.3V signal level."
      },
      {
        "number": "65",
        "name": "DTR6/TNOW6/GPIO22",
        "type": "bidirectional",
        "description": "UART6 MODEM data-terminal-ready output, active low, or RS485 TNOW transmit-status output, also general-purpose GPIO22; the pin is powered from VCC at 3.3V signal level."
      },
      {
        "number": "66",
        "name": "DTR7/TNOW7/GPIO23",
        "type": "bidirectional",
        "description": "UART7 MODEM data-terminal-ready output, active low, or RS485 TNOW transmit-status output, also general-purpose GPIO23; the pin is powered from VCC at 3.3V signal level."
      },
      {
        "number": "67",
        "name": "DTR2/TNOW2/GPIO10",
        "type": "bidirectional",
        "description": "UART2 MODEM data-terminal-ready output, active low, or RS485 TNOW transmit-status output, also general-purpose GPIO10; the input is 5V tolerant (FT)."
      },
      {
        "number": "68",
        "name": "TXD0",
        "type": "output",
        "description": "UART0 serial data output, idle high."
      },
      {
        "number": "69",
        "name": "RXD0",
        "type": "input",
        "description": "UART0 serial data input with internal pull-up; the input is 5V tolerant (FT)."
      },
      {
        "number": "70",
        "name": "CTS0/GPIO0",
        "type": "bidirectional",
        "description": "UART0 MODEM clear-to-send input, active low, also general-purpose GPIO0; the input is 5V tolerant (FT)."
      },
      {
        "number": "71",
        "name": "RTS0/GPIO1",
        "type": "bidirectional",
        "description": "UART0 MODEM request-to-send output, active low, also general-purpose GPIO1; if a pull-down is detected on this pin at power-on, the internal EEPROM configuration is disabled and default parameters are used."
      },
      {
        "number": "72",
        "name": "DTR0/TNOW0/GPIO8",
        "type": "bidirectional",
        "description": "UART0 MODEM data-terminal-ready output, active low, or RS485 TNOW transmit-status output, also general-purpose GPIO8; the input is 5V tolerant (FT)."
      },
      {
        "number": "73",
        "name": "NC",
        "type": "unconnected",
        "description": "No-connect pin; must be left floating."
      },
      {
        "number": "74",
        "name": "GND",
        "type": "power_in",
        "description": "Common ground; must be connected to the USB bus ground."
      },
      {
        "number": "75",
        "name": "VCC",
        "type": "power_in",
        "description": "Main 3.3V supply input (3.0V to 3.6V); requires an external decoupling capacitor of about 0.1uF to GND."
      },
      {
        "number": "76",
        "name": "TX_S",
        "type": "output",
        "description": "Serial transmit status output; pulses with a 200ms period while any UART is transmitting data."
      },
      {
        "number": "77",
        "name": "RX_S",
        "type": "output",
        "description": "Serial receive status output; pulses with a 200ms period while any UART is receiving data."
      },
      {
        "number": "78",
        "name": "TXD3",
        "type": "output",
        "description": "UART3 serial data output, idle high."
      },
      {
        "number": "79",
        "name": "RXD3",
        "type": "input",
        "description": "UART3 serial data input with internal pull-up."
      },
      {
        "number": "80",
        "name": "TXD4",
        "type": "output",
        "description": "UART4 serial data output, idle high."
      },
      {
        "number": "81",
        "name": "NC",
        "type": "unconnected",
        "description": "No-connect pin; must be left floating."
      },
      {
        "number": "82",
        "name": "NC",
        "type": "unconnected",
        "description": "No-connect pin; must be left floating."
      },
      {
        "number": "83",
        "name": "RXD4",
        "type": "input",
        "description": "UART4 serial data input with internal pull-up; the input is 5V tolerant (FT)."
      },
      {
        "number": "84",
        "name": "NC",
        "type": "unconnected",
        "description": "No-connect pin; must be left floating."
      },
      {
        "number": "85",
        "name": "NC",
        "type": "unconnected",
        "description": "No-connect pin; must be left floating."
      },
      {
        "number": "86",
        "name": "DSR4/GPIO36",
        "type": "bidirectional",
        "description": "UART4 MODEM data-set-ready input, active low, also general-purpose GPIO36; the input is 5V tolerant (FT)."
      },
      {
        "number": "87",
        "name": "DCD4/GPIO37",
        "type": "bidirectional",
        "description": "UART4 MODEM carrier-detect input, active low, also general-purpose GPIO37; the input is 5V tolerant (FT)."
      },
      {
        "number": "88",
        "name": "RI4/GPIO38",
        "type": "bidirectional",
        "description": "UART4 MODEM ring-indicator input, active low, also general-purpose GPIO38; the input is 5V tolerant (FT)."
      },
      {
        "number": "89",
        "name": "DTR3/TNOW3/GPIO11",
        "type": "bidirectional",
        "description": "UART3 MODEM data-terminal-ready output, active low, or RS485 TNOW transmit-status output, also general-purpose GPIO11; the input is 5V tolerant (FT)."
      },
      {
        "number": "90",
        "name": "CTS4/GPIO12",
        "type": "bidirectional",
        "description": "UART4 MODEM clear-to-send input, active low, also general-purpose GPIO12; the input is 5V tolerant (FT)."
      },
      {
        "number": "91",
        "name": "RTS4/GPIO13",
        "type": "bidirectional",
        "description": "UART4 MODEM request-to-send output, active low, also general-purpose GPIO13."
      },
      {
        "number": "92",
        "name": "UD-",
        "type": "bidirectional",
        "description": "USB D- data line, connected directly to the USB bus with no series resistor allowed."
      },
      {
        "number": "93",
        "name": "UD+",
        "type": "bidirectional",
        "description": "USB D+ data line, connected directly to the USB bus with no series resistor allowed."
      },
      {
        "number": "94",
        "name": "TEST",
        "type": "input",
        "description": "Internal test pin; connect to ground through a pull-down of about 4.7K or directly to ground."
      },
      {
        "number": "95",
        "name": "CTS5/GPIO14",
        "type": "bidirectional",
        "description": "UART5 MODEM clear-to-send input, active low, also general-purpose GPIO14; the input is 5V tolerant (FT)."
      },
      {
        "number": "96",
        "name": "RTS5/GPIO15",
        "type": "bidirectional",
        "description": "UART5 MODEM request-to-send output, active low, also general-purpose GPIO15."
      },
      {
        "number": "97",
        "name": "NC",
        "type": "unconnected",
        "description": "No-connect pin; must be left floating."
      },
      {
        "number": "98",
        "name": "DSR5/GPIO39",
        "type": "bidirectional",
        "description": "UART5 MODEM data-set-ready input, active low, also general-purpose GPIO39; the input is 5V tolerant (FT)."
      },
      {
        "number": "99",
        "name": "GND",
        "type": "power_in",
        "description": "Common ground; must be connected to the USB bus ground."
      },
      {
        "number": "100",
        "name": "VIO",
        "type": "power_in",
        "description": "I/O port supply input for the serial and MODEM pins, supporting 1.8V, 2.5V or 3.3V (1.7V to 3.6V); requires an external decoupling capacitor."
      }
    ],
    "provenance": {
      "extractor": "extract_pins 0.3",
      "factory_chain": {
        "factory": "2.0.0",
        "extractor": "extract_pins 0.3",
        "primary_model": "claude-haiku-5-5",
        "primary_mode": "text",
        "consensus_model": "claude-sonnet-5-5",
        "consensus": "agreed",
        "guards": "pin_guards 0.1: passed",
        "guard_notes": [
          "extractor flagged: The datasheet gives the pin table with both LQFP100 and LQFP48 pin numbers in one column pair; the L; Pin type for GPIO-multiplexed pins is set to bidirectional because the datasheet lists them as both ; Text extraction of the page 2 LQFP100 diagram is garbled for a few pins (e.g. DTR2/DTR3 labels split",
          "1/100 pins cited to the wrong page (name found elsewhere): ['12:XI@p3']",
          "1/100 pin names appear NOWHERE in the datasheet text: ['13:XO@p3']"
        ],
        "pages_sent": 9,
        "cost_usd": 0.1483,
        "at": "2026-10-18T11:20:01"
      },
      "datasheet": {
        "url": "https://jlcpcb.com/api/file/downloadByFileSystemAccessId/8589835198642102272",
        "pages": 9,
        "sha256": "c3adc4a554e74be4",
        "source_tier": "lcsc"
      },
      "cad": "KiCad official (CC-BY-SA 4.0)",
      "pins": {
        "total": 100,
        "described": 100,
        "cites_pages": true,
        "refuses_to_fabricate": true
      }
    },
    "viewers": {
      "symbol": "viewers/symbol.html",
      "footprint": "viewers/footprint.html"
    },
    "models_3d": [
      {
        "file": "ch348l.step",
        "role": "plain",
        "up": "Z",
        "units": "mm",
        "origin": "footprint origin = pad-pattern centre",
        "seat": "z = 0",
        "extents_mm": [
          16.0,
          16.0,
          1.5
        ],
        "zmin_mm": 0.0,
        "centre_offset_mm": 0.0,
        "footprint_binding": "identity",
        "sha256": "51720097260ffba41c3062f85f67623721102fa535901c47cb555a1f444feeb3",
        "checked": "2026-10-18",
        "checked_by": "factory/step_pose.py (Z-up, origin, seat, binding)"
      },
      {
        "file": "ch348l-etched.step",
        "role": "eda",
        "up": "Z",
        "units": "mm",
        "origin": "footprint origin = pad-pattern centre",
        "seat": "z = 0",
        "extents_mm": [
          16.0,
          16.0,
          1.5
        ],
        "zmin_mm": 0.0,
        "centre_offset_mm": 0.0,
        "footprint_binding": "identity",
        "sha256": "501f7a21e5ca8fe9693b3457109efcc473407b6a330bce6863dab6b9f00fe924",
        "checked": "2026-10-18",
        "checked_by": "factory/step_pose.py (Z-up, origin, seat, binding)"
      }
    ]
  }
}