<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>EBLDC.COM</title>
	<atom:link href="http://ebldc.com/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://ebldc.com</link>
	<description>Having Fun With Brushless Motors</description>
	<lastBuildDate>Fri, 19 Apr 2013 15:58:17 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>The Avayanium Project Z Axis Implementation</title>
		<link>http://ebldc.com/?p=478</link>
		<comments>http://ebldc.com/?p=478#comments</comments>
		<pubDate>Sun, 31 Mar 2013 14:54:03 +0000</pubDate>
		<dc:creator>avayan</dc:creator>
				<category><![CDATA[3D Printing]]></category>

		<guid isPermaLink="false">http://ebldc.com/?p=478</guid>
		<description><![CDATA[When I decided to build the Avayanium 3D Printer, I scoured the web while trying to find the perfect topology to attack. There are so many of them out there, I was kind of overwhelmed. Luckily, one day I saw&#8230;<p class="more-link-p"><a class="more-link" href="http://ebldc.com/?p=478">Read more &#8594;</a></p>]]></description>
				<content:encoded><![CDATA[<p>When I decided to build the Avayanium 3D Printer, I scoured the web while trying to find the perfect topology to attack. There are so many of them out there, I was kind of overwhelmed. Luckily, one day I saw a picture for a gorgeous looking 3D printer known as Maker Gear&#8217;s M Series printer and my search was over. I am under the impresion there must be other units following the M Series printer topology, with a single stepper per axis and a single threaded rod for the Z Axis linear actuator, but I guess that is irrelevant. What truly matters is what are the implications of following this topology. As we will soon see, there are both advantages as well as disadvantages for an implementation of this sort.</p>
<p>I will not detail on this blog post how the X, Y axes and the extruder actuator work as there will be other blog posts relating to those. What I want to discuss, however, is the Z Axis. I believe this is where the great majority of differences arise, when comparing to other printer topologies. For example, in my implementation I am using a single threaded rod to actuate the Z Axis, when what you see the most out there is either two or even four threaded rods to articulate the vertical motion which will lead to proper de-slicing as the 3D printer part is printed.</p>
<p>At the same time, my implementation only uses one stepper motor when a good deal of dual threaded rod implementations will utilize two steppers. On the quad threaded rod, I do not believe four steppers are used, although I have seen plenty of timing belt pulleys and longer belts increasing the BOM&#8217;s price tag.</p>
<p>As a result, we can conclude my single threaded rod implementation is advantageous because I am saving funds on materials such as stepper motors, motor drivers, threaded rods, timing belt pulleys and belts. Well, I&#8217;ll be darned, that sounds like a no brainer!!!! But if it is so good, why don&#8217;t we see a great majority of implementations out there going this route?</p>
<p>Well, we all know lunching for free is not that much feasible. And to make matters worse, tradeoffs are always creeping up at us, which always translates into getting something improved at the expense of messing up something else. No difference here! We may have saved a lot of dough on materials and made our implementation far much simpler, but we have also made it much more unstable.</p>
<p>A single threaded rod with a single stepper means we have lots of mechanical support on one side, with a complete lack of it at the opposing side. Why this is a problem should not require much of an explanation, but just in case let me tell you what happens. The table, which is the area where your print will form, has to remain a planar surface at all times and under all conditions. When the extruder is applying plastic, it assumes the XY plane remains true.</p>
<p>Unfortunately, when the table is stronger on one side than the other, what will happen is that its surface will flex. In other words, the XY plane will no longer be a single plane, but a collection of them. Ehhh&#8230; BAD!!! This may not happen during the first stages of a print as there is not a lot of weight, but the more plastic you deposit, the worse it gets. Those XY coordinates close to the thread and the axis, where the table is sturdy, will maintain their Z coordinate, whereas those XY coordinates far away from the thread, where most of the flexing is taking place, will be at a different Z coordinate than supposed. Figure 1 attempts to illustrate what I mean:</p>
<p><a href="http://ebldc.com/wp-content/uploads/2013/03/3DPrintDeformation.1.jpg"><img class="aligncenter size-full wp-image-482" alt="3DPrintDeformation." src="http://ebldc.com/wp-content/uploads/2013/03/3DPrintDeformation.1.jpg" width="640" height="220" /></a></p>
<p>Clearly using two threaded rods solves this problem as it eliminates the table flexing. Of course now you need to not only use multiple stepper motors and an equal amount of stepper drivers (you should not connect two stepper motors to a single stepper driver module even if it appears to work), you also need to make certain they are identically linked in the Z axis. If for any reason, one stepper is out of sync with the other, then the table will be at an angle, which is an even worse problem than the first we were trying to solve. Granted that if the steppers are perfectly linked and their respective rods are perfectly graduated, then there is nothing to worry about.</p>
<p>I wanted to steer away from the mega mess that is to ensure both steppers and their threads are perfectly graduated. Makergear&#8217;s M Series printer solves the problem by using a super sturdy table system. I could have done the same but I found a different solution which gives the same results.</p>
<p>By retrofititng a Tol-O-Matic pneumatic actuator&#8217;s metal assembly I was able to generate a very sturdy Z Axis. On the following video I detail how I transformed a pneumatic actuator into a threaded rod based linear actuator. In a subsequent video I will detail how to add the improved stability which will allow for a long table to remain sturdy across the XY plane. Hope you find this short report very informative!</p>
<p><iframe src="http://www.youtube.com/embed/MoFJ8P4Qc4Y" height="315" width="560" allowfullscreen="" frameborder="0"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://ebldc.com/?feed=rss2&#038;p=478</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How To Extract 3A Out Of Your 2.5A Stepper Driver</title>
		<link>http://ebldc.com/?p=464</link>
		<comments>http://ebldc.com/?p=464#comments</comments>
		<pubDate>Sun, 31 Mar 2013 03:43:55 +0000</pubDate>
		<dc:creator>avayan</dc:creator>
				<category><![CDATA[H Bridges]]></category>

		<guid isPermaLink="false">http://ebldc.com/?p=464</guid>
		<description><![CDATA[If this was Tool Time with Tim Allen, I would have had to start this post with &#8220;What do we want? More power! And so, I rewired it!&#8230;&#8221; only to be followed by &#8220;WARF&#8230;WARF&#8230; WARF&#8230;&#8221; But I am not the&#8230;<p class="more-link-p"><a class="more-link" href="http://ebldc.com/?p=464">Read more &#8594;</a></p>]]></description>
				<content:encoded><![CDATA[<p>If this was Tool Time with Tim Allen, I would have had to start this post with &#8220;What do we want? More power! And so, I rewired it!&#8230;&#8221; only to be followed by &#8220;WARF&#8230;WARF&#8230; WARF&#8230;&#8221; But I am not the great Tim Allen, much less did I need to rewire anything. I do love the idea of more power, so in the next tale of “prowess” and smoke-free adventure, I shall detail how I managed to squeeze my stepper driver to operate at an astounding 3A even when they are rated at 2.5A.</p>
<p>The driver in question would be the DRV8818, an 8 microstep bipolar stepper motor power stage. I have explained many times why integrated microstepping drivers are fascinatingly great, so no need to repeat it. All I will say is that with a STEP/DIR interface, operating a stepper simply can&#8217;t be any simpler. These drivers make CNC electronics Kindergarten projects, so if you are still sucking your thumb and wearing diapers, I have to say I am impressed you are reading this blog. But let&#8217;s move on!</p>
<p>The DRV8818 is rated at 2.5A and has an Over Current Protection setting of 3.5A. This is important for a few reasons. First, what I can deduce for this valuable piece of information is that if I try to pass any thinkable current, the device will not mind as long as the current is smaller than 3.5A. Anything larger, and the device will disable itself as it fears its outputs are deadly shorted. Better to get disabled than to get smoked out.</p>
<p>So why not rate the driver to 3.5A, instead of 2.5A, and get it over with? I could state the reason is head room, but the truth is a little bit more sinister. What truly kills us here is the temperature. Darn it! Always the temperature!</p>
<p>If the device had been built with super conductor technology, in which case temperature does not become much of an issue, then we would not even have to worry about what this current is, much less whether there is a rating of 2.5A or 3.5A as the maximum. Unfortunately, as of the first portion of 2013, to build a power stage with super conductor technology would not be feasible unless you want to cash out a few million dollars, not to mention house it under cryogenic suspension. That would make this CNC machine the most awesome looking gadget, but I am not certain how many geeks out there have such a budget&#8230;</p>
<p>And so instead of a super conductor, what we end up with is more like a resistor. In other words, the power switches which make up our H Bridges (like any other switch on this planet), are actually resistive . Switch resistance is a factor of how big the switch is: The bigger the switch, the smaller its resistance. Also, the harder it becomes to turn it ON and OFF, not to mention they become more expensive, but I am complicating things too much already. No need to bug down our minds with economical realities, let&#8217;s just focus on the electrical aspect.</p>
<p>What we should do is extract the information we need from the datasheet, which in this case is the RDSON for both FETs for this particular H Bridge. The datasheet tells us the maximum RDSon we may see for the FETs is 0.3 Ohms for the high side and 0.24 Ohms for the low side, or a total resistive path of 0.54 Ohms per H Bridge (remember there are 2 H Bridges in this puppy!)</p>
<p>In order to determine how hot these devices will get, we need to use the I^2*R equation. We know R = 0.54 Ohms, but what is I? Let’s assume 2.5A as that is what the device is rated for.</p>
<p>Now, the 2.5A is the peak of the sine wave as remember we are microstepping. In other words, we are modulating the current to look like a sine wave. What this tells us is that the equation&#8217;s I is actually the RMS value, or I*0.707. In this case, our RMS current is 2.5*0.707 = 1.7675A. That is the current the switches resistances will see, so we can compute the power losses to be:</p>
<p><strong>P = I^2*R = 1.7675^2*0.54 = 1.687W</strong></p>
<p>Since we have 2 H Bridges, the total power dissipation inside our DRV8818 while running at 2.5A sine wave peak is 3.37W. Now, if you add some switching losses, the total power dissipation should grow closer to 4W. Something I have not mentioned is that the DRV8818 comes enclosed in what is known as an HTSSOP package which as it turns out is rated at 4W total power dissipation. What this means is that if you solder this package to a very nice and sturdy PCB with lots of copper, vias and all those goodies, it will be able to effectively dissipate 4W without getting too hot (or at least not hot enough to trip its protection). Anything higher than 4W, and the package (along with the PCB) will not be able to release the heat into the outer world as we need it to. In other words, the heat will build up, the die will get too hot and eventually the device will shut down because of its internal thermal shutdown protection.</p>
<p>Figure 1 shows one of my stepper driver designs, which consists of a two layer board capable of housing a DRV8811 or DRV8818. Notice there is a heat slug which is meant to interface to the DRV88xx&#8217;s Power Pad and there is copper flowing away from this center with the goal of moving heat away from the package as quick as possible.</p>
<div id="attachment_473" class="wp-caption aligncenter" style="width: 763px"><a href="http://ebldc.com/wp-content/uploads/2013/03/AE-STPR8818.jpg"><img class="size-full wp-image-473" alt="Avayan Electronics' STPR8818 board." src="http://ebldc.com/wp-content/uploads/2013/03/AE-STPR8818.jpg" width="753" height="765" /></a><p class="wp-caption-text">Avayan Electronics&#8217; STPR8818 board.</p></div>
<p>Now I am &#8220;boasting&#8221; here on how I was able to take the DRV8818 to 3A. A quick look at our previous equation would tell us that at 3A sine wave peak, our total power dissipation due to resistive losses would be around <strong>(3*0.707)^2*0.54*2 = 4.859W</strong>. If the package invokes the angels of doom at 4W, how on Earth can I pretend to sell the tale that I was able to take it to 4.85W? Where am I tripping?</p>
<p>Not much of a substance abuse trip here, although I will admit I have been lacking one vital piece of information and that is the concept of Thermal Impedance.</p>
<p>When we say an HTSSOP package can successfully dissipate about 4W of power, this implies we have soldered the Power Pad device to a nice board and while following the manufacturers suggestions. If this is what you do, it is close to impossible (AKA ridiculously hard) to achieve 3A with the DRV8818. I mean, you may be able to submerge the device in liquid nitrogen and go to the 3A, but that is not what the manufacturer recommends.</p>
<p>What is happening here is that as you solder your HTSSOP device into a good enough board, you get a thermal impedance of about 30 to 40 Degrees C/W. This thermal resistance is a measurement of how easy it is for the heat inside of the device to head out, but it also leads us to the concept of temperature rise.</p>
<p>The way we get this temperature rise is by multiplying the Thermal Impedance (in C/W) by the actual power dissipation (in W). In our example, at 4W power dissipation and about 30 C/W thermal impedance we get a temperature rise of <strong>4 W * 30 C/W = 120C</strong>. If your ambient temperature is 25C, then the device dissipating 4W on a 30 C/W board interface will be as hot as 145C. Since the TSD protection kicks in at about 150C, you can already see there is not that much head room left to operate.</p>
<p>To make matters worst, recall we assumed our thermal impedance to be 30 C/W, but we know it could be higher than this (e.g. ~40 C/W), depending on the board, its number of layers, copper density, layout, copper structure, etc. We don&#8217;t even need a warm day to realize chances are our application is toast!</p>
<p>If on the other hand you had a thermal impedance of 0 C/W then it would be impossible for the device to remain hot or have a temperature rise. As soon as the heat source is removed, the heat goes into the outer world (or namely <strong>4 W * 0 C/W = 0C</strong> temperature rise which means the die would be sitting at ambient temperature or 25C). Needless to say, 0 C/W is impossible (as far as I know), but very-very close to 0 C/W is not. Hence, what we want to do is make our system&#8217;s thermal impedance as close to 0 C/W as possible.</p>
<p>Most people would think about adding a heat sink on top of the device but this is really not going to help at all since the thermal impedance of the plastic covering the semiconductor device is too high. Hence, a heat sink on the top of the package is a big waste of resources. HTSSOP devices need a heat sink from the bottom, which is why the board is designed to behave as a heat sink. A PCB alone, however, can&#8217;t cut it under high stress conditions, so ideally we would need to add yet another heat sink at the bottom of the device in question. But how can we reach the bottom side of the chip if the board is in the way? Well, you can always make way, can&#8217;t you?</p>
<p>And that is what we have done while using a curious and innovative technology better known as Power Peg. What this innovative mechanism does is to reach the device&#8217;s Power Pad from the bottom, and provide a direct heat interface throughout the board. This enhanced thermal path is met by an air foil which allows for quite an improved thermal impedance. I estimate that by using Power Peg you can get something like 5 C/W thermal impedance which is beyond awesome! No better way to understand this than by actually seeing it in action! So here is a video where I show my findings. Enjoy!!! Oh yes, and now I can say, &#8220;WARF&#8230;WARF&#8230; WARF&#8230;&#8221;</p>
<p><iframe src="http://www.youtube.com/embed/CneJAUrSVtA?list=UUNTi4Drb3WqJ68Zdcudo4zg" height="315" width="560" allowfullscreen="" frameborder="0"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://ebldc.com/?feed=rss2&#038;p=464</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A First Look At My 3D Printer Extruder</title>
		<link>http://ebldc.com/?p=425</link>
		<comments>http://ebldc.com/?p=425#comments</comments>
		<pubDate>Sat, 13 Oct 2012 15:34:08 +0000</pubDate>
		<dc:creator>avayan</dc:creator>
				<category><![CDATA[3D Printing]]></category>

		<guid isPermaLink="false">http://ebldc.com/?p=425</guid>
		<description><![CDATA[It took me about 48 hours to get this puppy complete. From conception to implementation! I must admit, however, that I have had the idea of how it should look and work lingering in the back of my mind for&#8230;<p class="more-link-p"><a class="more-link" href="http://ebldc.com/?p=425">Read more &#8594;</a></p>]]></description>
				<content:encoded><![CDATA[<p><a href="http://ebldc.com/wp-content/uploads/2012/10/ExtruderImplementation1.jpg"><img class="size-full wp-image-430" title="ExtruderImplementation" src="http://ebldc.com/wp-content/uploads/2012/10/ExtruderImplementation1.jpg" alt="Avayanium 3D Printer Extruder Implementation" width="817" height="283" /></a></p>
</div>
<p>It took me about 48 hours to get this puppy complete. From conception to implementation! I must admit, however, that I have had the idea of how it should look and work lingering in the back of my mind for a few months, but this past Tuesday I dedicated about 10 straight hours to draw the model in Autodesk Inventor and then on Wednesday at 6:00 AM got up early to start the creation process. 24 hours later, I had a prototype assembled and I was ready to shut my eyes for a little bit. It was a long night&#8230;</p>
<p>OK, I guess that is not 48 hours, but more like 34, but who is counting?</p>
<p>Anyway, when it comes to designing an extruder, what are the challenges? First of you want the thing to grab that thread and push into the hot end nozzle with the right amount of force. Any slippage means you will end up not supplying as much plastic as the 3D printer software thinks it is deploying. Bad news! What this means is we must find a way to apply pressure from the thread delivery shaft, as well as the opposing ball bearing. What I have seen people doing is use springs and a back plate to force the opposing ball bearing into the thread.</p>
<p>What all of this means is we need a piece with a hollow cavity to take all of these components (ball bearings, shafts, nozzle cylinder, etc). If you have a 3D printer, to build a piece like this is beyond easy! How the hell do you make this without a 3D printer then? How about a CNC Milling machine or router? Good luck with that, because you can&#8217;t!</p>
<p>Before I am called an idiot who doesn&#8217;t know what he&#8217;s talking about (which most likely is the case) allow me to add another requirement: in one piece. Try to use a CNC milling machine to build this part in a single piece, and if you can do it, please lets make an appointment so we can meet and I bow to your awesomeness.</p>
<p>The solution? Let&#8217;s not do it in a single piece! Easy, right? Ehh WRONG! If you are like me, then you must be one of those individuals for whom any assembly with more than one part are able to do everything except align together. So as I contemplate my options I am almost convinced this is not going to work.</p>
<p>Shame on me!</p>
<p>As I draw this part:</p>
<div id="attachment_432" class="wp-caption aligncenter" style="width: 789px"><a href="http://ebldc.com/wp-content/uploads/2012/10/ExtruderBody_Split1.jpg"><img class="size-full wp-image-432" title="ExtruderBody_Split" src="http://ebldc.com/wp-content/uploads/2012/10/ExtruderBody_Split1.jpg" alt="Avayanium 3D Printer Extruder Body Segments" width="779" height="337" /></a><p class="wp-caption-text">Avayanium 3D Printer Extruder Body Segments</p></div>
<p>I am convinced there is no way I can build this on my PCNC1100 milling machine. Yes, the machine is awesome and even when I am not a machinist, I have been able to make lots of parts with so much accuracy my jaw requires reconstruction after I get them out of the table. But this part? Come on! It is too complex! To my amazement, apparently it isn&#8217;t. Here is a picture of the two parts after I had removed them from the last milling operation.</p>
<div id="attachment_434" class="wp-caption aligncenter" style="width: 797px"><a href="http://ebldc.com/wp-content/uploads/2012/10/CNCMill_Output.jpg"><img class="size-full wp-image-434" title="CNCMill_Output" src="http://ebldc.com/wp-content/uploads/2012/10/CNCMill_Output.jpg" alt="" width="787" height="230" /></a><p class="wp-caption-text">PCNC1100 CNC Milling Machine Output</p></div>
<p>Now, do not think this was a single step operation. The first two halves were cut with  G Code program with 7 tool changes, out of a single piece of plastic. I then needed to move each piece around four more times to cut the ball bearing side, the cylinder cavity and the back side mounting screws. The two halves aligned so well, I couldn&#8217;t believe it. As Yoda would say: &#8220;Always with you it can not be done. Hear you nothing that I say? You must unlearn what you have learned!&#8221;</p>
<p>In theory, I should have been able to cut every detail in a single job. There are CNC operations such as waterline roughing and waterline finishing, which if tuned properly, and if the right tool is used, should just cut this geometry in basically two generated tool paths. That would most likely require a seasoned CAM artist. I tried for a few hours and eventually gave up as it was clear the CAM program was going to do everything except what I needed it to do. I chose the &#8220;slower&#8221; method (me moving the pieces around the vise and running multiple jobs with multiple operations), which at the end resulted in much quicker turnaround as I ended up with the part I needed.</p>
<p>Once I had the two plastic parts tapped and ready to go, I was able to focus on the peek cylinder. This is actually a fairly simple piece to manufacture if you have one of those small lathes. I got mine on Harbor Freight when they had the 20% coupon and it was on special at $400, so I think I paid something like $350 after tax. What an invaluable tool this has been! No science on how to make this, it is just a peek cylinder which you will drill through with a small diameter drill to allow for the filament passage. On one side you will then drill so that you can tap with the screw you want to use for your nozzle and hot end. In my case I used a 3/8&#8243; 16 TPI screw. Notice this is the US, so everything is in English, but to be honest, these measurements are not Alien technology. As fas as I know, you can make them whatever you want. Of course don&#8217;t make the cylinder one mile long as that peek rod will be too expensive. Well, actually the real reason is the longer you make it, the more it can deflect during run time. Here is a diagram of some of the measurements I did need to follow in order to properly match the cylinder to the housing.</p>
<div id="attachment_438" class="wp-caption aligncenter" style="width: 783px"><a href="http://ebldc.com/wp-content/uploads/2012/10/ExtruderNozzleCylinder.jpg"><img class="size-full wp-image-438" title="ExtruderNozzleCylinder" src="http://ebldc.com/wp-content/uploads/2012/10/ExtruderNozzleCylinder.jpg" alt="" width="773" height="265" /></a><p class="wp-caption-text">Extruder Cylinder Schematic</p></div>
<p>Here is a picture of my cylinder with the hot end mounted.</p>
<p>&nbsp;</p>
<p>A few notes on my hot end. Nothing new here. I got this from the reprap wiki page. I am using an stainless steel screw to interface the brass threaded rod into the peek. Why? I searched for a<a href="http://www.engineeringtoolbox.com/thermal-conductivity-d_429.html"> table with thermal conductivity </a> and it became apparent Stainless Steel (16 W/m.K) is not as conductive as brass (109 W/m.K). Aluminum is 205 W/(m.K) and Peek is 0.25 W/m.K. So what&#8217;s my reasoning here? We want the aluminum and the brass to get very hot, that&#8217;s for sure, as that is how we will melt the plastic. The rest of the system, however, we want to remain cool. We don&#8217;t want to melt the printer! This is why Peek is used. It is the insulator. However, I saw Makerbot using a stainless steel screw to work as an &#8220;insulator&#8221; and that apparently worked good enough so I thought of doing both. Let me add I am no mechanical engineer and I was never into my Thermodynamics introductory course so there is a good chance my reasoning here is quite flawed and preposterous. I am certain those who know will have no problem in pointing it out when the time comes&#8230;</p>
<p>Here is a picture of my current cylinder:</p>
<div id="attachment_439" class="wp-caption aligncenter" style="width: 813px"><a href="http://ebldc.com/wp-content/uploads/2012/10/ExtruderCylinder.jpg"><img class="size-full wp-image-439" title="ExtruderCylinder" src="http://ebldc.com/wp-content/uploads/2012/10/ExtruderCylinder.jpg" alt="" width="803" height="370" /></a><p class="wp-caption-text">Extruder Peek Cylinder and Hot End</p></div>
<p>I will be redoing the tip as I know for a fact the hole is big enough to print cruise anchor ropes. I am using the power resistor method and I will use a DRV8844 to drive it.</p>
<p>The last portion of my extruder is the pushing bearing which is just a bearing mounted on an 8 mm shaft which will roll through the aligning canal on the body&#8217;s back compartment. In order to apply pressure, the back plate will be mounted with four screws bolted into the body but with springs into the back plate. This will make the back plate push into the body. Two screws are used to apply the same force into the shaft. These shafts were machined manually and here is where most of the slop can be found. Luckily, it is not enough to render the creation completely useless. I can feel a little bit of unwanted friction, but I think the stepper will be able to overcome it.</p>
<div id="attachment_440" class="wp-caption aligncenter" style="width: 807px"><a href="http://ebldc.com/wp-content/uploads/2012/10/PushBearings.jpg"><img class="size-full wp-image-440" title="PushBearings" src="http://ebldc.com/wp-content/uploads/2012/10/PushBearings.jpg" alt="" width="797" height="657" /></a><p class="wp-caption-text">Push Bearings and Filament Feeding Shafts</p></div>
<p>&nbsp;</p>
<p><strong>Download The Inventor Files Archive:</strong></p>
<p>Feel free to download this archive (<a href="http://ebldc.com/wp-content/uploads/2012/10/AvayaniumExtruderShare.zip"><strong><em>AvayaniumExtruderShare</em></strong></a>) containing the files I used to create the Avayanium Extruder. You should use these files for reference and maybe to get started on your own. I cannot guarantee these files will give you the ultimate extruder in the face of this planet or that you will be able to get rich overnight with them. If you do manage to use them to get rich, feel free to send me a souvenir with your creation.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://ebldc.com/?feed=rss2&#038;p=425</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Configuring The CNC Mother Board To Work With MACH3</title>
		<link>http://ebldc.com/?p=417</link>
		<comments>http://ebldc.com/?p=417#comments</comments>
		<pubDate>Sun, 30 Sep 2012 23:43:04 +0000</pubDate>
		<dc:creator>avayan</dc:creator>
				<category><![CDATA[CNC]]></category>
		<category><![CDATA[Stepper Motors]]></category>

		<guid isPermaLink="false">http://ebldc.com/?p=417</guid>
		<description><![CDATA[MACH3 is very a versatile CNC machine controller and it can be adapted to practically anything you can think of. For most people, however, it is all of this flexibility what makes it so daunting to give it a try.&#8230;<p class="more-link-p"><a class="more-link" href="http://ebldc.com/?p=417">Read more &#8594;</a></p>]]></description>
				<content:encoded><![CDATA[<p>MACH3 is very a versatile CNC machine controller and it can be adapted to practically anything you can think of. For most people, however, it is all of this flexibility what makes it so daunting to give it a try. As I design the CNC Mother Board I want to make sure configuring MACH3 to work flawlessly with this excellent stepper driver platform is not going to become a problem in itself. In this article, I will detail the steps you can take to configure a MACH3 machine to work with the CNC Mother Board.</p>
<p>I am also adding the files you can drop in your MACH3 installation software, which you can use as a reference or starting point. There really is no way I can give you a file which can just be dropped into the MACH3 installation folder and is ready to go, as there are some variables you will need to adapt to your machine. Stuff like what is the input number for this and the output number for that is pretty much set in stone by the design. But some signal polarities, like step direction, are not. Motor tuning will completely fall under your court as there is no way I can possibly know this before hand, but we will need to look at this in a different post.</p>
<p>Before I go on, I want to point out the folks at Artsoft have some descent tutorials that are always a good idea to take a look at. Yes, MACH3 is a huge collection of screens and it may seem like you require an actual PhD in CNC technology to understand it, but I can tell you I do not possess such an education and I feel dangerous enough to make some parts.</p>
<p>The truth is most of your configuration will take place in two menu items:</p>
<p>CONFIG-&gt; Ports and Pins (Most of these parameters are set by the design, but some you will need to tweak as per the machine)</p>
<ol start="1">
<li>CONFIG-&gt; Motor Tuning (this you will need to tune according to your machine, and will be studied on a different post)</li>
</ol>
<p>I assure you this is not all there is to configure within MACH3. There are a gazillion of other configuration menus, but they are for the more advanced user. No need to go there yet (and possibly never), so let’s see what we need to do to get the CNC Mother Board going.</p>
<p>STEP #1 CONFIG-&gt;Ports And Pins-&gt; Port Setup and Axis Selection</p>
<p><a href="http://ebldc.com/wp-content/uploads/2012/09/PortsMenu.jpg"><img class="aligncenter size-full wp-image-418" title="PortsMenu" src="http://ebldc.com/wp-content/uploads/2012/09/PortsMenu.jpg" alt="" width="713" height="423" /></a></p>
<p>Of course, to run a CNC machine with MACH3 you will most likely need a computer with a parallel port. Most people think the parallel port is extinct and if you are not a DIY CNC fan, chances are that is the case. Most of use, however, will still have a load pile of older computers with a parallel port, to work as our CNC controller. But even if you get a newer computer, you can always add a PCI expansion card with a parallel port. In my experience, they are no more than $20.</p>
<p>You can check the Control Panel, under Hardware, and obtain the information of what the parallel port on your computer is. You will need to do this as I cannot know what your parallel port address is.</p>
<p>Step #2 CONFIG-&gt;Ports And Pins-&gt; Motor Outputs</p>
<p><a href="http://ebldc.com/wp-content/uploads/2012/09/SteppersMenu.jpg"><img class="aligncenter size-full wp-image-419" title="SteppersMenu" src="http://ebldc.com/wp-content/uploads/2012/09/SteppersMenu.jpg" alt="" width="713" height="423" /></a></p>
<p>On the following tabs, is where most of the juice needs to be input, as this is you specify where the machine’s resources are allocated. For example, you know yourParallelPorthas 25 pins. Some of these pins are inputs or outputs and other are grounds. The CNC Mother Board already has allocated the outputs to be used as motor driver signals (STEP and Direction) and the inputs to be sensor signals (HOME X, HOME Y, EMERGENCY STOP, etc).</p>
<p>Notice in this tab you will specify which ones are the resources for the STEP and the DIR pins on a per Axis basis. The picture above has the numbers you will need to input for the CNC Mother Board and these numbers should not change. A few things to notice:</p>
<p>You only need to enable the axis that you have populated. The CNC Mother Board gives access to ports X, Y, Z and A.</p>
<ol start="1">
<li>The DIR Low Active column is set up according to the particular machine where I extracted this file from. If your stepper is going in the wrong direction, you can either reverse the stepper wires (too much hassle) or flip this signal.</li>
<li>STEP is usually LowActive in the great majority of stepper driver modules. If you have a module where the ENABLE is asserted HI, then flip this signal.</li>
<li>The STEP and DIR port is whatever you chose on STEP 1. Most people will use Port 1, but there is always a place holder for Port 2.</li>
</ol>
<p>Step #3 CONFIG-&gt;Ports And Pins-&gt; Input Signals</p>
<p><a href="http://ebldc.com/wp-content/uploads/2012/09/InputsMenu.jpg"><img class="aligncenter size-full wp-image-420" title="InputsMenu" src="http://ebldc.com/wp-content/uploads/2012/09/InputsMenu.jpg" alt="" width="713" height="423" /></a></p>
<p>Next is to configure the input signals such as each axis’ Home Sensor and the Emergency Stop button. Same as before. What we want is to tell the system whichParallelPort, and which pin, will be used for each input resource. The CNC Board has 5 inputs you can configure on this screen. It is highly recommended to always have an Emergency Stop (pin 10), but the home sensors are optional.</p>
<p>On the CNC Board, the signals are pulled up (HI) so they are waiting for a LO from the respective Home Switch. Hence these signals are set Active LO (Active Low column).</p>
<p>Step #4 CONFIG-&gt;Ports And Pins-&gt; Output Signals</p>
<p><a href="http://ebldc.com/wp-content/uploads/2012/09/OutputsMenu.jpg"><img class="aligncenter size-full wp-image-421" title="OutputsMenu" src="http://ebldc.com/wp-content/uploads/2012/09/OutputsMenu.jpg" alt="" width="713" height="423" /></a></p>
<p>This following screen is in essence the same as the previous one, but in this case to configure the outputs. You will enable those outputs that you want to use. On the CNC Mother Board, you should definitely use the Enable1 signal which is the one used to enable the four stepper driver modules. The Output #1 and Output #3 are used for the two solenoids.</p>
<p>Output 1 is used to enable/disable the Spindle</p>
<p>Output 2 is used to enable/disable the secondary function such as the coolant line.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://ebldc.com/?feed=rss2&#038;p=417</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Secrets of CNC Control Board Electronics</title>
		<link>http://ebldc.com/?p=399</link>
		<comments>http://ebldc.com/?p=399#comments</comments>
		<pubDate>Sun, 30 Sep 2012 23:36:42 +0000</pubDate>
		<dc:creator>avayan</dc:creator>
				<category><![CDATA[CNC]]></category>
		<category><![CDATA[Stepper Motors]]></category>

		<guid isPermaLink="false">http://ebldc.com/?p=399</guid>
		<description><![CDATA[The CNC Mother Board is a one stop solution, housing the great majority of blocks you will need to put pretty much any CNC machine together. That is CNC routers or mills, CNC plasma cutters, CNC lathes, etc. In this&#8230;<p class="more-link-p"><a class="more-link" href="http://ebldc.com/?p=399">Read more &#8594;</a></p>]]></description>
				<content:encoded><![CDATA[<p>The CNC Mother Board is a one stop solution, housing the great majority of blocks you will need to put pretty much any CNC machine together. That is CNC routers or mills, CNC plasma cutters, CNC lathes, etc. In this article, I will detail all the electronics behind one of these implementations working with a powerful CNC software controller such as MACH3. But before we get started, let me show you a block diagram containing the electronic segments said typical implementation will be made of.</p>
<p><a href="http://ebldc.com/wp-content/uploads/2012/09/CNCElectronics1.jpg"><img class="aligncenter size-full wp-image-414" title="CNCElectronics" src="http://ebldc.com/wp-content/uploads/2012/09/CNCElectronics1.jpg" alt="" width="770" height="602" /></a></p>
<p>The figure above shows the parallel port which more than often is implemented in the form of a breakout board with or without isolation and providing multiple access points to wire the different signals in question. From these access points you will wire the stepper motors control signals (STEP, DIR and ENABLE), each axis home sensor input, the Emergency Stop Input and relays to enable the spindle or a plasma torch. In some cases, a charge pump is added to ensure the relays do not fire in an inadvertently fashion. This could be very dangerous.</p>
<p>As stated previously, the CNC Mother Board offers all of these blocks in a single system. The modules, however, are detachable as I have been parting from the premise that we will only add those modules we need on a per machine basis. For example, some machines such as lathes and some plasma cutters can work perfectly fine with two control axis. CNC routers and mills, as well as the most typical CNC plasma will use three axis. And if you want to work on round stock, a fourth axis will make this an easier endeavor. Other than that, we are ready to take a look at how each one of these blocks operate.</p>
<p>To follow along this article, you may take a look at the pictures below, or you can download the full schematic in PDF format here: <strong><a href="http://ebldc.com/wp-content/uploads/2012/09/AE-CNC_MotherBoard_RevE2.pdf">AE-CNC_MotherBoard_RevE2</a></strong></p>
<p><strong>The parallel Port:</strong></p>
<p><a href="http://ebldc.com/wp-content/uploads/2012/09/AE-CNC_MotherBoard_RevE2_DB251.jpg"><img class="aligncenter size-full wp-image-407" title="AE-CNC_MotherBoard_RevE2_DB25" src="http://ebldc.com/wp-content/uploads/2012/09/AE-CNC_MotherBoard_RevE2_DB251.jpg" alt="" width="608" height="480" /></a></p>
<p>On the CNC Mother Board we will use the rather old and almost extinct parallel port to supply all of the control signals. Do not be confused. The parallel port is not gone. Although most CNC enthusiasts have a large lot of old computers with parallel ports, new computers can be upgraded with a PCI parallel port expansion card for less than $20.</p>
<p>The parallel port gives us a series of inputs and outputs we will configure to operate as our control signals. How to configure these signals within MACH3 is explained on a separate blog posting.</p>
<p>The CNC Mother board will have a male DB25 connector to connect to your PC computer running the MACH3 CNC control software. There is also a 18 pin header connector housing the signals. This connector is put in place to work as a future expansion connector, but has also work wonders during the debugging stage.</p>
<p>The USB connector is used to provide 5V power to the logic signals at the computer side. Since capacitive isolators will be used to ensure data integrity, we need a power supply that is isolated from the main power supply.</p>
<p><strong>Power Inputs and Rails:</strong></p>
<p><a href="http://ebldc.com/wp-content/uploads/2012/09/AE-CNC_MotherBoard_RevE2_Power.jpg"><img class="aligncenter size-full wp-image-409" title="AE-CNC_MotherBoard_RevE2_Power" src="http://ebldc.com/wp-content/uploads/2012/09/AE-CNC_MotherBoard_RevE2_Power.jpg" alt="" width="608" height="480" /></a></p>
<p>The CNC Mother board uses four voltage rails. We discussed the first one under the Parallel Port section, as this is the 5V rail we will need to power up the computer side of the isolator circuitry. The other three rails are:</p>
<p><strong>VPWR</strong>+, which becomes <strong>VM</strong> (VMotor) after the PTC fuse, and is used to power up the other two rails and the stepper motor driver modules. The PTC fuse is rated at 5A, but an 8A version can also be used. The PTC fuse is put in place, along with a diode in parallel with the input power, to protect the entire system in case the power is wired backwards into the back plane board.</p>
<p><strong>12V</strong> is the relay driver power. The two 30A relays have a 12V coil and a DRV8803 device is used to enable/disable these relays. A conventional 7812 regulator is used to step down from the VM rail.</p>
<p><strong>3.3V</strong> is the CNC Machine Logic side rail. 3.3V are used while a TL2575, with 3.3V fixed ouput, Buck Converter regulator is used. A 5V version is available in case the user prefers said rail voltage. However, the modules designed at the moment are 3.3V compatible so this rail was chosen.</p>
<p><strong>Inputs and Outputs:</strong></p>
<p><a href="http://ebldc.com/wp-content/uploads/2012/09/AE-CNC_MotherBoard_RevE2_InputsOutputs.jpg"><img class="aligncenter size-full wp-image-408" title="AE-CNC_MotherBoard_RevE2_InputsOutputs" src="http://ebldc.com/wp-content/uploads/2012/09/AE-CNC_MotherBoard_RevE2_InputsOutputs.jpg" alt="" width="608" height="480" /></a></p>
<p>The CNC Mother Board&#8217;s flexibility is based on a back plane topology which allows for different modules to be interfaced into the main board. Female header connectors supplying control signals, as well as VM and 3.3V power, offer this connection.</p>
<p>In this portion of the schematic we can also see the home sensor connectors. There is one per axis, as well as the Emergency Stop. Do note that although these inputs have been labeled as home sensors, is up to the user how they are employed. All of these inputs have been pulled up. When an external switch closes, an asserted LO signal is recognized by the controlling software.</p>
<p><strong>Relay Driver:</strong></p>
<p><a href="http://ebldc.com/wp-content/uploads/2012/09/AE-CNC_MotherBoard_RevE2_RelayDriver.jpg"><img class="aligncenter size-full wp-image-410" title="AE-CNC_MotherBoard_RevE2_RelayDriver" src="http://ebldc.com/wp-content/uploads/2012/09/AE-CNC_MotherBoard_RevE2_RelayDriver.jpg" alt="" width="608" height="480" /></a></p>
<p>Two 30A solenoids are provided to power up large inductive loads such as routers, vacuum cleaners, pumps, etc. The two solenoids are labeled as Spindle and Spare. These are just names and can be associated as necessary within the controlling software&#8217;s configuration menus.</p>
<p>A DRV8803 device is used to enable/disable the relay coil. An important aspect of the DRV8803 is that we can enable it with a control signal. We are using an MSP430G2210 small microcontroller to operate as a watchdog function, also known as the Charge Pump. MACH3 is capable of providing a 12.5 KHz signal whenever it is in control. This is important as we want to ensure these relays are not enabled unless MACH3 is in control. A lack of this feature could result in a very dangerous scenario. Regardless, it is advised for the user to follow proper safety guidelines while operating any CNC equipment and we cannot be made liable if such safety guidelines are not followed.</p>
<p>The MSP430 is continuously sampling pulses and increasing a variable every time a rising edge on CP is received. At the same time, an internal timer is decrementing the variable. If the variable goes above certain threshold, then the DRV8803 is enabled. If MACH3 stops to work, the 12.5KHz dissapears and the internal timer takes the variable below another threshold which is a command to disable the DRV8803 driver.</p>
<p>Each relay has a 250VAC varistor used to limit the voltage across the relay terminals. When an inductive load is switched off, the current cannot be made zero instantaneously. Since the path is broken, voltage increases to &#8220;infinity&#8221;. The varistor takes on the current and clamps the voltage to 250V, which is a safe value for the relay.</p>
<p><strong>Isolation:</strong></p>
<p><a href="http://ebldc.com/wp-content/uploads/2012/09/AE-CNC_MotherBoard_RevE2_Isolation.jpg"><img class="aligncenter size-full wp-image-411" title="AE-CNC_MotherBoard_RevE2_Isolation" src="http://ebldc.com/wp-content/uploads/2012/09/AE-CNC_MotherBoard_RevE2_Isolation.jpg" alt="" width="608" height="480" /></a></p>
<p>Although the stepper driver modules are protected against all sorts of problems (Over Temperature, Over Current, etc), there is always a chance that the computer side will be hit with high voltage. Since this is very dangerous for the computer, it is always a good idea to isolate the computer from the rest of the CNC machine. To achieve this, we are using ISO72xx which take advantage of Texas Instruments Silicon Isolation barrier. The advantages of this topology are many and out of the scope of this article. However, do note they are excellent for this kind of application.</p>
<p>The ISO72xx devices require 2 voltage rails: one for the input side and one for the output side. We are using the 5V from the USB connection as the input side rail (PC Computer side) and the regulated 3.3V as the output side rail (CNC Machine side).</p>
]]></content:encoded>
			<wfw:commentRss>http://ebldc.com/?feed=rss2&#038;p=399</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What is a 3D Printer???</title>
		<link>http://ebldc.com/?p=367</link>
		<comments>http://ebldc.com/?p=367#comments</comments>
		<pubDate>Tue, 18 Sep 2012 22:43:26 +0000</pubDate>
		<dc:creator>avayan</dc:creator>
				<category><![CDATA[CNC]]></category>

		<guid isPermaLink="false">http://ebldc.com/?p=367</guid>
		<description><![CDATA[If you are reading this post, chances are you know what a 3D Printer is. It is also quite possible you have been talking about this exciting project when somebody comes up and asks, with curious eyes, &#8221;what is a 3D printer?&#8221;&#8230;<p class="more-link-p"><a class="more-link" href="http://ebldc.com/?p=367">Read more &#8594;</a></p>]]></description>
				<content:encoded><![CDATA[<p>If you are reading this post, chances are you know what a 3D Printer is. It is also quite possible you have been talking about this exciting project when somebody comes up and asks, with curious eyes, &#8221;what is a 3D printer?&#8221; You may feel an impulse of surprise as to the astonishing question which has just been posted as your brain bounces back with &#8220;what is a 3D printer? How on Earth can you not know what that is?&#8221;, but before you open up your mouth you realize that some time ago, you too were oblivious to what a 3D printer was.</p>
<p>In essence the 3D printer is a very confusing name. Lets face it! Every printer on this planet has three dimensions. Is there such thing as a printer that only occupies space in the X and Y cartesian plane? I haven&#8217;t seen it&#8230; But that is of course not what we mean by 3D Printer, because what it truly implies is a gadget capable of printing in three dimensions. Then again, unless we give it a more descriptive name, how can we visualize it? If I have an ink jet spewing ink in three dimensions, how is the ink holding its spatial information? What if it is a laser? How is the toner being fused into three dimensions so that I have a tri dimentional printout? 3D Printer is just too vague a name!</p>
<p>To make matters worst, the actual names for the three most popular 3D Printing technologies are not that easy to grasp either. Molten Polymer Deposition (MPD), Granular Material Binding (GMB) and Photopolimerization are terms 99.9% of humans walking this planet will not even dare to understand. MPD, by the way, is the typical <a href="http://www.reprap.org">rep rap </a>printer we see most DIYers building today, while a slowly growing number of people are starting to adopt the photopolimerization technique.  GMB is still in the realm of &#8220;fractions of a million dollar&#8221; machines so I do not see a lot of action on that front by DIYers, but if you want to see what it is, check this <a title="ZCorps 3D Printer" href="http://www.youtube.com/watch?v=jQ-aWFYT_SU">video</a>.</p>
<p>The truth is that whenever you hear your local geek talking or showcasing his own 3D printer, he will be talking about an MPD printer. About a decade ago, wanting to buy a professional Molten Deposition printer, would set you back anywhere in between 17K and 25K (and some extra more for hidden costs) for a starter unit. Then somebody in Europe, namely Adrian Bowyer, decided this was an atrocious price to pay for pushing molten plastic in an organized fashion. He created the RepRap organization and possibly inadvertently set the planet in its next big Geek revolution. Today, it is basically impossible to visit any geek strata and not hear (or actually see!) about 3D printing, it being some sort of machine capable of melting plastic (ABS or PLA) and depositing it into a moving platform such that a 3D object results.</p>
<p>OK, that is basically what a 3D printer is, but in reality I have still not answered the question. The real answer is (and this is my very own personal definition):</p>
<p>A 3D printer is a CNC (Computer Numeric Control) machine consisting of three axis of motion (X, Y and Z), and an extrusion mechanism revolving around a hot element capable of melting ans pushing plastic through a nozzle with the smallest possible hole. The printer is actually a 2D printer with the capability of shifting information into a third dimension. That is, information is printed into a two dimensional layer in the X and Y Cartesian plane and then this layer is shifted down so a new layer can be deposited on top. The process is repeated numerous times, until a predetermined number of layers in the Z axis have been printed in the X and Y axis.</p>
<p>Words may still not be able to do all the justice we require, so how about a picture?</p>
<div id="attachment_370" class="wp-caption aligncenter" style="width: 756px"><a href="http://ebldc.com/wp-content/uploads/2012/08/BlockDiagram.jpg"><img class="size-full wp-image-370" title="A 3D Printer's BlockDiagram" src="http://ebldc.com/wp-content/uploads/2012/08/BlockDiagram.jpg" alt="" width="746" height="662" /></a><p class="wp-caption-text">A 3D Printer&#8217;s BlockDiagram</p></div>
<p> A 3D Printer without a computer is really not much, although some units will have an SD Card reader you can use to get a job processed from the memory module. You can download output files ready to run on your 3D printer from database places such as the <a href="http://www.thingiverse.com/">ThingieVerse </a>created by the Makerbot guys. Brilliant idea by the way! If this is the case, you can ignore the computer side completely. However, personally I am not interested in the SD card implementation, so I will ignore this venue completely. Plus chances are at some point in time you will want to design your own parts, in which case you will need the computer.</p>
<p>There is tons of information on what this means, so let me just give you a supremely brief run down.</p>
<p>First you will need to draw your 3D part in a software better known as CAD, for Computer Aided Design. There is a gazillion of them, and chances are the great majority will be too expensive. If you are a student, you may be able to get freebies or cost down versions of the really good ones like Autodesk Inventor. Or you can go with the freebie package most people are getting their hands dirty with, <a href="http://www.blender.org/">Blender</a>. Any of these packages will allow you to draw what is called a solid, or a 3D model.</p>
<p>A quick example would be something like this:</p>
<p> <img class="aligncenter size-full wp-image-387" title="Part1b" src="http://ebldc.com/wp-content/uploads/2012/09/Part1b.bmp" alt="" /></p>
<p> Yes, that&#8217;s a boring part and nobody would even waste time doing like this, but I needed to illustrate that this drawing of a solid is 100% useless to a 3D printer. There is nothing you can do with the output from this SW, other than having it processed by a second piece of SW which is in charge of extracting the 3D information and generating a sequence of 2D packets the printer can process. This is what is known as Computer Aided Manufacturing (CAM) as the computer will generate a series of commands which will let you fabricate (manufacture) the part in question.</p>
<p>In a CNC milling machine, the CAM SW would need to know what blade (mill) would be used. You would need to tell it a speed of rotation and traverse (or feed rate), as you cannot just cut every single material with the same parameters. The program can then look at the part and the cutter, and generate what is known as a tool path. This tool path is then encoded in a series of very simple commands better known as G Codes. A G Code could be something like &#8220;move in a line at this rate&#8221; (G1) or &#8220;move in a circle, counterclockwise, with this radius&#8221; (G2). There is a fair number of G Codes an I am already confusing you to the smithereens, so let me just put a link to the <a href="http://en.wikipedia.org/wiki/G-code">wiki </a>in case you want to push your brain further.</p>
<p>So why would I mention a CNC mill when we are talking about 3D printing? Because the process is still the same. The truth is the 3D printer will run in the exact same G Code any CNC machine will run (plasma cutter, lathe, router, laser, etc). It will move in lines and in circles to deposit the molten plastic. Notice you need to know how thick is the molten plastic stream as the CAM SW will need to take this into account. I haven&#8217;t gone through this yet, but I expect it will take some time before I am able to perfectly tune output according to how thick is my molten plastic stream, which should be directly proportional to nozzle hole diameter.</p>
<p>The CAM software for a 3D printer is better known as a slicer. In essence, the 3D model is segmented in a bunch of slices that must be a function of how much (or how little) can you move the Z axis table up and down and the plastic stream diameter. The output of the slicer, then, is a text file containing the combination of G Code commands that can draw the part on a slice by slice manner.</p>
<p>To show you how the slices work will be way easier once I have my 3D printer up and running, so I promise to get back to this point some time in the future. In the mean time, if you have seen a 3D printer in action, then you already know what I am talking about. And if you haven&#8217;t, keep your eyes open to next geek gathering as once you see the printer in action you will get to be like: &#8220;Ah! That&#8217;s what he meant by slices!&#8221;</p>
<p>With the G Code file, we can now start printing. There are different ways in which machines run G Code. For example, in my CNC mill, the computer is reading the G Code and generating a series of pulses that move the stepper motors in the right sequence. This is all taken care by a software called MACH3. On most 3D printers, however, the computer takes the G Code and sends it to a controller board which then decodes the command and generates the pulses to move the steppers.</p>
<p>Let me get a little bit deeper on this one:</p>
<p>After you have sliced your model, you will open the G Code output on a SW that is your G Code controller. The SW I plan on using is called <a href="http://replicat.org/">Replicator G</a>. Replicator G then sends command to a controller board, which as of today is most likely an Arduino Mega running a firmware version of <a href="https://github.com/kliment/Sprinter">Sprinter</a>. Sprinter is not to be confused with Arduino code. It may use a few of the Arduino calls, but it does not rely on Arduino functions to control the steppers or deal with serial commands. Most of it is writen in C, although you can still follow the Arduino conventions to download the firmware into your Arduino board. Do note that at this point we have already walked out of the computer and are now on the 3D printer side.</p>
<p>The Arduino board has no power capabilities to drive a stepper. It can send the pulses and direction information but that&#8217;s it! Instead, Arduino users must connect to their board an actual power stage capable of taking the pulse and direction information and transform it into actual voltages and currents the stepper can use to move accordingly. Drivers of these nature are often called internal indexer microstepping drivers, and there is a bunch out there. Since I have been designing my own drivers around the DRV88xx family of drivers, I have chosen the DRV8825. It has 32 degrees of microstepping, so I think I will obtain better results than the typical 16 degrees of microstepping most users out there have been using.</p>
<p>The stepper driver will then control the steppers on a step (or microstep) basis. It is important to tell the system how much each one of these steps mean in terms of distance. This is because the G Code is not based on steps, but on points along the coordinate system. For example, G1 X5 Y7 means to the point where X is equal to 5 inches and Y is 7 inches (it could be in millimeters too, but since I am in the US I prefer the English system; shame on me!!!). The printer knows where (0,0) is, but it needs to know how many steps it will need to issue to get to (5,7). Have in mind the resolution on the driver is not all. How many steps per revolution your stepper has and the belt resolution will also play a role. I am no mechanical genius so I plan on measuring this with calipers and write it down during the setup stage.</p>
<p>This is a supremely  brief explanation of what it all is. I doubt you will find a single place with the entire answer, unless you buy one of those &#8220;Build Yourself CNC&#8221; books, and even then chances are you will end up with more questions than answers. You will need to scour the web until you find that answer and eventually you will understand most of it that you need to be dangerous.</p>
<p>More to come as I get my project up and running!</p>
]]></content:encoded>
			<wfw:commentRss>http://ebldc.com/?feed=rss2&#038;p=367</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Keeping It Cool</title>
		<link>http://ebldc.com/?p=378</link>
		<comments>http://ebldc.com/?p=378#comments</comments>
		<pubDate>Tue, 18 Sep 2012 22:17:38 +0000</pubDate>
		<dc:creator>avayan</dc:creator>
				<category><![CDATA[H Bridges]]></category>

		<guid isPermaLink="false">http://ebldc.com/?p=378</guid>
		<description><![CDATA[You are a secret agent with the latest in gadgetry; superbly handy weapons and an array of fashionably handsome disguises. Your counterpart and nemesis, Doctor Mayhembert, the most insidious villain on the face of this planet, has decided to plunder&#8230;<p class="more-link-p"><a class="more-link" href="http://ebldc.com/?p=378">Read more &#8594;</a></p>]]></description>
				<content:encoded><![CDATA[<div>
<p>You are a secret agent with the latest in gadgetry; superbly handy weapons and an array of fashionably handsome disguises. Your counterpart and nemesis, Doctor Mayhembert, the most insidious villain on the face of this planet, has decided to plunder our society with an obscure rationale which calls for immediate action. After jumping from your masterfully crafted and weapon loaded sporty car, you dodge a few bullets, capture the villain and save the day, all while “keeping it cool”.</p>
<p>OK, maybe you are not a secret agent, but it is still your responsibility to keep it cool. You are an electrical engineer tasked with a stepper driver design which will source so much current, heat is starting to become a problem. That’s your Doctor Mayhembert! How can you keep it cool?</p>
<p>Most integrated drivers out there will be packaged leaving a large metal pad exposed, which can then be used as a means to release heat out of the package and away from the die. For example, devices like the DRV8811, DRV8818, DRV8824/25 (just to name a few) are built into HTSSOP packages with an exposed PowerPAD at the bottom. This PowerPAD is soldered into a large copper structure in the board, with the intention of providing a path for heat to flow away from our Power Stage. In other words, the power stage’s PCB becomes its own heat sink.</p>
<p>When I design motor control modules, such as the AE-STPR8811 or the AE-MegaMotor, I basically flood the entire top and bottom layers with copper. These modules are two layer boards, 2 oz copper density, which is the best I can do to enhance the heat sinking effect for these modules.</p>
<p>Unfortunately, there is so much you can do with a copper fill and increased density to provide a meaningful heat sinking effect. In this type of implementation, as current approaches its rated maximum value, and the ambient temperature is much more than 25C, chances are the driver will not be able to sustain current output, with the thermal protection taking over shortly after. This means a rupture in the motor control operation and it is to be avoided at all costs!</p>
<p>The solution I see most people trying to employ is applying an air foil, epoxy glued to the top of the device in question. Allow me to tell you this is not going to work well at all. The plastic material in which the die is enclosed, has a poor thermal conductivity which means removing heat through this medium will be painfully slow, not to mention highly inefficient. The truth remains: the best way to release the heat out of the device is through the PowerPAD!</p>
<p>So what can we do?</p>
<p>A few months ago a young inventor from TEM Products Inc. sent me a sample of a recent inspiration he had decided to pursue. This idea is based on a copper cylinder, better known as a PowerPeg TM, which solders directly into the power stage’s PowerPAD through an opening at the bottom of the board. To the PowerPeg we bolt an air foil, which decreases the thermal impedance to impressive levels. Figure 1 shows a concept drawing of how to attach the PowerPeg and respective air foil into a PowerPAD based device and board.</p>
<p> <img class="aligncenter size-full wp-image-379" title="PegBasedAirfoil_640" src="http://ebldc.com/wp-content/uploads/2012/09/PegBasedAirfoil_640.bmp" alt="" /></p>
<p align="center"> </p>
<p> <strong>Figure 1: PowerPAD based device meets its savior, the PowerPeg based air foil.</strong></p>
<p> To give you an idea of the improvements associated with this novel method of interfacing a heat sink into the PowerPAD, I took one of my modules and redesigned it to accept the peg and the air foil. The result was the AE-STPR8818-TP, which remains a small sized module capable of supplying even more than rated current at the same time it remains cooler. Did I say more than rated current? Did I say it actually runs cooler? I guess we will need to take a look at some numbers to make some sense into that last statement.</p>
<p>The DRV8818 is rated at 2.5A but its Over Current Protection is actually set at 3.25A. The device is rated at 2.5A because with conventional copper flooding techniques this is pretty much all you can do. In this case, running the motor at 2.5A and ambient temperature at 25C (VM = 24V, 8 degrees of microstepping, Step Rate = 1000 Steps Per Second, Mixed Decay, 1.4 us TBLANK, 47 us TOFF, etc.), will give you a case temperature of about 90-100C. Increase the current to 3A, and you are now dealing with temperatures soaring into 120-130C. If the ambient temperature was 50C, a rather typical scenario, the device would be nearing its temperature protection set point, jeopardizing motion control integrity.</p>
<p>With the heat sink, however, we get a completely different thermal picture. Even at 3A, the device is not hotter than 50-60C. Figure 2 shows a thermal capture of the AE-STPR8818 (no PowerPeg based Heat Sink) and the AE-STPR8818-TP (with PowerPeg technology).</p>
<p><img class="aligncenter size-full wp-image-380" title="PowerPegTemp" src="http://ebldc.com/wp-content/uploads/2012/09/PowerPegTemp.png" alt="" width="720" height="256" /></p>
<p>&nbsp;</p>
<p align="center"><strong>Figure 2: AE-STPR8818 (left) and AE-STPR8818-TP (right) thermal capture</strong></p>
<p> In conclusion, the device will run cooler at 3A with the heat sink than it will run at 1.5A without it. Now if you ask me, that is some 007 worthy technology!</p>
<p>For more information on PowerPeg based modules, feel free to visit my web page at <a href="http://www.avayanelectronics.com/">www.avayanelectronics.com</a>. For more information on the PowerPeg heat sinking system, feel free to visit<a href="http://http//www.tem-products.com"> TEM Products</a> website.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://ebldc.com/?feed=rss2&#038;p=378</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Questions on the AE-DualDC3A DC Motor Driver Board</title>
		<link>http://ebldc.com/?p=373</link>
		<comments>http://ebldc.com/?p=373#comments</comments>
		<pubDate>Tue, 28 Aug 2012 14:01:54 +0000</pubDate>
		<dc:creator>avayan</dc:creator>
				<category><![CDATA[H Bridges]]></category>

		<guid isPermaLink="false">http://ebldc.com/?p=373</guid>
		<description><![CDATA[A reader posted a good series of questions for the AE-DualDC3A driver board so I thought of answering them on a post in order to offer some information on these topics. I will continue with the 3D Printer mania soon,&#8230;<p class="more-link-p"><a class="more-link" href="http://ebldc.com/?p=373">Read more &#8594;</a></p>]]></description>
				<content:encoded><![CDATA[<p>A reader posted a good series of questions for the AE-DualDC3A driver board so I thought of answering them on a post in order to offer some information on these topics. I will continue with the 3D Printer mania soon, I promise! So the questions are:</p>
<p>1. Since there are two DRV8800 devices on a DualDC3A module, can I drive them in parallel for increases current capability?</p>
<p>2. Is the board setup for sharing both device&#8217;s PHASE and ENABLE Signals or do I need to add jumper wires?</p>
<p>3. Due to board size, how much power can we expect to dissipate without requiring extra heat sinking?</p>
<p>These are all great questions and the truth is they can in essence be answered with &#8220;Yes&#8221;. Well, at least the first two&#8230; But let me get deeper into details.</p>
<p>The DRV8800 can be driven in parallel. I actually wrote an article about how to do this for the Servo Magazine a few years ago. Sorry, I can&#8217;t possibly remember the month and year in which the article came out, but don&#8217;t bother too much with it as there is one important item I forgot to add in this article. I was too fresh on paralleling H Bridges back then.</p>
<p>The real problem with paralleling two or more DRV8800&#8242;s (the most I have done is four units!) is what happens when they get disabled. Although you are enabling/disabling them all at once by applying a PWM at the ENABLE pin, they can still get disabled when they trip due to the current set point being met or an OCP event taking place. When this happens, which device shuts down first? We cannot know but I can tell you this: Once that happens, the device that shuts down first will take all the recirculating current until the other device switches to the same state. This may not be a problem for the FETs, which can take twice the current for a few nano seconds, but the body diodes can be severely affected. Think smoke here! Hence, for this to work you would need to add Schottky diodes at the outputs. TI has an application note depicting this implementation, <a href="http://www.ti.com/general/docs/lit/getliterature.tsp?literatureNumber=slva320&amp;fileType=pdf">HERE</a>. I will let the application note do the talking on how to select diodes and what to expect.</p>
<p>Needless to say, the board is not setup to do parallel driving without some modifications. These modifications are not that hard to accomplish, though, and here they are in no particular order:</p>
<p>1. The PHASEA pin needs to have a jumper to the PHASEB pin.</p>
<p>2. The ENABLEA pin needs to have a jumper to the ENABLEB pin.</p>
<p>3. The MODEA pin needs to have a jumper to the MODEB pin.</p>
<p>4. OUTA+ output needs to have a jumper to the OUTB+ output.</p>
<p>5. OUTA- output needs to have a jumper to the OUTB- output.</p>
<p>6. Schottky diodes needs to be added as depicted on the application note in order to protect the internal body diodes.</p>
<p>To be honest, I do not think paralleling DRV8800&#8242;s is the way to go anymore. It may have been 4 years ago when there were not too many options to pursue, but if I wanted higher current to drive a DC motor I would chose a DRV8840 or DRV8842 which can do up to 5A. I have a module, the AE-MegaBridge, that is designed around these devices, so that is what I would use. To parallel DRV8800&#8242;s would results in an implementation larger than a single DRV8840 and the hassles would be too many. DRV8840/42 also adds current regulation which allows you to control torque, in case that is something you are looking to do, although it is kind of rare on DC motor applications.</p>
<p>But say you still want to pursue the DualDC3A in parallel mode with the Schottky diodes, how much power could we drive out of the device? Unfortunately, not a lot, not continuously at least. Brushed DC motor drivers are really not meant to be driving humongous currents for prolonged periods of time. Basically, when an H Bridge is chosen you are assuming the motor will run at a rather small current for the most part, with the caveat that you may require current bursts during startup, stalling and load changes. In other words, if a device is rated at 3A, you should not run it continuously at 3A, or if you need 3A continuous current, then you should be looking at a 5A power stage. </p>
<p>With that being said, a device like the DRV8800, which happens to be at up to 3A, simply cannot be expected to run at 3A continuously unless you add liquid nitrogen. The RDSon is too high for this. And the DualDC3A board does not help as its size is too small. The idea behind this module was to power two small DC motors requiring any current less than 1A continuous, and up to 3A peak for a few hundred milliseconds if at all.</p>
<p>If you parallel both devices, however, you are in essence halving the RDSon which allows you to run cooler. Say now you should be able to run continuously at 2A and reach peaks of anywhere in between 5A and 6A. I haven&#8217;t done the experiments to be able to tell you for how long something like this would work without adding heat sinking, but I know that at 1A, a single DRV8800 device should run pretty much forever, so the same should apply for two devices in parallel passing the 2A. At these currents, both devices would be subjected to about 1.55W (1A*1A*1.55Ohms), and since the device&#8217;s package is rated up to 4W I think we are in good shape. Do note that due to the board size, each device will be heating each other which is definitely not a good thing, but I think we would be well within a safe range.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://ebldc.com/?feed=rss2&#038;p=373</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Tackling the 3D Printer Madness</title>
		<link>http://ebldc.com/?p=365</link>
		<comments>http://ebldc.com/?p=365#comments</comments>
		<pubDate>Fri, 10 Aug 2012 12:50:20 +0000</pubDate>
		<dc:creator>avayan</dc:creator>
				<category><![CDATA[CNC]]></category>

		<guid isPermaLink="false">http://ebldc.com/?p=365</guid>
		<description><![CDATA[In 2010 I decided to build a 3D Printer. For days, I glued myself into all of my computers (at work, on my studio, on my massage chair, and at bed) blackholing as much information as I could into my&#8230;<p class="more-link-p"><a class="more-link" href="http://ebldc.com/?p=365">Read more &#8594;</a></p>]]></description>
				<content:encoded><![CDATA[<p>In 2010 I decided to build a 3D Printer. For days, I glued myself into all of my computers (at work, on my studio, on my massage chair, and at bed) blackholing as much information as I could into my neural mass. Back then I thought of building a Makerbot Cupcake as it made perfect sense. I had a laser engraver in which I could cut the parts, and practically every file was available through their different website spots. I wish I could say building the 3D printer was as simple as it sounded, but there were much more barriers back then.</p>
<p>First of all, porting the DXF files into my laser engraver SW was worst than painful. I had to literally clean every single node in order for my engraver to process it correctly. Some carpal tunnel after, I had done it! Then it was a matter of finding the right wood, which unfortunately I didn’t. If I recall, it was supposed to be a 5 mm wide plywood. I thought a close width would do, but after cutting every single pattern, it required a miracle like transforming 2 fish and three pieces of bread into food for a tumult. Needless to say, they didn’t match.</p>
<p>And then of course, open source often (and unfortunately) means chaos. Sure, it is free, but by no means free means organized. The files here and there didn’t match. There were revisions for the electronics, the hardware (i.e. screws, nuts, belts, pulleys, laser cut profiles), the firmware, the “you name it”! To match it all required an act of faith, and then being knocked by a comet worth of inspiration/luck. I tried contacting the creators a few times but it was clear these were busy guys working on yet another revision and had I been keeping track of every single little detail that had transpired in the past three years of 3D printer lore, I should have known where everything was supposed to fit back then.</p>
<p>Well, unfortunately for me I never managed to get a pay check by browsing the web, and in particular studying Hobby 3D printing evolution so at the end of a fairly steep learning curve I decided to move on. I had a few hundred dollars worth of McMaster goodies I could use on subsequent projects, so not all was lost. My Makerbot laser cut Cupcake box sat on my attic for a few months until I had to let the souvenir like wood piece hit the trash can. I should have hanged it from the ceiling as a memento of my 3D printer endeavor failure. I did keep the hot end which I painstakingly build on my lathe and store until a later time.</p>
<p>There were other reasons why I failed on my first attempt. First of, if DIY 3D printing is in its infant stage (we can say toddlerish), in 2010 it was something like a fetus. Yes, there was lots of information out there, but it was all spread and hard to put together. Then comes the media. Today you can easily find the filament in whichever color you can imagine. Back then? Good luck! All you could do was get on a wait list and hope for the best. I remember I had to test my hot end with nylon trimmer line. Another waste of time and effort! Nylon requires higher temperatures than ABS, and of course the current implementation around PTFE and the Teflon cover for the NiChrome wire was already pushing the ABS limits. I am amazed I didn’t set my lab space in flames, considering I went quite above the safe limits for the Teflon shield.</p>
<p>So fast forward two years and what do I find? The picture is way different today as it was back then. In retrospect, had I endured the lack of resorts and set my mind into a research environment (which back then I though had already passed) I could be one of the 3D printer manufacturers of the day. If you want to get into 3D printing you might as well buy one of the hundreds available models. There are tons of filament providers, the controller by nature is the Arduino mega with the Sprinter firmware, Replicator G is the CNC controller, etc. Whenever I look, I find pretty much the same implementation so to tackle this project today is considerably much simpler!</p>
<p>And so I have decided I will try this one more time. Keep posted in my progress and find out which 3D printer base I will be building. Learn about which motion control strategy I will follow and which extruder I will implement. I will try to explain as best as possible the different successes and failures I have gone through and hopefully you will be able to skip most of them into success building your own unit.</p>
]]></content:encoded>
			<wfw:commentRss>http://ebldc.com/?feed=rss2&#038;p=365</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How to Select Your Next Motor Driver</title>
		<link>http://ebldc.com/?p=355</link>
		<comments>http://ebldc.com/?p=355#comments</comments>
		<pubDate>Thu, 02 Aug 2012 02:09:49 +0000</pubDate>
		<dc:creator>avayan</dc:creator>
				<category><![CDATA[H Bridges]]></category>

		<guid isPermaLink="false">http://ebldc.com/?p=355</guid>
		<description><![CDATA[One of the questions that I get the most is how to select a motor driver (AKA Power Stage) from the ocean of available units out there. I am a big fan of TI&#8217;s offerings, or a family of devices&#8230;<p class="more-link-p"><a class="more-link" href="http://ebldc.com/?p=355">Read more &#8594;</a></p>]]></description>
				<content:encoded><![CDATA[<p>One of the questions that I get the most is how to select a motor driver (AKA Power Stage) from the ocean of available units out there. I am a big fan of TI&#8217;s offerings, or a family of devices I like to call the DRV88xx. Two years ago, selecting a driver from this family was a quite simple endeavor as there were really not that many devices to choose from. These guys, however, have been quite busy and as if trying to emulate your favorite savior&#8217;s feat of multiplying bread and fish, what was two devices is now much more than 20! As far as I know they are not stopping any time soon, which makes me believe the task to choose a motor driver will not get any simpler. But to be honest, it does not have to be hard, awkward, complex, annoying, or anything like that. In this article I plan on demystifying some of the aspects of motor drive selection which makes people stick to their 100% antiquated 1950&#8242;s tube based solution when any of the DRV88xx devices would make your life way much more easier!</p>
<p>Let me start this article by confidently stating I will not even dare to mention the L293, but only to please implore you to let this piece of Flintstone technology finally rest in peace down at the Smithsonian where it belongs today. Yes, it was a cool device shortly after we stopped painting in caves (circa 1986), but there is no reason to downgrade our brain&#8217;s potentials by succumbing to such an old contraption. I could write an entire article detailing why I think this way, but I don&#8217;t know&#8230; Just the fact that L293 is from 1986 should tell us something. Or do you still play King&#8217;s Quest in that PC Junior? OK, giving away too much aging information here&#8230;</p>
<p>Oh no! Whenever I want to get a motor moving I look into the DRV88xx family of devices as it offers almost any possible driving capability I can think of. Now, I am thinking here about brushed DC motors and steppers. If you are looking for 3 phase BLDC, AC Induction Motors, or Permanent Magnet Synchronous machines (PMSM), we would need to expand the family down to the DRV8xxx and that would take much more than this article. Hence, I want to focus on the two aforementioned motor topologies.</p>
<p>If you need battery voltage, or higher voltages, there is a device. If you need little current or higher current, there is a device. If you need to regulate current or just let current run wild, there is a device. If you want to control speed on a DC motor by PWMing the ENABLE or the PHASE control inputs, there is a device. Or perhaps you prefer the older style, IN1 and IN2, in which you control each H Bridge&#8217;s half independently. Well, guess what? There is a device! If you want full step, integrated microstepping, or your own microstepping. If you want bipolar stepper or unipolar stepper. If you want to drive relays, solenoids, lamps, LED&#8217;s, the resistor at the hot end melting ABS plastic on your 3D printer hot end&#8230; OK, if I were speaking this I would already be losing my breath, so let me just say as you just guessed it: THERE IS A DEVICE!!!!</p>
<p>What you will not see on the DRV88xx devices is the ability to drive motors with more than 60V. But the great majority of our projects do not operate above this range anyway, so not to worry. The only other feature you will not find on any of the DRV88xx is a protection against over voltage. As it turns out, hardly any device offers this protection, due to the increased cost of adding the inherently large block. On the other hand, you will get protection against under voltage (AKA Under Voltage Lock Out or UVLO), Over Temperature Shutdown (AKA OTS) and Over Current Protection (AKA OCP). Notice none of these protection blocks would be present on your beloved L293. Darn it! I promised I wasn&#8217;t going to mention that old fossil&#8230;</p>
<p>The DRV88xx family is then basically a large collection of H Bridges with some form of control logic to make our lives easier. I will detail the family&#8217;s subdivisions and what devices you may encounter within.</p>
<p><strong>H Bridges:</strong></p>
<p>Basically every single DRV88xx device is an H Bridge of some sort. The exception would be the DRV8803/04/05/06 which are basically quad low side drivers. You would use any of these four devices to drive your unipolar stepper, or any load requiring low side actuation. Every other device will fall under the category of H Bridges. That is DRV8800/01/02/11/12/13/14/18/21/23/24/25/28/29/30/32/33/34/35/37/40/41/42/43/44, etc.</p>
<p><strong>Single H Bridges:</strong></p>
<p>This would be the DRV8800/01/28/29/30/32/37/40/42. What you get is the ability to drive either one brushed DC motor, or half of a bipolar stepper.</p>
<p><strong>Dual H Bridges:</strong></p>
<p>This would be the DRV8802/11/12/13/14/18/24/25/33/34/35/41/43/44. You can now drive either two brushed DC motors or a stepper motor, depending on the device. Some devices will only be able to drive steppers (e.g. DRV8811/18/24/25), whereas other devices can drive either topology.</p>
<p><strong>Quad H Bridges:</strong></p>
<p>This would be the DRV8821/23. With these puppies you can drive either two bipolar stepper motors or four DC motors.</p>
<p><strong>Internal Indexer:</strong></p>
<p>The number of H Bridges tell us how many motor windings we can drive. However, the device&#8217;s internal logic will tell us which motor topology we can drive. For example, the DRV8811 has two H Bridges but we cannot use this device to drive two DC motors as it is configured to drive stepper motors by using what is called an internal indexer. What this logic does is coordinate all the functions necessary to regulate current across both stepper motor windings applying a sine/cosine waveform which in turn results in microstepping commutation. Or you can do full step which still uses some sort of coordinate quadrature encoding which simply cannot be used to drive DC motors. The internal indexer, however, makes driving a bipolar stepper motor supremely easy! All you need is a square wave at the STEP input, and the stepper will move with a stepping rate directly proportional to the STEP frequency. A logic level at the DIR input will define direction of rotation. It simply cannot be any simpler. This is the topology most CNC machines out there will use, so it is a straight through connection without needing any kind of interpreter in between.</p>
<p>In this subsection of the family you will find: DRV8811/18/21/24/25/34</p>
<p><strong>PHASE/ENABLE H Bridges:</strong></p>
<p>My favorite control style is to apply a PWM control signal at the ENABLE input of an H Bridge and then use a logic level at the PHASE input to define direction of rotation. What then happens is that as I increase the PWM duty cycle, the motor moves faster and vice versa. H Bridges with PHASE/ENABLE interface allow for this control methodology and make it really easy to code PID loops or simple RC to PWM interpreters.</p>
<p>Another implementation you can follow is to add the PWM into the PHASE input and then leave the ENABLE set as to allow for current flow. In this case, you are now controlling both direction and speed with a single signal. This makes it even simpler to code PID loops as whether the error is positive or negative, all you need to do is add it to the PWM and VOILA! No need to commutate direction.</p>
<p>H Bridges with PHASE/ENABLE interface would be DRV8800/01/12/13/14/28/29/34/35/40</p>
<p><strong>INx Interface:</strong></p>
<p>Before we were packing lots of logic on our driver chips, we needed to skimp as much as possible on features. Hence adding an interface as simple to use as the PHASE/ENABLE was not customary. Instead, we had to deal with the IN1 and IN2 interface in which each H Bridge half is controlled independently. The reason why this interface style is not my favorite has nothing to do with the increased level of complexity as it is really not that hard to deal with it. What bugs me the most is that now you need two PWM channels and I am always running out of real PWM outputs. Some microcontrollers have recognized this problem and they offer the availability of a single PWM resource on two different GPIO outputs. This represents a saving in resources, although you still need to articulate which outputs holds the PWM output.</p>
<p>Where the INx interface is in the application of matched PWM&#8217;s. I am not knowledgeable enough to tell you why this PWM style is better than the other, but I have heard the response is just awesome. One of these days I will experiment with it and relay my findings on this blog, In the meantime, however, do notice some people will not even want to deal with the PHASE / ENABLE topology, which is why they are mostly interested in devices such as the DRV8833/34/35/37/41/42/43, etc.</p>
<p><strong>Serial Interface:</strong></p>
<p>Sometimes it makes sense to control a fairly large number of power stages. If this is the case, there is no doubt the number of microcontroller resources will be greatly halved. That is true unless we can reuse the same resource over and over with all of these power stages. The only way to accomplish this is by the usage of a serial interface such as SPI or I2C. In this case, multiple devices can be interconnected to the same serial communication lines, but only the one with the correct address responds. Some DRV88xx devices are designed around a serial interface implementation. For example, DRV8804/06 are quad low side drivers with an SPI like protocol. It is basically a shift register which can be indefinitely cascaded to add as many outputs as you deem necessary with a single SPI port.</p>
<p>DRV8823, on the other hand, is a quad H Bridge driver with an SPI port. In this case, you could have many devices hooked to the same SPI port, but you would need a Slave Select per device. Still, the CLK, MISO and MOSI signals can be shared.</p>
<p>DRV8830 is a single H Bridge with an I2C interface. In this case, you can hook up to 9 different devices to this I2C port.</p>
<p><strong>Current Regulation:</strong></p>
<p>When we control the current, we are basically controlling the torque. Some people confuse current with motor speed because regulating current is done by applying a PWM, which is the same as controlling the voltage. Now, controlling the voltage does control speed! To make matters more confusing, some drives actually take advantage of this concept with speed being controlled by regulating the current giving the impression that current and speed are one thing. No need to trouble our minds with this now, just rest assured that whether you want to control torque or speed, current can be regulated with a good number of the DRV88xx devices. It is easier for me, however, to mention which devices do not have the current regulation engine. These would be DRV8800/01/03/04/05/06/30/32/35/37/44.</p>
<p>Now, when it comes to current regulation, there are two variants. There is the variable current regulation and the fixed current regulation. The variable current regulation devices will have a VREF input which lets you set the actual current trip point (AKA ITRIP). These devices would be DRV8802/11/12/13/14/21/23/24/25/28/29/34/40/41/42/43.</p>
<p>The fixed current regulation devices contain a current regulation engine which you configure by selecting a SENSE resistor. Once you do this, however, the ITRIP cannot be changed in real time. The only device with this definition would be the DRV8833.</p>
<p><strong>Voltage regulation:</strong></p>
<p>There are two devices which offer the ability to regulate voltage instead of current. The reasoning behind this venue only makes sense if we think of battery based applications. Think of a toy using 4 D batteries, or 6V. When the batteries are fresh, the toy moves fast. However, we all know that batteries will not remain fresh forever, so we will eventually feel depression as we see our toy moving slower and slower. To avoid this problem, you could build the toy to operate at 3V. If we still use a 6V battery pack and regulate the voltage down to 3V, then the toy will operate at rated conditions much longer.</p>
<p>In real life you would obtain this behavior if you were looking at motor speed and applying a PWM signal to regulate the duty cycle accordingly. There are two DRV88xx devices which do this internally resembling a buck converter where the motor is the inductor. These two devices are the DRV8830 and DRV8832.</p>
<p><strong>Battery</strong><strong> Voltage:</strong></p>
<p>People would want H Bridges to operate from 0V to 600V but that is in essence impossible with today&#8217;s technology. Or at least with the cost effective one. When an H Bridge is designed, a voltage range must be selected as the internal components must be rated accordingly. There is no such thing as a 0V to 600V FET as far as I know. Hence, when dealing with battery voltage, we will need to design the H Bridge with battery voltage in mind.Batteryvoltage is anywhere in between 1.5V to 12V. This range is not that easy to obtain either, but DRV88xx offers good compromise and a fairly large number of H Bridges to work on any voltage in between this range.</p>
<p>For example, DRV8830/32 are only rated from 2.75V to 6.8V, whereas DRV8837 can go from 2V to 11V. If you need 12V, you will need to use any of the non battery voltage devices which start working at 8V or above. The battery voltage based devices are: DRV8830/32/33/34/35/37.</p>
<p><strong> Brushed DC Motor H Bridges:</strong></p>
<p>In essence, any of the aforementioned H Bridges can be used to drive DC motors. Do note, however, that one important aspect of driving a DC motor is the capability of braking or applying a short to the motor winding as to stop the shaft as soon as possible. Some DRV88xx devices may seem suitable to drive DC motors, but since they were optimized for stepper motor commutation, the brake feature could not make it in. These devices are the DRV8812/13/28/29. Luckily all of them (except DRV8828) have an identical counterpart which do holds the braking feature. For example, DRV8802 and DRV8812 are 99.9% identical. The only difference? DRV8802 has brake, whereas DRV8812 does not. The same applies to DRV8813/14 (14 has brake, whereas 13 does not) and DRV8829/40 (40 has brake whereas 29 does not).</p>
<p><strong>Stepper Motor H Bridges:</strong></p>
<p>This can be extracted from the previous discussion. DRV8812/13/28/29 are H Bridges optimized to drive stepper motors as they do not have the braking capability. Why is this important on a stepper? Because when you go to zero current and the H Bridge is enabled on brake, the shaft would cog (i.e. it would be harder to move as it is on brake). This may seem like a trivial detail, but some users would mind. Hence, the difference was implemented in order to give the option.</p>
<p><strong>Conclusion:</strong></p>
<p>Well, I think this blog posting is already long enough. I have tried to offer a decoding ring for which DRV88xx device to use under which particular situation. We could of course go on and on and on&#8230; But at least this list gives you a few pointers as to which device you should be looking into as you delve into your next motor application!</p>
<p>PS This table should give a little bit better vision as to all the mambo jambo I just typed.</p>
<table style="border-collapse: collapse; table-layout: fixed; width: 741pt;" width="988" border="0" cellspacing="0" cellpadding="0">
<colgroup>
<col style="mso-width-source: userset; mso-width-alt: 4096; width: 84pt;" width="112" />
<col style="mso-width-source: userset; mso-width-alt: 3510; width: 72pt;" span="2" width="96" />
<col style="mso-width-source: userset; mso-width-alt: 3766; width: 77pt;" width="103" />
<col style="mso-width-source: userset; mso-width-alt: 6034; width: 124pt;" width="165" />
<col style="mso-width-source: userset; mso-width-alt: 4205; width: 86pt;" width="115" />
<col style="width: 48pt;" width="64" />
<col style="mso-width-source: userset; mso-width-alt: 3986; width: 82pt;" width="109" />
<col style="width: 48pt;" span="2" width="64" /></colgroup>
<tbody>
<tr style="height: 12.75pt;">
<td class="xl24" style="height: 12.75pt; width: 84pt;" width="112" height="17">Driver<br />
DRV88xx</td>
<td class="xl24" style="border-left: none; width: 72pt;" width="96"># H Bridges</td>
<td class="xl24" style="border-left: none; width: 72pt;" width="96">Min Voltage (V)</td>
<td class="xl24" style="border-left: none; width: 77pt;" width="103">Max Voltage (V)</td>
<td class="xl24" style="border-left: none; width: 124pt;" width="165">Max Current Per<br />
Output(A)</td>
<td class="xl24" style="border-left: none; width: 86pt;" width="115">Current<br />
Regulation</td>
<td class="xl24" style="border-left: none; width: 48pt;" width="64">Indexer</td>
<td class="xl24" style="border-left: none; width: 82pt;" width="109">PHASE/ENABLE</td>
<td class="xl24" style="border-left: none; width: 48pt;" width="64">INx</td>
<td class="xl24" style="border-left: none; width: 48pt;" width="64">Serial</td>
</tr>
<tr style="height: 12.75pt;">
<td class="xl24" style="height: 12.75pt; border-top: none;" align="right" height="17">8800</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">1</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">8</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">40</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">2.8</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">YES</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
</tr>
<tr style="height: 12.75pt;">
<td class="xl24" style="height: 12.75pt; border-top: none;" align="right" height="17">8801</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">1</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">8</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">40</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">2.8</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">YES</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
</tr>
<tr style="height: 12.75pt;">
<td class="xl24" style="height: 12.75pt; border-top: none;" align="right" height="17">8802</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">2</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">8.2</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">45</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">1.6</td>
<td class="xl24" style="border-top: none; border-left: none;">YES</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">YES</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
</tr>
<tr style="height: 12.75pt;">
<td class="xl24" style="height: 12.75pt; border-top: none;" align="right" height="17">8803</td>
<td class="xl24" style="border-top: none; border-left: none;">Quad Low Side</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">8</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">60</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">1</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">YES</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
</tr>
<tr style="height: 12.75pt;">
<td class="xl24" style="height: 12.75pt; border-top: none;" align="right" height="17">8804</td>
<td class="xl24" style="border-top: none; border-left: none;">Quad Low Side</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">8</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">60</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">1</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">YES</td>
</tr>
<tr style="height: 12.75pt;">
<td class="xl24" style="height: 12.75pt; border-top: none;" align="right" height="17">8805</td>
<td class="xl24" style="border-top: none; border-left: none;">Quad Low Side</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">8</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">60</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">1</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">YES</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
</tr>
<tr style="height: 12.75pt;">
<td class="xl24" style="height: 12.75pt; border-top: none;" align="right" height="17">8806</td>
<td class="xl24" style="border-top: none; border-left: none;">Quad Low Side</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">8</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">60</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">1</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">YES</td>
</tr>
<tr style="height: 12.75pt;">
<td class="xl24" style="height: 12.75pt; border-top: none;" align="right" height="17">8811</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">2</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">8</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">40</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">2.5</td>
<td class="xl24" style="border-top: none; border-left: none;">YES</td>
<td class="xl24" style="border-top: none; border-left: none;">YES</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
</tr>
<tr style="height: 12.75pt;">
<td class="xl24" style="height: 12.75pt; border-top: none;" align="right" height="17">8812</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">2</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">8.2</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">45</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">1.6</td>
<td class="xl24" style="border-top: none; border-left: none;">YES</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">YES</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
</tr>
<tr style="height: 12.75pt;">
<td class="xl24" style="height: 12.75pt; border-top: none;" align="right" height="17">8813</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">2</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">8.2</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">45</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">2.5</td>
<td class="xl24" style="border-top: none; border-left: none;">YES</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">YES</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
</tr>
<tr style="height: 12.75pt;">
<td class="xl24" style="height: 12.75pt; border-top: none;" align="right" height="17">8814</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">2</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">8.2</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">45</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">2.5</td>
<td class="xl24" style="border-top: none; border-left: none;">YES</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">YES</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
</tr>
<tr style="height: 12.75pt;">
<td class="xl24" style="height: 12.75pt; border-top: none;" align="right" height="17">8818</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">2</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">8</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">36</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">2.5</td>
<td class="xl24" style="border-top: none; border-left: none;">YES</td>
<td class="xl24" style="border-top: none; border-left: none;">YES</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
</tr>
<tr style="height: 12.75pt;">
<td class="xl24" style="height: 12.75pt; border-top: none;" align="right" height="17">8821</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">2</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">8</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">32</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">1.6</td>
<td class="xl24" style="border-top: none; border-left: none;">YES</td>
<td class="xl24" style="border-top: none; border-left: none;">YES</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
</tr>
<tr style="height: 12.75pt;">
<td class="xl24" style="height: 12.75pt; border-top: none;" align="right" height="17">8823</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">2</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">8</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">32</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">1.6</td>
<td class="xl24" style="border-top: none; border-left: none;">YES</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">YES</td>
</tr>
<tr style="height: 12.75pt;">
<td class="xl24" style="height: 12.75pt; border-top: none;" align="right" height="17">8824</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">2</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">8.2</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">45</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">1.6</td>
<td class="xl24" style="border-top: none; border-left: none;">YES</td>
<td class="xl24" style="border-top: none; border-left: none;">YES</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
</tr>
<tr style="height: 12.75pt;">
<td class="xl24" style="height: 12.75pt; border-top: none;" align="right" height="17">8825</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">2</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">8.2</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">45</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">2.5</td>
<td class="xl24" style="border-top: none; border-left: none;">YES</td>
<td class="xl24" style="border-top: none; border-left: none;">YES</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
</tr>
<tr style="height: 12.75pt;">
<td class="xl24" style="height: 12.75pt; border-top: none;" align="right" height="17">8828</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">1</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">8.2</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">45</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">3</td>
<td class="xl24" style="border-top: none; border-left: none;">YES</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">YES</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
</tr>
<tr style="height: 12.75pt;">
<td class="xl24" style="height: 12.75pt; border-top: none;" align="right" height="17">8829</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">1</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">8.2</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">45</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">5</td>
<td class="xl24" style="border-top: none; border-left: none;">YES</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">YES</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
</tr>
<tr style="height: 12.75pt;">
<td class="xl24" style="height: 12.75pt; border-top: none;" align="right" height="17">8830</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">1</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">2.75</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">6</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">1</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">YES</td>
<td class="xl24" style="border-top: none; border-left: none;">YES</td>
</tr>
<tr style="height: 12.75pt;">
<td class="xl24" style="height: 12.75pt; border-top: none;" align="right" height="17">8832</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">1</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">2.75</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">6</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">1</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">YES</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
</tr>
<tr style="height: 12.75pt;">
<td class="xl24" style="height: 12.75pt; border-top: none;" align="right" height="17">8833</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">2</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">2.7</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">10.8</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">2</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">YES</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
</tr>
<tr style="height: 12.75pt;">
<td class="xl24" style="height: 12.75pt; border-top: none;" align="right" height="17">8834</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">2</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">2.5</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">10.8</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">1</td>
<td class="xl24" style="border-top: none; border-left: none;">YES</td>
<td class="xl24" style="border-top: none; border-left: none;">YES</td>
<td class="xl24" style="border-top: none; border-left: none;">YES</td>
<td class="xl24" style="border-top: none; border-left: none;">YES</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
</tr>
<tr style="height: 12.75pt;">
<td class="xl24" style="height: 12.75pt; border-top: none;" align="right" height="17">8835</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">2</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">2</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">10.8</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">1</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">YES</td>
<td class="xl24" style="border-top: none; border-left: none;">YES</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
</tr>
<tr style="height: 12.75pt;">
<td class="xl24" style="height: 12.75pt; border-top: none;" align="right" height="17">8837</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">1</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">2</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">10.8</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">1</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">YES</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
</tr>
<tr style="height: 12.75pt;">
<td class="xl24" style="height: 12.75pt; border-top: none;" align="right" height="17">8840</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">1</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">8.2</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">45</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">5</td>
<td class="xl24" style="border-top: none; border-left: none;">YES</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">YES</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
</tr>
<tr style="height: 12.75pt;">
<td class="xl24" style="height: 12.75pt; border-top: none;" align="right" height="17">8841</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">2</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">8.2</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">45</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">2.5</td>
<td class="xl24" style="border-top: none; border-left: none;">YES</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">YES</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
</tr>
<tr style="height: 12.75pt;">
<td class="xl24" style="height: 12.75pt; border-top: none;" align="right" height="17">8842</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">1</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">8.2</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">45</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">5</td>
<td class="xl24" style="border-top: none; border-left: none;">YES</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">YES</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
</tr>
<tr style="height: 12.75pt;">
<td class="xl24" style="height: 12.75pt; border-top: none;" align="right" height="17">8843</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">2</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">8.2</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">45</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">2.5</td>
<td class="xl24" style="border-top: none; border-left: none;">YES</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">YES</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
</tr>
<tr style="height: 12.75pt;">
<td class="xl24" style="height: 12.75pt; border-top: none;" align="right" height="17">8844</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">2</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">8</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">60</td>
<td class="xl24" style="border-top: none; border-left: none;" align="right">2.5</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
<td class="xl24" style="border-top: none; border-left: none;">YES</td>
<td class="xl24" style="border-top: none; border-left: none;">NO</td>
</tr>
<tr style="display: none;">
<td style="width: 84pt;" width="112"> </td>
<td style="width: 72pt;" width="96"> </td>
<td style="width: 72pt;" width="96"> </td>
<td style="width: 77pt;" width="103"> </td>
<td style="width: 124pt;" width="165"> </td>
<td style="width: 86pt;" width="115"> </td>
<td style="width: 48pt;" width="64"> </td>
<td style="width: 82pt;" width="109"> </td>
<td style="width: 48pt;" width="64"> </td>
<td style="width: 48pt;" width="64"> </td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://ebldc.com/?feed=rss2&#038;p=355</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
