Skip to content

Bring over ringof/dev: design + 3D + mechanical/viewer + CI - #58

Draft
ringof wants to merge 26 commits into
devfrom
design
Draft

Bring over ringof/dev: design + 3D + mechanical/viewer + CI#58
ringof wants to merge 26 commits into
devfrom
design

Conversation

@ringof

@ringof ringof commented Jul 26, 2026

Copy link
Copy Markdown
Collaborator

What this is

Second bring-over tranche from ringof/dev, catching TAPR up to ringof's
improved state. Follows tranche 1 (the initial flatten + PCB CI, already on
main / v0.6). Imported as-is from ringof/dev except one adaptation.

Included

  • Design/electrical — schematic (root + Front_End + refclk), PCB, and
    project settings, verbatim from ringof/dev.
  • Library — symbol lib + ~30 footprints repathed to the in-repo 3d/
    scheme; adds HamSCI-25mm and SMA_Jack_EdgeMount_JLC_With_Nut; drops
    SMA-RA-Jack (SMA connector swap).
  • 3D — vendored 3d/ tree (kicad-stock/ mirror + custom models), so STEP
    and 3D renders resolve with no external ${TIS}.
  • Mechanicalmechanical/ (enclosure, endplate-front/-rear projects,
    hardware STEPs) + assemble_mechanical / assemble_glb / make_3d_viewer /
    build_endplates.
  • CImechanical-ci + reusable mechanical-build + endplate-release;
    updated dev-release / main-release; plus a hard gate so check_3d_models
    fails the job on any legacy/absolute 3D path regardless of ENFORCE.
  • DocsRELEASE_STRATEGY + runbooks + README / CLAUDE /
    CONTRIBUTING / VERSION.txt.

Adaptation (ringof → TAPR)

Only content change vs ringof/dev: the GitHub Pages URL
ringof.github.io/TAPRx888tapr.github.io/TAPRx888 (5 files).

Validation (local first, then CI on design)

  • check_3d_models.py --require-local — clean (no legacy refs; all board-used
    models present).
  • ERC 0 errors, DRC 0 errors (only pre-existing library-drift /
    local-override warnings).
  • BOM completeness — clean.
  • Full mechanical assembly builds: multi-part STEP + coloured GLB +
    self-contained viewer HTML.
  • dev-checks + mechanical-ci green on design.

On merge

dev-release will cut a v0.x pre-release (design files changed). This is a
pre-release only — production v1.0 is a separate, deliberate dev → main step.
No version numbers are committed to the tree.

Related issues

Closes #53. Addresses #28, #29. Touches #25 (SMA part) and #43 (J10 U.FL local
override). The design-fix issues (#31, #32, #34#39, #45) should be reconciled
against the actual ERC/DRC reports post-merge — not assumed fixed.

@ringof
ringof marked this pull request as draft July 26, 2026 20:21
@ringof ringof self-assigned this Jul 26, 2026
@ringof
ringof requested review from turnisland and removed request for turnisland July 28, 2026 03:06
* mechanical: give the end plates a Blue soldermask stackup

The end-plate PCBs had no physical stackup, so KiCad exported them with the
default green soldermask. Add a 2-layer stackup with front/back mask set to the
named "Blue" preset, summing to the existing 1.6 mm so board thickness / fit is
unchanged. This makes the plates export blue-dominant so the viewer's soldermask
recolour treats them the same as the main board.

* feat(viewer): part toggles, upright orientation, Turn Island navy, even lighting

Grow the mechanical fit-check viewer into an interactive, correctly-coloured one:

- Part toggles: show/hide enclosure, main board, front/rear end plate. Rebuilt on
  pinned three.js r148 (model-viewer has no per-node visibility API); a checkbox
  flips object.visible on each part's prefixed nodes. Libraries inlined via a
  runtime import map -- no bundler, fully offline.
- Upright orientation (180 deg roll), click-to-set-pivot, and a header showing the
  git hash and branch as links (new --repo-url, fed from the CI environment).
- Board colour: assemble_glb recolours the blue soldermask to the Turn Island navy
  (KiCad's "Blue" preset exports a brighter cornflower); detection targets only the
  matte, blue-dominant mask material. The material is identical on every face, so
  the viewer lighting is set to an orientation-independent rig (soft key + strong
  ambient + damped environment) so every face reads the same navy.
- Checkbox reload-sync: autocomplete="off" + re-apply each box's state on load so
  the model always matches the checkboxes after a refresh.

Colour is applied downstream of KiCad (in the assembler) rather than as a custom
hex stackup colour, because the pinned KiBot image does not accept hex soldermask
colours; the KiCad stackup stays on the named "Blue" preset. The board STEP
therefore still carries KiCad's plain colour -- STEP and viewer intentionally
differ for now.
David Goncalves added 4 commits July 28, 2026 20:19
Full-severity ERC/DRC surfaced 22 lib_symbol_mismatch + 5 lib_footprint_mismatch
warnings from cached copies drifting off the library master. Reconciled and
verified against the schematic and board:

- Symbol caches: refresh 8 cap/diode symbols whose embedded footprint field was
  stale (PAD_0603 -> C_0603); instances and PCB already used C_0603.
- SMA (J1-J4): push the board's tuned 3D-model offset/rotate into the library
  master and re-save it in KiCad 10 format; fix J1 LCSC C2874826 -> C914558 in
  schematic and board (J1 was an error, not a variant).
- U.FL (J10): re-save library footprint in v10 to match the routed board.

Result: ERC 0, DRC 0 (errors + warnings).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3D models unresolvable in CI: footprints reference ${TIS} / ${KISYS3DMOD} (blocks STEP + 3D renders)

1 participant