Wednesday, 27 June 2012

Hacking my sewing machine

The Machine

This is my sewing machine.

It's quite a nice one, if a bit old (I have had it for 16+ years). The plastic is a bit worn, and of course, these days there are much better machines around -- but it still has some interesting features, e.g.adjustable foot pressure. It is called "electronic", and the claim is that it somehow has an electronic sensor that senses material thickness. It's certainly true that it can sew through very bulky fabrics with no problem.

My hand wheel needed replacing, the hand wheel on this photo is black because it was printed with a 3d printer (thanks Dave!) (I think it was Dave).

But I had never seen another one exactly like this around until I walked into the hackspace the other day, where someone has donated one of exactly the same model!

How does a sewing machine sew? If you are not familiar with sewing machines -- before I waste a lot of space here, there is an excellent Wikipedia article here.

This machine here works with an (I think) potentiometer inside the variable-speed foot controller: You leave it alone, and the machine stops; you press it, and the motor starts to run and the machine sews, the more you press it down, the faster.

Maximum speed on this one is about, oh, say, 300 stitches per minute or 5 Hertz, but it could also be twice that or half that. I had said "300 RPM of the motor", but Holger has pointed out that of course the drive belt introduces a translation between the motor and the rotary wheel, so the motor would be running faster, at maybe 2000-2500RPM (assuming the ratio is 1:7 or 1:8).

The machine sews forward by walking the fabric forward with the feed dogs against the presser foot. This one has two different modes for the feed dogs: in one, they just make longer or smaller steps, and the stitch length is adjustable from 0 to about 6 mm, or can even go backwards. This creates straight seams or, if the sideways position of the needle is varied, different patterns, like zig-zag and more.  In the other mode, the feed dogs always go 2 mm forward - 2 mm forward - 2 mm backwards (repeat). This creates elastic seams, good for elastic fabrics.

Andy invited me to open up the Hackspace machine to look what's inside... so here it is!

(Please excuse the lousy picture quality, this was taken with my age-old dumbphone).

A pulley and drive belt takes the rotation from the motor, and a system of shafts, gears with different translations, cams, and more pulleys moves the feed dog mechanism, the needle and thread take-up lever motions, and the stitch cams in unison. (The stitch patterns are of course done with cams. There is a better picture of those below).

The Problem


Why does the machine need a hand wheel at all?

As you press the foot controller, the machine starts sewing. As you release it, it stops. And the needle will stop in whatever position it just is.

And that is a problem. More often than not, the needle will be in a downward or half-way position somewhere, and the fabric can not be pulled out. So in most cases, what you want is for the needle to be in an "up" position when the machine stands still.

Also, that's the only position where the needle can be threaded, of course.

But sometimes, you particularly want to lock the fabric in place with the needle, e.g. to lift the presser foot and turn the fabric, to sew corners. I that case, the needle should stop on a "down" position.
Very good (and expensive) modern machines have such a function, where you can define what position the needle should be in when sewing has stopped.

So, I imagine a function like this: the current electricity supply needs to be altered. When the foot control is pressed, it should work like before and let the motor run faster or slower according to the amount of pressure on the foot control. But when the foot control is released, it should not immediately stop the motor, but turn it just ever so little further until the needle is either in the "up" or "down" position.

The interface for that could be two buttons, one for "up" and one for "down" -- possibly on the cable that leads into the machine, but most elegantly, of course, incorporated into the body of the machine.

But when I've got that, I have the feeling that I wouldn't want to stop there -- if I already could control the motor rotations independently of the foot control, then I might also want to do something like: "Sew exactly 3 stitches, then stop" (if sewn in place, this, e.g., would make a knot, so the thread can then be cut off neatly and the seam won't come apart again). Or, to sew a buttonhole: "sew exactly 20 stitches, then stop". (I haven't thought about the interface for that yet).

Here are two pictures of the rear end of the machine. The electric circuitry is just in a little black box at the bottom which I haven't opened yet. One cable goes to the light and just supplies electricity whenever the machine is switched on. The other cable goes to the motor, but here, the flow of electricity is obviously controlled by the foot control.

It could be a second issue to replace the light with an LED light, and then the machine wouldn't draw 25W any more when switched on, but maybe 2 or 5 or so only.

So what will I need?
  • Something to sense whether the needle is up or down.
  • Something to control the electricity supply accordingly.
  • Some kind of interface for that.
  • possibly, a LED light and socket of the right size, and possibly a transformer for it.
... and all of that has to be  in a size so it fits into the very narrow space inside the machine...
... and all of that has to be affixed somehow to existing parts of the machine.

And here I am inviting some brainstorming!

Andy has suggested installing a sensor with a light barrier at the top pf the needle shaft to sense whether it's up or down.

Here is a sequence of  pictures of the different phases the needle shaft goes through with the rotation of the motor.

The problem I see there is: This would need two light bariers, one at the very top of the highest point of the needle shaft, to only fire when the needle is really high up, and another just above the top of the needle shaft at its lowest point, to fire when the needle is really, really down.

Others have suggested a rotation sensor.
I figure one could be put in at the end of the bed shaft.

I can show you how to sew ballgowns and T-Shirts, but I haven't done much like this yet. I don't know where to get either a light-barrier sensor or a rotation-count sensor and how to get one that fits in that space... and how to attach it.

I have no idea what kind of control mechanism to put in! a chip? an Arduino?  And could that fit into the machine?
I know we have a drill press, a lathe, a laser cutter and a 3d mill in the hackspace, not to mention several 3d printers...

Any comments, suggestions and ideas are welcome.

Thank you for reading this far!


  1. While you could put the sensor on the end of the bed shaft, you could also put it in the middle somewhere.

    Put an opto-encoder on it (light sensor). I gave some spare opto sensors to the space, so I'm sure we can spare one. Just need an encoder wheel to put on the shaft. Might be able to print one! As this section is usually closed there is no problem with stray light causing the opto sensors problems.
    Use a hall effect (magnetic) sensor. This means you'll need to put a magnet on the shaft, which will mean the shaft may become magnetic, plus it will have a small weight on it (so if it rotates fast, it may wobble. You could make something that also contains counter-weight that won't trigger the hall effect sensor to balance things out.

  2. Hello Unknown,
    do you remember where in the 'space you put those opto-encoders that you donated?
    Just so we don't have to rummage through all the boxes...