mirror of
https://github.com/mineracks/seedhammer-v1-companion.git
synced 2026-06-26 22:01:05 +10:00
A browser-based companion for SeedHammer v1 hardware. Three coordinated PWAs (composer, emulator, combined-sim) plus an optional Android wrapper, inspired by Gangleri42's SeedHammer II fork but retargeted to v1's Pi-Zero / WaveShare / MarkingWay hardware. What's in this commit: - LICENSE: Unlicense (matching upstream) - README.md: project overview + status + roadmap - CREDITS.md: upstream provenance + pinned baseline SHAs - docs/architecture/: five authoritative design docs (lifted from the prep work in mineracks-infrastructure): * BASELINES.md — pinned SHAs, license audit, path-mapping table * v1-engrave-spec.md — MarkingWay USB-serial wire protocol audit * v1-buttons-and-ui.md — GPIO map, UI screen flow, keyboard map * sh1e-spec.md — composer-to-Pi envelope format spec * seedsigner-reuse.md — Pyodide strategy + jumbo (SeedSigner+) support - Go package skeleton with doc.go contracts: backup, bezier, bspline, engrave, engrave/wire, engrave/wire/sh1e, font (+ comfortaa, poppins, constant), gui, input, internal/golden, platform/v1 - cmd/ entrypoints with stub main(): composer, emulator, combined-sim, seedsigner-sim - web/ static-shell skeleton - go.mod (module github.com/mineracks/seedhammer-v1-companion, Go 1.22) - go build ./... + go vet ./... both clean Next: lift universal packages (backup, font, bezier, bspline) from upstream seedhammer/seedhammer at v1.3.0 verbatim. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
3.1 KiB
3.1 KiB
Credits
This project stands on the shoulders of three communities. None of these upstreams legally require attribution (the SeedHammer projects are released under the Unlicense; SeedSigner is MIT). Attribution is kept here as courtesy and to make code provenance traceable.
Upstream SeedHammer (Pi-Zero / v1 firmware)
- Repo: https://github.com/seedhammer/seedhammer
- Baseline: v1.3.0 (commit
2f071c1d8f23eb7fd39b15fc0acb8874113f801e) - License: Unlicense (public domain dedication)
- Lifted from this codebase: plate-area constants (
backup/), engrave-stroke geometry (engrave/), MarkingWay USB-serial driver (driver/mjolnir/), WaveShare HAT button mapping (driver/wshat/), pre-rasterised OpenType fonts (font/comfortaa,font/poppins,font/constant), GUI screen flows (gui/), camera + LCD drivers (driver/libcamera/,driver/drm/), curve math (bezier/,bspline/), image helpers (image/).
Gangleri42's SeedHammer fork (SH-II features that inspired this port)
- Repo: https://github.com/Gangleri42/seedhammer
- Baseline: branch
seedhammer-features(commit0a3c63efb125d17d8ec86ce739ecd058c8747cfe) - License: Unlicense (public domain dedication)
- Lifted from this codebase: composer PWA shell (
cmd/webnfc/), firmware-in-browser emulator pattern (cmd/wasmemu/), combined composer+emulator harness (cmd/webnfc-sim/), Android wrapper structure (cmd/seedhammer-android/). The engrave-payload encoder (engrave/wire/) is NOT lifted as-is — it is SH-II-specific (the SH2E NFC envelope); v1 has a completely different live USB-serial protocol. We replace it with a v1-shaped SH1E envelope (seedocs/architecture/sh1e-spec.md).
SeedSigner (companion emulator)
- Repo: https://github.com/SeedSigner/seedsigner
- Baseline: TBD — bundled via Pyodide at a pinned commit; see
web/seedsigner-sim/UPSTREAM.mdonce that is wired up. - License: MIT
- Used in this project: runtime UI assets (
src/seedsigner/resources/), custom icon font (seedsigner-icons.otf), screen-flow definitions (src/seedsigner/views/,src/seedsigner/gui/screens/), screenshot generator (tests/screenshot_generator/) used as a CI pixel-diff oracle, 3D-printable enclosure CAD source (enclosures/) for the device chassis render. - License compliance: SeedSigner-derived files segregated under
web/seedsigner-sim/upstream/andcmd/seedsigner-sim/upstream/with the MIT notice preserved inLICENSE.seedsigner.
Other dependencies
github.com/fxamacker/cbor/v2— MIT — used for SH1E payload encoding (canonical CBOR).github.com/tarm/serial— MIT — USB-serial driver, brought in via upstream SeedHammer'sdriver/mjolnir/.periph.io/x/conn/v3+periph.io/x/host/v3— Apache 2.0 — GPIO library, brought in via upstream SeedHammer'sdriver/wshat/.- Pyodide — MPL-2.0 — Python-in-WASM runtime used to host the
SeedSigner emulator in-browser. See
web/seedsigner-sim/pyodide/.
Contributing
If you contribute and want your name listed here, just say so in your PR. We will not list you without consent.