Electronics Initialization — Technical Reference
This is a protocol-level description of the electronics initialization process. It is written for firmware and tooling engineers who need to understand the exact sequence of operations — reads, writes, commands, delays, and retries — well enough to reimplement it against the same tools and back-end services in another language or environment.
It deliberately avoids naming any application functions. Everything below is described in terms of operations against the tool (over OpenLink or CANopen), the BLE module, the cloud/manufacturing APIs, and a local cache.
This describes what happens on the wire and in what order, including the conditions that change the path. It does not cover the OpenLink/CANopen frame encoding itself — refer to the protocol specs for packet structure. Memory-segment names below (e.g. User Password segment) are the firmware-facing OpenLink memory segments.
Overall Flow
Sub-pages
| Page | Phases | Covers |
|---|---|---|
| Lookup & Path Selection | 1–2 | Cloud record lookup, BLE/BMS pre-checks, path branching |
| OpenLink Initialization | 3, 5 | M18/M12 pre-flight, identity writes, post-init actions |
| BLE Module Initialization | 4 | Module type detection, capability, context acquisition, write sequence, provisioning |
| CANopen Initialization | 6 | MX/RollOn node loop, password fallback ladder, resets |
| BMS Replacement Workflow | 7 | 50E3→51X provision, OneKey card disassociation, CANopen init |
Terminology
| Term | Meaning |
|---|---|
| Tool | The connected device, addressed over OpenLink (M18/M12) or CANopen (MX/RollOn) |
| BLE module | The Bluetooth radio. Module types: BLE113 (legacy, no unique identity), BGM11S, BGM220, BGM13S |
| MPBID | Hex board identifier. First bytes encode a product ID; remaining bytes encode a serial ID |
| METCO password | The highest service-access password; required before writing identity data |
| Cloud API | OneKey tool-record services (lookup, writable data, link/unlink, service notes) |
| Manufacturing API | Provisioning services (new MPBID + passwords + certs, serial-number allocation, record modify/import) |
| Local cache | Browser-side IndexedDB store holding provisioned BLE records keyed by tool MPBID |
Phase 8 — Completion & Cleanup
- On success the process reports success; on any unhandled error it reports failure with a structured log (workflow, platform, serial number, adapter firmware revision, tool MPBID, error).
- Regardless of outcome, session re-initialization state is reset under these conditions: the connection is BLE, or the product has no subsystem count, or an error occurred without a "same-subsystem" warning, or all expected subsystems have now been initialized. The port-busy flag is always cleared.
Key External Operations
| Operation | Purpose |
|---|---|
| Look up tool records by serial number | Find the tool's identity in OneKey |
| Fetch unique writable data by MPBID | Retrieve passwords, BOD, and MLS certs for an MPBID |
| Request product info by MPBID | Determine whether a product is non-serializable |
| Provision new record | Allocate a new MPBID + passwords (+ optional certs) from Manufacturing |
| Allocate serial number | Generate a region-formatted serial number |
| Modify tool record | Link serial number ↔ MPBID ↔ BOD |
| Import tool record | Register a tool record in OneKey when missing |
| Link / unlink BLE record to tool | Associate or remove a BLE module record |
| Request item-instance event status | Hydraulic service history (cycles since last service) |
| Reset nails-fired count | Nailer counter reset |
| Post service note | Add an operator-visible note in OneKey |
| Disassociate tool from OneKey card | Clear the cloud-side card association |