ThePirateRay/README.md
Codex efa22ff098 docs: record live JCZ USB enumeration
Record the read-only Windows PnP observation of USBLMCV4 at 9588:9899, distinguish the absent local driver from the installer driver family, and omit the device-specific instance suffix from public history.
2026-10-17 17:15:23 +02:00

51 lines
2.2 KiB
Markdown

# The Pirate Ray
The Pirate Ray is Makerspace Næstved's clean-room project for learning how to
interoperate with its laser equipment and, over time, building a safe desktop
control application.
Phase 0 focuses on the **JPT 100 W E2/M7 MOPA** fiber laser with a JCZ/EZCAD2
controller. It is deliberately limited to documentation and offline analysis:
no USB capture, framing, machine commands, or laser output.
## Repository boundary
This public repository contains source code, plans, decisions, tests, tools,
and sanitized research. Raw machine data, serial numbers, LightBurn exports,
and third-party material with unclear redistribution rights live in the
separate private `ThePirateRay-PrivateStash` repository.
Start with:
- [Project charter](docs/project-charter.md)
- [Product and research roadmap](docs/roadmap.md)
- [Data handling policy](docs/data-handling.md)
- [LightBurn collection checklist](docs/collection/lightburn.md)
- [Sanitized machine profile](docs/research/machine-profile.yaml)
- [110/300 configuration comparison](docs/research/config-comparison.md)
- [Open-source reuse landscape](docs/research/open-source-landscape.md)
- [Live USB enumeration](docs/research/live-usb-enumeration-2026-10-17.md)
- [Repository boundary decision](docs/adr/0001-public-private-repository-boundary.md)
- [Proposed Rayforge/BalorMK reuse decision](docs/adr/0002-reuse-rayforge-and-balormk.md)
- [Current Phase 0 status](docs/status/phase-0.md)
## Validation
The repository uses only Python's standard library for Phase 0 tooling:
```powershell
python -m unittest discover -s tests -v
python scripts/check_public_repo.py .
```
`scripts/materialize_private_drive_files.ps1` is the bounded transport used by
the acquisition workflow. It accepts authenticated download references over
standard input, rejects path traversal, and verifies byte sizes before files
enter PrivateStash. It never prints download credentials.
For non-interactive orchestration it also accepts one UTF-8 JSON request as a
Base64 parameter. This prevents shell metacharacters in signed references from
being interpreted as commands.
No project license has been selected yet. Until that decision is recorded,
the contents are not offered under an open-source license.