Skip to content

feat(website): four FPGA tri commands recorded (x7-fasm, fpga-txhold/rxcap, fpga-wire, fpga-jtag) - #1307

Merged
gHashTag merged 2 commits into
mainfrom
feat/term-fpga-casts
Oct 3, 2026
Merged

gHashTag merged 2 commits into
mainfrom
feat/term-fpga-casts

Conversation

@gHashTag

@gHashTag gHashTag commented Oct 3, 2026 •

Copy link
Copy Markdown
Owner

Four new recording pages under apps/website/public/term/, made with tri cast publish (scrub, check, card, X-sized GIF), for the FPGA-engineer series on @t27_dev:

id command(s) what it shows
tri-x7-fasm tri x7-fasm, tri x7-writer FASM to frames 22/22 byte-identical to fasm2frames (ours 6.31 s this run; fasm2frames 150.7 s at corpus build); frames to .bit 16/16 byte-identical to xc7frames2bit, wrong part refused
tri-fpga-rgmii tri fpga-txhold, tri fpga-rxcap the two recorded model runs (2026-09-27/28) printed: TX hold 3445 ps min, RX mid-nibble 10900 ps min, PASS. SDF model, not a board measurement
tri-fpga-wire tri fpga-usb, tri fpga-wire 115200 921600 3000000 CP2102N direct, no hub; wire rates 115,385 / 923,077 / 3,000,000
tri-fpga-jtag tri fpga-jtag --decode ..., --self-test IDCODE decode (XC7A200T, XC7A100T, even code rejected), 17/17 self-test

Every cast: exit codes all 0, home directory scrubbed to ~, 0 key hits. Gallery public/term/index.html rebuilt (22 recordings).

Second commit: check:tools-coverage required the seven trios cards these recordings run to carry their CAST; regenerated with the card generator at the pinned BrowserOS commit, not edited by hand.

{
  "version": 1,
  "head_sha": "4dfd25329f89a675ab1b93a308cc5881d9a48651",
  "summary": "Four FPGA tri commands are recorded for the FPGA-engineer series: a Xilinx 7-series bitstream assembled without Vivado, RGMII margins from nextpnr's SDF, the baud rate actually on the wire, and which chip answered the JTAG cable; seven trios tool cards now name their recording.",
  "changes": [
    "apps/website/public/term/{tri-x7-fasm,tri-fpga-rgmii,tri-fpga-wire,tri-fpga-jtag}/: four new recording pages (index.html, session.cast, session.gif, card.png, meta.json) written by tri cast publish, and the gallery index rebuilt to 22 recordings",
    "apps/website/public/t27/files/specs/tools/trios/tri/{x7-fasm,x7-writer,fpga-txhold,fpga-rxcap,fpga-usb,fpga-wire,fpga-jtag}.t27: CAST added by scripts/tools-from-trios-tri.mjs at the pinned BrowserOS 7366096248df, no hand edits",
    "apps/website/public/tools/spec-tools.json and spec-tools-trios.json: regenerated by agents-from-specs.mjs, 25 cards with a recorded run",
    "apps/website/scripts/agents-from-specs.test.mjs: withCast pinned at 25 instead of 18, with the 17 trios cards from 14 recordings explained"
  ],
  "tests": [
    {
      "command": "npm run check:tools-coverage",
      "status": "passed",
      "result": "every unambiguous recorded command has its CAST; before the regeneration it reported 7 problems, one per card",
      "evidence": "local run of this head, 2026-10-03"
    },
    {
      "command": "npm run check:tools",
      "status": "passed",
      "result": "607 cards typecheck, 25 with a recorded run",
      "evidence": "local run of this head, 2026-10-03"
    },
    {
      "command": "npm run test:tri-commands",
      "status": "passed",
      "result": "exit 0, no failing test",
      "evidence": "local run of this head, 2026-10-03"
    },
    {
      "command": "node --test --test-name-pattern='the committed recordings' scripts/agents-from-specs.test.mjs",
      "status": "passed",
      "result": "1 of 1 pass; the full file before the edit: 52 of 53, the one failure 25 !== 18 on withCast",
      "evidence": "local run of this head, 2026-10-03"
    },
    {
      "command": "npm run check:tools-site && npm run check:agents && npm run check:onboarding && npm run check:subpath-urls && npm run check:shared-core",
      "status": "passed",
      "result": "all five exit 0",
      "evidence": "local run of this head, 2026-10-03"
    },
    {
      "command": "tri cast check on the four new session.cast files",
      "status": "passed",
      "result": "4 of 4: every exit code 0, key hits 0, home directory shown as ~",
      "evidence": "local run before tri cast publish, 2026-10-03"
    },
    {
      "command": "npx vite build (apps/website)",
      "status": "not_run",
      "result": "not run locally; the website CI build covers it",
      "evidence": "no local build was run for this head"
    }
  ],
  "limitations": [
    "tri fpga-txhold and tri fpga-rxcap print the stored logs of two earlier model runs (2026-09-27 and 09-28); the page says it is an SDF model, not a board measurement.",
    "tri fpga-jtag is recorded with --decode and --self-test only: offline decoding, no cable was driven in this recording.",
    "Not recorded: tri x7-audit and tri x7-mutate exit non-zero here because they call a t27c binary inside a worktree that no longer exists.",
    "Nothing was posted from this PR. The X posts are scheduled by hand after each page answers 200 on t27.ai."
  ],
  "tags": [
    "Website",
    "FPGA",
    "Tooling"
  ],
  "blog": {
    "title": "Four FPGA commands, recorded: bitstream, RGMII, baud rate, JTAG",
    "summary": "Four tri commands an FPGA engineer uses daily are now recorded with real output, from assembling a 7-series bitstream without Vivado to naming the chip on the JTAG cable.",
    "outline": [
      "tri x7-fasm turns FASM into frames byte-identical to fasm2frames on 22 of 22 designs, and tri x7-writer turns frames into a .bit byte-identical to xc7frames2bit on 16 of 16.",
      "tri fpga-txhold and tri fpga-rxcap print the RGMII margins of two recorded model runs, tri fpga-wire shows the CP2102N puts 115,385 baud on the wire for a requested 115,200, and tri fpga-jtag names an IDCODE.",
      "Each recording keeps every byte of output; the prompt and typing are staged, and two commands that failed for a missing binary were left out rather than shown."
    ],
    "cast": "term/tri-x7-fasm/session.cast",
    "reproduce": [
      "tri x7-fasm",
      "tri fpga-wire 115200 921600 3000000",
      "tri fpga-jtag --decode 0x03636093"
    ]
  }
}

🤖 Generated with Claude Code

…rxcap, fpga-wire, fpga-jtag)

Share pages under public/term/ with session.gif inside X's animated-GIF
limits: Vivado-free FASM->frames->.bit (byte-identical), RGMII margins from
nextpnr's SDF (recorded model runs, printed), CP2102N wire baud rates, and
offline JTAG IDCODE decoding. Gallery now lists 22 recordings.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions github-actions Bot added the status:in-progress 🔵 Agent working label Oct 3, 2026
…s (CAST)

check:tools-coverage failed: tri-x7-fasm, tri-fpga-rgmii, tri-fpga-wire and
tri-fpga-jtag run x7-fasm, x7-writer, fpga-txhold, fpga-rxcap, fpga-usb,
fpga-wire and fpga-jtag, and their cards had no CAST. Regenerated with
scripts/tools-from-trios-tri.mjs at the pinned BrowserOS 7366096248df, then
agents-from-specs.mjs; withCast in the committed-recordings test 18 -> 25.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@gHashTag
gHashTag merged commit cdb78c2 into main Oct 3, 2026
28 of 32 checks passed
@github-actions github-actions Bot added status:completed Done and removed status:in-progress 🔵 Agent working labels Oct 3, 2026
github-actions Bot added a commit that referenced this pull request Oct 3, 2026
feat(website): four FPGA tri commands recorded (x7-fasm, fpga-txhold/rxcap, fpga-wire, fpga-jtag) (#1307)

* feat(website): four FPGA tri commands recorded (x7-fasm, fpga-txhold/rxcap, fpga-wire, fpga-jtag)

Share pages under public/term/ with session.gif inside X's animated-GIF
limits: Vivado-free FASM->frames->.bit (byte-identical), RGMII margins from
nextpnr's SDF (recorded model runs, printed), CP2102N wire baud rates, and
offline JTAG IDCODE decoding. Gallery now lists 22 recordings.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* feat(website): seven trios tri cards name the four new FPGA recordings (CAST)

check:tools-coverage failed: tri-x7-fasm, tri-fpga-rgmii, tri-fpga-wire and
tri-fpga-jtag run x7-fasm, x7-writer, fpga-txhold, fpga-rxcap, fpga-usb,
fpga-wire and fpga-jtag, and their cards had no CAST. Regenerated with
scripts/tools-from-trios-tri.mjs at the pinned BrowserOS 7366096248df, then
agents-from-specs.mjs; withCast in the committed-recordings test 18 -> 25.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
gHashTag added a commit that referenced this pull request Oct 3, 2026
Conflict in apps/website/public/tools/spec-tools.json, a generated file:
main added recorded runs for four FPGA tri commands (#1307), this branch
added the providers rung to the ladder. Resolved by taking main's file and
re-running scripts/agents-from-specs.mjs over both sides' specs; the result
is main's content plus ladder.providers = 7. The other generated JSONs
differed only in generatedAt and were left as they were.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant