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:
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.
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:
- A pneumatic foot pedal (some old-but-not-quite-vintage Singer's — and other makers as well — used pneumatic foot pedals to control speed and so these pedals can be found cheaply on eBay and other places) plugged into a MPS20N0040D pressure sensor. (Useful info on this sensor: https://makersportal.com/blog/2020/6/4/mps20n0040d-pressure-sensor-calibration-with-arduino )
- This frequency-to-voltage converter to convert a PWM output from the Arduino to a DC voltage that can tell the DC PWM power supply how fast to run.
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:
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:
- After some experimentation, I decided I wanted to create 4 "bands" for the foot pedal's input:
- A "dead zone" that would encompass the small range of pressure readings that represent no foot pedal pressure (this has to be a range rather than a single value, I think, because of the pressure sensor's noise and variations in atmospheric pressure, etc.)
- A super-low speed zone
- A low speed zone
- A proportional zone, where increasing pedal pressure results in increasing speed controller output
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. :)
And here's a video clip of the machine operating in all 3 speed bands:
More posts:
- Next: Rock, Missoula, MT
- Previous: I had it all