Embroidery format U??
U?? is called FDR internally in some documentations. Barudan stitch information. Usually these are .u01 files, sometimes .u00 the scheme is apparently permitted to go up to .u99.
- .U01 contains command, stitch triplet data.
- .U01 contains commands for SLOW, FAST (in both stitched and unstitched forms)
Header
The header comes in two parts.
Part A
- Bunch of 0x30 "0" characters for 128 characters in all for an unknown reason.
Part B
Some basic extends information
Type | Bytes | Value | Description |
---|---|---|---|
`s16` | 2 | -X | Left |
`s16` | 2 | -Y | - Bottom (in y-flipped) |
`s16` | 2 | +X | Right |
`s16` | 2 | +Y | - Top (in y-flipped) |
`u32` | 2 | 0 | Unknown only seen (0) |
`u32` | 2 | count_commands | Stitch Data Count, (if multiplied by 3 will give the length of body) |
`u16` | 2 | x_final | Final X position |
`u16` | 2 | y_final | Final Y position (-Y if we're y-flipped) |
The remainder of the 128 byte section is padded with 0x00 data.
Body
The body starts at position 0x100 (256)
The body consists of encoded stitches. The stitches are in:
Control, X, Y form.
BYTE | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|
1 | 1 | -y | -x | c | c | c | c | c |
2 | y | y | y | y | y | y | y | y |
3 | x | x | x | x | x | x | x | x |
The control byte contains an always set value, followed by 2 bits of directional information for the Y, X values (whether they are + or -), then five bytes of control.
Value | Command | Operation |
---|---|---|
0 | Stitch | Normal Stitch |
1 | Jump | Jump Stitch |
2 | Fast | Fast invoke, Normal Stitch |
3 | Fast, Jump | Fast invoke, Jump Stitch |
4 | Slow | Slow invoke, Normal Stitch |
5 | Slow, Jump | Slow invoke, Jump Stitch |
6 | T1 | Top Thread Trim (this is not typically used) |
7 | T2 Trim | This is what most all encodings use for trim. |
8 | C00 STOP | Stop the machine. |
9 | C01 Needle 1 | Use needle 1, color change if necessary |
10 | C02 Needle 2 | Use needle 2, color change if necessary |
11 | C03 Needle 3 | Use needle 3, color change if necessary |
12 | C04 Needle 4 | Use needle 4, color change if necessary |
13 | C05 Needle 5 | Use needle 5, color change if necessary |
14 | C06 Needle 6 | Use needle 6, color change if necessary |
15 | C07 Needle 7 | Use needle 7, color change if necessary |
16 | C07 Needle 8 | Use needle 8, color change if necessary * Not typically used, some machines don't have this. |
17 | C07 Needle 9 | Use needle 9, color change if necessary * Not typically used, some machines don't have this. |
18 | End | This is often the terminal command. |
19 | Gp1 | Group 1 |
20 | Gp2 | Group 2 |
21 | Gp3 | Group 3 |
22 | Gp4 | Group 4 |
23 | Afrm | May be Roll-to-Roll Stop. It stops but with the needle penetrated, which was useful for some BEVT machines that used that functionality. |
31 | Rewind, Stop | Unsure what this properly does. But it is known to exist |
Post Fix
This can section can be completely omitted and is only discussed for the sake of completion.
Embroidery Machine dumps of the edited files contain post-file information which apparently through some means edits the data within the body. This is usually called after the stop. It buffers 32 0x2B "+" bytes then has some string of bytes that identically to some in the header that previously was entirely zeros. 0xA0 - 0xA7.
Unknown Functions
There is some suggestion that the Group commands may be used to encode a lot of additional data setting a great many things on the embroidery machine. However it is not yet known how these are accessed, or if that belief is even warranted. The manuals suggest the following functions exist as functions and thus should be able to be encoded somehow. They can be put into the data but I dunno if that is in .u01 or some other format. There's a clear correlation with regard to known to exist commands. However since we only have 5 bits and 31 is the last possible command, there's nothing really to do here.
It has been confirmed that group commands do not use the subsequent command bytes to encode additional data. They may however use their own Y values in some regard.
The manual has an ambiguous footnote: *1 After G1:Group 1 ~ C15 are the Color Change Function Codes.
Function Codes | No. Code | Function |
---|---|---|
0 | 0 | Normal Stitch |
1 | JP | Jump Stitch |
2 | L | Low Speed |
3 | LJ | Low Speed Jump |
4 | H | High Speed |
5 | HJ | High Speed Jump |
6 | T1 | Top Thread Trimming |
7 | T2 | Bobbin Threading |
19 | G1 | Group 1 *footnote |
20 | G2 | Group 2 |
23 | SE | Sub End |
32 | C00 | Stop |
33 | C01 | Needle Bar 1 |
34 | C02 | Needle Bar 2 |
35 | C03 | Needle Bar 3 |
36 | C04 | Needle Bar 4 |
37 | C05 | Needle Bar 5 |
38 | C06 | Needle Bar 6 |
39 | C07 | Needle Bar 7 |
40 | C08 | Needle Bar 8 |
41 | C09 | Needle Bar 9 |
42 | C10 | Needle Bar 10 |
43 | C11 | Needle Bar 11 |
44 | C12 | Needle Bar 12 |
45 | C13 | Needle Bar 13 |
46 | C14 | Needle Bar 14 |
47 | C15 | Needle Bar 15 |
64 | S0 | Sequin OFF |
65 | S1 | Sequin ON |
67 | SJ | Sequin Jump |
68 | CC | Chain Stitch |
69 | CL | Loop Stitch |
70 | PR | Presser foot height |
71 | SPL | Normal Embroidery |
72 | ST1 | Taping & Cording Embroidery (R) |
73 | ST2 | Taping & Cording Embroidery (L) |
74 | SZ1 | Zigzag Embroidery (L) |
75 | SZ2 | Zigzag Embroidery (R) |
76 | SC1 | Coiling Embroidery (L) |
77 | SC2 | Coiling Embroidery (R) |
78 | LN | Nipple Movement |
79 | LZ | Zigzag Movement |
80 | HSP | Head Selection Pattern |
81 | FMP | The point of flame moving |
It's not clear what after means with regard to G1, these commands exist in the .u01 data and apparently the manual suggests there's an extended list.