The Edgeguard support site: connects to an adapter in configuration mode over WebUSB, streams its diagnostics log, and walks users from "I press keys and nothing happens" to an actual answer — or to a copy-paste report for Discord that carries all the evidence.
Plain ES modules, no build step, no backend. Nothing leaves the user's machine unless they download/copy the report themselves.
npx http-server -p 8080Open http://localhost:8080 in Chrome or Edge (WebUSB; localhost counts as a secure context, no certs needed). Plug in an Edgeguard with a keyboard attached, press Left Ctrl + F10 on that keyboard (adapter light turns rainbow), and connect.
js/device.js— WebUSB: chooser filters (config identity0x0403:0x68E0plus legacy console identities gated onclassCode 0xFF), open/claim, vendor requests (version0xFF, profile limits0xFE, event session0x0A).js/stream.js— the EP0x81pump: 64-byte packets of length-prefixed records, HELLO-first, seq dedupe after bus resets, gap detection over ring-resident records only.js/catalog.js— event id → decoder + human text. Mirrorsshared/log/log.hin theedgeguard-ft90xfirmware repo, which owns ids and payload layouts; the text lives here by design. When firmware bumps its catalog version pastSITE_CATALOG_VER, the UI shows an update notice and unknown events render raw.js/engine/+js/flows/+js/copy/verdicts.js— the troubleshooting wizard. Flows are declarative data; detectors carryminCatalogso logic written against future firmware events degrades to question/LED paths on firmware that doesn't emit them yet.logs.html— the raw viewer: decoded timeline, filters, hex toggle, key tester, report export.
This repo is designed to be added as a submodule of keyboard-web:
cd keyboard-web
git submodule add [email protected]:NessDan/keyboard-support.git support…then link it from the site nav. It serves at keyboard.gg/support with no
build step, same as wizard/ and advanced/.
Site catalog version: 1 (matches firmware KGG_LOG_CATALOG_VER 1).
When the firmware's reserved events land (walk instrumentation, descriptor
blobs, KB_ACCEPTED…), bump the firmware catalog to 2, add the call sites,
and this site's detectors light up automatically — the flow logic for them
already ships. The Descriptor Lab (copy-a-board's-HID-descriptor-as-C-array)
arrives with EV_DESC_BLOB in catalog 2.