NessDan/keyboard-support

Edgeguard support site: WebUSB diagnostics, guided troubleshooting, and live logs for keyboard.gg adapters

★ 0Forks 0JavaScriptGitHub ↗Compare

README

keyboard-support

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.

Run it

npx http-server -p 8080

Open 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.

What talks to what

  • js/device.js — WebUSB: chooser filters (config identity 0x0403:0x68E0 plus legacy console identities gated on classCode 0xFF), open/claim, vendor requests (version 0xFF, profile limits 0xFE, event session 0x0A).
  • js/stream.js — the EP 0x81 pump: 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. Mirrors shared/log/log.h in the edgeguard-ft90x firmware repo, which owns ids and payload layouts; the text lives here by design. When firmware bumps its catalog version past SITE_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 carry minCatalog so 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.

Deploying into keyboard.gg

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/.

Firmware coupling

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.

Contributors

NessDan

Issues