Embroiderino towards open source embroidery
Published: 2018-11-28 16:34:08

Sewing machine tuning

Proper hook timing and spacing are the keys for missed stitches or frequent thread break problems. All the advice are related to oscillating hook since it is most widely used and because I have experience with this kind, but principles for both stay the same. If the timing is delayed too much tip can simply miss the thread loop or cut it out like a razor, otherwise if it is too early probably it catches the thread correctly but releases it to late what causes the thread to broke or stay on hook while pulling starts. Hook tip needs to be sharp, all the surfaces smooth and polished without any sharp edges or burrs. Any imperfections can be aligned with some fine sandpaper and felt polishing pad and polishing paste. Generally distance from the bottom of needle eye and hook tip, when it starts to touch a needle, is a measuring point and it ranges between 1.5 - 2 mm. Well, to confuse things and to get this measurement to work needle height on its mechanism must be correct as well, commonly it is adjustable by loosing some other screw under the crankshaft. Needle tip at its lowest position should be very close to bobbin drum casing, but should not touch it (or get into special hole in it).
Hook tip must be at proper spacing from the back of the needle, about 1 mm, this distance is adjustable in many different manners on different machines. Furthermore there is other thing to mention - hook backlash, it is a distance from a hook solid to a bended piece of metal which propellers hook oscillations. This gap is about 2-3.5 mm, and only way to adjust that is by bending the metal piece component - don't confuse it with thin flat spring!. When everything is properly, thread practically jumps out for itself from the stitch plate on test turn.

Thread tensioner is a simple thing - usually two plates with thread in between, all pressed together by spring with tension adjustable by some screw. Tension values used for embroidery are the lowest ones (at most 1/10 of the whole tensioner scale) and should be uniform for all the work time. Most sewing machines loose the tensioner on foot being raised, start searching here for blockage problems.

Use correct stitch plate - some machines have zig-zag option plates, avoid them and use single hole plate for straight stitch.

It might seem obvious but it happened to me so remember about this little detail: tighten the needle holding screw with screwdriver, you don't want the needle to stay free in the middle of the work.

Use correct threads, depending of the pattern design. Any threads should work but if the embroidery is dense and you are trying to use thick ones then problems will come out quickly. Stabilizers are the option but are almost necessary for stretchy fabrics, faster speeds and for higher quality finishing.

  • 1
  • 2
Comments (45)
Eggert 2018-12-04 09:59:28
Hi, very nice build. I also plan to build an embroidery machine and found your page via the inkstitch discussion... Can you tell how much power the motor and rpm should have? My machine has none, and I want to start with a meaningful one...
markol 2018-12-14 22:19:57
@Eggert Just simple engineering calculations: assume machine and motor has a 1:5 transmission ratio, for 800 SPM you need 4000 RPM on motor. For brush motors its power and load are the speed limits (theoretically), typical domestic sewing machines motors are rated to 50-100 Watts. If you don't have any and don't want to play with high dangerous voltage find something under 50V and swap driver mosfet to different one capable to handle more amps.
Aatif 2019-04-15 08:43:18
Hi Markol. This is a nice project. Can you please provide the BOM for the same.
ariel 2019-09-29 23:11:52
Hello, if it is not annoyance I would like to ask you about the connection and calibration of the sensors and their connection to an arduino board one, because I cannot understand it, I am from Argentina, thank you
jagadeesh 2019-10-03 02:28:24
my name jagadeesh your project is very good i need circuit diagram pls help me
markol 2019-10-10 09:12:19
@jagadeesh All the circuit diagrams are present in repository along with PCBs, BOM and custom mainboard, you need KiCAD and gEDA (both free) packages to browse it. I'm considering small update to use stock components (like GRBLshield or CNCshield) to make things easier for non-professionals and fit it all into one circuit diagram sheet. @ariel As written use INT0, INT1 and any of the digital pins. From your question I'm assuming that you are missing some background, search for "arduino optical sensors encoders connection" and "74hc14n encoder" to get the basic understanding of how those things work. For now don't worry about calibration, get the basic setup working and hopefully you will find for your self what is going on. Enjoy learning and good luck with making DIY embroidery everyone.
ariel 2019-10-11 20:36:34
Thanks, for the answer, I will learn what you told me, what I can't see is how the address is read, on the sensor connecting to any digital pin, I can't understand it in the microcontroller code, I'm sure I need to learn a lot more, but it is a doubt that I do not see it interact in the code, thanks. (excuse the way I write, use a translator, my English is bad)
Felix 2019-10-15 23:03:42
Hi! What a great job! I am going to go for this project using an old Sigma machine. At the beginning and seeing how Inkscape gives the gcode, I thought on a stepper motor for the stitches and regular grbl firmware. Later I have realised in this way I can easily use the machine regular without big changes. Actually has a foot controlled electric motor, which seems easy to control by the Arduino. So, the questions are: do you have to do any post-processing to the Inkstitch gcode? This includes one G0 lounge and after a Z movs. May a regular gcode sender be used? Thanks!
markol 2019-10-16 20:53:16
@Felix You do not need a Gcode - instructions are much machine specific. I do prefer usage of CSV from embroidermodder 2 - it can load many existing commercial formats. Gcode and CSV compatibility seems to be broken in newer Inkstitch versions. Launch an app and see how it goes. Custom codes is a new feature, firmware changes are needed. @ariel To understand a pin mapping check out an atmega C programming with avr-libc.
ariel 2019-11-12 01:30:02
hello markol, I have a problem, when I move on an axis for example the x, when making 2 or 4 movement followed (RELATIVE MOV), the measurement moves more than 1mm for each movement, it is as if a motor then dinates its rotation, I put a lot of effort into the mechanics, straps ect many times, acceleration and vel varie and remains the same 15 days ago I can not see the error, if you can help me I would appreciate it.
ariel 2019-11-12 01:38:21
arduino mega + a4988 driver are calibrated (0.32volt) + ramp 1.4, the mema17 0.4 amper torque 1.8kg engines, everything is going on but it has the problem that it ments, The first movement does it well and with the exact measurement, the following ones go adding 1mm at a time the steps / mm are at 80000, 20 teeth pulley, gt2 belt and set to 16 microsteps, thanks
markol 2019-11-12 18:31:17
@ariel Have you tried to send an movement commands from python written client (GoTo mode)? Those errors are random or the same when repeating similar command sequence? Crank up the drivers current until they become hot, test and lower it if motor is still losing steps. Also test it with lower speeds, it is a F feedrate parameter. G90 - set to absolute positioning (default, after reset), G91 - set to relative positioning.
ariel 2019-11-12 19:42:43
G28 OK G91 OK G0 X10 Y0 F10000 OR G0 X?? Y0 F10000 OK G0 X10 Y0 F10000 OK G0 X10 Y0 F10000 OR G0 X?? Y0 F?? ERROR ADD +1MM IN X AND +1MM IN Y G0 X10 Y0 F10000 OR G0 X?? Y0 F?? ERROR ADD +1MM IN X AND +1MM IN Y G0 X10 Y0 F10000 OR G0 X?? Y0 F?? ERROR ADD +1MM IN X AND +1MM IN Y G0 X10 Y0 F10000 OR G0 X?? Y0 F?? ERROR ADD +1MM IN X AND +1MM IN Y ECT ?? = TRY WITH MANY DIFFERENT VALUES THE SAME HAPPENS WITH G0 X0 Y10 F10000 OR OTHER VALUE THANK YOU
markol 2019-11-15 16:47:25
Do check if updating Arduino IDE works for you like here: if not then please create an new issue.
Student 2019-11-23 16:34:54
Hi! @markol, I tried opening up the schematic for encoder and power but it states that several libraries were not found and requests a remapping of symbols. Could you please share either a picture of the schematic or check for missing library files? Thanks in advance.
markol 2019-11-23 20:33:11
Please make sure you have an extra symbols packages installed, custom symbols should be already provided as *.lib files, follow a KiCad documentation for more information. I added photos of the scheme.
Enthusiast 2019-11-24 22:20:45
Can you please upload a tutorial with stepper motor instead of servo AC motor. Also kindly upload a tutorial using GRBL.
Kristen 2020-01-30 21:05:51
Great work
Kristen 2020-01-30 21:08:32
Can you please guide regarding... I am using a brothers sewing machine which requires greater torque, to power which I will be using a 180W ac brush motor, please guide if power driver circuit will be able to power this motor. What current does the driver circuit provide? Thank you!
markol 2020-02-01 10:59:03
@Kristen Yeah it should work fine, with brush motors (not inductive AC) try it to find out. Current is limited by power transistor, IRF840 with bigger heatsink is able to handle ~7A, in my case it stays cold.
Kristen 2020-02-02 18:39:07
Thank you so much Markol. Can you also please tell how much is the current rating of your ac brush motor?
Michael 2020-02-25 15:41:14
Awesome work dude. So the circuit you are using for power driver, is it variable frequency drive or are you using a dc drive for controlling motor. Can't understand the circuit working. Would be great if you guide me. Thanks a tonne.
Hector 2020-04-11 05:19:13
Hello, I like your work and I want to ask you if you could add a function in the python app to advance the machine to the next color or jump or delay some stitches, would it be of great help, or can you tell me how to do it? Thank you i'm from Mexico
markol 2020-04-15 22:01:50
@Hector There is a g-code instruction for color change (listed in - machine is stopped and you are asked for thread change, the app has an option to skip those pauses. Color change should work fine when importing .csv, Inkstitch has changed a bit so I'm not sure how it looks now. For other changes you will have to edit stitches manually with mentioned tools.
Ademilson 2020-06-18 04:14:22
Please, where can I download this phyton app?
syauqi 2020-06-21 05:48:07
Great project! where i can download 3d parts?
Tom 2020-07-02 18:53:45
Hi, this is the best DIY embroidery machine solution I've ever seen! I have two problems: 1) I use Arduino MEGA with RAMPS 1.4. I don't know where to set the input pin numbers for the needle position and motor speed sensors in the program, and the output pin for the motor PWM. 2) Unable to start communication app. (I'm using WIN XP), the Python3 window will appear and disappear immediately. Is there any other option? For example, compiling for Python 2.x or EXE / 32? Please help. Thank you.
Albert 2020-10-23 19:19:17
Great job please like the sketch or hex for atmega328. Thank you.
Walid 2020-11-05 07:37:47
Hi brother its great project. Can we turn it standalone with LCd display and sd card
Walid 2020-11-05 07:37:58
Hi brother its great project. Can we turn it standalone with LCd display and sd card
dave 2020-11-21 22:31:40
I have a question i am setting up an arduino with grbl rev 3 board and i was wanting to use a switch as z position and have that drive xy motion. with a switch set in the front of the machine hit via the down swing of the armature and then at that point the x and y move then when the switch is released xy hold position and move again when z switch is pressed. I cannot seem to locate a setting or piece of code like that could someone assist please. thanks.
dentist 2021-01-05 06:36:02
Hello, firstly your project is awesome thanks for you share that with us. i just have a problem about your optotransistors circuit. Can you send me a video or what can i use different and more simple sensor ? Thanks for your effort.
Jaclerier 2021-02-27 10:44:34
How can i config triggered_movement?
jaclerier 2021-03-01 17:01:24
It was a start, but to use everyday is needed add some more functions like: button to go back the embroidery draw and one button to add color sequence, i like this app but for some reason the stitch run not one by one but at the same value of the buffer configured at the tab confi.h. ex if at buffer is configured at 8 every time that sensor is triged its run 8 times.
k2 2021-05-16 18:19:17
can it run wit android phone?
Yonder 2021-07-12 02:05:39
I saw at the beginning it said “up to 230V” is make for European outlets or is it okay to use in 120V outlets? Also what stepper motor controller did you use?
markol 2021-07-19 23:29:26
@Yonder It should be ok to use proposed setup with 120V, the driving transistor must handle expected peak current - it will increase as the voltage drops. Steppers were controlled by A4988 chip. Both things are already mentioned somewhere I think. For now I have no plans for a rewrite and port it for Android or add new features. I'm using it rarely now and it did the job.
Adn2690 2021-09-30 21:11:58
Please help I am using ramp 1.4 and have 2motors for y axis and one for x axis How can I run these 2 motors for y axis ? How can I configure pins ?or what should I do?
Canadian 2022-10-17 19:40:53
Can you please elaborate how the configurable digital input pin on the needle position sensor incorporates into TeaThimble firmware? Is it mapped within the Config.h?
bnaivar 2023-01-17 00:25:40
I have a commercial Embroidery Machine (Toyota 850) and the motherboard is bad. It will cost more than the machine is worth to replace the motherboard. Have you considered adapting your control system to an existing commercial embroidery machine?
Bahri 2023-01-19 07:34:11
very smart, good job
Jkl 2023-02-04 15:14:35
Hi! It appears I'm having the same problem as described above by @ariel, when repetitively sending a relative move command (either from the app or other host like pronterface), the movement differs from desired, not only being a diagonal path rather than pure x or y but deviating more with each command. It seems that one motor behaves correctly while the other receives too many steps. The difference is very obvious when requesting a small move like 1 or 0.1mm, the problematic motor is then moving way over that amount. There is a repetitive pattern in the amount of error in each command though, it increases to some amount then resets. Having verified my setup the issue seems to be code related- hint being that after changing kinematics in config file from corexy to cartesian (which is obviously not what the project uses), each motor moves the right amount. As if there was a problem when doing calculations for the corexy position. As you suggested checking what happens with the goto mode in the app- it seems to work ok, interestingly. I'm set up on atmega 328 arduino uno with cnc shield v3. Thanks in advance.
Lobo 2023-03-14 19:39:19
Alguien tiene la aplicacionen compilada para windows??
Lobo 2023-03-14 20:35:53
Does anyone have compiled application for Windows ??
modelvincent 2024-04-08 20:36:27
I've just finished my embroidery machine based on an old PFAFF 905 hobbymatic with help of your page. I'l using an arduino MEGA2560 with a RAMPS 1.4 board. I've made some modifications in the code to output the power PWM to PWM4 and ajusted all pins to correspond to the RAMPS. Instead of adapting a sensor directly on the needle, i'm using the main shaft and place the motor speed optical sensor and the position sensor directly inside the machine, with 3D printed part to make the syncrhonisation, it's working like a charm, and the transformation is totally invisible instead the DB9 connector that i'm using to out the signals. In that way I can still use the machine as a sewing machine just by disconnecting the power module and using the original foot pedal. Thank you very much for your explanations page, it was very helpfull !
Add a comment

For problems related questions please use issue tracker on git project repository (if any). Tags in comment will not work for now.