Fitting the Singer Spartan with an upcycled treadmill motor

It works well!

Posted on:

Well, the desire for betterer got the best of me, and I replaced the Singer Spartan's 1:3 speed reducer with a treadmill motor and a custom speed control system. It was worth it.

The 1:3 speed reducer used a toothed belt which is nice from a torque transfer perspective because the toothed belt doesn't slip but at the higher end of its speed range it makes a noisy whine. For some time I'd been thinking about upcycling the motor from a treadmill because treadmills tend to use DC permanent magnet motors that have a lot of torque at low speeds.

Free treadmills grow on trees, in my experience. You just put an ad on Craiglist or Facebook Marketplace saying you'll haul away someone's unused treadmill and keep it out of a landfill and in a few weeks you'll probably have more of them than you can use. I snagged two by doing this. One was a huge Nordicsomething with a MASSIVELY heavy 2.5 horsepower motor, and one was a smaller off-brand treadmill with a claimed 2.5-horsepower motor that was a better fit for upgrading the Singer Spartan because the motor is smaller and lighter. Both treadmills also yielded a lot of square and round steel material to be used for TBD future welding projects.

I guess I've got some splainin' to do RE: the motor mounting:

1O4A4718.jpg

Singer Spartan with treadmill motor

When I got the acacia cutting board I used to make the base for the machine, I wasn't thinking about mounting this hoss of a motor; I was thinking in terms of the previous speed reduction system, which is smaller. As you can see, when the new motor is positioned in a way that lines it up with the machine's pulley, it hangs off the right side of the platform. I maaaaybe could have mounted the motor pointing the other way -- with the shaft pointing to the right from the operator's position and with the body of the motor positioned accordingly -- but that would have had the large motor blocking valuable work area, so I cut some 2x6 lumber and made an extension platform for the motor to sit on without blocking the work area. (Now I understand why most industrial sewing machines mount the motor underneath the table!)

Once I'd done that, I got the smallest pulley I could find that fit the motor shaft and screwed it on and adjusted my 5mm polyurethane belt to fit. When I got sufficient tension on the belt it levered the machine a bit out of its resting hole in the acacia base, so I countered that by screwing a fender washer down over a corner of the machine's baseplate.

Singer Spartan with treadmill motor

Simultaneously, I had been building the motor's speed control using an old Arduino Uno I had lying around.

The easiest way to create a speed control turned out to be:

I wired the above up and put it inside an old wooden cigar box I picked up at Goodwill, and powered it with a switching power supply I got also at Goodwill, and Claude and Gemini helped me vibecode up the Arduino code to convert foot pressure into PWM-modulated DC output to feed the motor:

Singer Spartan with treadmill motor

1O4A4717.jpg

Here's the code I ended up with: https://gist.github.com/philipmorg/93907949fc039166434b6abfe5be7b7e

A few notes on the design of the speed control algorithm:

What's somewhat unique, I think, is that the low and medium-low speed zones each map a range of pedal input to a fixed speed controller output. This is because I wanted the user experience to be: light pressure on pedal (which in reality is a range of light pressure readings) result in a fixed super-slow needle movement; medium-light pressure on pedal → a fixed medium-slow needle movement; and anything beyond that becomes proportional in relation to the pedal input.

I'm pretty happy with the results of all of this! The one shortcoming I've found thus far is in the super-slow speed band with several layers of thick fabric, the pulley belt can slip on the drive pulley end of things, despite being at a relatively high tension. I don't want to increase the tension more, so I'm looking into some sort of coating I could put in the groove of the drive and machine pulleys to increase friction. If you peek at the Arduino code linked above, you'll notice that I'm using only about 4% of the motor's total power range, so I've got plenty of power to spare in this system and could stand to lose a little bit of efficiency to whatever friction-increasing method I end up using. :)

1O4A4719.jpg

And here's a video clip of the machine operating in all 3 speed bands:


More posts: