585,888 active members*
4,334 visitors online*
Register for free
Login
Results 1 to 18 of 18
  1. #1
    Join Date
    Jan 2009
    Posts
    19

    EMC2 and Stepperworld FET3 Controller

    I have built a homemade CNC and purchased the Stepperworld FET3 controller kit. I'm trying to set up EMC2 to control the CNC.

    What a mess. I'm new to Linux and thought that the EMC2 software would be the way to go.

    Issues:

    1) I've got high latency on the computer. 400,000!!! It's an older computer bought just to run the CNC. I've installed the 8.04 version of Ubuntu and running through LPT1.

    2) I can't make head nor tails of how to set up the pinouts for controlling the motors. They make noise (screaming) but there is no rotation when the motors are tested in EMC2.

    3) Of course the Stepperworld FET3 control isn't listed in the configuration settings. I've tried most everything I can think of.

    If you choose to reply, remember that I'm just starting out and know nothing about anything!

    Thanks for any help.

    Kevin

  2. #2
    Join Date
    Jan 2010
    Posts
    5
    Hello Kevin,

    Sounds like you're having fun. Okay, regarding the issues ...

    1) latency. At first I was going to adress this one, but since you say you're new to linux maybe just first do numero duo. Ofcourse a latency of 400 us is going to seriously limit your stepper speed, so has to be fixed if any actual work is to be done. But 400 us latency is not going to be a problem while doing some slooooow speed jogging of the axis.

    2) The pinout ... I hope you do have the pinout of the FET3 kit? If you know that one, it is a simple matter of configuring the right pinout in the right config file.

    On the emc side you can configure the parport pinout in a file like for example EMC_DIR/configs/stepper/standard_pinout.hal

    The default is something like
    Code:
    # standard pinout config file for 3-axis steppers
    # using a parport for I/O
    #
    # first load the parport driver
    loadrt hal_parport cfg="0x0378"
    #
    # next connect the parport functions to threads
    # read inputs first
    addf parport.0.read base-thread 1
    # write outputs last
    addf parport.0.write base-thread -1
    #
    # finally connect physical pins to the signals
    net Xstep => parport.0.pin-03-out
    net Xdir  => parport.0.pin-02-out
    net Ystep => parport.0.pin-05-out
    net Ydir  => parport.0.pin-04-out
    net Zstep => parport.0.pin-07-out
    net Zdir  => parport.0.pin-06-out
    Which is fairly self-explanatory really. Check in your BIOS if LPT1 is assigned to port 0x378, and adjust accordingly. (probably correct since you do get a lot of noise from the steppers, i.e it is doing something). By the sound of it you may have to edit the Xstep, Xdir etc pinouts according to what your FET3 documentation says.

    After you have configured that, you should be able to do some sloooooow speed jogging to see if the connections are right. After that it's time to do something about that latency.

    Hope that helps,
    Fred

  3. #3
    Join Date
    Jan 2009
    Posts
    19

    Moving along...

    Well, I'm learning!

    Latency - I discovered an add-on usb port in the back of the computer and removed it. Also shut off a few things in the bios. (Finally figured out how to access it!) My latency went from 400,000 ms down to 10,800 ms. Cool!

    Got the pinouts figured out. I set the pins which turn on the x/y/z enable to "Charge Pump" !!!!!!!!!! Can you believe that? Seems to work, however, it's still guesswork.

    It turns out that the EMC2's configuration page does nothing more than organize the pinouts on the next page and control a few other things on the first page.

    ----------------

    Ok, new question...

    Now that the motors are working, I seem to have a new problem.

    I started out with an acceleration of 3 and a velocity of 2. No go!
    The motor sounds like it should be working (high pitch whining) but the shaft does not move. If I change the velocity to 1 the shaft begins to turn but stops rotating as the motor winds up to full speed. A velocity of .2 ips (POINT TWO!) will allow the motor to rotate and not miss steps but of course it's very slow!

    I think that this is a problem with EMC2's "Microstepping". I know that the Stepperworld is not a Microstepper. The controller was shipped with the dip switches set to "Hi Torque". Last night I switched the controller to "Half-Step" thinking that would solve my problems. It didn't.

    Now, for some reason, my X Axis has stopped responding. I'll check the wiring tonight. (Oh, I hope I didn't blow a circuit!)

    Any help would be appreciated.

    Kevin

  4. #4
    Join Date
    Jan 2010
    Posts
    5
    Good thing you got the latency/smi fixed!

    The motors doing a lot of whining may well have to do with the fact that you are using that "Charge Pump". If I remember correctly that charge pump pin you've got there is an oscillator with something like a 10 kHz frequency. So if I understand your setup correctly you are now modulating your step signals with a 10 kHz enable, which I doubt the stepper driver will like very much. Hence the whining.

    Maybe what you are looking for is the Xen, Yen and Zen signals for x,y,z-axis enable. You can use those on the pins where you now have charge pumps.

    Config file snippet:
    Code:
    net Xen  => parport.0.pin-RTFFET3M-out
    net Yen  => parport.0.pin-RTFFET3M-out
    net Zen  => parport.0.pin-RTFFET3M-out
    Hope that helps,
    Fred

  5. #5
    Join Date
    Jan 2009
    Posts
    19

    Thumbs up Tried a few more things.

    Worked on the machine again last night.

    I figured something was up with that "charge pump" thing.

    I switched the fields to "Spindle On" and the X-Axis magically started working again. I then went through all of the EMC2 drivers listed (with their varying "Step Time") variables and had pretty much the same results as before.

    A few of the drivers would allow the motor to turn at VERY SLOW speeds but most all of them would just "Grunt, Growl, and Howl". I tried each driver at 8, 4, 2, 1, and .5 microsteps. The lower microsteps on a couple of drivers would allow the motors to turn at a velocity of .1 ips but nothing at the higher velocities.

    I am frustrated that EMC2 doesn't have a pinout variable called "X Enable".
    I'm left trying to guess which of the available variables might work.

    I'll try the last post's suggestion tonight.
    Wish me luck!

    PS - To all you "Newbies" -
    Quit trying to "be a man" and read all the directions! :drowning:

  6. #6
    Join Date
    May 2007
    Posts
    380
    kbeard, did you get a CD with your FET3 controller? If so, it will have some configuration information for EMC2. I think its in a folder called DOCS.

    The field effect transistors used in the FET3 have rather slow switching rates. Don't expect fast motor rpms.

    John

  7. #7
    Join Date
    Jan 2009
    Posts
    19

    EMC vs. EMC2

    Yes, I've read all of the files on the CD.

    There is one file in the SP3 subdirectory called "EMC.ini"

    I have looked at it but it's an "ini" file for the old version of EMC.

    About half of the variables in the file are also found in EMC2.
    The other half of the variables are missing.
    Tonight, I'm trying to figure out how to fix this.

    Evidently EMC2 is set up to use a file called "motmod.ko" whereas the older version of the ini file calls for "steppermod.o" which doesn't exist anywhere on the harddisk. I've tried switching the callout to "stepperdef.ko" (???) but it returns an error from the "my-mill.hal" file. Can't recall the actual name of the file since I'm not in the basement. Any help???

    I'm gonna fire off an e-mail to StepperWorld about the outdated ini file.

    Uff-Da!!!

  8. #8
    Join Date
    May 2007
    Posts
    380
    Russ seems like a good guy. He should be able to help you out.

    John

  9. #9
    Join Date
    May 2006
    Posts
    122
    Quote Originally Posted by kbeard View Post
    I have looked at it but it's an "ini" file for the old version of EMC.

    About half of the variables in the file are also found in EMC2.
    The other half of the variables are missing.
    Tonight, I'm trying to figure out how to fix this.
    Be aware that the ini file which is created by stepconf (the EMC configuration program) does not include entries for the entire universe of possible parameters.

    There are a lot of parameters (e.g. "backlash") which are not written to the ini file by stepconf.

    Check out the integrator's document.

  10. #10
    Join Date
    Nov 2005
    Posts
    496
    Quote Originally Posted by kbeard View Post
    Worked on the machine again last night.

    I figured something was up with that "charge pump" thing.

    I switched the fields to "Spindle On" and the X-Axis magically started working again. I then went through all of the EMC2 drivers listed (with their varying "Step Time") variables and had pretty much the same results as before.

    A few of the drivers would allow the motor to turn at VERY SLOW speeds but most all of them would just "Grunt, Growl, and Howl". I tried each driver at 8, 4, 2, 1, and .5 microsteps. The lower microsteps on a couple of drivers would allow the motors to turn at a velocity of .1 ips but nothing at the higher velocities.

    I am frustrated that EMC2 doesn't have a pinout variable called "X Enable".
    I'm left trying to guess which of the available variables might work.

    I'll try the last post's suggestion tonight.
    Wish me luck!

    PS - To all you "Newbies" -
    Quit trying to "be a man" and read all the directions! :drowning:
    First thing is I am assuming you are using stepconf to make a configuration.

    -the signal name you are looking for to enable the step drivers is 'ENABLE AMP'
    which means enable amplifier (or driver)
    you can have multiple enable amp signals if you want an enable per axis.
    - microstep setting will not make the motors miss steps it will only make it move the wrong amount of steps. I think you said you could set the driver to half stepping, then the microstepping should be set to 2. quarter stepping would be 4 etc.
    - driver timing, acceleration, max velocity and base period all effect miss stepping and top speed.
    - make sure the wiring is right. That means to the step driver and to the motors. If the motor wires are wrong it will never step properly.
    - try setting all the driver timings to 2000 and acceleration low then test.
    when you figure out driver timing that works add it here so other people know:
    http://wiki.linuxcnc.org/cgi-bin/emc...r_Drive_Timing

  11. #11
    Join Date
    Jan 2009
    Posts
    19
    Thanks for the responses.

    Did some more work on the machine tonight and made a little progress. I'm convinced that these little steppers just don't have much "umph". No matter what I set the velocity, acceleration, step time, etc, the motors sound like they should be spinning but no rotation.

    If I reduce the velocity to .1 ips the motors will spin (slowly) without missing a beat. Change them to .2 and forget it. Noise but no rotation.

    Can somebody tell me how powerful the Stepperworld FET-3's are. I think they are rated 100 oz. When spinning, I can place my fingers on the pulley and stop the motor with a little squeeze. They don't seem to have much torque at all.

    I did some realignment of the bearings / screw threads to get the lead screw to turn as easily as possible. Now I can run the X axis with the velocity set to .1 ips. Takes about a minute to travel an linear inch. SSSLLLOOWWW !!!

    I was hoping for better. Part of the learning curve I guess.

    I'm not sure what to do next. Do I have the Stepperworld FET-3's configured correctly and they're just whimpy. If that's the case, do I rework the machine for easiest (slow) travel. Or do I plunk down more money on stronger motors, higher voltage supply, different controller??
    Can anyone make suggestions?

    I was hoping that this would be a better experience...

    Kevin

  12. #12
    Join Date
    May 2007
    Posts
    380
    The FET3 CD has a Windows based program that will you to run the motors without control software. Running it will tell you if the problem if hardware or software. If it is hardware, first double check that the motor winding are indeed wired correctly. While the FET3 board is slow, its not anywhere near that slow. I have one on my first machine.

    John

  13. #13
    Join Date
    Jan 2009
    Posts
    19

    Exclamation Update!

    Wanted to update everyone on what's been going on.

    I ended up switching from EMC2 to Mach3 since I had better documentation from Stepperworld on how to set up Mach3. Had to reformat and reinstall Windows on the computer. Downloaded Mach3, set up, and got it running.

    The 24" x 24" X and Y axis are painfully slow. The highest motor speed that I can run at is around 4 inches per minute. It takes 6 minutes to travel the full 24 inches. Way slower than I had hoped.

    I am thinking of purchasing 2 motors to replace the X and Y motors.
    I currently have "Bulldog" motors (100 in. oz, 20,000 pulses per minute).
    Want to purchase "Roadster" steppers (127 in. oz, 60,000 pulses per minute).

    If I understand things correctly, the Roadsters will have 27% more torque and run at 3 times the rpm. (or something like that)

    Am I right???

    Kevin

  14. #14
    Join Date
    Mar 2006
    Posts
    474
    Wow, sorry to hear about your motor driver problems. I think the most common frustration to people just getting started in this hobby, is all of the underpowered drives out there.

  15. #15
    Join Date
    Jul 2005
    Posts
    2415
    Changing motors other than hitting the max torque/RPM point will not buy you much more speed. Speed comes from voltage. Steppers are current devices and the RPM is a function of how quickly you can charge and discharge the coils. Your motor drives are not "Chopper" drives and do not limit the current waveform electronically....they use a series power resistor that limits the current but that also drops the coil voltage. In essence the power is split between the motor and the current resistor. Just increasing the source voltage on a chopper based drive will increase the RPM but not so with a resistor limited drive like the FET-3. That also rquires and increase in the series current resistor and that causes more voltage drop. It's like "Half the Distance to the Goal" ....you never get there!

    You would be way ahead if you replaced the drives with a modern chopper drive that also has microstepping (for smoother motion) and can handle higher voltages. The G251 Gecko's give good performance at a very reasonable price and if you want a built in BOB look at the G540 unit. You may want to replace the motors later but it's not the solution for your slow speeds. Motors with the Geckos and a 48V supply will spin up to about 600 or 700 RPM.

    TOm Caudle
    www.CandCNC.com

  16. #16
    Join Date
    Mar 2004
    Posts
    369
    Quote Originally Posted by Torchhead View Post
    You may want to replace the motors later but it's not the solution for your slow speeds. Motors with the Geckos and a 48V supply will spin up to about 600 or 700 RPM.

    TOm Caudle
    www.CandCNC.com
    Some years ago, I had a demo machine with Gecko 201A drives and ancient round size 34 motors out of a printer. I could go to 1440 RPM on the motor and 90 IPM linear motion on the table. This was on a 150 Lb mini-mill (like an X2). The power supply was 50 V.

    Jon

  17. #17
    Join Date
    Jan 2009
    Posts
    19
    Final Update!

    I ordered two larger motors from Stepperworld (good to work with) and installed them on my CNC machine. My IPM (Inch per Minute) went from 4.5 IPM to around 9 IPM. Ended up doubling the speed of travel and increased the torque slightly for around $40. I am very pleased with the results.

    EMC2 has travel readouts set to Inches per SECOND!!! No wonder I was having trouble setting up the defaults! The reason my motors seemed to be screaming was that the EMC2 would initialize to 70 IPS and of course the motors couldn't handle it.

    Things are good now. Happy with the machine.
    Now I've lost the STUPID HARDWARE LOCK FOR BOB-CAD! What a deal...
    I'm calling Bob-Cad on Monday.

    Kevin

  18. #18
    Join Date
    Nov 2007
    Posts
    2
    I found it interesting that during this entire discussion, nobody asked how many threads per inch the partially-described machine's rotary-to-linerar drivers have. Its slow linear travel results from the multiplied product of screw-shaft threads-per-inch times RPM. FET-3 linear driving boards driving 2-thread-per-inch ballscrews can fast-travel 24 inches per minute. That's not fast, but it's not "painfully slow" in some circumstances and certainly acceptably fast for many machine applications. Acme thread screw & nut combinations may be slower because their internal friction is so high that many of them convert most of their input energy into waste heat, some running as low as 30% efficiency whereas ballscrews generally run 90% to 95% efficiently. As stepper motors approach their top load-free RPM, their torque has dropped a lot compared to low RPM torque, so the extra force required to drive loads with Acme screws compared to ballscrews creates a lower RPM balance between load and available motor torque. If you select inefficient rotary-to-linear drivers, you must pay for that decision by providing compensatingly more powerful motors and electronic packages. That's not the only trade off. I have some 1-inch ballscrew drivers which have so little internal friction that if I hold their "nut assembly" vertically in a vise, the long screw slides down through the nut from gravity's pull. Sure, that's efficient, but here's a downside. With same sized Acme screws, loaded side forces can't cause the screw to turn. So they act like one-way power clutches, where the motor can drive the load but the load can't drive the motor. That can be VERY useful. Ballscrews packages can't do that without adding an electric clutch to act as a brake. Everywhere I see trade-offs.

    How many times has the complaint been written about compensating for poorly-specified power supply voltages that are too high for stepper motors when connected to linear stepper controllers? Stepper motor coils have specific electrical resistance values and limited heat rejection capacity. Together those two characteristics define the maximum steady-state or average current those motors can accept without overheat damage. That's pretty simple. Linear drivers I've seen described don't contain any current-matching circuit which allows end-users to select the current which will drive the motors. An obvious way to match acceptable motor-driving voltage with what the driver circuit will deliver is to select a power supply that outputs the most appropriate voltage instead of selecting a power supply that delivers too much voltage and then patching in dropping resistors in series with motor coils to compensate for your original power supply selection error, then complaining that this lack of planning caused you to spend more money than should have been required and wastes energy as waste heat from the dropping resistors. FET-3 linear controllers were rated to accept up to 50 volts, or 12 amps but with 140 watt current limit, so if one of those values is high, the other must be limited to produce no more than 140 watts throughput. For example, if you selected 28-volt rated steppers and 28-volt power supplies using FET-3 controllers, you wouldn't need a dropping resistor in series with the motor's windings to prevent overheating the motors. If you plan ahead and match motor voltage limit to power supply voltage limit, need for dropping series resistors disappears. Why complain about a linear controller because YOU selected a power supply with too much voltage for the stepper motors you selected? Just seems curious to me and reminds me of an "America's Funniest Video" showing an angry dog trying to attack its own tail.

    If you want faster motors, select motors with lower inductance. Inductance in motor coils is just like inductance in a choke coil. Lower inductance coils reach their steady-state saturation level faster than high inductance coils. So stepper motor speed with both linear and time-chopper drivers is limited by how fast you can bring those coils up to approach their steady-state values. Basic stuff.

    Granted, this is old stuff, but some devices which needed an increasing-resistance/time curve, starting with low resistance and quickly increasing resistance were made by passing their current through quick-responding incandescent lamps. Tiny, quick-cooling filament light bulbs, especially those which did not form their filament into a coil, made useful 60cps AC stroboscopic display illuminators. That's 120 swings through 0 volts per second so they were significantly dimming 120 times per second. They have low electrical resistance when their filament is cool enough that it's not emitting light, but their resistance quickly increases as the filament gets hotter and produces light. Coiled filaments cool slower than straight filaments, and to act as fast-acting variable resistors, that suggests that a bank of straight-filament small lamps would be the best fit. Their impedance time curve seems like it could fit as a helpful linear stepper motor dropping resistor. That lower starting resistance would provide a quick but short higher-current surge which would more quickly induce coil inductance saturation from higher initial pass-through voltage. But that voltage would quickly drop as filament heating increases lamp resistance just as motor coil inductive load drops. Nice match. Stone-age thermistor? I've never seen this specific combination, but it occurred to me that pairing these opposite-behaving curves to quicken stepper coil saturation seems like an ideal fit. When fitting fast-acting variable resistors, one should be allocated to each motor coil group to maximize each variable resistor's cooling period during coil-off periods while the other coil(s) are being surge energized. Or how about creating a solid-state equivalent-behaving package to replace these old-school lamps?

    Your thoughts about these observations?
    The high-powered version of the FET-3 with larger rated MOSFETs is rated to drive 32 amps instead of 12 amps.
    What low cost time-chopper drivers can I buy to duplicate that for driving monster-sized steppers?
    If such low-priced time-chopper boards exist, please tell me which ones they are and where they can be purchased.
    John

Similar Threads

  1. Please help me wire my fet3/dynamic:(
    By mike3385 in forum Stepper Motors / Drives
    Replies: 12
    Last Post: 01-12-2011, 01:17 AM
  2. StepperWorld FET3 problem
    By dougdv in forum CNC (Mill / Lathe) Control Software (NC)
    Replies: 2
    Last Post: 01-18-2008, 10:38 AM
  3. zylotex vs stepperworld fet3
    By lurch in forum CNC Machine Related Electronics
    Replies: 1
    Last Post: 09-14-2004, 01:32 PM
  4. BobCad and FET3 from Stepperworld
    By puzzman20 in forum BobCad-Cam
    Replies: 1
    Last Post: 09-01-2004, 09:13 PM
  5. want to add 4th axis to stepperworld fet3 board
    By gv71 in forum CNC Machine Related Electronics
    Replies: 5
    Last Post: 05-29-2004, 05:10 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •