Model support

Adding a Blade model

Each Blade is a separate hardware target with its own evidence and safety checks.

Current admission

Supported models

See validated and experimental models and their firmware evidence in the Protocol reference.

Code controls support The production manifest and typed code decide which features OpenBlade can use.

Two evidence levels

The five current experimental profiles are exact-model, upstream-derived controls reviewed separately from the physically validated command catalog. They turn on automatically when recognized. A new experimental profile needs pinned provenance, typed bounded operations, independent readback, and pause/recovery handling. It must state what remains untested.

The steps below describe promotion to validated support. Upstream agreement alone does not satisfy physical application, restoration, or lifecycle validation.

  1. Record the model name and number, VID/PID, firmware, HID usage, report lengths, and a reliable host check. Leave out the laptop serial number.
  2. Match exactly one read-only interface. Reject missing, blocked, ambiguous, or mismatched devices.
  3. Decode safe identity, thermal, fan, battery, lighting, and firmware queries before testing setters. Reject malformed and unknown responses.
  4. Collect model evidence with Synapse Observer. Follow the safe testing guide for every value and power state. Save and restore the prior value. Collect evidence on this exact model.
  5. Add only typed, verified controls. If evidence is missing, leave the control unavailable. Reuse shared names, but keep byte differences in the model protocol code. Do not expose a raw command API.
  6. Test reconnect, sleep and resume, service restart, power changes, malformed replies, other controllers, restoration, and long runs. Then add the model's protocol table, exact firmware scope, and reviewed core revision.

Integration map

LayerContributor responsibilityFailure behavior
IdentityDefine the model number, VID/PID, observed BIOS, EC, and MCU versions, validated firmware scope, usage tuples, and exact report lengths.Reject the device if anything required for admission is missing, mismatched, or ambiguous. Record safely unreadable informational versions as unavailable.
EnvelopeShare a report codec only after proving identical status, transaction, class, ID, payload length, checksum, report ID, padding, and terminator behavior.Reject malformed or unknown responses. Do not turn them into defaults.
QueriesWrite typed requests and command-specific response decoders before policy or UI depends on the state.Hide the capability or power decision when its query is unavailable or unknown.
SettersAdd one named action per sanitized fixture. Include independent readback, or document a one-shot response contract and restoration evidence.Do not add a raw class, ID, or payload API. A command without evidence stays unavailable.
CapabilitiesExpose only commands allowed by the exact identity, admitted fixtures, readable state, power limits, and controller ownership.A new model may support fewer controls than an older one.
DocumentationAdd a model-specific table and the reviewed core revision. Keep response shapes symbolic unless exact bytes explain the contract.Documentation cannot authorize a command that core has not admitted.

Before opening a pull request