52 lines
2.6 KiB
Markdown
52 lines
2.6 KiB
Markdown
# Rayforge synthetic LightBurn MOPA import spike
|
|
|
|
- Date: 2026-10-18
|
|
- Rayforge commit: `c28918c87f8273dd1d244f5a057addc192807fa5`
|
|
- Fixture: synthetic public `.lbrn2`; no machine identifiers
|
|
- Scope: importer boundary only, with no discovery or transport
|
|
|
|
## Result
|
|
|
|
The pinned Rayforge importer successfully parsed a synthetic two-millimetre
|
|
square and preserved its layer name, geometry, 50 percent power, 250 mm/s
|
|
speed and one pass. LightBurn's observed `frequency` and
|
|
`overrideFrequency` elements also survive in the source asset's raw metadata.
|
|
|
|
However, the importer does not map frequency into the workflow layer settings.
|
|
It maps only power, speed and passes from this fixture. The inspected Rayforge
|
|
LightBurn project fixtures and importer contain no evidence-backed mapping for
|
|
a MOPA pulse-width field. A later private LightBurn device-library export
|
|
establishes the field name `QPulseWidth` and its nanosecond UI contract, but it
|
|
does not establish how that value is serialized in a `.lbrn2` project.
|
|
Consequently, the imported job is explicitly classified as unsafe for JCZ
|
|
encoding rather than being completed with a guessed mapping.
|
|
|
|
Two runs produced identical output with SHA-256
|
|
`9ebce7b5b3388abfeed024e25f8f46001260bf814da19808bfc83fb6554fc26e`.
|
|
The golden result is `tests/fixtures/rayforge-lightburn-mopa-import.json`.
|
|
|
|
## Evidence classification
|
|
|
|
- **Observed:** Rayforge's own LightBurn test fixtures contain `frequency` and
|
|
`overrideFrequency` elements.
|
|
- **Observed:** generic parsing retains these elements in source metadata.
|
|
- **Observed:** `_build_step_config` does not map frequency or pulse width.
|
|
- **Observed after this spike:** a LightBurn `2.1.03` device-library export
|
|
uses `QPulseWidth`; official LightBurn documentation defines Q-pulse width
|
|
in nanoseconds. See the
|
|
[device-export analysis](lightburn-device-exports-2026-10-19.md).
|
|
- **Unknown:** the exact `QPulseWidth` representation and omission/default
|
|
behavior in a known-working galvo `.lbrn2` project.
|
|
- **Not inferred:** no pulse-width tag, unit, default or machine limit was
|
|
invented for the public fixture.
|
|
|
|
## Decision impact
|
|
|
|
Rayforge's existing LightBurn importer is useful for ordinary vector geometry
|
|
and common process settings, but it does not yet satisfy M1's MOPA parameter
|
|
survival requirement. The narrowest likely extension is an importer mapping
|
|
for frequency plus `QPulseWidth`, followed by an explicit unit conversion and
|
|
validation gate. A private known-working LightBurn project is still needed to
|
|
establish project serialization before implementing that mapping.
|
|
|
|
No USB enumeration, controller command, motion or emission was attempted.
|