Go Down

Topic: Automatic Stitch Regulator or Cruise controller (Read 5 times) previous topic - next topic


Hi to all great minds:)
I want to make a low-cost Stitch Regulator for a quilting machine for my Wife... I will place the quilting machine on X and Y carriages and this will move the whole quilting machine in X/Y direction.. The X and Y carriages will be controlled by stepper motor by the computer...

Now I have search on the internet and found many cruise controller for sewing machine..The purpose of those controllers is to give the equal length of stitch at differnt speeds of carriages... they are using encoders at X and Y carriages that sense the motion and send the movement into the cruise controller circuit that then send command to the sewing machine to regulate the stitch..These controllers are normally plugged into the sewing machine Padle controll port..

Can we do this with arduino... I only need arduino to take the signals from the encoders and regulate the stitches... I will not use arduino to control the X/Y carriage stepper motors..

You can see the professional cruise controller here

BUT I NEED SIMPLE LOW COST controller for this purpose..Is thier anybody who can help me in this...Just give me an idea so that i can start..

(I also have an idea to attach a DC motor to the wheel of sewing machine to get the control of stitch via arduino...)


Many of us can make a low-cost open source open hardware quilting machine controler an d hardware and can gift it to relatives and especially the womens...


The Arduino is perfectly capable of reading the encoders and computing the speed that the carriage is moving. From this, and the stitch length desired, you could compute how fast the needle needs to move up and down. From that, the motor RPM needed to move the needle at that speed can be computed.

The hard part, then, is driving the AC motor on the sewing machine at the correct speed.

A google search for AC Motor Speed Controller turns up a number of low cost options.

The encoders that the stitch regulator in your link uses are not cheap. They work pretty well, though.

My wife has a similar unit, and it works quite well. Keep us posted on how your project goes.


That's an interesting project. It sounds as though moving an entire quilting machine is going to be a big job! However, the position and speed feedback part (sensing the motion) should not be too tricky.

I don't know what those cruse controllers actually do to process the encoder signals into the sewing machine paddle port, but my guess would be that they read optical or Hall encoders and convert it into either PWM or an analogue voltage.

Optical encoders are the easiest way to get position and speed on a fixed device. Pretty much every inkjet printer will contain two optical encoder sensors - they look like black plastic blocks with a slot in them - one sensing rotary motion (of the paper roller), the other sensing linear motion (of the print head). The rotary one uses a clear plastic disc with fine lines printed around the edge - the linear one is a long transparent tape (although there are often so many lines that it just looks grey until you get very close!). The sensor picks up whether it's currently seeing a black or clear line, as it slides along the tape (or the disc slides through it). Once you've worked out which pin is power, which ground, and which signal, these are really simple to use with an Arduino. You can just wire the signal to a digital read pin and keep polling it, or use an interrupt. (Strictly speaking, this tells you only how far it has moved, not direction or absolute position, but it's pretty easy to work out). The great thing about printer parts is that it's really easy to get dead inkjets and rip these parts out of them. (On older ones you can also often bag a good motor driver chip or two - newer ones are much harder to scavenge useful ICs from)

Hall encoders pick up a moving magnet, and are often used to sense rotations (by turning a tiny magnet and detecting the resulting high/low transitions). They too can be wired into an Arduino digital read pin, but you have to be a bit careful about powering them right and using an appropriate resistor - it's not quite as "all done for you" as the printer encoders. On the other hand, they can be very small - a Blackberry trackball uses four of them in a tiny tiny space!

When it comes to outputs, PWM is easy from Arduino, while an analogue voltage will require some external hardware. Examining the original pedal controller will probably tell you which one you need.

Good luck!


Dec 10, 2009, 02:28 pm Last Edit: Dec 10, 2009, 02:47 pm by Khalid Reason: 1
Hi Pauland Raygun..Thanks for your effective insight on the stitch regulator thing... Its good to know the whole thing is possible with Arduino with little difficulty and motivation from you... NRaygun, Its not difficult for me to move the machine on the carriage...These type of machine are not that heavy..I have built my CNC machine and the Y-axis Gantry is 3 times heavier than that sewing machine, and the Y-axis Gantry is moved with 200 Oz-in Nema 23 Stepper Motor at 70 inch/minute (I have not used Arduino on my CNC).. However Arduino can do much more than that..
Now as i earlier said that my interest is only to get feedback from the carriage by the help of encoder and then make a SKETCH in the Arduino to control the DC Motor on the sewing machine..

For more insight you can see following of my thread at CNCzone

Now I can divide the Project in Following to be easily understand by all of You:)

1- I will make a X/Y carriage similar to the picture in following Link with MDF and cut by my home made CNC Machine (Drawings are in progress in CAD software)

2- In the picture you see the machine is carried by two carriages X/Y.


3- For creating the ART i can  use any  CAM software ( I have Vectric Vcarve Pro) to produce Gcode that will be run by Mach3 Machine controller software.  I will create the Gcode by using PROFILE CUT Option in the CAM software on any design vectors.

4- Currently i can send the Gcode to Mach3 and drive the machine but i am stuck into the stitch regulator thing... This is what i need to control with Arduino.
Some of my initial experimentation to get an idea for mounting the sewing machine on my Home made DIY and some of the results.. I have drawn PENTAGON.. but the stitches worse:(



5- What am I thinking is to put the rotary encoder on the carriage slides so that when the carriage moves the rotary encoder also rotate like a wheel... Now i will have two rotary encoder one on X-carriage and One on Y-carriage... What i understand so far about the above professional cruise controller is that it compares  the output of both encoders and generate the signal which ever is move fast....This higher encoder rotation will be the input to the Arduino...

6- Now I have two options:
  A) To use the same DC Motor on the sewing machine and PWM and convert the output to that DC Motor as a Voltage..as Raygun suggested... For me, i so far understand that the Machine Paddle control the Voltages given to the Machine Motor to move fast or slow... When you press the paddle harder the machine run fast and vice versa..

  B) I can install a seperate DC Motor to give the input of encoder and that DC motor rotate the machine wheel to regulate equal length stitch..

7-Now to experiment, we can see How many rotation of sewing machine Wheel require to One needle IN and Out (One stitch)..From their we can get the idea of How many rotation of encoder will be require to rotate the wheel to get the ONE stitch..This programming can be done in Arduino..

So now I will use the stepper motor to drive the machine with Mach3 and a stepper controller...On this motion of carriage i will give instruction to sewing machine wheel motor to regulate the stitch and for this i will use Arduino and Two Encoders..

You can see the diagram of a simple sewing machine
Sorry for my bad english... and Please tell me is it possible in arduino sketch????


What i understand so far about the above professional cruise controller is that it compares  the output of both encoders and generate the signal which ever is move fast

No. The two encoders measure the two short sides of a right triangle. The speed set by the stitch regulator is based on the length of the third side.

6- Now I have two options:
 A) To use the same DC Motor on the sewing machine

Are you sure that the sewing machine has a DC motor? Most sewing machines use AC motors.


Hmm.. I am first time studying about encoders... i never play with them before...it seems reasonable that the Diagonal is important in speed regulation...

Sorry for my ignorance about the motor...I will check it but You are right they are AC Motors...

My Question is that Can we measure the diagonal of the triangle as per encoder feedback and somehow use them to make a stitch regulator:)... Can we make a Sketch in Arduino??


The X encoder will give you the length of the 1st side of the triangle - call it dX.

The Y encoder will give you the length of the 2nd side of the triangle - call it dY.

The total distance traveled (the length of the diagonal) is:
Code: [Select]
sqrt(dX*dX + dY*dY);

Can we make a Sketch in Arduino??

Some of us can...


Dec 11, 2009, 05:54 am Last Edit: Dec 11, 2009, 06:04 am by Khalid Reason: 1
Okay.. One more thought, let we install the two knobes (potentiometer) on the X/Y carriages..As you all know the PWM stuff , you rotate a knobe and motor run in direction following the knob movement..

Now consider you scalled both knobes for X and Y carriages Length..For example The X knob if in the middle of small X-carriage will output the same value as if Y-knob is middle in the Y-carriage length..
We can add gears to take the knob one full rotation through out the length of carriages and scal them equally..

Now when knob moves they will give us some signals and we can then take the hyp. of triangle and then can manage to programm the arduino to control a mechanism that will press the speed control pad up or down.

Any thoughts??


Last night i studied some more and made a simple pseudocode...

Consider we have two potentiometer at both carriage X and Y.
consider both Pots divided into 0~5V ( corresponding PWM 0~255) we can map..

To get the value of Hyp. of triangle the pseudocode..

//Initialization of variables

Constant_RPM_Wheel= 5  //lets suppose this is initial rough value
//This value will later fine tuned, but for the time now consider the  //sewing machine Paddle is pressed at this when 'hyp=0' or there is //no movement in carriage.

/* When the Machine carriage will start movement (manual or Computer controlled) we will convert the Previous New_PWM values into Old_PWM values */

New_PWM_A= Some value we will get when Pot. change value
Old_PWM_A= previously stored New_PWM_value at A
New_PWM_B=Some value we will get when Pot. change value
Old_PWM_B= previously stored New_PWM_value at B

Now calculating the value of 'hyp' variable and put some DELAY
hyp= SQRT(Sqr(New_PWM_A-Old_PWM_A)+sqr(New_PWM_B-Old_PWM_B))

This hyp value will be scaled or Mapped
If this hyp!=0 then we can run another DC motor that will press the paddle foot with simple mechanism.


Just registered today and was interestered in your project. Are you still working on this ?
I know that Bernina uses a laser on their BSR regulator. That's why I am thinking about using a standard laser computer mouse to do the movement detection. The advantages would be that the movement can be detected directly on the fabric, close to the needle. One mouse would take care of both the X and Y axes. Also a mouse is cheap and more accurate than a standard potentiometer.
I am very interested in your progress.

Go Up