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.
Attachments
lightgate cutter.stl
lightgate holder.stl
LM8UU A.stl
LM8UU B.stl
Motor stand.stl
Connect box base.stl
Connect box cover.stl
belt tensioner.stl
TimingBeltFixLowMod.stl
8 axis B.stl
8 axis A.stl
Schematic_Embroidery- XY endstop_2020-10-17_13-49-28.pdf
Keret BB 120x120.stl
Keret BJ 120x120.stl
Keret FB 120x120.stl
Keret FJ 120x120.stl
Keret AB 120x120.stl
Keret AJ 120x120.stl
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.

Grand Prize in the
Modify It Speed Challenge
37 Comments
Question 11 days ago
io possible to use a nema 17 ? and still need to use the dm556 driver ? is possible to have instruction on how to connect the elecronical part there are no in te instructions, no the schematic but i need to see where i need to conect have some photo, can we contact on telegram or mail where you whant so we can chat privately ? i love your work
Answer 10 days ago
For table movement the nema17 steppers are adequate.
For the sewing mechanism it is also possible to use nema17 only, but the machine will be much slower, because a weak stepper can't make enough torque for acceleration by every stitch.
You can find the basics of stepper driver ie here.
The basics of grbl on arduino are in this link.
Reply 20 hours ago
but i need to use the step driver a4988 or another? and the code is the same ? the speed is mutch slower so the code will be the same or need to change ?
Question 14 days ago
Hello, i am tryng to make one of these machine but i can' t find a nema 23 4a is possible to use other step motors for the sewing machine if possible cheaper motors because i see the price is so hight but they are out of stock in italy
Reply 14 days ago
Hello, you can use any kind of stepper motor, which is strong enough to accelerate the mechanism properly. Try to order one from Amazon or Aliexpress.
2 months ago
I noticed that the g-code from ink stitch drives the Z axis forward and back to the orginal postion. How do you set it to go in the one direction only?
Reply 2 months ago
The direction Z is simply not handled. When I set to the start point I zero the Z axis too.
5 months ago on Introduction
Hi
What about the thread break sensor ?
If thread break middle the pattern
Or any electricity problem the machine will Stop suddenly than we start the machine
Program or design will run from starting?
Please clear it
Thanks overall good project
Reply 5 months ago
Yes, it is a hobby project. There is no thread break sensor. For the upper thread it would be no problem, but there is no room for the lower thread in the machine.
In case of a sudden break we can delete the ready part of the job and send it out again.
9 months ago
hello, i m working on the same project and i m facing some problems in my arduino s code ,this project is for my graduation which it s soon if u can help me by sending me the program please !
Reply 9 months ago
Hello! The arduino code is here:
https://github.com/gnea/grbl/releases
I made no changes on that, except configuration.
Reply 8 months ago
thank you for your return, i appreciate it,but i got another problem of z axis ,i m using the nema23,when i send the g code the table moves but there is no stable direction for the stepper motor of needle,it just turns left and right without making any full revolution,despite i made my settings on the grbl panel and my motor made his full rotation during the test ,can you give me any advice how can i solve this problem please ?!
1 year ago
how to make a platform?
2 years 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.
2 years ago
This is truly awesome, and I'm inspired. Thank you for sharing!
2 years ago
Nice work .... Best wishes...
2 years ago
Nice one . Looking forward for a faster version
2 years 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.
Reply 2 years 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.
Reply 2 years 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.