Skip to main content
Migration mode ports an existing design to the XMOS board selected for your project. Use it for a SigmaStudio project (ADAU17xx or ADAU14xx .dspproj), or for MCU, DSP, FPGA, or older XMOS firmware. Embedder converts the source into a text design, plans the port with you, and implements the approved plan.
Migration mode appears only when the session’s project targets an XMOS platform, including XK- and XD- board names. Select the target board before you start. See XMOS.

Prerequisites

  • An Embedder project whose platform is an XMOS board.
  • For SigmaStudio: the .dspproj file and, ideally, its exported system files.
  • Optionally, the original product’s project folder: host code, tests, recordings, and schematics.
SigmaStudio+ (.ssprj) projects aren’t supported.

Export files from SigmaStudio

In SigmaStudio, choose Action → Export System Files. The export compiles without the board attached. Provide these files with the .dspproj: Embedder finds exports named after the project next to the .dspproj, in its Export/ folder, or anywhere in the project folder you provide. Other export files (_IC_<n>.h, _REG.h, .hex, .dat, E2Prom) repeat this data, and Embedder skips them.

Start a migration

  1. Choose Migration from the mode menu beside the chat input, or press Shift+Tab until the migration start dialog opens. The session switches to Migration mode when the migration starts; cancelling the dialog keeps the current mode.
  2. Under Migrating from, choose a source:
    • SigmaStudio project: choose the .dspproj. Add or remove export files, and optionally choose a Project folder. Embedder reads the folder in place and never uploads it.
    • Something else: choose the source folder, describe what the firmware does and what must carry over, or both.
  3. Review the live preview of blocks, inputs and outputs, sample rate, and blocks that need custom code.
  4. For a SigmaStudio project, optionally add Notes for the agent. Then select Start migration plan.
When the migration starts, Embedder:
  1. Converts the source into .embedder/migration/<slug>/.
  2. Switches the session to Migration mode.
  3. Loads the xmos-migration and xmos-shared-memory skills along with the board’s XMOS skills. SigmaStudio migrations also load sigmastudio-migration and xmos-audio-dsp.
  4. Sends a start message that summarizes the source, the target board, and the converted design.

Review the converted design

A SigmaStudio migration folder contains: A migration from another source writes only a README.md with a survey of the source folder. design.txt replaces the binary .dspproj as the source of truth for the migration. It lists the device and sample rate, I/O cells, every block, its parameters, and the wires between blocks. Each block carries an xmos= status that says how it maps to XMOS:
Embedder copies design.txt and data/ into the XMOS app so parameter scripts and reference models build from files in the repository.

Warnings in design.txt

Problems appear as issue records. Two depend on the export files:
  • stale_export: a setting differs between the saved .dspproj and its exports. Embedder asks which version the product ships instead of picking one. Re-export from SigmaStudio if the project is the current version.
  • missing_internals: an ADI fixed-function block keeps values that the .dspproj never stores, and the export files don’t supply them. Affected blocks include DC block, level detectors, band analyzers, signal detect, dynamic bass, Super Bass, Phat Stereo, curve-table compressors, slewed mutes, and oscillators. Provide the export folder to resolve it. Otherwise, Embedder designs the block from ADI’s documentation, reports it as an approximation, and checks it against recordings of the original hardware when you have them.
Other issue kinds flag unknown blocks, cycles, unconnected pins, protected boards, and exports that disagree with the project (export_mismatch).

Plan, approve, and implement

Migration mode works like Plan mode until you approve the plan. Embedder studies the design and the board, then asks only what the files cannot answer: I/O mapping, sample rate and latency, which controls stay tunable, and each approximate or unsupported block. The plan covers the feature map, architecture and cycle budget, test steps, and risks. After you approve the plan, Embedder implements it in Act mode. An approved plan can assign independent steps to subagents.
For general porting practice, see Platform migrations.
Last modified on October 9, 2026