Showing posts with label stepper driver. Show all posts
Showing posts with label stepper driver. Show all posts

Monday, 2 January 2012

Stepper Driver v1.0

At the beginning of this post I would like to apologise for the time I have not spend doing my homework - on the blog. This post should appear earlier, so lets treat it as being written on the 18th of November, when the actual work has taken place.

The Release Candidate has been presented in the previous post. I have considered the release candidate to be the idea and basis on which the actual stepper driver should be created. The realisation has not been very difficult and time consuming. Please take a look at the pictures below showing the end effect. Lets start with he schema. The circuit has been shown in the third post of this blog. The board with all the wiring is presented below.

Image 1. The circuit on a PCB.
 Some details need to be presented here. First of all lets take a look at the transistors. These are the Q1 to Q6 and all represent the IRF540Z. All resistors are 1kOhm. The J1 represents the power input, so the current that will steer the stepper, the upper pin is the + (24V), lower is the - (0V). The J3 represent the screw terminal which steers the stepper directly, the pins are represented by the stepper inputs, lets match the letters beginning with the left side: UVW. The J2 are the inputs which manipulate the transistor gates. The J2 inputs steer the current from the J1. Lets name the pin headers of the J2 in the following order: {U-, V-, W-, W+, V+, U+} (from the left to the right). This naming tells us that the U+ pin steers the gate of the transistor Q4. The transistor will conduct the current from the + of the J1 to the U output of the screw terminal J3. This is only a half of the normal steering job. there has to be a second transistor which is switched on and will conduct the current to the - of the J1.

So having a circuit I have prepared the wiring for printing.

Image 2. The wiring.
Then I have printed it on a sheet of paper (not a normal one, I suggest a glossy paper, toner transfer paper or a photo paper, or simply try what You have beside the normal paper). Then cut it out and ironed to the clean PCB (see the presented links for more details, I will skip them as they are mentioned everywhere on the net).

Image 3. Printed schema, and the ironed PCB from which
the paper has been carefully removed.
Then I have etched it in Na2S2O8, although You can use the FeCl3 instead (or probably many more too). After that I have cleared the results with the C3H6O. Some while with the drill and the resulting PCB looks perfect.

Image 4. The final PCB.
I don't really know why, but I love to solder. This has been always a difficult task, with which I had many problems. But as I show on the last pictures the outcome looks fabulous.


What is the most important?... Yes, the driver works properly. I will use it the next time when I will present the proposed solution for the reduction of the input pins. Stay tuned.

Sunday, 13 November 2011

Prototype and perspectives

After a relatively long time without posts it is time to sum up my actual achievements.

Prototype:

I have created a prototype on a prototyping board.This did not end well, because of my rather old timed soldering equipment, and mainly because of my almost forgotten soldering skills. So although I have managed to create it, and run it a couple of times, it seemed, that there is a cold solder somewhere. So it has not been working as I have expected. After replacing the faulty transistor (my first real suspect, I thought it had burned with my crappy soldering) it went well this time.

Still it is nothing I could be proud of.

Nevertheless I planned to create a Release Candidate, so I bought some things on the net. Modeled the PCB at the beginning using fritzing but the results looked bad (because a lack of functionality that would rearrange my paths orthogonally), at the end using a brute force (Gimp). The results are actually something I can be proud of (Image 1).

Image 1. Stepper driver PCB.

More details concerning the RC version soon :). Actually the description is not needed to fully understand how to solder all elements. The only things I will mention here will be the inputs (lower right part of the board), the current/power (upper left), and the stepper connections (upper middle part).

Perspectives:

The PCB I have imagined will be a module which I want to connect to other modules. The reason for it is the number of inputs I am able to provide for the steering of the stepper. Arduino would most probably not be able to cope with 4 steppers, where each one has 6 inputs because my board does only have 14 of them. So I will try to minimize the driver inputs using the karnaugh method, I predict that out of 6 inputs it will reduce itself to only 4, and adding a counter to it will reduce itself to only 2 per stepper. So it seems to be a lot of fun and hard prototyping work.

Wish me luck.

Friday, 14 October 2011

Stepper motors 2

At the beginning of this post it would be necesary to mention the basics of MOSFET transistors. Although the WIKI site contains all important info, for some of the amatours (like me in some way) it is to much. I will try to provide the most important information about this transistor using one example.

The schema presented below (Image 1) shows a circuit with one IRF540Z transistor, two resistors and a red LED (btw, a very good site about LEDs).

Image 1. Circuit presenting the work of the MOSFET. Created with TinyCad.




Please note that in this image the model of the transistor IRF540Z differs from the one presented in the catalogue. This occured because TinyCad does not have all available transistors in its database. Still the circuit remains correct.

The inputs in this circuit show 5V and GND which is usual, but the PIN13 refers to the 13-th PIN on the arduino board. Then, loading the Simple Blink example You will blink with the LED. One could ask why to buy a transistor and make all this simply to blink, but there is a very good reason for it. The gate of this transistor can be turned OFF and ON by a Voltage VGS(th), and this is below 2V for OFF and above 4V for ON. But this is not the benefit here. The most valuable thing this transistor does is to allow a hudge current to flow through it. Using the gate You can manipulate with high voltage, allowing it to flow, or not. The max parameters of this transistor are shown in the mentioned catalogue, and these are in fact very good: VDSS = 100V and ID = 36A.

In this simple example we are working with a simple LED diode. But the previous article shows the main target, the KT42JM06 hybrid stepper.

So having worked with a transistor now, we can get to the motor driver.
I have slightly modified the schema placing some resistors and input pin numbers. The image 2 shows the almost final driver circuit.
Image 2. Proposed driver schema. Created with TinyCad.
 This seems to be a little more complicated than the original one, and the transistors again differ to the used IRF540Z, but still it is not a problem to understand the whole concept.

Combining it all together with a software (Fritzing is a very good one) and a virtual breadboard gives something like the image 3. Please note, that the Stepper Motor there has got one winding left, this has been made on purpose, because the KT42JM06 has 4 outputs, and one of them is a fake one. As You will soon see the one left is not needed to allow the motor to work.
Image 3. Circuit plan, created using Fritzing.
I have not mentioned it earlier, but my assumptions at the beginnig where strictly connected to the Exciting Sequence I have presented earlier (image 1). I thought the following:
  1. in every little step, one winding of the motor has to be isolated
  2. in every little step, one winding conducts the current in one direction, and the secont in a different one.
So considering these points our circuit has to do the following, (talking about the first step for the motor):
  1. the winding W should be isolated and we will achieve that when the transistors T1 and T2 will NOT conduct the current, so the state on PIN2 and PIN3 will both be LOW,
  2. the winding U should have the +, so we conduct the current through the T3 turning the T4 OFF, on the other hand the last winding V should have -, so we will conduct the current through it in a different direction: via T6, having turned the T5 OFF.

So having all this it is time to present the effects of the whole work.

Additional Note:

In this video I have used a 12V, 1.5A power suply, which was in fact not enough (though it still worked :)). You may encounter circuits in which the power consumption is higher, and the transistors operate with that high power all the time. So in order not to destroy them one has to provide a cooling system. Radiators are a good idea. To check if a transistor needs a radiator one has simply to calculate the power that will be lost on the transistor: P=R*I*I => 26.5*10^-3 * 1.5 * 1.5 = 0.059625W so this is a lot less than 1W. The transistor used here can survive working with about 1W of power loss without getting destroyed.

Sunday, 9 October 2011

Stepper motors 1

A motivation for this (not only) post was a homemade cnc drill, to which sadly I cannot find a link now. But googling for a while will show You how much of this is really out there. So I immediately wanted to build it for myself.

The first problems where the stepper motors. I read something about them and knew, that there are really 3 types of motors on the market: bipolars, unipolars and hybrids. After some days I have managed to buy some used steppers on our polish eBay (allegro). The type I bought was a KT42JM06-006. This according to the transcription of the code (this pdf, on page 29) was a 3 phase hybrid stepper motor with 0.6 degree per step, so a very precise one. On the yellow sticker there was some additional information like the voltage: DC24V, 1.5A/2 Phase.

So I had the motors, but what about the driver? I had no idea how to start with it. The dedicated drivers for this motor would cost a fortune, and I wanted to: a) create everything from 'scratch' b) spend a fortune on something else. That was a motivator to start reading the motors documentation. I found there the exciting sequence.
Image 1. The Windings and the Exciting sequence of the KT42JM06 motor.
OK, that will be a tricky one, because that is a hybrid, not a bipolar, nor a unipolar, so the usual drivers will not be good for it. After a while of thinking and researching the google I found 2 Ideas: 1 and 2, from which I have mended myself (inspired by the second Idea :)) a circuit which is presented in the Image 2.
Image 2. The proposed circuit. Created using TinyCad.
I am not very experienced in any type of transistors (mainly because it is not very necessary for a software developer in everyday work). So the facts stop here, but the dream carries on. I think there are tons of different transistors on the market, and few of them would be suitable for this task. My expectations considering the transistors in this circuit are as follows:
  • The gate of each transistor is controlled by a 0-5 voltage, which causes the transistor to conduct the current or turn itself off respectively.
  • The current conducted by the transistor will be enough to steer the stepper.
  • The transistors will not be destroyed during the work.
  • .... will they get hot? ...
 I have chosen the FET transistors, but as I said, I don't have much experience in such transistor containing circuits (I played a lot with the logical gates and so one, but not the transistors only). So when You have any suggestions to this stepper motor driver I am all ears.