https://reprap.org/mediawiki/api.php?action=feedcontributions&user=Fdavies&feedformat=atomRepRap - User contributions [en]2024-03-29T01:01:58ZUser contributionsMediaWiki 1.30.0https://reprap.org/mediawiki/index.php?title=Acorn_nut&diff=31913Acorn nut2011-04-17T13:13:56Z<p>Fdavies: Acorn nut (domed nut) info</p>
<hr />
<div>An acorn nut with a hole drilled in it can be used as the nozzle for the hot end of a reprap-type plastic extruder.<br />
Acorn nuts are also known as domed nuts.<br />
<br />
==Materials==<br />
Acorn nuts are available in a variety of materials, such as brass, steel, stainless steel, and nylon. <br />
<br />
For the purpose of making a hot end nozzle, brass or steel are best, since these have high thermal conductivity and are easily machined.<br />
<br />
==Hole drilling==<br />
To transform the acorn nut into a nozzle, a small hole must be drilled in the center. It is difficult to obtain conventional drill bits in sizes of 0.5 mm diameter or smaller. Drill bits used for drilling holes in printed circuit boards as part of their manufacture are available in this size range.<br />
<br />
One technique for drilling the hole in the end of the acorn nut is as follows:<br />
<br />
<br />
==Leaking==<br />
There are at least two separate ways that acorn nuts are constructed. Some are made by pressing a domed piece of metal into a groove on a conventional nut. Others are made by machining the nut out of a solid piece of metal (usually brass). As the picture below shows (blob of white PLA visible at edge of dome), sometimes a small gap may be present between the dome and the nut body which will allow molten PLA or ABS to leak through. Nuts made of solid metal do not have this problem.<br />
<br />
FD_leaking_acorn_nut.JPG<br />
<gallery><br />
Image:FD_leaking_acorn_nut.JPG| Leaking acorn nut<br />
</gallery><br />
<br />
[[Category:Reference]]</div>Fdavieshttps://reprap.org/mediawiki/index.php?title=File:FD_leaking_acorn_nut.JPG&diff=31912File:FD leaking acorn nut.JPG2011-04-17T13:10:06Z<p>Fdavies: Picture of hot end with acorn nut nozzle. The nut is leaking white PLA where the dome of the nut meets the body of the nut.</p>
<hr />
<div>Picture of hot end with acorn nut nozzle. The nut is leaking white PLA where the dome of the nut meets the body of the nut.</div>Fdavieshttps://reprap.org/mediawiki/index.php?title=PLA&diff=25750PLA2010-12-27T00:46:59Z<p>Fdavies: </p>
<hr />
<div>=PLA =<br />
<br />
Polylactic acid (PLA) is a bio-degradable polymer that can be produced from [http://en.wikipedia.org/wiki/Lactic_acid lactic acid], which can be fermented from crops such as maize. This makes it an ideal candidate for use in certain energy rich, cash poor areas of the world.<br />
<br />
It is harder then PTFE and melts at a lower temperature (around 180&deg;C to 220&deg;C), so is potentially a very useful material. It does exhibit higher friction than PTFE however which can make it difficult to extrude and more susceptible to extruder jams.<br />
<br />
For more details, see the<br />
[http://en.wikipedia.org/wiki/Polylactic_acid Wikipedia entry on Polylactic acid]<br />
<br />
===for chemists===<br />
A note from wikipedia:<br />
<blockquote>The name "polylactic acid" is to be used with caution, not complying to standard nomenclatures (such as IUPAC) and potentially leading to ambiguity (PLA is not a polyacid (polyelectrolyte), but rather a '''polyester''')</blockquote><br />
==Usage ==<br />
<br />
PLA is the ideal material for a Mendel RepRap. It is dimensionally stable, so there is no need for a heated bed. It is relatively inexpensive, and is not hard to source in filament form. <br />
<br />
<br />
It does require some torque to move PLA through an extruder because of its higher coefficient of friction (relative to [[ABS]]), so it is recommended that you use a [[Geared_Nema17_Extruder]] or [[Geared_Nema17_Extruder_Driver]] vs the stock mendel extruder.<br />
<br />
=== Heater Settings ===<br />
<br />
Depending on which material you use, you should adjust your heat accordingly. <br />
<br />
4042D should extrude at 190&deg;C<br />
<br />
4032D requires higher temperatures and may need to be set as high as 230&deg;C<br />
<br />
=== Extrusion width ===<br />
<br />
There has been some evidence that pigment may affect extrusion width. If you are switching plastics a lot, it is a good idea to measure the extrusion before going through the toolpath process.<br />
<br />
=== Build Surface ===<br />
<br />
PLA bonds very very firmly to Acrylic, and it is not recommended to print directly on an Acrylic build surface. <br />
<br />
It does stick well and is removed easily from [[BlueTape]]<br />
<br />
It can also be printed on Polyimide(Kapton) that is pre-heated, but will be hard to remove until both the part and the surface are cooled.<br />
<br />
It can also be printed [http://hydraraptor.blogspot.com/2010/05/pla-on-glass.html directly onto heated glass]<br />
<br />
=== Moisture Issues ===<br />
<br />
PLA can absorb moisture from the air. When it is heated this moisture can turn to steam bubbles which with certain hot end (extruder head) designs can interfere with printing. The symptom is that when the extruder motor stops the PLA kept coming out. When the stepper starts again there is a significant delay. Occasionally the tip may blow a bubble with a tiny puff of what looked like steam.<br />
<br />
Small amounts of PLA filament (Natureworks PLA4043D has been tried) can have some moisture removed by putting it on a piece of aluminum foil in an oven heated to 170F for an hour. The filament in the oven is floppy, but sticks to itself only slightly. Flexing the coils after cooling unsticks them from each other. Heating a whole spool this way has not been tried, and may result in the spool becoming unusable, so caution is advised.<br />
<br />
Interestingly, a weight change can be seen after baking. One coil went from 120.5 grams to 120.0 grams (almost 1/2%).<br />
<br />
== Mendel Suitability (#reprap irc chatter) == <br />
* <sbailard> you heard nophead saying that pla-based mendel had trouble printing abs?<br />
* <Forrest_Higgs> doesn't surprise me.<br />
* <bkecman> Forrest_Higgs, I cannot compare properly now as I started using hot bed (K5W) so now need to reconfigure too many settings<br />
* <davmj> model airplane glue is a solvent, it is effect welding the ABS together<br />
* <mendeluser> sbailard: my x-carriage got deformed while printing ABS<br />
* <mendeluser> PLA..<br />
* Forrest_Higgs is glad he didn't do hot beds.<br />
* <sbailard> mendeluser, want to upload the photo http://reprap.org/wiki/PLA<br />
* <mendeluser> sbailard: too late i swapped it for a new one and put the old one on a hotbed so its kind of straight now<br />
* <davmj> If the hotbed creates an ambient temp around the whole system above 50 to 60 degrees it is going to effect PLA (if I remember correctly)<br />
* <Forrest_Higgs> yupyup<br />
* Forrest_Higgs thinks that PLA might well be a blind alley<br />
* <davmj> When you added in the heat of the extruder and the increased heat required for melting ABS over PLA then you are again to be causing problems.<br />
* <bkecman> pla is good for mendel if you don't print abs/hdpe and don't use hot bed... with hot bed or abs/hdpe one has to go with abs/hdpe<br />
<br />
==Availability ==<br />
<br />
=== New Zealand ===<br />
<br />
Contact [[User:VikOlliver]] through his email or IRC for PLA 4042D in NZ <br />
<br />
He has natural and black as well as some standard colors (blue, yellow, green). If you want a custom color, and can meet a minimum order, he can source it locally.<br />
<br />
=== USA ===<br />
<br />
Several resellers have popped up and are supplying two different varieties of PLA<br />
<br />
Ultimachine - http://ultimachine.com/<br />
Green, Black, Natural 4042D in 5lb coils<br />
<br />
Makerbot - http://store.makerbot.com/<br />
Natural 4032D in 5 coils.<br />
<br />
Makergear - http://makergear.com/<br />
Green, Black, Natural 4032D and 4042D in 5 lb coils and lb packs<br />
<br />
=== Europe ===<br />
Reprapsource - http://reprapsource.com/<br />
PLA 4043D in different colours<br />
<br />
2PrintBeta - http://www.2printbeta.de/<br />
PLA 4042D in many different colours<br />
<br />
== Synthesis ==<br />
<br />
A crude form of PLA can be produced by simply heating powdered lactic acid with powdered stannous chloride - commonly used in pottery glazes - in a test tube. Extracting it from the test tube afterwards is left as an excercise for the diligent student.<br />
<br />
See papers in footnote for further details.<br />
<br />
<br />
==Papers etc ==<br />
* [[[[image:PLA-kim-23-2-6-98033.pdf|kim-23-2-6-98033.pdf]]: Synthesis, Characterization and in Vitro Degradation of Poly(DL-Lactide)/Poly(DL-Lactide-co-Glycolide) Films.|thumb]]<br />
<br />
* [[[[image:PLA-v30_327_334.pdf|v30_327_334.pdf]]: Synthesis and Characterization of Poly(L-lactide-co-&#949;-caprolactone) Copolymers: Effects of Stannous Octoate Initiator and Diethylene Glycol Coinitiator Concentrations|thumb]]<br />
<br />
* [[[[image:PLA-DiscreteYttriumComplexesasLactidePolymerizationCatalysts.pdf|DiscreteYttriumComplexesasLactidePolymerizationCatalysts.pdf]]: Discrete Yttrium(III) Complexes as Lactide Polymerization Catalysts|thumb]]<br />
<br />
* Stereoselective Ring-Opening Polymerization of meso-Lactide: Synthesis of Syndiotactic Poly(lactic acid) [[[[image:PLA-jamchemsci-121-4072.jpg|Page 1]], [[%ATTACHURL%/jamchemsci-121-4073.jpg|Page 2]], [[%ATTACHURL%/jamchemsci-121-4072-addendum.pdf|Addendum]]|thumb]]<br />
<br />
<br />
* [http://www.chemsoc.org/networks/learnnet/green/docs/plastics.pdf Plastics from Renewable Materials] A Royal Society of Chemistry educational document giving details of how to synthesise many polymers, including PLA.<br />
<br />
<br />
[[Category:Thermoplastic]]<br />
[[Category:Reference]]</div>Fdavieshttps://reprap.org/mediawiki/index.php?title=Microstepping_with_optical_feedback&diff=21607Microstepping with optical feedback2010-10-12T01:01:56Z<p>Fdavies: /* Optical encoder */</p>
<hr />
<div>{{Development<br />
|image = FD_microstep04_board_front_view.JPG<br />
|description = Microstepping with optical feedback<br />
|author = fdavies<br />
|reprap = <br />
|categories =<br />
|url = <br />
}}<br />
<br />
=Overview=<br />
The idea is to make a module that is a functional substitute for a 400 step stepper motor and a "dumb" stepper driver board.<br />
Stepper motors with fewer than 400 steps per rotation are easy to find as surplus equipment, either by themselves, or in old computer printers. Optical encoder strips and quadrature optical encoders are easy to get from junk ink-jet printers. In order to allow retrofitting of existing systems, it is desirable to have a setup that can take the PULSE and DIRECTION command signals usually accepted by stepper motor driver boards. These items can be combined to make high precision motion control setup that is quite useful.<br />
(Similar ideas can be applied to DC motors -- see [[RepRapServo 1 0]]).<br />
<br />
=Interface to gcode interpreter=<br />
My intent was to make this setup act like a stepper motor driver board, which it does. Because the step signal (PULSE) is being sampled by firmware, I have a simple pulse stretcher circuit that makes the pulses a little longer. I am using reprap-gen3-firmware-2009-08-05 (slightly tweaked) on the Arduino that generates the step and direction pulses. It makes 5 microsecond step pulses. This is a bit fast for my approx 30 KHz interrupt to detect reliably.<br />
<br />
=Stepper motor=<br />
This is a NEMA 17 motor on one axis, and larger cylindrical stepper on the other axis.<br />
<br />
=Drive Circuit=<br />
<schematic><br />
The drive circuit uses a L298. I was pleasantly suprised that I could run it at about 30 KHz, but it seems to be working fine. This is connected directly to the stepper motor in a bipolar configuration. There is no output filtering on this signal, but I have not had EMI problems.<br />
<gallery><br />
Image:FD_microstep04_Schematic.jpg| Schematic<br />
</gallery><br />
<br />
=Feedback Loop=<br />
This system is a little different from a servo loop with a DC motor. If you put a voltage across the terminals of a DC motor, it revs up to a certain speed and will continue to rotate at that speed while the voltage is present. If you put voltages on the terminals of a stepper motor, it moves to a certain position, and then holds that position.<br />
This actually makes things easier. The feedback algorithm has a feedforward term that directly increments (or decrements) the phase when a pulse is received. There is also an integral error term that adds an offset proportional to the difference between where it is and where it is supposed to be (this is added to the phase repeatedly, which is what makes it integrate).<br />
<br />
+---------------------------------------------+<br />
| |<br />
V +---------------------------+ |<br />
+-----------+ | | +---------+<br />
|Quadrature |->|XENC +-------+ SINE-->PWM|->| |<br />
|encoder | | | | Feed | ^ | | |<br />
+-----------+ | V | back | | | | Stepper |<br />
| +->| algor |->PHASE | | Motor |<br />
+-----------+ | ^ | ithm | | | | |<br />
|Stepper | | | +-------+ V | | |<br />
|COMMAND |->|COMMAND COSINE-->PWM|->| |<br />
|pulses | | Arduino | +---------+<br />
+-----------+ +---------------------------+<br />
<br />
=Firmware=<br />
See attached file. This is an Arduino type .PDE file and can be compiled with the arduino development software. It does use a custom made interrupt routine, though.<br />
<br />
=Optical encoder=<br />
This is a quadrature optical encoder removed from a inkjet printer. It has built-in signal conditioning which means that it has digital outputs that can go directly to the arduino pins. They are also strong enough to drive a pair of diagnostic LEDs. These let you check the alignment of the optical strip. I use the optical strip from the same printer as the encoder, since the encoder is optimized for a certain stripe spacing.<br />
<br />
http://objects.reprap.org/wiki/Optical_encoders_01<br />
<br />
=Features=<br />
This was worth the trouble to make for the following reasons:<br />
<br />
1. Stepper motor slips (missed steps) are immediately corrected. This means that I can use a smaller stepper than I would have otherwise been able to. It also means that I don't find an overnight print with a sideways slip in the middle of it.<br />
<br />
2. The stepper is a lot quieter. This is because it is being driven with smoothly varying sinewaves, not abrupt square waves.<br />
<br />
3. The stepper runs cooler. I am running a unipolar stepper in a bipolar way. This is not a unique advantage of this technique, I know, but it is an improvement in the way that I was doing things before.<br />
<br />
=Downloads=<br />
*[[Image:FD_Microstep04_firmware.pde]]<br />
<br />
=Photos and Drawings=<br />
<gallery><br />
Image:FD_microstep04_board_front_view.JPG| Front view of circuit board<br />
Image:FD_microstep04_board_bottom_view.JPG| bottom of circuit board<br />
</gallery><br />
<br />
[[Category:Servo]]</div>Fdavieshttps://reprap.org/mediawiki/index.php?title=Optical_encoders_01&diff=21606Optical encoders 012010-10-12T00:58:38Z<p>Fdavies: </p>
<hr />
<div>{{Development<br />
|image = FD_opto_sensor_identification_01.JPG<br />
|description = Linear Optical Encoder Components<br />
|author = fdavies<br />
|reprap = <br />
|categories = <br />
|url = <br />
}}<br />
<br />
=Overview=<br />
For those who enjoy scavenging, many components useful for constructing 3D printers can be found in inkjet printers. This often includes optical encoders and strips. This page gives information on finding and using these items.<br />
<br />
=Finding printers with linear optical encoders in them=<br />
Cheap inkjet printers can be obtained from garage sales or recycling centers. Do not get laser printers, since they do not have the right optical components in them. Not all inkjet printers have optical encoders and strips in them. It is easy to tell by opening the lid (as if to change the ink). You should see a grey plastic strip close to the shiny metal rod and running parallel to it. The printers that people sell cheaply or recycle generally are somewhat inky inside. Do not get ink on the optical strip, though you may be able to clean it off.<br />
<br />
The strip runs through the optical sensor, which may be quite hidden. It is probably on the back side of the assembly that holds the ink cartridges. <br />
<br />
The pictures below show two inkjet printers (both Dell) with the covers open. The gray encoder strips are visible.<br />
<gallery><br />
Image:FD_opto_strip_identification_01.JPG| Optical strip identification<br />
Image:FD_opto_strip_identification_02.JPG| Optical strip identification<br />
</gallery><br />
<br />
=Removing strips and sensors=<br />
The following pictures show a partially disassembled printer with the strip and encoder (sensor).<br />
<gallery><br />
Image:FD_opto_sensor_identification_01.JPG| Sensor example 1<br />
Image:FD_opto_sensor_identification_02.JPG| Sensor example 2<br />
</gallery><br />
<br />
After you have removed the moving assembly you should be able to see the optical sensor. It will have a black plastic case with a slot for the strip. It will be soldered to a small printed circuit board. Do whatever you have to in order to get this circuit board free of everything else without damaging the sensor. Unsolder the sensor from the circuit board. It will have either 4 or 6 pins. If it has six pins, the pins will be in a group of 4 and a group of 2. The following are common desoldering techniques. <br />
<br />
a. Make a big blob of solder that covers all 4 pins and will stay molten long enough that the sensor can be pulled free of the board (because all 4 pins are loose at the same time).<br />
<br />
b. Remove the solder from around the pins with a solder socking device or solder wick.<br />
<br />
c. Since you do not care about the circuit board, nibble away at it (but not with your sharpest wire cutters) until the pins are separated from each other and they can be unsoldered from the circuit board remnants one at a time.<br />
<br />
<gallery><br />
Image:FD_opto_sensor_identification_03.JPG| Sensor example 3<br />
Image:FD_opto_sensor_identification_04.JPG| Sensor example 4<br />
Image:FD_opto_sensor_identification_05.JPG| Sensor example 5<br />
Image:FD_opto_sensor_identification_06.JPG| Sensor example 6<br />
Image:FD_opto_sensor_identification_07.JPG| Sensor example 7<br />
</gallery><br />
<br />
=Linear strips vs. circular strips=<br />
Note that some of the high end HP photoprinters use optical encoders for rotating the paper feed drum. There will be a circular encoder strip, as shown below. Lower end printers just use a small stepper motor for moving the paper. <br />
<gallery><br />
Image:FD_opto_strip_circular_01.JPG| Circular strip<br />
Image:FD_opto_strip_linear_01.JPG| Linear strip<br />
</gallery><br />
<br />
=Determining encoder pinouts=<br />
The best approach is to figure out the manufacturer and part number of the unit and get the manufacturer's data sheet. <br />
However, it can be difficult to find data sheets on the optical encoders or even sometimes to figure out their manufacturer or part number. In this case it is possible to use a voltmeter in 'diode' mode to figure out which pins do what. Make a drawing of the unit with the pins identified, then make a table with a row and column for each pin. Use your voltmeter in 'diode' mode and record what is measured for each pair of pins. If the meter reading does not change form what it is when no connection is made, record it as OL. Note that a pair of pins may give different readings depending on which one connects to the positive (red) probe of the meter so it is important to take readings in both directions. Below are pictures of 5 encoders and corresponding measurement tables. <br />
<br />
If the unit has a group of two pins and a group of four, then the group of two is the LED that shines light through the strip (it will almost certainly need a current limiting resistor, 200 ohms would be about right). The group of four has two pins for the output signals, one ground pin, and one power pin (5V in all the data sheets that I have seen). <br />
<br />
If the unit has only four pins, the LED will be internally connected to the ground and power pins through an internal current limiting resistor.<br />
<br />
The two output pins are the ones that give nearly identical readings with respect to the other pins (they perform the same function, differing only in the physical location of the sensor). The ground pin will show a reading of approximately 0.5 to 0.7 when it is positive with respect to the other pins (you are effectively reversing the power to the device in a safe way, so it looks somewhat like a short circuit).<br />
<br />
Note that the Agilent ones seem to have a standard pinout.<br />
<gallery><br />
Image:FD_opto_sensor_pinout_01.JPG<br />
Image:FD_opto_sensor_pinout_02.JPG<br />
Image:FD_opto_sensor_pinout_03.JPG<br />
Image:FD_opto_sensor_pinout_04.JPG<br />
Image:FD_opto_sensor_pinout_05.JPG<br />
Image:FD_opto_sensor_pinout_06.JPG<br />
</gallery></div>Fdavieshttps://reprap.org/mediawiki/index.php?title=Optical_encoders_01&diff=21605Optical encoders 012010-10-12T00:57:12Z<p>Fdavies: </p>
<hr />
<div>{{Development<br />
|image = FD_opto_sensor_identification_01.JPG<br />
|description = Linear Optical Encoder Components<br />
|author = fdavies<br />
|reprap = <br />
|categories = <br />
|url = <br />
}}<br />
<br />
=Overview=<br />
For those who enjoy scavenging, many components useful for constructing 3D printers can be found in inkjet printers. This often includes optical encoders and strips. This page gives information on finding and using these items.<br />
<br />
=Finding printers with linear optical encoders in them=<br />
Cheap inkjet printers can be obtained from garage sales or recycling centers. Do not get laser printers, since they do not have the right optical components in them. Not all inkjet printers have optical encoders and strips in them. It is easy to tell by opening the lid (as if to change the ink). You should see a grey plastic strip close to the shiny metal rod and running parallel to it. The printers that people sell cheaply or recycle generally are somewhat inky inside. Do not get ink on the optical strip, though you may be able to clean it off.<br />
<br />
The strip runs through the optical sensor, which may be quite hidden. It is probably on the back side of the assembly that holds the ink cartridges. <br />
<br />
The pictures below show two inkjet printers (both Dell) with the covers open. The gray encoder strips are visible.<br />
<gallery><br />
Image:FD_opto_strip_identification_01.JPG| Optical strip identification<br />
Image:FD_opto_strip_identification_02.JPG| Optical strip identification<br />
</gallery><br />
<br />
=Removing strips and sensors=<br />
The following pictures show a partially disassembled printer with the strip and encoder (sensor).<br />
<gallery><br />
Image:FD_opto_sensor_identification_01.JPG| Sensor example 1<br />
Image:FD_opto_sensor_identification_02.JPG| Sensor example 2<br />
</gallery><br />
<br />
After you have removed the moving assembly you should be able to see the optical sensor. It will have a black plastic case with a slot for the strip. It will be soldered to a small printed circuit board. Do whatever you have to in order to get this circuit board free of everything else without damaging the sensor. Unsolder the sensor from the circuit board. It will have either 4 or 6 pins. If it has six pins, the pins will be in a group of 4 and a group of 2. The following are common desoldering techniques. <br />
<br />
a. Make a big blob of solder that covers all 4 pins and will stay molten long enough that the sensor can be pulled free of the board (because all 4 pins are loose at the same time).<br />
b. Remove the solder from around the pins with a solder socking device or solder wick.<br />
c. Since you do not care about the circuit board, nibble away at it (but not with your sharpest wire cutters) until the pins are separated from each other and they can be unsoldered from the circuit board remnants one at a time.<br />
<br />
<gallery><br />
Image:FD_opto_sensor_identification_03.JPG| Sensor example 3<br />
Image:FD_opto_sensor_identification_04.JPG| Sensor example 4<br />
Image:FD_opto_sensor_identification_05.JPG| Sensor example 5<br />
Image:FD_opto_sensor_identification_06.JPG| Sensor example 6<br />
Image:FD_opto_sensor_identification_07.JPG| Sensor example 7<br />
</gallery><br />
<br />
=Linear strips vs. circular strips=<br />
Note that some of the high end HP photoprinters use optical encoders for rotating the paper feed drum. There will be a circular encoder strip, as shown below. Lower end printers just use a small stepper motor for moving the paper. <br />
<gallery><br />
Image:FD_opto_strip_circular_01.JPG| Circular strip<br />
Image:FD_opto_strip_linear_01.JPG| Linear strip<br />
</gallery><br />
<br />
=Determining encoder pinouts=<br />
The best approach is to figure out the manufacturer and part number of the unit and get the manufacturer's data sheet. <br />
However, it can be difficult to find data sheets on the optical encoders or even sometimes to figure out their manufacturer or part number. In this case it is possible to use a voltmeter in 'diode' mode to figure out which pins do what. Make a drawing of the unit with the pins identified, then make a table with a row and column for each pin. Use your voltmeter in 'diode' mode and record what is measured for each pair of pins. If the meter reading does not change form what it is when no connection is made, record it as OL. Note that a pair of pins may give different readings depending on which one connects to the positive (red) probe of the meter so it is important to take readings in both directions. Below are pictures of 5 encoders and corresponding measurement tables. <br />
<br />
If the unit has a group of two pins and a group of four, then the group of two is the LED that shines light through the strip (it will almost certainly need a current limiting resistor, 200 ohms would be about right). The group of four has two pins for the output signals, one ground pin, and one power pin (5V in all the data sheets that I have seen). <br />
<br />
If the unit has only four pins, the LED will be internally connected to the ground and power pins through an internal current limiting resistor.<br />
<br />
The two output pins are the ones that give nearly identical readings with respect to the other pins (they perform the same function, differing only in the physical location of the sensor). The ground pin will show a reading of approximately 0.5 to 0.7 when it is positive with respect to the other pins (you are effectively reversing the power to the device in a safe way, so it looks somewhat like a short circuit).<br />
<br />
Note that the Agilent ones seem to have a standard pinout.<br />
<gallery><br />
Image:FD_opto_sensor_pinout_01.JPG<br />
Image:FD_opto_sensor_pinout_02.JPG<br />
Image:FD_opto_sensor_pinout_03.JPG<br />
Image:FD_opto_sensor_pinout_04.JPG<br />
Image:FD_opto_sensor_pinout_05.JPG<br />
Image:FD_opto_sensor_pinout_06.JPG<br />
</gallery></div>Fdavieshttps://reprap.org/mediawiki/index.php?title=Optical_encoders_01&diff=21604Optical encoders 012010-10-12T00:24:43Z<p>Fdavies: </p>
<hr />
<div>{{Development<br />
|image = FD_opto_sensor_identification_01.JPG<br />
|description = Linear Optical Encoder Components<br />
|author = fdavies<br />
|reprap = <br />
|categories = <br />
|url = <br />
}}<br />
<br />
=Overview=<br />
For those who enjoy scavenging, many components useful for constructing 3D printers can be found in inkjet printers. This often includes optical encoders.<br />
<br />
=Finding printers with linear optical encoders in them=<br />
<gallery><br />
Image:FD_opto_strip_identification_01.JPG| Optical strip identification<br />
Image:FD_opto_strip_identification_02.JPG| Optical strip identification<br />
</gallery><br />
<br />
=Removing strips and sensors=<br />
<gallery><br />
Image:FD_opto_sensor_identification_01.JPG| Sensor example 1<br />
Image:FD_opto_sensor_identification_02.JPG| Sensor example 2<br />
Image:FD_opto_sensor_identification_03.JPG| Sensor example 3<br />
Image:FD_opto_sensor_identification_04.JPG| Sensor example 4<br />
Image:FD_opto_sensor_identification_05.JPG| Sensor example 5<br />
Image:FD_opto_sensor_identification_06.JPG| Sensor example 6<br />
Image:FD_opto_sensor_identification_07.JPG| Sensor example 7<br />
</gallery><br />
<br />
=Linear strips vs. circular strips=<br />
<gallery><br />
Image:FD_opto_strip_circular_01.JPG| Circular strip<br />
Image:FD_opto_strip_linear_01.JPG| Linear strip<br />
</gallery><br />
<br />
=How to use sensors=<br />
It can be difficult to find data sheets on the sensors, but it is possible to use a voltmeter in 'diode' mode to figure out which pins do what.<br />
<gallery><br />
Image:FD_opto_sensor_pinout_01.JPG<br />
Image:FD_opto_sensor_pinout_02.JPG<br />
Image:FD_opto_sensor_pinout_03.JPG<br />
Image:FD_opto_sensor_pinout_04.JPG<br />
Image:FD_opto_sensor_pinout_05.JPG<br />
Image:FD_opto_sensor_pinout_06.JPG<br />
</gallery></div>Fdavieshttps://reprap.org/mediawiki/index.php?title=Optical_encoders_01&diff=21599Optical encoders 012010-10-11T20:20:23Z<p>Fdavies: Information on optical encoder components found in inkjet printers</p>
<hr />
<div>{{Development<br />
|image = FD_opto_sensor_identification_01.JPG<br />
|description = Linear Optical Encoder Components<br />
|author = fdavies<br />
|reprap = <br />
|categories = <br />
|url = <br />
}}<br />
<br />
=Overview=<br />
For those who enjoy scavenging, many components useful for constructing 3D printers can be found in inkjet printers. This often includes optical encoders.<br />
<br />
=Finding printers with linear optical encoders in them=<br />
<gallery><br />
Image:FD_opto_strip_identification_01.JPG| Optical strip identification<br />
Image:FD_opto_strip_identification_02.JPG| Optical strip identification<br />
</gallery><br />
<br />
=Removing strips and sensors=<br />
<gallery><br />
Image:FD_opto_sensor_identification_01.JPG| Sensor example 1<br />
Image:FD_opto_sensor_identification_02.JPG| Sensor example 2<br />
Image:FD_opto_sensor_identification_03.JPG| Sensor example 3<br />
Image:FD_opto_sensor_identification_04.JPG| Sensor example 4<br />
Image:FD_opto_sensor_identification_05.JPG| Sensor example 5<br />
Image:FD_opto_sensor_identification_06.JPG| Sensor example 6<br />
Image:FD_opto_sensor_identification_07.JPG| Sensor example 7<br />
</gallery><br />
<br />
=Linear strips vs. circular strips=<br />
<gallery><br />
Image:FD_opto_strip_circular_01.JPG| Model Z02 open| Circular strip<br />
Image:FD_opto_strip_linear_01.JPG| Model Z02 open| Linear strip<br />
</gallery><br />
<br />
=How to use sensors=<br />
It can be difficult to find data sheets on the sensors, but it is possible to use a voltmeter in 'diode' mode to figure out which pins do what.<br />
<gallery><br />
FD_opto_sensor_pinout_01.JPG<br />
FD_opto_sensor_pinout_02.JPG<br />
FD_opto_sensor_pinout_03.JPG<br />
FD_opto_sensor_pinout_04.JPG<br />
FD_opto_sensor_pinout_05.JPG<br />
FD_opto_sensor_pinout_06.JPG<br />
</gallery></div>Fdavieshttps://reprap.org/mediawiki/index.php?title=File:FD_opto_sensor_pinout_06.JPG&diff=21598File:FD opto sensor pinout 06.JPG2010-10-11T20:19:47Z<p>Fdavies: </p>
<hr />
<div></div>Fdavieshttps://reprap.org/mediawiki/index.php?title=File:FD_opto_sensor_pinout_05.JPG&diff=21597File:FD opto sensor pinout 05.JPG2010-10-11T20:18:51Z<p>Fdavies: </p>
<hr />
<div></div>Fdavieshttps://reprap.org/mediawiki/index.php?title=File:FD_opto_sensor_pinout_04.JPG&diff=21596File:FD opto sensor pinout 04.JPG2010-10-11T20:17:27Z<p>Fdavies: </p>
<hr />
<div></div>Fdavieshttps://reprap.org/mediawiki/index.php?title=File:FD_opto_sensor_pinout_03.JPG&diff=21595File:FD opto sensor pinout 03.JPG2010-10-11T20:16:38Z<p>Fdavies: </p>
<hr />
<div></div>Fdavieshttps://reprap.org/mediawiki/index.php?title=File:FD_opto_sensor_pinout_02.JPG&diff=21594File:FD opto sensor pinout 02.JPG2010-10-11T20:16:12Z<p>Fdavies: </p>
<hr />
<div></div>Fdavieshttps://reprap.org/mediawiki/index.php?title=File:FD_opto_sensor_pinout_01.JPG&diff=21593File:FD opto sensor pinout 01.JPG2010-10-11T20:14:53Z<p>Fdavies: </p>
<hr />
<div></div>Fdavieshttps://reprap.org/mediawiki/index.php?title=File:FD_opto_strip_linear_01.JPG&diff=21591File:FD opto strip linear 01.JPG2010-10-11T20:08:46Z<p>Fdavies: </p>
<hr />
<div></div>Fdavieshttps://reprap.org/mediawiki/index.php?title=File:FD_opto_strip_circular_01.JPG&diff=21590File:FD opto strip circular 01.JPG2010-10-11T20:07:43Z<p>Fdavies: </p>
<hr />
<div></div>Fdavieshttps://reprap.org/mediawiki/index.php?title=File:FD_opto_sensor_identification_07.JPG&diff=21589File:FD opto sensor identification 07.JPG2010-10-11T20:04:50Z<p>Fdavies: </p>
<hr />
<div></div>Fdavieshttps://reprap.org/mediawiki/index.php?title=File:FD_opto_sensor_identification_06.JPG&diff=21588File:FD opto sensor identification 06.JPG2010-10-11T20:04:11Z<p>Fdavies: </p>
<hr />
<div></div>Fdavieshttps://reprap.org/mediawiki/index.php?title=File:FD_opto_sensor_identification_05.JPG&diff=21587File:FD opto sensor identification 05.JPG2010-10-11T20:03:24Z<p>Fdavies: </p>
<hr />
<div></div>Fdavieshttps://reprap.org/mediawiki/index.php?title=File:FD_opto_sensor_identification_04.JPG&diff=21586File:FD opto sensor identification 04.JPG2010-10-11T20:02:40Z<p>Fdavies: </p>
<hr />
<div></div>Fdavieshttps://reprap.org/mediawiki/index.php?title=File:FD_opto_sensor_identification_03.JPG&diff=21585File:FD opto sensor identification 03.JPG2010-10-11T20:01:45Z<p>Fdavies: </p>
<hr />
<div></div>Fdavieshttps://reprap.org/mediawiki/index.php?title=File:FD_opto_sensor_identification_02.JPG&diff=21584File:FD opto sensor identification 02.JPG2010-10-11T20:01:08Z<p>Fdavies: </p>
<hr />
<div></div>Fdavieshttps://reprap.org/mediawiki/index.php?title=File:FD_opto_sensor_identification_01.JPG&diff=21583File:FD opto sensor identification 01.JPG2010-10-11T20:00:23Z<p>Fdavies: </p>
<hr />
<div></div>Fdavieshttps://reprap.org/mediawiki/index.php?title=File:FD_opto_strip_identification_02.JPG&diff=21582File:FD opto strip identification 02.JPG2010-10-11T19:59:26Z<p>Fdavies: </p>
<hr />
<div></div>Fdavieshttps://reprap.org/mediawiki/index.php?title=File:FD_opto_strip_identification_01.JPG&diff=21581File:FD opto strip identification 01.JPG2010-10-11T19:58:38Z<p>Fdavies: </p>
<hr />
<div></div>Fdavieshttps://reprap.org/mediawiki/index.php?title=Bearing_clip_01&diff=20610Bearing clip 012010-09-12T00:48:11Z<p>Fdavies: </p>
<hr />
<div>{{Development<br />
|image = FD_Bearing_clip_01_pic1.JPG<br />
|description = Bearing clip 01<br />
|author = fdavies<br />
|reprap = <br />
|categories = <br />
|url = <br />
}}<br />
<br />
=Build notes=<br />
The flexures should all be one filament thick. The parts that go through the bearing are tow small towers. It is easy for the printer to either print these poorly because the previous layers are still soft, or because the filament does not adhere well enough to the previous layer. This item is useful to fine tune the printer settings (temperature, wait time, etc).<br />
<br />
This item depends on the elastic properties of ABS. It will probably require modification to work well with PLA.<br />
<br />
=Features=<br />
<br />
Simple printable way of mounting a 608 skate type bearing.<br />
<br />
The AOI file has features to allow easy use in other Art of Illusion models. Do this by "unioning" the center piece where you want the bearing, then subtract the "cutter sheaf" to make the flexures. The center piece and cutter sheaf (flexure cutter) should both have their origin at the center of where you want the bearing to be. For instance, if you want the bearing to be centered at 12.5,61 then set the center piece and flexure cutter to have the same position. Other than rotation, this will put them in the right place.<br />
<br />
Note that this should be oriented so that any sideways force on the bearing should be on the fixed part of the center piece, not the one with the flexures. The item pictured is set up for pressing the bearing against an item on the side that overhangs the edge of the rectangle.<br />
<br />
This design was inspired by a desire to make a printable clip. <br />
<br />
=Downloads=<br />
*[[Image:FD_Bearing_clip_01.aoi]]<br />
*[[Image:FD_Bearing_clip_01.gts]]<br />
*[[Image:FD_Bearing_clip_01.stl]]<br />
<br />
=Photos and Drawings=<br />
<gallery><br />
Image:FD_Bearing_clip_01_pic1.JPG| clip with bearing on it<br />
Image:FD_Bearing_clip_01_pic2.JPG| no bearing<br />
Image:FD_Bearing_clip_01_pic3.JPG| no bearing<br />
Image:FD_Bearing_clip_01_pic4.JPG| bottom view<br />
</gallery></div>Fdavieshttps://reprap.org/mediawiki/index.php?title=Bearing_clip_01&diff=20595Bearing clip 012010-09-11T23:27:55Z<p>Fdavies: </p>
<hr />
<div>{{Development<br />
|image = FD_Bearing_clip_01_pic1.JPG<br />
|description = Bearing clip 01<br />
|author = fdavies<br />
|reprap = <br />
|categories = <br />
|url = <br />
}}<br />
<br />
=Build notes=<br />
The flexures should all be one filament thick.<br />
<br />
=Features=<br />
<br />
Simple printable way of mounting a 608 skate type bearing.<br />
<br />
The AOI file has features to allow easy use in other Art of Illusion models. Do this by "unioning" the tang where you want the bearing, then subtract the "cutter sheaf" to make the flexures.<br />
<br />
Note that this should be oriented so that any sideways force on the bearing should be on the fixed post, not the one with the flexures.<br />
<br />
=Downloads=<br />
*[[Image:FD_Bearing_clip_01.aoi]]<br />
*[[Image:FD_Bearing_clip_01.gts]]<br />
*[[Image:FD_Bearing_clip_01.stl]]<br />
<br />
=Photos and Drawings=<br />
<gallery><br />
Image:FD_Bearing_clip_01_pic1.JPG| clip with bearing on it<br />
Image:FD_Bearing_clip_01_pic2.JPG| no bearing<br />
Image:FD_Bearing_clip_01_pic3.JPG| no bearing<br />
Image:FD_Bearing_clip_01_pic4.JPG| bottom view<br />
</gallery></div>Fdavieshttps://reprap.org/mediawiki/index.php?title=Bearing_clip_01&diff=20594Bearing clip 012010-09-11T23:19:17Z<p>Fdavies: clip for 624 bearing</p>
<hr />
<div>{{Development<br />
|image = FD_Bearing_clip_01_pic1.JPG<br />
|description = Bearing clip 01<br />
|author = fdavies<br />
|reprap = <br />
|categories = <br />
|url = <br />
}}<br />
<br />
=Build notes=<br />
The flexures should all be one filament thick.<br />
<br />
=Features=<br />
<br />
Simple printable way of mounting a 624 type bearing.<br />
<br />
Has features to allow easy use in other Art of Illusion models.<br />
<br />
Note that this should be oriented so that any sideways force on the bearing should be on the fixed post, not the one with the flexures.<br />
<br />
=Downloads=<br />
*[[Image:FD_Bearing_clip_01.aoi]]<br />
*[[Image:FD_Bearing_clip_01.gts]]<br />
*[[Image:FD_Bearing_clip_01.stl]]<br />
<br />
=Photos and Drawings=<br />
<gallery><br />
Image:FD_Bearing_clip_01_pic1.JPG| clip with bearing on it<br />
Image:FD_Bearing_clip_01_pic2.JPG| no bearing<br />
Image:FD_Bearing_clip_01_pic3.JPG| no bearing<br />
Image:FD_Bearing_clip_01_pic4.JPG| bottom view<br />
</gallery></div>Fdavieshttps://reprap.org/mediawiki/index.php?title=File:FD_Bearing_clip_01_pic4.JPG&diff=20593File:FD Bearing clip 01 pic4.JPG2010-09-11T23:16:12Z<p>Fdavies: </p>
<hr />
<div></div>Fdavieshttps://reprap.org/mediawiki/index.php?title=File:FD_Bearing_clip_01_pic3.JPG&diff=20592File:FD Bearing clip 01 pic3.JPG2010-09-11T23:15:46Z<p>Fdavies: </p>
<hr />
<div></div>Fdavieshttps://reprap.org/mediawiki/index.php?title=File:FD_Bearing_clip_01_pic2.JPG&diff=20591File:FD Bearing clip 01 pic2.JPG2010-09-11T23:15:23Z<p>Fdavies: </p>
<hr />
<div></div>Fdavieshttps://reprap.org/mediawiki/index.php?title=File:Bearing_clip_01_pic2.JPG&diff=20590File:Bearing clip 01 pic2.JPG2010-09-11T23:14:53Z<p>Fdavies: </p>
<hr />
<div></div>Fdavieshttps://reprap.org/mediawiki/index.php?title=File:FD_Bearing_clip_01_pic1.JPG&diff=20589File:FD Bearing clip 01 pic1.JPG2010-09-11T23:13:16Z<p>Fdavies: picture of clip for 624 bearing</p>
<hr />
<div>picture of clip for 624 bearing</div>Fdavieshttps://reprap.org/mediawiki/index.php?title=File:FD_Bearing_clip_01.stl&diff=20588File:FD Bearing clip 01.stl2010-09-11T23:10:25Z<p>Fdavies: clip for 624 bearing</p>
<hr />
<div>clip for 624 bearing</div>Fdavieshttps://reprap.org/mediawiki/index.php?title=File:FD_Bearing_clip_01.gts&diff=20587File:FD Bearing clip 01.gts2010-09-11T23:09:28Z<p>Fdavies: clip for 624 bearing</p>
<hr />
<div>clip for 624 bearing</div>Fdavieshttps://reprap.org/mediawiki/index.php?title=File:FD_Bearing_clip_01.aoi&diff=20586File:FD Bearing clip 01.aoi2010-09-11T23:08:48Z<p>Fdavies: Art of Illusion file for clip for 624 type bearings. Has features to allow easy use in other Art of Illusion models</p>
<hr />
<div>Art of Illusion file for clip for 624 type bearings. Has features to allow easy use in other Art of Illusion models</div>Fdavieshttps://reprap.org/mediawiki/index.php?title=FD_pencil_case&diff=15732FD pencil case2010-05-16T23:49:00Z<p>Fdavies: </p>
<hr />
<div>{{Development<br />
|image = FD_PC02_picture_1.JPG<br />
|description = Pencil case PC02<br />
|author = fdavies<br />
|reprap = <br />
|categories = <br />
|url = <br />
}}<br />
<br />
=Build notes=<br />
Made from PLA.<br />
<br />
I had skeinforge use "Loop -> Perimeter -> Infill" to make the overhanging slopes better.<br />
<br />
I wish I could get PLA in black.<br />
<br />
=Features=<br />
<br />
significant bridged areas<br />
<br />
=Downloads=<br />
*[[Image:FD_PC02.stl]]<br />
*[[Image:FD_PC02.gts]]<br />
<br />
=Photos and Drawings=<br />
<gallery><br />
Image:FD_PC02_picture_1.JPG| view 1<br />
Image:FD_PC02_picture_2.JPG| view 2<br />
Image:FD_PC02_picture_3.JPG| view 3<br />
</gallery><br />
<br />
[[Category:Desk Accessory]]</div>Fdavieshttps://reprap.org/mediawiki/index.php?title=FD_pencil_case&diff=15721FD pencil case2010-05-16T20:18:01Z<p>Fdavies: </p>
<hr />
<div>{{Development<br />
|image = FD_PC02_picture_1.JPG<br />
|description = Pencil case PC02<br />
|author = fdavies<br />
|reprap = <br />
|categories = <br />
|url = <br />
}}<br />
<br />
=Build notes=<br />
Made from PLA.<br />
<br />
=Features=<br />
<br />
significant overhangs<br />
<br />
=Downloads=<br />
*[[Image:FD_PC02.stl]]<br />
*[[Image:FD_PC02.gts]]<br />
<br />
=Photos and Drawings=<br />
<gallery><br />
Image:FD_PC02_picture_1.JPG| view 1<br />
Image:FD_PC02_picture_2.JPG| view 2<br />
Image:FD_PC02_picture_3.JPG| view 3<br />
</gallery></div>Fdavieshttps://reprap.org/mediawiki/index.php?title=FD_pencil_case&diff=15720FD pencil case2010-05-16T20:16:56Z<p>Fdavies: Simple Pencil Case design made with PLA</p>
<hr />
<div>{{Development<br />
|image = FD_L04_pic_03.JPG<br />
|description = Pencil case PC02<br />
|author = fdavies<br />
|reprap = <br />
|categories = <br />
|url = <br />
}}<br />
<br />
=Build notes=<br />
Made from PLA<br />
<br />
=Features=<br />
<br />
significant overhangs<br />
<br />
=Downloads=<br />
*[[Image:FD_PC02.stl]]<br />
*[[Image:FD_PC02.gts]]<br />
<br />
=Photos and Drawings=<br />
<gallery><br />
Image:FD_PC02_picture_1.JPG| view 1<br />
Image:FD_PC02_picture_2.JPG| view 2<br />
Image:FD_PC02_picture_3.JPG| view 3<br />
</gallery></div>Fdavieshttps://reprap.org/mediawiki/index.php?title=File:FD_PC02.gts&diff=15719File:FD PC02.gts2010-05-16T20:14:21Z<p>Fdavies: gts file for simple pencil case</p>
<hr />
<div>gts file for simple pencil case</div>Fdavieshttps://reprap.org/mediawiki/index.php?title=File:FD_PC02.stl&diff=15718File:FD PC02.stl2010-05-16T20:13:42Z<p>Fdavies: stl file for simple pencil case</p>
<hr />
<div>stl file for simple pencil case</div>Fdavieshttps://reprap.org/mediawiki/index.php?title=File:FD_PC02_picture_3.JPG&diff=15717File:FD PC02 picture 3.JPG2010-05-16T20:13:00Z<p>Fdavies: Picture of simple pencil case made from PLA.</p>
<hr />
<div>Picture of simple pencil case made from PLA.</div>Fdavieshttps://reprap.org/mediawiki/index.php?title=File:FD_PC02_picture_2.JPG&diff=15716File:FD PC02 picture 2.JPG2010-05-16T20:11:58Z<p>Fdavies: Picture of simple picture case made from PLA</p>
<hr />
<div>Picture of simple picture case made from PLA</div>Fdavieshttps://reprap.org/mediawiki/index.php?title=File:FD_PC02_picture_1.JPG&diff=15715File:FD PC02 picture 1.JPG2010-05-16T20:10:58Z<p>Fdavies: Picture of pencil case</p>
<hr />
<div>Picture of pencil case</div>Fdavieshttps://reprap.org/mediawiki/index.php?title=Microstepping_with_optical_feedback&diff=14935Microstepping with optical feedback2010-04-17T20:24:21Z<p>Fdavies: /* Features */</p>
<hr />
<div>{{Development<br />
|image = FD_microstep04_board_front_view.JPG<br />
|description = Microstepping with optical feedback<br />
|author = fdavies<br />
|reprap = <br />
|categories = <br />
|url = <br />
}}<br />
<br />
=Overview=<br />
The idea is to make a module that is a functional substitute for a 400 step stepper motor and a "dumb" stepper driver board.<br />
Stepper motors with fewer than 400 steps per rotation are easy to find as surplus equipment, either by themselves, or in old computer printers. Optical encoder strips and quadrature optical encoders are easy to get from junk ink-jet printers. In order to allow retrofitting of existing systems, it is desirable to have a setup that can take the PULSE and DIRECTION command signals usually accepted by stepper motor driver boards. These items can be combined to make high precision motion control setup that is quite useful.<br />
<br />
=Interface to gcode interpreter=<br />
My intent was to make this setup act like a stepper motor driver board, which it does. Because the step signal (PULSE) is being sampled by firmware, I have a simple pulse stretcher circuit that makes the pulses a little longer. I am using reprap-gen3-firmware-2009-08-05 (slightly tweaked) on the Arduino that generates the step and direction pulses. It makes 5 microsecond step pulses. This is a bit fast for my approx 30 KHz interrupt to detect reliably.<br />
<br />
=Stepper motor=<br />
This is a NEMA 17 motor on one axis, and larger cylindrical stepper on the other axis.<br />
<br />
=Drive Circuit=<br />
<schematic><br />
The drive circuit uses a L298. I was pleasantly suprised that I could run it at about 30 KHz, but it seems to be working fine. This is connected directly to the stepper motor in a bipolar configuration. There is no output filtering on this signal, but I have not had EMI problems.<br />
<gallery><br />
Image:FD_microstep04_Schematic.jpg| Schematic<br />
</gallery><br />
<br />
=Feedback Loop=<br />
This system is a little different from a servo loop with a DC motor. If you put a voltage across the terminals of a DC motor, it revs up to a certain speed and will continue to rotate at that speed while the voltage is present. If you put voltages on the terminals of a stepper motor, it moves to a certain position, and then holds that position.<br />
This actually makes things easier. The feedback algorithm has a feedforward term that directly increments (or decrements) the phase when a pulse is received. There is also an integral error term that adds an offset proportional to the difference between where it is and where it is supposed to be (this is added to the phase repeatedly, which is what makes it integrate).<br />
<br />
+---------------------------------------------+<br />
| |<br />
V +---------------------------+ |<br />
+-----------+ | | +---------+<br />
|Quadrature |->|XENC +-------+ SINE-->PWM|->| |<br />
|encoder | | | | Feed | ^ | | |<br />
+-----------+ | V | back | | | | Stepper |<br />
| +->| algor |->PHASE | | Motor |<br />
+-----------+ | ^ | ithm | | | | |<br />
|Stepper | | | +-------+ V | | |<br />
|COMMAND |->|COMMAND COSINE-->PWM|->| |<br />
|pulses | | Arduino | +---------+<br />
+-----------+ +---------------------------+<br />
<br />
=Firmware=<br />
See attached file. This is an Arduino type .PDE file and can be compiled with the arduino development software. It does use a custom made interrupt routine, though.<br />
<br />
=Optical encoder=<br />
This is a quadrature optical encoder removed from a inkjet printer. It has built-in signal conditioning which means that it has digital outputs that can go directly to the arduino pins. They are also strong enough to drive a pair of diagnostic LEDs. These let you check the alignment of the optical strip. I use the optical strip from the same printer as the encoder, since the encoder is optimized for a certain stripe spacing.<br />
<br />
=Features=<br />
This was worth the trouble to make for the following reasons:<br />
<br />
1. Stepper motor slips (missed steps) are immediately corrected. This means that I can use a smaller stepper than I would have otherwise been able to. It also means that I don't find an overnight print with a sideways slip in the middle of it.<br />
<br />
2. The stepper is a lot quieter. This is because it is being driven with smoothly varying sinewaves, not abrupt square waves.<br />
<br />
3. The stepper runs cooler. I am running a unipolar stepper in a bipolar way. This is not a unique advantage of this technique, I know, but it is an improvement in the way that I was doing things before.<br />
<br />
=Downloads=<br />
*[[Image:FD_Microstep04_firmware.pde]]<br />
<br />
=Photos and Drawings=<br />
<gallery><br />
Image:FD_microstep04_board_front_view.JPG| Front view of circuit board<br />
Image:FD_microstep04_board_bottom_view.JPG| bottom of circuit board<br />
</gallery></div>Fdavieshttps://reprap.org/mediawiki/index.php?title=Microstepping_with_optical_feedback&diff=14934Microstepping with optical feedback2010-04-17T20:24:02Z<p>Fdavies: /* Feedback Loop */</p>
<hr />
<div>{{Development<br />
|image = FD_microstep04_board_front_view.JPG<br />
|description = Microstepping with optical feedback<br />
|author = fdavies<br />
|reprap = <br />
|categories = <br />
|url = <br />
}}<br />
<br />
=Overview=<br />
The idea is to make a module that is a functional substitute for a 400 step stepper motor and a "dumb" stepper driver board.<br />
Stepper motors with fewer than 400 steps per rotation are easy to find as surplus equipment, either by themselves, or in old computer printers. Optical encoder strips and quadrature optical encoders are easy to get from junk ink-jet printers. In order to allow retrofitting of existing systems, it is desirable to have a setup that can take the PULSE and DIRECTION command signals usually accepted by stepper motor driver boards. These items can be combined to make high precision motion control setup that is quite useful.<br />
<br />
=Interface to gcode interpreter=<br />
My intent was to make this setup act like a stepper motor driver board, which it does. Because the step signal (PULSE) is being sampled by firmware, I have a simple pulse stretcher circuit that makes the pulses a little longer. I am using reprap-gen3-firmware-2009-08-05 (slightly tweaked) on the Arduino that generates the step and direction pulses. It makes 5 microsecond step pulses. This is a bit fast for my approx 30 KHz interrupt to detect reliably.<br />
<br />
=Stepper motor=<br />
This is a NEMA 17 motor on one axis, and larger cylindrical stepper on the other axis.<br />
<br />
=Drive Circuit=<br />
<schematic><br />
The drive circuit uses a L298. I was pleasantly suprised that I could run it at about 30 KHz, but it seems to be working fine. This is connected directly to the stepper motor in a bipolar configuration. There is no output filtering on this signal, but I have not had EMI problems.<br />
<gallery><br />
Image:FD_microstep04_Schematic.jpg| Schematic<br />
</gallery><br />
<br />
=Feedback Loop=<br />
This system is a little different from a servo loop with a DC motor. If you put a voltage across the terminals of a DC motor, it revs up to a certain speed and will continue to rotate at that speed while the voltage is present. If you put voltages on the terminals of a stepper motor, it moves to a certain position, and then holds that position.<br />
This actually makes things easier. The feedback algorithm has a feedforward term that directly increments (or decrements) the phase when a pulse is received. There is also an integral error term that adds an offset proportional to the difference between where it is and where it is supposed to be (this is added to the phase repeatedly, which is what makes it integrate).<br />
<br />
+---------------------------------------------+<br />
| |<br />
V +---------------------------+ |<br />
+-----------+ | | +---------+<br />
|Quadrature |->|XENC +-------+ SINE-->PWM|->| |<br />
|encoder | | | | Feed | ^ | | |<br />
+-----------+ | V | back | | | | Stepper |<br />
| +->| algor |->PHASE | | Motor |<br />
+-----------+ | ^ | ithm | | | | |<br />
|Stepper | | | +-------+ V | | |<br />
|COMMAND |->|COMMAND COSINE-->PWM|->| |<br />
|pulses | | Arduino | +---------+<br />
+-----------+ +---------------------------+<br />
<br />
=Firmware=<br />
See attached file. This is an Arduino type .PDE file and can be compiled with the arduino development software. It does use a custom made interrupt routine, though.<br />
<br />
=Optical encoder=<br />
This is a quadrature optical encoder removed from a inkjet printer. It has built-in signal conditioning which means that it has digital outputs that can go directly to the arduino pins. They are also strong enough to drive a pair of diagnostic LEDs. These let you check the alignment of the optical strip. I use the optical strip from the same printer as the encoder, since the encoder is optimized for a certain stripe spacing.<br />
<br />
=Features=<br />
This was worth the trouble to make for the following reasons:<br />
<br />
1. Stepper motor slips (missed steps) are immediately corrected. This means that I can use a smaller stepper than I would have otherwise been able to. It also means that I don't find an overnight print with a sideways slip in the middle of it.<br />
2. The stepper is a lot quieter. This is because it is being driven with smoothly varying sinewaves, not abrupt square waves.<br />
3. The stepper runs cooler. I am running a unipolar stepper in a bipolar way. This is not a unique advantage of this technique, I know, but it is an improvement in the way that I was doing things before.<br />
<br />
=Downloads=<br />
*[[Image:FD_Microstep04_firmware.pde]]<br />
<br />
=Photos and Drawings=<br />
<gallery><br />
Image:FD_microstep04_board_front_view.JPG| Front view of circuit board<br />
Image:FD_microstep04_board_bottom_view.JPG| bottom of circuit board<br />
</gallery></div>Fdavieshttps://reprap.org/mediawiki/index.php?title=Microstepping_with_optical_feedback&diff=14933Microstepping with optical feedback2010-04-17T20:23:49Z<p>Fdavies: /* Feedback Loop */</p>
<hr />
<div>{{Development<br />
|image = FD_microstep04_board_front_view.JPG<br />
|description = Microstepping with optical feedback<br />
|author = fdavies<br />
|reprap = <br />
|categories = <br />
|url = <br />
}}<br />
<br />
=Overview=<br />
The idea is to make a module that is a functional substitute for a 400 step stepper motor and a "dumb" stepper driver board.<br />
Stepper motors with fewer than 400 steps per rotation are easy to find as surplus equipment, either by themselves, or in old computer printers. Optical encoder strips and quadrature optical encoders are easy to get from junk ink-jet printers. In order to allow retrofitting of existing systems, it is desirable to have a setup that can take the PULSE and DIRECTION command signals usually accepted by stepper motor driver boards. These items can be combined to make high precision motion control setup that is quite useful.<br />
<br />
=Interface to gcode interpreter=<br />
My intent was to make this setup act like a stepper motor driver board, which it does. Because the step signal (PULSE) is being sampled by firmware, I have a simple pulse stretcher circuit that makes the pulses a little longer. I am using reprap-gen3-firmware-2009-08-05 (slightly tweaked) on the Arduino that generates the step and direction pulses. It makes 5 microsecond step pulses. This is a bit fast for my approx 30 KHz interrupt to detect reliably.<br />
<br />
=Stepper motor=<br />
This is a NEMA 17 motor on one axis, and larger cylindrical stepper on the other axis.<br />
<br />
=Drive Circuit=<br />
<schematic><br />
The drive circuit uses a L298. I was pleasantly suprised that I could run it at about 30 KHz, but it seems to be working fine. This is connected directly to the stepper motor in a bipolar configuration. There is no output filtering on this signal, but I have not had EMI problems.<br />
<gallery><br />
Image:FD_microstep04_Schematic.jpg| Schematic<br />
</gallery><br />
<br />
=Feedback Loop=<br />
This system is a little different from a servo loop with a DC motor. If you put a voltage across the terminals of a DC motor, it revs up to a certain speed and will continue to rotate at that speed while the voltage is present. If you put voltages on the terminals of a stepper motor, it moves to a certain position, and then holds that position.<br />
This actually makes things easier. The feedback algorithm has a feedforward term that directly increments (or decrements) the phase when a pulse is received. There is also an integral error term that adds an offset proportional to the difference between where it is and where it is supposed to be (this is added to the phase repeatedly, which is what makes it integrate).<br />
<br />
+---------------------------------------------+<br />
| |<br />
V +---------------------------+ |<br />
+-----------+ | | +---------+<br />
|Quadrature |->|XENC +-------+ SINE-->PWM|->| |<br />
|encoder | | | | Feed | ^ | | |<br />
+-----------+ | V | back | | | | Stepper |<br />
| +->| algor |->PHASE | | Motor |<br />
+-----------+ | ^ | ithm | | | | |<br />
|Stepper | | | +-------+ V | | |<br />
|COMMAND |->|COMMAND COSINE-->PWM|->| |<br />
|pulses | | Arduino | +---------+<br />
+-----------+ +---------------------------+<br />
<br />
=Firmware=<br />
See attached file. This is an Arduino type .PDE file and can be compiled with the arduino development software. It does use a custom made interrupt routine, though.<br />
<br />
=Optical encoder=<br />
This is a quadrature optical encoder removed from a inkjet printer. It has built-in signal conditioning which means that it has digital outputs that can go directly to the arduino pins. They are also strong enough to drive a pair of diagnostic LEDs. These let you check the alignment of the optical strip. I use the optical strip from the same printer as the encoder, since the encoder is optimized for a certain stripe spacing.<br />
<br />
=Features=<br />
This was worth the trouble to make for the following reasons:<br />
<br />
1. Stepper motor slips (missed steps) are immediately corrected. This means that I can use a smaller stepper than I would have otherwise been able to. It also means that I don't find an overnight print with a sideways slip in the middle of it.<br />
2. The stepper is a lot quieter. This is because it is being driven with smoothly varying sinewaves, not abrupt square waves.<br />
3. The stepper runs cooler. I am running a unipolar stepper in a bipolar way. This is not a unique advantage of this technique, I know, but it is an improvement in the way that I was doing things before.<br />
<br />
=Downloads=<br />
*[[Image:FD_Microstep04_firmware.pde]]<br />
<br />
=Photos and Drawings=<br />
<gallery><br />
Image:FD_microstep04_board_front_view.JPG| Front view of circuit board<br />
Image:FD_microstep04_board_bottom_view.JPG| bottom of circuit board<br />
</gallery></div>Fdavieshttps://reprap.org/mediawiki/index.php?title=Microstepping_with_optical_feedback&diff=14932Microstepping with optical feedback2010-04-17T20:23:00Z<p>Fdavies: </p>
<hr />
<div>{{Development<br />
|image = FD_microstep04_board_front_view.JPG<br />
|description = Microstepping with optical feedback<br />
|author = fdavies<br />
|reprap = <br />
|categories = <br />
|url = <br />
}}<br />
<br />
=Overview=<br />
The idea is to make a module that is a functional substitute for a 400 step stepper motor and a "dumb" stepper driver board.<br />
Stepper motors with fewer than 400 steps per rotation are easy to find as surplus equipment, either by themselves, or in old computer printers. Optical encoder strips and quadrature optical encoders are easy to get from junk ink-jet printers. In order to allow retrofitting of existing systems, it is desirable to have a setup that can take the PULSE and DIRECTION command signals usually accepted by stepper motor driver boards. These items can be combined to make high precision motion control setup that is quite useful.<br />
<br />
=Interface to gcode interpreter=<br />
My intent was to make this setup act like a stepper motor driver board, which it does. Because the step signal (PULSE) is being sampled by firmware, I have a simple pulse stretcher circuit that makes the pulses a little longer. I am using reprap-gen3-firmware-2009-08-05 (slightly tweaked) on the Arduino that generates the step and direction pulses. It makes 5 microsecond step pulses. This is a bit fast for my approx 30 KHz interrupt to detect reliably.<br />
<br />
=Stepper motor=<br />
This is a NEMA 17 motor on one axis, and larger cylindrical stepper on the other axis.<br />
<br />
=Drive Circuit=<br />
<schematic><br />
The drive circuit uses a L298. I was pleasantly suprised that I could run it at about 30 KHz, but it seems to be working fine. This is connected directly to the stepper motor in a bipolar configuration. There is no output filtering on this signal, but I have not had EMI problems.<br />
<gallery><br />
Image:FD_microstep04_Schematic.jpg| Schematic<br />
</gallery><br />
<br />
=Feedback Loop=<br />
This system is a little different from a servo loop with a DC motor. If you put a voltage across the terminals of a DC motor, it revs up to a certain speed and will continue to rotate at that speed while the voltage is present. If you put voltages on the terminals of a stepper motor, it moves to a certain position, and then holds that position.<br />
This actually makes things easier. The feedback algorithm has a feedforward term that directly increments (or decrements) the phase when a pulse is received. There is also an integral error term that adds an offset proportional to the difference between where it is and where it is supposed to be (this is added to the phase repeatedly, which is what makes it integrate).<br />
<br />
+---------------------------------------------+<br />
| |<br />
V +---------------------------+ |<br />
+-----------+ | | +---------+<br />
|Quadrature |->|XENC +-------+ SINE-->PWM|->| |<br />
|encoder | | | | Feed | ^ | | |<br />
+-----------+ | V | back | | | | Stepper |<br />
| +->| algor |->PHASE | | Motor |<br />
+-----------+ | ^ | ithm | | | | |<br />
|Stepper | | | +-------+ V | | |<br />
|COMMAND |->|COMMAND COSINE-->PWM|->| |<br />
|pulses | | Arduino | +---------+<br />
+-----------+ +---------------------------+<br />
<br />
<br />
=Firmware=<br />
See attached file. This is an Arduino type .PDE file and can be compiled with the arduino development software. It does use a custom made interrupt routine, though.<br />
<br />
=Optical encoder=<br />
This is a quadrature optical encoder removed from a inkjet printer. It has built-in signal conditioning which means that it has digital outputs that can go directly to the arduino pins. They are also strong enough to drive a pair of diagnostic LEDs. These let you check the alignment of the optical strip. I use the optical strip from the same printer as the encoder, since the encoder is optimized for a certain stripe spacing.<br />
<br />
=Features=<br />
This was worth the trouble to make for the following reasons:<br />
<br />
1. Stepper motor slips (missed steps) are immediately corrected. This means that I can use a smaller stepper than I would have otherwise been able to. It also means that I don't find an overnight print with a sideways slip in the middle of it.<br />
2. The stepper is a lot quieter. This is because it is being driven with smoothly varying sinewaves, not abrupt square waves.<br />
3. The stepper runs cooler. I am running a unipolar stepper in a bipolar way. This is not a unique advantage of this technique, I know, but it is an improvement in the way that I was doing things before.<br />
<br />
=Downloads=<br />
*[[Image:FD_Microstep04_firmware.pde]]<br />
<br />
=Photos and Drawings=<br />
<gallery><br />
Image:FD_microstep04_board_front_view.JPG| Front view of circuit board<br />
Image:FD_microstep04_board_bottom_view.JPG| bottom of circuit board<br />
</gallery></div>Fdavieshttps://reprap.org/mediawiki/index.php?title=Microstepping_with_optical_feedback&diff=14931Microstepping with optical feedback2010-04-17T20:05:23Z<p>Fdavies: </p>
<hr />
<div>{{Development<br />
|image = FD_microstep04_board_front_view.JPG<br />
|description = Microstepping with optical feedback<br />
|author = fdavies<br />
|reprap = <br />
|categories = <br />
|url = <br />
}}<br />
<br />
=Overview=<br />
Stepper motors with fewer than 400 steps per rotation are easy to find as surplus equipment, either by themselves, or in old computer printers. Optical encoder strips and quadrature optical encoders are easy to get from junk ink-jet printers. In order to allow retrofitting of existing systems, it is desirable to have a setup that can take the PULSE and DIRECTION command signals usually accepted by stepper motor driver boards. These items can be combined to make high precision motion control setup that is quite useful.<br />
<br />
=Interface to gcode interpreter=<br />
My intent was to make this setup act like a stepper motor driver board, which it does. Because the step signal (PULSE) is being sampled by firmware, I have a simple pulse stretcher circuit that makes the pulses a little longer. The gcode interpreter Arduino that I am using makes 5 microsecond pulses.<br />
<br />
=Stepper motor=<br />
This is a NEMA 17 motor on one axis, and larger cylindrical stepper on the other axis.<br />
<br />
=Drive Circuit=<br />
<schematic><br />
The drive circuit uses a L2<br />
This is connected directly to the stepper motor in a bipolar configuration. It is being driven with a 30KHz PWM signal. There is no output filtering on this signal, but I have not had EMI problems.<br />
<gallery><br />
Image:FD_microstep04_Schematic.jpg| Schematic<br />
</gallery><br />
<br />
=Feedback Loop=<br />
This system is a little different from a servo loop with a DC motor. If you put a voltage across the terminals of a DC motor, it revs up to a certain speed and will continue to rotate at that speed while the voltage is present. If you put voltages on the terminals of a stepper motor, it moves to a certain position, and then holds that position.<br />
This actually makes things easier.<br />
<br />
=Firmware=<br />
See attached file. This is an Arduino type .PDE file and can be compiled with the arduino development software. It does use a custom made interrupt routine, though.<br />
<br />
=Optical encoder=<br />
This is a quadrature optical encoder removed from a inkjet printer. It has built-in signal conditioning which means that it has digital outputs that can go directly to the arduino pins. They are also strong enough to drive a pair of diagnostic LEDs. These let you check the alignment of the optical strip. I use the optical strip from the same printer as the encoder, since the encoder is optimized for a certain stripe spacing.<br />
<br />
=Downloads=<br />
*[[Image:FD_Microstep04_firmware.pde]]<br />
<br />
=Photos and Drawings=<br />
<gallery><br />
Image:FD_microstep04_board_front_view.JPG| Front view of circuit board<br />
Image:FD_microstep04_board_bottom_view.JPG| bottom of circuit board<br />
</gallery></div>Fdavieshttps://reprap.org/mediawiki/index.php?title=Microstepping_with_optical_feedback&diff=14930Microstepping with optical feedback2010-04-17T20:04:34Z<p>Fdavies: </p>
<hr />
<div>{{Development<br />
|image = FD_microstep04_board_front_view.JPG<br />
|description = Microstepping with optical feedback<br />
|author = fdavies<br />
|reprap = <br />
|categories = <br />
|url = <br />
}}<br />
<br />
=Overview=<br />
Stepper motors with fewer than 400 steps per rotation are easy to find as surplus equipment, either by themselves, or in old computer printers. Optical encoder strips and quadrature optical encoders are easy to get from junk ink-jet printers. In order to allow retrofitting of existing systems, it is desirable to have a setup that can take the PULSE and DIRECTION command signals usually accepted by stepper motor driver boards. These items can be combined to make high precision motion control setup that is quite useful.<br />
<br />
=Interface to gcode interpreter=<br />
I intent was to make this setup act like a stepper motor driver board, which it does. Because the step signal (PULSE) is being sampled by firmware, I have a simple pulse stretcher circuit that makes the pulses a little longer. The gcode interpreter Arduino that I am using makes 5 microsecond pulses.<br />
<br />
=Stepper motor=<br />
This is a NEMA 17 motor on one axis, and larger cylindrical stepper on the other axis.<br />
<br />
=Drive Circuit=<br />
<schematic><br />
The drive circuit uses a L2<br />
This is connected directly to the stepper motor in a bipolar configuration. It is being driven with a 30KHz PWM signal. There is no output filtering on this signal, but I have not had EMI problems.<br />
<gallery><br />
Image:FD_microstep04_Schematic.jpg| Schematic<br />
</gallery><br />
<br />
=Feedback Loop=<br />
This system is a little different from a servo loop with a DC motor. If you put a voltage across the terminals of a DC motor, it revs up to a certain speed and will continue to rotate at that speed while the voltage is present. If you put voltages on the terminals of a stepper motor, it moves to a certain position, and then holds that position.<br />
This actually makes things easier.<br />
<br />
=Firmware=<br />
See attached file. This is an Arduino type .PDE file and can be compiled with the arduino development software. It does use a custom made interrupt routine, though.<br />
<br />
=Optical encoder=<br />
This is a quadrature optical encoder removed from a inkjet printer. It has built-in signal conditioning which means that it has digital outputs that can go directly to the arduino pins. They are also strong enough to drive a pair of diagnostic LEDs. These let you check the alignment of the optical strip. I use the optical strip from the same printer as the encoder, since the encoder is optimized for a certain stripe spacing.<br />
<br />
<br />
=Downloads=<br />
*[[Image:FD_Microstep04_firmware.pde]]<br />
<br />
=Photos and Drawings=<br />
<gallery><br />
Image:FD_microstep04_board_front_view.JPG| Front view of circuit board<br />
Image:FD_microstep04_board_bottom_view.JPG| bottom of circuit board<br />
</gallery></div>Fdavies