Skip to main content

PMV

Status

FieldValue
Extension(s).pmv
Common ecosystemBrother sewing-machine stitch patterns
Format familyDecorative stitch pattern, not hoop embroidery
Satin Studio statusResearching
Open / importNo
ExportNo
ConfidenceMedium as a format lead.

What it is

PMV is different from hoop embroidery machine files. It describes decorative stitch patterns for sewing-machine stitch programs, where movement is constrained by the presser foot and feed direction rather than a full embroidery hoop.

Satin Studio direction

Research lead only. PMV is not a near-term machine-file import/export target for Satin Studio embroidery projects.

Versions and variants

Brother PMV files are reported with #PMV0001-style signatures. Other related Brother stitch-pattern files may exist.

File identification notes

Reported structure includes:

  • A 100-byte header.
  • A seven-byte signature such as #PMV0001.
  • Stitch settings such as length/width offsets and left/right shift.
  • A stitch block using a hybrid encoding: one dimension behaves like movement within the presser foot while another tracks feed direction.
  • Length and width lookup/control tables after the stitch block.

Observed structure notes

  • Observed PMV readers seek to offset 0x64 before reading decorative stitch blocks.
  • Each block begins with little-endian stitch_count and block_length. Block lengths >= 256 terminate observed reading. Each stitch point uses one X byte and one Y byte.
  • Observed coordinate rules: X is a six-bit signed value, Y is a five-bit signed value, both scaled by 2.5. The X position behaves as hybrid relative/absolute feed progression rather than hoop movement.
  • Observed PMV writers start with #PMV0001, write a 36-byte placeholder text area, then a fixed header block before the first stitch-program block.
  • Observed PMV writers cap a single exported pattern at 100 points, scale X and Y into small signed pattern units, and append length/width lookup tables after stitch points.

Structure sketch

PMV stores decorative stitch-program blocks, not hoop embroidery commands:

struct PmvFile<'a> {
header: [u8; 0x64],
blocks: &'a [PmvBlock<'a>],
}

struct PmvBlock<'a> {
stitch_count: u16, // little-endian
block_length: u16, // little-endian; observed >= 256 terminates
points: &'a [PmvPoint],
}

struct PmvPoint {
x_6bit_signed: u8,
y_5bit_signed: u8,
}

What we still need

Small decorative-stitch examples, relationship to Satin Studio's project model, and a decision on whether PMV belongs in scope.