Shop OBEX P1 Docs P2 Docs Learn Events
CNC Homing And Over-Travel Discussion - Page 2 — Parallax Forums

CNC Homing And Over-Travel Discussion

2

Comments

  • kwinnkwinn Posts: 8,697
    edited 2014-04-22 20:35
    No problem. Did quite a lot of work with auto-samplers and auto-pipetters in medical labs. Speed was the goal since the more samples processed the more money made, but volume dispensing was also important. They were semi 3D+ but did not require high precision (1mm or slightly better), but used about every imaginable way of X, Y, Z, and dispensing control from DC gear motors with pots to servo motors with encoders, and ball screws with stepper motors and encoders.

    Of all of them the units with ball screws, stepper motors, and encoders on the motors were the most reliable.
    idbruce wrote: »
    Kwinn

    You sure are providing a lot of nice input here. Thanks. This will be a good reference for years to come.
  • ellipserellipser Posts: 43
    edited 2014-04-22 21:03
    kwinn wrote: »
    PS, as ellipser says you could wire the pins in series and use 1 pin but that means you can only move one axis at a time which is very slow and kind of a shame if you are using a propeller. With a propeller you could have one cog per axis and do all the moves in parallel as long as each axis has it's own end of travel pin.

    The pin would function as an E-stop. You wire all of them in series, and then use one pin. There is no limitation to using one axis at a time when the machine is running normally. It's just that when you hit an over-travel limit switch, all the movement would shut down until you use the override switch and get the machine back into its work envelope.
  • T ChapT Chap Posts: 4,223
    edited 2014-04-22 21:19
    Running 3 axis towards switches at the same time in a homing process is not possible with all switches at the same pin. But, homing a machine is a matter of seconds out of a day if you boot once a day, so waiting for each axis to home one at a time is not an issue to give any concern too, especially on a small machine like a 3d printer. Many machines home one axis at a time, this is very typical and 1 input is sufficient for estop/home use.
  • ellipserellipser Posts: 43
    edited 2014-04-22 22:08
    T Chap wrote: »
    Running 3 axis towards switches at the same time in a homing process is not possible with all switches at the same pin. But, homing a machine is a matter of seconds out of a day if you boot once a day, so waiting for each axis to home one at a time is not an issue to give any concern too, especially on a small machine like a 3d printer. Many machines home one axis at a time, this is very typical and 1 input is sufficient for estop/home use.

    I was talking about over-travel limit switches being wired in series, not homing switches.

    Six over-travel limit switches in series is OK to shut down the machine in an emergency condition to protect it from jamming itself up/self destructing.

    Apparently, homing can be done with one pin and 3 limit switches. Say, the X-axis goes to home and then triggers the switch. Then it immediately gets off it. Then it's the Y-axis' turn with an activation of the switch, immediately followed by moving back off it.
    It's a nice way to save on input pins.
    Then they'd double as overtravel switches during operations.
  • idbruceidbruce Posts: 6,197
    edited 2014-04-22 22:14
    Okay, now I am curious....
    You'd need at least 3 for homing switches with each one getting an input pin into a Propeller.

    Couldn't you wire 3 homing switches in parallel to one input on the Propeller?

    EDIT: And home one axis at a time?

    EDIT: I now see that you covered that.
  • ellipserellipser Posts: 43
    edited 2014-04-22 22:17
    idbruce wrote: »
    Okay, now I am curious....



    Couldn't you wire 3 homing switches in parallel to one input on the Propeller?

    EDIT: And home one axis at a time?

    Yes. See edited post.
  • idbruceidbruce Posts: 6,197
    edited 2014-04-22 22:26
    Actually, I cant see why the over-travels couldn't be wired in parallel also. What is the benefit of wiring them in series?
  • GenetixGenetix Posts: 1,754
    edited 2014-04-22 22:52
    Real CNC machines have limit switches and then physical hard stops. The drive motors are very powerful before I broke a 1/2" endmill one by jogging the axes while the endmill was between the jaws of the vise.
    You could always add a poor man's encoder to the stepper either using a slotted disc or a patterned wheel. I would be bummed if I waited hours and found my part was deformed because something happened with the drive motor.

    By the way, how are you detecting no more material?
  • ellipserellipser Posts: 43
    edited 2014-04-22 22:52
    idbruce wrote: »
    Actually, I cant see why the over-travels couldn't be wired in parallel also. What is the benefit of wiring them in series?

    Six in series using normally closed contacts
    or six in parallel using normally-open.

    I don't see much of a difference either way. In both cases you only use one input for stopping the machine to prevent a crash.

    Code NFPA 79 doesn't specify either way:
    9.3.2 Overtravel Limits.
    Where a machine overtravel causes a hazardous condition, a position sensor or limit switch shall be provided to initiate control action.
  • ErNaErNa Posts: 1,752
    edited 2014-04-23 00:26
    OK, by accident I found this thread and as I am quite experienced in sensorless motor control of BLDC's I also looked to the more common "simple" stepper motors. But stepper motors are not simple at all, as the are not motors but movable vices. May sound funny, but it is the case. A stepper doesn't generate torque. Like a vice doesn't generate a force. If a vice would generate a force, the clamped mass would accelerate and start to move. What really is not the case. So a vice generates a clamping force. That is a difference. A stepper also generates a clamping force so there is no driving force whenever the rotor is in the target position. Only if an external torque moves the motor out of the nominal position, the stepper generates a counter torque. It can be best compared to the force generated by a piece of deformed rubber.
    The dilemma with stepper drives is: to generate a holding torque, the rotor never is in the target position but is deviated to generate this holding torque. The more current flows to the motor windings, the stiffer the motor is. But if you have an element, that creates a back driving force when elongated, this is normally called an oscillator. The stiffer the stepper, the higher the resonance frequency, the higher the losses, as all the power feed in will be dissipated.
    Whenever the motor changes position, energy is transfered to the wheel and this energy must be supplied. So, like every motor, a position changing stepper (normally called: running stepper) generated a BEMF, which, if not compensated, reduces the current and so torque. That is the reason why stepper motors are driven by current sources. Now, if you measure the voltage needed to drive the current, you can see, if the motor runs or stalls.
    But honestly: if you detect a motor stalling, isn't that too late?
    I only know about one company that sells a chip which can detect a stepper load and adjust the current in such a way, that only the needed torque is generated. This technology is called cool-step. And so you can also detect an upcoming stall. Now there is a project started to build a 3d-printer electronic using these chips: http://www.tbone.cc/ I hope the funding will end with an success, so I will test the behavior, end eventually create an extension board for the quickstart
    Stall detection can be used to detect a hard stop and so eliminate end switches. It would be nice to combine a soft stop (to detect raising force and slow down step rate) with a hard stop, which can be detected and located to the precision of microsteps.
    By the way: an encoder feedback may detect stalling, but normally doesn't prevent from losing steps. And must have a high resolution to be used in combination with microstepping.
  • LoopyBytelooseLoopyByteloose Posts: 12,537
    edited 2014-04-23 01:00
    Hi again,
    Well, finding a way to consolidate the 6 inputs into less on the Propeller seems to be needed if you want to have an SDcard included with your 3D printer.

    I am thinking that since hitting these pretty much throws the whole project into a start over mode, using a shift register to read the state might be useful.

    ONE could have the limit switches work outside the Propeller by overriding the stepper motor ENABLE signal for the particular motor that is tied to the same axes. Response would be faster than a shift register, but repositioning after a trigger would likely mean manually pushing the print head away from the stop.

    Another alternative pin consolidation is to tie all the ENABLEs for the 4 steppers together and leave the 6 limit switch pins alone.

    And so, there are at least 3 trade offs in how to consolidate io by clever configuration of the ENABLE signals and the Limit switch inputs.

    I guess we could go one bit further and tie in the Limit hit to but disable the ENABLE and reset the Propeller to cease all processors, or we could have one io allocated for a 'soft reset' that justs puts all and everything in a standby/wait mode.

    The main point here is that there seems to be a likely scheme to use less io pins that would use some logic chips to work the stepper motor controllers Enable and the six Limit switches. It may even result in a better behaved response if these are triggered.
  • ErNaErNa Posts: 1,752
    edited 2014-04-23 01:42
    One can talk about a problem in principle or in detail. But does it make sense to talk in detail, if the principles are not clear? It is out of question: to check six switches with one I/O-pin can be done with an or or an and logic. But: does it make sense to check for lost steps by checking limit switches? That seems to me a little late. So homing is an open task. Is the home switch a limit switch? As the home switch shows position, it has to be precise. Limit switches can be cheap. But is this worth to think about if you can not guarantee for lost steps? That is the reason why I argue: solve the key problem first. And as Idbruce mentioned: a lost step creates a bunch of problems if your intention is to make something not only for fun.
  • MicksterMickster Posts: 2,694
    edited 2014-04-23 02:35
    idbruce wrote: »
    Actually, I cant see why the over-travels couldn't be wired in parallel also. What is the benefit of wiring them in series?

    Parallel does not provide fail-to-safe. If your system is waiting for a contact closure but the circuit is open due to a broken wire or loose connection, the O/T becomes ineffective.

    This is the reason that E-Stop and Machine-Hold actuators run in series, through N/C contacts.
  • ErNaErNa Posts: 1,752
    edited 2014-04-23 03:05
    fail-safe behavior is an argument. If a broken wire event is more likely than a short circuit event. So: it depends. In the case of a cnc machine, limit switches should not be necessary at all. So you need still a home switch. And in the case of steppers, homing often is done by running "enough" steps into one direction to be sure to reach the end. Watch the noise of headlamp actuators ;-)
    The problem to be solved is: detect motor load. There is headroom for real innovation!
  • MicksterMickster Posts: 2,694
    edited 2014-04-23 03:26
    ErNa wrote: »
    fail-safe behavior is an argument. If a broken wire event is more likely than a short circuit event. So: it depends.

    I think you will be hard pushed to find a CNC machine tool with a normally-open E-Stop or O/T circuit. Even the dual-redundant safety relays which are pretty much a requirement today (SICK, Pilz, Telemecanique, et-al) are exclusively N/C
    ErNa wrote: »
    In the case of a cnc machine, limit switches should not be necessary at all. So you need still a home switch.

    Unless you go with an absolute encoder such as BiSS, SSI or EnDat
    ErNa wrote: »
    And in the case of steppers, homing often is done by running "enough" steps into one direction to be sure to reach the end. Watch the noise of headlamp actuators ;-)
    The problem to be solved is: detect motor load. There is headroom for real innovation!

    I will never consider steppers as I prefer closed-loop servo motors/hydraulic proportional valves. Hydraulic actuators where I have linear scales (no index), I simply stall-out at full stroke for homing. I can do the same with motors (those with incremental encoders) by limiting the torque and waiting for the encoder counts to stop changing or monitoring following error increase. 99.9% of cases, I look for a home sensor to indicate "rough" position then proceed to search for the index pulse.
  • MicksterMickster Posts: 2,694
    edited 2014-04-23 03:41
    @Bruce

    What kind of resolution/repeatability can you get with the old Sharp displacement sensor...I mean the short-range one?
  • idbruceidbruce Posts: 6,197
    edited 2014-04-23 04:36
    Enter NFPA 79 - Here we go :)

    Yes, in real world applications, loss of life can and does happen, especially with large industrial machines. How does NFPA 79 define "hazardous condition"?

    @Mickster
    What kind of resolution/repeatability can you get with the old Sharp displacement sensor...I mean the short-range one?

    Ahhh, you must have discovered one of my unfinished project threads. A while back, I purchased all the parts necessary to put the Sharp 2D120X and the Sharp 2Y0A21 through some serious testing, and I even machined some parts for this testing, but as it stands, the parts currently sit on a table untested. A gentlemen by the name of Mark Harris from Ascended International, did some serious testing, and he also wrote some come code that looked good for these sensors, and I believe he was claiming accuracy within 0.5 - 1mm, but upto this point, I have not yet verified it. However the parts are still on the table and have not yet been put back into the parts box, so I would imagine that I will eventually get to it.

    So what are your thoughts with these sensors?
  • ErNaErNa Posts: 1,752
    edited 2014-04-23 04:56
    Do it better with a propeller
    OK, I believe we do not discuss standard CNC machines, but think about small home made equipment. In a large machine you can save wires by going from switch to switch. And: by doing a "home" the reference has to be found, that I see as "home".
    Now look for this: somebody switched off the machine with the X at - and Y at + endswitch. An algorithm will drive a first motor and you will never see a signal ;-)
  • Mark_TMark_T Posts: 1,981
    edited 2014-04-23 05:16
    Ken Gracey wrote: »
    I'll give one piece of advice - take it or leave it. If you're cutting aluminum you absolutely need flood coolant. While mist systems are a good start, they are not nearly as effective as flood coolant systems. And once you have coolant, you'll be damaging whatever over-travel switch system you install. Limit switches and optical sensors must be fully shielded and enclosed from coolant, else it's just a matter of time before they fail. Large, professional machines have carefully designed these into their systems with force-feedback sensors of several types, but this issue often plagues the home shop machinist.

    Ken Gracey

    One reasonable approach is inductive proximity sensors which are both sealed and
    very cheap (on eBay: http://www.ebay.co.uk/itm/1-5Pcs-LJ12A3-4-Z-BX-Inductive-Proximity-Sensor-Detection-Switch-DC6-36V-NPN-4mm-/291124906644?pt=UK_BOI_Electrical_Components_Supplies_ET&var=&hash=item43c8658a94 )

    They seem to be pretty repeatable as homing sensors and have a few mm spare between sensing distance and
    crashing distance and presumably never wear out.


    As for position sensing I've played with some of the linear magnetic encoders from Austria Microsystems
    like the AS5306 which can make a scale using special magnetic strips - seem to be a reasonably robust
    technology if not generating ferromagnetic chips/swarf. They have the nice feature of reliably registering
    the start of the magnetic strip so that the ends of the strip can be used as limits.
  • MicksterMickster Posts: 2,694
    edited 2014-04-23 05:22
    idbruce wrote: »
    Ahhh, you must have discovered one of my unfinished project threads. A while back, I purchased all the parts necessary to put the Sharp 2D120X and the Sharp 2Y0A21 through some serious testing, and I even machined some parts for this testing, but as it stands, the parts currently sit on a table untested. A gentlemen by the name of Mark Harris from Ascended International, did some serious testing, and he also wrote some come code that looked good for these sensors, and I believe he was claiming accuracy within 0.5 - 1mm, but upto this point, I have not yet verified it. However the parts are still on the table and have not yet been put back into the parts box, so I would imagine that I will eventually get to it.

    So what are your thoughts with these sensors?

    Just that I never rely on a switch or prox sensor for a reference (although there are very precise devices available). I remember you were experimenting with the displacement devices because I have also been interested in them. Just wondering if they could be good candidates for a home sensor.

    I might be wrong but I thought that there was a very short-range version.

    Do you know if the 0.5mm was a device stability issue or was he using the long-range model and/or a low ADC resolution because that seems pretty sloppy in this day and age?
  • idbruceidbruce Posts: 6,197
    edited 2014-04-23 05:28
    ErNa

    When I started this thread, it was my intention that this thread discuss both small and large machines, especially since industrial machines have a lot of thought and design time put into them.

    I believe you are correct, and that eventually an unforeseen scenario will creep up with a "gotcha". It has always been my opinion, that a multi-axis machine would require more than one Propeller chip, and why not just design for two, especially when there are several advantages to be gained, such as additional pins and cogs. Direct hook-up of individual sensors to individual pins would be the easiest to wire and understand, especially in the case of troubleshooting a problem. Troubleshooting can become quite difficult when items are wired in series. However as Mickster pointed out:
    Parallel does not provide fail-to-safe. If your system is waiting for a contact closure but the circuit is open due to a broken wire or loose connection, the O/T becomes ineffective.

    This is the reason that E-Stop and Machine-Hold actuators run in series, through N/C contacts.

    There will be times when series wiring is beneficial and I will have to put some more thought into his comment above.

    My personal preference would be that each sensor has it's own input pin. And as far as processing goes, especially for multi-axis CNC, the more cogs the better. For a machine to go fast and simultaneously process G-code, there will have to be some serious number crunching. Even in the best case scenario of saving pins, I cannot imagine a fast multi-axis CNC from a single Propeller, especially if it is parsing and processing g-code commands. However I could be wrong about that, and I will have write code and experiment to see what can be done.
  • MicksterMickster Posts: 2,694
    edited 2014-04-23 05:36
    Mark_T wrote: »
    As for position sensing I've played with some of the linear magnetic encoders from Austria Microsystems
    like the AS5306 which can make a scale using special magnetic strips - seem to be a reasonably robust
    technology if not generating ferromagnetic chips/swarf. They have the nice feature of reliably registering
    the start of the magnetic strip so that the ends of the strip can be used as limits.

    Any Idea of cost of these, please? I Googled but no luck.

    I have been using the Sony Digiruler since the early '90's but the reader-head and converter-box alone costs me $500+ and the tape is per metre.
  • idbruceidbruce Posts: 6,197
    edited 2014-04-23 05:44
    Mickster

    I could be wrong about the 0.5mm, it could be much better, but I forget the specific details. I have the code for three different sensors, the Sharp 2D120X, the Sharp 2Y0A02, and the Sharp2Y0A21. If you like, I can provide it here, because I am not certain if it is in that thread from long ago.

    Here are links to two of his videos, I am sure he gets into the specifics that I cannot remember.

    http://youtu.be/ghwU8gVr0yQ

    http://youtu.be/Uw9Os4-Tewk
  • ErNaErNa Posts: 1,752
    edited 2014-04-23 06:41
    idbruce,
    the cheapest thing we have is a propeller chip. But up to now nobody managed to have a simple, expandable system just to have more i/o, .... At least: such a product was not a killer. Event Parallax didn't realize, there is some space on the back side of the quick start board, that easily could take one or two more propeller chips, just connected to the masters clock and a daisy chain to download code. Only the pads, not populated. OK, it didn't do it either ;-( what I regret deeply!
    As I said: there is a chip, with the potential to detect stepper motor load, and in running the motor with minimum torque it will run much smoother, show less ripple in the machined or printed work piece, .. I hope to start soon to write a driver and test the capabilities.
    By the way: to exactly detect home, you can use an end switch and an indicator at the (stepper) motor. Whenever both are valid, you reached home. It is even possible to detect coincidence and then find the position, where the indicator changes state.
  • MicksterMickster Posts: 2,694
    edited 2014-04-23 07:15
    idbruce wrote: »
    Mickster

    I could be wrong about the 0.5mm, it could be much better, but I forget the specific details. I have the code for three different sensors, the Sharp 2D120X, the Sharp 2Y0A02, and the Sharp2Y0A21. If you like, I can provide it here, because I am not certain if it is in that thread from long ago.

    Here are links to two of his videos, I am sure he gets into the specifics that I cannot remember.

    http://youtu.be/ghwU8gVr0yQ

    http://youtu.be/Uw9Os4-Tewk

    Yeah, he just makes a comment about 0.5mm "accuracy" which is pretty vague. This could mean that it could be 0.5mm off relative to the actual distance but doesn't state if it is repeat-ably off.
  • idbruceidbruce Posts: 6,197
    edited 2014-04-23 07:19
    ErNa

    Yes, it is always nice to have more pins, but there are times when eight cogs just don't seem to be enough. I am now wondering what the most efficient design of a dual Prop board might look like. I believe two Props would do the trick, especially if you relied on a PC for sending commands, keyboard and mouse input, as well as providing a GUI with display. I personally have no interest in discovering how far we can stretch a single Propeller chip. I simply say, "Why struggle. add another Propeller".

    As a result of this ongoing discussion, I really don't believe that I need limit or homing switches for a 3D printer, but for a more complete design of a linear actuator, I should definitely add them, or at the bare minimum, have provisions for adding them. If I don't use limit switches, do I need one or two Propellers? I still think two would be nice for all the processing that needs to be accomplished, especially if adding a g-code parser. However, if a board were ever to be designed, I think it should include provisions for limit and homing switches.
    As I said: there is a chip, with the potential to detect stepper motor load
    Now that subject, is way beyond me.... I am sure there are several people that have probably dedicated years of their life working on that subject. Whatever the case, I wish you the best in your endeavors.
  • idbruceidbruce Posts: 6,197
    edited 2014-04-23 07:33
    Mickster

    I apologize for not having a better answer for you. I have thought about testing those sensors several times, but I never followed through with it. I might rig something up, when I get my actuators constructed. I have several linear encoders laying around from old printers, which would be very helpful in measuring the accuracy and repeatability of these devices.

    I think I gave up, because working with a 7-1/2 foot belt driven actuator was getting complicated. With smaller actuators, it would be much easier to test the short distance sensors. I will have to look at the specs of these sensors again to see if rigging and testing can be accomplished on the actuators that I will be constructing.

    EDIT: I would only be able to test the shortest distance sensor on the new actuators, after that, I would have to rely on the larger actuator.
  • MicksterMickster Posts: 2,694
    edited 2014-04-23 08:12
    Wouldn't it be cool if we could utilize a LEAP motion sensor.....I know, I know, I'll get me coat! :-)
  • Beau SchwabeBeau Schwabe Posts: 6,566
    edited 2014-04-23 08:59
    I know for the BIG industrial CNC machine (<- 10 ton size of a beetle Volkswagen) we have at the local Maker space there are resolvers on each of the motors (X,Y, and Z) that can dynamically dial in to incredible resolutions when going slow, but at the same time keep track of the coarse movement during high speed motions, by simply looking at the zero cross from the resolvers. A similar scheme is used for a metal lathe we also have in operation there. The output from the resolver is a differential sine/cosine relationship representing the rotational position of the motor at any given time. It essentially has infinite resolution governed only by the quality of the ADC reading the position. Because of the differential output, temperature variations, noise, etc. are mathematically canceled out.
  • ErNaErNa Posts: 1,752
    edited 2014-04-23 09:00
    idbruce wrote: »
    ErNa

    Yes, it is always nice to have more pins, but there are times when eight cogs just don't seem to be enoughI...
    Yes, you are absolutely right, that's what I wanted to say. Add another propeller. But even Parallax missed to come along with a board, that has the option to carry a second prop. As I said: the quickstart has plenty of space on the backside to have the footprint to solder a second propeller. That I see as chance missed.
    And with the driver chip: using it is quite simple, it a stepper driver with step and direction, and a SPI interface. So to run it is simple. But having micro step mode, etc it can be used in a more sophisticated manner.
Sign In or Register to comment.