https://reprap.org/mediawiki/api.php?action=feedcontributions&user=Sbliven&feedformat=atomRepRap - User contributions [en]2024-03-29T02:18:50ZUser contributionsMediaWiki 1.30.0https://reprap.org/mediawiki/index.php?title=Talk:G-code&diff=187328Talk:G-code2020-01-25T12:39:36Z<p>Sbliven: /* Abbreviation for minute */ new section</p>
<hr />
<div>==M104 & M109 Deprecation, G10 Introduction==<br />
<br />
No issues with deprecating M109, as this is an equivalent to M104 & M116. But M104? [heated bed (M140) example deleted]<br />
<br />
I consider G10 head/tool offset a good idea, but temperatures should be set by it's own command. Also, one often sets a temperature only, keeping the geometrical offset.<br />
<br />
If the L value is ignored, why is it part of the specification?<br />
<br />
Last not least, Marlin people already defined [[G-code#M206:_set_home_offset | M206]] for the head offset. These two should be aligned.<br />
<br />
--[[User:Traumflug|Traumflug]] 11:28, 19 July 2012 (UTC)<br />
<br />
M140 seems unaffected, Traumflug, so you can set the bed temp without changes.<br />
That said, I don't like any of this one bit. I don't like that the fast temp setting is gone, and I don't like that mysterious temperatures come out of nowhere when switching tool.<br />
I'd much prefer G10 to deal with spatial offset only, and use M10{4|9} [T0] S200. It gives the gcode generator much more control over the process. Having an OPTIONAL temperature setting in G10 would be acceptable for me, but definitely not deprecating M104/M109<br />
<br />
--Kliment<br />
<br />
I don't quite see why temperature offsets are different from spatial offsets - it's just another dimension in which the machine operates. It seemed neater to me to set them all in one place. And temperatures don't come out of nowhere - they are values you have previously explicitly set...<br />
<br />
Jean-Marc pointed out that it would be useful to have an option to save and load this stuff from eeprom like Marlin with M500 - that way you could have slightly different offsets for different machines and still run them all off the same G Code file.<br />
<br />
I agree that M104 is useful as it allows you:<br />
<br />
#to set temp and return<br />
#to do stuff you know doesn't involve extruding<br />
#to set same temp and wait<br />
<br />
Which speeds things up a bit at the start of a print. I'm not quite sure what we should do about that.<br />
<br />
As there is a standard (G10) for setting offset that pre-dates the invention of 3D printing, I think that's preferable to M206.<br />
<br />
Finally - remember that the time interval between something being deprecated and something going away altogether can be arbitrarily long, and is entirely in the hands of people writing firmware :-)<br />
<br />
- Adrian<br />
<br />
<br />
I have no problem introducing a new command which is a superset of existing functionality, and even better if it is more standard compliant, but I can't see a good reason to remove the previous commands, as there is no conflict in functionality. Presumably if G10 returns an error, then the host must fall back to previous commands. <br />
<br />
I don't know which standard you are looking at, but in mine (the official NIST standard) G10 does not set tool offsets. It appears some software out there is using a different, non-standard meaning for G10. I don't think non-standard use by one or more applications creates "a standard". Our use of G10 also has quite different parameters. This proposal would appear to be replacing non-standard command(s) with a new non-standard command, which doesn't help standardization and breaks compatibility. <br />
<br />
--[[User:Bobc|Bobc]] 21:41, 30 July 2012 (UTC)<br />
<br />
If this has been addressed, I apologize; but, having worked at, and with, NIST, they don't just 'make' standards, they ensure universal implementation. This means, if new standards are implemented, and usually for a good reason because of need, they will adopt them. If RepRap wants a new GCODE that is unique in some way, and different from existing, often just informing the person at NIST responsible will see that it gets implemented in the Official Standard. This is not a willy nilly process, and if the industry is using that standard, and it is unique, even meaning stand alone, incorporation of the code in another G code in this case is irrelevant; they will probably, and I feel confident in this, add that to the list of standards, they just need to be aware of it. They don't exist to enforce code implementation, but like dictionaries and word usage which changes, they're there to ensure everyone knows the standards, new use is expected, new codes are expected, additions happen.<br />
--[[User:Cyberchipz|Cyberchipz]] ([[User talk:Cyberchipz|talk]]) 17:45, 27 June 2015 (PDT)<br />
<br />
<br />
Thanks for the comments so far. I see we agree on M109 being obsolete, so I've removed the discussion tag.<br />
<br />
Regarding the [http://www.nist.gov/customcf/get_pdf.cfm?pub_id=823374 NIST standard], G10 is described there as setting a coordinate system, so it's similar to setting a tool offset.<br />
<br />
Not a word there on what L does, though. So I reduced it's description.<br />
<br />
What's left is R and S, the standby and work temperatures. How about making them optional?<br />
* Without R and S, both default to zero, so we have the (former) behaviour without G10.<br />
* With R and/or S, temperatures are set at tool change time (T, M6 command).<br />
* M104 always sets the temperature of the current extruder. So it matches traditional behaviour in case R and S weren't used. In case R and/or S are used, M104 overrides the extruder's work temperature, but doesn't change the extruder's S setting.<br />
--[[User:Traumflug|Traumflug]] 22:22, 31 July 2012 (UTC)<br />
<br />
<br />
I don't see the same agreement on M109 that you do, unless you are ignoring specific objections.<br />
<br />
I did a little digging, it appears the L parameter selects a "parameter number". So in NIST, L2 means "set coordinate system". FANUC systems use versions of G10 as "set tool offsets", sometimes L1, L10 or L12, sometimes omitted. Other L numbers may set other parameters, depending on machine. LinuxCNC appears to support several values of L. If we are using the parameters to mean something different (e.g R parameter is not used to define cutter radius), we should probably pick something like L3.<br />
<br />
Ref [http://www.linuxcnc.org/docs/devel/html/gcode/gcode.html#_g10_l1_set_tool_table_a_id_sec_g10_l1_a LinuxCNC G Codes]<br />
<br />
--[[User:Bobc|Bobc]] 08:02, 4 August 2012 (UTC)<br />
<br />
<br />
Did I miss something? I see no vote for M109, just a combined one for M104/M109. How to replace M109 by M104 is described.<br />
<br />
So, the L parameter is sort of a sub-command on a number of other, non RepRap G-code interpreters. Thanks a lot for the digging. Does that make the current description of the RepRap G-code flavour wrong? I think it's sufficient to describe what a RepRap firmware does, elaborating on what others do should go to something like a "G-code in General" wiki page.<br />
<br />
--[[User:Traumflug|Traumflug]] 10:45, 4 August 2012 (UTC)<br />
<br />
Has anyone implemented G10 in either a slicer or a firmware in the way described on the wiki? I am depending on M109s and M104s in prontserve to send the target temperature events but I can add G10 as well if this is actually used somewhere. Marlin seems to use it as a retract command (see https://github.com/ErikZalm/Marlin/blob/Marlin_v1/Marlin/Marlin_main.cpp#L771 ) and I guess I can just go off that.<br />
<br />
TL;DR This is very unclear to me. This needs documentation.<br />
<br />
--[[User:TheOtherRob|TheOtherRob]] 03:37, 27 June 2013 (UTC) (d1plo1d on github)<br />
<br />
Just to be clear, industry can set standards and they do get published by NIST for universal reasons. I'd agree that total non-unique or duplication for proprietary reasons breaks standards, and for the community shouldn't be done; but, it happens all the time. And my personal opinion is 'BOO' on them. Industry leaders get away with this all the time, and often new standards are adopted to retain compatibility for this reason. Still, if one wants to ensure compliance ensuring one retains the standard is good; but, if there's a real need for it, to reduce instruction sets I believe is a good reason to have a code stand alone for one action. Definately intermixing instructions of non related activity should have a good reason, like it's used a lot, and only those two commands would be a consideration, again for simplifying and reducing instruction lengths. The bottom line is that NIST will adopt and publish meaningful changes; as long as they're aware of them. They're great guys, and I would say extremely rational and logical in what does and does not get implemented. The process is not so complicated that changes can't happen; just be sure to let them know, so they are aware of it. I know a lot of this is due to CNC, and for that reason because I believe a day will come where we'll have a multi-tool type printing device extrusion and cnc, etc. These code sets have more in common than not, and should be made, implemented, and recorded as standards accordingly each in their own subset as related to fitness of purpose and function. NIST is a reasonable entity.--[[User:Cyberchipz|Cyberchipz]] ([[User talk:Cyberchipz|talk]]) 18:07, 27 June 2015 (PDT)<br />
<br />
==Checking==<br />
<br />
"These are the line number and the checksum. The RepRap firmware checks the checksum against a locally-computed value and, if they differ, requests a repeat transmission of the line of the given number. "<br />
<br />
Surely the firmware must request resending of the ''expected'' number, not the given number in the line. If the checksum is wrong, then the firmware should not rely on the line being correct, including the N value. The same goes for valid checksum but line number out of sequence, the algorithm as stated will keep requesting the same line!<br />
<br />
--[[User:Bobc|Bobc]] 21:41, 30 July 2012 (UTC)<br />
<br />
==Other stuff==<br />
<br />
Ah excellent, I've been waiting for this! I've been working from the gcode and mcode pages in the old wiki which have a few holes.<br />
<br />
The line number and checksum stuff is new to me- I'll implement that into my firmware in the coming days. So are some of these M-codes for that matter.<br />
<br />
Can we add some sort of reference for what the host expects in response from the firmware? So far, I'm sending back OK when the command is queued or executed and T: nnn every second when the heater is on, which as far as I can tell is all that's needed.<br />
<br />
ps: why are G20/G21/G90/G91/G92 specified to block? ("''The following commands are not buffered. When one is received it is stored, but it is not acknowledged to the host until the buffer is exhausted and then the command has been executed.''") they simply alter the conversion factors for the next command received in my firmware, and so can respond OK immediately.<br />
<br />
Only G4 (dwell) and M101 (start extruder when up to temperature, apparently superceded by the new M109) block in my firmware at the moment, and I'm seriously considering making even these queue-able so they block the queue instead of the command download stream.<br />
<br />
-- [[User:Triffid_hunter|Triffid Hunter]]<br />
<br />
<br />
I agree. It's great for this to be documented.<br />
<br />
I had one suggestion on the checksum -- it should perhaps use a stronger CRC checksum, and should also encorporate the length as well? Is the N and * part of an external standard, or a RepRap special sauce?<br />
<br />
If they are RepRap specific, I'd suggest changing the N code to include line length as something like "N101.50" for line 101, consisting of 50 characters.<br />
<br />
I use the following CRC algorithm, which I believe I stole from the CCITT standard:<br />
<br />
<pre><br />
static inline uint16_t GetCRC( uint16_t crc, char ser_data )<br />
{<br />
crc = (unsigned char)(crc >> 8) | (crc << 8);<br />
crc ^= ser_data;<br />
crc ^= (unsigned char)(crc & 0xff) >> 4;<br />
crc ^= (crc << 8) << 4;<br />
crc ^= ((crc & 0xff) << 4) << 1;<br />
return crc;<br />
}<br />
</pre><br />
<br />
The logic to compute checksum would then become:<br />
<br />
<pre><br />
uint16_t cs = 0;<br />
for(int i = 0; i < cmd.length(); i++)<br />
cs = GetCRC( cs, cmd.charAt(i) );<br />
<br />
computedCrc = cs;<br />
</pre><br />
<br />
So, the full logic for accepting or testing a line, encoded with full N and CRC checksum would be something like:<br />
<br />
<pre><br />
// was line number and checksum provided?<br />
bool value = true;<br />
if( lineNumber != 0 )<br />
{<br />
valid = lineNumber == expectedLineNumber<br />
&& cmd.length() == providedLength<br />
&& computedCrc == providedCrc;<br />
}<br />
<br />
// accept or reject the line based on valid flag<br />
<br />
</pre><br />
<br />
This does add a few bytes of overhead (3-4 for length, 2-3 for 16 bit crc), but may be worth it allows you to run a higher baud rate with reasonably low error rates -- the odds of a false positive are near enough to zero to make any statistician happy.<br />
<br />
-- [[User:BeagleFury|BeagleFury]]<br />
<br />
Just wanted to chime in - Thanks Adrian! This answers many questions for me!<br />
-- [[User:Wade|Wade]]<br />
<br />
== what part of the line does cmd.length() refer to? ==<br />
<br />
Just trying to implement the checksum logic, and realised that it makes no sense for the checksum to include itself or things get very recursive. What point is considered end-of-line? is it the asterisk? the space before the asterisk? the last non-whitespace before the asterisk?<br />
<br />
My firmware doesn't buffer the line, rather processes it character by character so this has to become another special case.<br />
<br />
-- [[User:Triffid_hunter|Triffid Hunter]]<br />
<br />
The checksum includes all characters in the string up to and including the character before the asterisk (i.e. up to but not including the asterisk). -- [[User:neilrqm|neilrqm]]<br />
<br />
== Future-proof M-codes? ==<br />
<br />
Adding new M-codes for extra sensors/heaters seems a little non-future-proof to me. My firmware uses P parameter to know which sensor/heater is being referred to eg M104 S100 sets heater 0 to 100c, but M104 P2 S100 sets heater 2 to 100c. Same for all the temperature sensor readback stuff. Future proofing protocols is always a good idea :)<br />
<br />
== G91: Set to Relative Positioning ==<br />
<br />
Example: G91<br />
All coordinates from now on are relative to the last position.<br />
<br />
Question: does this include the feed rate?<br />
<br />
-- [[User:Pietr]]<br />
<br />
== M203: Record Z adjustment ==<br />
<br />
which firmware does this?<br />
<br />
Sprinter Main does not have M203 implimented<br />
Sprinter Experimental has M203 as "M203 Temperature monitor for Repetier"<br />
Repetier has M203 as Temperaturmonitor.<br />
Marlin has M203 - Set maximum feedrate that your machine can sustain (M203 X200 Y200 Z300 E10000) in mm/sec<br />
Teacup has no M203<br />
<br />
Does any current or experimental firmware have the z adjustment implimented?<br />
<br />
eMAKER Sprinter used this. but is now deprecated in favour of Marlin.<br />
<br />
-- [[User:jmgiacalone|jmgiacalone]]<br />
<br />
== M92: Set axis_steps_per_unit ==<br />
<br />
M92 Sets the number of steps per unit, this is GREAT to fine tuning the extruder head, where even different colors of the same filament act differently, even when the measured diameter is measured precisely. It's simple enough to calibrate this using a simple cube alternating layers between 100% infill and 95% infill and adjusting the E steps per mm to not show gaps on the 100% layers and to just barely show gaps on the 95% layers.<br />
<br />
M92 is much better for compensating for different filament than putting it in the slicer program, because you might want to run the same program with different colors.. even within the same job, perhaps one would want to pause the program during a non critical infill, remove the filament, put in a different color, and then continue.. if you had previously calibrated all your filaments and got accurate steps per mm of those filaments, you can simply issue a M92 for the filament you just installed, then when you continue the program, the extruder will be working correctly.<br />
<br />
The problem I find is that I don't know what number to start putting in there.. it is listed in config.h, however that can be overridden if the eeprom is activated. I notice that M99: Set axis_hysteresis_mm has a corresponding M98: Get axis_hysteresis_mm why not have an M91: Get axis_steps_per_unit. Then there would be no mucking about in code trying to figure out what the extruder is currently set at, and it would make it MUCH easier for people who bought kit machines who really don't understand the code to be able to calibrate the extruder head.<br />
=== EEPROM gcodes ===<br />
<br />
It would be great if there were such a gcode function since still at the time of writing the retailer at least aught to point the client in the right direction for resources on the subject. Which unfortunately very few seems to actually do and the client remains restrained as a consumer instead of as advertised an step towards a emancipated maker through educational resources on settings/calibration, but also inspirational homage dito, to use the tool efficiently as well as with heart. Thankfully there are initiatives such as FSF's "[http://www.fsf.org/resources/hw/endorsement/respects-your-freedom Respects Your Freedom hardware product certification]", which one can easily endorse especially in times were companies [[Replicator_2_Controversy|reap]] but, more importantly do not [[Neutering a RepRap|sow]].<br />
<br />
Anyhow, there are some [[G-code#Proposed_EEPROM_configuration_codes|Proposed EEPROM configuration codes]] which marlin, sprinter, teacup et al firmwares uses. But needless to say, all of these depend on that one enabled the feature in the configuration pages and beyond that a friendly GUI, which [[repetier host]] is the only alternative (so far) when it comes to "easy to use point and click"-settings.<br />
<br />
: For Teacup firmware EECONFIG is enabled by default, so there is no need for enabling anything. And you guessed it, quite some retailers have no idea of what they're selling. This is a consequence of RepRap putting so much emphasis on being open source ( = zero pay for developers) and cheering commercial shops ( = all money goes to the shops). So, I see no point in complaining about "retailers". It's what RepRap asks for. --[[User:Traumflug|Traumflug]] 12:07, 6 December 2012 (UTC)<br />
<br />
== Time for G-code V2 ==<br />
<br />
Is it time to rewrite this G-code specification, maybe call it version 2, or a more creative naming variant? The current specification is a kludge going back many years and authors. The ACK specification is inconsistent. There is no formal language specification, so new language features get added and "do their best to follow existing standards" - standards which aren't actually defined. Different firmwares provide variants on the specification here, but again there's no standard for them to follow, or way to define their variant so control software programmers can adjust easily and confidently.<br />
<br />
# Let's discuss a roadmap and milestones for such an effort.<br />
# Let's create a specification in a formalized notation so non-english speakers don't need a translator to read it.<br />
# Let's formalize our 3D printer G-code variant by writing it in Backus–Naur Form. Indeed this may scare some cooks out of the kitchen...I doubt it...but if they are, maybe that's good.<br />
# Let's get a standard and consistent ACK<br />
# Let's discuss and find ways to improve the ACK to make things easier for control software<br />
# Let's not leave slots for "forwards compatibility". Instead, let's recommend (or specify) how to extend the specification we create.<br />
# Let's create a consistent ACK specification. The current one is inconsistent. Take, for example, the wait commands. Rather than send an OK as response to the command, the spec. allows firmwares to send other data - such as the current temp readings (w/targets) - and it can easily take up to 600 seconds for control software to receive "OK" while it was processing kilobytes of response data.<br />
# Let's address how commands are buffered. For example, it might make sense to specify that upon receiving a buffered command, an ACK is sent in response that indicates the command was buffered - or more importantly which command was buffered.<br />
# Let's create a standard way for firmwares to identify themselves, and their capabilities.<br />
<br />
Here's a G-Code example per this spec. from Marlin that exposes fundamental issues:<br />
<pre><br />
Send: M104 S1900<br />
Recv: ok T:28.1 /1900.0 B:59.8 /60.0 @:127 B@:0<br />
Recv: ok T:29.2 /1900.0 B:59.9 /60.0 @:127 B@:0<br />
Recv: ok T:31.3 /1900.0 B:59.9 /60.0 @:127 B@:0<br />
Recv: ok T:32.0 /1900.0 B:60.0 /60.0 @:127 B@:0<br />
...<br />
...<br />
Error:0<br />
: Extruder switched off. MAXTEMP triggered !<br />
Error: Printer stopped deu to errors. Fix the error and use M999 to restart!. (Temperature is reset. Set it before restarting)<br />
</pre><br />
<br />
A similar scenario is encountered when setting the bed temp. According to the spec we expect a similar result for a target < MINTEMP - possibly permuting this (poor) specification outcome to at least 4 use-cases.<br />
<br />
The command M104 S1900 asks the printer to destroy a typical reprap hotend. It would be trivial to specify how to respond with an error msg. for an out-of-range temp. request immediately, not when hitting MAXTEMP. Same for MINTEMP if that's the case. However, the current spec. does not provide a way to ACK with a standard error msg. In fact, it ''does not provide a standard ACK format'', it just illustrates what certain firmwares do in their ACKs.<br />
<br />
(Anonymous user?)<br />
<br />
: I am still waiting for a G-Code V1!<br />
: The problem is not lack of a standard, but that people just don't want to follow specs. There is a good NIST G-code spec, but no one followed that. New G-code features are hacked in arbitrarily, and this is the case from Day 1, where the "spec" was whatever the first firmware written happened to do. By it's nature, a wiki based spec is a free for all. <br />
:There are some elements of what you suggest already, but getting an encompassing spec written is unlikely to happen, unless someone volunteers to do it. You might get further if you make some specific suggestions regarding ACKs say, and add that as a "Proposed .." section. Really, the only thing you can do is to design something better and hope people will use it.<br />
:Also please sign so we know who we are talking to :)<br />
:--[[User:Bobc|Bobc]] ([[User talk:Bobc|talk]]) 08:05, 30 December 2013 (PST)<br />
<br />
== M160 Syntax ==<br />
<br />
The Syntax proposed was<br />
<br />
<pre><br />
M160 S4<br />
G1 X90.6 Y13.8 E22.4 0.1 0.1 0.1 0.7<br />
G1 X70.6 E42.4 0.0 0.0 0.0 1.0<br />
G1 E42.4 1.0 0.0 0.0 0.0<br />
</pre><br />
However whitespace delimiters do not work well(at all) in most gcode implementations, I have updated these to ":" delimiters.<br />
<br />
In addition I think the complexity is best left in the slicer so the G1 command should indicate distance to move for each extruder drive rather than a total distance and a mixing %<br />
This allows for multiple different drive types with varying esteps/mm to be used easily - the slicer decides the volume of each material to<br />
extrude based on the diameter input by the user.<br />
<br />
for the example give the syntax now looks like this:<br />
<pre><br />
M160 S4<br />
G1 X90.6 Y13.8 E2.24:2.24:2.24:15.89<br />
G1 X70.6 E0.0:0.0:0.0:42.4<br />
G1 E42.4:0.0:0.0:0.0<br />
</pre><br />
<br />
:I think that is better, however it subtly changes how the mix ratio is applied, the mix ratio would be constant for the duration of the move. The last line now has no effect.<br />
:It would seem more logical to use comma (,) to separate items in a list. Now that distances are used instead of ratios, the M160 seems to be redundant. The printer just extrudes whatever is in the E list.<br />
:--[[User:Bobc|Bobc]] ([[User talk:Bobc|talk]]) 16:35, 15 March 2014 (PDT)<br />
<br />
== Rewriting the Wiki Page to Not Suck<sup>tm</sup> ==<br />
Yep, making it easier to read and understand the Gcodes. It might be all the years of writing JavaDocs, or paging through the Arch Wiki, but for a technical wiki page, it sucks at conveying any information efficiently without rereading or questioning. I already did a good chunk of the top of the page (down to Gcode G2 & G3) and the contrast is night and day. It also gives me something to do while I part together my i3 Rework.<br />
<br />
--[[User:HACKhalo2|HACKhalo2]] ([[User talk:HACKhalo2|talk]]) 23:28, 27 December 2014 (PST)<br />
<br />
: Nice job! Thanks! And good luck with the i3 Rework. :-) --[[User:AndrewBCN|AndrewBCN]] ([[User talk:AndrewBCN|talk]]) 15:26, 28 December 2014 (PST)<br />
<br />
: I've added firmware compatibility boxes for all gcodes, as it was getting confusing which firmware supports which gcode. A lot needs updating, though, but at least they're there now! --[[User:Droftarts|Droftarts]] ([[User talk:Droftarts|talk]]) 07:24, 19 January 2015 (PST)<br />
<br />
:: The support boxes are a great idea to get an overview. I made a template from it and colorize them. I also updated many of these ??? with current information, and add some codes that have been missing. --[[User:Stefan8410|Stefan8410]] ([[User talk:Stefan8410|talk]]) 07:59, 3 April 2015 (PDT)<br />
<br />
== Renumbering unused commands ==<br />
<br />
The following M-commands appear to be not used in any firmware.<br />
<br />
M207: Calibrate z axis by detecting z max length <br />
<br />
Does anyone know a firmware that have implemented the commands using these code number?<br />
<br />
One or more well-known firmwares already use this code numbers for a different function.<br />
<br />
In order to rescue the original function and to avoid a clash, would it be profitable to assign them a new code number? -- [[User:Stefan8410|Stefan8410]] ([[User talk:Stefan8410|talk]]) 08:41, 13 April 2015 (PDT)<br />
<br />
== How to add GCodes that are supported in the firmware, but only if certain conditions are met at compile-time? ==<br />
<br />
Example: M600 in Repetier.<br />
Checking the [https://github.com/repetier/Repetier-Firmware/blob/master/src/ArduinoAVR/Repetier/Commands.cpp GitHub source file], I can see that M600 is supported, but only if the condition "FEATURE_CONTROLLER != NO_CONTROLLER && FEATURE_RETRACTION" is met.<br />
<br />
Would that be "partial" support? Or simply "yes", because the firmware does support it, but not all hardware does?--[[User:Rejutka|Rejutka]] ([[User talk:Rejutka|talk]]) 00:28, 20 March 2016 (PDT)<br />
<br />
== Removal of BFB/Rapman idiom ==<br />
The BFB/Rapman G-codes are nearly undocumented, this is old stuff, 3D systems closed its consumer site and removed a lot of available documents, so I think it may help readability to remove this idiom from the template. Anyone want to maintain (and so document) it ? [[User:PRZ|PRZ]] ([[User talk:PRZ|talk]]) 12:28, 9 April 2016 (PDT) - removed [[User:PRZ|PRZ]] ([[User talk:PRZ|talk]]) 10:40, 9 May 2016 (PDT)<br />
<br />
== Adding new and experimental GCodes, not yet incorporated into an official version ==<br />
I am adding some GCodes to improve the calibration and alignment of my 400mm diameter by 320mm high, four extruder delta machine. I am facing and compensating for the various mechanical build errors, with some success so far.<br />
Because I am adding CGodes, I have edited the GCode list to include them, hopefully reserving the G and M codes in the process. If this is not the right procedure, please comment or email me.<br />
When this works, I will do another merge with the appropriate branch of the RepRapPro firmware, and then I think the thing to do is make a pull request, although I am new to git and the appropriate etiquette. If there is a FAQ I have missed, I will not be offended by a kind suggestion to go read it.--[[User:Foxkid|Foxkid]] ([[User talk:Foxkid|talk]]) 19:21, 21 June 2016 (PDT)<br />
<br />
== Considering addition of named variables to G-Code ==<br />
<br />
I'm finding that it would be helpful to have names for various values that can be referred to in macros and configuration files. My use is for the exact offsets between extruders in my 4-extruder delta machine. I need to use the values both for the G10 commands to define the tools, and in the tfree#.g, tpre#.g, and tpost#.g macros.<br />
<br />
I'm tempted to follow the lead of Fanuc and make variables be introduced by the sharp sign ('#') character, but allow them to be strings (reg-ex m/[0-9a-zA-Z_]+/), and perhaps add in Fanuc-style numerical expressions later.<br />
<br />
I'm sure this must have been debated before. What is the current best practice?<br />
<br />
== Abbreviation for minute ==<br />
<br />
The current page uses 'mm/m' frequently for feed rates in millimeters per minute. This is easy to confuse with the SI abbreviation for meters. Would anyone object if I change them all to 'mm/min' instead? --[[User:Sbliven|Spencer]] ([[User talk:Sbliven|talk]]) 07:39, 25 January 2020 (EST)</div>Sblivenhttps://reprap.org/mediawiki/index.php?title=MakerBot&diff=101448MakerBot2013-08-09T19:46:13Z<p>Sbliven: Redirect to Makerbot corporation rather than the firmware.</p>
<hr />
<div>#redirect [[Makerbot]]</div>Sblivenhttps://reprap.org/mediawiki/index.php?title=Talk:MakerBot&diff=101447Talk:MakerBot2013-08-09T19:45:16Z<p>Sbliven: Created page with '== Redirect location == This page currently redirects to List_of_Firmware#Makerbot. It seems like Makerbot is a more suitable page since it differs only in capitalization…'</p>
<hr />
<div>== Redirect location ==<br />
This page currently redirects to [[List_of_Firmware#Makerbot]]. It seems like [[Makerbot]] is a more suitable page since it differs only in capitalization. The firmware can be referenced as a disambiguation or just as a link from the Makerbot page.<br />
<br />
--[[User:Sbliven|Spencer]] 19:45, 9 August 2013 (UTC)</div>Sblivenhttps://reprap.org/mediawiki/index.php?title=Stepper_motor&diff=82951Stepper motor2013-02-21T22:15:08Z<p>Sbliven: /* Current */ Added voltage/current recommendation</p>
<hr />
<div><br style="clear:both"/><br />
[[image:StepperMotor-reprap-stepper.jpg|thumb]]<br />
__TOC__<br />
<br />
= What is a Stepper Motor ?=<br />
Stepper motors are [[Motor FAQ | one kind of electric motor]] used in the robotics industry.<br />
Stepper motors move a known interval for each pulse of power. These pulses of power are provided by a stepper driver and is referred to as a step. As each step moves the motor a known distance it makes them handy devices for repeatable positioning. <br />
<br />
There are two major types of stepper motor known as bipolar and unipolar. Wikipedia has further information on stepper motors. Please see [[Wikipedia:stepper motor|Wikipedia]]. A good diagram showing a stepper motor's mechanical operation is [http://www.engineersgarage.com/articles/stepper-motors here].<br />
<br />
And here is an animation of how a stepper works inside : [http://en.nanotec.com/steppermotor_animation.html here]<br />
<br />
= Terms=<br />
<br />
;NEMA: refers to the frame size of the motor (as standardized by the US [http://en.wikipedia.org/wiki/National_Electrical_Manufacturers_Association National Electrical Manufacturers Association] <ref>For details refer to NEMA Standards Publication ICS 16-2001, "Motion/Position Control Motors, Controls, and Feedback Devices" (a copy may be downloaded [http://classxboats.com/htdocs/Engineering_Research/NEMA/ics_16.pdf here].</ref><br />
). It specifies the “face” size of the motor but not its length. For example a NEMA 23 stepper has a face of 2.3 x 2.3 inches with screw holes to match. Note: just because a motor is bigger does not mean it is more powerful in terms of torque. It is perfectly possible for a NEMA 14 to “out pull” a NEMA 17 or a NEMA 23. <br />
<br />
;Bipolar and Unipolar: These terms refers to the internals of the motor. Each type has a different stepper driver circuit board to control them. In theory a RepRap could use either, but in practice most are bipolar.<br />
<br />
;Micro stepping: A stepper motor always has a fixed number of steps. Microstepping is a way of increasing the number of steps by varying the amount of electricity sent to the coils inside the stepper motor. In most cases, micro stepping allows stepper motors to run smoother and more accurately.<br />
<br />
== Bipolar Motors ==<br />
<br />
[[image:StepperMotor-bipolar_stepper_sch.png|thumb]]<br />
<br />
These motors are the strongest type of stepper motor. You identify them by counting the leads - there should be four or eight. They are also the type of motors we are using in the RepRap Project's Mendel & Darwin designs. They have two coils inside, and stepping the motor round is achieved by energising the coils and changing the direction of the current within those coils. This requires more complex electronics than a unipolar motor, so we use a special driver chip to take care of all that for us. Some designs (the eight-wire ones) split each coil in the middle so you can wire the motor either as bipolar (short the middles) or unipolar (short the middles and treat the link as the centre tap - see below).<br />
<br />
<br clear="all"><br />
<br />
== Unipolar Motors ==<br />
<br />
[[image:StepperMotor-unipolar_stepper_sch.png|thumb]]<br />
<br />
Unipolar motors have two coils, each one has a centre tap. They are readily recognizable because they have 5, 6 or even 8 leads. It is possible to drive 6 or 8 lead unipolar motors as bipolar motors if you ignore the centre tap wires. 5 lead motors have both centre taps connected, so re-wiring them to a 4 lead version requires at least opening the motor, if it can be done at all.<br />
<br />
The main beauty of unipolar motors is that you can step them without having to reverse the direction of current in any coil, which makes the electronics simpler. Some early RepRap prototypes used this trick. Because the centre tap is used to energise only half of each coil at a time, unipolar motors generally have less torque than bipolar motors.<br />
<br />
<br clear="all"><br />
<br />
==Stepping Angle==<br />
<br />
Most stepper motors used for a Mendel have a step angle of 1.8 degrees. It is sometimes possible to use motors with larger step angles, however for printing to be accurate, they will need to be geared down to reduce the angle moved per step, which may lead to a slower maximum speed.<br />
<br />
== Micro stepping ==<br />
Microstepping between pole-positions is made with lower torque than with full-stepping, but has much lower tendency for mechanical oscillation around the step-positions and you can drive with much higher frequencies.<br />
<br />
If your motors are near to mechanical limitations and you have high friction or dynamics, microsteps don't give you much more accuracy over half-stepping. When your motors are 'overpowered' and/or you don't have much friction, then microstepping can give you much higher accuracy over half-stepping.<br />
You can transfer the higher positioning accuracy to moving accuracy too.<br />
<br />
= History =<br />
<br />
<br />
== Stepper Motor History for Darwin (V1.0 RepRap)==<br />
The RepRap Darwin used a NEMA 23 stepper motor. This stepper motor was a unipolar stepper motor which could be configured as a bipolar. This design used 3 stepper motors, one for each axis, and a DC motor for its extruder. Later many people upgraded their extruders to increase their control of the extruder. <br />
<br />
Note the Generation 2 electronics supported the first configuration with 3 stepper driver circuit boards for the steppers and a PWM circuit board to control the DC motor.<br />
<br />
The Darwin stepper motor requirements were as follows:<br />
<br />
{| border="1"<br />
|-<br />
| '''Parameter''' || '''Specification''' <br />
|-<br />
| Size || NEMA 23 <br />
|-<br />
| Type || Bipolar <br />
|-<br />
| Shaft || dual-output shaft <br />
|-<br />
| Torque || 100 oz-in or about 0.71Nm (71 N-cm)<br />
|-<br />
| Resistance || about 10 ohms, or 1 to 30 ohms <br />
<br />
|}<br />
<br />
<br />
Note<br />
<br />
If you are using the [[DarwinStepperController_1_2|PIC controller]] (Note: Generation 1 electronics) you need a motor that will use about 1A per winding at 12V - that is, around 10 ohms. The Arduino circuit can be adjusted to accommodate a wider range of steppers, but remember that if you specify a low-resistance one and the Arduino controller has to chop the voltage to limit the current going through it, that will also limit the torque.<br />
<br />
== Stepper Motor History for Mendel (V2.0 RepRap)==<br />
The RepRap Mendel used either NEMA 17 or NEMA 14 bipolar stepper motors. It used four stepper motors: one for each of the three axes and one for the extruder. <br />
<br />
Note this configuration of four stepper motors was supported by the 3rd generation electronics.<br />
<br />
The Mendel stepper motor requirements were as follows:<br />
<br />
{| border="1"<br />
|-<br />
| '''Parameter''' || '''Specification''' <br />
|-<br />
| Size || NEMA 17 or 14 (prototype was NEMA 14)<br />
|-<br />
| Type || Bipolar <br />
|-<br />
| Shaft || dual-output shaft (need to make knurling the stepper shaft easier, not applicable to recent geared extruders)<br />
|-<br />
| Torque || 0.137 Nm (13.7N-cm or 19.4 oz-in)<br />
|-<br />
| Resistance || Must be over 6 ohms (not applicable to recent stepper controllers, see "current" below)<br />
<br />
|}<br />
<br />
=Holding Torque=<br />
<br />
It is recommended that you get approximately 13.7 N-cm (0.137 Nm or 1400 g-cm or 19.4 ozf-in or 1.21 lbf-in) of holding torque (or more) for axis motors to avoid issues, although one stepper with less has been used successfully (see below). If in doubt, higher is better.<br />
<br />
For [[Wade's Geared Extruder]] (most widely used one as of 2012) it is suggested to use motor that is capable of creating a holding torque of at least 40 N-cm (0.4Nm).<br />
<br />
If you need to convert between different units for the torque you can use the torque unit converter [http://www.numberfactory.com/nf%20torque.htm here].<br />
<br />
=Size=<br />
<br />
If using the smaller NEMA 14 motors, aim for the high torque option. NEMA 14s are neater, lighter and smaller, but can be hard to obtain with the appropriate holding torque. NEMA 17s are quite easy to get in the specification that Mendel needs, but are bulkier and less neat. NEMA 14s are running near the edge of their envelope: they will get warm. NEMA 17s are well inside what they can do, and will run much cooler.<br />
<br />
Note that any Mendel part that goes on to a stepper motor shaft expects the shaft to be roughly Ø5mm. If the shaft is a different size, you will need to make allowances for this in the parts you obtain/make.<br />
<br />
Based upon the NEMA 17 specification (from what i can find) the mounting holes are spaced 1.22in or 31mm apart along the edge of the motor. This should help if you are using second hand / salvaged parts.<br />
<br />
=Wiring=<br />
<br />
Steppers motors come in several wiring configurations. 4, 6 and 8 wires are all fairly common and work fine with the standard RepRap electronics.<br />
5 wire stepper motors exist but won't work with the standard RepRap electronics, because the 5th wire connects to both coil centers. See [[stepper wiring]] for more details.<br />
<br />
=Heat=<br />
<br />
Most of the motors specs give the current for two coils that will give an 80 °C rise, i.e. they can run at 100 °C! When using them on plastic brackets you need to under-run them to keep the brackets from melting. With PLA's glass transition temperature between 60-65 °C, you have to seriously under-run them! Fortunately temperature rise is proportional to power, which is in turn proportional to the square of current (P=I^2R), but torque is directly proportional so you can keep temperature under control without losing too much torque. For example, running a stepper at 70% of the rated current would result 70% of the torque and 49% (0.7^2=0.49) of the power dissipation and thermal rise.<br />
<br />
=Current=<br />
<br />
All recent stepper controllers use a current-limiting design. Because of this, the resistance (ohms) of the coils doesn't matter, as long as it is low enough for the current to rise fast enough for the current-limiting design to come into play. If the resistance is too high (i.e. 24V steppers) the current doesn't raise fast enough for reliable microstepping. For this reason, stepper motors rated for 3-5V and 1-1.5A are generally recommended, as these motors will perform near their peak torque with a current-limiting stepper controller (such as a Pololu A4988).<br />
<br />
Designs which use a separate "extruder controller board" sometimes use H-bridges (which are designed for running a DC motor) instead of a proper current-limiting stepper controller. On these boards, you need to be careful not to turn the current (PWM) too high, especially with low-ohm (low voltage) motors. You run the risk of overheating both the stepper motor and the H-bridge chip.<br />
<br />
=Suppliers=<br />
<br />
Below is a list of possible motors and suppliers. Please add to it. If you have built a Mendel successfully with a given motor, remember to put {{true}} in the tested field.<br />
<br />
=== NEMA 14 suppliers ===<br />
<br />
{| class="wikitable sortable"<br />
|+ ''Stepper Motors - NEMA 14 (smaller, neater and used on the Mendel prototype)''<br />
|-<br />
| Vendors (link to product) || Shipping location || Manufacturer || Model # (link to datasheet) || Holding Torque || Shaft || Tested || Additional notes<br />
|-<br />
| [http://www.motioncontrolproducts.com/ Motion Control Products] || UK<br />
| Fulling Motor || [[Media:NEMA14-high-torque.pdf|FL35ST36-1004B]]<br />
| ~13.7 N-cm || Dual || {{true}} || Used in mendel prototype<br />
|-<br />
| [http://www.active-robots.com/ Active Robots] || UK || Wantai<br />
| [http://www.phidgets.com/documentation/Phidgets/3301Datasheet.pdf 35BYHG04]<br />
| ~12.3 N-cm || Ø4.9mm || {{true}} || Less holding torque than recommended, but has apparently been used successfully<br />
|-<br />
| [http://www.pololu.com/catalog/product/1209 Pololu Robotics] || US<br />
| [http://www.cnsoyo.com/ SOYO] || SY35ST36-1004A<br />
| ~13.7 N-cm || Ø5mm || '''?''' || Note: Pololu list this motor as 1400 g-cm AND as 20 oz-in (converts to 19.44 oz-in). According to supplier information, the metric value is correct.<br />
|-<br />
| [http://www.paoparts.com/fr/6-moteurs Paoparts] || EU-FR<br />
| [http://www.cnsoyo.com/ SOYO] || SY35ST36-1004A<br />
| ~13.7 N-cm || Ø5mm || '''?''' || Length cable 80 cm<br />
|-<br />
| [http://www.zappautomation.co.uk/product_info.php?products_id=51 Zapp Automation] || UK || ?<br />
| [http://www.slidesandballscrews.com/pdf/steppermotors/SY35ST.pdf SY35ST36-1004B]<br />
| ~14 N-cm || Dual || {{true}} || <br />
|}<br />
<br />
=== NEMA 17 suppliers ===<br />
<br />
{| class="wikitable sortable"<br />
|+ ''Stepper Motors - NEMA 17 (larger and generally heavier but with more room to put a higher torque than a NEMA 14)''<br />
|-<br />
| Vendors (link to product) || price || Shipping location || Manufacturer || Model # (link to datasheet) || Holding Torque || Shaft || Tested || Additional notes<br />
|-<br />
| [http://www.charlies3dtechnologies.eu Charlie's 3D Technologies]|| €15.73 || Belgium<br />
| None || 17HS8403N<br />
| 48 N-cm || Single 5mm dia.|| {{true}} || 2 phase, 1.8 degree/step 5%<br />
|-<br />
| [http://reprap.org/mediawiki/images/1/11/LDO-42STH47-1684A_RevA.pdf LDO Motors]||$7.2~$15 EXW || China<br />
| [http://www.ldomotors.com/ LDO Motors] || [http://ldomotors.en.alibaba.com/product/568158543-213421615/Nema17_stepper_motor_for_3D_printer.html LDO-42STH47-1684A]<br />
| 5kg-cm (~50N-cm) || Single / double 5mm or 6.35mm dia. || {{true}} || sales@ldomotors.com Could be flat shaft, shaft length could be customized, welcome OEM.<br> '''Thounsands of our motor used on Fabbster 3D printers.''' http://wiki.fabbster.com/Main_Page<br />
|-<br />
| [http://www.eckertech.com EckerTech Inc.]|| $14.95 || Canada<br />
| RB Step Motor || 17HD2038E<br />
| 63 oz-in (~45N-cm) || Single 5mm dia.|| {{true}} || 63 oz-in, 1.5amp, 1.8 degree/step<br />
|-<br />
| [http://store.qu-bd.com/product.php?id_product=14 QU-BD]|| $14.49 || USA<br />
| Wantai || Custom Winding<br />
| 3kg-cm (~30N-cm) || Single 5mm dia.|| {{true}} || Used for MBE Direct Drive Extruder<br />
|-<br />
| [http://store.qu-bd.com/product.php?id_product=15 QU-BD]|| $15.99 || USA<br />
| Wantai || Custom Winding<br />
| 5kg-cm (~50N-cm) || Single 5mm dia.|| {{true}} || None<br />
|-<br />
| [http://www.watterott.com/de/Schrittmotor-Unipolar/Bipolar-200-Steps/Rev-42x48mm-40V-1200mA-NEMA-17 Watterott]<br>[http://www.pololu.com/catalog/product/1200 Pololu Robotics] || 15.52€ || DE<br>(probably EU-Wide)<br />
| [http://www.cnsoyo.com/ SOYO] || [http://www.cnsoyo.com/product_show_e.asp?id=8 SY42STH47-1206A]<br />
| ~31.1 N-cm || Single, d-shape || {{true}} || None<br />
|-<br />
| [http://www.zappautomation.co.uk/product_info.php?products_id=28 Zapp Automation]<br>[http://www.pololu.com/catalog/product/1200 Pololu Robotics] || $31.90 || UK<br>US<br />
| [http://www.cnsoyo.com/ SOYO] || [http://www.cnsoyo.com/product_show_e.asp?id=8 SY42STH47-1206A]<br />
| ~31.1 N-cm || Single || {{true}} || None<br />
|-<br />
| [http://www.zappautomation.co.uk/product_info.php?products_id=516 Zapp Automation] <br> [http://www.paoparts.com/fr/6-moteurs Paoparts] || || UK <br> FR<br />
| [http://www.cnsoyo.com/ SOYO] || [http://www.slidesandballscrews.com/pdf/steppermotors/SY42STH47-1684A.pdf SY42STH47-1684A]<br />
| ~43.1 N-cm || Single, d-shape, Ø5mm || {{true}} || 4.5mm flat <br> paoparts.com motors are factory custom made with 80cm cables<br />
|-<br />
| [http://www.zappautomation.co.uk/product_info.php?products_id=29 Zapp Automation]<br>[http://www.mendel-parts.com/index.php?cPath=25 mendel-parts.com] || || UK<br>NL<br />
| [http://www.cnsoyo.com/ SOYO] || [http://www.mendel-parts.com/data_sheets/SY42STH47-1684B.pdf SY42STH47-1684B]<br />
| ~43.1 N-cm || Dual, round, Ø5mm || {{true}} || mendel-parts.com motors are factory custom made with 80cm cables and have an option to include Molex connectors for our GEN6 electronics<br />
|-<br />
| [http://www.interinar.com/vexta-px243m-03aa.html Interinar Electronics, LLC] || || US<br />
| Oriental Motors || [http://www.interinar.com/vexta-px243m-03aa.html Vexta PX243M-03AA]<br />
| 28 oz-in (~20N-cm) || Single || '''?''' || 0.9deg / 400 steps/revolution<br />
|-<br />
| [http://www.interinar.com/vexta-px243m-01aa.html Interinar Electronics, LLC] || || US<br />
| Oriental Motors || [http://www.interinar.com/public_docs/PX243M-01AA.pdf PX243M-01AA]<br />
| 15 N-cm || Single || '''?''' || Not strong enough for direct drive extruder, Uses Imperial #4-40 TPI mounting holes instead of M3 metric. (Web page says no longer available -- suggests RepRap builders use PX243M-03AA instead)<br />
|-<br />
| [http://catalog.orientalmotor.com/plp/itemdetail.aspx?cid=1002&categoryname=all-categories&productname=pk-series-stepping-motors&itemname=pke245da-l&cid=1002&plpver=11&categid=100&prodid=3001048&itemid=49362&origin=groupdetail&by=prod&filter=0&grpid=25391&backtoname=Compatible%20Motors%20(sold%20separately)&isUOM=1 Oriental Motor USA] || $73.10 || US<br />
| Oriental Motors || [http://catalog.orientalmotor.com/plp/itemdetail.aspx?cid=1002&categoryname=all-categories&productname=pk-series-stepping-motors&itemname=pke245da-l&cid=1002&plpver=11&categid=100&prodid=3001048&itemid=49362&origin=groupdetail&by=prod&filter=0&grpid=25391&backtoname=Compatible%20Motors%20(sold%20separately)&isUOM=1# PKE245DA-L]<br />
| 55 N-cm || Single Ø5mm || '''?''' || made in japan<br />
|-<br />
| [http://www.alltronics.com/cgi-bin/item/28M053/154/Lin-Engineering-417-11-48-02-unipolar-stepper-motor Alltronics.com] || $14 (?) || US<br />
| [http://www.linengineering.com/ Lin Engineering] || [http://www.alltronics.com/mas_assets/acrobat/28M053.pdf 417-11-48-02]<br />
| ~10oz-in (~7N-cm) || Ø5mm = 0.2 inches, round(?) || '''?''' || 6-wire (unipolar?); 10oz-in may be too weak.<br />
|-<br />
| [http://www.alltronics.com/cgi-bin/item/28M039/154/Lin-Engineering-4018X-07-04-bipolar-stepper-motor Alltronics.com] || $15 (?) || US<br />
| [http://www.linengineering.com/ Lin Engineering] || [http://www.alltronics.com/mas_assets/acrobat/28M039.pdf 4018X-07-04]<br />
| ~15oz-in (~10.5N-cm) || Ø5mm = 0.2 inches, round(?) || '''?''' || 1.8 deg per step; 15oz-in may be too weak.<br />
|-<br />
| [http://www.alltronics.com/cgi-bin/item/28M101/154/Lin-Engineering-4118L-25P-07R0-bipolar-stepper-motor Alltronics.com] || $21 (?) || US<br />
| [http://www.linengineering.com/ Lin Engineering] || [http://www.alltronics.com/mas_assets/acrobat/28M101.pdf 4118L-25P-07R0]<br />
| ~68.76 oz-in (~48.5N-cm) || Ø5mm = 0.2 inches, round(?) || '''?''' || 1.8 deg per step<br />
|-<br />
| [http://www.phidgets.com/products.php?category=23&product_id=3303 Phidgets.com] || $27.83 || US<br />
| Wantai || [http://www.phidgets.com/documentation/Phidgets/3303Datasheet.pdf 42BYGHW811]<br />
| 47.1 N-cm || Ø5mm || {{true}} || None<br />
|-<br />
| [http://www.coolcomponents.co.uk/catalog/product_info.php?products_id=469 Cool Components]<br>[http://www.sparkfun.com/products/9238 SparkFun]<br>[http://www.robotgear.com.au/Product.aspx/Details/410 Robot Gear]<br>[http://www.australianrobotics.com.au/?q=node/323 Australian Robotics]<br>[http://www.mindkits.co.nz/store/movement/stepper-motor-with-cable Mindkits]<br>[http://www.abra-electronics.com/products/SM%252d42BYGO11%252d25-Stepper-Motor-with-Cable.html Abra-Electronics] || $19.43 || UK<br>US<br>AU<br>AU<br>NZ<br>CA<br />
| Mercury Motor || [http://www.sparkfun.com/datasheets/Robotics/SM-42BYG011-25.pdf SM-42BYG011-25]<br />
| 23 N-cm || Ø5mm || {{true}} || None<br />
|-<br />
| [http://ausxmods.com.au/stepper-motors/62-oz-in-nema-17-stepper-motor AusXMods] || || AU<br />
| Rugao Xinhe || [http://runall.en.made-in-china.com/product/oeBQykaCEmiS/China-1-8-Degree-Size-42mm-High-Tybrid-Stepping-Motor.html 17H185H-04A]<br />
| ~43.8 N-cm || ? || '''?''' || 2.8v,1.68A/phase,1.65ohm/phase, the -04B variant is dual-shaft<br />
|-<br />
| [http://store.kysanelectronics.com/servlet/-strse-68835/42BYGH4803/Detail Kysan] || || China<br />
| [http://store.kysanelectronics.com Kysan] || [http://www.kysanelectronics.com/Products/datasheet_display.php?recordID=6008 42BYGH4803]<br />
| 49 N-cm || Ø5mm || {{true}} || Successfully tested with [http://objects.reprap.org/wiki/Geared_Nema17_Extruder Wade's Geared Nema 17] extruder - high flow rates. According to datasheet, 5mm round shaft. Requires Minimum Purchase of $100 when buying online. ([http://store.kysanelectronics.com/servlet/-strse-template/policy/Page?sfs=3438bed8 Their policy page] suggests the '''$200''' minimum is just to get a discount? --[[User:Sbliven|Spencer]] 03:40, 9 February 2012 (UTC)) <br />
|-<br />
| [http://store.makerbot.com/motors/nema-17-stepper-motor.html MakerBot] || $29.15 || US<br />
| Kysan || [http://svn.makerbot.com/assets/datasheets/kysan-1123029.pdf 1123029]<br />
| 26 N-cm || Ø4.78mm (3/16"), 24mm long || '''?''' || None<br />
|-<br />
| [http://store.makerbot.com/nema-17-stepper-motor-high-torque.html MakerBot] || || US || Custom ?? || ???? || 28 N-cm || Ø5.84mm (0.23"), 22mm long || '''?''' || None<br />
|-<br />
| [https://www.matterhackers.com/store/printer-accessories/nema-17-stepper-motor MatterHackers] || $17.00 || US || Custom || ? || 3.3kg-cm (32.4 N-cm) || Ø5mm, 22mm long || {{true}} || 0.9 Degree Step Angle<br />
|-<br />
| [http://myworld.ebay.com/erbyers/?_trksid=p4340.l2559 erbyers on ebay] || NA || US || Applied Motion<br />
| [http://www.ebay.com/itm/New-Applied-Motion-Products-NEMA-17-1-8-Stepper-Motor-/330517220763 4017-871]<br />
| ~8.47 N-cm || Dual, Ø5mm || '''?''' || One side of shaft is splined ~4.3mm 0.5in from face, other shaft is 5mm; wires 95mm long terminating in 0.1" header; date code from 1984. No longer available?<br />
|-<br />
| [http://www.reichelt.de/?;ACTION=3;LA=444;GROUP=C39;GROUPID=3299;ARTICLE=62654;START=0;SORT=artnr;OFFSET=16;SID=32MIj0BKwQASAAAGhC0iY484e8ab2d51a8a22b76248733f467eb1 Reichelt] || || DE<br />
| [http://www.trinamic.com/tmc/render.php?sess_pid=261 Trinamic] || [http://www.trinamic.com/tmc/media/Downloads/QMot_motors/QSH4218/QSH4218_manual.pdf QSH4218-51-049]<br />
| 49 N-cm || Ø5mm || {{true}} || Tested on MakerBot Cupcake CNC<br />
|-<br />
| [http://www.mechapro.de/shop/Schrittmotoren/Schrittmotor-Nidec-Servo-KH4248-B95101::46.html mechapro] || || DE<br />
| [http://www.nidec-servo.com/en/ Nidec Servo] || [http://www.mechapro.de/pdf/KH4248-B95191.pdf KH4248-B95101]<br />
| 48 N-cm || Ø5mm || '''?'''|| None<br />
|-<br />
| [http://www.electronic-things.de/shop/RepRap/Elektronik/Motoren--Treiber-und-Zubehoer electronic-things] || || DE<br />
| [http://www.wantmotor.com/ Wantai Motor] || [http://www.wantmotor.com/ 42BYGHW 811/609]<br />
| 49/34 N-cm || Ø5mm || {{true}} || None<br />
|-<br />
| [http://www.lulzbot.com/?q=products/nema-17-stepper-motors LulzBot] || $17.50 || US<br />
| [http://www.cnsoyo.com/ SOYO] || [http://www.alephobjects.com/hardware/motors/SY42STH47-1504A_060047067.pdf SY42STH47-1504A]<br />
| 55 N-cm || Ø5mm D-shaped || {{true}} || None<br />
|-<br />
| [http://www.2printbeta.de/product_info.php?products_id=53 2PrintBeta] || || DE<br />
| [http://de.act-motor.com ACT] || [http://de.act-motor.com/productinfo/detail_12_25_76.html 17HS4417]<br />
| 40 N-cm || Ø5mm || ''?'' || None<br />
|-<br />
| [http://www.xyzprinters.com/electronics/89-stepper-motor.html XYZPrinters] || EUR13,86|| NL<br />
| XYZ || [http://xyzprinters.com/89-nema-17-stepper-motor.html 42BYGH4803-04]<br />
| 55 N-cm || Ø5mm || {{true}} || Custom model, includes 60cm leads<br />
|-<br />
| [http://www.reprap.cc//index.php?main_page=product_info&cPath=10&products_id=50 Reprap-Austria] || 18,99 || Austria || Reprap Austria || [http://www.reprap.cc//index.php?main_page=product_info&cPath=10&products_id=50 17HS19-1684S]<br />
| 55 N-cm || Ø5mm || {{true}} || Custom model, includes 100cm leads and molex plug<br />
|-<br />
| [http://www.akcesoria-cnc.pl/ Akcesoria-cnc] || || PL || SANYO DENKI (japan) || [http://www.akcesoria-cnc.pl/?menu=produkt&id=229 KH42KM2R001] || 45 N-cm || Ø5mm || ? ||<br />
|-<br />
| [http://www.woelfel.ch/index.html woelfel] || || DE<br />
| gunda || [http://www.gunda-gmbh.de/img_pool/file/Datenblaetter/Schrittmotoren/SM17H1xCL.pdf SM17H1.3CL]<br />
| 44 N-cm || Ø5mm || '''?''' || <br />
|-<br />
| [http://www.mpja.com/12V-31A-18-Deg-NEMA-17-Step-Motor/productinfo/18734+MS/ MPJA] || $22 || US<br />
| ? || ? 42BYGH404<br />
| 3.2kg-cm (~31N-cm) || Ø5mm || '''?''' ||<br />
|-<br />
| [http://www.fabberworld.com/Motors:::6.html/ fabberworld.com] || $24.50 || CH<br />
| JKM || FL42STH47-1684A <br />
| 4.4 kg-cm (~43N-cm) || Ø5mm || '''?''' || 2.8 V, 1.68 A, 1.8 Degree Step Angle, 4.4 kg.cm, 42.3 x 42.3 x 48 mm ||<br />
|}<br />
<br />
''(prices in dollars in the NEMA 17 table are in qty 1, include "ground" shipping to a US location, as of 2012-09-28)''<br />
<br />
If you have a Shinano Kenshi motor in your hands,<br />
you can decode the part number written on it<br />
with the SKC Stepping Motor Part Number decoder at<br />
[http://www.shinano.com/Stepping-Motor-Operation-Theory.php Shinano Kenshi: "Stepping Motor Operation & Theory"]<br />
<br />
Lin Engineering is one of the few manufacturers that make stepper motors in the US.<br />
If you have one of their motors in your hands,<br />
you can decode the part number written on it<br />
with the "Lin part number system" decoder on p.1 and p.2 of the<br />
[http://www.linengineering.com/LinE/contents/stepmotors/Catalog_Request.aspx Lin Engineering Catalog].<br />
<br />
=Unscientific rules of thumb for motor purchases=<br />
<br />
1) Generally, the longer the motor body, the more torque the motor has.<br />
<br />
2) If a motor is rated to more amps or volts than your driver can produce, your motor will not produce the manufacturer's rated torque.<br />
<br />
3) A motor can safely exceed its rated voltage with a chopping stepper driver (which is all the RepRap stepper drivers, save only the Gen3 electronics extruder board hack). It cannot exceed its rated current (amps) without severely overheating and dying a quick death.<br />
<br />
4) Stepper motors are generally rated for a 50 °C temperature rise at rated current/torque.<br />
<br />
5) ABS melts at 105 - 120 °C but softens at 80 °C. Therefore you probably can't run your steppers at their full rated torque without melting your plastic motor mounts.<br />
<br />
6) Power is measured in watts (W) and is calculated as volts (V) × current (A).<br />
<br />
7) Power made available to a motor will be turned into heat and motion.<br />
<br />
8) The more power made available to the motor the higher the amount of heat and motion. Heat is proportional to current squared while motion is proportional to current, so losing a little motion (torque) can lose a lot of heat.<br />
<br />
9) Power and torque are related. The more power, the more torque.<br />
<br />
10) A motor's rated amps, volts, or ohms (if missing from the spec sheet) can be calculated with the other two numbers using [http://en.wikipedia.org/wiki/Ohm's_law Ohm's Law]. Or you can cheat and use a [http://www.ohmslawcalculator.com/ohms_law_calculator.php calculator].<br />
<br />
= Driving stepper motors =<br />
To make a stepper motor work, you need to use <br />
# a stepper driver chip or<br />
# a microcontroller and, optionally, one or two full [[Wikipedia:H bridge|h-bridge]] chips <br />
<br />
=== Stepper Driver Chips ===<br />
These chips keep the power that drives the motors separate from the power that is on the arduino. The arduino can't provide enough juice to power the stepper motors directly. This is why you have to use separate chips to sort of act as valves that control how the motor spins.<br />
<br />
Another benefit that stepper driver chips provide, is that they provide ''fractional'' steps. This helps smooth out the motion of the stepper motor. Without fractional steps, stepper motors can have a tendency to vibrate or resonate at certain RPMs.<br />
<br />
Here's a list of stepper driver chips (newest first):<br />
;Toshiba TB6560AHQ<br />
:Used in the [[Gen7T]] electronics plus the open source stepper driver for open source ecology.<br />
<br />
;Allegro A4988 (QFN)<br />
:Used in [[Pololu stepper driver board]]s. Same as A4983 but offers overcurrent protection.<br />
<br />
;Allegro A4983 (QFN)<br />
:Used in [[Pololu stepper driver board]]s. Discontinued product. Replaced by equivalent A4988.<br />
<br />
;Allegro A3992 (DIL or TSSOP)<br />
:Used in [[Gen L Electronics]]<br />
<br />
;Allegro A3982<br />
:Improved over v1.2 in v2.2<br />
:also used in stepper motor driver v2.3<br />
<br />
;Allegro A3979<br />
:Abandoned due to tiny size in v2.1<br />
<br />
;Allegro A3977<br />
:Abandoned in stepper motor driver v2.0<br />
<br />
;Allegro A3967<br />
:Used in Easy Driver boards sold on [http://www.sparkfun.com/products/10267 sparkfun]<br />
:Not sure if they can be used in repraps but they're good for experimenting<br />
<br />
;Texas Instruments DRV8811<br />
:Used in [[generation 6 electronics]]<br />
:This is probably why the FiveD firmware was modified<br />
<br />
;L297/L298 combo<br />
:Last stepper motor driver to use this was v1.2<br />
:L298 used in [[Valkyrie Redux]]<br />
<br />
=== Microcontroller-based Stepper Drivers ===<br />
Microcontroller based steppers drivers can achieve very high rotation speeds in stepper motors. Using a microcontroller, it is possible to have extreme control over exactly how each individual coil is energized inside the motor. This is absolutely necessary to obtain high speeds because as speed increases, timing of the coils firing must be perfectly in sync. Quoting from [http://www.dr-iguana.com/prj_StepperDriver/ Dr. Iguana]:<br />
:If you've ever pushed someone on a swing, you know that a small, well timed push can cause that person to swing higher and higher. Miss a push or two by even a small amount and the 'power transfer' is significantly less. This is the situation in stepper motors at high speeds. If you don't match the pushes or steps to the actual state of the motor it will run poorly.<br />
<br />
In order to handle current higher than what the microprocessor can allow, the controller needs to use full H-bridge chips. <br />
<br />
Normally, an H-bridge is used for controlling a plain old DC-motor but in this case, the h-bridge chips are used for exactly controlling the amount of electricity that goes to each individual coil on the stepper motor. Thus, for bipolar stepper motors, it needs 2 chips per motor.<br />
<br />
== Open Source Stepper Drivers ==<br />
==== AVRSTMD ====<br />
<br />
The [http://www.avrstmd.com/ AVRSTMD] is an open source microcontroller-based stepper driver. It uses an atmega48 processor and two National Semiconductor LMD18245T current limited h-bridge chips.<br />
<br />
==== Dr. Iguana ====<br />
The Dr. Iguana stepper driver is based on a dsPic33 microcontroller and two L298N H-Bridge chips. It can achieve speeds up to 800 RPM. A very good source of information about microcontroller stepper drivers can be found on his website [http://www.dr-iguana.com/prj_StepperDriver/ here] along with all the schematics, gerber files, source code and BOM for the stepper driver.<br />
<br />
==== RepRap Stepper Motor Driver v1.x ====<br />
*obsolete*<br />
<br />
[[image:cache-2950488044_8ba115bd24_m.jpg|link=http://make.rrrf.org/smd-1.2]]<br />
<br />
The first generation of RepRap stepper motor drivers. <br />
(Note: These boards were used in the generation 2 collection of electronics.) Uses the L297/L298 stepper motor driver combo. Half-stepping. Handles up to 2A. All through hole. A nice, solid driver. It uses some old technology, so it's not as fancy as the newer stepper drivers, but it gets the job done. [[Stepper_Motor_Driver_1_2|Read the documentation page here]]<br />
<br />
=== RepRap Stepper Motor Driver v2.x ===<br />
*obsolete*<br />
<br />
[[image:cache-3218206144_6461b3e2c0_m.jpg|link=http://make.rrrf.org/smd-2.3]]<br />
<br />
The second generation of RepRap stepper motor drivers. <br />
(Note: These boards were used in the generation 3 collection of electronics but could be retrograded to generation 2.)<br />
<br />
Uses the Allegro A3982 chip which does a bunch of nice things and makes the board much simpler. It also drops the price by $10 compared to the v1.x series. It can handle up to 2A, and does half-stepping. The only downside is that it's SMT, which can be a bit scary for people. It's all large SMT parts, so it's pretty simple to solder, especially with the solder paste / hotplate method. [[Stepper_Motor_Driver_2_3|Read the documentation page here]].<br />
<br />
The [[PSMD Triple Axis Stepper Driver]] has all the same connectors and is a pin-compatible alternative to the RepRap Stepper Motor Driver v2.x.<br />
<br />
= Wiring Your Stepper =<br />
<br />
Pretty much all of our RepRap electronics are designed for Bipolar stepper motors. Every bipolar stepper motor has 4 wires that need to be wired to the driver board. These are labeled A, B, C, and D for lack of better terms. A and B are connected, as well as C and D. You can generally find out which wires are connected using a multimeter to measure the resistance. If you measure a small resistance (1-30 ohm) then they are connected. Generally, they are color coded and we have datasheets available, so things are easy.<br />
<br />
On motors with six wires, you'll find 4 pairs with low resistance and two pairs with double the low resistance. These two pairs with high resistance are the ones you want. Ignore the remaining two wires and proceed as if you had four wire steppers. In a datasheet it's the middle wire of each of both coils which has to be ignored.<br />
<br />
== Shortcut for finding the proper wiring sequence ==<br />
<br />
''Reproduced by kind permission of Rustle Laidman at StepperWorld.com [http://www.stepperworld.com/Tutorials/pgBipolarTutorial.htm]''<br />
<br />
Connect the 4 coil wires to the controller in any pattern. If it doesn't work at first, you only need try these 2 swaps:<br />
{| class="wikitable"<br />
|-<br />
| Name<br />
! A<br />
! B<br />
! C<br />
! D<br />
|-<br />
| Arbitrary first wiring order <br />
| 1<br />
| 2<br />
| 4<br />
| 8<br />
|-<br />
| Switch end pair <br />
| 1<br />
| 2<br />
| 8<br />
| 4<br />
|-<br />
| switch middle pair <br />
| 1<br />
| 8<br />
| 2<br />
| 4<br />
|}<br />
<br />
You're finished when the motor turns smoothly in either direction. If the motor turns in the opposite direction from desired, reverse the wires so that ABCD would become DCBA.<br />
<br />
NOTE: Some Reprap Electronics (such as RAMPS) will be looking for the endstops to be hooked up while testing the motor wiring as noted above. In this case you may see your motor move smoothly in one direction, but not at all in the other (as it thinks the endstop is triggered). If your firmware allows you to disable endstops you should do so for testing motor wiring, or alternatively you can connect the motor to the Extruder stepper motor connector to check that it moves smoothly in each direction.<br />
<br />
Another Note: The procedure above doesn't always work in two steps, (e.g, if your setup needs "1" matched with "4"). Swapping the 2nd with the 4th, then the 2nd with the 3rd would be more certain.<br />
<br />
== NEMA 17 Motors ==<br />
<br />
=== LDO Motors / LDO-42STH47-1684A ===<br />
<br />
[[image:42STH.jpg|link=http://ldomotors.en.alibaba.com/product/279157563-213421615/Stepping_Motor_42mm_NEMA17.html]]<br />
<br />
NEMA 17 (42MM) size hybrid stepper motor with followed main performance, widely used in 3D printer / CNC industrial. <br />
<br />
* 200 steps per revolution (1.8 deg/step)<br />
* 1.68 A/phase<br />
* Phase resistance: 1.65 ohm<br />
* Phase inductance: 2.8 mH<br />
* Holding torque: 5.0 Kg-cm (50N-cm)<br />
* Shaft diameter: 5 mm or 6.35mm<br />
* Shaft length: 24 mm or customize<br />
* Motor body length: 48mm<br />
<br />
'''Suppliers'''<br />
<br />
* [http://www.ldomotors.com LDO Motors]<br />
<br />
'''Technical Information'''<br />
<br />
* [http://ldomotors.en.alibaba.com/product/279157563-213421615/Stepping_Motor_42mm_NEMA17.html Datasheet]<br />
<br />
<br clear="all"/><br />
<br />
=== Lin Engineering / 4118S-62-07 ===<br />
<br />
[[image:cache-stepper-motor-nema17.jpg|link=http://store.makerbot.com/featured-products/nema-17-stepper-motor.html]]<br />
<br />
This is an awesome little NEMA 17 stepper motor. It is the primary motor used on the Cupcake CNC. It has good torque and a small size. Here are some of the specs:<br />
<br />
* 200 steps per revolution (1.8 deg/step)<br />
* 2.5 A/phase<br />
* Phase resistance: 0.6 ohm<br />
* Phase inductance: 0.93 mH<br />
* Holding torque: 3240 g-cm or about 31 N-cm<br />
* Shaft diameter: 0.190" [4.83 mm]<br />
* Shaft length: 0.50" [12.7 mm]<br />
* Motor depth: 1.34" [34 mm]<br />
<br />
NEMA 17 is a standard motor mounting geometry. The outside of the motor housing is 1.7" x 1.7".<br />
<br />
{| border="1"<br />
|-<br />
| '''Name''' || '''Pololu pin''' || '''Color''' <br />
|-<br />
| A || 2B || Red <br />
|-<br />
| B || 2A || Blue <br />
|-<br />
| C || 1A || Green <br />
|-<br />
| D || 1B || Black <br />
|}<br />
<br />
'''Suppliers'''<br />
<br />
* [http://store.rrrf.org/product_info.php?products_id=59 MakerBot Industries]<br />
<br />
'''Technical Information'''<br />
<br />
* [http://svn.makerbot.com/assets/datasheets/4118S-62-07.pdf Datasheet]<br />
<br />
* Page 9 of the [http://www.linengineering.com/LinE/contents/stepmotors/pdf/linengineering_catalog2006.pdf Lin Engineering catalog] explains the part numbering system for all Lin Engineering stepper motors.<br />
<br />
<br clear="all"/><br />
<br />
=== Zapp Automation / SY42STH47-1684B ===<br />
<br />
* 200 steps per revolution (1.8 deg/step)<br />
* Rated current: 1.68 A<br />
* Phase resistance: 1.65 ohm<br />
* Phase inductance: 2.8 mH<br />
* Holding torque: 4400 g-cm [43 N-cm]<br />
* Shaft diameter: 5 mm<br />
* Shaft length: 22 mm<br />
* Motor depth: 47 mm<br />
<br />
{| border="1"<br />
|-<br />
| '''Name''' || '''Pololu pin''' || '''Color''' <br />
|-<br />
| A || 1B || Black <br />
|-<br />
| B || 1A || Green<br />
|-<br />
| C || 2A || Blue<br />
|-<br />
| D || 2B || Red<br />
|}<br />
<br />
'''Suppliers'''<br />
<br />
'''Technical Information'''<br />
<br />
* [http://www.slidesandballscrews.com/pdf/steppermotors/SY42STH47-1684B.pdf Datasheet]<br />
<br />
== NEMA 23 Motors ==<br />
<br />
=== Nanotec ST5709S1208-B ===<br />
<br />
This was the original standard RepRap stepper motor. It has 400 steps to one revolution (0.9<sup>o</sup> per step). It actually has 4 coils (which means it can be wired as both a bipolar and unipolar), but we join up the wires to turn it into a bipolar motor.<br />
<br />
'''Bipolar - Serial'''<br />
<br />
This configuration is suited for our driver boards. It has higher impedance and higher resistance which means it draws less current. In this mode it can handle 0.85 amps, which is ideally matched to our L298 based boards. We recommend wiring it in this configuration.<br />
<br />
{| border="1"<br />
|-<br />
| '''Name''' || '''Color''' <br />
|-<br />
| A || Red <br />
|-<br />
| B || Black <br />
|-<br />
| C || Green <br />
|-<br />
| D || Yellow <br />
<br />
|}<br />
<br />
You will also need to splice the following wires together:<br />
<br />
* '''Red/White''' and '''Black/White'''<br />
* '''Green/White''' and '''Yellow/White'''<br />
<br />
[[image:cache-dsc03106.jpg|link=http://picasaweb.google.co.uk/VikOlliver/RepRap02/photo#5072881971638806162]]<br />
<br />
'''Bipolar - Parallel'''<br />
<br />
This configuration offers higher performance. It has lower impedance, and lower resistance. That means you can push more electrons through, at a faster rate. However, it will draw about 1.7 amps, which is at the upper end of what the L298 is capable of delivering. We do not recommend wiring it like this.<br />
<br />
Keep in mind that two wires make up the start and end of each coil.<br />
<br />
{| border="1"<br />
|-<br />
| '''Name''' || '''Color''' <br />
|-<br />
| A || Red and Black/White <br />
|-<br />
| B || Black and Red/White <br />
|-<br />
| C || Green and Yellow/White <br />
|-<br />
| D || Yellow and Green/White <br />
<br />
|}<br />
<br />
'''Suppliers'''<br />
<br />
* [http://uk.farnell.com/jsp/endecaSearch/partDetail.jsp?SKU=4743155 ST5709S1208-B stepper motor from Farnell]<br />
* [http://www.nanotec.com/page_product__st5709__en.html Nanotec Gmbh] - Supplier / Manufacturer<br />
<br />
'''Technical Information'''<br />
* [http://www.nanotec.com/downloads/pdf/1349/ST5709S1208.pdf Datasheet]<br />
* [http://www.nanotec.com/steppermotor_st5709.html#kennlinien Torque/Speed Curve]<br />
<br />
=== Keling KL23H51-24-08B ===<br />
<br />
[[image:cache-2122608287_2c91e1ae6e_m.jpg|link=http://flickr.com/photos/hoeken/2122608287/]]<br />
<br />
This is the RepRap stepper motor for the Arduino controller. It has 200 steps to one revolution (1.8<sup>o</sup> per step). It actually has 4 coils (which means it can be wired as both a bipolar and unipolar), but we join up the wires to turn it into a bipolar motor. It is much cheaper than the Nanotec, and with half-stepping it is almost as accurate.<br />
(The Keling KL23H51-24-08B is also used in the [[Eiffel]] prototype).<br />
<br />
'''Bipolar - Serial'''<br />
<br />
This configuration is suited for our driver boards. It has higher impedance and higher resistance which means it draws less current. In this mode it can handle 1.5 amps, which is ideally matched to our L298 based boards. We recommend wiring it in this configuration.<br />
<br />
{| border="1"<br />
|-<br />
| '''Name''' || '''Color''' <br />
|-<br />
| A || Blue <br />
|-<br />
| B || Green <br />
|-<br />
| C || Brown <br />
|-<br />
| D || White <br />
<br />
|}<br />
<br />
You will also need to splice the following wires together:<br />
<br />
* '''Red''' and '''Yellow'''<br />
* '''Black''' and '''Orange'''<br />
<br />
'''Bipolar - Parallel'''<br />
<br />
This configuration offers higher performance. It has lower impedance, and lower resistance. That means you can push more electrons through, at a faster rate. However, it will draw about 3 amps, which our L298 is just not capable of delivering. We do not recommend wiring it like this.<br />
<br />
Keep in mind that two wires make up the start and end of each coil.<br />
<br />
{| border="1"<br />
|-<br />
| '''Name''' || '''Color''' <br />
|-<br />
| A || Blue and Yellow <br />
|-<br />
| B || Red and Green <br />
|-<br />
| C || Brown and Orange <br />
|-<br />
| D || Black and White <br />
<br />
|}<br />
<br />
'''Suppliers'''<br />
<br />
* [http://store.makerbot.com/stepper-motor-nema-23-keling-kl23h51-24-08b.html MakerBot Industries]<br />
* [http://www.kelinginc.net/NEMA23Motor.html Keling Inc.] - The manufacturer/supplier. #5 on the list.<br />
<br />
'''Technical Information'''<br />
<br />
* [http://www.kelinginc.net/KL23H255-21-8A.pdf Datasheet]<br />
* [http://www.kelinginc.net/KL23H251-24-8BT.pdf Torque/Speed Curve]<br />
<br />
<br clear="all"><br />
<br />
=== FL57STH51-2808A (axis extending 1 way) and FL57STH51-3008B (axis 2 ways like the picture) ===<br />
<br />
[[image:StepperMotor-StepperFL57STH51-2808A.jpg|thumb]]<br />
<br />
The stepper motors are provided by [http://www.bitsfrombytes.com/ Bits From Bytes]. They come in two variations. Bought three from Bits From Bytes and I got one with the axis through and extending from both ends, and two with the axis extending one side. Their weight is slightly above 0.6 kg (I measured 619 gram).<br />
<br />
To make the unipolar stepper a bipolar one, connect these wires together:<br />
<br />
* Blue and Red/White<br />
* Green and Black/white <br />
<br />
{| border="1"<br />
|-<br />
| '''Name''' || '''Color''' <br />
|-<br />
| A || Blue/white <br />
|-<br />
| B || Red <br />
|-<br />
| C || Green/white <br />
|-<br />
| D || Black <br />
<br />
|}<br />
<br />
Datasheets: <br />
[http://www.motioncontrolproducts.co.uk/pdf/FL57STH51-3008B.pdf FL57STH51-3008B].<br />
[http://www.motioncontrolproducts.co.uk/pdf/FL57STH56-2008B.pdf FL57STH56-2008B]<br />
<br />
<br clear="all"><br />
<br />
=== Lin Engineering 5718X-05S ===<br />
<br />
[[image:StepperMotor-motor_5704.jpg|thumb]]<br />
<br />
The [http://www.linengineering.com//site/products/5718.html 5718X-05S] has the right specification to drive RepRap from the [[DarwinStepperController_1_2|PIC controllers]] '''but we haven't tested it yet'''. It should work with the Arduino electronics too. It has 200 steps per revolution, so you need to set the controller to half-step it to get the resolution needed. Take care to get the model where the output shaft comes out front and back, not just at the front.<br />
<br />
<br clear="all"><br />
<br />
<br />
==Stepper Motors==<br />
<br />
<br />
There is a good [http://en.wikipedia.org/wiki/Stepper_motor article on Wikipedia] explaining the technology behind stepper motors. The physical size of stepper motors are usually described via a US-based NEMA standard, which describes the bolt-up pattern and shaft diameter; the RepRap site has an [[NEMA_Motor|article explaining the standard]].<br />
In addition to the NEMA size rating, stepper motors also also rated by the depth of the motor in mm, the longer the motor typically the more powerful.<br />
Stepper motors also have a step size rating, 4 steps within each cycle. The step size, divided into 360 degrees gives the number of steps per revolution. For example, "1.8 degrees per full step" is a common step size rating, equivalent to "200 steps per revolution".<br />
<br />
Some stepper motor controllers generate 'microsteps' by generating a sine/cosine waveform for the stepper coils. The microsteps become less accurate then the full size steps, but allow finer control and smother operation. Also check the motor torque and the current draw to compare stepper motor strengths.<br />
<br />
<br />
The [[Mendel_Stepping_Motors|pages related to building a Mendel]] has a list of suppliers of stepping motors.<br />
<br />
The power of a motor is usually proportional to the physical size of the motor, The Darwin version of RepRap primarily used NEMA 24 motors, whereas the Mendel version is designed to use either NEMA 14 or NEMA 17 motors. The more commonly used size is NEMA 17 as it is easier to find NEMA 17 motors with sufficient torque compared to NEMA 14.<br />
<br />
The [[StepperMotor]] page has even more details about the most common motors used in a RepRap/RepStrap.<br />
<br />
==Torque==<br />
<br />
The Mendel officially requires 13.7 N-cm torque (0.137 N-m or 1400 g-cm or 1.215 lb-in) for each of the X, Y and Z axes. Recent designs for extruders ([[ExtruderController]]) almost exclusively require stepper motors as well, but no torque requirements have been given in those designs.<br />
<br />
Stepper motors do not offer as much torque or holding force as comparable DC servo motors or DC gear motors. Their advantage over these motors is one of positional control. Whereas DC motors require a closed loop feedback mechanism, as well as support circuitry to drive them, a stepper motor has positional control by its nature of rotation via fractional increments.<br />
<br />
==Power and current==<br />
<br />
All stepper motors will have certain specifications for voltage and current (typically 2.8 V and 1.68 A); as long as the stepper driver/controller does current control, you can use any supply voltage greater than the motor's rated voltage. In fact, a large difference is advantageous to the top speed of the motor. If the driver/controller does not do current control, you must use a supply voltage fairly close to the motor voltage (no more than 2x the voltage specified by the manufacturer) or the motor will overheat and burn out its winding insulation or demagnetize its rotor.<br />
<br />
The version 2.3 RepRap axis controllers do have current control.<br />
<br />
==Stepper drivers vs stepper controllers==<br />
<br />
To run a stepper motor, two things are normally required: a controller to create step and direction signals (at ±5 V normally) and a driver circuit which can generate the necessary current to drive the motor. In some cases, a very small stepper may be driven directly from the controller, or the controller and driver circuits may be combined on to one board.<br />
<br />
The stepper controller drives 3 wires -- traditionally labeled "step", "dir", "GND" -- which carry motion information to the stepper driver. (Often these 3 lines are opto-isolated at the front end of a stepper driver). The stepper controller is typically a pure digital logic device, and requires relatively little power.<br />
<br />
The stepper driver connects to the 4 thick wires of the stepper motor. It contains the big power transistors, and requires a thick power cable to a DC power supply, because all the power to drive the motors runs through it.<br />
<br />
==PWM and Stepper Drivers==<br />
From Wikipedia:[[http://en.wikipedia.org/wiki/Pulse-width_modulation]]:<br />
Pulse-width modulation (PWM) is a very efficient way of providing intermediate amounts of electrical power between fully on and fully off. A simple power switch with a typical power source provides full power only, when switched on. PWM is a comparatively recent technique, made practical by modern electronic power switches.<br />
<br />
Stepper drivers normally work by chopping up a supply voltage using an embedded PWM chip. These chips do require minor support circuitry (which is the primary thing you pay for when you buy a stepper driver). The PWM chips themselves usually have a unit price below 10 USD, depending mostly on their rated current. <br />
<br />
Some example chips include:<br />
{| border="1"<br />
||Chip<br />
|Verified?<br />
|Max current<br />
|Comments<br />
|-<br />
|[[http://www.google.com/search?q=L293D L293D]<br />
|Yes<br />
|0.6 A<br />
| Multiples can be stacked on top of each other to divide up amperage. <br />
|-<br />
|[[http://www.google.com/search?q=A3967 A3967]]<br />
|No<br />
|0.75 A<br />
|Slightly underpowered, at only 750 mA/phase<br />
|-<br />
|[[http://www.google.com/search?q=A4983 A4983]]<br />
|Yes<br />
|2 A<br />
|Can get very warm, active cooling is needed<br />
|-<br />
|[[http://www.google.com/search?q=A4988 A4988]]<br />
|Yes<br />
|2 A<br />
|Identical and pin compatible to A4983, but also pullup on M1 and motor short circuit protection<br />
|-<br />
|[[http://www.google.com/search?q=+Allegro+3977+chip Allegro 3977]]<br />
|No<br />
|2.5 A<br />
|<br />
|-<br />
|[[http://www.google.com/search?q=TB6560 TB6560]]<br />
|No<br />
|2.5 - 3 A<br />
|<br />
|}<br />
<br />
==Stepper drivers==<br />
<br />
Sourcing stepper motor drivers can be a bit difficult. The RepRap V2.3 stepper drivers are very hard to purchase pre-assembled. Sourcing the individual parts and assembling the controllers can be done with just a little bit of skill; for those without skills or materials to assemble the boards, generic stepper drivers can be purchased. In Europe it will usually be more cost-effective to purchase pre-assembled boards than to purchase the individual parts and perform a DIY assembly.<br />
<br />
{| border="1"<br />
|+<br />
====Alternative sources for stepper drivers====<br />
|Manufacturer<br />
|Verified?<br />
|Location<br />
|Max current<br />
|Microstepping<br />
|Comments<br />
|-<br />
|[[Stepper Motor Driver 2.3 (A3982)]]<br />
|Yes<br />
|US<br />
|2 A<br />
|1/2<br />
|Listed for comparison.<br />
|-<br />
|[http://www.sparkfun.com/commerce/product_info.php?products_id=9402 EasyDriver (A3967)]<br />
|Yes<br />
|US<br />
|0.75 A<br />
|1/8<br />
|Slightly underpowered compared to other drivers, at only 750 mA/phase. [[User:bothacker|bothacker]] uses EasyDriver[http://bothacker.com/2010/01/21/my-electronics-setup/], and reports that it has plenty sufficient power for Mendel. Recommended.<br />
|-<br />
|[[Pololu stepper driver board]]<br />
|Yes<br />
|US<br />
|2 A<br />
|1/16<br />
|Can get very warm; active fan cooling or passive small heatsink is needed above ~0.5 A. Recommended.<br />
|-<br />
|[http://stores.ebay.com/autohec 4 Axis Stepper Motor Driver Controller (A3977)]<br />
|Yes<br />
|US<br />
|2.5 A<br />
|1/8<br />
|4 stepper drivers on a single board. <br />
|-<br />
|[http://www.diycnc.co.uk/html/driver25.html DIY CNC]<br />
|No<br />
|GB<br />
|2.5 A<br />
|1/8<br />
|Can drive 1 stepper; discount when buying several.<br />
|-<br />
|[http://www.adafruit.com/index.php?main_page=product_info&products_id=81 Arduino Motor Shield]<br />
|No<br />
|US<br />
|0.6 A<br />
|?<br />
|Requires Arduino as controller. Can drive 2 servos, 4 DC, or 2 (bipolar or unipolar) steppers. Website notes that you can increase the max current by piggy-backing (soldering a chip onto a chip) another L293D chip on top of the first (and another one on top of that)<br />
|-<br />
|[http://shop.ebay.com/?_from=R40&_trksid=p3907.m38.l1313&_nkw=4+axis+TB6560&_sacat=See-All-Categories TB6560AHQ based]<br />
|No<br />
|GB/PRC<br />
|1.5 - 3 A<br />
|1, 1/2, 1/8, 1/16<br />
|Can drive 3 to 5 steppers depending on model; [[4_Axis_TB6560_CNC_Stepper_Motor_Driver_Board_Controller|read more]].<br />
|-<br />
|[http://forums.reprap.org/read.php?94,34406 Stepper Driver 2.3 Clone by kymberlyaandrus]<br />
|Yes<br />
|US<br />
|2 A<br />
|1/2<br />
|Same schematic but physically smaller than the original version. The trim pot doesn't have a start/end point so adjusting the current can be more difficult than other boards. The terminal blocks are nice because they don't require making special connectors.<br />
|-<br />
|[http://www.geckodrive.com/product.aspx?c=3&i=14469 Gecko Drive]<br />
|Yes<br />
|US<br />
|3.5 A<br />
|1/10 (only)<br />
|Can drive 4 steppers<br />
|-<br />
|[http://de.nanotec.com/schrittmotor_steuerungen_smc11.html Nanotec SMC11]<br />
|Yes<br />
|GER<br />
|1.4 A<br />
|1/16<br />
|with cooling until 2.5 A<br />
|-<br />
|[http://massmind.org/techref/io/stepper/linistep/ LiniStepper] by Roman Black<br />
|no<br />
|US<br />
|3 A<br />
|1/18 and "stepless"<br />
|Open Source: Circuit Diagram, PCB (Board) Layout, and PIC Software all available.<br />
|-<br />
|[[Tri Duino Stepper]]<br />
|???<br />
|???<br />
|???<br />
|???<br />
|Open Source<br />
|-<br />
|[[A3979breakout]]<br />
|???<br />
|???<br />
|???<br />
|???<br />
|???<br />
|-<br />
|[http://www.synthetos.com/wiki/index.php?title=Projects:grblShield grblshield]<br />
|No<br />
|US<br />
|2.5<br />
|1/8<br />
|3 axis controller plugs onto Arduino Uno or similar<br />
|}<br />
<!--<br />
|Manufacturer<br />
|Verified?<br />
|Location<br />
|Max current<br />
|Microstepping<br />
|Comments<br />
--><br />
<br />
[http://PMinMO.com/driver-comparison PMinMo stepper motor driver comparison].<br />
<br />
==Mid-Band Resonance Compensation==<br />
Gecko drivers have a feature called mid-band resonance compensation which keeps stepper motors from stalling due to resonance issues that can occur when the motor is turning in the range of 5-15 RPMs. This can be very useful when controlling the steppers on a Tiag mill, for example. However, the stepper motors in a Mendel never run anywhere near that range, so mid-band resonance compensation provides no benefit to a Mendel build.<br />
<br />
= Troubleshooting =<br />
<br />
== Pololu Modules ==<br />
* Stepper Motor is "jittering"<br />
** The Pololu modules shut down when they're too hot - ensure that you have proper cooling<br />
* Stepper motor draws too much amps<br />
** The Pololu modules have a small SMD potentiometer with which you can adjust the current. Connect only one stepper at each time and adjust the amps until you're satisfied with the setting.<br />
** Adjust the amps so that the steppers are still holding the torque, but don't get too hot. Personally, I go near the amps which is specified per coil.<br />
<br />
= Further reading =<br />
<br />
* [[Alternative electronics]] has some design considerations for people designing stepper motor controllers and other reprap electronics.<br />
* The [http://pminmo.com/PMinMOwiki/index.php5?title=Motors PMinMO wiki: "Motors"] article gives some recommendations for CNC motor selection.<br />
* The [http://opencircuits.com/Motor_driver Open Circuits wiki "motor driver"] article has a long list of open-source stepper motor drivers, and related information.<br />
* Some [[Wikipedia: linear actuator#Electro-mechanical actuators]], rather than the motor spinning the lead screw as in most CNC designs, instead the motor spins an internal lead nut, pulling the motor up and down a (non-spinning) lead screw that passes all the way through the motor. The electronics works identically to other stepper motors -- standard stepper motor electronics can drive it. One RepRap researcher points out that this makes the mechanics simpler and, with a few changes to the design, could potentially lower total cost of a RepRap.[http://www.3dreplicators.com/cgi-bin/cblog/index.php?/archives/391-Engaging-the-windmill.html][http://builders.reprap.org/2008/04/first-tests-of-haydon-linear-actuator.html][http://www.3dreplicators.com/cgi-bin/cblog/index.php?/archives/454-Selecting-a-linear-actuator-for-the-T2-z-axis.html]<br />
* [http://www.stepperworld.com/Tutorials/ Stepper World] has a great series of articles about how stepper motors work.<br />
* [http://whatisacnc.com/index.php/stepper-motors./ CNC Information] has some information on how stepper motors work along with many other CNC related categories. <br />
<br />
[[Category:General motion control]]</div>Sblivenhttps://reprap.org/mediawiki/index.php?title=Talk:Prusa_Mendel_(iteration_2)&diff=65921Talk:Prusa Mendel (iteration 2)2012-09-20T18:33:00Z<p>Sbliven: Discrepancy between BOM and parts STL</p>
<hr />
<div>Yay, deicded the page need a re-write.<br />
I ended up getting the wrong bits for my i2 so got fed up and updated the page.<br />
<br />
== Belt Clamp nut holders ==<br />
<br />
Are 4 belt clamp nut holders really necessary? The current STLs for the 4-plate print only contain 2 nut holders. Do I need to print an extra 2?<br />
--[[User:Sbliven|Spencer]] 18:33, 20 September 2012 (UTC)</div>Sblivenhttps://reprap.org/mediawiki/index.php?title=Talk:UniversalPenTouchProbe&diff=60444Talk:UniversalPenTouchProbe2012-06-20T17:28:02Z<p>Sbliven: Created page with '==Title== The title of this project seems to be the "Universal pen holder and touch probe". Anyone object to moving the page to that title, rather than the existing camel-case ab…'</p>
<hr />
<div>==Title==<br />
The title of this project seems to be the "Universal pen holder and touch probe". Anyone object to moving the page to that title, rather than the existing camel-case abbreviation? --[[User:Sbliven|Spencer]] 17:28, 20 June 2012 (UTC)</div>Sblivenhttps://reprap.org/mediawiki/index.php?title=UniversalPenTouchProbe&diff=60443UniversalPenTouchProbe2012-06-20T17:19:13Z<p>Sbliven: Deleted table of contents section (added automatically by wiki)</p>
<hr />
<div>{{Development<br />
|name = Universal Pen Touch Probe<br />
|description = documenting a generic tool/artpiece<br />
|license = [[GPL]]<br />
|author = AndyKirby<br />
|reprap = ?<br />
|categories = [[:Category:Tool Head|Tool Head]]<br />
}}<br />
<br />
= Universal Pen Holder and Touch Probe Tool Head =<br />
<br />
== Introduction ==<br />
<br />
Having read and been inspired by [http://www.indoor.flyer.co.uk/probe.htm Homebrew Touch Probe], [http://www.brusselsprout.org/CNC/1P-Probe/ The "One Penny" Touch Probe], the work done by [http://builders.reprap.org/2008/04/plotting-gerber-files.html Greenarrow] and ongoing discussion re PCB Prototyping on the Rep Rap Forum. I was looking for a way to combine as much of this as possible into a useful, simple and most importantly cost effective Tool Head. <br />
<br />
I wanted to make a tool head that could take a number of different pens, one at a time. That would tell me when the pen tip was dragging or touching on the surface of the work piece. Where the pen "touched down" destructively I wanted the tool head to give a little so as to reduce damage to the pen tip.<br />
<br />
Recovering from a "touch down" the pen should ideally return as close to it's centered position as possible.<br />
<br />
In achieving all of the above using the techniques used by touch probes it is a minor step forward to make a pen insert that is actually a probe and can be used to touch digitize (although very slowly) a three dimensional object.<br />
<br />
Again a minor step forward is to use the touch tool head to check the Z Axis Bed alignment and it's degree of parallelism with respect to the carriage assembly.<br />
<br />
All in all the components are readily and cheaply available, no special machine tools are needed. Total build cost should come in at around 10 UKP or less where you have the parts already to hand.<br />
<br />
== Making the Tool Head ==<br />
<br />
=== Pen Holder ===<br />
<br />
The Pen holder is made from the following parts :<br />
<br />
# One plastic 20mm Conduit Male Adapter<br />
# One plastic 20mm Conduit Coupling<br />
# One piece of plastic 20mm Conduit 70mm Long<br />
# Three M3 Pan Head Machine Screws with nuts and washers<br />
# A light Spring of minimum ID 28mm<br />
# A spring retaining disk ID 20mm by OD 34mm (Make the disk OD greater than your spring OD or it won't work)<br />
# A Jubilee or Hose Clip which will wind down to at least 16mm and open up to at least 22mm<br />
<br />
If like me you had problems finding a spring you can wind one using springy wire. I used a 20mm Conduit coupling for the former. The OD of these is approx 24mm. A 1.5mm stainless steel welding rod was used for the wire. Stainless Steel being what it is does not like being tightly wound around the former and expands to a useful ID of approx 28mm when you let go.<br />
<br />
The collected parts should look something like this :<br />
[[image:UniversalPenTouchProbe-parts.JPG|thumb|left|Pen Holder Parts]]<br />
{{-}}<br />
<br />
We don't really need all of the coupler just one half of it. Measure down inside the coupler the depth to the first edge of the shoulder. There is usualy a shoulder in the middle to stop the conduit going all the way through. Mark this depth on the outside of the coupler then make a cutting line around the coupler. <br />
<br />
The easiest way to get a just about square (with the pipe ends that is) cut line around a pipe is to use a strip of paper with a straight edge. wind the strip around the pipe align the top edges together and with the mark you have measured and made on the pipe. This is then pretty much a straight edge. Run round it with a pen to make your cut line. I use post it notes as the gummed edge keeps it in place once I have lined it all up.<br />
<br />
[[image:UniversalPenTouchProbe-marking.JPG|thumb|Making Cut Marks]]<br />
<br />
Cut along your line and discard the half of the coupler that has the shoulder in it. <br />
<br />
The best saw I have found for cutting plastics is a fine toothed joiners tenon saw. The teeth are big enough to run clog free and the blade stiff enough to give a straight cut. If you have it you can also use a Mitre Box to get better cuts. <br />
<br />
Alternatively you could use a pipe cutter and save yourself the fuss of marking the full cut line as these usually cut fairly square anyway.<br />
<br />
Mark up the conduit side of your Male Adapter with three marks spaced at 120 degrees around the circumference. You can use whatever measuring tools you prefer to do this or cut out the template and use this.<br />
<br />
Insert one end of the short length of conduit into the Adapter and lightly score a drilling guide around the conduit using the edge of the Adapter as a ruler edge. Transfer the three 120 Degree markings on to the guide line you have just scored and punch centers or drill guide holes where they cross the drilling guide.<br />
<br />
[[image:UniversalPenTouchProbe-pinmarks.JPG|thumb|Drill Guides on Conduit and Adapter]]<br />
<br />
Slide the half of the coupler you kept onto the conduit and up against the edge of the Adapter. Use the best edge ie the one you didn't cut. Transfer the 120 Degree marks to the edge of the half coupler from the Adapter. Some couplers have tiny ridges along the inner bore that effectively make the coupler a tight tapered fit to the conduit. You may need to sand these off with a bit of wet & dry wrapped round a drill bit before the coupler half will slide easily onto the short conduit.<br />
<br />
Dismantle it all and proceed to cut out the holes that will hold the M3 bolt heads. My bolt heads had a diameter of 6mm so drill three 6mm holes though the short length of conduit where you have marked them ie at 120 degree intervals around it's circumference. Use a round file of approx 3mm Diameter and file in indents to both the Adapter and Half coupler edges 3mm across and 1.5mm deep. Again if you don't have a file of this size wrap some fine sand paper around a drill bit of the right size or close to it and use this.<br />
<br />
The end results should look something like this:<br />
[[image:UniversalPenTouchProbe-rdy2fit.JPG|thumb|left|Ready To Fit]]<br />
{{-}}<br />
<br />
Trial fit the pieces together but this time put the bolts in. It should look something like this:<br />
[[image:UniversalPenTouchProbe-dryfit.JPG|thumb|left|Dry Fit With Bolts]]<br />
{{-}}<br />
<br />
At the opposite end of the short length of conduit from the Adapter measure down 20mm and mark a cut line around it's circumference. You will not be cutting around this line.<br />
<br />
Use a saw to cut a cross through the end of the conduit you have just marked. Cut each cross cut down as far as the 20mm cut line you have just marked.<br />
<br />
When you are happy Glue the plastic parts together using the Solvent Weld Adhesive produced specifically for the plastic conduit you are working with. When it is firmly set make sure the bolt heads are flush inside the conduit and do up the outside nuts as tight as they will go without damaging the plastic. This should pull the bolt heads flush into the plastic and embed them in the in any remaining soft plastic/adhesive.<br />
<br />
The finished result should look something like this:<br />
[[image:UniversalPenTouchProbe-glued.JPG|thumb|left|Pen Holder Glued]]<br />
{{-}}<br />
<br />
Finally, just add on the Spring, Spring Retainer Disk and hose clip and you are all done with the Pen Holder for now.<br />
[[image:UniversalPenTouchProbe-asmbld.JPG|thumb|left|Pen Holder Fully Assembled]]<br />
{{-}}<br />
=== Mounting ===<br />
<br />
The Mounting is made from the following parts:<br />
<br />
# One mounting plate cut and drilled as per supplied template.<br />
# Three M5 bolts with two washers and a nut each, use over length bolts and trim to fitted length.<br />
# Six M3 Pan Head bolts with three washers and a nut each, use over length bolts and trim to fitted length.<br />
<br />
The Darwin Mounting is modeled off the [TobyBorlandOriginal PlyRap Toby Borland Original] I am currently building. It bolts straight on to the carriage assembly using the carriage assembly's existing mounting holes, no modification necessary.<br />
<br />
Choose your material for your mounting, print out the template, tape it on to your material and mark, punch, drill and cut your way to something that looks like this:<br />
[[image:UniversalPenTouchProbe-mplate.JPG|thumb|left|The Finished Mounting Plate]]<br />
{{-}}<br />
<br />
I used some 8mm MDF I had already got lying around.<br />
<br />
Insert the six 3mm pan head machine screws with two washers as spacers on the top side and one washer to the lower side, allow a little on the under side to take either solder or crimp tags and an additional nut and washer for making connections then mark and trim your M3's to length. The two washers on the top side space the pen holder off just enough to prevent the pen holder pin nuts from catching on the mounting plate. <br />
<br />
Double check that the M3 Heads and washers that the pen holder pins will rest on are not touching or the touch sensing won't work.<br />
<br />
Take your already constructed pen holder assembly remove the spring and retaining disk then pass the spring end of the pen holder through the mounting plate, rest each pin on the pen holder between a pair of bolt heads on the mounting plate.<br />
<br />
Put the spring over the bottom and sandwich it between the mounting plate and retaining disk, fix it all in place using the screw ring on the adapter. Make alignment marks on both the mounting plate and pen holder. It is normal for the pen holder to be a little off center, the alignment marks will make sure that your adjustments don't interfere with each other, by ensuring you put everything back the correct way around each time you take it apart.<br />
<br />
Tweaking time, gently bend the pins on the pen holder until the whole thing sits comfortably with each pin making a short circuit between each pair of bolt heads and the pen body is at exactly 90 degrees to the plain of the mounting plate.<br />
<br />
Check your spring and retaining washer is not fouling any of the M3 bolts that pass through the mounting plate. Trim the contact bolts where necessary.<br />
<br />
Finally now is the time to adjust your spring, prune off any unnecessary turns and open out the spring until you achieve a firm but not excessive pressure between the pen holder pins and the contact M3's. The washers are just larger than the heads of the bolts, you may need to file flat's on the faces of either or both the washers and bolt heads that are closest to get the clearance necessary. I didn't need to do this but they are very close. <br />
<br />
The end result should look something like this:<br />
[[image:UniversalPenTouchProbe-phmfassy.JPG|thumb|left|Pen Holder and Mounting Assembled]]<br />
{{-}}<br />
<br />
Use a multimeter on the resistance setting to test each pair of contact bolts, make sure non of the pairs are shorted out or making a partial contact with each other. (Tip: remove the pen holder before doing this as the pen holder pins intentionally shorts the contacts together). With the pen holder in place on the mounting test each pair of contact pins to ensure that their is a circuit between each contact and that rocking the pen holder in the correct direction breaks the circuit.<br />
<br />
=== Touch Sensing ===<br />
<br />
The Touch Sensing Wiring is made from the following parts:<br />
<br />
# Six crimp on ring terminals<br />
# Two pieces of tinned copper wire<br />
# A pair of wires to take your connection back to the controlling electronics.<br />
# Six M3 Nuts.<br />
<br />
The collected parts should look something like this:<br />
[[image:UniversalPenTouchProbe-wires.JPG|thumb|left|The Wires Needed]]<br />
{{-}}<br />
<br />
I used standard small size insulated automotive ring terminals and cut off the insulation to make them less bulky.<br />
<br />
Crimp terminals onto each one of the wire pairs and one each onto a piece of tinned copper wire. Fasten these four on to the M3 contact posts using M3 nuts. Bend your wire to shape so that it goes around the spring with plenty of clearance and mark up the free end of the wire. Crimp on the remaining two terminals to the free ends of both pieces of tinned wire using the marks as a guide for where to crimp them. Trim off any surplus. Connect the two terminals you have just crimped to the remaining terminal posts using M3 nuts.<br />
<br />
The results should look something like this:<br />
[[image:UniversalPenTouchProbe-wiring.JPG|thumb|left|Wiring Complete]]<br />
{{-}}<br />
<br />
I have drilled a small hole through my mounting plate to take the wires out of the top side out of the way. You may choose to route your wiring differently.<br />
<br />
Mount your completed tool head onto your Cartesian Bot. Check continuity with a multimeter. You may find that the closed circuit resistance is quite high. Mine was of the order of 40 to 80 Ohms. The contact surfaces of standard BZP Machine Screws are a touch grim but are adequate for our needs. Replacing the material with a better conductor and gold plating it would improve this.<br />
<br />
The finished item should look something like this:<br />
[[image:UniversalPenTouchProbe-finished.JPG|thumb|left|Finished Tool Head Mounted]]<br />
{{-}}<br />
<br />
In practice a closed circuit means that the pen/probe tip is in free air, an open circuit means that the pen/probe has bumped into something. For such a simple device it is surprisingly sensitive.<br />
<br />
The probe output can be connected to an analogue or digital input. I recommend that a "Pull-Up" resistor is added connecting the analogue/digital input to either a voltage reference or the positive power rail.<br />
<br />
Due to the wide range of contact resistance that defines the closed circuit state, if used with a digital input it could be beneficial to clean up the signal using a Schmitt trigger circuit or use a digital input that has Schmitt trigger capability inbuilt.<br />
<br />
Alternatively use either a spare analogue input or your unused extruder heater/thermistor analogue input to measure the returned voltage and apply the software equivalent of thresholding or Schmitt triggering. A little bit of de-bounce wouldn't hurt either.<br />
<br />
=== Probe ===<br />
<br />
Here's a simple touch probe.<br />
<br />
[[image:UniversalPenTouchProbe-TP1.JPG|thumb|Touch Probe Parts]]<br />
<br />
The parts are a piece of 16mm by 80mm acetal rod drilled out by 2.5mm drill to a depth of 20mm and a stiff pin which is actually a slide rail from the head assembly of a CD-ROM drive I junked a while back. <br />
<br />
[[image:UniversalPenTouchProbe-TP2.JPG|thumb|Touch Probe Assembled]]<br />
<br />
Here it is assembled. Something which is dificult to see from any of the photographs is that the lower end of all the adapters has a slight taper filed around it. This is to centre the forward end of the adapter sleeve into the internal shoulder of the Male Conduit Adapter.<br />
<br />
[[image:UniversalPenTouchProbe-TPfinished.JPG|thumb|Touch Probe on Darwin]]<br />
<br />
Here it is fitted, once clamped up the taper at the lower end ensures that the accessory doesn't wobble about in the holder. You may want to grind either a point or ball tip onto the touch pin. This will give you finer resolution, how sharp a point you grind depends on what material you are wanting perforate/not-perforate with it.<br />
<br />
=== Pen Adapter Sleeves ===<br />
<br />
An adapter sleeve is basically anything that you press into service so as to increase the diameter of your pen's barrel or length such that it fits the pen holder.<br />
<br />
[[image:UniversalPenTouchProbe-withpen.JPG|thumb|Tool Head With Pen in Holder]]<br />
<br />
Here I have actually used the pens cap.<br />
<br />
The objective is to remove any movement of the pen within the holder so that you can plot and digitize with acceptable precision.<br />
<br />
Suggestions:<br />
<br />
# Insulating tape wound around the barrel of your pen top and bottom to make up the diameter.<br />
# A sleeve made from plastic tubing that makes up the difference, ie Plastruct.<br />
# Turn a sleeve from bar stock of the correct Outside diameter.<br />
# Drill a sleeve from bar stock of the correct Outside diameter.<br />
# Use balsa wood dowel or ordinary wood dowel as bar stock.<br />
<br />
Here's one I prepared earlier<br />
<br />
[[image:UniversalPenTouchProbe-PAS1.JPG|thumb|Pen Adapter Sleeve Parts]]<br />
<br />
The sleeve is made from Acetal (Delrin) Rod I could buy the Acetal Rod quite cheaply over the internet 1 Metre cost approximately 2.50 UKP as each sleeve/adapter is around 80mm long this should be enough to make 12 for less than 0.25 UKP each. <br />
<br />
Again the lower end has a small taper filed around it. The back end has a cross cut into it so that the hose clip grips everything together snugly. You will not that the hole for the pen is a little off center. My drill is not exactly a precision instrument. However this doesn't actually matter providing you don't move the pen in its holder during the print run.<br />
<br />
[[image:UniversalPenTouchProbe-PASfinished.JPG|thumb|Pen Adapter Sleeve with Pen on Darwin]]<br />
<br />
Above you can see the Sleeve and Pen mounted securely on my Darwin Cartesian Bot.<br />
<br />
=== Templates ===<br />
<br />
The templates in PDF and DXF formats are here. Print them out on paper and then follow the directions on them to use them.<br />
<br />
Before spending a lot of time on the templates check the printed test dimensions against what the templates say they should be just in case your printer and driver combo scales the image out of true.<br />
<br />
* UPH Template File PDF Format: [[file:UniversalPenTouchProbe-uphtplate.pdf]]<br />
<br />
* UPH Template File DXF Format: [[file:UniversalPenTouchProbe-uphtplate.dxf]]<br />
<br />
=== More Pens and Accesories ===<br />
<br />
Q. Do you keep stationary?<br/><br />
A. Yes until they get close then I go wild!!<br />
<br />
==== Drawing Pen ====<br />
<br />
We need to have some suggestions and thoughts about this particular class of pen.<br />
<br />
==== Staedtler Lumocolour Pen ====<br />
<br />
Red-Ink Lumocolor pens - permanent type.<br />
<br />
These ink pens are available in permanent and non permanent varieties and come in a range of tip sizes from Broad through Medium and Fine to Super Fine.<br />
<br />
Conveniently they are all the same body size so one adapter fits a whole bunch of pens. The pen body is a simple parallel tube approx 10mm in diameter. This makes them an easy starter pen to make a simple adapter sleeve for. <br />
<br />
The permanent varieties are water proof and can be used as etch and photo resist ink pens. They are also readily available and relatively inexpensive.<br />
<br />
==== HP Plotter Pen ====<br />
<br />
There are many Plotter pens that can be used with a suitable adapter, including a drag knife for cutting sticky backed vinyl, labels etc.<br />
<br />
=== Refinements ===<br />
<br />
The electrical contacts in this case were made using Bright Zinc Plated M3 Pan Head Machine Screws.<BR><br />
<br />
Logical improvements are:{{-}}<br />
<br />
* Replace the bolts with a material that can be gold plated and electroplate them to ensure a longer contact life.<br />
* Screw an internally threaded tube over the M3 contact pins that has again been gold plated to improve the contact surface.<br />
* Add an LED to the tool head so the bed alignment can be checked without really needing the drive electronics to be present.<br />
* Scale up the assembly to be able to take larger pen and syringe types (create an RP variant)<br />
* Use the assembly with an ink resist pen to create a printed circuit board to replace the wires connecting the contacts together.<br />
* Create an RP version that is based on the Darwin interchangeable tool head designs.<br />
* Modify the contact assembly to work with an R,2R resistor ladder so it can resolve the direction of impact upon the touch sensor using A to D techniques.<br />
<br />
== Uses for the Tool Head ==<br />
<br />
* CNC Etch a Sketch.<br />
* Pen Plotting.<br />
* Checking the Cartesian Bot's Z Axis Alignment.<br />
* Digitizing your own hand made components for printing.<br />
* Photo plotting (You need to add a light pen, light source and shutter or switch to do this).<br />
* Simple PCB prototyping through direct application of etch or photo resists.<br />
* Pick and Place (You will need a pick and place pen together with vacuum source and on/off control).<br />
* Solder Paste Dispenser (You will need a syringe and needle dispenser combo together with a compressed air source and controller).<br />
* Drawing templates directly onto the material they will be cut from. <br />
<br />
== Acknowledgments ==<br />
<br />
-- Main.AndyKirby - 29 Aug 2008<br />
<br />
[[Category:Toolheads]]<br />
[[Category:PenHolderToolheads]]<br />
[[Category:Scanning]]</div>Sblivenhttps://reprap.org/mediawiki/index.php?title=UniversalPenTouchProbe&diff=60442UniversalPenTouchProbe2012-06-20T17:18:14Z<p>Sbliven: Reformatted the images to make their position in the text clearer. Added captions.</p>
<hr />
<div>{{Development<br />
|name = Universal Pen Touch Probe<br />
|description = documenting a generic tool/artpiece<br />
|license = [[GPL]]<br />
|author = AndyKirby<br />
|reprap = ?<br />
|categories = [[:Category:Tool Head|Tool Head]]<br />
}}<br />
<br />
= Universal Pen Holder and Touch Probe Tool Head =<br />
<br />
== Table of Contents ==<br />
<br />
---<br />
<br />
== Introduction ==<br />
<br />
Having read and been inspired by [http://www.indoor.flyer.co.uk/probe.htm Homebrew Touch Probe], [http://www.brusselsprout.org/CNC/1P-Probe/ The "One Penny" Touch Probe], the work done by [http://builders.reprap.org/2008/04/plotting-gerber-files.html Greenarrow] and ongoing discussion re PCB Prototyping on the Rep Rap Forum. I was looking for a way to combine as much of this as possible into a useful, simple and most importantly cost effective Tool Head. <br />
<br />
I wanted to make a tool head that could take a number of different pens, one at a time. That would tell me when the pen tip was dragging or touching on the surface of the work piece. Where the pen "touched down" destructively I wanted the tool head to give a little so as to reduce damage to the pen tip.<br />
<br />
Recovering from a "touch down" the pen should ideally return as close to it's centered position as possible.<br />
<br />
In achieving all of the above using the techniques used by touch probes it is a minor step forward to make a pen insert that is actually a probe and can be used to touch digitize (although very slowly) a three dimensional object.<br />
<br />
Again a minor step forward is to use the touch tool head to check the Z Axis Bed alignment and it's degree of parallelism with respect to the carriage assembly.<br />
<br />
All in all the components are readily and cheaply available, no special machine tools are needed. Total build cost should come in at around 10 UKP or less where you have the parts already to hand.<br />
<br />
== Making the Tool Head ==<br />
<br />
=== Pen Holder ===<br />
<br />
The Pen holder is made from the following parts :<br />
<br />
# One plastic 20mm Conduit Male Adapter<br />
# One plastic 20mm Conduit Coupling<br />
# One piece of plastic 20mm Conduit 70mm Long<br />
# Three M3 Pan Head Machine Screws with nuts and washers<br />
# A light Spring of minimum ID 28mm<br />
# A spring retaining disk ID 20mm by OD 34mm (Make the disk OD greater than your spring OD or it won't work)<br />
# A Jubilee or Hose Clip which will wind down to at least 16mm and open up to at least 22mm<br />
<br />
If like me you had problems finding a spring you can wind one using springy wire. I used a 20mm Conduit coupling for the former. The OD of these is approx 24mm. A 1.5mm stainless steel welding rod was used for the wire. Stainless Steel being what it is does not like being tightly wound around the former and expands to a useful ID of approx 28mm when you let go.<br />
<br />
The collected parts should look something like this :<br />
[[image:UniversalPenTouchProbe-parts.JPG|thumb|left|Pen Holder Parts]]<br />
{{-}}<br />
<br />
We don't really need all of the coupler just one half of it. Measure down inside the coupler the depth to the first edge of the shoulder. There is usualy a shoulder in the middle to stop the conduit going all the way through. Mark this depth on the outside of the coupler then make a cutting line around the coupler. <br />
<br />
The easiest way to get a just about square (with the pipe ends that is) cut line around a pipe is to use a strip of paper with a straight edge. wind the strip around the pipe align the top edges together and with the mark you have measured and made on the pipe. This is then pretty much a straight edge. Run round it with a pen to make your cut line. I use post it notes as the gummed edge keeps it in place once I have lined it all up.<br />
<br />
[[image:UniversalPenTouchProbe-marking.JPG|thumb|Making Cut Marks]]<br />
<br />
Cut along your line and discard the half of the coupler that has the shoulder in it. <br />
<br />
The best saw I have found for cutting plastics is a fine toothed joiners tenon saw. The teeth are big enough to run clog free and the blade stiff enough to give a straight cut. If you have it you can also use a Mitre Box to get better cuts. <br />
<br />
Alternatively you could use a pipe cutter and save yourself the fuss of marking the full cut line as these usually cut fairly square anyway.<br />
<br />
Mark up the conduit side of your Male Adapter with three marks spaced at 120 degrees around the circumference. You can use whatever measuring tools you prefer to do this or cut out the template and use this.<br />
<br />
Insert one end of the short length of conduit into the Adapter and lightly score a drilling guide around the conduit using the edge of the Adapter as a ruler edge. Transfer the three 120 Degree markings on to the guide line you have just scored and punch centers or drill guide holes where they cross the drilling guide.<br />
<br />
[[image:UniversalPenTouchProbe-pinmarks.JPG|thumb|Drill Guides on Conduit and Adapter]]<br />
<br />
Slide the half of the coupler you kept onto the conduit and up against the edge of the Adapter. Use the best edge ie the one you didn't cut. Transfer the 120 Degree marks to the edge of the half coupler from the Adapter. Some couplers have tiny ridges along the inner bore that effectively make the coupler a tight tapered fit to the conduit. You may need to sand these off with a bit of wet & dry wrapped round a drill bit before the coupler half will slide easily onto the short conduit.<br />
<br />
Dismantle it all and proceed to cut out the holes that will hold the M3 bolt heads. My bolt heads had a diameter of 6mm so drill three 6mm holes though the short length of conduit where you have marked them ie at 120 degree intervals around it's circumference. Use a round file of approx 3mm Diameter and file in indents to both the Adapter and Half coupler edges 3mm across and 1.5mm deep. Again if you don't have a file of this size wrap some fine sand paper around a drill bit of the right size or close to it and use this.<br />
<br />
The end results should look something like this:<br />
[[image:UniversalPenTouchProbe-rdy2fit.JPG|thumb|left|Ready To Fit]]<br />
{{-}}<br />
<br />
Trial fit the pieces together but this time put the bolts in. It should look something like this:<br />
[[image:UniversalPenTouchProbe-dryfit.JPG|thumb|left|Dry Fit With Bolts]]<br />
{{-}}<br />
<br />
At the opposite end of the short length of conduit from the Adapter measure down 20mm and mark a cut line around it's circumference. You will not be cutting around this line.<br />
<br />
Use a saw to cut a cross through the end of the conduit you have just marked. Cut each cross cut down as far as the 20mm cut line you have just marked.<br />
<br />
When you are happy Glue the plastic parts together using the Solvent Weld Adhesive produced specifically for the plastic conduit you are working with. When it is firmly set make sure the bolt heads are flush inside the conduit and do up the outside nuts as tight as they will go without damaging the plastic. This should pull the bolt heads flush into the plastic and embed them in the in any remaining soft plastic/adhesive.<br />
<br />
The finished result should look something like this:<br />
[[image:UniversalPenTouchProbe-glued.JPG|thumb|left|Pen Holder Glued]]<br />
{{-}}<br />
<br />
Finally, just add on the Spring, Spring Retainer Disk and hose clip and you are all done with the Pen Holder for now.<br />
[[image:UniversalPenTouchProbe-asmbld.JPG|thumb|left|Pen Holder Fully Assembled]]<br />
{{-}}<br />
=== Mounting ===<br />
<br />
The Mounting is made from the following parts:<br />
<br />
# One mounting plate cut and drilled as per supplied template.<br />
# Three M5 bolts with two washers and a nut each, use over length bolts and trim to fitted length.<br />
# Six M3 Pan Head bolts with three washers and a nut each, use over length bolts and trim to fitted length.<br />
<br />
The Darwin Mounting is modeled off the [TobyBorlandOriginal PlyRap Toby Borland Original] I am currently building. It bolts straight on to the carriage assembly using the carriage assembly's existing mounting holes, no modification necessary.<br />
<br />
Choose your material for your mounting, print out the template, tape it on to your material and mark, punch, drill and cut your way to something that looks like this:<br />
[[image:UniversalPenTouchProbe-mplate.JPG|thumb|left|The Finished Mounting Plate]]<br />
{{-}}<br />
<br />
I used some 8mm MDF I had already got lying around.<br />
<br />
Insert the six 3mm pan head machine screws with two washers as spacers on the top side and one washer to the lower side, allow a little on the under side to take either solder or crimp tags and an additional nut and washer for making connections then mark and trim your M3's to length. The two washers on the top side space the pen holder off just enough to prevent the pen holder pin nuts from catching on the mounting plate. <br />
<br />
Double check that the M3 Heads and washers that the pen holder pins will rest on are not touching or the touch sensing won't work.<br />
<br />
Take your already constructed pen holder assembly remove the spring and retaining disk then pass the spring end of the pen holder through the mounting plate, rest each pin on the pen holder between a pair of bolt heads on the mounting plate.<br />
<br />
Put the spring over the bottom and sandwich it between the mounting plate and retaining disk, fix it all in place using the screw ring on the adapter. Make alignment marks on both the mounting plate and pen holder. It is normal for the pen holder to be a little off center, the alignment marks will make sure that your adjustments don't interfere with each other, by ensuring you put everything back the correct way around each time you take it apart.<br />
<br />
Tweaking time, gently bend the pins on the pen holder until the whole thing sits comfortably with each pin making a short circuit between each pair of bolt heads and the pen body is at exactly 90 degrees to the plain of the mounting plate.<br />
<br />
Check your spring and retaining washer is not fouling any of the M3 bolts that pass through the mounting plate. Trim the contact bolts where necessary.<br />
<br />
Finally now is the time to adjust your spring, prune off any unnecessary turns and open out the spring until you achieve a firm but not excessive pressure between the pen holder pins and the contact M3's. The washers are just larger than the heads of the bolts, you may need to file flat's on the faces of either or both the washers and bolt heads that are closest to get the clearance necessary. I didn't need to do this but they are very close. <br />
<br />
The end result should look something like this:<br />
[[image:UniversalPenTouchProbe-phmfassy.JPG|thumb|left|Pen Holder and Mounting Assembled]]<br />
{{-}}<br />
<br />
Use a multimeter on the resistance setting to test each pair of contact bolts, make sure non of the pairs are shorted out or making a partial contact with each other. (Tip: remove the pen holder before doing this as the pen holder pins intentionally shorts the contacts together). With the pen holder in place on the mounting test each pair of contact pins to ensure that their is a circuit between each contact and that rocking the pen holder in the correct direction breaks the circuit.<br />
<br />
=== Touch Sensing ===<br />
<br />
The Touch Sensing Wiring is made from the following parts:<br />
<br />
# Six crimp on ring terminals<br />
# Two pieces of tinned copper wire<br />
# A pair of wires to take your connection back to the controlling electronics.<br />
# Six M3 Nuts.<br />
<br />
The collected parts should look something like this:<br />
[[image:UniversalPenTouchProbe-wires.JPG|thumb|left|The Wires Needed]]<br />
{{-}}<br />
<br />
I used standard small size insulated automotive ring terminals and cut off the insulation to make them less bulky.<br />
<br />
Crimp terminals onto each one of the wire pairs and one each onto a piece of tinned copper wire. Fasten these four on to the M3 contact posts using M3 nuts. Bend your wire to shape so that it goes around the spring with plenty of clearance and mark up the free end of the wire. Crimp on the remaining two terminals to the free ends of both pieces of tinned wire using the marks as a guide for where to crimp them. Trim off any surplus. Connect the two terminals you have just crimped to the remaining terminal posts using M3 nuts.<br />
<br />
The results should look something like this:<br />
[[image:UniversalPenTouchProbe-wiring.JPG|thumb|left|Wiring Complete]]<br />
{{-}}<br />
<br />
I have drilled a small hole through my mounting plate to take the wires out of the top side out of the way. You may choose to route your wiring differently.<br />
<br />
Mount your completed tool head onto your Cartesian Bot. Check continuity with a multimeter. You may find that the closed circuit resistance is quite high. Mine was of the order of 40 to 80 Ohms. The contact surfaces of standard BZP Machine Screws are a touch grim but are adequate for our needs. Replacing the material with a better conductor and gold plating it would improve this.<br />
<br />
The finished item should look something like this:<br />
[[image:UniversalPenTouchProbe-finished.JPG|thumb|left|Finished Tool Head Mounted]]<br />
{{-}}<br />
<br />
In practice a closed circuit means that the pen/probe tip is in free air, an open circuit means that the pen/probe has bumped into something. For such a simple device it is surprisingly sensitive.<br />
<br />
The probe output can be connected to an analogue or digital input. I recommend that a "Pull-Up" resistor is added connecting the analogue/digital input to either a voltage reference or the positive power rail.<br />
<br />
Due to the wide range of contact resistance that defines the closed circuit state, if used with a digital input it could be beneficial to clean up the signal using a Schmitt trigger circuit or use a digital input that has Schmitt trigger capability inbuilt.<br />
<br />
Alternatively use either a spare analogue input or your unused extruder heater/thermistor analogue input to measure the returned voltage and apply the software equivalent of thresholding or Schmitt triggering. A little bit of de-bounce wouldn't hurt either.<br />
<br />
=== Probe ===<br />
<br />
Here's a simple touch probe.<br />
<br />
[[image:UniversalPenTouchProbe-TP1.JPG|thumb|Touch Probe Parts]]<br />
<br />
The parts are a piece of 16mm by 80mm acetal rod drilled out by 2.5mm drill to a depth of 20mm and a stiff pin which is actually a slide rail from the head assembly of a CD-ROM drive I junked a while back. <br />
<br />
[[image:UniversalPenTouchProbe-TP2.JPG|thumb|Touch Probe Assembled]]<br />
<br />
Here it is assembled. Something which is dificult to see from any of the photographs is that the lower end of all the adapters has a slight taper filed around it. This is to centre the forward end of the adapter sleeve into the internal shoulder of the Male Conduit Adapter.<br />
<br />
[[image:UniversalPenTouchProbe-TPfinished.JPG|thumb|Touch Probe on Darwin]]<br />
<br />
Here it is fitted, once clamped up the taper at the lower end ensures that the accessory doesn't wobble about in the holder. You may want to grind either a point or ball tip onto the touch pin. This will give you finer resolution, how sharp a point you grind depends on what material you are wanting perforate/not-perforate with it.<br />
<br />
=== Pen Adapter Sleeves ===<br />
<br />
An adapter sleeve is basically anything that you press into service so as to increase the diameter of your pen's barrel or length such that it fits the pen holder.<br />
<br />
[[image:UniversalPenTouchProbe-withpen.JPG|thumb|Tool Head With Pen in Holder]]<br />
<br />
Here I have actually used the pens cap.<br />
<br />
The objective is to remove any movement of the pen within the holder so that you can plot and digitize with acceptable precision.<br />
<br />
Suggestions:<br />
<br />
# Insulating tape wound around the barrel of your pen top and bottom to make up the diameter.<br />
# A sleeve made from plastic tubing that makes up the difference, ie Plastruct.<br />
# Turn a sleeve from bar stock of the correct Outside diameter.<br />
# Drill a sleeve from bar stock of the correct Outside diameter.<br />
# Use balsa wood dowel or ordinary wood dowel as bar stock.<br />
<br />
Here's one I prepared earlier<br />
<br />
[[image:UniversalPenTouchProbe-PAS1.JPG|thumb|Pen Adapter Sleeve Parts]]<br />
<br />
The sleeve is made from Acetal (Delrin) Rod I could buy the Acetal Rod quite cheaply over the internet 1 Metre cost approximately 2.50 UKP as each sleeve/adapter is around 80mm long this should be enough to make 12 for less than 0.25 UKP each. <br />
<br />
Again the lower end has a small taper filed around it. The back end has a cross cut into it so that the hose clip grips everything together snugly. You will not that the hole for the pen is a little off center. My drill is not exactly a precision instrument. However this doesn't actually matter providing you don't move the pen in its holder during the print run.<br />
<br />
[[image:UniversalPenTouchProbe-PASfinished.JPG|thumb|Pen Adapter Sleeve with Pen on Darwin]]<br />
<br />
Above you can see the Sleeve and Pen mounted securely on my Darwin Cartesian Bot.<br />
<br />
=== Templates ===<br />
<br />
The templates in PDF and DXF formats are here. Print them out on paper and then follow the directions on them to use them.<br />
<br />
Before spending a lot of time on the templates check the printed test dimensions against what the templates say they should be just in case your printer and driver combo scales the image out of true.<br />
<br />
* UPH Template File PDF Format: [[file:UniversalPenTouchProbe-uphtplate.pdf]]<br />
<br />
* UPH Template File DXF Format: [[file:UniversalPenTouchProbe-uphtplate.dxf]]<br />
<br />
=== More Pens and Accesories ===<br />
<br />
Q. Do you keep stationary?<br/><br />
A. Yes until they get close then I go wild!!<br />
<br />
==== Drawing Pen ====<br />
<br />
We need to have some suggestions and thoughts about this particular class of pen.<br />
<br />
==== Staedtler Lumocolour Pen ====<br />
<br />
Red-Ink Lumocolor pens - permanent type.<br />
<br />
These ink pens are available in permanent and non permanent varieties and come in a range of tip sizes from Broad through Medium and Fine to Super Fine.<br />
<br />
Conveniently they are all the same body size so one adapter fits a whole bunch of pens. The pen body is a simple parallel tube approx 10mm in diameter. This makes them an easy starter pen to make a simple adapter sleeve for. <br />
<br />
The permanent varieties are water proof and can be used as etch and photo resist ink pens. They are also readily available and relatively inexpensive.<br />
<br />
==== HP Plotter Pen ====<br />
<br />
There are many Plotter pens that can be used with a suitable adapter, including a drag knife for cutting sticky backed vinyl, labels etc.<br />
<br />
=== Refinements ===<br />
<br />
The electrical contacts in this case were made using Bright Zinc Plated M3 Pan Head Machine Screws.<BR><br />
<br />
Logical improvements are:{{-}}<br />
<br />
* Replace the bolts with a material that can be gold plated and electroplate them to ensure a longer contact life.<br />
* Screw an internally threaded tube over the M3 contact pins that has again been gold plated to improve the contact surface.<br />
* Add an LED to the tool head so the bed alignment can be checked without really needing the drive electronics to be present.<br />
* Scale up the assembly to be able to take larger pen and syringe types (create an RP variant)<br />
* Use the assembly with an ink resist pen to create a printed circuit board to replace the wires connecting the contacts together.<br />
* Create an RP version that is based on the Darwin interchangeable tool head designs.<br />
* Modify the contact assembly to work with an R,2R resistor ladder so it can resolve the direction of impact upon the touch sensor using A to D techniques.<br />
<br />
== Uses for the Tool Head ==<br />
<br />
* CNC Etch a Sketch.<br />
* Pen Plotting.<br />
* Checking the Cartesian Bot's Z Axis Alignment.<br />
* Digitizing your own hand made components for printing.<br />
* Photo plotting (You need to add a light pen, light source and shutter or switch to do this).<br />
* Simple PCB prototyping through direct application of etch or photo resists.<br />
* Pick and Place (You will need a pick and place pen together with vacuum source and on/off control).<br />
* Solder Paste Dispenser (You will need a syringe and needle dispenser combo together with a compressed air source and controller).<br />
* Drawing templates directly onto the material they will be cut from. <br />
<br />
== Acknowledgments ==<br />
<br />
-- Main.AndyKirby - 29 Aug 2008<br />
<br />
[[Category:Toolheads]]<br />
[[Category:PenHolderToolheads]]<br />
[[Category:Scanning]]</div>Sblivenhttps://reprap.org/mediawiki/index.php?title=Template:-&diff=60441Template:-2012-06-20T16:58:11Z<p>Sbliven: Added - template to force a clear break (prevents images from wrapping to the next section)</p>
<hr />
<div><br style="clear:{{{1|both}}};" /></div>Sblivenhttps://reprap.org/mediawiki/index.php?title=User:Sbliven&diff=54228User:Sbliven2012-02-09T03:46:13Z<p>Sbliven: Created page with 'My name is Spencer Bliven. I'm a computer scientist and bioinformatician in San Diego. I'm interested in printing protein structures, and also in advancing opensource electronic…'</p>
<hr />
<div>My name is Spencer Bliven.<br />
<br />
I'm a computer scientist and bioinformatician in San Diego. I'm interested in printing protein structures, and also in advancing opensource electronics and software.<br />
<br />
I can be found on thingiverse as [http://www.thingiverse.com/spencer spencer].</div>Sblivenhttps://reprap.org/mediawiki/index.php?title=Stepper_motor&diff=54227Stepper motor2012-02-09T03:40:45Z<p>Sbliven: /* Suppliers */ Note on Kysan's policy</p>
<hr />
<div><br style="clear:both"/><br />
[[image:StepperMotor-reprap-stepper.jpg|thumb]]<br />
__TOC__<br />
<br />
= What is a Stepper Motor ?=<br />
Stepper motors are [[Motor FAQ | one kind of electric motor]] used in the robotics industry.<br />
Stepper motors move a known interval for each pulse of power. These pulses of power are provided by a stepper driver and is referred to as a step. As each step moves the motor a known distance it makes them handy devices for repeatable positioning. <br />
<br />
There are two major types of stepper motor known as bipolar and unipolar. Wikipedia has further information on stepper motors. Please see [[Wikipedia:stepper motor|Wikipedia]]. A good diagram showing a stepper motor's mechanical operation is [http://www.engineersgarage.com/articles/stepper-motors here].<br />
<br />
= Terms=<br />
<br />
;NEMA: refers to the frame size of the motor (as standardized by the US [http://en.wikipedia.org/wiki/National_Electrical_Manufacturers_Association National Electrical Manufacturers Association] <ref>For details refer to NEMA Standards Publication ICS 16-2001, "Motion/Position Control Motors, Controls, and Feedback Devices" (a copy may be downloaded [http://classxboats.com/htdocs/Engineering_Research/NEMA/ics_16.pdf here].</ref><br />
). It specifies the “face” size of the motor but not its length. For example a NEMA 23 stepper has a face of 2.3 x 2.3 inches with screw holes to match. Note: just because a motor is bigger does not mean it is more powerful in terms of torque. It is perfectly possible for a NEMA 14 to “out pull” a NEMA 17 or a NEMA 23. <br />
<br />
;Bipolar and Unipolar: These terms refers to the internals of the motor. Each type has a different stepper driver circuit board to control them. In theory a RepRap could use either, but in practice most are bipolar.<br />
<br />
;Micro stepping: A stepper motor always has a fixed number of steps. Microstepping is a way of increasing the number of steps by varying the amount of electricity sent to the coils inside the stepper motor. In most cases, micro stepping allows stepper motors to run smoother and more accurately.<br />
<br />
== Bipolar Motors ==<br />
<br />
[[image:StepperMotor-bipolar_stepper_sch.png|thumb]]<br />
<br />
These motors are the strongest type of stepper motor. You identify them by counting the leads - there should be four or eight. They are also the type of motors we are using in the RepRap Project's Mendel & Darwin designs. They have two coils inside, and stepping the motor round is achieved by energising the coils and changing the direction of the current within those coils. This requires more complex electronics than a unipolar motor, so we use a special driver chip to take care of all that for us. Some designs (the eight-wire ones) split each coil in the middle so you can wire the motor either as bipolar (short the middles) or unipolar (short the middles and treat the link as the centre tap - see below).<br />
<br />
<br clear="all"><br />
<br />
== Unipolar Motors ==<br />
<br />
[[image:StepperMotor-unipolar_stepper_sch.png|thumb]]<br />
<br />
Unipolar motors have two coils, each one has a centre tap. They are readily recognizable because they have 5, 6 or even 8 leads. It is possible to drive 6 or 8 lead unipolar motors as bipolar motors if you ignore the centre tap wires. 5 lead motors have both centre taps connected, so re-wiring them to a 4 lead version requires at least opening the motor, if it can be done at all.<br />
<br />
The main beauty of unipolar motors is that you can step them without having to reverse the direction of current in any coil, which makes the electronics simpler. Some early RepRap prototypes used this trick. Because the centre tap is used to energise only half of each coil at a time, unipolar motors generally have less torque than bipolar motors.<br />
<br />
<br clear="all"><br />
<br />
==Stepping Angle==<br />
<br />
Most stepper motors used for a Mendel have a step angle of 1.8 degrees. It is sometimes possible to use motors with larger step angles, however for printing to be accurate, they will need to be geared down to reduce the angle moved per step, which may lead to a slower maximum speed.<br />
<br />
== Micro stepping ==<br />
Microstepping between pole-positions is made with lower torque than with full-stepping, but has much lower tendency for mechanical oscillation around the step-positions and you can drive with much higher frequencies.<br />
<br />
If your motors are near to mechanical limitations and you have high friction or dynamics, microsteps don't give you much more accuracy over half-stepping. When your motors are 'overpowered' and/or you don't have much friction, then microstepping can give you much higher accuracy over half-stepping.<br />
You can transfer the higher positioning accuracy to moving accuracy too.<br />
<br />
= History =<br />
<br />
<br />
== Stepper Motor History for Darwin (V1.0 RepRap)==<br />
The RepRap Darwin used a NEMA 23 stepper motor. This stepper motor was a unipolar stepper motor which could be configured as a bipolar. This design used 3 stepper motors, one for each axis, and a DC motor for its extruder. Later many people upgraded their extruders to increase their control of the extruder. <br />
<br />
Note the Generation 2 electronics supported the first configuration with 3 stepper driver circuit boards for the steppers and a PWM circuit board to control the DC motor.<br />
<br />
The Darwin stepper motor requirements were as follows:<br />
<br />
{| border="1"<br />
|-<br />
| '''Parameter''' || '''Specification''' <br />
|-<br />
| Size || NEMA 23 <br />
|-<br />
| Type || Bipolar <br />
|-<br />
| Shaft || dual-output shaft <br />
|-<br />
| Torque || 100 oz-in or about 71 N-cm <br />
|-<br />
| Resistance || about 10 ohms, or 1 to 30 ohms <br />
<br />
|}<br />
<br />
<br />
Note<br />
<br />
If you are using the [[DarwinStepperController_1_2|PIC controller]] (Note: Generation 1 electronics) you need a motor that will use about 1A per winding at 12V - that is, around 10 ohms. The Arduino circuit can be adjusted to accommodate a wider range of steppers, but remember that if you specify a low-resistance one and the Arduino controller has to chop the voltage to limit the current going through it, that will also limit the torque.<br />
<br />
== Stepper Motor History for Mendel (V2.0 RepRap)==<br />
The RepRap Mendel used either NEMA 17 or NEMA 14 bipolar stepper motors. It used four stepper motors: one for each of the three axes and one for the extruder. <br />
<br />
Note this configuration of four stepper motors was supported by the 3rd generation electronics.<br />
<br />
The Mendel stepper motor requirements were as follows:<br />
<br />
{| border="1"<br />
|-<br />
| '''Parameter''' || '''Specification''' <br />
|-<br />
| Size || NEMA 17 or 14 (prototype was NEMA 14)<br />
|-<br />
| Type || Bipolar <br />
|-<br />
| Shaft || dual-output shaft (need to make knurling the stepper shaft easier, not applicable to recent geared extruders)<br />
|-<br />
| Torque || 13.7 N-cm (= 1400 g-cm or 19.4 oz-in)<br />
|-<br />
| Resistance || Must be over 6 ohms (not applicable to recent stepper controllers, see "current" below)<br />
<br />
|}<br />
<br />
=Holding Torque=<br />
<br />
It is recommended that you get approximately 13.7 N-cm (= 0.137 N-m or 1400 gf-cm or 19.4 ozf-in or 1.21 lbf-in) of holding torque (or more) for axis motors to avoid issues, although one stepper with less has been used successfully (see below). If in doubt, higher is better.<br />
<br />
For [[Wade's Geared Extruder]] (most widely used one as of 2012) it is suggested to use motor that is capable of creating a holding torque of at least 40 N-cm.<br />
<br />
If you need to convert between different units for the torque you can use the torque unit converter [http://www.numberfactory.com/nf%20torque.htm here].<br />
<br />
=Size=<br />
<br />
If using the smaller NEMA 14 motors, aim for the high torque option. NEMA 14s are neater, lighter and smaller, but can be hard to obtain with the appropriate holding torque. NEMA 17s are quite easy to get in the specification that Mendel needs, but are bulkier and less neat. NEMA 14s are running near the edge of their envelope: they will get warm. NEMA 17s are well inside what they can do, and will run much cooler.<br />
<br />
Note that any Mendel part that goes on to a stepper motor shaft expects the shaft to be roughly Ø5mm. If the shaft is a different size, you will need to make allowances for this in the parts you obtain/make.<br />
<br />
Based upon the NEMA 17 specification (from what i can find) the mounting holes are spaced 1.22in or 31mm apart along the edge of the motor. This should help if you are using second hand / salvaged parts.<br />
<br />
=Wiring=<br />
<br />
Steppers motors come in several wiring configurations. 4, 6 and 8 wires are all fairly common and work fine with the standard RepRap electronics.<br />
5 wire stepper motors exist but won't work with the standard RepRap electronics, because the 5th wire connects to both coil centers. See [[stepper wiring]] for more details.<br />
<br />
=Heat=<br />
<br />
Most of the motors specs give the current for two coils that will give an 80 °C rise, i.e. they can run at 100 °C! When using them on plastic brackets you need to under-run them to keep the brackets from melting. With PLA you have to seriously under-run them! Fortunately temperature rise is proportional to the square of current, but torque is directly proportional so you can keep temperature under control without losing too much torque.<br />
<br />
=Current=<br />
<br />
All recent stepper controllers use a current-limiting design. Because of this, the resistance (ohms) of the coils doesn't matter, as long as it is low enough for the current to rise fast enough for the current-limiting design to come into play. If the resistance is too high (i.e. 24V steppers) the current doesn't raise fast enough for reliable microstepping.<br />
<br />
Designs which use a separate "extruder controller board" sometimes use H-bridges (which are designed for running a DC motor) instead of a proper current-limiting stepper controller. On these boards, you need to be careful not to turn the current (PWM) too high, especially with low-ohm (low voltage) motors. You run the risk of overheating both the stepper motor and the H-bridge chip.<br />
<br />
=Suppliers=<br />
<br />
Below is a list of possible motors and suppliers. Please add to it. If you have built a Mendel successfully with a given motor, remember to put {{true}} in the tested field.<br />
<br />
{| class="wikitable sortable"<br />
|+ ''Stepper Motors - NEMA 14 (smaller, neater and used on the Mendel prototype)''<br />
|-<br />
| Vendors (link to product) || Shipping location || Manufacturer || Model # (link to datasheet) || Holding Torque || Shaft || Tested || Additional notes<br />
|-<br />
| [http://www.motioncontrolproducts.com/ Motion Control Products] || UK<br />
| Fulling Motor || [[Media:NEMA14-high-torque.pdf|FL35ST36-1004B]]<br />
| ~13.7 N-cm || Dual || {{true}} || Used in mendel prototype<br />
|-<br />
| [http://www.active-robots.com/ Active Robots] || UK || Wantai<br />
| [http://www.phidgets.com/documentation/Phidgets/3301Datasheet.pdf 35BYHG04]<br />
| ~12.3 N-cm || Ø4.9mm || {{true}} || Less holding torque than recommended, but has apparently been used successfully<br />
|-<br />
| [http://www.pololu.com/catalog/product/1209 Pololu Robotics] || US<br />
| [http://www.cnsoyo.com/ SOYO] || SY35ST36-1004A<br />
| ~13.7 N-cm || Ø5mm || '''?''' || Note: Pololu list this motor as 1400 g-cm AND as 20 oz-in (converts to 19.44 oz-in). According to supplier information, the metric value is correct.<br />
|-<br />
| [http://www.paoparts.com/fr/6-moteurs Paoparts] || EU-FR<br />
| [http://www.cnsoyo.com/ SOYO] || SY35ST36-1004A<br />
| ~13.7 N-cm || Ø5mm || '''?''' || Length cable 80 cm<br />
|-<br />
| [http://www.zappautomation.co.uk/product_info.php?products_id=51 Zapp Automation] || UK || ?<br />
| [http://www.slidesandballscrews.com/pdf/steppermotors/SY35ST.pdf SY35ST36-1004B]<br />
| ~14 N-cm || Dual || {{true}} || <br />
|}<br />
<br />
{| class="wikitable sortable"<br />
|+ ''Stepper Motors - NEMA 17 (larger and generally heavier but with more room to put a higher torque than a NEMA 14)''<br />
|-<br />
| Vendors (link to product) || Shipping location || Manufacturer || Model # (link to datasheet) || Holding Torque || Shaft || Tested || Additional notes<br />
|-<br />
| [http://www.zappautomation.co.uk/product_info.php?products_id=28 Zapp Automation]<br>[http://www.pololu.com/catalog/product/1200 Pololu Robotics] || UK<br>US<br />
| [http://www.cnsoyo.com/ SOYO] || [http://www.cnsoyo.com/product_show_e.asp?id=8 SY42STH47-1206A]<br />
| ~31.1 N-cm || Single || {{true}} || None<br />
|-<br />
| [http://www.zappautomation.co.uk/product_info.php?products_id=516 Zapp Automation] <br> [http://www.paoparts.com/fr/6-moteurs Paoparts] || UK <br> FR<br />
| [http://www.cnsoyo.com/ SOYO] || [http://www.slidesandballscrews.com/pdf/steppermotors/SY42STH47-1684A.pdf SY42STH47-1684A]<br />
| ~43.1 N-cm || Single, d-shape, Ø5mm || {{true}} || 4.5mm flat <br> paoparts.com motors are factory custom made with 80cm cables<br />
|-<br />
| [http://www.zappautomation.co.uk/product_info.php?products_id=29 Zapp Automation]<br>[http://www.mendel-parts.com/index.php?cPath=25 mendel-parts.com] || UK<br>NL<br />
| [http://www.cnsoyo.com/ SOYO] || [http://www.mendel-parts.com/data_sheets/SY42STH47-1684B.pdf SY42STH47-1684B]<br />
| ~43.1 N-cm || Dual, round, Ø5mm || {{true}} || mendel-parts.com motors are factory custom made with 80cm cables and have an option to include Molex connectors for our GEN6 electronics<br />
|-<br />
| [http://www.interinar.com/vexta-px243m-01aa.html Interinar Electronics, LLC] || US<br />
| Oriental Motors || [http://www.interinar.com/public_docs/PX243M-01AA.pdf PX243M-01AA]<br />
| 15 N-cm || Single || '''?''' || Not strong enough for direct drive extruder, Uses Imperial #4-40 TPI mounting holes instead of M3 metric<br />
|-<br />
| [http://www.alltronics.com/cgi-bin/item/28M035/search/Lin-Engineering-4218L-01-10-bipolar-stepper-motor Alltronics.com] || US<br />
| Lin Engineering || [http://www.alltronics.com/mas_assets/acrobat/28M035.pdf 4218L-01-10]<br />
| ~53 N-cm || Round, Ø5mm || {{true}} || None<br />
|-<br />
| [http://www.alltronics.com/cgi-bin/item/24M014/search/Lin-Engineering-Nema-17-1.8deg-24V-2A-bipolar-stepper-motor Alltronics.com] || US<br />
| Lin Engineering || [http://www.alltronics.com/mas_assets/acrobat/24M014.pdf 4218L-01-11]<br />
| ~53 N-cm || Ø5mm = 0.1968 inches, d-shape || {{true}} || None<br />
|-<br />
| [http://www.phidgets.com/products.php?category=23&product_id=3303 Phidgets.com]<br>[http://www.thingfarm.org/namerica/product.php?id_product=26 Thingfarm North America] || US<br>US<br />
| Wantai || [http://www.phidgets.com/documentation/Phidgets/3303Datasheet.pdf 42BYGHW811]<br />
| 47.1 N-cm || Ø5mm || {{true}} || None<br />
|-<br />
| [http://www.coolcomponents.co.uk/catalog/product_info.php?products_id=469 Cool Components]<br>[http://www.sparkfun.com/products/9238 SparkFun]<br>[http://www.robotgear.com.au/Product.aspx/Details/410 Robot Gear]<br>[http://www.australianrobotics.com.au/?q=node/323 Australian Robotics]<br>[http://www.mindkits.co.nz/store/movement/stepper-motor-with-cable Mindkits] || UK<br>US<br>AU<br>AU<br>NZ<br />
| Mercury Motor || [http://www.sparkfun.com/datasheets/Robotics/SM-42BYG011-25.pdf SM-42BYG011-25]<br />
| 23 N-cm || Ø5mm || {{true}} || None<br />
|-<br />
| [http://ausxmods.com.au/stepper-motors/62-oz-in-nema-17-stepper-motor AusXMods] || AU<br />
| Rugao Xinhe || [http://runall.en.made-in-china.com/product/oeBQykaCEmiS/China-1-8-Degree-Size-42mm-High-Tybrid-Stepping-Motor.html 17H185H-04A]<br />
| ~43.8 N-cm || ? || '''?''' || 2.8v,1.68A/phase,1.65ohm/phase, the -04B variant is dual-shaft<br />
|-<br />
| [http://store.kysanelectronics.com/servlet/-strse-68835/42BYGH4803/Detail Kysan] || China<br />
| [http://store.kysanelectronics.com Kysan] || [http://www.kysanelectronics.com/Products/datasheet_display.php?recordID=6008 42BYGH4803]<br />
| 49 N-cm || Ø5mm || {{true}} || Successfully tested with [http://objects.reprap.org/wiki/Geared_Nema17_Extruder Wade's Geared Nema 17] extruder - high flow rates. According to datasheet, 5mm round shaft. Requires Minimum Purchase of $100 when buying online. ([http://store.kysanelectronics.com/servlet/-strse-template/policy/Page?sfs=3438bed8 Their policy page] suggests the '''$200''' minimum is just to get a discount? --[[User:Sbliven|Spencer]] 03:40, 9 February 2012 (UTC)) <br />
|-<br />
| [http://store.makerbot.com/motors/nema-17-stepper-motor.html MakerBot] || US<br />
| Kysan || [http://svn.makerbot.com/assets/datasheets/kysan-1123029.pdf 1123029]<br />
| 26 N-cm || Ø4.78mm (3/16"), 24mm long || '''?''' || None<br />
|-<br />
| [http://store.makerbot.com/nema-17-stepper-motor-high-torque.html MakerBot] || US || Custom ?? || ???? || 70.6 N-cm || Ø5.84mm (0.23"), 22mm long || '''?''' || None<br />
|-<br />
| [http://myworld.ebay.com/erbyers/?_trksid=p4340.l2559 erbyers on ebay] || US || Applied Motion<br />
| [http://www.ebay.com/itm/New-Applied-Motion-Products-NEMA-17-1-8-Stepper-Motor-/330517220763 4017-871]<br />
| ~8.47 N-cm || Dual, Ø5mm || '''?''' || One side of shaft is splined ~4.3mm 0.5in from face, other shaft is 5mm; wires 95mm long terminating in 0.1" header; date code from 1984<br />
|-<br />
| [http://www.reichelt.de/?;ACTION=3;LA=444;GROUP=C39;GROUPID=3299;ARTICLE=62654;START=0;SORT=artnr;OFFSET=16;SID=32MIj0BKwQASAAAGhC0iY484e8ab2d51a8a22b76248733f467eb1 Reichelt] || DE<br />
| [http://www.trinamic.com/tmc/render.php?sess_pid=261 Trinamic] || [http://www.trinamic.com/tmc/media/Downloads/QMot_motors/QSH4218/QSH4218_manual.pdf QSH4218-51-049]<br />
| 49 N-cm || Ø5mm || {{true}} || Tested on MakerBot Cupcake CNC<br />
|-<br />
| [http://www.mechapro.de/shop/Schrittmotoren/Schrittmotor-Nidec-Servo-KH4248-B95101::46.html mechapro] || DE<br />
| [http://www.nidec-servo.com/en/ Nidec Servo] || [http://www.mechapro.de/pdf/KH4248-B95191.pdf KH4248-B95101]<br />
| 48 N-cm || Ø5mm || '''?'''|| None<br />
|-<br />
| [http://www.lulzbot.com/48-nema-17-stepper-motors.html LulzBot] || US<br />
| [http://www.cnsoyo.com/ SOYO] || [http://www.alephobjects.com/hardware/motors/SY42STH47-1504A_060047067.pdf SY42STH47-1504A]<br />
| 55 N-cm || Ø5mm D-shaped || {{true}} || None<br />
|-<br />
| [http://www.2printbeta.de/product_info.php?products_id=53 2PrintBeta] || DE<br />
| [http://de.act-motor.com ACT] || [http://de.act-motor.com/productinfo/detail_12_25_76.html 17HS4417]<br />
| 40 N-cm || Ø5mm || ''?'' || None<br />
|-<br />
| [http://www.xyzprinters.com/electronics/89-stepper-motor.html XYZPrinters] || NL<br />
| XYZ || [http://www.xyzprinters.com/electronics/89-stepper-motor.html 42BYGH4803-04]<br />
| 55 N-cm || Ø5mm || {{true}} || Custom model, includes 60cm leads<br />
|-<br />
| [http://www.akcesoria-cnc.pl/ Akcesoria-cnc] || PL || ? (japan) || [http://www.akcesoria-cnc.pl/?menu=produkt&id=229 KH42KM2R001] || 45 N-cm || Ø5mm || ? ||<br />
|}<br />
<br />
=Unscientific rules of thumb for motor purchases=<br />
<br />
1) Generally, the longer the motor body, the more torque the motor has.<br />
<br />
2) If a motor is rated 2.5 A and your stepper driver produces only 2 A your motor will not produce the manufacturer's rated torque.<br />
<br />
3) If a motor is rated 35 V and your stepper produces only 12 V your motor will not produce the manufacturer's rated torque. <br />
<br />
4) A motor can safely exceed its rated voltage with a chopping stepper driver (which is all the RepRap stepper drivers, save only the Gen3 electronics extruder board hack). It cannot exceed its rated current (amps) without severely overheating and dying a quick death.<br />
<br />
5) Stepper motors are generally rated for a 50 °C temperature rise at rated current/torque.<br />
<br />
6) ABS melts at 105 - 120 °C but softens at 80 °C. Therefore you probably can't run your steppers at their full rated torque without melting your plastic motor mounts.<br />
<br />
7) Power is measured in watts (W) and is calculated as volts (V) × current (A).<br />
<br />
8) Power made available to a motor will be turned into heat and motion.<br />
<br />
9) The more power made available to the motor the higher the amount of heat and motion. Heat is proportional to current squared while motion is proportional to current, so losing a little motion (torque) can lose a lot of heat.<br />
<br />
10) Power and torque are related. The more power, the more torque.<br />
<br />
11) A motor's actual rated amps (if missing from the spec sheet) can be calculated by dividing the specified volts supplied to it by the ohms of resistance it has.<br />
<br />
= Driving stepper motors =<br />
To make a stepper motor work, you need to use <br />
# a stepper driver chip or<br />
# a microcontroller and, optionally, one or two full [[Wikipedia:H bridge|h-bridge]] chips <br />
<br />
=== Stepper Driver Chips ===<br />
These chips keep the power that drives the motors separate from the power that is on the arduino. The arduino can't provide enough juice to power the stepper motors directly. This is why you have to use separate chips to sort of act as valves that control how the motor spins.<br />
<br />
Another benefit that stepper driver chips provide, is that they provide ''fractional'' steps. This helps smooth out the motion of the stepper motor. Without fractional steps, stepper motors can have a tendency to vibrate or resonate at certain RPMs.<br />
<br />
Here's a list of stepper driver chips (newest first):<br />
;Allegro A4988 (QFN)<br />
:Used in [[Pololu stepper driver board]]s. Same as A4983 but offers overcurrent protection.<br />
<br />
;Allegro A4983 (QFN)<br />
:Used in [[Pololu stepper driver board]]s. Discontinued product. Replaced by equivalent A4988.<br />
<br />
;Allegro A3992 (DIL or TSSOP)<br />
:Used in [[Gen L Electronics]]<br />
<br />
;Allegro A3982<br />
:Improved over v1.2 in v2.2<br />
:also used in stepper motor driver v2.3<br />
<br />
;Allegro A3979<br />
:Abandoned due to tiny size in v2.1<br />
<br />
;Allegro A3977<br />
:Abandoned in stepper motor driver v2.0<br />
<br />
;Allegro A3967<br />
:Used in Easy Driver boards sold on [http://www.sparkfun.com/products/10267 sparkfun]<br />
:Not sure if they can be used in repraps but they're good for experimenting<br />
<br />
;Texas Instruments DRV8811<br />
:Used in [[generation 6 electronics]]<br />
:This is probably why the FiveD firmware was modified<br />
<br />
;L297/L298 combo<br />
:Last stepper motor driver to use this was v1.2<br />
:L298 used in [[Valkyrie Redux]]<br />
<br />
<br />
=== Microcontroller-based Stepper Drivers ===<br />
Microcontroller based steppers drivers can achieve very high rotation speeds in stepper motors. Using a microcontroller, it is possible to have extreme control over exactly how each individual coil is energized inside the motor. This is absolutely necessary to obtain high speeds because as speed increases, timing of the coils firing must be perfectly in sync. Quoting from [http://www.dr-iguana.com/prj_StepperDriver/ Dr. Iguana]:<br />
:If you've ever pushed someone on a swing, you know that a small, well timed push can cause that person to swing higher and higher. Miss a push or two by even a small amount and the 'power transfer' is significantly less. This is the situation in stepper motors at high speeds. If you don't match the pushes or steps to the actual state of the motor it will run poorly.<br />
<br />
In order to handle current higher than what the microprocessor can allow, the controller needs to use full H-bridge chips. <br />
<br />
Normally, an H-bridge is used for controlling a plain old DC-motor but in this case, the h-bridge chips are used for exactly controlling the amount of electricity that goes to each individual coil on the stepper motor. Thus, for bipolar stepper motors, it needs 2 chips per motor.<br />
<br />
== Open Source Stepper Drivers ==<br />
==== AVRSTMD ====<br />
<br />
The [http://www.avrstmd.com/ AVRSTMD] is an open source microcontroller-based stepper driver. It uses an atmega48 processor and two National Semiconductor LMD18245T current limited h-bridge chips.<br />
<br />
==== Dr. Iguana ====<br />
The Dr. Iguana stepper driver is based on a dsPic33 microcontroller and two L298N H-Bridge chips. It can achieve speeds up to 800 RPM. A very good source of information about microcontroller stepper drivers can be found on his website [http://www.dr-iguana.com/prj_StepperDriver/ here] along with all the schematics, gerber files, source code and BOM for the stepper driver.<br />
<br />
==== RepRap Stepper Motor Driver v1.x ====<br />
*obsolete*<br />
<br />
[[image:cache-2950488044_8ba115bd24_m.jpg|link=http://make.rrrf.org/smd-1.2]]<br />
<br />
The first generation of RepRap stepper motor drivers. <br />
(Note: These boards were used in the generation 2 collection of electronics.) Uses the L297/L298 stepper motor driver combo. Half-stepping. Handles up to 2A. All through hole. A nice, solid driver. It uses some old technology, so it's not as fancy as the newer stepper drivers, but it gets the job done. [[Stepper_Motor_Driver_1_2|Read the documentation page here]]<br />
<br />
=== RepRap Stepper Motor Driver v2.x ===<br />
*obsolete*<br />
<br />
[[image:cache-3218206144_6461b3e2c0_m.jpg|link=http://make.rrrf.org/smd-2.3]]<br />
<br />
The second generation of RepRap stepper motor drivers. <br />
(Note: These boards were used in the generation 3 collection of electronics but could be retrograded to generation 2.)<br />
<br />
Uses the Allegro A3982 chip which does a bunch of nice things and makes the board much simpler. It also drops the price by $10 compared to the v1.x series. It can handle up to 2A, and does half-stepping. The only downside is that it's SMT, which can be a bit scary for people. It's all large SMT parts, so it's pretty simple to solder, especially with the solder paste / hotplate method. [[Stepper_Motor_Driver_2_3|Read the documentation page here]].<br />
<br />
= Wiring Your Stepper =<br />
<br />
Pretty much all of our RepRap electronics are designed for Bipolar stepper motors. Every bipolar stepper motor has 4 wires that need to be wired to the driver board. These are labeled A, B, C, and D for lack of better terms. A and B are connected, as well as C and D. You can generally find out which wires are connected using a multimeter to measure the resistance. If you measure a small resistance (1-30 ohm) then they are connected. Generally, they are color coded and we have datasheets available, so things are easy.<br />
<br />
On motors with six wires, you'll find 4 pairs with low resistance and two pairs with double the low resistance. These two pairs with high resistance are the ones you want. Ignore the remaining two wires and proceed as if you had four wire steppers. In a datasheet it's the middle wire of each of both coils which has to be ignored.<br />
<br />
== Shortcut for finding the proper wiring sequence ==<br />
<br />
''Reproduced by kind permission of Rustle Laidman at StepperWorld.com [http://www.stepperworld.com/Tutorials/pgBipolarTutorial.htm]''<br />
<br />
Connect the 4 coil wires to the controller in any pattern. If it doesn't work at first, you only need try these 2 swaps:<br />
{| class="wikitable"<br />
|-<br />
| Name<br />
! A<br />
! B<br />
! C<br />
! D<br />
|-<br />
| Arbitrary first wiring order <br />
| 1<br />
| 2<br />
| 4<br />
| 8<br />
|-<br />
| Switch end pair <br />
| 1<br />
| 2<br />
| 8<br />
| 4<br />
|-<br />
| switch middle pair <br />
| 1<br />
| 8<br />
| 2<br />
| 4<br />
|}<br />
<br />
You're finished when the motor turns smoothly in either direction. If the motor turns in the opposite direction from desired, reverse the wires so that ABCD would become DCBA.<br />
<br />
NOTE: Some Reprap Electronics (such as RAMPS) will be looking for the endstops to be hooked up while testing the motor wiring as noted above. In this case you may see your motor move smoothly in one direction, but not at all in the other (as it thinks the endstop is triggered). If your firmware allows you to disable endstops you should do so for testing motor wiring, or alternatively you can connect the motor to the Extruder stepper motor connector to check that it moves smoothly in each direction.<br />
<br />
<br />
== NEMA 17 Motors ==<br />
<br />
=== Lin Engineering / 4118S-62-07 ===<br />
<br />
[[image:cache-stepper-motor-nema17.jpg|link=http://store.makerbot.com/featured-products/nema-17-stepper-motor.html]]<br />
<br />
This is an awesome little NEMA 17 stepper motor. It is the primary motor used on the Cupcake CNC. It has good torque and a small size. Here are some of the specs:<br />
<br />
* 200 steps per revolution (1.8 deg/step)<br />
* 2.5 A/phase<br />
* Phase resistance: 0.6 ohm<br />
* Phase inductance: 0.93 mH<br />
* Holding torque: 3240 g-cm or about 0.31 N-m<br />
* Shaft diameter: 0.190" [4.83 mm]<br />
* Shaft length: 0.50" [12.7 mm]<br />
* Motor depth: 1.34" [34 mm]<br />
<br />
NEMA 17 is a standard motor mounting geometry. The outside of the motor housing is 1.7" x 1.7".<br />
<br />
{| border="1"<br />
|-<br />
| '''Name''' || '''Pololu pin''' || '''Color''' <br />
|-<br />
| A || 2B || Red <br />
|-<br />
| B || 2A || Blue <br />
|-<br />
| C || 1A || Green <br />
|-<br />
| D || 1B || Black <br />
|}<br />
<br />
'''Suppliers'''<br />
<br />
* [http://store.rrrf.org/product_info.php?products_id=59 MakerBot Industries]<br />
<br />
'''Technical Information'''<br />
<br />
* [http://svn.makerbot.com/assets/datasheets/4118S-62-07.pdf Datasheet]<br />
<br />
<br clear="all"/><br />
<br />
=== Zapp Automation / SY42STH47-1684B ===<br />
<br />
* 200 steps per revolution (1.8 deg/step)<br />
* Rated current: 1.68 A<br />
* Phase resistance: 1.65 ohm<br />
* Phase inductance: 2.8 mH<br />
* Holding torque: 4400 g-cm [0.43 N-m]<br />
* Shaft diameter: 5 mm<br />
* Shaft length: 22 mm<br />
* Motor depth: 47 mm<br />
<br />
{| border="1"<br />
|-<br />
| '''Name''' || '''Pololu pin''' || '''Color''' <br />
|-<br />
| A || 1B || Black <br />
|-<br />
| B || 1A || Green<br />
|-<br />
| C || 2A || Blue<br />
|-<br />
| D || 2B || Red<br />
|}<br />
<br />
'''Suppliers'''<br />
<br />
'''Technical Information'''<br />
<br />
* [http://www.slidesandballscrews.com/pdf/steppermotors/SY42STH47-1684B.pdf Datasheet]<br />
<br />
== NEMA 23 Motors ==<br />
<br />
=== Nanotec ST5709S1208-B ===<br />
<br />
This was the original standard RepRap stepper motor. It has 400 steps to one revolution (0.9<sup>o</sup> per step). It actually has 4 coils (which means it can be wired as both a bipolar and unipolar), but we join up the wires to turn it into a bipolar motor.<br />
<br />
'''Bipolar - Serial'''<br />
<br />
This configuration is suited for our driver boards. It has higher impedance and higher resistance which means it draws less current. In this mode it can handle 0.85 amps, which is ideally matched to our L298 based boards. We recommend wiring it in this configuration.<br />
<br />
{| border="1"<br />
|-<br />
| '''Name''' || '''Color''' <br />
|-<br />
| A || Red <br />
|-<br />
| B || Black <br />
|-<br />
| C || Green <br />
|-<br />
| D || Yellow <br />
<br />
|}<br />
<br />
You will also need to splice the following wires together:<br />
<br />
* '''Red/White''' and '''Black/White'''<br />
* '''Green/White''' and '''Yellow/White'''<br />
<br />
[[image:cache-dsc03106.jpg|link=http://picasaweb.google.co.uk/VikOlliver/RepRap02/photo#5072881971638806162]]<br />
<br />
'''Bipolar - Parallel'''<br />
<br />
This configuration offers higher performance. It has lower impedance, and lower resistance. That means you can push more electrons through, at a faster rate. However, it will draw about 1.7 amps, which is at the upper end of what the L298 is capable of delivering. We do not recommend wiring it like this.<br />
<br />
Keep in mind that two wires make up the start and end of each coil.<br />
<br />
{| border="1"<br />
|-<br />
| '''Name''' || '''Color''' <br />
|-<br />
| A || Red and Black/White <br />
|-<br />
| B || Black and Red/White <br />
|-<br />
| C || Green and Yellow/White <br />
|-<br />
| D || Yellow and Green/White <br />
<br />
|}<br />
<br />
'''Suppliers'''<br />
<br />
* [http://uk.farnell.com/jsp/endecaSearch/partDetail.jsp?SKU=4743155 ST5709S1208-B stepper motor from Farnell]<br />
* [http://www.nanotec.com/page_product__st5709__en.html Nanotec Gmbh] - Supplier / Manufacturer<br />
<br />
'''Technical Information'''<br />
* [http://www.nanotec.com/downloads/pdf/1349/ST5709S1208.pdf Datasheet]<br />
* [http://www.nanotec.com/steppermotor_st5709.html#kennlinien Torque/Speed Curve]<br />
<br />
=== Keling KL23H51-24-08B ===<br />
<br />
[[image:cache-2122608287_2c91e1ae6e_m.jpg|link=http://flickr.com/photos/hoeken/2122608287/]]<br />
<br />
This is the RepRap stepper motor for the Arduino controller. It has 200 steps to one revolution (1.8<sup>o</sup> per step). It actually has 4 coils (which means it can be wired as both a bipolar and unipolar), but we join up the wires to turn it into a bipolar motor. It is much cheaper than the Nanotec, and with half-stepping it is almost as accurate.<br />
(The Keling KL23H51-24-08B is also used in the [[Eiffel]] prototype).<br />
<br />
'''Bipolar - Serial'''<br />
<br />
This configuration is suited for our driver boards. It has higher impedance and higher resistance which means it draws less current. In this mode it can handle 1.5 amps, which is ideally matched to our L298 based boards. We recommend wiring it in this configuration.<br />
<br />
{| border="1"<br />
|-<br />
| '''Name''' || '''Color''' <br />
|-<br />
| A || Blue <br />
|-<br />
| B || Green <br />
|-<br />
| C || Brown <br />
|-<br />
| D || White <br />
<br />
|}<br />
<br />
You will also need to splice the following wires together:<br />
<br />
* '''Red''' and '''Yellow'''<br />
* '''Black''' and '''Orange'''<br />
<br />
'''Bipolar - Parallel'''<br />
<br />
This configuration offers higher performance. It has lower impedance, and lower resistance. That means you can push more electrons through, at a faster rate. However, it will draw about 3 amps, which our L298 is just not capable of delivering. We do not recommend wiring it like this.<br />
<br />
Keep in mind that two wires make up the start and end of each coil.<br />
<br />
{| border="1"<br />
|-<br />
| '''Name''' || '''Color''' <br />
|-<br />
| A || Blue and Yellow <br />
|-<br />
| B || Red and Green <br />
|-<br />
| C || Brown and Orange <br />
|-<br />
| D || Black and White <br />
<br />
|}<br />
<br />
'''Suppliers'''<br />
<br />
* [http://store.makerbot.com/stepper-motor-nema-23-keling-kl23h51-24-08b.html MakerBot Industries]<br />
* [http://www.kelinginc.net/NEMA23Motor.html Keling Inc.] - The manufacturer/supplier. #5 on the list.<br />
<br />
'''Technical Information'''<br />
<br />
* [http://www.kelinginc.net/KL23H255-21-8A.pdf Datasheet]<br />
* [http://www.kelinginc.net/KL23H251-24-8BT.pdf Torque/Speed Curve]<br />
<br />
<br clear="all"><br />
<br />
=== FL57STH51-2808A (axis extending 1 way) and FL57STH51-3008B (axis 2 ways like the picture) ===<br />
<br />
[[image:StepperMotor-StepperFL57STH51-2808A.jpg|thumb]]<br />
<br />
The stepper motors are provided by [http://www.bitsfrombytes.com/ Bits From Bytes]. They come in two variations. Bought three from Bits From Bytes and I got one with the axis through and extending from both ends, and two with the axis extending one side. Their weight is slightly above 0.6 kg (I measured 619 gram).<br />
<br />
To make the unipolar stepper a bipolar one, connect these wires together:<br />
<br />
* Blue and Red/White<br />
* Green and Black/white <br />
<br />
{| border="1"<br />
|-<br />
| '''Name''' || '''Color''' <br />
|-<br />
| A || Blue/white <br />
|-<br />
| B || Red <br />
|-<br />
| C || Green/white <br />
|-<br />
| D || Black <br />
<br />
|}<br />
<br />
Datasheets: <br />
[http://www.motioncontrolproducts.co.uk/pdf/FL57STH51-3008B.pdf FL57STH51-3008B].<br />
[http://www.motioncontrolproducts.co.uk/pdf/FL57STH56-2008B.pdf FL57STH56-2008B]<br />
<br />
<br clear="all"><br />
<br />
=== Lin Engineering 5718X-05S ===<br />
<br />
[[image:StepperMotor-motor_5704.jpg|thumb]]<br />
<br />
The [http://www.linengineering.com//site/products/5718.html 5718X-05S] has the right specification to drive RepRap from the [[DarwinStepperController_1_2|PIC controllers]] '''but we haven't tested it yet'''. It should work with the Arduino electronics too. It has 200 steps per revolution, so you need to set the controller to half-step it to get the resolution needed. Take care to get the model where the output shaft comes out front and back, not just at the front.<br />
<br />
<br clear="all"><br />
<br />
<br />
==Stepper Motors==<br />
<br />
<br />
There is a good [http://en.wikipedia.org/wiki/Stepper_motor article on Wikipedia] explaining the technology behind stepper motors. The physical size of stepper motors are usually described via a US-based NEMA standard, which describes the bolt-up pattern and shaft diameter; the RepRap site has an [[NEMA_Motor|article explaining the standard]].<br />
In addition to the NEMA size rating, stepper motors also also rated by the depth of the motor in mm, the longer the motor typically the more powerful.<br />
Stepper motors also have a step size rating, 4 steps within each cycle. The step size, divided into 360 degrees gives the number of steps per revolution. For example, "1.8 degrees per full step" is a common step size rating, equivalent to "200 steps per revolution".<br />
<br />
Some stepper motor controllers generate 'microsteps' by generating a sine/cosine waveform for the stepper coils. The microsteps become less accurate then the full size steps, but allow finer control and smother operation. Also check the motor torque and the current draw to compare stepper motor strengths.<br />
<br />
<br />
The [[Mendel_Stepping_Motors|pages related to building a Mendel]] has a list of suppliers of stepping motors.<br />
<br />
The power of a motor is usually proportional to the physical size of the motor, The Darwin version of RepRap primarily used NEMA 24 motors, whereas the Mendel version is designed to use either NEMA 14 or NEMA 17 motors. The more commonly used size is NEMA 17 as it is easier to find NEMA 17 motors with sufficient torque compared to NEMA 14.<br />
<br />
The [[StepperMotor]] page has even more details about the most common motors used in a RepRap/RepStrap.<br />
<br />
==Torque==<br />
<br />
The Mendel officially requires 13.7 N-cm torque (0.137 N-m or 1400 g-cm or 1.215 lb-in) for each of the X, Y and Z axes. Recent designs for extruders ([[ExtruderController]]) almost exclusively require stepper motors as well, but no torque requirements have been given in those designs.<br />
<br />
Stepper motors do not offer as much torque or holding force as comparable DC servo motors or DC gear motors. Their advantage over these motors is one of positional control. Whereas DC motors require a closed loop feedback mechanism, as well as support circuitry to drive them, a stepper motor has positional control by its nature of rotation via fractional increments.<br />
<br />
==Power and current==<br />
<br />
All stepper motors will have certain specifications for voltage and current (typically 2.8 V and 1.68 A); as long as the stepper driver/controller does current control, you can use any supply voltage greater than the motor's rated voltage. In fact, a large difference is advantageous to the top speed of the motor. If the driver/controller does not do current control, you must use a supply voltage fairly close to the motor voltage (no more than 2x the voltage specified by the manufacturer) or the motor will overheat and burn out its winding insulation or demagnetize its rotor.<br />
<br />
The version 2.3 RepRap axis controllers do have current control.<br />
<br />
==Stepper drivers vs stepper controllers==<br />
<br />
To run a stepper motor, two things are normally required: a controller to create step and direction signals (at ±5 V normally) and a driver circuit which can generate the necessary current to drive the motor. In some cases, a very small stepper may be driven directly from the controller, or the controller and driver circuits may be combined on to one board.<br />
<br />
The stepper controller drives 3 wires -- traditionally labeled "step", "dir", "GND" -- which carry motion information to the stepper driver. (Often these 3 lines are opto-isolated at the front end of a stepper driver). The stepper controller is typically a pure digital logic device, and requires relatively little power.<br />
<br />
The stepper driver connects to the 4 thick wires of the stepper motor. It contains the big power transistors, and requires a thick power cable to a DC power supply, because all the power to drive the motors runs through it.<br />
<br />
==PWM and Stepper Drivers==<br />
From Wikipedia:[[http://en.wikipedia.org/wiki/Pulse-width_modulation|PWM]]:<br />
Pulse-width modulation (PWM) is a very efficient way of providing intermediate amounts of electrical power between fully on and fully off. A simple power switch with a typical power source provides full power only, when switched on. PWM is a comparatively recent technique, made practical by modern electronic power switches.<br />
<br />
Stepper drivers normally work by chopping up a supply voltage using an embedded PWM chip. These chips do require minor support circuitry (which is the primary thing you pay for when you buy a stepper driver). The PWM chips themselves usually have a unit price below 10 USD, depending mostly on their rated current. <br />
<br />
Some example chips include:<br />
{| border="1"<br />
||Chip<br />
|Verified?<br />
|Max current<br />
|Comments<br />
|-<br />
|[[http://www.google.com/search?q=L293D L293D]<br />
|Yes<br />
|0.6 A<br />
| Multiples can be stacked on top of each other to divide up amperage. <br />
|-<br />
|[[http://www.google.com/search?q=A3967 A3967]]<br />
|No<br />
|0.75 A<br />
|Slightly underpowered, at only 750 mA/phase<br />
|-<br />
|[[http://www.google.com/search?q=A4983 A4983]]<br />
|Yes<br />
|2 A<br />
|Can get very warm, active cooling is needed<br />
|-<br />
|[[http://www.google.com/search?q=A4988 A4988]]<br />
|Yes<br />
|2 A<br />
|Identical and pin compatible to A4983, but also pullup on M1 and motor short circuit protection<br />
|-<br />
|[[http://www.google.com/search?q=+Allegro+3977+chip Allegro 3977]]<br />
|No<br />
|2.5 A<br />
|<br />
|-<br />
|[[http://www.google.com/search?q=TB6560 TB6560]]<br />
|No<br />
|2.5 - 3 A<br />
|<br />
|}<br />
<br />
==Stepper drivers==<br />
<br />
Sourcing stepper motor drivers can be a bit difficult. The RepRap V2.3 stepper drivers are very hard to purchase pre-assembled. Sourcing the individual parts and assembling the controllers can be done with just a little bit of skill; for those without skills or materials to assemble the boards, generic stepper drivers can be purchased. In Europe it will usually be more cost-effective to purchase pre-assembled boards than to purchase the individual parts and perform a DIY assembly.<br />
<br />
{| border="1"<br />
|+<br />
====Alternative sources for stepper drivers====<br />
|Manufacturer<br />
|Verified?<br />
|Location<br />
|Max current<br />
|Microstepping<br />
|Comments<br />
|-<br />
|[[Stepper Motor Driver 2.3 (A3982)]]<br />
|Yes<br />
|US<br />
|2 A<br />
|1/2<br />
|Listed for comparison.<br />
|-<br />
|[http://www.sparkfun.com/commerce/product_info.php?products_id=9402 EasyDriver (A3967)]<br />
|Yes<br />
|US<br />
|0.75 A<br />
|1/8<br />
|Slightly underpowered compared to other drivers, at only 750 mA/phase. [[User:bothacker|bothacker]] uses EasyDriver[http://bothacker.com/2010/01/21/my-electronics-setup/], and reports that it has plenty sufficient power for Mendel. Recommended.<br />
|-<br />
|[[Pololu stepper driver board]]<br />
|Yes<br />
|US<br />
|2 A<br />
|1/16<br />
|Can get very warm; active fan cooling or passive small heatsink is needed above ~0.5 A. Recommended.<br />
|-<br />
|[http://stores.ebay.com/autohec 4 Axis Stepper Motor Driver Controller (A3977)]<br />
|Yes<br />
|US<br />
|2.5 A<br />
|1/8<br />
|4 stepper drivers on a single board. <br />
|-<br />
|[http://www.diycnc.co.uk/html/driver25.html DIY CNC]<br />
|No<br />
|GB<br />
|2.5 A<br />
|1/8<br />
|Can drive 1 stepper; discount when buying several.<br />
|-<br />
|[http://www.adafruit.com/index.php?main_page=product_info&products_id=81 Arduino Motor Shield]<br />
|No<br />
|US<br />
|0.6 A<br />
|?<br />
|Requires Arduino as controller. Can drive 2 servos, 4 DC, or 2 (bipolar or unipolar) steppers. Website notes that you can increase the max current by piggy-backing (soldering a chip onto a chip) another L293D chip on top of the first (and another one on top of that)<br />
|-<br />
|[http://shop.ebay.com/?_from=R40&_trksid=p3907.m38.l1313&_nkw=4+axis+TB6560&_sacat=See-All-Categories TB6560AHQ based]<br />
|No<br />
|GB/PRC<br />
|1.5 - 3 A<br />
|1, 1/2, 1/8, 1/16<br />
|Can drive 3 to 5 steppers depending on model; [[4_Axis_TB6560_CNC_Stepper_Motor_Driver_Board_Controller|read more]].<br />
|-<br />
|[http://forums.reprap.org/read.php?94,34406 Stepper Driver 2.3 Clone by kymberlyaandrus]<br />
|Yes<br />
|US<br />
|2 A<br />
|1/2<br />
|Same schematic but physically smaller than the original version. The trim pot doesn't have a start/end point so adjusting the current can be more difficult than other boards. The terminal blocks are nice because they don't require making special connectors.<br />
|-<br />
|[http://www.geckodrive.com/product.aspx?c=3&i=14469 Gecko Drive]<br />
|Yes<br />
|US<br />
|3.5 A<br />
|1/10 (only)<br />
|Can drive 4 steppers<br />
|-<br />
|[http://de.nanotec.com/schrittmotor_steuerungen_smc11.html Nanotec SMC11]<br />
|Yes<br />
|GER<br />
|1.4 A<br />
|1/16<br />
|with cooling until 2.5 A<br />
|-<br />
|[http://massmind.org/techref/io/stepper/linistep/ LiniStepper] by Roman Black<br />
|no<br />
|US<br />
|3 A<br />
|1/18 and "stepless"<br />
|Open Source: Circuit Diagram, PCB (Board) Layout, and PIC Software all available.<br />
|-<br />
|[[Tri Duino Stepper]]<br />
|???<br />
|???<br />
|???<br />
|???<br />
|Open Source<br />
|-<br />
|[[A3979breakout]]<br />
|???<br />
|???<br />
|???<br />
|???<br />
|???<br />
|-<br />
|[http://www.synthetos.com/wiki/index.php?title=Projects:grblShield grblshield]<br />
|No<br />
|US<br />
|2.5<br />
|1/8<br />
|3 axis controller plugs onto Arduino Uno or similar<br />
|}<br />
<!--<br />
|Manufacturer<br />
|Verified?<br />
|Location<br />
|Max current<br />
|Microstepping<br />
|Comments<br />
--><br />
<br />
[http://PMinMO.com/driver-comparison PMinMo stepper motor driver comparison].<br />
<br />
==Mid-Band Resonance Compensation==<br />
Gecko drivers have a feature called mid-band resonance compensation which keeps stepper motors from stalling due to resonance issues that can occur when the motor is turning in the range of 5-15 RPMs. This can be very useful when controlling the steppers on a Tiag mill, for example. However, the stepper motors in a Mendel never run anywhere near that range, so mid-band resonance compensation provides no benefit to a Mendel build.<br />
<br />
= Further reading =<br />
<br />
* [[Alternative electronics]] has some design considerations for people designing stepper motor controllers and other reprap electronics.<br />
* The [http://pminmo.com/PMinMOwiki/index.php5?title=Motors PMinMO wiki: "Motors"] article gives some recommendations for CNC motor selection.<br />
* The [http://opencircuits.com/Motor_driver Open Circuits wiki "motor driver"] article has a long list of open-source stepper motor drivers, and related information.<br />
* Some [[Wikipedia: linear actuator#Electro-mechanical actuators]], rather than the motor spinning the lead screw as in most CNC designs, instead the motor spins an internal lead nut, pulling the motor up and down a (non-spinning) lead screw that passes all the way through the motor. The electronics works identically to other stepper motors -- standard stepper motor electronics can drive it. One RepRap researcher points out that this makes the mechanics simpler and, with a few changes to the design, could potentially lower total cost of a RepRap.[http://www.3dreplicators.com/cgi-bin/cblog/index.php?/archives/391-Engaging-the-windmill.html][http://builders.reprap.org/2008/04/first-tests-of-haydon-linear-actuator.html][http://www.3dreplicators.com/cgi-bin/cblog/index.php?/archives/454-Selecting-a-linear-actuator-for-the-T2-z-axis.html]<br />
* [http://www.stepperworld.com/Tutorials/ Stepper World] has a great series of articles about how stepper motors work.<br />
<br />
[[Category:General motion control]]</div>Sblivenhttps://reprap.org/mediawiki/index.php?title=Stepper_motor&diff=54226Stepper motor2012-02-09T03:32:23Z<p>Sbliven: /* Suppliers */ Updating the erbyers ebay post. Hopefully his store ID is stable.</p>
<hr />
<div><br style="clear:both"/><br />
[[image:StepperMotor-reprap-stepper.jpg|thumb]]<br />
__TOC__<br />
<br />
= What is a Stepper Motor ?=<br />
Stepper motors are [[Motor FAQ | one kind of electric motor]] used in the robotics industry.<br />
Stepper motors move a known interval for each pulse of power. These pulses of power are provided by a stepper driver and is referred to as a step. As each step moves the motor a known distance it makes them handy devices for repeatable positioning. <br />
<br />
There are two major types of stepper motor known as bipolar and unipolar. Wikipedia has further information on stepper motors. Please see [[Wikipedia:stepper motor|Wikipedia]]. A good diagram showing a stepper motor's mechanical operation is [http://www.engineersgarage.com/articles/stepper-motors here].<br />
<br />
= Terms=<br />
<br />
;NEMA: refers to the frame size of the motor (as standardized by the US [http://en.wikipedia.org/wiki/National_Electrical_Manufacturers_Association National Electrical Manufacturers Association] <ref>For details refer to NEMA Standards Publication ICS 16-2001, "Motion/Position Control Motors, Controls, and Feedback Devices" (a copy may be downloaded [http://classxboats.com/htdocs/Engineering_Research/NEMA/ics_16.pdf here].</ref><br />
). It specifies the “face” size of the motor but not its length. For example a NEMA 23 stepper has a face of 2.3 x 2.3 inches with screw holes to match. Note: just because a motor is bigger does not mean it is more powerful in terms of torque. It is perfectly possible for a NEMA 14 to “out pull” a NEMA 17 or a NEMA 23. <br />
<br />
;Bipolar and Unipolar: These terms refers to the internals of the motor. Each type has a different stepper driver circuit board to control them. In theory a RepRap could use either, but in practice most are bipolar.<br />
<br />
;Micro stepping: A stepper motor always has a fixed number of steps. Microstepping is a way of increasing the number of steps by varying the amount of electricity sent to the coils inside the stepper motor. In most cases, micro stepping allows stepper motors to run smoother and more accurately.<br />
<br />
== Bipolar Motors ==<br />
<br />
[[image:StepperMotor-bipolar_stepper_sch.png|thumb]]<br />
<br />
These motors are the strongest type of stepper motor. You identify them by counting the leads - there should be four or eight. They are also the type of motors we are using in the RepRap Project's Mendel & Darwin designs. They have two coils inside, and stepping the motor round is achieved by energising the coils and changing the direction of the current within those coils. This requires more complex electronics than a unipolar motor, so we use a special driver chip to take care of all that for us. Some designs (the eight-wire ones) split each coil in the middle so you can wire the motor either as bipolar (short the middles) or unipolar (short the middles and treat the link as the centre tap - see below).<br />
<br />
<br clear="all"><br />
<br />
== Unipolar Motors ==<br />
<br />
[[image:StepperMotor-unipolar_stepper_sch.png|thumb]]<br />
<br />
Unipolar motors have two coils, each one has a centre tap. They are readily recognizable because they have 5, 6 or even 8 leads. It is possible to drive 6 or 8 lead unipolar motors as bipolar motors if you ignore the centre tap wires. 5 lead motors have both centre taps connected, so re-wiring them to a 4 lead version requires at least opening the motor, if it can be done at all.<br />
<br />
The main beauty of unipolar motors is that you can step them without having to reverse the direction of current in any coil, which makes the electronics simpler. Some early RepRap prototypes used this trick. Because the centre tap is used to energise only half of each coil at a time, unipolar motors generally have less torque than bipolar motors.<br />
<br />
<br clear="all"><br />
<br />
==Stepping Angle==<br />
<br />
Most stepper motors used for a Mendel have a step angle of 1.8 degrees. It is sometimes possible to use motors with larger step angles, however for printing to be accurate, they will need to be geared down to reduce the angle moved per step, which may lead to a slower maximum speed.<br />
<br />
== Micro stepping ==<br />
Microstepping between pole-positions is made with lower torque than with full-stepping, but has much lower tendency for mechanical oscillation around the step-positions and you can drive with much higher frequencies.<br />
<br />
If your motors are near to mechanical limitations and you have high friction or dynamics, microsteps don't give you much more accuracy over half-stepping. When your motors are 'overpowered' and/or you don't have much friction, then microstepping can give you much higher accuracy over half-stepping.<br />
You can transfer the higher positioning accuracy to moving accuracy too.<br />
<br />
= History =<br />
<br />
<br />
== Stepper Motor History for Darwin (V1.0 RepRap)==<br />
The RepRap Darwin used a NEMA 23 stepper motor. This stepper motor was a unipolar stepper motor which could be configured as a bipolar. This design used 3 stepper motors, one for each axis, and a DC motor for its extruder. Later many people upgraded their extruders to increase their control of the extruder. <br />
<br />
Note the Generation 2 electronics supported the first configuration with 3 stepper driver circuit boards for the steppers and a PWM circuit board to control the DC motor.<br />
<br />
The Darwin stepper motor requirements were as follows:<br />
<br />
{| border="1"<br />
|-<br />
| '''Parameter''' || '''Specification''' <br />
|-<br />
| Size || NEMA 23 <br />
|-<br />
| Type || Bipolar <br />
|-<br />
| Shaft || dual-output shaft <br />
|-<br />
| Torque || 100 oz-in or about 71 N-cm <br />
|-<br />
| Resistance || about 10 ohms, or 1 to 30 ohms <br />
<br />
|}<br />
<br />
<br />
Note<br />
<br />
If you are using the [[DarwinStepperController_1_2|PIC controller]] (Note: Generation 1 electronics) you need a motor that will use about 1A per winding at 12V - that is, around 10 ohms. The Arduino circuit can be adjusted to accommodate a wider range of steppers, but remember that if you specify a low-resistance one and the Arduino controller has to chop the voltage to limit the current going through it, that will also limit the torque.<br />
<br />
== Stepper Motor History for Mendel (V2.0 RepRap)==<br />
The RepRap Mendel used either NEMA 17 or NEMA 14 bipolar stepper motors. It used four stepper motors: one for each of the three axes and one for the extruder. <br />
<br />
Note this configuration of four stepper motors was supported by the 3rd generation electronics.<br />
<br />
The Mendel stepper motor requirements were as follows:<br />
<br />
{| border="1"<br />
|-<br />
| '''Parameter''' || '''Specification''' <br />
|-<br />
| Size || NEMA 17 or 14 (prototype was NEMA 14)<br />
|-<br />
| Type || Bipolar <br />
|-<br />
| Shaft || dual-output shaft (need to make knurling the stepper shaft easier, not applicable to recent geared extruders)<br />
|-<br />
| Torque || 13.7 N-cm (= 1400 g-cm or 19.4 oz-in)<br />
|-<br />
| Resistance || Must be over 6 ohms (not applicable to recent stepper controllers, see "current" below)<br />
<br />
|}<br />
<br />
=Holding Torque=<br />
<br />
It is recommended that you get approximately 13.7 N-cm (= 0.137 N-m or 1400 gf-cm or 19.4 ozf-in or 1.21 lbf-in) of holding torque (or more) for axis motors to avoid issues, although one stepper with less has been used successfully (see below). If in doubt, higher is better.<br />
<br />
For [[Wade's Geared Extruder]] (most widely used one as of 2012) it is suggested to use motor that is capable of creating a holding torque of at least 40 N-cm.<br />
<br />
If you need to convert between different units for the torque you can use the torque unit converter [http://www.numberfactory.com/nf%20torque.htm here].<br />
<br />
=Size=<br />
<br />
If using the smaller NEMA 14 motors, aim for the high torque option. NEMA 14s are neater, lighter and smaller, but can be hard to obtain with the appropriate holding torque. NEMA 17s are quite easy to get in the specification that Mendel needs, but are bulkier and less neat. NEMA 14s are running near the edge of their envelope: they will get warm. NEMA 17s are well inside what they can do, and will run much cooler.<br />
<br />
Note that any Mendel part that goes on to a stepper motor shaft expects the shaft to be roughly Ø5mm. If the shaft is a different size, you will need to make allowances for this in the parts you obtain/make.<br />
<br />
Based upon the NEMA 17 specification (from what i can find) the mounting holes are spaced 1.22in or 31mm apart along the edge of the motor. This should help if you are using second hand / salvaged parts.<br />
<br />
=Wiring=<br />
<br />
Steppers motors come in several wiring configurations. 4, 6 and 8 wires are all fairly common and work fine with the standard RepRap electronics.<br />
5 wire stepper motors exist but won't work with the standard RepRap electronics, because the 5th wire connects to both coil centers. See [[stepper wiring]] for more details.<br />
<br />
=Heat=<br />
<br />
Most of the motors specs give the current for two coils that will give an 80 °C rise, i.e. they can run at 100 °C! When using them on plastic brackets you need to under-run them to keep the brackets from melting. With PLA you have to seriously under-run them! Fortunately temperature rise is proportional to the square of current, but torque is directly proportional so you can keep temperature under control without losing too much torque.<br />
<br />
=Current=<br />
<br />
All recent stepper controllers use a current-limiting design. Because of this, the resistance (ohms) of the coils doesn't matter, as long as it is low enough for the current to rise fast enough for the current-limiting design to come into play. If the resistance is too high (i.e. 24V steppers) the current doesn't raise fast enough for reliable microstepping.<br />
<br />
Designs which use a separate "extruder controller board" sometimes use H-bridges (which are designed for running a DC motor) instead of a proper current-limiting stepper controller. On these boards, you need to be careful not to turn the current (PWM) too high, especially with low-ohm (low voltage) motors. You run the risk of overheating both the stepper motor and the H-bridge chip.<br />
<br />
=Suppliers=<br />
<br />
Below is a list of possible motors and suppliers. Please add to it. If you have built a Mendel successfully with a given motor, remember to put {{true}} in the tested field.<br />
<br />
{| class="wikitable sortable"<br />
|+ ''Stepper Motors - NEMA 14 (smaller, neater and used on the Mendel prototype)''<br />
|-<br />
| Vendors (link to product) || Shipping location || Manufacturer || Model # (link to datasheet) || Holding Torque || Shaft || Tested || Additional notes<br />
|-<br />
| [http://www.motioncontrolproducts.com/ Motion Control Products] || UK<br />
| Fulling Motor || [[Media:NEMA14-high-torque.pdf|FL35ST36-1004B]]<br />
| ~13.7 N-cm || Dual || {{true}} || Used in mendel prototype<br />
|-<br />
| [http://www.active-robots.com/ Active Robots] || UK || Wantai<br />
| [http://www.phidgets.com/documentation/Phidgets/3301Datasheet.pdf 35BYHG04]<br />
| ~12.3 N-cm || Ø4.9mm || {{true}} || Less holding torque than recommended, but has apparently been used successfully<br />
|-<br />
| [http://www.pololu.com/catalog/product/1209 Pololu Robotics] || US<br />
| [http://www.cnsoyo.com/ SOYO] || SY35ST36-1004A<br />
| ~13.7 N-cm || Ø5mm || '''?''' || Note: Pololu list this motor as 1400 g-cm AND as 20 oz-in (converts to 19.44 oz-in). According to supplier information, the metric value is correct.<br />
|-<br />
| [http://www.paoparts.com/fr/6-moteurs Paoparts] || EU-FR<br />
| [http://www.cnsoyo.com/ SOYO] || SY35ST36-1004A<br />
| ~13.7 N-cm || Ø5mm || '''?''' || Length cable 80 cm<br />
|-<br />
| [http://www.zappautomation.co.uk/product_info.php?products_id=51 Zapp Automation] || UK || ?<br />
| [http://www.slidesandballscrews.com/pdf/steppermotors/SY35ST.pdf SY35ST36-1004B]<br />
| ~14 N-cm || Dual || {{true}} || <br />
|}<br />
<br />
{| class="wikitable sortable"<br />
|+ ''Stepper Motors - NEMA 17 (larger and generally heavier but with more room to put a higher torque than a NEMA 14)''<br />
|-<br />
| Vendors (link to product) || Shipping location || Manufacturer || Model # (link to datasheet) || Holding Torque || Shaft || Tested || Additional notes<br />
|-<br />
| [http://www.zappautomation.co.uk/product_info.php?products_id=28 Zapp Automation]<br>[http://www.pololu.com/catalog/product/1200 Pololu Robotics] || UK<br>US<br />
| [http://www.cnsoyo.com/ SOYO] || [http://www.cnsoyo.com/product_show_e.asp?id=8 SY42STH47-1206A]<br />
| ~31.1 N-cm || Single || {{true}} || None<br />
|-<br />
| [http://www.zappautomation.co.uk/product_info.php?products_id=516 Zapp Automation] <br> [http://www.paoparts.com/fr/6-moteurs Paoparts] || UK <br> FR<br />
| [http://www.cnsoyo.com/ SOYO] || [http://www.slidesandballscrews.com/pdf/steppermotors/SY42STH47-1684A.pdf SY42STH47-1684A]<br />
| ~43.1 N-cm || Single, d-shape, Ø5mm || {{true}} || 4.5mm flat <br> paoparts.com motors are factory custom made with 80cm cables<br />
|-<br />
| [http://www.zappautomation.co.uk/product_info.php?products_id=29 Zapp Automation]<br>[http://www.mendel-parts.com/index.php?cPath=25 mendel-parts.com] || UK<br>NL<br />
| [http://www.cnsoyo.com/ SOYO] || [http://www.mendel-parts.com/data_sheets/SY42STH47-1684B.pdf SY42STH47-1684B]<br />
| ~43.1 N-cm || Dual, round, Ø5mm || {{true}} || mendel-parts.com motors are factory custom made with 80cm cables and have an option to include Molex connectors for our GEN6 electronics<br />
|-<br />
| [http://www.interinar.com/vexta-px243m-01aa.html Interinar Electronics, LLC] || US<br />
| Oriental Motors || [http://www.interinar.com/public_docs/PX243M-01AA.pdf PX243M-01AA]<br />
| 15 N-cm || Single || '''?''' || Not strong enough for direct drive extruder, Uses Imperial #4-40 TPI mounting holes instead of M3 metric<br />
|-<br />
| [http://www.alltronics.com/cgi-bin/item/28M035/search/Lin-Engineering-4218L-01-10-bipolar-stepper-motor Alltronics.com] || US<br />
| Lin Engineering || [http://www.alltronics.com/mas_assets/acrobat/28M035.pdf 4218L-01-10]<br />
| ~53 N-cm || Round, Ø5mm || {{true}} || None<br />
|-<br />
| [http://www.alltronics.com/cgi-bin/item/24M014/search/Lin-Engineering-Nema-17-1.8deg-24V-2A-bipolar-stepper-motor Alltronics.com] || US<br />
| Lin Engineering || [http://www.alltronics.com/mas_assets/acrobat/24M014.pdf 4218L-01-11]<br />
| ~53 N-cm || Ø5mm = 0.1968 inches, d-shape || {{true}} || None<br />
|-<br />
| [http://www.phidgets.com/products.php?category=23&product_id=3303 Phidgets.com]<br>[http://www.thingfarm.org/namerica/product.php?id_product=26 Thingfarm North America] || US<br>US<br />
| Wantai || [http://www.phidgets.com/documentation/Phidgets/3303Datasheet.pdf 42BYGHW811]<br />
| 47.1 N-cm || Ø5mm || {{true}} || None<br />
|-<br />
| [http://www.coolcomponents.co.uk/catalog/product_info.php?products_id=469 Cool Components]<br>[http://www.sparkfun.com/products/9238 SparkFun]<br>[http://www.robotgear.com.au/Product.aspx/Details/410 Robot Gear]<br>[http://www.australianrobotics.com.au/?q=node/323 Australian Robotics]<br>[http://www.mindkits.co.nz/store/movement/stepper-motor-with-cable Mindkits] || UK<br>US<br>AU<br>AU<br>NZ<br />
| Mercury Motor || [http://www.sparkfun.com/datasheets/Robotics/SM-42BYG011-25.pdf SM-42BYG011-25]<br />
| 23 N-cm || Ø5mm || {{true}} || None<br />
|-<br />
| [http://ausxmods.com.au/stepper-motors/62-oz-in-nema-17-stepper-motor AusXMods] || AU<br />
| Rugao Xinhe || [http://runall.en.made-in-china.com/product/oeBQykaCEmiS/China-1-8-Degree-Size-42mm-High-Tybrid-Stepping-Motor.html 17H185H-04A]<br />
| ~43.8 N-cm || ? || '''?''' || 2.8v,1.68A/phase,1.65ohm/phase, the -04B variant is dual-shaft<br />
|-<br />
| [http://store.kysanelectronics.com/servlet/-strse-68835/42BYGH4803/Detail Kysan] || China<br />
| [http://store.kysanelectronics.com Kysan] || [http://www.kysanelectronics.com/Products/datasheet_display.php?recordID=6008 42BYGH4803]<br />
| 49 N-cm || Ø5mm || {{true}} || Successfully tested with [http://objects.reprap.org/wiki/Geared_Nema17_Extruder Wade's Geared Nema 17] extruder - high flow rates. According to datasheet, 5mm round shaft. Requires Minimum Purchase of $100 when buying online.<br />
|-<br />
| [http://store.makerbot.com/motors/nema-17-stepper-motor.html MakerBot] || US<br />
| Kysan || [http://svn.makerbot.com/assets/datasheets/kysan-1123029.pdf 1123029]<br />
| 26 N-cm || Ø4.78mm (3/16"), 24mm long || '''?''' || None<br />
|-<br />
| [http://store.makerbot.com/nema-17-stepper-motor-high-torque.html MakerBot] || US || Custom ?? || ???? || 70.6 N-cm || Ø5.84mm (0.23"), 22mm long || '''?''' || None<br />
|-<br />
| [http://myworld.ebay.com/erbyers/?_trksid=p4340.l2559 erbyers on ebay] || US || Applied Motion<br />
| [http://www.ebay.com/itm/New-Applied-Motion-Products-NEMA-17-1-8-Stepper-Motor-/330517220763 4017-871]<br />
| ~8.47 N-cm || Dual, Ø5mm || '''?''' || One side of shaft is splined ~4.3mm 0.5in from face, other shaft is 5mm; wires 95mm long terminating in 0.1" header; date code from 1984<br />
|-<br />
| [http://www.reichelt.de/?;ACTION=3;LA=444;GROUP=C39;GROUPID=3299;ARTICLE=62654;START=0;SORT=artnr;OFFSET=16;SID=32MIj0BKwQASAAAGhC0iY484e8ab2d51a8a22b76248733f467eb1 Reichelt] || DE<br />
| [http://www.trinamic.com/tmc/render.php?sess_pid=261 Trinamic] || [http://www.trinamic.com/tmc/media/Downloads/QMot_motors/QSH4218/QSH4218_manual.pdf QSH4218-51-049]<br />
| 49 N-cm || Ø5mm || {{true}} || Tested on MakerBot Cupcake CNC<br />
|-<br />
| [http://www.mechapro.de/shop/Schrittmotoren/Schrittmotor-Nidec-Servo-KH4248-B95101::46.html mechapro] || DE<br />
| [http://www.nidec-servo.com/en/ Nidec Servo] || [http://www.mechapro.de/pdf/KH4248-B95191.pdf KH4248-B95101]<br />
| 48 N-cm || Ø5mm || '''?'''|| None<br />
|-<br />
| [http://www.lulzbot.com/48-nema-17-stepper-motors.html LulzBot] || US<br />
| [http://www.cnsoyo.com/ SOYO] || [http://www.alephobjects.com/hardware/motors/SY42STH47-1504A_060047067.pdf SY42STH47-1504A]<br />
| 55 N-cm || Ø5mm D-shaped || {{true}} || None<br />
|-<br />
| [http://www.2printbeta.de/product_info.php?products_id=53 2PrintBeta] || DE<br />
| [http://de.act-motor.com ACT] || [http://de.act-motor.com/productinfo/detail_12_25_76.html 17HS4417]<br />
| 40 N-cm || Ø5mm || ''?'' || None<br />
|-<br />
| [http://www.xyzprinters.com/electronics/89-stepper-motor.html XYZPrinters] || NL<br />
| XYZ || [http://www.xyzprinters.com/electronics/89-stepper-motor.html 42BYGH4803-04]<br />
| 55 N-cm || Ø5mm || {{true}} || Custom model, includes 60cm leads<br />
|-<br />
| [http://www.akcesoria-cnc.pl/ Akcesoria-cnc] || PL || ? (japan) || [http://www.akcesoria-cnc.pl/?menu=produkt&id=229 KH42KM2R001] || 45 N-cm || Ø5mm || ? ||<br />
|}<br />
<br />
=Unscientific rules of thumb for motor purchases=<br />
<br />
1) Generally, the longer the motor body, the more torque the motor has.<br />
<br />
2) If a motor is rated 2.5 A and your stepper driver produces only 2 A your motor will not produce the manufacturer's rated torque.<br />
<br />
3) If a motor is rated 35 V and your stepper produces only 12 V your motor will not produce the manufacturer's rated torque. <br />
<br />
4) A motor can safely exceed its rated voltage with a chopping stepper driver (which is all the RepRap stepper drivers, save only the Gen3 electronics extruder board hack). It cannot exceed its rated current (amps) without severely overheating and dying a quick death.<br />
<br />
5) Stepper motors are generally rated for a 50 °C temperature rise at rated current/torque.<br />
<br />
6) ABS melts at 105 - 120 °C but softens at 80 °C. Therefore you probably can't run your steppers at their full rated torque without melting your plastic motor mounts.<br />
<br />
7) Power is measured in watts (W) and is calculated as volts (V) × current (A).<br />
<br />
8) Power made available to a motor will be turned into heat and motion.<br />
<br />
9) The more power made available to the motor the higher the amount of heat and motion. Heat is proportional to current squared while motion is proportional to current, so losing a little motion (torque) can lose a lot of heat.<br />
<br />
10) Power and torque are related. The more power, the more torque.<br />
<br />
11) A motor's actual rated amps (if missing from the spec sheet) can be calculated by dividing the specified volts supplied to it by the ohms of resistance it has.<br />
<br />
= Driving stepper motors =<br />
To make a stepper motor work, you need to use <br />
# a stepper driver chip or<br />
# a microcontroller and, optionally, one or two full [[Wikipedia:H bridge|h-bridge]] chips <br />
<br />
=== Stepper Driver Chips ===<br />
These chips keep the power that drives the motors separate from the power that is on the arduino. The arduino can't provide enough juice to power the stepper motors directly. This is why you have to use separate chips to sort of act as valves that control how the motor spins.<br />
<br />
Another benefit that stepper driver chips provide, is that they provide ''fractional'' steps. This helps smooth out the motion of the stepper motor. Without fractional steps, stepper motors can have a tendency to vibrate or resonate at certain RPMs.<br />
<br />
Here's a list of stepper driver chips (newest first):<br />
;Allegro A4988 (QFN)<br />
:Used in [[Pololu stepper driver board]]s. Same as A4983 but offers overcurrent protection.<br />
<br />
;Allegro A4983 (QFN)<br />
:Used in [[Pololu stepper driver board]]s. Discontinued product. Replaced by equivalent A4988.<br />
<br />
;Allegro A3992 (DIL or TSSOP)<br />
:Used in [[Gen L Electronics]]<br />
<br />
;Allegro A3982<br />
:Improved over v1.2 in v2.2<br />
:also used in stepper motor driver v2.3<br />
<br />
;Allegro A3979<br />
:Abandoned due to tiny size in v2.1<br />
<br />
;Allegro A3977<br />
:Abandoned in stepper motor driver v2.0<br />
<br />
;Allegro A3967<br />
:Used in Easy Driver boards sold on [http://www.sparkfun.com/products/10267 sparkfun]<br />
:Not sure if they can be used in repraps but they're good for experimenting<br />
<br />
;Texas Instruments DRV8811<br />
:Used in [[generation 6 electronics]]<br />
:This is probably why the FiveD firmware was modified<br />
<br />
;L297/L298 combo<br />
:Last stepper motor driver to use this was v1.2<br />
:L298 used in [[Valkyrie Redux]]<br />
<br />
<br />
=== Microcontroller-based Stepper Drivers ===<br />
Microcontroller based steppers drivers can achieve very high rotation speeds in stepper motors. Using a microcontroller, it is possible to have extreme control over exactly how each individual coil is energized inside the motor. This is absolutely necessary to obtain high speeds because as speed increases, timing of the coils firing must be perfectly in sync. Quoting from [http://www.dr-iguana.com/prj_StepperDriver/ Dr. Iguana]:<br />
:If you've ever pushed someone on a swing, you know that a small, well timed push can cause that person to swing higher and higher. Miss a push or two by even a small amount and the 'power transfer' is significantly less. This is the situation in stepper motors at high speeds. If you don't match the pushes or steps to the actual state of the motor it will run poorly.<br />
<br />
In order to handle current higher than what the microprocessor can allow, the controller needs to use full H-bridge chips. <br />
<br />
Normally, an H-bridge is used for controlling a plain old DC-motor but in this case, the h-bridge chips are used for exactly controlling the amount of electricity that goes to each individual coil on the stepper motor. Thus, for bipolar stepper motors, it needs 2 chips per motor.<br />
<br />
== Open Source Stepper Drivers ==<br />
==== AVRSTMD ====<br />
<br />
The [http://www.avrstmd.com/ AVRSTMD] is an open source microcontroller-based stepper driver. It uses an atmega48 processor and two National Semiconductor LMD18245T current limited h-bridge chips.<br />
<br />
==== Dr. Iguana ====<br />
The Dr. Iguana stepper driver is based on a dsPic33 microcontroller and two L298N H-Bridge chips. It can achieve speeds up to 800 RPM. A very good source of information about microcontroller stepper drivers can be found on his website [http://www.dr-iguana.com/prj_StepperDriver/ here] along with all the schematics, gerber files, source code and BOM for the stepper driver.<br />
<br />
==== RepRap Stepper Motor Driver v1.x ====<br />
*obsolete*<br />
<br />
[[image:cache-2950488044_8ba115bd24_m.jpg|link=http://make.rrrf.org/smd-1.2]]<br />
<br />
The first generation of RepRap stepper motor drivers. <br />
(Note: These boards were used in the generation 2 collection of electronics.) Uses the L297/L298 stepper motor driver combo. Half-stepping. Handles up to 2A. All through hole. A nice, solid driver. It uses some old technology, so it's not as fancy as the newer stepper drivers, but it gets the job done. [[Stepper_Motor_Driver_1_2|Read the documentation page here]]<br />
<br />
=== RepRap Stepper Motor Driver v2.x ===<br />
*obsolete*<br />
<br />
[[image:cache-3218206144_6461b3e2c0_m.jpg|link=http://make.rrrf.org/smd-2.3]]<br />
<br />
The second generation of RepRap stepper motor drivers. <br />
(Note: These boards were used in the generation 3 collection of electronics but could be retrograded to generation 2.)<br />
<br />
Uses the Allegro A3982 chip which does a bunch of nice things and makes the board much simpler. It also drops the price by $10 compared to the v1.x series. It can handle up to 2A, and does half-stepping. The only downside is that it's SMT, which can be a bit scary for people. It's all large SMT parts, so it's pretty simple to solder, especially with the solder paste / hotplate method. [[Stepper_Motor_Driver_2_3|Read the documentation page here]].<br />
<br />
= Wiring Your Stepper =<br />
<br />
Pretty much all of our RepRap electronics are designed for Bipolar stepper motors. Every bipolar stepper motor has 4 wires that need to be wired to the driver board. These are labeled A, B, C, and D for lack of better terms. A and B are connected, as well as C and D. You can generally find out which wires are connected using a multimeter to measure the resistance. If you measure a small resistance (1-30 ohm) then they are connected. Generally, they are color coded and we have datasheets available, so things are easy.<br />
<br />
On motors with six wires, you'll find 4 pairs with low resistance and two pairs with double the low resistance. These two pairs with high resistance are the ones you want. Ignore the remaining two wires and proceed as if you had four wire steppers. In a datasheet it's the middle wire of each of both coils which has to be ignored.<br />
<br />
== Shortcut for finding the proper wiring sequence ==<br />
<br />
''Reproduced by kind permission of Rustle Laidman at StepperWorld.com [http://www.stepperworld.com/Tutorials/pgBipolarTutorial.htm]''<br />
<br />
Connect the 4 coil wires to the controller in any pattern. If it doesn't work at first, you only need try these 2 swaps:<br />
{| class="wikitable"<br />
|-<br />
| Name<br />
! A<br />
! B<br />
! C<br />
! D<br />
|-<br />
| Arbitrary first wiring order <br />
| 1<br />
| 2<br />
| 4<br />
| 8<br />
|-<br />
| Switch end pair <br />
| 1<br />
| 2<br />
| 8<br />
| 4<br />
|-<br />
| switch middle pair <br />
| 1<br />
| 8<br />
| 2<br />
| 4<br />
|}<br />
<br />
You're finished when the motor turns smoothly in either direction. If the motor turns in the opposite direction from desired, reverse the wires so that ABCD would become DCBA.<br />
<br />
NOTE: Some Reprap Electronics (such as RAMPS) will be looking for the endstops to be hooked up while testing the motor wiring as noted above. In this case you may see your motor move smoothly in one direction, but not at all in the other (as it thinks the endstop is triggered). If your firmware allows you to disable endstops you should do so for testing motor wiring, or alternatively you can connect the motor to the Extruder stepper motor connector to check that it moves smoothly in each direction.<br />
<br />
<br />
== NEMA 17 Motors ==<br />
<br />
=== Lin Engineering / 4118S-62-07 ===<br />
<br />
[[image:cache-stepper-motor-nema17.jpg|link=http://store.makerbot.com/featured-products/nema-17-stepper-motor.html]]<br />
<br />
This is an awesome little NEMA 17 stepper motor. It is the primary motor used on the Cupcake CNC. It has good torque and a small size. Here are some of the specs:<br />
<br />
* 200 steps per revolution (1.8 deg/step)<br />
* 2.5 A/phase<br />
* Phase resistance: 0.6 ohm<br />
* Phase inductance: 0.93 mH<br />
* Holding torque: 3240 g-cm or about 0.31 N-m<br />
* Shaft diameter: 0.190" [4.83 mm]<br />
* Shaft length: 0.50" [12.7 mm]<br />
* Motor depth: 1.34" [34 mm]<br />
<br />
NEMA 17 is a standard motor mounting geometry. The outside of the motor housing is 1.7" x 1.7".<br />
<br />
{| border="1"<br />
|-<br />
| '''Name''' || '''Pololu pin''' || '''Color''' <br />
|-<br />
| A || 2B || Red <br />
|-<br />
| B || 2A || Blue <br />
|-<br />
| C || 1A || Green <br />
|-<br />
| D || 1B || Black <br />
|}<br />
<br />
'''Suppliers'''<br />
<br />
* [http://store.rrrf.org/product_info.php?products_id=59 MakerBot Industries]<br />
<br />
'''Technical Information'''<br />
<br />
* [http://svn.makerbot.com/assets/datasheets/4118S-62-07.pdf Datasheet]<br />
<br />
<br clear="all"/><br />
<br />
=== Zapp Automation / SY42STH47-1684B ===<br />
<br />
* 200 steps per revolution (1.8 deg/step)<br />
* Rated current: 1.68 A<br />
* Phase resistance: 1.65 ohm<br />
* Phase inductance: 2.8 mH<br />
* Holding torque: 4400 g-cm [0.43 N-m]<br />
* Shaft diameter: 5 mm<br />
* Shaft length: 22 mm<br />
* Motor depth: 47 mm<br />
<br />
{| border="1"<br />
|-<br />
| '''Name''' || '''Pololu pin''' || '''Color''' <br />
|-<br />
| A || 1B || Black <br />
|-<br />
| B || 1A || Green<br />
|-<br />
| C || 2A || Blue<br />
|-<br />
| D || 2B || Red<br />
|}<br />
<br />
'''Suppliers'''<br />
<br />
'''Technical Information'''<br />
<br />
* [http://www.slidesandballscrews.com/pdf/steppermotors/SY42STH47-1684B.pdf Datasheet]<br />
<br />
== NEMA 23 Motors ==<br />
<br />
=== Nanotec ST5709S1208-B ===<br />
<br />
This was the original standard RepRap stepper motor. It has 400 steps to one revolution (0.9<sup>o</sup> per step). It actually has 4 coils (which means it can be wired as both a bipolar and unipolar), but we join up the wires to turn it into a bipolar motor.<br />
<br />
'''Bipolar - Serial'''<br />
<br />
This configuration is suited for our driver boards. It has higher impedance and higher resistance which means it draws less current. In this mode it can handle 0.85 amps, which is ideally matched to our L298 based boards. We recommend wiring it in this configuration.<br />
<br />
{| border="1"<br />
|-<br />
| '''Name''' || '''Color''' <br />
|-<br />
| A || Red <br />
|-<br />
| B || Black <br />
|-<br />
| C || Green <br />
|-<br />
| D || Yellow <br />
<br />
|}<br />
<br />
You will also need to splice the following wires together:<br />
<br />
* '''Red/White''' and '''Black/White'''<br />
* '''Green/White''' and '''Yellow/White'''<br />
<br />
[[image:cache-dsc03106.jpg|link=http://picasaweb.google.co.uk/VikOlliver/RepRap02/photo#5072881971638806162]]<br />
<br />
'''Bipolar - Parallel'''<br />
<br />
This configuration offers higher performance. It has lower impedance, and lower resistance. That means you can push more electrons through, at a faster rate. However, it will draw about 1.7 amps, which is at the upper end of what the L298 is capable of delivering. We do not recommend wiring it like this.<br />
<br />
Keep in mind that two wires make up the start and end of each coil.<br />
<br />
{| border="1"<br />
|-<br />
| '''Name''' || '''Color''' <br />
|-<br />
| A || Red and Black/White <br />
|-<br />
| B || Black and Red/White <br />
|-<br />
| C || Green and Yellow/White <br />
|-<br />
| D || Yellow and Green/White <br />
<br />
|}<br />
<br />
'''Suppliers'''<br />
<br />
* [http://uk.farnell.com/jsp/endecaSearch/partDetail.jsp?SKU=4743155 ST5709S1208-B stepper motor from Farnell]<br />
* [http://www.nanotec.com/page_product__st5709__en.html Nanotec Gmbh] - Supplier / Manufacturer<br />
<br />
'''Technical Information'''<br />
* [http://www.nanotec.com/downloads/pdf/1349/ST5709S1208.pdf Datasheet]<br />
* [http://www.nanotec.com/steppermotor_st5709.html#kennlinien Torque/Speed Curve]<br />
<br />
=== Keling KL23H51-24-08B ===<br />
<br />
[[image:cache-2122608287_2c91e1ae6e_m.jpg|link=http://flickr.com/photos/hoeken/2122608287/]]<br />
<br />
This is the RepRap stepper motor for the Arduino controller. It has 200 steps to one revolution (1.8<sup>o</sup> per step). It actually has 4 coils (which means it can be wired as both a bipolar and unipolar), but we join up the wires to turn it into a bipolar motor. It is much cheaper than the Nanotec, and with half-stepping it is almost as accurate.<br />
(The Keling KL23H51-24-08B is also used in the [[Eiffel]] prototype).<br />
<br />
'''Bipolar - Serial'''<br />
<br />
This configuration is suited for our driver boards. It has higher impedance and higher resistance which means it draws less current. In this mode it can handle 1.5 amps, which is ideally matched to our L298 based boards. We recommend wiring it in this configuration.<br />
<br />
{| border="1"<br />
|-<br />
| '''Name''' || '''Color''' <br />
|-<br />
| A || Blue <br />
|-<br />
| B || Green <br />
|-<br />
| C || Brown <br />
|-<br />
| D || White <br />
<br />
|}<br />
<br />
You will also need to splice the following wires together:<br />
<br />
* '''Red''' and '''Yellow'''<br />
* '''Black''' and '''Orange'''<br />
<br />
'''Bipolar - Parallel'''<br />
<br />
This configuration offers higher performance. It has lower impedance, and lower resistance. That means you can push more electrons through, at a faster rate. However, it will draw about 3 amps, which our L298 is just not capable of delivering. We do not recommend wiring it like this.<br />
<br />
Keep in mind that two wires make up the start and end of each coil.<br />
<br />
{| border="1"<br />
|-<br />
| '''Name''' || '''Color''' <br />
|-<br />
| A || Blue and Yellow <br />
|-<br />
| B || Red and Green <br />
|-<br />
| C || Brown and Orange <br />
|-<br />
| D || Black and White <br />
<br />
|}<br />
<br />
'''Suppliers'''<br />
<br />
* [http://store.makerbot.com/stepper-motor-nema-23-keling-kl23h51-24-08b.html MakerBot Industries]<br />
* [http://www.kelinginc.net/NEMA23Motor.html Keling Inc.] - The manufacturer/supplier. #5 on the list.<br />
<br />
'''Technical Information'''<br />
<br />
* [http://www.kelinginc.net/KL23H255-21-8A.pdf Datasheet]<br />
* [http://www.kelinginc.net/KL23H251-24-8BT.pdf Torque/Speed Curve]<br />
<br />
<br clear="all"><br />
<br />
=== FL57STH51-2808A (axis extending 1 way) and FL57STH51-3008B (axis 2 ways like the picture) ===<br />
<br />
[[image:StepperMotor-StepperFL57STH51-2808A.jpg|thumb]]<br />
<br />
The stepper motors are provided by [http://www.bitsfrombytes.com/ Bits From Bytes]. They come in two variations. Bought three from Bits From Bytes and I got one with the axis through and extending from both ends, and two with the axis extending one side. Their weight is slightly above 0.6 kg (I measured 619 gram).<br />
<br />
To make the unipolar stepper a bipolar one, connect these wires together:<br />
<br />
* Blue and Red/White<br />
* Green and Black/white <br />
<br />
{| border="1"<br />
|-<br />
| '''Name''' || '''Color''' <br />
|-<br />
| A || Blue/white <br />
|-<br />
| B || Red <br />
|-<br />
| C || Green/white <br />
|-<br />
| D || Black <br />
<br />
|}<br />
<br />
Datasheets: <br />
[http://www.motioncontrolproducts.co.uk/pdf/FL57STH51-3008B.pdf FL57STH51-3008B].<br />
[http://www.motioncontrolproducts.co.uk/pdf/FL57STH56-2008B.pdf FL57STH56-2008B]<br />
<br />
<br clear="all"><br />
<br />
=== Lin Engineering 5718X-05S ===<br />
<br />
[[image:StepperMotor-motor_5704.jpg|thumb]]<br />
<br />
The [http://www.linengineering.com//site/products/5718.html 5718X-05S] has the right specification to drive RepRap from the [[DarwinStepperController_1_2|PIC controllers]] '''but we haven't tested it yet'''. It should work with the Arduino electronics too. It has 200 steps per revolution, so you need to set the controller to half-step it to get the resolution needed. Take care to get the model where the output shaft comes out front and back, not just at the front.<br />
<br />
<br clear="all"><br />
<br />
<br />
==Stepper Motors==<br />
<br />
<br />
There is a good [http://en.wikipedia.org/wiki/Stepper_motor article on Wikipedia] explaining the technology behind stepper motors. The physical size of stepper motors are usually described via a US-based NEMA standard, which describes the bolt-up pattern and shaft diameter; the RepRap site has an [[NEMA_Motor|article explaining the standard]].<br />
In addition to the NEMA size rating, stepper motors also also rated by the depth of the motor in mm, the longer the motor typically the more powerful.<br />
Stepper motors also have a step size rating, 4 steps within each cycle. The step size, divided into 360 degrees gives the number of steps per revolution. For example, "1.8 degrees per full step" is a common step size rating, equivalent to "200 steps per revolution".<br />
<br />
Some stepper motor controllers generate 'microsteps' by generating a sine/cosine waveform for the stepper coils. The microsteps become less accurate then the full size steps, but allow finer control and smother operation. Also check the motor torque and the current draw to compare stepper motor strengths.<br />
<br />
<br />
The [[Mendel_Stepping_Motors|pages related to building a Mendel]] has a list of suppliers of stepping motors.<br />
<br />
The power of a motor is usually proportional to the physical size of the motor, The Darwin version of RepRap primarily used NEMA 24 motors, whereas the Mendel version is designed to use either NEMA 14 or NEMA 17 motors. The more commonly used size is NEMA 17 as it is easier to find NEMA 17 motors with sufficient torque compared to NEMA 14.<br />
<br />
The [[StepperMotor]] page has even more details about the most common motors used in a RepRap/RepStrap.<br />
<br />
==Torque==<br />
<br />
The Mendel officially requires 13.7 N-cm torque (0.137 N-m or 1400 g-cm or 1.215 lb-in) for each of the X, Y and Z axes. Recent designs for extruders ([[ExtruderController]]) almost exclusively require stepper motors as well, but no torque requirements have been given in those designs.<br />
<br />
Stepper motors do not offer as much torque or holding force as comparable DC servo motors or DC gear motors. Their advantage over these motors is one of positional control. Whereas DC motors require a closed loop feedback mechanism, as well as support circuitry to drive them, a stepper motor has positional control by its nature of rotation via fractional increments.<br />
<br />
==Power and current==<br />
<br />
All stepper motors will have certain specifications for voltage and current (typically 2.8 V and 1.68 A); as long as the stepper driver/controller does current control, you can use any supply voltage greater than the motor's rated voltage. In fact, a large difference is advantageous to the top speed of the motor. If the driver/controller does not do current control, you must use a supply voltage fairly close to the motor voltage (no more than 2x the voltage specified by the manufacturer) or the motor will overheat and burn out its winding insulation or demagnetize its rotor.<br />
<br />
The version 2.3 RepRap axis controllers do have current control.<br />
<br />
==Stepper drivers vs stepper controllers==<br />
<br />
To run a stepper motor, two things are normally required: a controller to create step and direction signals (at ±5 V normally) and a driver circuit which can generate the necessary current to drive the motor. In some cases, a very small stepper may be driven directly from the controller, or the controller and driver circuits may be combined on to one board.<br />
<br />
The stepper controller drives 3 wires -- traditionally labeled "step", "dir", "GND" -- which carry motion information to the stepper driver. (Often these 3 lines are opto-isolated at the front end of a stepper driver). The stepper controller is typically a pure digital logic device, and requires relatively little power.<br />
<br />
The stepper driver connects to the 4 thick wires of the stepper motor. It contains the big power transistors, and requires a thick power cable to a DC power supply, because all the power to drive the motors runs through it.<br />
<br />
==PWM and Stepper Drivers==<br />
From Wikipedia:[[http://en.wikipedia.org/wiki/Pulse-width_modulation|PWM]]:<br />
Pulse-width modulation (PWM) is a very efficient way of providing intermediate amounts of electrical power between fully on and fully off. A simple power switch with a typical power source provides full power only, when switched on. PWM is a comparatively recent technique, made practical by modern electronic power switches.<br />
<br />
Stepper drivers normally work by chopping up a supply voltage using an embedded PWM chip. These chips do require minor support circuitry (which is the primary thing you pay for when you buy a stepper driver). The PWM chips themselves usually have a unit price below 10 USD, depending mostly on their rated current. <br />
<br />
Some example chips include:<br />
{| border="1"<br />
||Chip<br />
|Verified?<br />
|Max current<br />
|Comments<br />
|-<br />
|[[http://www.google.com/search?q=L293D L293D]<br />
|Yes<br />
|0.6 A<br />
| Multiples can be stacked on top of each other to divide up amperage. <br />
|-<br />
|[[http://www.google.com/search?q=A3967 A3967]]<br />
|No<br />
|0.75 A<br />
|Slightly underpowered, at only 750 mA/phase<br />
|-<br />
|[[http://www.google.com/search?q=A4983 A4983]]<br />
|Yes<br />
|2 A<br />
|Can get very warm, active cooling is needed<br />
|-<br />
|[[http://www.google.com/search?q=A4988 A4988]]<br />
|Yes<br />
|2 A<br />
|Identical and pin compatible to A4983, but also pullup on M1 and motor short circuit protection<br />
|-<br />
|[[http://www.google.com/search?q=+Allegro+3977+chip Allegro 3977]]<br />
|No<br />
|2.5 A<br />
|<br />
|-<br />
|[[http://www.google.com/search?q=TB6560 TB6560]]<br />
|No<br />
|2.5 - 3 A<br />
|<br />
|}<br />
<br />
==Stepper drivers==<br />
<br />
Sourcing stepper motor drivers can be a bit difficult. The RepRap V2.3 stepper drivers are very hard to purchase pre-assembled. Sourcing the individual parts and assembling the controllers can be done with just a little bit of skill; for those without skills or materials to assemble the boards, generic stepper drivers can be purchased. In Europe it will usually be more cost-effective to purchase pre-assembled boards than to purchase the individual parts and perform a DIY assembly.<br />
<br />
{| border="1"<br />
|+<br />
====Alternative sources for stepper drivers====<br />
|Manufacturer<br />
|Verified?<br />
|Location<br />
|Max current<br />
|Microstepping<br />
|Comments<br />
|-<br />
|[[Stepper Motor Driver 2.3 (A3982)]]<br />
|Yes<br />
|US<br />
|2 A<br />
|1/2<br />
|Listed for comparison.<br />
|-<br />
|[http://www.sparkfun.com/commerce/product_info.php?products_id=9402 EasyDriver (A3967)]<br />
|Yes<br />
|US<br />
|0.75 A<br />
|1/8<br />
|Slightly underpowered compared to other drivers, at only 750 mA/phase. [[User:bothacker|bothacker]] uses EasyDriver[http://bothacker.com/2010/01/21/my-electronics-setup/], and reports that it has plenty sufficient power for Mendel. Recommended.<br />
|-<br />
|[[Pololu stepper driver board]]<br />
|Yes<br />
|US<br />
|2 A<br />
|1/16<br />
|Can get very warm; active fan cooling or passive small heatsink is needed above ~0.5 A. Recommended.<br />
|-<br />
|[http://stores.ebay.com/autohec 4 Axis Stepper Motor Driver Controller (A3977)]<br />
|Yes<br />
|US<br />
|2.5 A<br />
|1/8<br />
|4 stepper drivers on a single board. <br />
|-<br />
|[http://www.diycnc.co.uk/html/driver25.html DIY CNC]<br />
|No<br />
|GB<br />
|2.5 A<br />
|1/8<br />
|Can drive 1 stepper; discount when buying several.<br />
|-<br />
|[http://www.adafruit.com/index.php?main_page=product_info&products_id=81 Arduino Motor Shield]<br />
|No<br />
|US<br />
|0.6 A<br />
|?<br />
|Requires Arduino as controller. Can drive 2 servos, 4 DC, or 2 (bipolar or unipolar) steppers. Website notes that you can increase the max current by piggy-backing (soldering a chip onto a chip) another L293D chip on top of the first (and another one on top of that)<br />
|-<br />
|[http://shop.ebay.com/?_from=R40&_trksid=p3907.m38.l1313&_nkw=4+axis+TB6560&_sacat=See-All-Categories TB6560AHQ based]<br />
|No<br />
|GB/PRC<br />
|1.5 - 3 A<br />
|1, 1/2, 1/8, 1/16<br />
|Can drive 3 to 5 steppers depending on model; [[4_Axis_TB6560_CNC_Stepper_Motor_Driver_Board_Controller|read more]].<br />
|-<br />
|[http://forums.reprap.org/read.php?94,34406 Stepper Driver 2.3 Clone by kymberlyaandrus]<br />
|Yes<br />
|US<br />
|2 A<br />
|1/2<br />
|Same schematic but physically smaller than the original version. The trim pot doesn't have a start/end point so adjusting the current can be more difficult than other boards. The terminal blocks are nice because they don't require making special connectors.<br />
|-<br />
|[http://www.geckodrive.com/product.aspx?c=3&i=14469 Gecko Drive]<br />
|Yes<br />
|US<br />
|3.5 A<br />
|1/10 (only)<br />
|Can drive 4 steppers<br />
|-<br />
|[http://de.nanotec.com/schrittmotor_steuerungen_smc11.html Nanotec SMC11]<br />
|Yes<br />
|GER<br />
|1.4 A<br />
|1/16<br />
|with cooling until 2.5 A<br />
|-<br />
|[http://massmind.org/techref/io/stepper/linistep/ LiniStepper] by Roman Black<br />
|no<br />
|US<br />
|3 A<br />
|1/18 and "stepless"<br />
|Open Source: Circuit Diagram, PCB (Board) Layout, and PIC Software all available.<br />
|-<br />
|[[Tri Duino Stepper]]<br />
|???<br />
|???<br />
|???<br />
|???<br />
|Open Source<br />
|-<br />
|[[A3979breakout]]<br />
|???<br />
|???<br />
|???<br />
|???<br />
|???<br />
|-<br />
|[http://www.synthetos.com/wiki/index.php?title=Projects:grblShield grblshield]<br />
|No<br />
|US<br />
|2.5<br />
|1/8<br />
|3 axis controller plugs onto Arduino Uno or similar<br />
|}<br />
<!--<br />
|Manufacturer<br />
|Verified?<br />
|Location<br />
|Max current<br />
|Microstepping<br />
|Comments<br />
--><br />
<br />
[http://PMinMO.com/driver-comparison PMinMo stepper motor driver comparison].<br />
<br />
==Mid-Band Resonance Compensation==<br />
Gecko drivers have a feature called mid-band resonance compensation which keeps stepper motors from stalling due to resonance issues that can occur when the motor is turning in the range of 5-15 RPMs. This can be very useful when controlling the steppers on a Tiag mill, for example. However, the stepper motors in a Mendel never run anywhere near that range, so mid-band resonance compensation provides no benefit to a Mendel build.<br />
<br />
= Further reading =<br />
<br />
* [[Alternative electronics]] has some design considerations for people designing stepper motor controllers and other reprap electronics.<br />
* The [http://pminmo.com/PMinMOwiki/index.php5?title=Motors PMinMO wiki: "Motors"] article gives some recommendations for CNC motor selection.<br />
* The [http://opencircuits.com/Motor_driver Open Circuits wiki "motor driver"] article has a long list of open-source stepper motor drivers, and related information.<br />
* Some [[Wikipedia: linear actuator#Electro-mechanical actuators]], rather than the motor spinning the lead screw as in most CNC designs, instead the motor spins an internal lead nut, pulling the motor up and down a (non-spinning) lead screw that passes all the way through the motor. The electronics works identically to other stepper motors -- standard stepper motor electronics can drive it. One RepRap researcher points out that this makes the mechanics simpler and, with a few changes to the design, could potentially lower total cost of a RepRap.[http://www.3dreplicators.com/cgi-bin/cblog/index.php?/archives/391-Engaging-the-windmill.html][http://builders.reprap.org/2008/04/first-tests-of-haydon-linear-actuator.html][http://www.3dreplicators.com/cgi-bin/cblog/index.php?/archives/454-Selecting-a-linear-actuator-for-the-T2-z-axis.html]<br />
* [http://www.stepperworld.com/Tutorials/ Stepper World] has a great series of articles about how stepper motors work.<br />
<br />
[[Category:General motion control]]</div>Sbliven