KSM
Status
| Field | Value |
|---|---|
| Extension(s) | .ksm |
| Common ecosystem | Older Pfaff lead |
| Format family | Machine-specific lead |
| Satin Studio status | Reference only |
| Open / import | No |
| Export | No |
| Confidence | Low-medium. |
What it is
KSM is a rare older Pfaff-family extension seen in embroidery conversion lists.
Satin Studio behavior
Satin Studio documents this format for identification and inspection. It does not open or export the file.
Versions and variants
KSM may not use one command mode for the whole stream; color/needle state may affect how following movement records are interpreted.
File identification notes
Reported structure includes a 512-byte header and unsigned x, y, control triplets. One reported quirk: after a color change to a specific needle, following x, y positions may look like normal movement until later control values trigger sewing again.
Observed structure notes
- Observed KSM readers skip a 512-byte (
0x200) header before reading three-byte records iny, x, controlorder. - Control bit
0x40negates X and bit0x20negates Y. The low five control bits drive state. - Observed controls include
0x07,0x13, and0x1Dtrim;0x17through0x19resume sewing;0x0Bthrough0x12needle changes;0x05stop;0x1Bpre-end state; and0x08end.
Structure sketch
Observed KSM files use a 512-byte header and stateful three-byte records:
struct KsmCandidate<'a> {
header: [u8; 0x200],
records: &'a [KsmRecord],
}
struct KsmRecord {
y: u8,
x: u8,
control: u8, // 0x40 negates x; 0x20 negates y; low five bits are state
}
enum KsmState {
Continue,
Stop,
Trim,
ResumeSewing,
NeedleChange { needle: u8 },
PreEnd,
End,
}
Compatibility evidence
The notes above help identify and inspect the format; they do not imply import or export support. Keep the original file and record the machine and software that produced it.