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>
28 lines
1.2 KiB
Go
28 lines
1.2 KiB
Go
// Package sh1e implements the v1 SH1E plate-design envelope.
|
|
//
|
|
// SH1E ships a plate design (plate type + text blocks + optional SVG paths)
|
|
// from the browser-side composer to a SeedHammer v1 Pi controller, intended
|
|
// primarily for transport via QR code(s) scanned by the Pi's camera.
|
|
//
|
|
// The envelope structure:
|
|
//
|
|
// +----------+----------+--------------+--------+-----------+
|
|
// | magic | version | payload_len | crc32 | payload |
|
|
// | 4 bytes | 1 byte | 2 bytes (LE) | 4 bytes| N bytes |
|
|
// | "SH1E" | 0x01 | uint16 | | CBOR |
|
|
// +----------+----------+--------------+--------+-----------+
|
|
//
|
|
// Payload is CBOR-encoded per RFC 8949 deterministic encoding rules so a
|
|
// given Design produces byte-identical bytes every time.
|
|
//
|
|
// The composer side encodes; the Pi controller side decodes + validates +
|
|
// rasterises locally using the trusted engrave/ pipeline. The composer
|
|
// never ships pre-rendered engraver commands — keeping the security
|
|
// boundary on the Pi.
|
|
//
|
|
// Full spec: docs/architecture/sh1e-spec.md
|
|
//
|
|
// Status: STUB — reference encoder + decoder + canonical-encoding test
|
|
// fixtures pending. Will land in Phase 1 of the project.
|
|
package sh1e
|