There are certain file formats which seem to be fairly mainstream and come up frequently from a variety of sources. Then you find one from a specialized niche industry. I recently came across a file with the HUS extension and it led me down a path of a family of formats I didn’t know existed. The world of embroidery formats has been around for quite some time and is quite confusing. There are many manufacturers of embroidery machines and over the years have merged with each other or upgraded to include new features all requiring changes to the file formats used by the systems.
Embroidery stitching designs are a unique file formats. They are images, probably vector, but with stitching information included in the file which determines the color of thread used and pattern used.
I took a data set of many different embroidery files from here and ran it through Siegfried.
That is pretty bleak. Not a single file identified except a few using an OLE container and a couple files which may be plain bitmaps. I have started to document where each of these formats come from on the File Format Wiki, but there are so many formats to research. The triple XXX format research has its other challenges…..
Today I wanted to focus on one brand, Husqvarna, a Swedish company with a long history.
Husqvarna has made sewing machines or quite some time. In the late 1970’s machines started to enter the market which were “computerized”. It was in the early 1990’s when the embroidery machines could take a memory card full of stitching patterns, then later could take a floppy disk or USB drive full of custom made designs. Let’s take a look at a few of the formats, starting with the extension .HUS.
First a sample with a 1994 last modified date:
hexdump -C Bow.hus | head 00000000 5b af c8 00 1a 09 00 00 01 00 00 00 98 01 67 01 |[.............g.| 00000010 6f fe 9b fe 2c 00 00 00 47 00 00 00 0e 07 00 00 |o...,...G.......| 00000020 00 00 00 00 00 00 00 00 00 00 07 00 00 10 38 84 |..............8.| 00000030 81 af f8 d9 6e bc 5e c1 b4 1d fc b2 00 00 00 0c |....n.^.........| 00000040 93 03 49 98 00 e5 f0 07 41 77 75 c6 49 c6 ff e2 |..I.....Awu.I...| 00000050 80 aa aa 08 00 28 82 a8 b2 49 27 5e dd ae ba ee |.....(...I'^....| 00000060 db 78 05 bc 4b ef 00 37 f0 da db b5 d6 ee 93 9e |.x..K..7........| 00000070 55 15 01 00 44 00 05 51 01 3e 16 cf db ce 2c bc |U...D..Q.>....,.| 00000080 ad db 48 97 cb e5 f2 fe fc 63 79 e7 a3 a1 46 80 |..H......cy...F.| 00000090 5c 37 f0 10 41 43 a1 40 21 c7 a5 d2 6e 82 0a 20 |\7..AC.@!...n.. |
Then one from around 1996:
hexdump -C ROSEBUD.HUS | head 00000000 5b ff c8 00 5f 0b 00 00 04 00 00 00 ce 00 69 01 |[..._.........i.| 00000010 01 ff 17 fe 3a 00 00 00 66 00 00 00 97 09 00 00 |....:...f.......| 00000020 00 6b 6e 6c 6a 6b 00 00 00 00 0a 00 19 00 1a 00 |.knljk..........| 00000030 0e 00 1a 00 05 00 a4 a2 00 10 00 19 42 88 80 35 |............B..5| 00000040 ff 4d 96 0d c1 72 49 6e 09 00 c8 72 ee 90 76 93 |.M...rIn...r..v.| 00000050 47 ca 20 00 00 4a 32 b1 d4 d4 08 e1 e7 86 d3 50 |G. ..J2........P| 00000060 20 0f 2f 1a 63 e0 09 66 7e ed f0 85 b9 37 fd 12 | ./.c..f~....7..| 00000070 2c 89 09 01 02 00 30 33 33 00 44 96 4b 36 49 65 |,.....033.D.K6Ie| 00000080 bd d7 77 7e df bb cd f4 9b db e7 6f 5b 76 ed b1 |..w~.......o[v..| 00000090 2d b6 49 08 03 31 81 8c 00 02 44 91 22 24 b2 5f |-.I..1....D."$._|
And another from 1998:
hexdump -C FLOWER.HUS | head 00000000 5d fc c8 00 de 23 00 00 04 00 00 00 79 01 e5 01 |]....#......y...| 00000010 87 fe 1b fe 32 00 00 00 e0 00 00 00 51 1b 00 00 |....2.......Q...| 00000020 00 00 00 00 00 00 00 00 00 00 0e 00 03 00 0c 00 |................| 00000030 05 00 00 69 53 6d 82 36 bf f0 d8 7a 55 c1 0b b6 |...iSm.6...zU...| 00000040 fd b9 52 ff da 61 20 20 14 6a 31 1d e8 1c b0 7f |..R..a .j1.....| 00000050 92 cc 48 0c 38 59 16 49 6d 71 11 39 00 00 1e 10 |..H.8Y.Imq.9....| 00000060 4c fc 18 00 00 00 00 00 00 00 0f 68 67 e0 be 11 |L..........hg...| 00000070 17 88 d5 2b 13 c4 5b 33 a2 98 f7 b9 6e 2d dc 62 |...+..[3....n-.b| 00000080 ba 5e 8f 50 bf 09 f9 28 13 38 29 2a de 47 f4 c1 |.^.P...(.8)*.G..| 00000090 9c 3e d6 37 bc 8c ad 95 f0 b3 c1 97 bc fb 1f b5 |.>.7............|
After 1998 Viking Husqvarna merged with the Pfaff brand and a new format with the extension .VIP was used. I found a couple variants of this format.
hexdump -C Magic Flower.vip | head 00000000 5d fc 90 01 0e 06 00 00 01 00 00 00 3e 01 19 01 |]...........>...| 00000010 c2 fe e7 fe 6e 00 00 00 80 00 00 00 c8 04 00 00 |....n...........| 00000020 00 00 00 00 00 00 00 00 00 00 36 00 00 00 89 bf |..........6.....| 00000030 93 fc 01 00 00 00 1a 00 00 00 46 00 6c 00 6f 00 |..........F.l.o.| 00000040 72 00 61 00 6c 00 3b 00 20 00 41 00 62 00 73 00 |r.a.l.;. .A.b.s.| 00000050 74 00 72 00 61 00 63 00 74 00 3b 00 20 00 46 00 |t.r.a.c.t.;. .F.| 00000060 61 00 73 00 68 00 69 00 6f 00 6e 00 00 00 00 0b |a.s.h.i.o.n.....| 00000070 38 68 61 2f f8 6c 9d 68 63 47 07 80 09 c0 6b e0 |8ha/.l.hcG....k.| 00000080 04 9f 6d eb 70 c5 4b 3f e0 00 7d 52 4a 45 66 6f |..m.p.K?..}RJEfo| 00000090 bf 1e f5 41 be f6 50 44 90 02 21 fd 6f 39 bd 71 |...A..PD..!.o9.q|
The three HUS files and the VIP files have a similar first 4 bytes. Should make an easy signature.
With the addition of the TruE mySewnet service and software, the format went through a change and started using the .VP3 extension.
hexdump -C Magic Flower.vp3 | head 00000000 25 76 73 6d 25 00 00 38 00 50 00 72 00 6f 00 64 |%vsm%..8.P.r.o.d| 00000010 00 75 00 63 00 65 00 64 00 20 00 62 00 79 00 20 |.u.c.e.d. .b.y. | 00000020 00 56 00 53 00 4d 00 20 00 53 00 6f 00 66 00 74 |.V.S.M. .S.o.f.t| 00000030 00 77 00 61 00 72 00 65 00 20 00 4c 00 74 00 64 |.w.a.r.e. .L.t.d| 00000040 00 02 00 00 00 0d 64 00 32 00 46 00 6c 00 6f 00 |......d.2.F.l.o.| 00000050 72 00 61 00 6c 00 3b 00 20 00 41 00 62 00 73 00 |r.a.l.;. .A.b.s.| 00000060 74 00 72 00 61 00 63 00 74 00 3b 00 20 00 46 00 |t.r.a.c.t.;. .F.| 00000070 61 00 73 00 68 00 69 00 6f 00 6e 00 00 7c 38 00 |a.s.h.i.o.n..|8.| 00000080 00 6d c4 ff ff 83 c8 ff ff 92 3c 00 00 06 0e 00 |.m........<.....| 00000090 01 0c 00 01 00 03 00 00 00 0d 10 00 00 00 00 00 |................|
The current version of the Premier+ software produces a file with the extension .VP4.
hexdump -C Magic Flower.vp4 | head 00000000 25 56 70 34 25 01 00 00 00 4d 73 61 0a df 74 29 |%Vp4%....Msa..t)| 00000010 3c 87 6b 44 2c 84 2f 00 3c 7c f7 e7 a0 69 6e 66 |<.kD,./.<|...inf| 00000020 6f 00 00 00 00 45 00 00 00 6e 74 74 6e 00 00 00 |o....E...nttn...| 00000030 00 27 00 00 00 02 00 6e 74 65 73 19 00 46 6c 6f |.'.....ntes..Flo| 00000040 72 61 6c 3b 20 41 62 73 74 72 61 63 74 3b 20 46 |ral; Abstract; F| 00000050 61 73 68 69 6f 6e 73 74 67 73 00 00 0c 06 00 00 |ashionstgs......| 00000060 01 00 00 00 01 00 c2 fe e7 fe 3e 01 19 01 00 00 |..........>.....| 00000070 73 62 64 73 00 00 00 00 ab 0c 00 00 01 00 73 62 |sbds..........sb| 00000080 64 6e 00 00 00 00 9d 0c 00 00 00 00 00 00 00 00 |dn..............| 00000090 00 00 00 00 00 00 00 00 00 00 00 6e 74 74 6e 00 |...........nttn.|
There is a great python library which can read in many of these formats and can give us some confirmation of the format headers. It is called pyembroidery and has readers for HUS and VP3.
One other format associated with the Husqvarna Viking Designer 1 model which used a floppy disk is the SHV stitch file. This is a special format which could only be used on the embroidery machine if it was properly formatted. This would put into a structure that would look like this:
The SHV file is the design file with the MHV and PHV are used for display on the embroidery machine. This is what we find when we look at the SHV content:
hexdump -C My Designs/MENU_01/DES01_01.SHV | head 00000000 45 6d 62 72 6f 69 64 65 72 79 20 64 69 73 6b 20 |Embroidery disk | 00000010 63 72 65 61 74 65 64 20 75 73 69 6e 67 20 73 6f |created using so| 00000020 66 74 77 61 72 65 20 6c 69 63 65 6e 73 65 64 20 |ftware licensed | 00000030 66 72 6f 6d 20 56 69 6b 69 6e 67 20 53 65 77 69 |from Viking Sewi| 00000040 6e 67 20 4d 61 63 68 69 6e 65 73 20 41 42 2c 20 |ng Machines AB, | 00000050 53 77 65 64 65 6e 08 55 6e 74 69 74 6c 65 64 8f |Sweden.Untitled.| 00000060 a0 47 50 62 7c 00 00 00 00 00 00 00 00 00 00 00 |.GPb|...........| 00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 000000a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 09 99 |................|
The MHV and PHV files have the same header so identification of just the SHV design file will be difficult.
I have only scratched the surface with these embroidery formats. The embroidery market was quite large with many different manufacturers. The user base seems to have been quite large, but its reach may be limited to personal collections. I have attempted a signature for the Husqvarna formats, you can find them in my GitHub repository. More to come hopefully!