From efa22ff0985235138fd5c0f2ab76aa8f30bf37d3 Mon Sep 17 00:00:00 2001 From: Codex Date: Sat, 17 Oct 2026 17:15:23 +0200 Subject: [PATCH] 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. --- README.md | 1 + .../live-usb-enumeration-2026-10-17.md | 77 +++++++++++++++++++ docs/research/machine-profile.yaml | 11 ++- docs/status/phase-0.md | 6 +- 4 files changed, 92 insertions(+), 3 deletions(-) create mode 100644 docs/research/live-usb-enumeration-2026-10-17.md diff --git a/README.md b/README.md index 9b2f142..5050e4a 100644 --- a/README.md +++ b/README.md @@ -24,6 +24,7 @@ Start with: - [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) diff --git a/docs/research/live-usb-enumeration-2026-10-17.md b/docs/research/live-usb-enumeration-2026-10-17.md new file mode 100644 index 0000000..72cb293 --- /dev/null +++ b/docs/research/live-usb-enumeration-2026-10-17.md @@ -0,0 +1,77 @@ +# Live USB enumeration — 2026-10-17 + +## Scope and safety boundary + +The JPT fiber laser controller was powered through the machine's normal +procedure and connected by USB to the development computer. Inspection was +limited to Windows' existing Plug and Play database using `Get-PnpDevice`, +`Get-PnpDeviceProperty`, CIM, and `pnputil /enum-devices`. + +No application opened the USB device. No endpoint was claimed, no driver was +installed or changed, and no bytes or controller commands were sent. There +was no framing, galvo motion, marking, or laser output. + +The complete Windows instance ID contains a device-specific suffix. That +suffix is deliberately omitted from this public record. + +## Sanitized observation + +| Property | Observed value | +| --- | --- | +| Bus-reported description | `USBLMCV4` | +| USB VID | `9588` | +| USB PID | `9899` | +| USB device revision descriptor | `0005` | +| Compatible class | `FF` — vendor-specific | +| Subclass / protocol | `00` / `00` | +| Windows presence | Present | +| Bound function driver | None | +| Windows problem | Code 28, `CM_PROB_FAILED_INSTALL` | +| Windows explanation | No compatible driver is installed | +| Reboot required | No | + +`REV_0005` is the USB device revision descriptor (`bcdDevice`-derived +hardware ID). It must not be relabeled as board revision or firmware version +without independent evidence. + +## Interpretation + +This is the first live confirmation that the connected physical controller +enumerates with the same `9588:9899` identity found in the private installer +metadata. It also matches the constants used by MeerK40t BalorMK's independent +USB implementation. The three independent observations make BalorMK a strong +compatibility candidate: + +1. private JCZ driver metadata from the known installer snapshot; +2. Windows enumeration of the connected controller; +3. BalorMK source code targeting the same VID/PID. + +The friendly name `USBLMCV4` is additional evidence about the controller +generation, but it does not by itself prove every command, source parameter, +correction setting, or safety behavior is compatible. + +Problem code 28 is expected on this development computer because neither the +vendor driver nor a libusb function driver is installed. It does not indicate +that Windows rejected a known driver or that the controller failed to +enumerate. No attempt was made to fix it because installing libusb could +affect which software can own the controller. + +## Consequences + +- Change the public machine profile's VID/PID status from inferred installer + metadata to live-confirmed. +- Retain `Lmcv2u` only as the stock-driver family observed in the installer, + not as the driver currently bound on this computer. +- Use `9588:9899` as an explicit allow-list identity in future test plans, but + never as the only machine/profile safety check. +- Keep the next experiment offline. The first controller experiment remains a + mock trace, not a live USB connection. +- Before any later live connection, choose and document a reversible Windows + driver strategy and preserve the current production computer's driver state. + +## Related sources + +- [Sanitized machine profile](machine-profile.yaml) +- [Open-source landscape](open-source-landscape.md) +- [BalorMK USB implementation](https://github.com/meerk40t/meerk40t/blob/main/meerk40t/balormk/usb_connection.py) + diff --git a/docs/research/machine-profile.yaml b/docs/research/machine-profile.yaml index e68a481..79ac139 100644 --- a/docs/research/machine-profile.yaml +++ b/docs/research/machine-profile.yaml @@ -25,8 +25,13 @@ lightburn: usb: vid: "9588" pid: "9899" - driver: Lmcv2u - status: installer-metadata-observed-pending-live-verification + device_description: USBLMCV4 + device_revision_descriptor: "0005" + interface_class: vendor-specific + stock_driver_family_from_installer: Lmcv2u + development_computer_driver: null + development_computer_problem_code: 28 + status: live-enumeration-confirmed-no-compatible-driver-installed safety: phase_0_hardware_commands_allowed: false phase_0_laser_output_allowed: false @@ -43,3 +48,5 @@ evidence: notes: - No complete serial numbers or private source locators are stored here. - Incorrect galvo or source configuration can damage hardware; values are not inferred by trial and error. + - USB identity was confirmed by passive Windows PnP enumeration on 2026-10-17; no device endpoint was opened. + - USB revision 0005 is a descriptor value, not a proven board or firmware version. diff --git a/docs/status/phase-0.md b/docs/status/phase-0.md index 7895cfc..3e8f960 100644 --- a/docs/status/phase-0.md +++ b/docs/status/phase-0.md @@ -18,6 +18,10 @@ Last updated: 2026-10-17 - A fresh clone of both remotes passed `git fsck`; the private clone additionally passed `git lfs fsck` and reproduced the expected file and byte counts. - The public test suite and leak guard pass against the fresh private deny-list. +- Passive Windows enumeration of the connected controller confirmed device + description `USBLMCV4`, USB VID/PID `9588:9899`, vendor-specific class, and + USB revision descriptor `0005`. No compatible function driver is installed + on the development computer; no endpoint was opened. - No vendor executable, plugin, DLL, or driver was run. No USB capture, framing, machine command, or laser output was performed. @@ -33,7 +37,7 @@ Consequently, these items remain pending from the actual control machine: - Device Settings screenshots; - known-working `.lbrn2` examples; - safe exterior hardware/label photographs and startup/interlock notes; -- live Windows Device Manager confirmation of USB VID/PID and driver. +- stock-driver identity and version from the actual LightBurn control computer. Collect them directly into a dated directory under PrivateStash by following the [LightBurn checklist](../collection/lightburn.md). Do not use Google Drive