Log in

View Full Version : G4 steppers hot



rhfurniture
02-02-2007, 09:27 AM
I just got back to work from a short lunch, and found the stepper motors on my recent G4 conversion were pretty good and hot. I could touch them, but it got a bit uncomfortable after about 10 seconds - a bit like a too hot bath. With the old board, they barely got warm. They cooled down a bit once I got going again. Do I need to be alarmed?
Saves on heating bills I guess...
R.

richards
02-02-2007, 10:15 AM
Check the current limiting resistors on the G202 drivers. Stepper motors can run hot. (They're rated at 80-degrees C or 176-degree F.) The steppers should have gone into reduced current mode a few seconds after motion stopped.

This is copied from the G202 manual at www.geckdrive.com (http://www.geckdrive.com):

The G202 will accommodate motor winding currents from 1 to 7A and 0.3 to 2A. Use the following equation to calculate the value, (in kilo-ohms) of the current set resistor:
R (in kilo-ohms) = 47 * I / (7 – I) or for the low current range, R = 47 * I / (2 – I)


Here's a chart showing the correct resistor for various currents:

Amps

rhfurniture
02-02-2007, 10:43 AM
Mike, thank you for yor reply. I don't think we are quite hitting 80. I guess that when I have a quiet moment I could take my box down and see how shopbot have set it. ie low or high range (2 amps can use either), reducing mode or not - both are jumper options. Is there an advantage to low range?

R.

richards
02-02-2007, 10:56 AM
It took a minute to find the reference in the Gecko G202 manual that describes the low range. Here is the quote:

(2) REDUCED CURRENT RANGE: In addition to the normal current range (1A to 7A), the G202 can also operate over a reduced current range (0.3A to 2A). This range is used for motor phase currents of less than 1A. Auto current reduction is not available for this reduced current range.

Because there is NO auto current reduction in the low range, I wouldn't use the low range with a size 34 motor.

Brady Watson
02-02-2007, 05:07 PM
Mike,
The problem with using current reduction on a Gecko is that it kicks in too quick. It is NOT something that you want to have kick in while you are cutting a rectangle for instance. One axis is moving while the other is at rest...it could lose position depending on how much force is being exerted.

rh,
I wouldn't be too alarmed with the heat. My tool does the same thing when cutting heavy, fast or rastering over and over again for any appreciable length of time. I got zinged a few times on my forearm by the front X motor...lol!

-B

richards
02-02-2007, 06:47 PM
Houston, we have a problem!

Brady, are you saying that the G4 is setup to NOT use automatic current reduction? If so, would it not be better to have an off-line axis constantly toggle +1 step and then -1 step until all axes were idle than to turn off current reduction? That +/1 one step would dither an axis 0.00157 in each direction given that you're using an ungeared stepper motor with a 20-tooth pinion gear - which has a 1-inch pitch diameter. The formula is (1 X 3.14) / 2,000 - 0.00157. Of couse, a geared motor would move that distance divided by the gear ratio. So, a motor with a 3.6:1 gearbox would dither +/- 0.00157 / 3.6 or 0.00044 inches in each direction. In any case, the dither would not be seen in normal woodworking. Worse case, the sum of the dither on an ungeared motor would be less than the thickness of a piece of copy paper.

It seems to me that the CNC control should handle the problem and not the stepper driver, particularly when it was known, before development of the modified control board, that the G202 did NOT have a programmable current reduction delay. (In other posts that I've made relating to the 'chatter' problem with the Alpha, I speculated that it was the current reduction mode on the Oriental Motors Alpha Stepper Driver that contributed to the 'chatter' - particularly when it was discovered that the belt-driven gearbox that I added to my machine eliminated the 'chatter' when the net resolution increase was only 1.5:1, but when the holding torque - in current reduction mode as well as normal mode - was increased 1.5:1).

Adding an axis dithering component to the software would be trivial - and it would eliminate the dreaded 'pointed finger syndrome'. However, if the G202 does not use current reduction (and it if does use current reduction, but only enters current reduction mode when the machine is idle), heat sinks may have to be added to the G202 stepper drivers. (I don't have any idea whether Mariss's requirement for heat sinking is/was based on the assumption that the stepper driver would never enter current reduction mode or whether he based his design on the assumption that a typical stepper is normally run with a limited duty cycle where the stepper driver would spend the majority of its time in current reduction mode.)

Brady Watson
02-02-2007, 08:26 PM
Mike,
I didn't design the 4G...I'm in the same boat as you. I do know that the Geckos kick into current reduction mode (if jumper is set for it) rather quickly. So quickly in fact that it doesn't seem appropriate for a CNC tool. The Alphas, as far as I know, do not have this issue. (Take everything I am saying here with a grain of salt...I'm not a ShopBot engineer nor am I an expert on any of this stuff...then again, who is?) The Geckos from what I recall reduces the current to the 25% mark. This means your 305 Oz PRT motor is now a 76 Oz motor. Not quite enough cookies for CNC duty, even holding a single axis while another moves...The Alphas on the other hand, only reduce current to the 50% mark, which equates to about 280 Oz of holding torque on it's 560 Oz motors.

As far as heatsinks on the Geckos at 1.5-2A current, I believe Gecko said that they were not necessary. If they needed sinks, I'm sure SB would have put them on...they're pretty good about that stuff. Those that want to add sinks, just adhere some AL plate to the back of the Geckos with heat sink paste and a zip tie. There...yer sunk
I'm also pretty sure that current reduction is turned OFF (jumper) on the 4Gs to circumvent the '76 Oz' issue when it is enabled. Yep...the motors sometimes get a little toasty. I run on the ragged edge of 80v with my setup (with safety dump/back EMF electronics) and everything runs just fine. In fact, my 7.2:1 geared Alpha gets hotter than the 4G PRT motors do when worked hard. Neither setup has ever shut down because of heat.

With all this stuff, bear in mind that an Alpha driver is a superior beast to the Gecko in every way. It is made for CNC duty and was purpose built as such. Nothing against Gecko, believe me...I've got a dozen of them involved in various projects. They are a pretty good value for many projects.

-B

richards
02-02-2007, 09:33 PM
Brady,
I think that we totally agree that current reduction on an inactive axis can be a real problem if another axis is active.

After you posted, I scanned the Oriental Motor Alpha stepper driver documentation to learn more about their current reduction. All that I could find is that there is a switch to turn it on or off. I couldn't find a reference to the amount of current reduction, but 50% seems reasonable.

I also rechecked the Gecko data sheet and saw that Mariss specifies a heat sink if current is above 6-amps, which is well above the 2-amps that is advertised for the G4 upgrade.

But, let's get back to the amount of torque required on a CNC router. It must be somewhere between 300 and 600 oz*in, because, until the Alpha came along, that was what was produced with a non-geared PK296 motor and a non-geared PK299 motor. Given the fact that an Alpha motor gives about 600 oz*in of torque (and still retains about 300 oz*in in current reduction mode), it does the job - although I get much better cuts with a geared motor on my Alpha.

I'm beginning to believe that the geared PK296 motors with 3.6:1 or 7.2:1 gearboxes,and the 3.6 to 7.2 increase in torque are the key element when using the G202 drivers. In reduced current mode, a geared PK296 motor is still giving about 300 oz*in of torque. Even your 7.1:1 Alpha is really giving you somewhere around 1,800 oz*in of torque when in current reduction mode.

I'm really rambling, but I'm trying to come to a point.

Given the fact that we need X amount of torque and given the fact that we really get X/4 amount of torque when an axis goes inactive, shouldn't we find a way to keep that axis from going inactive? One way to do that is to do exactly what Shopbot is doing; which is to limit the size of motor to 2-amps and to turn off current limiting on the Gecko driver. Wouldn't a more elegant option be to find a way to defeat current reduction and still allow bigger and better motors to be used? That's why I suggested that a simple dithering routine be added to Shopbot's software. (Any first year computer science student could write a simple routine using AND/OR logic to signal an axis to go into dithering mode when another axis became active.) The net result would be that current reduction would only become a factor when all axes were idle - and in that state, current reduction would be an asset instead of a liability.

Stepper motors produce heat and a way to keep a stepper motor from frying was developed. That method is current reduction. As far as I know, all modern stepper drivers either have automatic current reduction or switch selectable current reduction. If a stepper motor is going to be used in a multi-axis machine, current reduction is going to be a factor unless you severely limit the type and size of motors that you allow to be used on your machine.

Not to change the subject, but there is an elegant way to cross current reduction off the problem chart and still have high torque at standstill. That solution is to NOT use stepper motors and to use servo motors instead. By design, a servo draws almost no current when idle, but if an outside force tries to move the servo off-axis, it immediately draws as much current as necessay to resist that movement. The beauty of DC servo motors is that if a controller can drive a Gecko G202 it can just as easily drive a Gecko G320 servo controller. If a $200 stepper motor is adequate to do the job, a $200 servo would also be adequate to do the job. The fly in the ointment with servos is that they require a gearbox to multiply their torque. (They have plenty of speed so that gear reduction would NOT reduce the speed of the CNC machine.)

Now to sum it up. It looks like we have a number of choices:

1). Limit the size of motors that we use to 2-amps or lower and use G202 with current reduction turned off.

2). Add software dithering to the operation of the controller so that motors up to 7-amps can be used and enable current reduction.

3). Scrap steppers and use servos instead.

It looks to me that if performance is required and if an Alpha is deemed to be too expensive, then a do-it-yourselfer would need to either twist someone's arm at Shopbot to add some dithering code or else dump the steppers and switch to servos.

Well, that's the end of my ramblings - mostly brought on by finding out that Shopbot has turned OFF current reduction on the G202s. As far as I know, no other CNC manufacturer of similar sized machines does that. That shocked me enough to enter my diatribe mode and vent.

Brady Watson
02-02-2007, 10:03 PM
"2). Add software dithering to the operation of the controller so that motors up to 7-amps can be used and enable current reduction."

At the moment I think that this is the path of least resistance and backward compatibility for older tools.

Now to add the proverbial fly to the ointment...The G203V drives have NO jumpers inside of them. I am not sure how they handle current reduction, but it does have some otherwise nice features...like being able to jack right into the Alpha board with no mods. So...the dithering routine might be a welcomed addition to the software in the future if the G202s go bye-bye.

I'm pretty impressed with how much collective knowledge & experience went into the 4G setup. There were things discovered (about the 212s for instance) that NO OTHER CNC company or person was able to nail down and resolve. I wonder how many people are running 212s with current reduction turned on, and pulling their hair out!

Yes...the problem with servos is the reduction. I've got a few servos here for experimentation that I want to try out. While I know I can do belt reduction, I'd like to try chain reduction. It's cheap...and with a spring loaded tensioner it should get the job done...although it may not be pretty, it should perform.

-B

rhfurniture
02-03-2007, 10:16 AM
To quote from the G202 manual:
SPECIFICATIONS:
Supply Voltage: 24 to 80 VDC
Phase Current: 1 to 7 Amps and 0.3 to 2 Amps (2 ranges)
Auto Current Reduction: 33% of set current, 1 second after last Step Pulse.

I have just bought a cooking thermometer! The stepper runs at 35 - 40 deg cent with continuous small/intermittent movement. I will post temp stood still for a few hours when that occurs (not today) - I would guess that will be 45 ish from experience.
I know this is well within the 80 deg limit. My only concern would be if this reduced long term life and reliability over having it always "cool" like it used to be.

R.

richards
02-03-2007, 12:42 PM
Ralph,
You've raised an interesting point. When I had a telephone conversation with Mariss about a year ago, I asked something about temperature. Although I don't remember his exact words, he responded by saying that the teflon coated conductors used by Oriental Motors were selected for a purpose and that that purpose was heat.

Personally, I like to keep electronics either cool or hot. I believe that it is the temperature change that causes problems. In chips, the very small diameter wires that connect the 'chip' to the chip leads, tends to break as temperature cycles from cold to hot to cold to hot, etc. It's kind of like bending a wire repeatedly. Eventually, the wire breaks. A stepper motor is built from much beefier materials, so, chances are that running a stepper motor at 25-degress C or 50-degrees C will not cause undue heat strain on the components.

Brady,
The G203 drive looks like a winner. Unfortunately, it uses common ground rather than common 5V, so it should mate up easily with the Alpha's controller board, but the G4 would probably have to be modified to invert the signals. (If I recall correctly, one of the reasons that the G212 was selected, with the multiplier set at 1:1, was to enable the use of the common ground switch setting to match the Alpha's controller board.) Personally, I prefer to use sinking circuits that use common 5V, since most TTL chips can sink 10X or 20X more current than they can source, but the G203 only requires 2.5ma current, so sourcing or sinking current is not a factor - except for the fact that the controller has to match the G203. The preliminary documentation on the Gecko site seems to be mostly a copy of the G20x documentation - and that preliminary documenation needs to be corrected. For instance, it clearly states that there are no jumpers on the driver, but it still lists resistor formulas to select either reduced current mode or non-reduced current mode. With no jumper, how would one select between the two modes? The documentation also says that current reduction is 50% after one second of inactivity, making it very similar to the Alpha stepper driver. The driver has been designed to have extremely low ripple, which would reduce excessive heating.

Now that the G203 is in full production and is being shipped (as of February 1, 2007), I'll have to order a few and try them out.

Last night, I studied the operating manual for the Oriental Motor's CSK stepper drivers. (I used the CSK for years in other process control applications. My application used the CSK268-AT kit which consisted of a PK268-02A motor and a CSD2120-T driver. All I had to supply was a 24VDC power supply and a pulse source.) Anyway, it was good to read that manual again, kind of like revisiting a favorite novel. The section on the function switch that controls Automatic Current Down says: "When switch is flipped to "ACD(ON)", the automatic current reduction (current down) at motor standstill function is set. Approximately 0.1 seconds after pulses cease, the motor output current is automatically lowered to suppress heat generation in the motor an driver."

"Generally, the switch should be in the ON position. If it is flipped to OFF, the automatic current reduction (current down) at motor standstill is canceled."

I remember playing with that switch when I first experimented with the PK268 motors, which are much smaller than the PK296 and PK299 motors used on the Shopbot. With the switch OFF, that little PK268 motor, running off a 24VDC power supply got really hot. In fact, experimentation showed that there was enough heat produced to fog the roll of photo paper inside a Kodak 5-S printer. (Photographic paper is very sensitive to Infa-red radiation - heat). The two PK268 motors in the Kodak 5-S were used to advance the paper through the machine. I was afraid that setting the CSK to reduced current mode would allow the paper to sag enough to cause out-of-focus prints, but the heat problem nulled out that option.

At any rate, one of life's greatest joys (at least for process control designers) is to find a way to use off-the-shelf components in a process control computer. Generally, that means that the finished product with be both much more reliable and much less expensive to build.

I compliment Shopbot on using Gecko drivers and Oriental Motor steppers - they're both top quality components. Now if Shopbot can enhance the use of the G20X driver and the PK29X stepper by using software to defeat the automatic current reduction while any axis is active, they will have something that no other CNC machine - in Shopbot's class - has, including machines using Mach software! It seems like it would be worthwhile to leap-frog the competition. (How's that for throwing out a challenge?)

Brady Watson
02-03-2007, 01:46 PM
Mike,
Good stuff...Geeks of the world UNITE! lol!


Yeah...the G212s...I got them because the multiplier board @ 1:1 would swap from source to sink, but only after a few of us found positional errors did we realize that the 212 was not suitable for a CNC tool. I'm guessing my G340 is the same way so I'll have to replace the board with an opto. This is a shame because it would have allowed me to play with different settings using one encoder...oh well. Rutex might be an alternative...

I'm very suprised that ALL of the drivers go into current reduction mode so quickly. This is a serious flaw in these devices as they relate to CNC. I sure wish that the drivers were able to be programmed/flashed with a specific time interval that would make it more useful for us CNC guys. If the delay was 30sec to 1 minute after the last step pulse, that would be resonable. It sure would be nice if the control software had that capability. I guess the other alternative would be to over-engineer the system with motors powerful enough to still hold strong when in reduction mode. Then again, even with my PRT standard, I never (at least don't think) that an axis let go and caused lost steps as a result. Not sure what the Allegros do for reduction.

-B

richards
02-03-2007, 02:39 PM
Brady,
This current reduction can be a can of worms. For instance, my Z-axis rarely moves. In fact, when I cut cabinet panels, most of the time I drop the Z-axis to -0.65 when the cutter is off the material, make all my cuts and then lift it to safe Z height just before returning the spindle to its rest position. Because no activity is going on with the Z-axis, it, in effect, is floating along at reduced torque instead of really holding its position. I could insert a 'dithering' type command into the file just for the Z-axis before and after each X or Y move, but I often make full length cuts, which take about 10 seconds - or 9 seconds more than the automatic current reduction takes to kick in.

Another thought would be to grab the step pulses directly from the controller card and process them through a little $2.00 8051 type microcontroller (MCU). The MCU could have a special interrupt routine that pulsed each inactive axis one step forward and one step backward every X time units (0.9 seconds, for instance - assuming that the reduced current mode kicked in after 1 second), but that means that I would have to buffer the actual step pulses coming from the controller card, just in case a real pulse was generated during the 'dithering' interrupt routine. That gets complicated in a hurry - particularly when ramping is involved.

It seems that there is never an easy way to do semi-complex things. Even something as simple as replacing the jumper for current reduction on the G202 with a transistor or logic gate so that the G202 could be put into non-current reduction mode when any axis were active, is made complex because the resistor values for the two modes is different. The formula for one mode is 47 * current / (7 - current) and the formula for the other mode is 47 * current / ( 2 - current). So, if I used a 1.99 amp motor, I would need to use 18-K resistors when current reduction was active and 1-Meg resistors when current reduction was inactive.

On the other hand, if 'dithering' were part of the normal SB3 software, and if the SB3 software had look-ahead (which I believe it has), 'dithering' steps could be inserted just as easily as 'normal' steps.

It seems that there are enough worms in that old can to last through a full day of fishing unless Ted and his crew add the 'dithering' software routine to the SB3 code.

bruce_clark
02-03-2007, 06:12 PM
...getting...sucked...in...must...resist...this... thread...

Ok, I can't hold back any more...

Mike, disable the current reduction is not a bad thing. Most stepper motor are designed to get hot (as said above). Current reduction is a relatively "modern" thing in stepper motor drivers (last 5-10 years). Originally, most drivers used power resistors to limit current. Talk about getting hot!!!

I agree with the hot/cold thing, but the REAL reason steppers are limited to 80C is because of the varnish that they use on the wires. Since the coils are contained in the housing (the rotor is just a big "toothed" magnet) you can easily put heatsinks on the motor to help with heat dissapation--a lot of older machines did exactly this (look at an old BOSS control Bridgeport sometime NEMA 42 motors in finned motor housing). Also, if you can find an old PacSci stepper catalog, they actually increased the current rating to 1.5 if the motor was properly heatsinked/cooled.

Ok, now just a quick note about the g203. From what I read (I don't have one) it does not technically reduce current at idle, instead it flow the back through the opposite winding. Think of it as water hose with water flowing in (current) and a on/off valve (sprayer) at the end. The more "open" the sprayer is, the most water (current) flows though the hose building up speed (heat). It we suddently close that sprayer, the water does not leave the hose, so no more heat is being added, but the hose is still full of water (current). I realize this is an over simplified example of the g203, but that is basically what it is doing, but not letting the current leave the windings. I see this as better than current reduction (and so does Mariss).

Oh Brady, those g212 are fine for CNC applications. To make them work with inverted signals, just get some hex inverters (7400 or 7404 I cannot remember right of the top of my head) and a simple perf board. Wire up the five volts, ground and the stepper/direction in from the 4G board and then out to the stepper drivers. Now, I don't have a 4G board, but it should be a pretty straight forward "hack". BTW, common ground use to be the standard (look at all the old CompuMotor stuff) way to wire things up.

Bruce

richards
02-03-2007, 07:30 PM
Bruce,
It's good to see you on the forum again.

Here's a link from www.geckodrive.com (http://www.geckodrive.com/photos/How_the_G203V_gets_the_most_from_your_motor.pdf) that has some interesting 'scope shots of the G203. Mariss has done an outstanding job in designing his latest stepper driver.

Private note. Everyone tune out except Bruce - I've just about converted my portion of the doors program to G-code. 95% of the code converted within 1/2-hour. Changing the rest should not be a problem - end of private note - everyone can tune back in.

You're right about the fact that current reduction is fairly recent. My first project with a stepper motor, back in the early 1980s used a Superior Motor's stepper with their least expensive driver board. It required me to add my own power supply and two 50-watt wire-wound resistors. I scrounged up the resistors, tried out the setup and decided that the resistors were too hot. So, I really scrounged around until I found two 100-watt resistors. For all practical purposes, they ran just as hot as the 50-watt resistors. But, I learned in a hurry what a 2nd degree burn feels like when I touched one of those resistors.

I have the same concern with running size 34 steppers at full standby current. Although they probably won't get hot enough to fry eggs, they will probably get hot enough to melt plastic. Can you imagine the mess that could cause? If most shops are like mine, (hopefully not), everything is coated with fine MDF dust. Then when I cut plastic, that lands on top of the MDF dust. If that combination of MDF dust and plastic chips melted to the motors, it wouldn't take long before someone could do a remake of "The Blob" in my shop. Between that and the fact that I would have to keep a 5-gallon pail of burn ointment close by to dip my fried fingers in every time I touched a motor, you can see that 'botting would not be the serene, peaceful pass-time that it is now.

As to the old source current/sink current argument, you're right when you said that early designs sourced current (common ground). That is the way that I learned electronics pre-1975. When I was finally introduced to the 7400 series of TTL chips by George Baulding, who is one of the finest people I've ever known (and who was also one of the finest electrical engineers to ever work for Keiser - in their military department), I quickly learned that the world had changed. I designed a simple circuit, breadboarded the circuit and then took it to George to examine when the design didn't work. He took one look at my schematics and then calmly said, "Mike, you're not thinking upside down. These chips are current driven, not voltage driven." That moment was an epiphany and the world of TTL logic circuits became absolutely clear. That's why, unless other factors intercede, I design my circuits to sink current rather than source it. (That and the fact that one TTL gate can drive ten or more other gates if it sinks current, but only one other gate if it sources current.)

Brady Watson
02-03-2007, 09:06 PM
Bruce wrote "Brady, those g212 are fine for CNC applications. To make them work with inverted signals, just get some hex inverters.."

That's precisely what we did with an Alpha main board and G212s converted to G202s by removing the multiplier board and replacing them with an opto. My '4G' is a hacked Alpha board, with a hex inverter wired in.

Bruce...glad to see you posting! Long time no hear. Hope life is treating you well.

-B

bruce_clark
02-04-2007, 12:35 AM
Mike,

Just my experience but most of the low current steppers usually stabilize around 140F. I realize that is still HOT and I understand your not wanting to a)melt anything b)burn yourself. Maybe some "motor guards" are in order.

BTW, I thought that you were using Alpha drivers, not Geckos. I guess I better use the 'forum search' feature...

Also, glad to the progress on the Doors program. I have a bunch of info to tell you about on the FreeDoors project, so look for a lengthy email soon!

Brady,

So why did you remove the multiplier board? I understand that the new controller is suppose to be a LOT faster than the old 8051, so the step multiplier is becoming a "non issue" but I thought it had other benefits like smoothing out a raggid pulse train. Anyways, I have some g212s and I have had excellent luck with them.

As posting, I still frequent a lot, just not post as much. Unfortunatley, I do spend too much time on Elisetalk and VWVortex. Other than that, life is good. Weather is not, but life is.

Bruce

richards
02-04-2007, 12:57 AM
I think the problem with the G212 stepper drivers was not the polarity of the signal. Just as Bruce has pointed out, changing the polarity of a signal is as easy as adding an inverting logic gate, such as the 74XX04, or, as Brady pointed out, moving a jumper on the G212. The problem, that Brady, Ted and Dirk discovered, is that the step multiplier board, which turns a G202 into a G212 and also allows the polarity of the signals to be changed from sink to source, somehow messes up the timing of the pulse train and causes substantial problems. The fix was to remove the step multiplier board on the G212 or to buy the G202 model, which doesn't have that multiplier board, and then to modify the Alpha controller so that it inverted the signals. At that point, everyone that wanted a great increase in speed and a great improvement in resolution could get it by buying the G4 from Shopbot or by buying the AGek from Dirk.

Now, as this thread has pointed out, a side effect of the G4 upgrade is that the stepper motor runs hotter (temperature) than a stock stepper. It has also been pointed out that the heat increase is directly the result of jumpering the G202 so that the reduced current option is NOT enabled and by using a current limiting resistor that is determined by the formula: 47 * current / (2 - current). Other than the increased heat of the stepper motor, the current limit of the drive, when used in that mode is two amps - which is not a factor if stock motors are used.

On the other hand, if someone who bought the G4 is upset with the increased heat he can simply change the jumper on the G202 to enable the reduced current in standby option and then use the formula: 47 * current / (7 - current) to determine the correct current limiting resistor.

Either way, the G4 will deliver much greater speed and much better resolution than the stock PR and PRT drivers.

Just for the record, anyone using any of the Gecko stepper drivers, except for the newest G203, can switch a jumper on the stepper driver to enable or to disable reduced current in standby. So, whether anyone wants that mode enabled or disabled, they can easily make that change whether they own the G4 or the AGek or any other controller using Gecko stepper drivers (except for controllers that use the G203 - which is not likely, since the G203 was just made available on February 1, 2007 and is not yet available in any production controller that I have read about).

(Sometimes when I get excited and stand on my soapbox, I fail to acknowledge the simple fact that just because a company has chosen to configure a piece of hardware in a certain way, that you, as the owner/operator of that hardware, can just as easily choose to configure that piece of hardware differently - if that difference configuration better meets your needs. Personally, if I owned the G4, I would ENABLE reduced current mode and use reduced current mode unless and until I had proven to myself that reduced current mode would not work. BUT that is my preference and that personal preference is NOT based on any tests on my part. And, for the record, I don't really believe that Ted or anyone else has to ask for my permission before they configure their equipment as they see fit. For those who may be new to this whole Gecko debate, it would probably also be pertinent to point out that the MAIN difference between the G4 or AGek and other controllers that also use Gecko drivers and Oriental Motor stepper motors is the instruction set that you and I, as operators choose to use to run the CNC. The G4 and the AGek use native Shopbot code. The other controllers use G-Code. Personally, I prefer Shopbot code. I know G-Code and I can write G-Code, but I use Shopbot code as the CNC language of choice.)

Brady Watson
02-04-2007, 02:57 AM
Bruce,
As Mike touched upon, the G212 has a design flaw in how it handles very small moves. It truncates moves and results in positional errors. This is not so much a matter of timing, it is the means by which the multiplier board drops small movements. This can really add up and become apparent quickly on 3D & V-carving files. Swapping out the multiplier board for an opto brings it back to G202 status & performance. Contrary to popular belief, the G201,202,210 & 212 Geckos were not engineered specifically for CNC. CNC is just a small percentage of Gecko's business.

-B

rhfurniture
02-04-2007, 07:30 AM
I am not so worried about the heat provided it is normal and well within limits. I guess the bearings of the motor will also be a limiting factor - grease and seals. I also read on the gecko site that well run steppers should run hot.
I would be interested in why the gecko heats up the stepper while the allegro doesn't. Is it an increase in pulse frequency due to 10 microstep over 4, or are the amperages different? I do like the solid lock on the gecko's, but had little or no problem with that using the allegro's.
I guess all this stuff is the sort of thing that Shopbot keeps in "company eyes only" files.

R.

richards
02-04-2007, 10:54 AM
Ralph,
I can't answer your question (Gecko vs Allegro), but, since the laws of physics aren't owned by either Gecko or Allegro, I'm guessing that either the Allegro is running at reduced current compared to the Gecko, is running at reduced voltage, or is in some other type of semi-shutdown when stopped.

The basis for most of the computations in electrical circuits is Ohm's law. Here's a good definition that I just Googled off the Internet using "define: ohm's law" as the search term.

The voltage across an element of a dc circuit is equal to the current in amperes through the element, multiplied by the resistance of the element in ohms. Expressed mathematically as E=IxR. The other two equations obtained by transposition are I=E/R and R=E/I.

Of course, once you know the current in amps, you will want to know the watts. I Googled "define: watts" to get this definition:

A watt is a measurement of total electrical power. Volts x amps = watts.

In a White Paper that was published by Mariss (and can be found in the Gecko group at Yahoo.com), he cautioned against using motors other than size 34 (which is the PK29x size that Shopbot supplies). I don't have the paper in front of me, but basically he stated that smaller motors could not dissipate the heat if they were run at full voltage and full amperage. The size 34 motor can dissipate the heat, due to its larger surface area. (On the other hand, the larger size 43 motors are too large for the G20x drivers to drive efficiently.)

Motors can get hot while moving, but it's been my experience that most of the heat is produced while stopped, which would rule out the micro-stepping factor. And,given the law concerning watts, a device generating 2 amps at 40 volts is going to produce 80 watts of heat. That will always happen. It happens in your toaster, and in your electric oven, in your light bulbs and in your stepper motors.

Brady Watson
02-04-2007, 12:15 PM
rh,
The reason they run hotter is A) They flow more current. The current set resistor is set to 2A. If you want to run a little cooler & lose some torque, replace terminals 7&8 with a resistor for 1.5A. B) They also are running more voltage than the Allegros, which in conjuntion with the increased current, it creates more heat.

Personally, I don't care about the heat. I have other machines that have run for very long periods of time that will burn your hand if you touch the stepper motors. Yes, heat is the enemy to all things electrical and mechanical...but, steppers are designed to run hot.

The PRT & Allegro drivers (which DO employ current reduction), ran exceptionally cool. In fact running the stock PRT I rarely felt the motors get hotter than external body temperature (93.5° by the way)...but if you go check out other equipment that uses steppers you will find that most of them run a lot warmer than the Allegro PRTs do.

-B

richards
02-04-2007, 02:50 PM
Brady,

I'd forgotten the particulars of the G212 problem, but your comment, "This is not so much a matter of timing, it is the means by which the multiplier board drops small movements" refreshed my memory.

Would you mind posting the basic test parameters that identified the problem.

Tomorrow, I will order a 500 line encoder, which gives 2,000 pulses per rotation to match the Gecko, from U.S. Digital to put on the back of one of my 'standard' steppers, PK296 with SG3.6 gearbox. I'll add a computer circuit to sense the step and direction pulses that are sent to the Gecko. I'll add a circuit to receive the encoder pulses. The difference in the count of the pulses sent to the Gecko and the movement detected by the encoder will be shown on a digital readout. In effect, it will show exactly how many missed steps are caused by the Gecko's multiplier board.

Instead of breaking into my Alpha and tying up the machine, I'll either use my test bench machine or one of the many Z-World rabbit controllers that I have. In any case, I'll verify that the current available to the Gecko is at least 15ma on the step and direction lines and that the pulse width is, at minimum, 5-micro seconds, and that the rise and fall times generated by the pulse generator exactly match the instructions in the Gecko manual.

After running the test repeatedly to verify consistency, I'll post the results on this forum, on the CNCZone forum, and on the Gecko forum, giving you and Ted full credit for discovering the problem with the multiplier board and then stating the test conditions and the results obtained. Personally, I think that it will be a great service to the CNC community and it should be 'feather in the cap' for Shopbot to be seen as the company that found a flaw in the G212 as well as the solution to that problem, i.e., turning the G212 into a G202.

What do you think?

Brady Watson
02-04-2007, 04:14 PM
As far as testing parameters go, run any 3D file or especially, V-carving file with very small moves (EG 20 steps in one dir, then 5 steps back, then 10 forward etc). This will show you at the end of the file positional loss as A) The tool will not come back to your original 0,0 AND B) the Z axis should start drifting up or down as well, not keeping it's original Zzero position.

As far as all of the other stuff goes, give Ted & ShopBot the credit. While a number of us worked on it, it was Ted that made the most progress and Ted (being an excellent researcher and scientist...PhD BTW) that analyzed and discovered the real cause of the problem. I helped assemble/engineer/hack the 1st Alpha boarded 4G prototype with Ted's help that eventually went on my PRT.

-B

bruce_clark
02-04-2007, 05:22 PM
Brady,

I poped the top of my controller box and it is g210s not g212. I guess it is older than I thought.

So it is a design flaw in the g901 multiplier board? Did you (or Ted) try setting the multiplier to 1 or is it the physical presence of the multiplier that causes the problems?

I guess I haven't been following the forum as much as I thought.

Bruce

Brady Watson
02-04-2007, 06:22 PM
Bruce,
The 210s AND 340s as well are susceptable to the positional loss (haven't verified this on the 340 yet)...but it's the 901 board that is the culprit. Yes, multiplier set to 1. If the board is plugged in...it's gonna show the symptoms. It would have been nice to know this before A) I shelled out the extra ducks for the 212s over the 202s AND B) I shelled out for 4 901s to convert the 202s to 212s...That's $312 wasted on hardware (just 901 boards) that I didn't have to spend had I known they were junk on a CNC. I bought the 202s 1st, and the thought of using the 901s to convert from source to sinking was appealing...meanwhile the only thing sinking was my bank statement...

-B

mariss
02-04-2007, 07:11 PM
-B,

Have you considered returning the G901s for either refund or credit because they are unsuitable for your application? We do that all the time with our products.

Mariss

mariss
02-04-2007, 08:07 PM
About the G901s:

The G901s synthesize 10, 5, 2 or 1 internal step pulses for every pulse sent to it. This is done using a phase-locked loop circuit.

This circuit is not psychic though; it cannot know when (or even if) the next pulse will be sent by you. So it uses a PID filter to estimate the correct next rate based on the past rate the pulses were sent at.

This works OK in CNC applications provided enough time (20 milli-seconds) is allowed to elapse before the next direction change and acceleration occurs.

Things fall apart if this time is not allowed. If the G901 hasn't finished putting out all pulses in the previous direction then what remains will be in the new (and wrong) direction. Go slow, no problem; go fast, problems start happening.

For the techical types: The G901 is a 2-quadrant PLL meaning the PID filter drives the VCO directly. The direction bit is applied afterwards; if the VCO isn't allowed enough time to reach 0-frequency before the direction changes, errors will occur. A steep decel/accel profile with accel in a different direction results in a non-zero VCO frequency after PID filtering in a 2-quadrant PLL.

The stop-gap cure is to change the PID coefficients for a faster response. This comes at the cost of motor smoothness because a faster PID response will result significant phase modulation of the resultant VCO pulses. The motor will vibrate at low speeds.

The more elegant solution is to have a 4-quadrant PLL. This decouples the PID filter "rounding" from the equation and the response then resembles a 4-quadrant servomotor drive. No position errors are possible.

The G901 is a simple circuit. We offer modified G901s to OEMs that can trade-in motor low-speed smoothness for high-speed error-free response. It is a trade-off.

All this is changing. The G203V is our first drive that depends on a programmable CPLD for all of its low-level logic. As a designer, I feel like I have died and gone to heaven. The luxury of having all this logic is hard to describe; it's like I have a hundred 7400-series ICs available instead of the 10 or so equvalent the G202 board can accomodate.

The G901 is up for re-design using a CPLD as well. This will allow for a 4-quadrant pulse multiplier which will eliminate the trade-off between motor smoothness and high-speed position accuracy. You will be able to have your cake and eat it too.

Sorry for the long post.

Mariss

mariss
02-04-2007, 09:04 PM
Step Motor Drive Notes.

1) Motor heating:

A hot step motor is a step motor earning its keep.

Step motors are not as efficient in converting electrical power into mechanical power as servomotors. A sevomotor will be +80% efficient while you are doing well to get 60% to 70% efficiency out of a step motor.

Driving a step motor harder makes it produce more power. More power means things move faster. More output power also means more motor heating because motor efficiency hasn't changed; For every 3 Watts of electrical input power, 2 get delivered to the load while 1 goes up as heat in the motor. Stands to reason.

Step motors are meant to run hot. Their case temperature is rated at 85C to 100C depending on motor manufacturer. That sets the limit to how hard the motor can be driven. A cold step motor is also a motor that is not delivering a lot of power.

2) Cause of motor heating:

Copper losses (current passing thru the winding resistance) is only part of the equation. On a 2A single stack NEMA-34 motor this amounts to only 8W to 10W. This is not a lot.

The other cause is iron losses (eddy current and hysterisis). This is a lot (and a majority) cause of motor heating at higher supply voltages. These losses go up as the square of the supply voltage while motor power goes up only proportionally with voltage. Losses (motor heat) outrace power output with increasing supply voltage. Think of it as nature's way of keeping you from getting 1,000 HP from your Shopbot motor while using a 100,000 VDC power supply.:-)

Step motors get hot when producing the power they were meant to deliver. Avoid touching them.

3) Microstepping:

It is a good thing at low speeds. It makes the motor turn as smoothly as a servomotor and it delivers additional and valuable postion accuracy and resolution.

At higher speeds (above 4-revs per second) it gives no further benefit and instead becomes a deficit. Full-step drives deliver the maximum possible power to a step motor at high speeds. It's an "area under the curve" thing.

What does the G202 do? It morphs from a microstep drive at 4 revs/sec into a full-step drive by 6 revs/sec is what. At 6 revs/sec the motor 'thinks' it's being driven by a full-step drive (it still takes 10 pulses from the controller for a full step though). The motor delivers all it has to give.

4) Midband resonance:

You have probably heard it. The motor makes a descending growling sound at 5 revs/sec and then stalls for no good reason at all. Takes 1 to 15 seconds from the onset of the sound to stall. That is midband resonance.

The G202 has a damping circuit that eliminates midband resonance before it can even happen. Unchecked, midband resonance puts a huge and deep notch in the motor's speed-torque curve. The G202 fills this "notch" in like it's even not there.

5) Protection:

Bad things sometimes happen to good people. Motor cables flex thru use and connections at connectors may break. The broken wire end can short a drive out if the worst happens.

The G202 is short-circuit protected. Unlike most other "short-circuit protected" drives, the G202 will survive a "short-while-operating". Most other "protected" drives will only survive a "short-while-powering-up". Big difference.

Mariss

Brady Watson
02-04-2007, 09:27 PM
Mariss,
Thanks for chiming in & adding to the value of this thread.

As for the 901s etc, I had not thought of requesting a refund. Glad to hear that you stand behind your products, above & beyond the normal call.

Thanks!
-Brady

bruce_clark
02-04-2007, 11:26 PM
Mariss,

Good to hear from you. Your post are always informative and educational.

What is the input step speed (steps per second) that you start experiencing problems with the g901 boards?

What do think there will be an g901 update that uses the 4-quadrant PLL? Will this be "pin compatible" with the current g901s?

Thanks,

Bruce

mariss
02-05-2007, 12:00 AM
Brady,

I really seriously sweat if someone is not happy with what we churn out. I really mean it we want to have happy customers. The G901 is a commodty; return them and there is an immediate buyer to snap them up. You will be credited.

Mariss

richards
02-05-2007, 12:30 AM
Brady and Mariss,
I've been playing with a G212 and a PK296B2A-SG3.6 drive that I have on hand. Please note that I don't have an encoder hooked up to that drive yet. I'll order one tomorrow from U.S. Digital.

The test was just preliminary to see if I could visually detect a problem.

I used Mach 3, a PMDX-122 breakout board, an Avel Toroid transformer Y236801 and a PMXD-8020 power supply board. The transformer was wired to give 25VDC, so after rectification, I'm getting about 35VDC, which is 23X the stepper's rated voltage. The stepper is wired to use the center tap and one end lead for each coil. The current set resistor is 33K, which gives about 3-amps current through the motor. The G212 was set to 1:1 (no multiplication).

The test procedure was to move +0.1095 (200 pulses), pause 25 msecs, then move to 0.0 (200 pulses), and then pause 25 msecs, repeated 100 times, all at a feed speed of 360, which is 6-ips.

Before the test was started, I attached a 6-inch 'pointer' to the shaft, and marked its position. At the end of the test, the 'pointer' seemed to be exactly in the same position as it had been at the start of the test.

This is NOT the test that I promised to do. It is just a preliminary 'sanity check' test to be sure than I have the correct idea about setting up the parameters correctly. Of course the results will only be reported here, because it is NOT the test that I promised to do.

However, it appears, that with the 25 msec delay between direction changes, that everything works as expected.

Then I repeated the test with NO delay between direction changes and again, there was no detectable problem with positioning.

Finally, I repeated the two tests with the G212 converted to a G202 (multiplier board removed and opto-coupler installed). I got the same results.

Oscilloscope traces showed that the step and direction signals between the PMDX board and the G212 were exactly as expected. (I don't have a digital scope nor do I have a 'scope camera to capture the trace.)

For the curious, Mach 3 is setup at 1834.39 steps per inch, 720 velocity, 40 acceleration, and 5 microseconds for step and direction pulse widths. The 1834.39 was selected to represent the PK motor with a 25 tooth spur gear attached. The 720 velocity represents a jog speed of 12-ips. The 40 acceleration = 40 inches/sec/sec.

This is certainly NOT what I expected to see. A test with 100 repeated cycles that took a total of 22 seconds is not exhaustive. But, I am curious why this simple test didn't show any problems with the Gecko multiplier, with or without a direction change delay.

When I get the encoder and wire up a pulse counter, I should be able to show any missed steps.

(As a last sanity check, I wired up my G340 that is connected to an ID33004 servo with a 500 line encoder attached. To use that motor, I had to change the wiring of the transformer to get 70V. However, the results were the same as with the stepper motor. However, since the servo has feedback, the feedback could easily correct for missed steps - so I don't count the servo test as being a valid cross-check.)

Brady, do you think that moving an axis 0.109 inches reversing direction and moving 0.109 inches, and then repeating that cycle 100 times is a valid test? I want to be sure that I'm not doing something that would give back false data. Finally, is there any chance that the tests that you and Ted made had the controller board setup with the default 2 microsecond pulse width instead of the required 5 microsecond pulse width?

Mariss, it looks like everything is working exactly as expected. By the way, I'm looking forward to trying out the G203 drivers as soon as I install these G202/G212 drivers in something. Testing is a lot of fun, but continually adding drivers to a test setup is going to cause my good wife to wonder just how fast I'm slipping into insanity.

mariss
02-05-2007, 12:57 AM
Mike,

Thanks, it simply proves what works on paper works in the real world.

You allowed 25mS, paper says 20mS before things fall apart. That extra 5mS is I guess what makes the difference.

Mariss

richards
02-05-2007, 06:44 AM
Mariss,
I started with 25mS - and it worked properly - then I removed all delay - 0mS - and it still worked properly.

The reason that I started at 25mS was because my 'scope trace made me think that I wasn't quite getting a full 20mS when I had the delay set at 20mS. I figured if my timing really was just a little short that it would be better to add 25% to the delay rather than to get false data because my test parameters were off.

Also, I wanted to be absolutely certain that I was testing the G212 and not the controller board that was generating the signals. My test setup has easily changed setup parameters, including the minimum pulse width of each step, so it was fairly easy to verify that all conditions published in your documentation were being met.

What I am worried about, is that the error might be self-canceling because of my test method. If time permits later on today, I'm going to machine some aluminum parts that will make it possible to accurately measure deviation at both ends of an arc. I have several dial indicators with magnetic bases lying around the shop. I believe that it might be possible to set two of them up so that I can measure missed steps. My test method with two indicators will be to stop at each end of an arc long enough to get a reading - perhaps 5 seconds - and then to do an odd number of waggles, so that the part pressing on the dial indicators stops alternately at different ends of the arc, again with a sufficient delay to get an accurate reading. (It might work, and it might not. In any case, it's only 4:30 a.m. here and my head is a little fuzzy. Getting a service call in the middle of the night to restart web servers and to reestablish NFS connections because of power outages is best left to younger guys.)

-Mike

rhfurniture
02-05-2007, 07:11 AM
Mike,
Looking quickly at your test I would say the problem might be that the test is symetrical - ie an error induced in one direction is repeated in reverse in the other. Do 3 jumps right and one jump back to zero and it might show up.

(you can tell it's teatime)R.

Brady Watson
02-05-2007, 07:52 AM
Mike,
Your moves are too large. Try moving in increments less than 20 steps, changing direction randomly (as possible) and repeating. It's these little moves that do it. Get rid of the delay as much as possible. The 901 needs the extra processing time or it drops values (at least that was our experience with it.) As Mariss pointed out, it might be that extra 5ms delay that is keeping it all together.

or....

Generate a generic 3D or v-carving file with a small tool and small stepover. Let it run (air cut). Watch for positional loss. It's the 20 steps or less that really exposes the 901's weakness.

-B

richards
02-05-2007, 10:53 AM
Brady,

I changed the program to give two forward moves of 0.01 inches (20 steps) and then one move of 0.01 inches backward. The "unit values" in the G-code were changed to 2,000 steps per inch, so that the shaft would make one complete revolution when the routine was run 50 times. All delays in the program were removed.

After one cycle (50X), the shaft returned to home position with no visual deviation from its start point.

The program was changed to run 500X so that the shaft would turn 10X before stopping. Again, there was no visual deviation from its start point. This test took 1-minute, 50 seconds to run, which means that with these little moves the the program stays in the first part of its ramping cycle and never reaches any real speed.

(As a side note, the speed values selected for this test bench mimic the speed values that I normally use on my Alpha - although I'm really comparing apples to oranges. This test is not a test of Shopbot code vs G-code, it's a test of the G212 using a different pulse generator. However, just because the G212 seems to function without error when using G-code, the test can't be assumed to prove that G-code is better or worse than Shopbot code. Let me say again that we're comparing apples to oranges.)

Here is a copy of the code that I used:

(File mjr_test2_shopbot.tap )
(Monday, 5 February 2005)


(Initialize)
(G91=Increment mode, G80=canned cycle mode, G49=cancel tool length offset)
G91 G80 G49

(CALL SUBROUTINE NO. O3 repeat 50 TIMES - which is one full shaft revolution)
M98 P03 L500

(End of program)
M30
(---------------------------------------------------------------------------)


(+++++++++++++++)
(Subroutine O03)
(Incremental mode)
(Move forward 0.01" 2-times - which is 20 steps each movement)
(Move backward 0.01" 1-time - which is 20 steps each movement)
(Feed speed is 6-ips)
(NO delay between direction changes)


O03
(O03=subroutine number)

G01 Y0.01 F360
(G01=move command, Y0.01=move Y axis 0.01 inches, F360=feed speed=6-ips)

G01 Y0.01

G01 Y-0.01

M99
(---------------)

(End of file)


I'm using the PK296B2A-SG3.6 motor and all other components listed above. For this test, I simply turned the motor around and used the back shaft, since the shaft turns once per 2000 pulse, that was the easiest way to verify movement.

Just as a side note, everything is visual. I looked long and hard at the 1-revolution test to see if there was any deviation. When I was almost 100% certain that their was no deviation, I ran the 10-revolution test to magnify any error 10X and then gave another long hard look at the shaft, this time using a magnifying glass and comparing the mark on the motor housing to the mark on the shaft. No matter how hard I looked, I couldn't see any deviation. I won't have an encoder for a few days to make a real test, but I am scratching my head a little because I thought that even this simple test would show a problem.

Brady Watson
02-05-2007, 11:15 AM
Mike,
Do a test like this: 10 steps forward, 15 steps back, 5 steps forward in rapid succession Keep the moves under 20 steps.

These small moves are the types that you would find in a 3D file or v-carving file...run a 3D file or v-carve file and your test can see if the tool returns home on the money. Again, SMALL moves...use a small tool and a very tight stepover.

You're doing great tests...but you are not getting the condition because you are not doing it in small movements where the condition shows positional deviation at less than 20 steps and at speed without any delay...you need both conditions.

-B

richards
02-05-2007, 12:01 PM
Brady,
I'm 75 miles from the shop right now fixing a web site. But I'll run that test as soon as I get back in a few hours.

The last test was run WITHOUT any built-in delays. As soon as the start button was pressed, the software started motor movement and continued without stopping until the test compleated.

Also, this test is on a motor that is NOT connected to a machine. The motor is only driving its own shaft (that's why I used the magnifying glass to check positioning).

-Mike

Brady Watson
02-05-2007, 12:16 PM
Mike,
That's OK that it's not connected to a machine...the masking tape method should work out fine. You may want to assign that motor to the Z axis and run a v-carving file.

-B

richards
02-05-2007, 02:51 PM
Brady,
Success! I just ran the test using your new parameters of 10 steps forward, 15 steps back, 5 steps forward and finally was able to see the problem.

Here is the code that I used:

(File mjr_test2_shopbot.tap )
(Monday, 5 February 2005)

(Initialize)
(G90=Normal mode, G80=canned cycle mode, G49=cancel tool length offset)
G90 G80 G49

(CALL SUBROUTINE NO. O3 repeat 50 TIMES - which is one full shaft revolution)
M98 P03 L5

(End of program)
M30
(---------------------------------------------------------------------------)


(+++++++++++++++)
(Subroutine O03)
(Incremental mode)
(Move forward 0.005" 1-time - which is 10 steps)
(Move backward 0.0075" 1-time - which is 15 steps)
(Move forward 0.0025" 1-time - which is 5 steps)
(Feed speed is 6-ips)
(NO delay between direction changes)


O03
(O03=subroutine number)

G01 Y0.005 F360
(G01=move command, Y0.01=move Y axis, F360=feed speed=6-ips)

G01 Y-0.0075

G01 Y0.0025

M99
(---------------)

(End of file)


Now, to check assumptions, I doubled the values so that the moves would be 20 steps forward, 30 steps back and 10 sets forward. This time there was NO error. Finally, I re-tested with the original values, but this time I inserted delays between the commands, as Mariss instructed, to give the logic time to clear. This time, even with the short moves, the file ran without error.

Here is the portion of the code that shows the added delays:

G01 Y0.005 F360
(G01=move command, Y0.01=move Y axis, F360=feed speed=6-ips)
G4 P20
G01 Y-0.0075
G4 P20
G01 Y0.0025
G4 P20
M99


So, my conclusion is that with very small moves, similar to those that you would find in a V-carve file, the error may occur. The fix to the problem is to either 1). Remove the step multiplier board on the G212 to convert it to a G202 or use the G202 instead of the G212, or 2). Insert 20mS delays in the code if you're using a G212.

Congratulations to Ted Hall and to you for finding that kind of bug. I was beginning to believe that it was going to be too elusive to duplicate.

Because this test is definitive and easy to duplicate without using exotic encoder setups or exterior microcontrollers, I'll post my findings, as promised, on the CNCZone forum and on the Gecko forum giving Ted Hall primary credit for finding the bug and Brady Watson secondary credit for assisting.

If that sounds fair, give me your approval and I'll post those messages.

-Mike

Brady Watson
02-05-2007, 03:50 PM
Congrats on breaking it! Feel free to post whatever you want...

-B

richards
02-05-2007, 05:27 PM
Posts were made to Gecko and CNC Zone. You're now on the official "Almost Famous" list.

This was a fun project. For awhile, I was beginning to think that it would be impossible to duplicate the error.

-Mike

bruce_clark
02-06-2007, 09:48 AM
Brady,

I don't dispute your findings (Mike even replicated them) but I am having a hard time imagining a cut path that would have .02" segments that went back and forth. The closest thing I could come up with is a "zip" pattern.

Now, I totally can see you having a problem with the Z axis because of the constant moving up and down.

Now, as Mike pointed out, adding a delay would "fix" the problem but HOW do you add a delay in the ShopBot controller software (or even the CAM software)?

Finally, I am really supprised that on the g901 board the 1:1 ratio does not bypass the PID filter completely.

Oh well, like you said, money wasted.

Bruce

Brady Watson
02-06-2007, 10:58 AM
Bruce,
On regular 2D cutting, you will most likely never exploit the condition. For those of us that do a lot of 3D & v-carving, it becomes a problem.

richards
02-06-2007, 03:51 PM
It was an interesting experiment. For a while, I thought that I was trying to chase smoke and mirrors, because I could not replicate the error. Even when I finally got it to happen, I just casually looked over at the stepper, and saw that the knife scribe line on the pulley was at least 1/8-inch out of position. I had run so many tests that I had kind of lost interest in the procedure and was marking up the code sheet for the next set of tests.

Most likely, if I were actually running Geckos on my Alpha, I could have run the G212 forever without noticing the problem because the kind of work that I do doesn't require that kind of resolution. Perhaps the V-carving files (as Brady suggested) might show the problem because arcs and circles are generated using small straight line segments, but in my world of cutting parts for cabinets, a sub 1/100-inch move isn't likely to happen.

The good news is that no one needs to worry about it. Ted found the cure, which is to use the less costly G202 stepper driver or to simply remove the 901 cards from the G212 - which is the route that I've taken. And, if someone absulutely needs the G212 because of the step multiplier function, he/she can add 20mS delays every time the direction is changed, although I wouldn't want to do that in a 3-D file. It would take hours or even days to change the code and then it would add hours or even days to the cut time - but it is an option.