Slashdot Mirror


Servo Stock 3D Printer Brings Closed-Loop Control To Reprap

A limitation of current (affordable) 3D printers is their use of open loop controllers and stepper motors which limits reliability (drove the motor too quickly and skipped a step? Your model is ruined) and precision (~300 steps per revolution). A new project, Servo Stock instead uses cheap RC Servomotors combined with Hall Effect sensors, using a closed-loop controller to precisely position the extruder. The Servo Stock is derived from the delta robot Reprap Rostock (which is pretty cool even with stepper motors). The sensors give a resolution of 4096 ticks per rotation, and the controller can currently position the motors to within +/-2 ticks. They've also simplified the printer electronics by driving as much as possible from the controlling computer using Bowler, a new communication protocol for machine control. The Servo Stock also includes sensors for the hot end, presumably to be used to control the filament feed rate and temperature. The hardware models are fully parametric, allowing reasonably straightforward scaling of the design. Source for the hardware, firmware, and software is available.

A note on the video: the extruder platform is tilted in the video, but a project update indicates it was fixed by making the support arms more rigid.

12 of 56 comments (clear)

  1. this is cool by gl4ss · · Score: 2

    but bigger servos tend to cost more than steppers for same performance.

    if the encoders could be used with freely chosen dc motors - and the encoders be cheap when used that way - then it would be pretty nice.

    --
    world was created 5 seconds before this post as it is.
    1. Re:this is cool by plover · · Score: 2

      Don't think of it as "more expensive", think of it as "the price of precision." If you pay less today for the components, you'll pay more tomorrow in making scrap parts. Make your own tradeoff - would you rather get into cheap printing, and pay in terms of delays and waste, or would you rather produce more usable parts?

      At least if you pay up front, you've theoretically reduced the long term expense. The downside to that theory is: will today's 3D printer be the technology you want in 2018? If you think these machines will improve a lot in other ways in the next four years, adding extra costs today won't save you much if you're just going to replace it anyway.

      --
      John
    2. Re:this is cool by ShanghaiBill · · Score: 4, Informative

      Don't think of it as "more expensive", think of it as "the price of precision."

      It is not as simple as that. Stepper motors can use microstepping to improve their precision and stability. All you need is a controller with multiple PWMs (one for each phase). A $25 Arduino will work to microstep up to three two-phase steppers. "MIssing steps" is not a problem if you don't push the motor outside its performance envelope. The head on a 3D printer is not moving against variable resistance, so that should not be a problem. You could even slap an encoder onto a stepper, so you can detect and recover from missed steps. A servo motor has its own issues, such as gear backlash, that can make it less precise than a stepper in many applications. Servo motors vs steppers may be more for marketing than for real precision.

  2. Or dont overdrive the steppers by Gothmolly · · Score: 4, Interesting

    Stepper motors have known performance curves, so you could simply NOT send pulses to them faster than they can react.
    Or you can zero them (or your coordinates) periodically by returning them to their start point.
    Or you could have stepper motors AND a feedback loop.

    TL;DR - shitty printer design is shitty.

    --
    I want to delete my account but Slashdot doesn't allow it.
    1. Re:Or dont overdrive the steppers by Anonymous Coward · · Score: 4, Informative

      Or you could do ALL those things, which in non-hobbyist robotics is commonly known as "the bare minimum". I see a lot of industrial robotics in semiconductor fabs. The standard for the last 30 years has been:

      Use stepper motors of adequate torque, geared appropriately so as to have very high resolution,
      AND you use high-resolution encoders on the steppers,
      AND you check the end effector motion against fixed "home" positions with breakbeam or similar sensors.

      The software constantly compares the stepper commands with the shaft encoder reading. If they ever don't match, the tool instantly stops and thows the ubiquitous "encoder mismatch" error. If a home-position flag is ever missed, the tool freezes and throws the almost-as-common "robot position error" error. This is the bare minimum when you are moving around $10,000 wafers.

      The idea that 300 steps per revolution is "not enough" resolution is so wrong as to be not-even-wrong. That's why God invented gear ratios. If there is no space for gears or timing belts, use a harmonic drive. A very common configuration on AMAT cluster tools is a 500steps/rev 5-phase stepper with a 100:1 harmonic drive giving 50,000 steps per revolution.

  3. Move along nothing to see here. by daid303 · · Score: 3, Insightful

    Pretty much all lies from the start.

    First off, almost nobody is missing steps in their cheap 3D printers. They simply do not move fast enough for that to happen. And if they are missing steps you have a bigger issue, usually lots of friction somewhere.

    Secondly, 200 steps per rotation is normal for motors. However, the drivers everyone is using do 16x microstepping, good for 3200 steps per revolution. Accurate steps per revolution. That's better then 4096 +- 2 steps.

    You also lose the close coupling between the 4 axis that you need (the feed stock of the material is also an axis that you need to control), which is a big deal in running accurate prints.

    The cheap hobby servos will also have mechanical play, which will cause vibrations to be transferred to the head, which will result in a reduction of print quality.

    I'm also willing to argue that it's more expensive. But I didn't do the math on that part yet.

    (Who am I to say so? Just a guy who has been working at Ultimaker for 2 years. Kinda know what's needed for quality 3D printing at a low price and what's not)

  4. Re:Give Me a break by mrchaotica · · Score: 2

    Problems when so many technology companies don't use engineers to design their machines and hire the cheapest talent around.

    Perhaps we should stop referring to employees as "talent" when they don't have any.

    --

    "[Regarding the 'cloud,'] ownership was what made America different than Russia." -- Woz

  5. unnecessary complication by csumpi · · Score: 3, Interesting

    While it sounds like a cool project, using servos instead of steppers is just a bunch of added complication, cost and downsides.

    But first, let's be realistic: we are extruding plastic at several 0.1mm width. For example a 0.35mm nozzle has to lay down plastic at a minimum of about 0.4mm width to achieve good layer adhesion. So having 4096 steps per rotation on a servo vs 3200 steps on a stepper (200 steps * 16 microsteps) will make zero difference. (Although higher microstepping is also possible at the cost of power output and processing speed.)

    Then you add a whole bunch of electronic components, increasing cost and failure points. Brushes in servos wear out, needing replacement. And I'm sorry, but some cheapo small servos from RC cars will not be a replacement for the beefy steppers used in even the cheapest 3d printers. BTW, servos are a major point of fail in RC car, and a decent servo costs several times that of a nice stepper.

    Let's also think about what happens if there's a mechanical failure that would trigger a step being lost, for example a stuck bearing. A stepper would simply stop working. A servo would not stop until the encoder wheel reaches its position, so without some added safety system the servo would just commit suicide, burning itself down or chewing up its gears.

    Having said all this, my current reprap printer has yet to skip a step after several hundreds of hours of print time. So looking for a solution to a problem that doesn't exist?

    1. Re:unnecessary complication by csumpi · · Score: 2

      Did you see the speed in the video? That thing goes at max 10mm/sec. I print at 100mm/sec, no skipped steps.

      At some point, there are just limitations. For example how much plastic you can melt through the hotend.

      With speed you also face the biggest evil of 3d printing right in the face: acceleration. High acceleration is what makes a good print. More speed, more inertia, crappier prints. In fact skipping steps has not much to do with speed, and a lot more with the lack of acceleration.

      .

  6. Hall Sensors by drinkypoo · · Score: 2

    So you take a servo, which has a resistive sensor, and then you add on another sensor. Why not just take a motor and a gearbox, and add a sensor?

    --
    "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
  7. Steppers need higher voltages. by LoRdTAW · · Score: 3, Interesting

    I do a lot of industrial automation using steppers as they are very cheap and pretty robust for low speed work. In fact as we speak I am building a stepper indexer using off the self motors and drives.

    Steppers stall because they are driven faster than the current can build up in the coils. As a result, the torque drops off since torque is directly proportional to the current in the motors coils. The motor can no longer move its load so it simply stalls. This happens after missing 2 or more steps and even if you remove the load the armature is stuck until the current is shut off. All of these 3D printers are probably using 12 volts to the bridge drivers which severely limits their torque curve.

    One way to fix this is to increase the bus voltage to the bridge drivers. Industrial stepper drives mostly use 80-160V. Larger drives usually rectify the mains 120/240V AC and send it to the bridge drivers after some filtering. This allows the current to build faster and extend the torque curve further into the higher RPM's. But these are still stepper motors and they typically all drop torque after you go over 1000-2000 RPM. Remember, missed steps from resistance on the motor shaft is bad, it almost always leads to a stall.

    Stepper motors are an indexing type motor and have physical teeth cut into the armature which line up with the stator poles. You index the motor by turning the poles on and off in sequence and the armature follows, cogging into place as the magnetic field lines up. Most steppers have 200 steps per rev, smaller steppers can vary quite a bit. There are a few stepper out there with more than 200, the 5 phase steppers from oriental motor are an example with 1000 steps per rev. The step count per rev can be increased using what is called micro stepping. The steps get divided up by varying current to the poles to hold the armature between the two poles using fast PWM.

    Very rarely are steppers closed loop. If you command a stepper to move 200 counts, you will get 200 counts. The only reason you would need it is if you want to detect a few missed steps and compensate for it in your motion loop or detect a stall. The controller cant fix a stall unless it stops the current flows and starts over. And at that point you just ruined a part so its not much help.

    Servo motors on the other hand can run at very high speeds. Servo drives can supply extra current when necessary to overcome resistance and keep the motion smooth and on track. This is done via the velocity loop which calculates the speed from the encoder feedback. When the motor slows, current is bumped up to overcome the resistance. But its usually only for a fraction of a second. Too much resistance and the drives will stop with an over current fault. You need to slow your system down, reduce the load or up the motor size.

    Servo motors don't stall unless you lock up the output shaft which is usually a mechanical fault (hard limits hit, shaft coupler failure, bearing failure, etc.) or an undersized motor. And if you really want performance you get rid of the lead screws and rotary motors and go balls out with linear motors. They can achieve accuracies greater than 1 micron and speeds to 2+ meters per second. I have seen a few systems using them in person and its scary how fast they can gracefully accelerate and position a load.

    And torque? Man they have torque. I had a large XY table with little NEMA 23 500W motors snap the aluminum couplings like a twig. The drive went bad, lost sync and tried to launch the table to the moon. Even jammed the table guides and ball screw nut requiring me to un-stick it with a come-along. A real mess. A similar sized stepper would have stalled. That table can easily position 500+ pounds though most of our motion is low speed so we don't need huge motors.

  8. Bowler by wagnerrp · · Score: 2

    All designed using Bowler, a new communications spec for machine control, because with Modbus, and Profibus, and ProfiNet, and ControlNet, and DeviceNet, and CAN, and EthernetIP, and EtherCAT, and X2X, and Pamux, and all the dozens of other industrial communications protocols, surely we need one more, and they're going to do it right this time.

    Obligitory!