3.2 KiB
3.2 KiB
VIN Migration Workflow
Purpose
Update the VIN (Vehicle Identification Number) stored in a replacement or repaired module so it matches the vehicle it is installed in, where this is a legitimate, authorized part of a repair (e.g. replacement ECU/instrument cluster taking on the VIN of the vehicle it's fitted to).
Prerequisites
- Confirmed authorization and documented reason for the VIN change (e.g. warranty replacement module, confirmed vehicle ownership).
- Correct target VIN recorded from the vehicle's official source (VIN plate, registration document) — not from a possibly-already-incorrect module.
- A validated VIN using the standard check-digit algorithm before writing anything (see
03_Script_Starter_Kit/examples/36_vin_extractor_validator.mjs), to catch transcription errors before they are written into hardware.
Required adapters
- Whatever adapter is required for the specific module's memory (see
04_Workflows/EEPROM_READ_WRITE_WORKFLOW.md/04_Workflows/MCU_READ_WRITE_WORKFLOW.md).
Wiring references
- Same as the underlying EEPROM/MCU workflow for the module in question.
Safety notes
- VIN is frequently cross-checked by multiple modules on modern vehicles (ECU, instrument cluster, BCM, sometimes TCU) — changing it in only one module can cause mismatched-VIN warnings/faults elsewhere. Confirm which modules on the target platform need to agree before starting.
- Double-check the target VIN's check digit (9th character) independently before writing — a single mistyped character is otherwise easy to miss, and some platforms may not display the VIN back to you for confirmation.
Procedure
- Intake — record authorization, target VIN, and which module(s) need updating.
- Validate the target VIN — run it through a standard check-digit validator (see
03_Script_Starter_Kit/examples/36_vin_extractor_validator.mjs) before touching hardware. - Acquisition — dual-read and hash the module's current data (per baseline workflow).
- Development — locate and change only the VIN field/region; keep every other byte identical (allow-list scoped to just the VIN field).
- Validation — diff report confirms only the VIN bytes changed; re-validate the written VIN's check digit by reading it back and re-running the validator.
- Release — confirm all cross-checking modules (if applicable) agree on the new VIN before returning the vehicle to service.
Common failures
- VIN written with a transposed or mistyped character that still "looks right" at a glance but fails check-digit validation.
- Only one of several VIN-storing modules updated, leaving a mismatch that surfaces as an intermittent fault later.
- VIN field boundaries in the buffer misidentified, accidentally overwriting adjacent configuration bytes.
Recovery procedures
- If a VIN mismatch fault appears after the change, re-run the check-digit validator against every module storing the VIN before assuming a deeper fault.
- Restore from the pre-change backup if the wrong field was edited; re-attempt with a tighter allow-list scoped to only the confirmed VIN byte range.
Related documents
03_Script_Starter_Kit/examples/36_vin_extractor_validator.mjs04_Workflows/ECU_TCU_CLONE_WORKFLOW.md