66% or better

Servo Stock, The Future Of 3D Printers

printerIf you think about it, the RepRaps and other commercial 3D printers we have today are nothing like the printers that will be found in the workshops of the future. They’re more expensive than they need to be, and despite the RepRap project being around for a few years now, no one has cracked the nut of closed loop control yet. [mad hephaestus], [Alex], and [Will] over on the Hackaday Projects site are working on the future of 3D printing with the Servo Stock, a delta printer using servos and closed loop control to build a printer for about a quarter of the price as a traditional 3D printer.

The printer itself is a Kossel derivative that is highly modified to show off some interesting tech. Instead of steppers, the printer has three axes controlled by servos. On each axis is a small board containing a magnetic encoder, and a continuous rotation servo. With this setup, the guys are able to get 4096 steps per revolution with closed loop control that can drive the servo to with ±2 ticks.

The electronics and firmware are a clean sheet redesign of the usual 3D printer loadout. The motherboard uses a Pic32 running at 80MHz. Even the communication between the host and printer has been completely redesigned. Instead of Gcode, the team is using the Bowler protocol, a system of sending packets over serial, TCP/IP, or just about any other communications protocol you can think of.

Below is a video of the ServoStock interpreting Gcode on a computer and sending the codes and kinematics to the printer. It seems to work well, and using cheap servos and cut down electronics means this project might just be the first to break the $200 barrier for a ready to run 3D printer.

Comments

  1. atheros says:

    3d printer for $200 or less is a noble goal. I hope it will be reached soon!

  2. medix says:

    Finally.. *real* feedback control!

  3. mat says:

    Servos? Really? And you’re going to use that to drive a delta bot? Come on, hackaday. How can you possibly fall for this stuff?

    • Legot says:

      What do you mean?

    • RobHeffo says:

      Closed loop servos with a 4096 count/rev to +/- 2 counts is a lot more accurate than steppers.

      Steppers in current 3D printers are an expensive hack to avoid the extra development pain of closed loop.

      Why do you think on serious n-axis CNC equipment everything runs on closed loop servos? Increased speed, torque and accuracy, all important things in a CNC machine even desktop 3D printers.

      There is no reason a closed loop servo system wont be a superior setup compared to steppers on a delta bot. Kudos to the designers for making it work.

      • medix says:

        Lets not forget that you can often get massive amounts of torque if you use the right servos. (and speed too!)

        I have to agree: Steppers, while easy, are a pretty big disappointment. ;)

        • One of the main reasons we went with the “hobby servo form factor” is that you can get a wide range of torque/speed/power options in the same physical interface. This means you can build up a robot with the cheap servos, and upgrade to higher speed ones later if needed without changing the rest of the design.

          • Z00111111 says:

            Haters gona hate.

            You set out to make a good, but cheap, printer and it looks like you’ve done well in that regard. Having the option to start cheap and upgrade easily is always good.

        • Also, with this package, you can select from a range of speed and power options with the same physical interface. You can design with cheap servos, and upgrade later if the need arises.

      • daid303 says:

        Expensive hack? The steppers in an average 3D printer cost 10 euro each, on low quantities. Try finding a decent servo system for that price.

        I’ve never seen a <10k machine run on servos. And I've seen a lot of machines.

        • You are forgetting the driver for the stepper. The electronics cost needs to be taken as a whole. You have the per axis cost, then the motherboard cost. Our system supports 8 axis of control with 3 heaters for $45. Each axis , (magnet, motor, gearbox, driver, encoder PCB, and cable) is ~$15.

          Compare with $120 for a 4 axis motherboard with 2 heaters, and $23/stepper to match spec.

          • daid303 says:

            Show the links and I’ll show you mine. Stepper + driver, ~20 euro, retail price. Single pieces. (So less then half that for bulk buy as a producer, even less if you put the drivers directly on your own board, as the driver chips are pretty cheap)

            I’ve never seen quality servos that can deliver this amount of torque and precision for anything less then 50 euros retail price. Hell, the only place that I know that I can reliably order servo motors from they cost 150 euro for a set including everything you need.

            Also, gearbox. We looked at gearboxed steppers, guess what, the gearbox adds none-linearity to your system. Every level of planetary gear that we had in the gearbox added a near sinus none-linearity into the system. This will show in the print.

            The $120 for the motherboard mostly goes into small scale production and retail pricing. Components on there only cost like $40-50. Never compare an assembled product to the price of parts.

          • Dax says:

            The accuracy of your steppers is questionable due to practical problems with microstepping (see below), and the non-linearity of a gear train is eliminated by placing the encoder at the gearbox output instead of input.

            Besides, you don’t even have to put the encoder in the motor shaft. You can directly measure whatever end actuator you have, so all the slack in the entire drivetrain can be eliminated.

        • Here is our costing sheet: https://docs.google.com/spreadsheet/ccc?key=0Amecq6Id5pywdGc1aVRKbW9NSEtCc2pjcUxUOWpaZFE&usp=drive_web#gid=3

          It does not include any of the in-house assembly or overhead costs, just parts.

          I have validated our position control to +-50 micron using a 100 fps Polaris optical tracker, so i am fairly confident in these accuracy findings. And, yes, this was with the $3.5 continuous servo from china (we did a lot of work on a discontinuous controller and auto hysteresis detection and canceling).

          That cost you find in the more expensive hardware is because every motor you buy will be exactly the same, and your simple controller need not do much work to use them. With out system, we “did the work” to measure and compensate for the low manufacturing tolerances in cheap servos.

          as for the gear box introducing non-linearity, that is ONLY with steppers because the encoding is in the software behind the stepper. When the gears backlash there is no feedback to the controller. With our system the encoding is after the gears. If there is backlash the PID deals with it automatically.

          • daid303 says:

            50 microns? You do know that’s a bit on the very high side in accuracy right? Especially when people are printing layers of 100 microns or less.

            Just an example, the Ultimaker (kit), has a measured accuracy of about 3 microns on the Z, and about 20 on the X/Y. (The theoretical accuracy is 12.5 micron for X/Y and ~2 for Z)

            Backlash = mechanical play/slob. Which causes vibrations to be transferred quite easy. Which results in ugly prints.

            (And the sheet says nothing. I could make a sheet like that with stepper motors and just put in random numbers)

      • andyT says:

        It’s “not a lot more accurate than steppers”. A 200 step/rev stepper, microstepped 256x gives you over 10x the positions of a 4096 encoder.

        And, if you’ve ever priced an optical encoder, you’ll realize they are 180 bucks apiece. A stepper is $10. A servomotor with any amount of torque also is not cheap – we’re not talking RC toy servos here, and even if we were, a stepper has more torque than any hobby servo for the same money.

        This one has my BS-o-meter pegged.

        • six677 says:

          Funny considering a DAGU rover 5 chassis uses optical encoders and the entire chassis costs less than 180 bucks a piece. Old roller mice used optical encoders and cost less than 180 bucks a piece. Current mice still use optical encoders for the scroll wheel and cost less than 180 bucks a piece. No idea what you are smoking, but I want some

          • ftkalcevic says:

            The dagu “optical encoders” have 2 photo sensors and a paper disk with 4 segments (16 counts in quadrature mode). http://letsmakerobots.com/node/24031.

            However, you can buy optical encoders starting from about $30 from usdigital. There are also the capacitive ones from CMG at a similar price. You can also DIY magnetic rotary encoders using a magnet and a AS5030 or similar.

        • ftkalcevic says:

          You are confusing resolution with accuracy. Increasing the number of microsteps doesn’t make a stepper motor accurate. In fact, stepper motors are pretty inaccurate. The alignment of the electric poles and magnet poles becomes inaccurate because of the low manufacturing tolerances – steppers don’t provide uniform spacing between full steps. Having more than 10 micro steps is a waste. (according to repeated comments on the geckodrive forums).

          An optical encoder that has 4096 etched divisions on the code wheel will have 4096 divisions evenly spaced.

          • lee says:

            Well said. I find that this is a concept that is not often recognized. Just because microstepping is labeled “1/16″ does not mean that the rotational increment will be exactly 1/16th of a step every time. It does reduce motor actuation noise and resonances. It also improves resolution — but you are also greatly reducing incremental torque in doing so.

            I suspect that in the CNC world, going beyond 10 microsteps is a waste because it degrades your incremental torque far enough in most cases that it can’t drive the cutting bit without accumulating several microsteps worth of torque… thus washing out your resolution anyway. Certainly this could still hold true for 3d printer extruders. For a perfectly aligned gantry, however, it may take very little torque to move.. but where that limit *is* exactly, depends on many little factors which are unique to each printer.

            The point is that without closed loop, you will never know if you are losing microsteps (unless you do a great deal of characterization on your printer and have a solid working knowledge of stepper motor theory). So to me, until this issue is really tackled at a similar cost (motor + control electronics), there is still an improvement to be made. So if you’re looking for a way to really contribute to open source 3d printing…. wink!

            I have not used it personally, but I had hoped that the open servo project would mature far enough to accomplish this. I’d encourage anybody to give it some attention. I’ve been watching it and I think with some more attention and participation it could have a place in 3d printing.

        • Dax says:

          Microstepping isn’t guaranteed to actually achieve the positional accuracy. When you microstep a stepper, it’s trying to hold the rotor in-between two steps by applying varying currents through the coils, but because it has no feedback, and because the difference in torque between the individual microsteps is so small, any load placed on the rotor will turn it off the mark. It’s like putting a sloppy helical coil on the shaft of the motor – you may pretend that driving it with particular parameters does something, but in reality you’re getting nowhere near the accuracy unless your load is extremely small.

          Furthermore, few stepper motors have perfectly sinusoidal response between the steps, so the microsteps aren’t all equal in size.

          With a closed loop servomotor, you’re guaranteed that the rotor is pointing where you say it should point regardless of the load on the motor because it is actively measuring the rotor position and compensating for the load.

          • Dax says:

            The holding torque between microsteps in a 256x microstepping motor is about 0.6% of the holding torque between full steps in the ideal case, so you can easily see how sloppy it gets when you add any load to the rotor.

            If your load torque is, say 25% of your step holding torque, then the effective accuracy of a 200 step, 256x microstepping motor is actually just around 4-6 microsteps or up to 1200 effective steps per revolution instead of the 51 600 steps in theory.

          • Dax says:

            http://www.micromo.com/microstepping-myths-and-realities.aspx

            “Simply stated, taking a microstep does not mean the motor will actually move!”

        • AKA the A says:

          Microstepping will not give you this kind resolution, even 16x microstepping does not produce the same step size every time, there is significant jitter…
          Apart from the jitter errors, you will loose speed and torque (both a problem if you want to run fast)…

          As for servos vs steppers, look at what ALL the inkjet printer use today (hint – it’s not steppers)…

          • NoPinky says:

            I openen a 8 year old canon MP390 some months ago, and all I found inside where steppers and an encoder tape. And I’m pretty sure that if I open my canon MP620 which is about 4 years old, I will find steppers too.

          • James says:

            Well canon must be the exception.

            Every inkjet I’ve pulled down, mostly dating back at least 5 to 10 years, has used a DC motor and encoder strip to move the carriage, and a DC motor and encoder wheel to move the paper.

            The only steppers in a typical inkjet are in the scan head.

        • >This one has my BS-o-meter pegged.

          Well its not an optical encoder, its a magnet hall effect encoder, which are much cheaper.

          While steppers have very high *holding* torque, their travel torque at speed) is terrible. The “skipped step” problem has caused 3d printers to need steppers that are much more powerful then would be needed if you could close the potion loop.

        • JB says:

          “This one has my BS-o-meter pegged.”

          Always wanted one of those :P
          http://2.bp.blogspot.com/-w5DeiOqgcjg/UmGBa9BGjFI/AAAAAAAAjBM/8CSgqsUfId8/s400/BS-Meter.jpg

      • “Why do you think on serious n-axis CNC equipment everything runs on closed loop servos? Increased speed, torque and accuracy, all important things in a CNC machine even desktop 3D printers.”

        I can tell you have not built or bought your own 3D printer yet. A serious N-Axis CNC equipment has very different needs then a 3D printer. With current 3D printers the resolution of a FFD 3D printer is not limited by the stepper unless the design is very deficient. It is limited by the tolerances of the linear motion system design, the nozzle diameter and print time constraints.

        Where servos would be nice in a 3D printer is in the print head with a filamend diameter measurement system ensuring perfect extrusion. In the motion system they might be able to do error correction in real time one day but the software and firmware need to come a long way first.

        • thantik says:

          CNC machines also move _WAY_ slower than current 3D printers. There’s plenty of time for that correction to take place. As someone who has experience with a 2.5D router using servos, and a 2’x2′ MendelMax using a servomotor on the Y axis (with a gigantic bed) the servo is using close to 1kw slinging that bed back and forth at anything close to the speeds we’re normally used to. I’m able to see the corrections that the GeckoDrive is making in order to keep the bed in the correct position. Servos have a lot more issues than people give them credit for.

    • John says:

      There are servos and there are servos.

    • medix says:

      I think perhaps you’ve mistaken the name ‘servo’ with the crappy PWM timing-based hobby servos. That term has been around long before it was coined for hobby applications. Technically, hobby servos use the same setup but with a specialized interface for control.

      • Chris C. says:

        Agreed. These servos are probably not the RC servos many people think of, which are designed for POSITION control. In this context it could mean any motor, but typically a continuous-rotation DC motor especially designed for rapid changes in SPEED and TORQUE. You add the feedback and control systems to get it turning the right way to achieve your desired position, and the end result can be much better than what you’d get from an RC servo.

      • jelle says:

        If you had taken a look, you had seen the cheap RC servos in there. They are modified to allow for continuous rotation. Basically it is just a cheap gearbox.
        The magnetic sensor is mounter after the gearbox, so you don’t get any backlash from it directly.
        Claiming servo’s to be inherently better than steppers is silly: it is the implementation that counts. It is nic they made a PCB that handles all encoder and PID stuff, but that pcb costs money too. A stepper motor has much more torque than a standard dc motor for a given power rating, so for cheap closed loop systems you usually go for a stepper with an encoder on top.
        You can brag about the resolution of the encoder, but if the motor driving it has too little torque you still have an imprecise system, you just know how far you are off. Inkjets use that feature to drive the nozzle firing on the actual measured position while it is moving, instead of moving to a certain point and holding its position.

        It would be cool though to use the encoder strip of an inkjet, but I’m pretty sure its resolution is much lower than what you can get with steppers. (as in, you can see the induvidual lines on there)

        • Dax says:

          That’s why servo motors are geared down, typically with planetary gears. You can always turn speed and power into torque, and given that you have a gearbox the stepper motor loses in power/torque AND speed as well.

          But if you want to run something straight off the shaft of the motor, then servomotors are no-go, because you can’t effectively control them at low speeds, and they lack torque as you pointed out.

        • Dax says:

          Besides, when you use a stepper motor with an encoder, you typically run it with sinusoidal variable frequency current from a power inverter to provide for seamless stepping, which turns it into a two-phase synchronous AC motor, which makes it a…

          …servomotor.

        • medix says:

          Again, I think we’re confusing ‘resolution’ with ‘accuracy’..

        • medix says:

          I did have a look, and that seems like a reasonable solution to me. While I agree that it is definitely application dependent, based on the microstepping discussion above, I have to conclude that closed-loop servos (whether driven by a stepper with two-phase synchronous AC [thanks Dax] or a gearhead DC motor) are still better. Positional feedback will *always* give better performance and much less error than an open loop system.

          There’s also the matter of power consumption and heat generation to consider when using steppers.

          • jelle says:

            “Positional feedback will *always* give better performance and much less error than an open loop system.”

            I call bullshit on that one. Always? So an encoder with two vanes on it will be more precise than an adequately (=over) dimensioned stepper setup?
            While you are right about closed loop having more accuracy-potential, there is no control systems fairy that magically makes all closed loop systems better. How you drive your closed loop is another discussion, and your choice of implementation also plays a part in the overall precision.

          • daid303 says:

            Too bad that gearboxes will totally ruin any decrease of error you gained with the closed loop. Gears add play. Play + vibrations = bad print. Simple as that.

          • lee says:

            Depends on where the encoder sits. A gearbox can be compensated for in closed loop when you have real feedback on what the motor shaft is actually doing. Your comment about the gearbox slop would be true in an open loop system. Not necessarily so for closed loop.

          • Dax says:

            “I call bullshit on that one. Always?”

            Yes, because closed loop implies that you’re running some form of control over the position. Otherwise what would be the point?

            Open loop control cannot guarantee that the position of the rotor is even within the same revolution because the load may cause it to slip an arbitrary number of turns while the software is completely oblivious to the fact. The need to oversize the motor because of this is itself a problem that counts in giving the servo motor better performance, because you don’t need to give it such a huge safety margin.

            A closed loop controller would notice the slip and increase torque to wind it back.

      • In fairness, it actually is using the “crappy PWM servos” but i have done a lot of work to make them less crappy. the first thing i did was implement a “discontinuous controller” where the controller discovers using the encoder the dead-band of the motor at run time. This allows it to behave like its a nice motor. We are stuck at 20ms for the lower bound on the velocity updates to the motor, but in between updates it moves at a constant velocity, allowing the controller to assume velocity control.

        • rasz_pl says:

          Have you looked inside those servos? maybe you can update firmware to openservo, and thus have full controll of the motor oevr fast I2C link
          http://openservo.com

          • alex says:

            Cracked em open, They’re not digital servos. Analog IC and transistor H bridge. The software tries to compensate for as much as possible but it is still limited by the electronics.

            For version 2 I would like to make 2 changes. pads for a H bridge and a small micro talking to the main board (maybe a STM32F030 and a SN65176BDR)

            All and all it would add about a buck to an axis but it would simplify the controller board and would still be compatible with RC servos out of the box but one could gut the servo and solder on a h bridge for increased performance.

    • squeeks says:

      I wouldn’t be using an RC servo. But to give them their dues, the model they have selected is rated at 15Kg-cm. The original Kossel had 16.2Kg-cm stepper motors.

      As they are using a separate encoder, they could drop in (with a little bit of re-thinking) a nice little DC motor with a planetary gearbox or similar…. it’s probably going to be more expensive than these $3.9 servos, but it will also work a lot better.

      ReprapRich has been playing around with replacing belts with fishing line to further reduce costs, so that might be something to consider.

    • Jeroen says:

      They’re not talking about RC servo’s. Read this: http://en.wikipedia.org/wiki/Servomotor

    • MRE says:

      Industrial servos with built in feedback have DVD like positioning.. in part because they use optical platters of the same technology in the encoders. So.. yes, with some fine tuning, even medium grade hobby servos can be modded to much higher precision than a stepper.

  4. Jeroen says:

    I was interested in this as well, but found linear encoders to be prohibitively expensive. The best I could think of was sourcing a few second-hand (broken) consumer grade printers, and use the optical encoders used in them. Not a trivial task to get something working with those though.

    • AKA the A says:

      My exact thoughts :D
      The optical encoders in those printers are actually quite nice, most of the time it’s even possible to hack out the entire “zero-backslash” gerbox along with the motor…

      btw some printers use a stationary transparent encoder strip (which is tensioned by a spring) and instead have the sensor on the print head…that strip should be doable with a nice laser printer and a pair of scissors :D

      • MRE says:

        No scissors needed. Just etch then cut. In fact, take a large transparency sheet or similar, etcb the whole thing, then slice out 20 or more strips.

        Or how about polarizing film.

        Now I want to experiment!!!!

    • jelle says:

      true, most encoders are expensive. But stepper motors did cost much more a few years back too. But we do need projects like this to find ways to make high resolution servos cheaper. Personally I would go for a driver board that mounts on the back of a stepper motor, as these deliver the most torque without a gearbox. Combining the sensor with the driver will reduce the parts count (==~cost) a little more.

    • Dax says:

      Look for ADNS optical mouse encoders. You simply need a belt running over one, and it’ll give you the relative distance travelled since you last polled the chip. You can also do two-axis measurement, like travel along a rod while measuring how much the rod rotates.

      They are reasonably accurate and fast, but you do have to mind that they may drift, so you need some known calibration marks along the belt that you can read to check your drift. Fortunately you can read the pixels straight out of the camera as well to spot the calibration mark.

      • alex says:

        Go for it, Cool sensing technologies are pretty awesome but we are spread pretty thin as it is. But the cool thing about this community is that people can just try things and share their results.

        I have a friend who is working on another type of sensor based off of the way calipers do things. It’s a neat design that can be printed on PCBs but we didn’t go that way because it’s pretty sensitive and does not like humidity (changes the dielectric properties of the air) and we would have to spend time developing the sensor electronics.

        We settled for the as 5055 because it’s pretty straightforward. The sampling of the 4 hall sensors, ADCs, and CORDIC algorithm are implemented on chip and you get an angle out off of it every 500us.

        • Dax says:

          The solution to the dielectric properties problem is to have an extra pickup strip which is assumed to be a constant, where the constant capacitance changes along with the environmental conditions and cancels out the difference in dielectric properties or distance of the pickups. (Think Wheatstone bridge)

          This is similiar to how when using strain gauge sensors, you glue one in the direction you intend to measure, and another right next to it perpendicular to the direction of strain where it won’t be stretched, because it compensates for the temperature effects on the first strip when placed in a bridge circuit. You essentially have the two strips in series as a voltage divider, and the voltage in the middle becomes independent of temperature because both strips experience the same resistance change over temperature.

    • lee says:

      You probably don’t need linear encoders. I’d think a rotary encoder would work. Some of the magnetic rotary encoders are very reasonable. I think you can get 16-bit rotary encoder IC’s for under $10… without having used one, I’d question that you can really get that kind of accuracy, but even if it’s 12-bits accurate, you’d still be hitting the 20x microstep mark in both resolution and accuracy.

      If you operate a stepper at 20x microsteps in open loop with load, you can’t be certain you are getting that resolution and you will certainly not get the accuracy.

  5. ftkalcevic says:

    I’ve never seen a delta printer with arms connected that way. One set parallel to the base, the other 2 perpendicular.

  6. Gregovic says:

    I’m now wondering if it would be possible to do the positional readout using readily available “cheap” Digital ReadOut units like this: http://www.ebay.com/itm/12-300mm-Horizontal-Digital-Quill-DRO-KIT-part-200-H12-New-/181184031861?pt=BI_Heavy_Equipment_Parts&hash=item2a2f68ec75 for position feedback. Even the cheap ones should be plenty accurate, and would give you feedback of the actual position after drivetrain feedback.

  7. pierremuth says:

    This $3M kickstarter project use close loop but with DC motors :
    https://www.kickstarter.com/projects/m3d/the-micro-the-first-truly-consumer-3d-printer

  8. flaminggoat says:

    I dont see how this is going to be cheaper than stepper motors. A decent metal gear servo is around $10 to start with, before it has been modified.

    • jelle says:

      True, but the goal was not to be cheaper from the start. That would be impossible unless you account no hourly wages for your (their) design and prototyping time. A reasonable stepper setup for one axis is ~12USD for the stepper and ~8usd for the driver. Since they only need the motive force in the rc-servo, they can be pretty cheap, even with metal gears in the later stages.

    • We actually source them as continuous rotation servos from the factory at $4 each with brass gears and dual ball bearings. Combined with the rest of the parts (encoder PCB assembled, magnet and ribbon cable with conncetors) it comes in at ~15/axis, with no additional driver on the PCB.

  9. sneakypoo says:

    Quite a bit of shaking and tilting going on with that print head, exactly what I was expecting. I’m guessing they’ll have to step up the quality of those servos eventually.

    • This has been mostly worked out using the calibration of each control loop. I can tune it by hand, but i want the robot to calibrate itself, and this takes much longer.

      As for the tilt, the end effector needed cross bracing and not to be run outside of the kinetically reachable work area…

      I will shoot for a better video later this week, subscribe to the project page for updates!

  10. Arkidddd says:

    So if you’re looking for a way to really contribute to open source 3d printing…. wink!

  11. lee says:

    I think this is great work. There are enough people who recognize the value of a closed loop implementation that once it is done well enough without being more expensive than a comparable stepper motor system, it will catch on quickly. This has been in my big bucket o’ projects for a while — so I’m glad someone else has been picking up my slack.

    I’m not sure I understand this statement though: “Instead of Gcode, the team is using the Bowler protocol, a system of sending packets over serial, TCP/IP, or just about any other communications protocol you can think of”

    I’m not familiar with the bowler protocol, but it sounds like a communications protocol.. not a commands protocol like gcode. If it does replace gcode, then why, given the large number of mature open source tools already available and being used by many thousands of people. Wouldn’t it be preferable to run a gcode interpreter on top of the closed loop compensation?

    • So we do support gcode, but the parser is on the PC side, not the firmware side. The Bowler communication protocol was (originally) our core project, the thing we developed as a stand alone robotics control framework. It is a high speed, arbitrary phy protocol that behaves like a domain specific language over a communications link. it supports full method reflection over the com link and can be run “driverless”. We have implemented this protocol in Java, C, Python, Ruby and Node.js.

      It has a full task based trajectory interface (just like gcode), but also supports arbitrary extension of additional features.

      • lee says:

        I see — that’s pretty cool. Is it based on a realtime OS or kernel layer?

        • It is actually just a few functions to to the protocol parsing, so it can be inserted into any application without needing any architecture changes. I wrote a small cooperative OS for the Pic32 that is focused on high speed communication using Bowler, but it did not need that much work to get it going.

          The idea is that given a rigidly defined communication arch can be live-parsed by your implementation language. By having a full reflection stack it becomes a “langauge”, or a RPC API with reflection.

  12. ianmcmill says:

    PATENT THIS MAKERBOT !
    Arrrrrrr !!!!

  13. matthew venn says:

    Great work, what an amazing project! Cool to see openscad in use and everything important on github. Though I couldn’t find a png of the sensor board.

    Interesting comments above too about steppers vs servos – I learnt something.

    Also, I never knew about this kind of sensor before – definitely one to remember.

  14. arthur says:

    Not Open-Source, useless to the community.
    There are people actually working on this, that will release their work as Open-Source, i’ll wait for that before making a Servo Printer.
    Also the claims about price seem like huge bullshit : The controller board ( remember it’s going to completely depend on the computer to run ) is stated at $125@qty1 and $66@qty5000, just for the parts. That’s much more than current stepper-based solutions. But maybe I’m not clear about what they mean with this price exactly.

    • That price is *with* the 4 axis of cables, servos, encoders and magnets. See the electronics tab for the breakdown of the motherboard alone costs. Compare that to a standard controller *and* the 4 steppers.

      • arthur says:

        I think your problem here is you are not aware of the current manufacturing costs of Reprap Electronics.
        Your solution costs $66@qty5000. Cost ( PCB, SMT components, Connectors, Placing, Testing, cables and stepper motors ) for a stepper-based solution is pretty much the same ( quick math gave me $68 with my current providers ). And here I’m talking about a board that is capable of standalone operation, usb, ethernet, storing gcode files etc …
        I really do not see the price reduction with your solution.

        • Do you have a spreadsheet for that $68 one? I would love to see where to get 4 16kg-cm steppers and drivers rated for that much current and motherboard for that much! We have already done the low volume production run, so our prices are more or less the final pricing.

          On the low end it is more about adding functionality at low per-axis cost and extremely low mass. Even with equivalent prices thanks to volume discounts, the moving mass of an axis can be much lower at the same performance. The driver and motor are one unit, so the motherboard scales from small to big with no changes. We even use the knurling on the servo to eliminate the hobbed rod vitamin…

          The major cost saving happens on the large router we are working on for the next machine using this framework. We use windshield wiper motors and Victor drivers. This is a huge savings, but it is not done yet so i do not have that in a spreadsheet yet…

          • arthur says:

            You can find one BOM here : https://docs.google.com/spreadsheet/ccc?key=0Api7_ZbfikkKdGRDblUwMDFWcm1CT2M2bENkQWpZZ0E#gid=0 though it doesn’t have any pricing information. This adds up to about $44@qty5000, as I said with PCB, Assembly etc … Steppers cost ~$6@qty5000 a piece, ( with custom connectors and cables ). That’s 44+24=$68.

            I’m not sure what you mean by ” our prices are more or less the final pricing “. Do you mean $66@qty5000 is your retail price ? I was undertanding it as your cost for just the components …
            If it’s your retail price it’s impressive ( or more likely you will quickly starve :) ).
            If it’s just your parts cost it’s extremely commonplace.

  15. Jimf says:

    I run both stepper and DC servo systems on my CNC’s. I use stepper and servo drives from Geckodrives. Each has there pros and cons. I find both to be more accurate than I can measure with my dial indicators. A properly designed stepper system should never loose steps while operating. BUT accidents happen, you run a axis into a hard stop, vice or collision into a part. A servo system will just fault out, a stepper will loose steps. In both cases you will loose your position anyway. Have to home the the axis and start over.

    Servos are more complicated to design. To get the most torque out of a servo motor, you must run them at high rpm and gear them down. My servos run at 3000rpm and I use 3:1 pulleys and belts. My steppers are direct drive and run up to 1000rpm reliably. Servos do cost more to implement because of the pulleys/belts and servo drives/encoders (which usually cost alot more than stepper drivers).

    To say servos are better than steppers is way to broad of a statement. You need to look at both systems and design/implement within your requirements. Stepper may in fact be a better design decision.

    Then there are brushless AC servo motors and drives which are much more expensive…I have some but haven’t found a good application yet for them. They are high speed and high torque. Probably overkill for you typical 3D printer.

    In my opinion using modified rc servo motors to move a linear axis may be to slow. Your typical rc motor is heavily geared down for higher torque. You will have slower acceleration and velocity then what you will want for a 3D printer. They may be a rc servo motor made that has high output rpm and torque but I haven’t seen one yet.

    • To be honest, i am not yet trying to be *better* then a stepper system, just to match it on specs for much cheaper. The small scale one is using small motors where the margins are tighter, but one set of electronics with motors and encoders and all is roughly $120. This puts the sub $200 printer in reach.

      I think a lot of innovation can happen is it is so cheap to add additional degrees of freedom to our tabletop robots. I have dreams of true auto-feed and pick and place integrated into the printing. And when less precision is required, the standard servo is even cheaper. As low as $1.75! It also opens up a framework where large cheap DC motors are available, like windshield wiper motors.

      There are also a vast selection of speeds and powers available in the “hobby servo” form factor. The controller would be able to use them just the same, no changes. This allows for flexibility in design, because the same physical interface works with a range of speeds and torques.

  16. JeanClaude says:

    Question: Have you ever had problems with loosing steps on you printer?

    Close loop is a good thing, when you have a CNC-Mill and forces so high, that they bend your screw threads.
    3D printers have NO process forces, no MASSES and so little acceleration, that anything other than a stepper is an overkill. (compared to a small CNC, with a 300kg spindle, that accelerates with 15m/s and process forces of xx-kN)

    The printing speed is limited by the extruder, so even if you had more torque, you would never be able to use it..

    • lee says:

      People do lost steps on their printer. If you’ve ever seen a picture of a print that “shifted”, then that is a lost full step.

      BUT — microsteps are a different story. You can continually “lose” microsteps and never lose a full step. This is possible because microstep angles are not a stable node within the motor itself. Your incremental torque is tiny with small microsteps — and if you lose one, you can regain it because the torque accumulates with further microstepping and usually eventually makes a step (or partial step or wherever it recovers). This will certainly create small artifacts in a print.

      It would not necessarily surprise me if motors in a 3d printer (especially the extruder), “lost” microsteps that the operator never realized.

  17. assdf says:

    Love these arguments:
    “APPLES are better!”
    “NO, ORANGES are better!”
    …when the topic is simply bananas in the first place.

    We know the capability and cost of stepper systems, right?
    Although closed loop control systems make more sense to me, I look forward to seeing how such systems perform in practice…and at what cost.

    Best of luck to you.

    • madephaestus says:

      Thanks, i was not expecting so many people to react to ditching steppers with a holy crusade!

      I also think most people missed the biggest issue of operating in the velocity domain vs the position domain. Having a system that naturally moves smoothly between motion commands using the velocity loop could be a major change in the achievable print quality.

  18. Peachy Printer!

  19. valley_nomad says:

    The issue with DC motor controlled by PID closed loop for 3D printer is that, in the same price range, the control loop usually can not run fast enough to provide the same printing speed as that of existing 3D printers deploying stepper motor.

  20. Drone says:

    Whoa! Slow down there young whipper-snapper. Don’t you know the current model is to first develop and release an incrementally advanced but inferior prototype so Makerbot Industries can waste time and resources copying and patenting it with the corrupt Government-bloated U.S. Patent and Trade office – while you spend your “quality time” working on the “real” thing?

    But in the end, patents or otherwise, it probably doesn’t matter anyway. The Fung-Yu Lucky Perfect Golden Machine Company of Shenzhen will end up eating everyone’s lunch. Half the price, sold via ebaY, paid for with PayPal, and shipped anywhere with tracking for a pittance via Hong Kong Post.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s