Skip to main content

EMD

Status

FieldValue
Extension(s).emd
Common ecosystemElna or related home-embroidery workflows
Format familyMachine-specific file
Satin Studio statusResearching
Open / importNo
ExportNo
ConfidenceLow-medium.

What it is

EMD appears in home-embroidery format lists near Elna and Janome-adjacent workflows.

Satin Studio direction

Research lead until relationship to JEF/SEW is verified.

Versions and variants

Treat EMD as its own format until files prove otherwise.

File identification notes

Reported structure includes a 48-byte (0x30) header and signed relative movement records where x == 0x80 introduces control events. Reported controls include:

  • 0x2a: stop / color change.
  • 0x80: jump.
  • 0xfd: end.

Observed structure notes

  • Observed EMD files skip a 48-byte (0x30) header before reading stitch records.
  • Normal movement is a two-byte signed dx, dy pair. A first byte of 0x80 introduces a one-byte control.
  • Observed controls include 0x80 jump followed by signed movement, 0x2A color change, 0x7D ignored marker near origin, 0xAD trim, 0x90 final trim/return marker, and 0xFD end.

Structure sketch

The observed EMD stream has a fixed preamble and two-byte command records:

struct EmdFile<'a> {
header: [u8; 0x30],
records: &'a [EmdRecord],
}

enum EmdRecord {
Stitch { dx: i8, dy: i8 }, // first byte != 0x80
Jump { dx: i8, dy: i8 }, // 0x80 0x80 followed by movement
ColorChange, // 0x80 0x2A
IgnoredMarker, // 0x80 0x7D
Trim, // 0x80 0xAD or 0x80 0x90
End, // 0x80 0xFD
}

What we still need

Known-machine EMD files, command coverage, and machine/software provenance.