element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • About Us
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
3D Printing
  • Technologies
  • More
3D Printing
3D Printing Forum Closed-loop control for low-cost 3D printers
  • Blog
  • Forum
  • Documents
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join 3D Printing to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • Replies 48 replies
  • Subscribers 334 subscribers
  • Views 8095 views
  • Users 0 members are here
  • closed-loop
  • servo-control
  • 3d-printer
Related

Closed-loop control for low-cost 3D printers

morgaine
morgaine over 11 years ago

A challenge given to Ben Heck in March of last year was "Challenge - cheap 3D printer" (design a 3D printer more cheaply), and that thread continues to receive replies to this date.  Unfortunately nobody in that thread actually addressed the matter as a design issue.  Instead, most of the replies (including from Ben) seem to have addressed an entirely different question, how to build the same kind of 3D printer as you can buy today, but for less money.

 

Those are two completely different questions.  It was pointed out by Ben that because of the race to the bottom by a huge number of manufacturers, the current designs can't be made a lot cheaper while still retaining the same speed and accuracy.  That's probably correct with respect to current standard designs, but it says nothing at all about different designs.

 

So, this thread suggests a different design approach that may offer a solution, and it's a pretty natural step to take.

 

A useful observation with which to start is that the accuracy and precision obtainable with today's RepRap-style models stems from the design of their stepper motors and the limitations inherent in screw drives and belts and pulleys and the rigidity of their physical construction.  Because of this, if you retain the existing design model but in the quest for lower cost you compromise on one of these areas, you are very likely to lose the necessary degree of printing accuracy even if you are performing steps at very high resolution, so that's not likely to be a good way forward.  Printing with high precision in the wrong place is not helpful.

 

That observation about accuracy and precision leads us directly to a solution though.  Engineers know full well how to gain high and definable accuracy without each of the components being manufactured to extreme tolerances, and that's by using closed-loop control with negative feedback, the basis of servo-systems.  In a closed-loop system, the only thing that needs to be highly accurate and with known precision is determination of current position, and the heart of that need be nothing more costly than a very accurately printed graticule which can be produced for pennies.  Given the ability to know where the operating head is located very accurately in each relevant axis (not necessarily Cartesian), the only other requirement for maintaining that limit of accuracy is rigidity of coupling between sensors and operating head, ie. the hot end in a 3D printer.  Very importantly, there is no need for rigidity in the motor assemblies --- as long as they're moving the head in the right direction, that's good enough.

 

So, I'll recast the original question differently and tie it to this specific way forward:

 

"How can we design a 3D printer based on closed-loop control to gain high accuracy and overcome low cost construction through use of negative feedback?"

 

It's mostly a matter of examining alternative physical arrangements to find one with good rigidity while also having low suspended mass and being amenable to construction with today's open-loop 3D printers as a stepping stone.  It's worth pointing out that virtually all 2D inkjet printers already use closed-loop control --- if you take one apart you'll find a positional sensor and fine graticule in there somewhere to provide very high accuracy in one dimension at the lowest cost.

 

Once we start thinking about closed-loop control for 3D printers, many possible advantages start to appear:

 

  • As already mentioned, it compensates for low-quality parts, so prices could fall much lower.
  • Closed loop operation compensates for latitude at assembly time as well, also leading to lower costs.
  • Very much higher accuracy than we have today is possible, and that cannot be done open loop.
  • Motors of many different kinds can be used, AC, DC, brushed, brushless, linear, and also steppers.
  • If steppers are used in a closed-loop system, you can overdrive them without worrying about "lost steps" because the steps aren't used for position control anyway, yet you still retain the advantage of high holding torque.
  • Much higher speeds are possible than we have today because of the two-fold advantage of wider motor choice and arbitrarily high acceleration while the control loop seeks to its desired position.
  • Accuracy and precision are more independently controllable in closed-loop systems.  This provides more opportunities for cost reduction through tradeoffs, as well as dynamic optimization in favour of speed, for example on in-fill.  In open-loop printers with stepper motors, the step size places a limit on precision of positional control, but this is very rarely reflected in the accuracy of actual positioning which is primarily determined by physical construction.

 

I'm sure there are many other benefits.

 

The main disadvantage is that this direction requires new thinking, new solutions.  And there's the challenge! image

 

Morgaine.

  • Sign in to reply
  • Cancel

Top Replies

  • morgaine
    morgaine over 11 years ago +3
    The topic above is deliberately open-ended and proposes nothing more than closed-loop control, hopefully to encourage people to think laterally and very widely instead of being shackled by a specific construction…
  • morgaine
    morgaine over 11 years ago in reply to Former Member +2
    I'm talking about making the work head's position be determinable to high levels of accuracy --- the distinction between accuracy and precision is important in this context, because we need to know the…
  • vsluiter
    vsluiter over 11 years ago in reply to morgaine +2
    Hi Morgaine, It's what Nanotec is already selling for industrial use: stepper motors driven as 2-phase brushless DC motors. Very nice features as high torque, high accuracy, low noise....
Parents
  • morgaine
    morgaine over 11 years ago

    The topic above is deliberately open-ended and proposes nothing more than closed-loop control, hopefully to encourage people to think laterally and very widely instead of being shackled by a specific construction.  The range of possibilities is enormously varied, probably infinite.

     

    I will however express my own preferences, which are much narrower and more tightly directed.  Please don't be constrained by the following.

     

    Personally, I think closed-loop 3D printers need to head in the direction of direct drive, avoiding intermediate transmission components as much as possible.  Not only would this eliminate loss of rigidity and the severe problems of slip and play and backlash, but it would also open up the possibility of printing our own motors using pancake designs (effectively linear motors arranged in a circle).

     

    This direction is not in the slightest bit easy, but the elimination of transmission components would make this approach more viable at MEMS scales, which are on the path towards which all engineering is leading:  nanotechnology.  The machinery which builds the machinery which builds the machinery which builds the machinery ... of nanoscale systems is in our grasp right now.  It's going to be an interesting voyage.

     

    Morgaine.

    • Cancel
    • Vote Up +3 Vote Down
    • Sign in to reply
    • Cancel
  • Former Member
    Former Member over 11 years ago in reply to morgaine

    so your suggesting that you use servos with encoders? thats dandy and all but its much more complex to set up being that as far as i know (which is verry little i will admit) there arent any programs as side from mach3 that will read encoder data not only that but the reason most people sue steppers today is because they are much cheaper and simpler to use in simple hobbycraft

     

    if you are talking about for the wave of commercial 3d printers? well Great! i definitely see the benefit to useing encoders to determine position it will provide more accurate movement and possibly a better print quality

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • morgaine
    morgaine over 11 years ago in reply to Former Member

    I'm talking about making the work head's position be determinable to high levels of accuracy --- the distinction between accuracy and precision is important in this context, because we need to know the true position of the hot end when printing.  Inferring head position from the commands we've sent to the motors is absolutely not adequate --- that's open loop operation.  Whatever means are used to move the work head (it's not limited only to hot ends), the motive force should be part of a closed-loop system to reduce the error signal between where you are and where you want to be, as determined by the work head and not by the motors.

     

    There is no difference in setup complexity.  In fact closed-loop systems generally require less calibration since the whole idea is that negative feedback should compensate for the work head being in an unexpected place --- that includes being in the wrong place because of latitude at assembly time.  Good design of positional sensing corrects a huge range of cumulative errors quite automatically.

     

    Commercial servomotors containing encoders employ the same approach but are not needed here.

     

    My interest lies entirely in individual empowerment, and whether the commercial sector picks it up or not isn't particularly interesting except that it might lower the cost of components.  In the end, the future is in our own hands, regardless of where companies want to go for profit.  It's unlikely and would be surprising if the same solutions were best for both.

     

    Morgaine.

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • Cancel
  • vsluiter
    vsluiter over 11 years ago in reply to morgaine

    Hi Morgaine,

    It's what Nanotec is already selling for industrial use: stepper motors driven as 2-phase brushless DC motors. Very nice features as high torque, high accuracy, low noise....

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • Cancel
Reply
  • vsluiter
    vsluiter over 11 years ago in reply to morgaine

    Hi Morgaine,

    It's what Nanotec is already selling for industrial use: stepper motors driven as 2-phase brushless DC motors. Very nice features as high torque, high accuracy, low noise....

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • Cancel
Children
  • morgaine
    morgaine over 11 years ago in reply to vsluiter

    Victor Sluiter wrote:

     

    It's what Nanotec is already selling for industrial use: stepper motors driven as 2-phase brushless DC motors. Very nice features as high torque, high accuracy, low noise....

     

    The NEMA 23 steppers in my Shapercube still-in-construction are from Nanotec, model ST5918M1008-A.  Do you have the model number of the ones to which you're referring to hand?

     

    Morgaine.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • vsluiter
    vsluiter over 11 years ago in reply to morgaine

    You'd have to be able to put an encoder on the rear shaft of the servo, and then use their drivers. Here's some more background info:

    http://en.nanotec.com/products/1034-smci33-stepper-motor-drive-with-closed-loop-controller/

    http://en.nanotec.com/support/application-notes/closed-loop-description/

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • Cancel
  • morgaine
    morgaine over 11 years ago in reply to vsluiter

    Victor Sluiter wrote:

     

    You'd have to be able to put an encoder on the rear shaft of the servo

     

    In other situations, sure, but not for our purposes here.  It's not the shaft position that we're trying to control closed-loop, but the position of the work head.  A servomotor with attached encoder could certainly be used as a shaft driver instead of a dumb motor, but in that case the work head is being driven open loop by the servosystem, not closed loop.  This is what I meant in my answer to Chris.  Just because some component of a system uses feedback internally doesn't make the overall control regime closed loop.

     

    To provide a work head with closed loop positioning, the work head needs to generate the positional information itself, and that is fed back to the control amplifiers and drivers.  The exact physical arrangement will depend on mechanical construction, but a very common design is to scan a linear graticule lying along each axis of movement of the work head, for example optically.  Success requires the tiniest movement of the work head in any one dimension to be detectable as a proportional change in the corresponding sensor output, regardless of whether the corresponding drive motor has moved at all.  This would produce a feedback error signal even if caused by unintended coupling between axes, non-rigid assemblies, thermal and other environmental creep, and so on.

     

    Encoders on motor shafts solve almost nothing in 3D printing other than detecting lost steps if steppers are being used, which is the least of our problems.  In the context of the work head, that's still open loop operation.

     

    Morgaine.

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • Cancel
  • vsluiter
    vsluiter over 11 years ago in reply to morgaine

    Hi Morgaine,

    I catch your drift, and you're right in most of what you say. Has anyone ever looked at the (incremental) postion feedback which can be found in inkjet printers?

     

    Where I have to correct you a bit, is that "it solves almost nothing", because it does reduce the 'jerkiness' of movement, which reduces vibrations. Also the resolution can be improved (<<0.9°). Especially the first one can be a major benefit.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • michaelkellett
    michaelkellett over 11 years ago in reply to vsluiter

    The problem with "motor/some kind of leadscrew/sensor for feedback" linear positioning systems is much more difficult to solve than just having a good position sensor at the end. Indeed with simple leadscrews overall feedback may give no benefit compared with motor position feedback. This is because overall feedback can't deal with backlash, dead zones or mechanical hsytereisis very well. To overcome these problems you need to use ball screws and/or preload but these are expensive. As I referred to earlier we have literally hundreds of years of refinement built into modern machine tools.

     

    At least some inkjet printers work in a slightly different way which would be applicable to some additive 3D techniques but not all. No attempt is made to precisely control the position of the print head but it is traversed at about the right speed and the sensor is used to measure exactly where it is at any given instant and the ink squirted accordingly. This is a nice technique where it can be applied because it sidesteps the issue of backlash and precise position control.

    It wouldn't work with toothpaste style 3D printers because the position of the head must be precisely and accurately controlled at all times and it won't work where the load is variable.

     

    MK

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • vsluiter
    vsluiter over 11 years ago in reply to michaelkellett

    Hi Michael,

    Good point, thanks!

    The feedback at the motor axle could help here because the speed (or better: accleration) of the motor could be controlled much more, thus making the movement smoother, and if you know what the next G-code is, you could take care to slow down the head in time to prevent overshoots. Don't know in how far that's implemented in current 3D-printers. Dead zones might also be somewhat compensated if known... I agree that that's a very hideous EE-domain fix for a Mechanical domain problem....

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • morgaine
    morgaine over 11 years ago in reply to michaelkellett

    Michael Kellett wrote:

     

    overall feedback can't deal with backlash, dead zones or mechanical hsytereisis very well.

     

    It certainly can deal with backlash, so I'd be interested to read anything suggesting that it can't do it very well.

     

    The reality is actually the opposite:  overall feedback returns an error function that contains (as a component) the actual backlash experienced by the work head, instead of a simplified error function that encompasses only a limited set of transmission components and/or which deals with each axis separately.  The needed information is certainly there.  It's a lot harder to interpret this actual feedback of course compared to simplistic single-axis feedback obtained nearer the motors, but it's the real thing, not an approximation.

     

    In contrast, motor or feedscrew-level feedback isn't really closing the loop at all from the PoV of the work head, and so it can't compensate for unplanned interactions between axes and other structural problems, as it simply gets no data on them.  The consequence of this is that very high quality construction is still mandatory to avoid the unmonitored anomalies from appearing in the first place in such a half-open-loop system, which of course precludes its use for the subject of the topic, namely "low-cost 3D printers".

     

    Morgaine.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • michaelkellett
    michaelkellett over 11 years ago in reply to morgaine

    First let's get our definitions in order, from Wiki:

     

    in mechanical engineering, backlash, sometimes called lash or play, is clearance or lost motion in a mechanism caused by gaps between the parts. One source defines it as the maximum distance through which one part of something can be moved without moving a connected part. An example, in the context of gears and gear trains, is the amount of clearance between mated gear teeth. It can be seen when the direction of movement is reversed and the slack or lost motion is taken up before the reversal of motion is complete.

     

    Note that bit about "can be moved without moving a connected part" - if the actuator is pushing the load along and needs to reverse the force (for whatever reason) the actuator must move back by the backlash distance. In any real system this takes time and no amount of feedback and no amount of cleverness of control algorithm can do anything about it (the time is set me purely physical constraints). You can try to minimse the effect of backlash by having a very fast slewing actuator but this often results in instability and increases costs. The problem is that in the backlash or dead zone the actuator is not connected to the load so in the time it takes to reconnect the load is uncontrolled.

     

    Clever strategies to try to and reduce the impact are possible (and routinely and instinctively used by manual machine tool operators.). Under some conditions it is possible to ensure that the direction of applied force never changes in a critical place but these restrictions are often inconvenient.

     

    A low cost mechanism may easily be so poor in it's mechnical performance that there is no gain in improving the control. Stepper motors are very poor at fast dynamic control so I can easily believe that there are many cases where control of the stepper motor shaft is no worse than attempting to control the load position, but at least has the advantage of cheapness and robustness (robust in control stability sense).

     

    MK

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • morgaine
    morgaine over 11 years ago in reply to michaelkellett

    Michael Kellett wrote:

     

    Note that bit about "can be moved without moving a connected part" - if the actuator is pushing the load along and needs to reverse the force (for whatever reason) the actuator must move back by the backlash distance. In any real system this takes time and no amount of feedback and no amount of cleverness of control algorithm can do anything about it (the time is set me purely physical constraints). You can try to minimse the effect of backlash by having a very fast slewing actuator but this often results in instability and increases costs. The problem is that in the backlash or dead zone the actuator is not connected to the load so in the time it takes to reconnect the load is uncontrolled.

     

    That's a very actuator-focused view (instead of being concerned mainly with the work head), and it's also a time-focused view whereas our main concern is that the work head be in the desired position (time is not the key requirement).  It's entirely normal to trade off time (speed of operation) to lower the cost of end products --- this is why low-end 2D printers are slower than higher end ones.

     

    In order to get the work head to a desired position in axis X, the only requirement on the drive train is that this position is reachable in a monotonic traversal using actuator X.  It is not a requirement that the position be reachable by tiny bidirectional increments of the actuator which would litter the workspace with dead zones --- backlash in a given axis is taken up at the start of a movement in one direction in that axis.  The control loop doesn't even need to know that backlash exists in the drive train, because all it's concerned with is reaching its seek position --- backlash just looks like some extra sluggishness in reaching the desired point.  If the backlash is severe enough that it's noticeable at the work head as bumpiness in the extruded plastic at points where there is change of direction, then the control software just needs to reduce the feed rate at the start of changes of direction.  This is no big deal, and it shouldn't be presented as a terminal stumbling block.

     

    I think we may be looking at two very different goals, one (the topic of this thread) which is creating 3D printers at very low cost by closing the loop at the work head to compensate for less than ideal components, and two, making industrial machinery with good open-loop performance, which is extremely interesting in its own right and contributes hugely to the thought process, but is not the end purpose in this thread.

     

    Morgaine.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • vsluiter
    vsluiter over 11 years ago in reply to morgaine

    It's the difference between kinetics and kinematics.

    If the dead zones are known, then you can easily add that in your control scheme. Not perfectly, but still. Otherwise, adding an accelerometer to the end of your tool head might tell you a lot about the accelerations in the head, and can at least tell you when it starts moving. That, combined in a filter with a stepper motor and a control algorithm might already give a great performance boost.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube