Showing posts with label motors. Show all posts
Showing posts with label motors. Show all posts

Saturday, 4 March 2023

Modernising the electronics of a vintage Singer 99k sewing machine

As I mentioned in my previous post when I was restoring the sewing machine, the electronics were in a pretty bad state.


I believe the pedal was meant to allow for variable speed input, but in reality it acted just like a simple on/off switch, and pressing the pedal down the whole way tripped the circuit breaker.

Inside the motor housing once
the rotor had been removed.

Initially I tried just repairing what was there, replacing brushes in the motor, cleaning it all up – which seemed to provide some temporary improvement but it soon deteriorated again.

 

 

 

 

 

 

So I decided to just try and replace all of the electronics with modern equipment, but retained the original casings to try and maintain the rustic aesthetic. I figured with modern advances in electronics it is quite likely that a lower power, modern motor would be able to provide comparable performance to the old one (the analogy that springs to mind is the state of modern cordless power tools versus old mains powered ones).

It is clear that the original motor does not have any kind of gearing to boost power – the circuit seemed to be about as basic and simple as it gets.

As I was researching the old motors I did see some mention about potential asbestos hazards – this is near the bushings of the motor – it is intended to support the bushing and act like a self-centering bearing. As I am entirely replacing the motor I had no need for it. With appropriate protective equipment in place I was able to remove it and dispose of it appropriately.

There was also mention about the being asbestos washers in the foot pedal, however my one does not appear to have these – but nonetheless I will not be using this pedal anyway.

One side the case of the me to opened up I was able to pull out the coil windings and rotor, leaving an empty shell. I removed the original connectors.

 

The screwdriver
To replace the motor I am going to use a cheap cordless screwdriver. Being cordless it should be adaptable to run on a lower power, but given the task that it is designed for, it should still be able to provide enough torque to run the machine due to it’s gearing set up.

In these cordless screwdrivers all the electronics tends to be in the handle, so it is easy to separate out the motor and gearing system from the rest of the device.


With that done I needed to trim off some of the casing to get it to a suitable size to fit in the sewing machine motor case. 

The screwdriver in it's mount

The only modification I needed to make to the sewing machines motor case was to drill out the opening slightly as the shaft of the screwdriver was a little bit wider, however this is not actually visible from the exterior.


To mount the screwdriver, I 3D printed a mount (Github/Thingiverse).

It's simply a friction-fit wedge that goes around the screwdriver body and into the sewing machines original metal case. 

The diameter of the shaft of the motor is the same as the original motors pulley, but worth bearing in mind that the new motor is slower. I had the idea to increase the diameter of the shaft, in order to change the gearing between the motor and the sewing machine and get a bit of a speed increase. It should also increase the grip on the pulley as there will be a larger surface area of the belt in contact with the shaft.

 

 

To do this I created this (Github/Thingiverse). It fits within a small section of aluminium tube (to prevent wear on the plastic), and over the shaft of the screwdriver. It's locked in place with an allen key (cut flush) that fits as if it were a screwdriver bit and locks into this plastic widget. Finally I locked it all together with some adhesive and wrapped a bit of grip-tape around the aluminium. 


Driving and control
To drive a motor I am using a BTS7960 motor driver, controlled by an Arduino (for now, for the purposes of prototyping).


Simply this will be an analog input, which the arduino will translate into pulse width modulation (PWM) and send to the motor driver. This is possibly overkill, but the priority at the moment is too get the machine working – optimization & improvements can come later.

For now, I have a simple potentiometer to set the PWM, and the pedal is actually just a switch cable tied to the legs of the sewing machine. I am hoping to be able to get a treadle foot pedal like those that would have traditionally been part of the table legs that I’m using, and use that – if I’m ever able to find one.


Pulley Belt
The belt connecting the motor to the machine was worn through and hanging on by a thread, so it needed replacing.

There seems to be a lot of various DIY how-to ways suggested to create pulley belts to size, so I started working through those. The results were:

  • Pulley belt from an old printer cut to size and stitched together using fishing wire - failed - snapped.
  • As above, but joined with glue and stitched - snapped.
  • Electrical wire (speaker cable) threaded together, and heat-shrunk to provide a rubberised grip. This seemed promising - it didn't snap at least, but the heat shrink, although intended to provide grip, seemed to have the opposite effect.

After all that, as a temporary measure, I joined 3 nylon cable ties together, just so I could move on to the rest of the project. And as the saying goes "There's nothing more permanent than a temporary fix", it's still going strong.

 

Light
The motor housing also contained a small lamp fitting. This was previously a mains powered, incandescent, bayonet fitting bulb. However I rewired and replaced this with a 12v LED bulb – much in the same way the I did with the Sunset Sarsaparilla lamp project.
 


 

Power
Power was provided by an old desktop computer power supply. This provides 12v lines for driving the motor and the light, and 5v for the logic. Again, this is another quick prototyping move, and will eventually be replaced by something nicer.

Finally all that was left was to oil the machine as indicated in the original manual, and give it a try.

 

 

Saturday, 3 August 2019

Powerful car jack linear actuator

Creating a powerful linear actuator by attaching a car jack to a motor is nothing new, but a lot of the demonstrations that I've seen neglect the fact that the point where the motor needs to mount to the jack (at the end of the threaded rod), will have movement both vertically and horizontally towards/from the middle of the jack. This makes it difficult to mount the motor in a fixed position.


So while this isn't a project in itself - it's a small part of a bigger project I'm currently working on, I thought I'd share my solution to this problem in case it is of use other others attempting something similar.


I found the best method is to focus on mounting the motor in relation to the threaded rod, rather than the jack, or the other frame/other parts of the project, as this is the only bit where the position remains relative.

The frame supporting the motor in line with the jack
(Jack body not illustrated)
This frame (yellow) goes around the middle of the jack, and hooks at the end over the threaded rod (green).

At the other end, the motor (red) is attached to the rod in order to turn it and mounted securely to the frame, allowing it to move with the rise and fall of the jack.


The downside to this mechanism is that the torque of the motor will cause the whole frame to rotate. This can be overcome by building the frame as close to the jack body as possible, to minimise the amount of rotation.


In addition, springs are mounted from the underside of the elevated surface to the frame, to add additional support and reduce vibration.

Electronically, the motor is driven by a H-bridge controller. Reed switches are mounted to the base - one on the base itself, another positioned in an elevated position to line up with the frame at it's highest point. Corresponding magnets are mounted on the frame, which line up with the reed switches to create a high level limit and low limit.

Control is currently provided by an Arduino with a single button input - each button press will either raise or lower the platform.

Code is below:

#define R_EN 13
#define L_EN 12
#define R_PWM 11
#define L_PWM 10

#define MAIN_SWITCH 4
#define LIMIT_LOW 7
#define LIMIT_HIGH 8


void setup() {
  pinMode(R_EN, OUTPUT);
  pinMode(L_EN, OUTPUT);
  digitalWrite(R_EN, HIGH);
  digitalWrite(L_EN, HIGH);

  pinMode(MAIN_SWITCH, INPUT);
  pinMode(LIMIT_LOW, INPUT);
  pinMode(LIMIT_HIGH, INPUT);


}

void loop() {
  if (digitalRead(MAIN_SWITCH)==HIGH) {
    runProcess();
    
  } 

}
void runProcess() {
  if (digitalRead(LIMIT_LOW) == HIGH) {
    while (digitalRead(LIMIT_HIGH) != HIGH) {
      lift();
    }
    freeze();
    return;
  }
  if (digitalRead(LIMIT_HIGH) == HIGH) {
    while (digitalRead(LIMIT_LOW) != HIGH) {
      lower();
    }
    freeze();
    return;
  }
}
void freeze() {
  analogWrite(L_PWM,0);
  analogWrite(R_PWM,0);
}
void lower() {
  if (digitalRead(LIMIT_LOW) == HIGH) {
    freeze();
  } else {
    analogWrite(R_PWM,0);
    analogWrite(L_PWM,255);
  }
}
void lift() {
  if (digitalRead(LIMIT_HIGH) == HIGH) {
    freeze();
  } else {
    analogWrite(L_PWM,0);
    analogWrite(R_PWM,255);
  }
}


Demo Video