Embroidery Machine

24,621

295

25

Introduction: Embroidery Machine

This project was inspired by jameskolme's project published on inkstitch.org.

We have 3 children with many similar dresses, we need permanent marking on them. We had an unused Brother sewing machine, I like to build CNC DIY projects, so I built an embroidery machine :-)

Step 1: The Sewing Machine

I needed a stepper driven sewing machine, so I had to remove the original motor and foot controller and replaced with a 4A NEMA23 stepper. This sewing machine has an internal motor solution, so the room inside limits the motor size.

I used the original timing belt. I printed a 18-teeth pulley to the NEMA23. The sewing machine has 81-teeth pulley, so their ratio is 1:4.5 (originally I planned a 27-teeth pulley, but it did not fit into housing)

The attached 3d printed nema23 holder is rigid and robust, but maybe a metal solution would be better.

I replaced the original connectors to a 9pole D-Sub connector. The switch has release function, disables/enables the stepper driver. It is very useful if we would like to turn the big knob on the right to tune the needle position. The capacitors are for noise filtering.

I used embroidery foot for the sewing machine like this. It must be adjusted so, that the foot is lifted up in the top position of the needle.

Step 2: XY Table

The sewing machine is prepared, but we need to move the fabric too. I built a construction from the materials I found at home. Nema17 standard steppers will provide enough power and speed for this task with GT2 timing belt and 20T pulleys. One axis runs on a 10mm with 2x1pcs SC10UU linear bearings, the other runs on a 8mm shaft with 2x2pcs LM8UU linear bearings. I plan to add one more pair SC10UU, to make it more robust.

I made endstops to the end of axes but in this project they are not really needed, I always use the middle range of the axes. I used light gates ITR20005 and this circuit to manage them. All items connected via a 25-pole D-SUB connector to the controller. (A 15-pole is enough)

I printed an own design of embroidery frame (KERET xx 120x120.stl files) but I use indeed an original, because it is smaller.

It is important in case of any frame that the fabric shall be in the height of the sewing machine's working height. I my case it is 90mm.

Step 3: Controller

See the block diagram about the controller. I used the Arduino uno + Arduino grbl driver software

The CNC shield + 2pcs A4988 stepper drivers are for nema17 steppers, the standalone DM556 driver for nema23. The DM556 is a overkill, it runs in 1.9A mode.

The optocoupler is to filter the the noises from the endstop signals. Use shielded cables against noise too.

Step 4: Software

1. Draw with Inkscape or import your vector drawing

2. Convert drawing to curves

3. Convert drawing to grbl file using InkStich extension

4. Send to Arduino via any CNC grbl sender. My favourites are bCNC. and the Universal gcode sender

Step 5: Advices

Use a working, well adjusted sewing machine. If it can sew normal fabrics, then it is ok.

Use embroidery needles, normal needles lead to thread rupture.

Check the handbook of the sewing machine. If it has embroidery mode then use it, if not, then switch it to normal sewing mode. Use the darning plate of the machine to the block the fabric movement.

If the result is not flat, the thread is jamming on front or backside, adjust slightly the thread tension control.

Modify It Speed Challenge

Grand Prize in the
Modify It Speed Challenge

Be the First to Share

    Recommendations

    • Edible Art Challenge

      Edible Art Challenge
    • Paint Challenge

      Paint Challenge
    • 3D Printed Student Design Challenge

      3D Printed Student Design Challenge

    25 Comments

    0
    rubwqr
    rubwqr

    3 months ago

    how to make a platform?

    0
    HorneczkiGabor
    HorneczkiGabor

    1 year ago

    Thank you for all the comments and votes to win this contest! I am so glad that I managed to arouse the interest and inspired you to create something similar. I have already have two solutions in my mind to speed it up, so stay tuned, I will make an update soon.

    0
    MrErdreich
    MrErdreich

    1 year ago

    This is truly awesome, and I'm inspired. Thank you for sharing!

    0
    omarepaul1
    omarepaul1

    1 year ago

    Nice one . Looking forward for a faster version

    0
    gta18
    gta18

    1 year ago

    Nice work! Do you have a video of it running? How long did it take to do that "G"?

    I did something similar to my sewing machine using a stepper to drive the sewing machine and have noticed that my NEMA23 can drive it but it is super slow compared to commercial Embroidery machines.

    Now am re-designing my Machine drive to use the internal motor but I will have to provide speed and Indexing feedback of the needle in order to run it properly.

    0
    HorneczkiGabor
    HorneczkiGabor

    Reply 1 year ago

    Yes, it is slow to commercial machines, printing this G took about 5:22 mins, but related to manual embroidery, it is pretty fast :-)
    You are right, keeping the original motor needs an indexing feedback to trigger the fabric movement. Unfortunately you will loose the possibility this way to use InkStitch via grbl.

    0
    gta18
    gta18

    Reply 1 year ago

    What my design on the Z axis would be using another arduino to control the motor and accept the Step/Dir outputs from the main one, so that it would still be compatible with the inkstitch.

    0
    HorneczkiGabor
    HorneczkiGabor

    Reply 1 year ago

    The problem is that the g code provides not paralel operation for z and xy axes. The z moves 5 mm and then the xy moves, and then the z moves 5mm again and so on. I am thinking about to put back the original motor and trigger the xy movement by the needle position.

    0
    gta18
    gta18

    Reply 1 year ago

    Basically the Z Arduino driver will be interpreting the 5mm moves to a 360deg cycle on the motor, that's the logic I have tested, right now I only have one feedback on my Motor (optical sensor when the needle is up) but with my setup right now of only one feedback, I get inconsistencies on the needle position hence I'm planning to have 2 feedbacks, speed and position of the main motor so I can control the power being given to the Z drive.

    0
    HorneczkiGabor
    HorneczkiGabor

    Reply 1 year ago

    Sounds good, let me know if you manage to reach a progress in your project.

    0
    tallbob
    tallbob

    1 year ago

    While it would be significantly slower, I would think an option for a variant here would be to leave the sewing machine as is, and have the controller simply index the table and then turn over the sewing machine by hand, leaving the motor untouched and the machine able to function as a sewing machine when needed.

    0
    valerioparis
    valerioparis

    Reply 1 year ago

    The main problem, as I see it, is that you have to control the motion of the needle in coordination with the movement of the fabric. If you take a look at jameskolme's project that gave the author of this instructable post he has used a chain and is moving the needle using the external rotor (inkstitch.org). This might be the less intrusive way you would prefer to do it.

    0
    tallbob
    tallbob

    Reply 1 year ago

    When I look at the g-code that was presented there, it appears that they are indexing to an x/y location, then moving the needle through a single stitch, moving to a new x/y location, moving the needle, etc. It doesn't appear that the z (needle) ever moves at the same time as x/y - that's what gave me the idea that you could rework this where the table makes one x/y move, then the user manually moves the needle through a stitch, then the table moves again. The only real trick it would seem to me would be working the g-code to pause between x/y movements. M71 should do the job, I think.... would need a piece of code written to insert those pause commands, but that's child's play for programming...

    Maybe I'm off, but that's what I was thinking...

    0
    HorneczkiGabor
    HorneczkiGabor

    Reply 1 year ago

    You are right, the z and the x/y movements are not in the same time. This makes the whole process slower. The xy table is quite quick, but the sewing machine speed up/down acceleration takes a long time.
    The next step in my mind is to put back the original motor and foot controller, and trigger the xy movement by a specific position of the needle. (When it has just lifted out from fabric). For this solution I will need to modify the G code too by replace the Z lines to a line which waits for a trigger signal ie an M0, and the trigger will be connected to resume button. I'll check the M71 function too

    0
    dennis.jewitt
    dennis.jewitt

    1 year ago

    Congratulations. Thats a really impressive achievement

    0
    handy.andy.buckley
    handy.andy.buckley

    1 year ago

    Whilst its slow, when you compare this machine to the £900 Brother Innov-Is F440E this is a great project considering you could probably pick up a second-hand or even broken machine (as you remove the original motor) for next to nothing.

    0
    valerioparis
    valerioparis

    1 year ago

    Nice work! Loved your project!

    0
    andzer9
    andzer9

    1 year ago on Step 5

    Great idea, thanks for shearing!

    0
    bnaivar
    bnaivar

    1 year ago

    My wife has a commercial embroidery machine with a bad controller. Everything else works. Do you think your controller could replace the bad one?