Difference between revisions of "Eggbot Control"

From Evil Mad Scientist Wiki
Jump to: navigation, search
 
(7 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{EggBotDocs210}}
+
{{EggBotDocs281}}
  
  
[[The Eggbot Extensions|<<< The Eggbot Extensions]] || Eggbot Control || [[Preset hatch for fills|Preset hatch for fills >>>]]
+
[[The Eggbot Extensions|<<< The EggBot Extensions]] || EggBot Control || [[Hatch_fill|Hatch Fill >>>]]
  
----
 
  
== Introduction ==
+
EggBot Control is the main EggBot extension.  This is the tool to use when you are ready to "print" your drawing on your Eggbot.  It is your plotting "control panel" that you use to adjust settings and print your drawing to the EggBot. The EggBot Control extension has eight tabs, which are described in the sections that follow.
 +
 
 +
== Plot ==
  
The Eggbot Control extension is the main Eggbot extension. This is the tool to use when you are ready to "print" your drawing on your Eggbot. It is your plotting "control panel".  In addition to plotting, you will also use it to adjust settings for your Eggbot.  For example, to control how high to raise or lower the drawing pen.
+
{{sized-external-image|470px|https://cdn.evilmadscientist.com/wiki/eggbot/extensiontut/ext2_plot.jpg}}
  
The Eggbot Control extension presently has eight tabs, each of which is described in its own section belowWhen opening the Eggbot Control extension the first time after launching Inkscape, the selected tab will always be the "Plot" tabHowever, during a working session, Inkscape remembers which tab you last selected and will automatically select that tab upon re-opening the extension.
+
The function of this tab is straightforward: send your Inkscape drawing to your Eggbot.  Click the "Apply" button, and plotting will begin.  (Before plotting, please do make sure that your EggBot is connected to power and USB.)If you wish to close the extension, click the "Close" buttonTo select another tab, click on the desired tab.
  
Values which you specify in the various tabs and set with the "Apply" button will be saved by Inkscape along with your other Inkscape preference settings.  You do not need to set these values each and every time you run Inkscape.
+
Once you've adjusted the EggBot control values with the other tabs, you will mostly use this tab and the "Setup" tab in order to load and unload eggs and then draw your plots.
  
== Plot ==
+
If you wish to plot only a portion of your drawing, consider using the "Layers" tab.  To resume a paused plot, use the "Resume" tab.
  
http://evilmadscience.s3.amazonaws.com/wiki/eggbot/extensiontut/extensions-control-01.png
 
  
The function of this tab is straightforward: send your Inkscape drawing to your Eggbot.  Simply click the "Apply" button, and plotting will begin (assuming, of course, that your Eggbot is powered up and connected via USB to your computer).  If you wish to close the extension, click the "Close" button.  To select another tab, just click on the desired tab.
+
== Setup ==
  
Once you've adjusted the Eggbot control values with the other tabs, you will mostly use this tab and the "Setup" tab in order to load and unload eggs and then draw your plots.
+
{{sized-external-image|470px|https://cdn.evilmadscientist.com/wiki/eggbot/extensiontut/ext3_setup.jpg}}
  
If you wish to plot only a portion of your drawing, consider using the "Layers" tab.  To resume a paused plot, use the "Resume" tab.
 
  
== Setup ==
+
The "Setup" tab is used for two stages of setup.  First, for setting up the proper pen up and down stops for the objects you will be drawing on.  Then, as you set each object up in the EggBot frame and subsequently unload it, you will again use this tab to raise the pen and disengage the motors.  (Having the motors disengaged makes it easier to align the object for precise drawing.)
  
http://wiki.evilmadscience.com/s3/eggbot/extensiontut/extensions-control-02.png
+
To draw on an object, the EggBot lowers the pen to the "pen down" height and then rotates the egg or moves the pen or a combination of the two. When a section of the drawing is finished and the pen needs to be repositioned without actually drawing, the pen is raised into the "pen up" height. The act of raising the pen is a "pen up" operation; the act of lowering the pen is a "pen down" operation.  The physical raising and lowering of the pen is accomplished with the pen lift motor -- a servo -- whose arm (a "servo horn") lifts or lowers the distal pen arm.  Assuming that the servo arm is attached such that it is roughly horizontal in the middle of its range, then a pen position of 0% corresponds to vertical down, 50% to horizontal, and 100% to vertical up.  EggBot Control sets the pen up and pen down positions as a percentage of this range of travel.  
  
The "Setup" tab is used for two stages of setup.  First, for setting up the proper pen up and down stops for the objects you will be drawing on.  Then, as you set each object up in the Eggbot frame and subsequently unload it, you will again want to use this tab to raise the pen and disengage the motors.  (Having the motors disengaged makes it easier to align the object for precise drawing.)  Often, you can leave the pen stops unchanged until you switch to a new object whose size or shape is significantly different from what you were drawing on previously
+
The pen-up and pen-down positions, as percentages of the servo's full range of travel are set in the '''Pen up position''' and '''Pen down position''' fields.  Changes will not take effect until you click the "Apply" button. Good starting value are 60% (up) and 40% (down). You can adjust them as needed, but keep the pen-up value higher than the pen-down value.
  
To draw on an object, the Eggbot places the pen in a down position (down stop) and then rotates the egg or moves the pen or a combination of the two. When a section of the drawing is finished and the pen needs to be repositioned without actually drawing, the pen is raised into an up position (up stop).  The act of raising the pen is a "pen up" operation; the act of lowering the pen is a "pen down" operation.  The physical raising and lowering of the pen is accomplished with the pen lift motor -- a servo -- whose arm (horn) lifts or lowers the distal pen arm.  This servo arm has about 180 degrees of travel with 0 degrees corresponding to pointing down vertically and 180 degrees pointing up vertically.  The Eggbot Control sets the pen up and pen down positions as a percentage of this range of travel.  So, assuming that the servo arm is attached such that it is horizontal when the servo is driven to 90 degrees, then a pen position of 0% corresponds to vertical down (0 degrees), 50% to horizontal (90 degrees),  and 100% to vertical up (180 degrees).  Odds are, however, that when you attached your servo arm (horn) to the servo motor, it did not end up that such that it is dead on horizontal when the servo is driven to 90 degrees.  In that case, the relationship between percentages will be offset by some constant angle.  For instance, 50% may correspond to 10 degrees below horizontal. Thus, you may find yourself  using percentages that don't fit the description of 50% equals horizontal.  That's fine.  Or, if you want, you can reposition the servo's arm to give better agreement with 50% being horizontal.
+
The '''Action on Apply''' selection lets you select what will happen when you click the '''Apply''' button. It can either toggle the pen up and down, or raise the pen and disengage the main motors.
  
<ol start="1">
+
After you have set the desired values, click the "Apply" button to perform that action.
<li>The pen's up position as a percentage of the servo's full range of travel (about 180 degrees), is set in the "Pen up position" field.  You can manually enter the desired value in the input box or click on the up or down controls to increment or decrement the value.  If you change this value, your change will not take effect until you click the "Apply" button. You will want to set the pen up position to be a value larger than the pen down position.</li>
 
<li>The pen's down position as a percentage of the servo's full range of travel (about 180 degrees), is set in the "Pen down position" field.  You can manually enter the desired value in the input box or click on the up or down controls to increment or decrement the value.  If you change this value, your change will not take effect until you click the "Apply" button. You will want to set the pen down position to be a value smaller than the pen up position.</li>
 
<li>Use this item to select whether to toggle the pen's position or raise the pen &amp; disengage the motors when the "Apply" button is clicked.</li>
 
</ol>
 
  
After you have set the desired values, click the "Apply" button.  To cancel your changes, click the "Close" button.
 
  
 
== Timing ==
 
== Timing ==
  
http://evilmadscience.s3.amazonaws.com/wiki/eggbot/extensiontut/extensions-control-03.png
+
{{sized-external-image|470px|https://cdn.evilmadscientist.com/wiki/eggbot/extensiontut/ext4b_timing.jpg}}
 +
 
 +
The "Timing" tab controls how fast the Eggbot's motors and pen arm servo operate. The speeds are adjustable, and there are always tradeoffs between higher speed and higher quality. At too high of a speed, your plots will lose precision. Lower speeds mean that your plots will take longer to complete.
 +
 
 +
 
 +
==== Speed when pen is down ====
 +
 
 +
This setting controls the maximum number of motor steps per second which may be taken by either or both stepper motors.  (The distance around your egg -- or other object in the EggBot -- is exactly 3,200 steps around the equator, and about 800-1000 steps vertically.) The default value of 300 steps per second is a fairly good choice.  If you want to get a quick sketch out as a "draft", you can use a faster value, up to perhaps 1000 steps/s. 
 +
 
 +
To get a feel for the effect of different speeds, you may wish to comparing a plot at 150-200 steps per second with one at 400-500. The speed that works well for you will depend (amongst other things) on the model of EggBot you are using -- the Ostrich EggBot needs to be operated more slowly -- and on what kind of a tool you are using. Permanent marker pens can draw quite quickly, but using a tool like the diamond engraver requires a very slow speed for good results.
 +
 
 +
 
 +
==== Speed when pen is up ====
  
The "Timing" tab controls how fast the Eggbot's motors and pen arm servo operateGetting these speeds set to reasonable values will enhance the quality of your plots.  Here reasonable means that they are not so fast that slippage or pen skipping occurs, but not so slow that plotting takes too long to be fun to watchAnd, you do not want to drop the pen too fast; otherwise, it may damage the pen tip, make the start of a line slightly wider, or cause the pen to bounce and miss part of the drawing (see item 9).
+
This setting controls the maximum speed at which either or both stepper motors can operate while moving the raised pen between locations over the drawing surfaceYou can use much larger values than the pen down speed without compromising the quality of your plots.  However, there is an upper limit to how fast you can go: At too fast of a speed, the pen or egg could slip position, ruining your plot.
 +
 
 +
 
 +
==== Pen raising speed ====
 +
 
 +
To control how fast the pen is raised, change the "Pen raising speed" value.  This value controls how many percentage points the pen is raised per second.
 +
 
 +
 
 +
==== Delay after raising pen ====
 +
 
 +
After a pen-raise command is issued, the EggBot will pause for this duration of time before initiating another movement such as rotating the egg.  The time to wait is specified in milliseconds (ms).  This value should be set high enough to ensure that the pen is no longer in contact with the surface when the EggBot begins moving again.
 +
 
 +
<p>''Technical note:'' The delay starts at the <i>beginning</i> of the pen's upward movement, not at the <i>ending</i>, so you may wish to compute the time that it takes the pen to move upFor example, let's say we have a pen up position U of 68, a pen down position D of 62, and a pen raising speed R of 50. We see we have (U - D) / R = (68-62)/50 = 6/50 = 0.12 seconds = 120 ms before the pen gets up.  If you wanted (for example) 200 ms of additional delay after raising, set this value to 320.</p>
 +
 
 +
 
 +
==== Pen lowering speed ====
 +
 
 +
This parameter controls how fast the pen is lowered between the pen up and pen down positions, specified in percentage points per second. Using a slower speed means that the pen will contact the surface more gently.
 +
 
 +
 
 +
==== Delay after lowering pen ====
 +
 
 +
After a pen-lowering command is issued, the EggBot will pause for this duration of time before initiating another movement such as rotating the egg.  The time to wait is specified in milliseconds (ms).  This value should be set high enough to ensure that the pen is fully contact with the surface when the EggBot begins drawing.
 +
 
 +
 
 +
<p> Technical note: As with raising the pen, the delay starts at the <i>beginning</i>, not at the <i>ending</i>, of the pen's downward movement.  You may wish to compute the time that it takes the pen to move down.  For example, let's say we have a pen up position U of 68, a pen down position D of 62, a pen lowering speed r of 20, and want a (very long) 250 ms delay after the pen gets all the way down.  Referring to item 8, we see we have (U - D) / r = (68-62)/20 = 6/20 = 0.3 seconds = 300 ms before the pen gets down.  Adding that 250 ms pause we want for settling, means we should actually set this value to 550. </p>
  
As regards plot quality, pay particular attention to items 4, 8, and 9 below.  Item 5 is also significant but not as important as 4, 8, and 9.
 
  
<ol start="4">
 
<li>The "Speed when pen is down" setting controls the maximum number of motor steps per second which may be taken by either or both stepper motors.  (Recall that the egg's circumfrence has 3,200 steps and the pole-to-pole distance is 1,000 steps.) The default value of 300 steps per second is a fairly good choice.  If you want to get a quick sketch out as a "draft", go ahead and use a faster value.  Also, to get a feel for the effect of different speeds, try comparing a plot at 250 or 200 steps per second with one at 300 or 400.  Peck plotting and engraving require much slower speeds than those used for drawing with an ink pen.</li>
 
<li>The "Speed when pen is up" value controls the maximum speed at which either or both stepper motors can operate while moving the raised pen between locations over the drawing surface.  You can use much larger values than the pen down speed without compromising the quality of your plots.  However, allowing the speed to be too high may introduce slippage as the egg is rotated.</li>
 
<li>To control how fast the pen is raised, change the "Pen raising speed" value.  This value controls how many percentage points the pen is raised per second. If the pen's down position is D percent and its up position is U percent, then the time it takes to raise it will be (U&nbsp;-&nbsp;D)&nbsp;/&nbsp;R where R is the pen up rate as percentage units per second.  A reasonable target is to have the pen raised in well under half a second. (And yes, it would make more sense for this field to be "how many tenths of seconds to take to raise the pen" and let the computer do the math for you.)</li>
 
<li>As the pen is raised, the Eggbot will pause before initiating another operation such as rotating the egg.  The time to wait is specified in units of milliseconds (ms).  There are one thousand milliseconds in a second (e.g., 200&nbsp;ms is 0.2&nbsp;s).
 
<p> Technical note: Please note that the delay starts at the <i>beginning</i> of the pen's upward movement, not at the <i>ending</i>, so you may wish to compute the time that it takes the pen to move up.  For example, let's say we have a pen up position U of 68, a pen down position D of 62, a pen raising speed R of 50, and want a 200 ms delay after the pen gets all the way up.  Referring to item 6, we see we have (U - D) / R = (68-62)/50 = 6/50 = 0.12 seconds = 120 ms before the pen gets up.  Adding the 200 ms pause we want, means we must actually set this value to 320.</li>
 
<li>With the "Pen lowering speed" timing, the rate at which the pen is lowered towards your egg is controlled.  It is important to not drop the pen (i.e., lower it too fast).  Also, keep in mind that the Eggbot does not sense when the pen has made contact with your drawing surface: the Eggbot simply lowers the pen until the up/down servo has reached the proper setting (item 2 of the "Setup" tab).  Like the "Pen raising speed", the "Pen lowering speed" is expressed as the number of percentage points to move the servo arm per second.  If the pen's down position is D percent and its up position is U percent, then the time it takes to lower the pen will be (U&nbsp;-&nbsp;D)&nbsp;/&nbsp;r where r is the pen down rate in percentage units per second.  Lowering the pen in half a second or a bit longer is reasonable.</li>
 
<li>After the pen has been lowered, it is important to wait a fraction of a second before starting to draw again.  This gives the pen arm a chance to settle in and recover from any minor bouncing.  If you start to draw too soon after lowering the pen, there can be some skipping of the pen tip.  To control the length of this pause, the "Delay after lowering pen" value is used.  This value has units of milliseconds (ms) where 1 second is 1000 milliseconds.  This delay should probably be no less than a quarter second (250&nbsp;ms) and values as large as half a second (500&nbsp;ms) are not unreasonable.
 
<br>You might think that you would just put in 250 or 500 ms for a value.  This is not the case.  The delay starts at the <i>beginning</i> of the pen's downward movement, not at the <i>ending</i>, so we must figure out how long it takes the pen to move down.  For example, let's say we have a pen up position U of 68, a pen down position D of 62, a pen lowering speed r of 20, and want a 250 ms delay after the pen gets all the way down.  Referring to item 8, we see we have (U - D) / r = (68-62)/20 = 6/20 = 0.3 seconds = 300 ms before the pen gets down.  Adding the 250 ms pause we want for settling, means we must actually set this value to 550.  (And yes, it would make more sense for this field to be "Delay after <i>finish</i> lowering pen" instead the way it actually is, which is "Delay after <i>start</i> lowering pen" and let the computer do the math for you.)</li>
 
</ol>
 
  
 
== Options ==
 
== Options ==
  
http://evilmadscience.s3.amazonaws.com/wiki/eggbot/extensiontut/extensions-control-04.png
+
{{sized-external-image|470px|https://cdn.evilmadscientist.com/wiki/eggbot/extensiontut/ext5_options.jpg}}
 +
 
 +
A number of plotting related options are set with the "Options" tab.  Most of these options need only be set once and then forgotten.  They do not vary as you change your drawing media.
 +
 
 +
 
 +
==== Reverse motion of Motor 1 (pen) ====
 +
 
 +
This option defaults to True (checked).
 +
 
 +
The “historical” EggBot coordinate system is such that when you print a drawing, the top of the drawing is oriented towards the headstock, and the bottom edge is towards the tailstock. Over time, we have generally found it best to reverse that, by checking both “Reverse motion of Motor 1 (pen)” and “Reverse motion of Motor 2 (egg)”. This way which we recommend, it is more natural to put the “fat” end of an egg (or the base of a glass ornament) towards the larger egg coupler, where it tends to perform better.  You can, however, uncheck both checkboxes to point the top of your drawing towards the headstock.
 +
 
 +
 
 +
==== Reverse motion of Motor 2 (egg) ====
 +
 
 +
This option defaults to True (checked), for the reasons described above.
 +
 
 +
 
 +
==== Egg (x) axis wraps around ====
 +
 
 +
This option defaults to True (checked). When checked,  the EggBot will "wrap" long lines by just continuing to rotate the egg in the appropriate direction.  This is especially helpful for drawing patterns on your eggs which look similar to tessellations. It will also allow a shortcut to return straight home in less than a turn, even when rotated by many turns.
 +
 
 +
 
 +
==== Return home when done ====
 +
 
 +
This option defaults to True (checked).  After finishing a plot, the EggBot will position the pen back to the plot's starting position.
 +
 
 +
 
 +
==== Enable engraver, if attached ====
 +
 
 +
This option defaults to True (checked). If you have purchased or built an [http://shop.evilmadscientist.com/productsmenu/partsmenu/297 engraving attachment] for use with your Eggbot, then use this option to enable or disable the engraver while plotting. Note that when this option is selected, the engraver will be turned on and left running throughout the plot and only turned off when the plot is finished. The engraver is not turned off each time the pen arm is lifted. 
 +
 
 +
 
 +
==== Curve smoothing (lower for more) ====
 +
 
 +
Fundamentally, the EggBot only draws straight line segments.  When presented with a circle, arc, or cubic spline to draw, the EggBot approximates the smooth curve with many short line segments that follow the path of the curve.  This approximation can be made to appear smoother by drawing even more, shorter line segments.  Or, it can be made rougher be drawing fewer, longer line segments.  The degree of smoothness is controlled with this option.  The smaller the value specified, the smoother the approximation will appear and the longer it will take to draw. The default value of 0.2 is generally an acceptable value.
 +
 
 +
 
 +
== Manual commands==
 +
 
 +
{{sized-external-image|470px|https://cdn.evilmadscientist.com/wiki/eggbot/extensiontut/ext6_manual.jpg}}
 +
 
 +
The "Manual" tab is so named as it allows you to manually send select, basic commands to the Eggbot.  With the exception of the "Check EBB Version" command, these commands are intended to aid in fine tuning your Eggbot's setup for an egg or other object you are about to draw on. 
 +
 
 +
In general, you will want to select the operation to perform with the "Command" drop-down list, and then click the "Apply" button.  For the two motor walking commands, you can also specify the number of motor steps to turn the motor forward (+) or backwards (-).
 +
 
 +
 
 +
==== Raise the Pen ====
 +
 
 +
Lift the pen to the pen up position.  ''In most cases, it is easier to use the Setup tab for this action.''
  
A number of plotting related options are set with the "Options" tab.  Most of these options need only be set once and then forgotten.  They do not vary as you change your drawing media.  Remember that any changes you make will not take effect until you click the "Apply" button.
 
  
One important option for owners of the 2009 clear acrylic "Classic" Eggbot is that described in item 11 below.  Later versions of the EBB firmware reversed the direction of the egg motor to support the relocation of the pen arm in the 2010 Eggbot kits.  Consequently, Eggbot "Classic" owners should check the "Reverse motion of Motor 2 (egg)" check box.
+
==== Lower the Pen ====
  
<ol start="10">
+
Lower the pen to the pen-down position.  ''In most cases, it is easier to use the Setup tab for this action.''
<li>Normally, the top of your Inkscape drawing will be drawn towards the headstock end of your Eggbot. By checking this box, the motion of the pen arm is reversed, causing the top of your Inkscape drawing to be drawn towards the tailstock end of your Eggbot.</li>
 
<li>Normally, a line moving horizontally from left to right in your Inkscape drawing will be plotted on your egg by rotating the egg counterclockwise when viewed from the tailstock end of the Eggbot.  This action causes the line to progress from left to right across your eggTo reverse this action, check the "Reverse motion of Motor 2" check box.<br/>
 
''Owners of "Classic" Eggbots -- clear acrylic Eggbot "beta" units from 2009 -- should check this box.''</li>
 
<li>Had difficulty drawing within the lines when you were a child?  Still do?  Not a problem!  By checking this box, the Eggbot will "wrap" long lines by just continuing to rotate the egg in the appropriate direction.  This is especially helpful for drawing patterns on your eggs which look similar to tessellations.  The "Eggmazing" extension assumes that you have checked this box.</li>
 
<li>When checked, the "Start with pen centered" option tells the Eggbot that when you start your plot, the pen is resting at the center of your Inkscape drawing page. For example, if your Inkscape drawing page has a width of 3200 pixels and a height of 800 pixels, then the pen is assumed to be resting at the (x,&nbsp;y) point (1600,&nbsp;400).  The extension will automatically compute the center based upon your drawing's page dimensions.  Note that this is a change in behavior from v2.0 of the Eggbot Control extension [1].</li>
 
<li>After finishing a plot, the Eggbot will position the pen back to the plot's starting position if the "Return to home when done" checkbox is checked.</li>
 
<li>If you have purchased or built an [http://shop.evilmadscientist.com/productsmenu/partsmenu/297 engraving attachment] for use with your Eggbot, then use this option to enable the engraver while plotting.  Note that when this option is selected, the engraver will be turned on and left running throughout the plot and only turned off when the plot is finished.  The engraver is not turned off each time the pen arm is lifted.  Use of this option requires version 2.2.0 or later of the Eggbot Control extension.  [[Which version do I have|Click here]] if you need help determining which version you have installed.</li>
 
<li>Fundamentally, the Eggbot only draws straight line segments.  When presented with a circle, arc, or cubic spline to draw, the Eggbot approximates the smooth curve with many short line segments that follow the path of the curve.  This approximation can be made to appear smoother by drawing even more, shorter line segments.  Or, it can be made rougher be drawing fewer, longer line segments.  The degree of smoothness is controlled with this option.  The smaller the value specified, the smoother the approximation will appear and the longer it will take to draw. The default value of 0.2 is generally an acceptable value.</li>
 
</ol>
 
  
== Manual ==
 
  
http://evilmadscience.s3.amazonaws.com/wiki/eggbot/extensiontut/extensions-control-05.png
+
==== Walk Motor 2 (egg) ====
  
The "Manual" tab is so named as it allows you to manually send select, basic commands to the Eggbot.  With the exception of the "Check EBB Version" command, these commands are intended to aid in fine tuning your Eggbot's setup for an egg or other object you are about to draw on.  To some extent this tuning function of this tab has been supplanted by the "Setup" tab, but not entirely.
+
Rotate the "Egg" motor (which turns the object you are plotting) forward or backwards the number of steps specified in the "Walk distance" field.  There are 3200 steps around in a full revolution.
  
In general, you will want to select the operation to perform with the "Command" drop-down list, and then click the "Apply" buttonFor the two motor walking commands, you can also specify the number of steps to turn the motor forward (+) or backwards (-).
+
Positive and negative distances are allowed.  A negative value gives the opposite direction of rotation from that of a positive value.  If the pen is down when this operation is performed, then a line line will be drawn.  You may wish to use this command when attempting to precisely register the pen tip's position on the drawing surface. Note that the motor will automatically be engaged if necessary.
 +
 
 +
 
 +
==== Walk Motor 1 (pen) ====
 +
 
 +
Move the pen arm longitudinally forward or backwards the number of steps specified in the "Walk distance" field. The angle moved will be steps * 360 degrees / 3200, since a full revolution of the pen arm (which is not possible in practice) would require 3200 steps of movement.
 +
 
 +
Positive and negative distances are allowed.  A negative value gives the opposite direction of motion from that of a positive valueIf the pen is down when this operation is performed, then a segment of a line of longitude will be drawn.  You may wish to use this command when attempting to precisely register the pen tip's position on the drawing surface. The motor will automatically be engaged if necessary.
 +
 
 +
 
 +
==== Enable Motors ====
 +
 
 +
Engage (power on) the Eggbot's "pen" and "egg" motors.
 +
 
 +
 
 +
==== Disable Motors ====
 +
 
 +
Disable (power off) the Eggbot's "pen" and "egg" motors.  ''In most cases, it is easier to use the Setup tab for this action.''
 +
 
 +
 
 +
 
 +
==== Engraver On ====
 +
 
 +
Turn the engraver motor on.  Requires an [http://shop.evilmadscientist.com/productsmenu/partsmenu/297 engraving attachment] to be useful.
 +
 
 +
 
 +
==== Engraver Off ====
 +
 
 +
Turn the engraver motor off.  Requires an [http://shop.evilmadscientist.com/productsmenu/partsmenu/297 engraving attachment] to be useful.
 +
 
 +
 
 +
==== Check EBB version ====
 +
 
 +
Query the EggBot its firmware version. Information about updating its "EBB" firmware can be [[Updating_EBB_firmware|found here]].
 +
 
 +
 
 +
==== Strip plotter data from file ====
 +
 
 +
Certain information about your plot -- in particular progress through the file for save and resume processes -- is saved within your SVG document. This option will strip that information from your file, should there be a reason to do so.
  
<ol start="17">
 
<li>Use the pull-down selection menu to the right to choose the command to send when the "Apply" button is clicked.  The possible commands are:
 
<table border="0">
 
<tr><td>Raise&nbsp;the&nbsp;Pen</td>
 
<td>Lift the pen to the pen up position.  This is useful when loading or unloading an egg.</td></tr>
 
<tr><td>Lower&nbsp;the&nbsp;Pen</td>
 
<td>Lower the pen to the pen down position.</td></tr>
 
<tr><td>Walk&nbsp;Motor&nbsp;2&nbsp;(egg)</td>
 
<td>Rotate the egg forward or backwards the number of steps specified in the "Walk distance" field.  Positive and negative distances are allowed.  A negative value gives the opposite direction of rotation from that of a positive value.  If the pen is down when this operation is performed, then a circumferential line will be drawn.  You may wish to use this command when attempting to precisely register the pen tip's position on the drawing surface. Note that the motor will automatically be engaged if necessary.</td></tr>
 
<tr><td>Walk&nbsp;Motor&nbsp;1&nbsp;(pen)</td>
 
<td>Move the pen arm longitudinally forward or backwards the number of steps specified in the "Walk distance" field.  Positive and negative distances are allowed.  A negative value gives the opposite direction of motion from that of a positive value.  If the pen is down when this operation is performed, then a segment of a line of longitude will be drawn.  You may wish to use this command when attempting to precisely register the pen tip's position on the drawing surface. The motor will automatically be engaged if necessary.</td></tr>
 
<tr><td>Enable&nbsp;Motors</td><td>Engage the Eggbot's motors.</td></tr>
 
<tr><td>Disable&nbsp;Motors</td><td>Disengage the Eggbot's motors.  This is useful when loading or unloading an egg.</td></tr>
 
<tr><td>Engraver&nbsp;On</td><td>Turn the engraver motor on.  Requires an [http://shop.evilmadscientist.com/productsmenu/partsmenu/297 engraving attachment] as well as version 2.2.0 or later of the Eggbot Control extension.</td></tr>
 
<tr><td>Engraver&nbsp;Off</td><td>Turn the engraver motor off.  Requires an [http://shop.evilmadscientist.com/productsmenu/partsmenu/297 engraving attachment] as well as  version 2.2.0 or later of the Eggbot Control extension.</td></tr>
 
<tr><td>Check&nbsp;EBB&nbsp;Version</td><td>Inquire of the Eggbot its firmware version.  Use this command before and after upgrading the Eggbot's firmware.</td></tr>
 
</table>
 
</li>
 
<li>When walking either motor, you can specify the number of steps to rotate the motor by.  Use a positive integer value to rotate the motor forward, while a negative integer value will rotate it backwards.  Remember that for the egg motor, motor 2, there are 3,200 steps in a full rotation.  For the pen motor, motor 1, there are also 3,200 steps in a full rotation-- or rather, ''there would be'' if it could travel in a full circle.  The travel of the pen arm is, however, constrained by the Eggbot chassis and the typical travel range is 800-1000 steps between the two polar regions.  The actual range depends on the exact configuration of the Eggbot and what it's plotting on.  Object size, pen type, and chassis configuration will all affect pen-arm travel.  </li>
 
</ol>
 
  
 
== Resume ==
 
== Resume ==
  
http://evilmadscience.s3.amazonaws.com/wiki/eggbot/extensiontut/extensions-control-06.png
+
{{sized-external-image|470px|https://cdn.evilmadscientist.com/wiki/eggbot/extensiontut/ext7_resume.jpg}}
 +
 
  
The Eggbot has a useful feature which allows you to pause and resume your plots.  By pressing the PRG button on the Eggbot's EBB (EiBotBoard), plotting is paused.  You can then make adjustments including changing drawing speeds and pen up or down positions.  After making any adjustments, you can resume the plot by clicking the "Apply" button on this tab.  Note that you can even exit Inkscape.  The Eggbot Control extension will automatically store plotting information in your drawing file.  So, if you save the drawing file before exiting Inkscape, you can later resume your plot by relaunching Inkscape and re-opening your drawing.
+
The EggBot has a useful feature which allows you to pause and resume your plots.  By pressing the PRG button on the Eggbot's EBB (EiBotBoard) control board, plotting is paused.  You can then make adjustments including changing drawing speeds and pen up or down positions.  After making any adjustments, you can resume the plot by clicking the "Apply" button on this tab.  Note that you can even exit Inkscape.  The EggBot Control extension will automatically store plotting information in your drawing file.  So, if you save the drawing file before exiting Inkscape, you can later resume your plot by relaunching Inkscape and re-opening your drawing.
 +
 
 +
 
 +
Check the "Cancel and return home only" box if you wish to cancel the plot after pressing the PRG button on the EBB board, rather resuming.
  
<ol start="19">
 
<li>Check the "Cancel and return home only" box if you wish to cancel the plot after pressing the PRG button on the EBB board.</li>
 
</ol>
 
  
 
== Layers ==
 
== Layers ==
  
http://evilmadscience.s3.amazonaws.com/wiki/eggbot/extensiontut/extensions-control-07.png
+
{{sized-external-image|470px|https://cdn.evilmadscientist.com/wiki/eggbot/extensiontut/ext8_layers.jpg}}
  
By default, the Eggbot Control extension will plot your entire drawing.  However, if you divide your drawing into separate Inkscape layers, you can then plot each layer or groups of layers in distinct plotting runs.  This makes it easy to plot drawings with multiple colors by separating each color into its own layer.  Load the pen for the first color, then plot that layer.  When that layer is finished, change the pen to the next color and plot that layer.  The only requirement to using this feature is that you begin each layer name with an integer in the range 0 through 100.  For example, if you have three layers with the names,
+
By default, the EggBot Control extension will plot your entire drawing.  However, if you divide your drawing into separate Inkscape layers, you can then plot each layer or groups of layers in distinct plotting runs.  This makes it easy to plot drawings with multiple colors by separating each color into its own layer.  Load the pen for the first color, then plot that layer.  When that layer is finished, change the pen to the next color and plot that layer.  The only requirement to using this feature is that you begin each layer name with an integer in the range 0 through 100.  For example, if you have three layers with the names,
  
 
:1 - Red swirls
 
:1 - Red swirls
Line 127: Line 203:
 
:2 - Blue circles
 
:2 - Blue circles
  
Then you can plot the two red layers with a red pen by specifying "1" in the "Plot only layers beginning with" field.  You can then change the pen to blue and plot the blue layer by specifying "2" in that field.  Click the "Apply" button each time to begin plotting of the selected layers.
+
Then you can plot the two red layers with a red pen by specifying "1" in the "Plot only layers beginning with" field.  You can then change the pen to blue and plot the blue layer by specifying "2" in that field.   
  
<ol start="20">
 
<li>Plot only the layers whose name begins with the indicated number.  Any integer in the range 1 through 100, inclusive, is allowed.</li>
 
</ol>
 
  
== * ==
+
The only control within the Layers tab is the numeric entry box, '''Plot only the layers beginning with'''  You can choose any integer in the range 1 through 100, inclusive. Click the "Apply" button each time to begin plotting of the selected layers.
  
http://evilmadscience.s3.amazonaws.com/wiki/eggbot/extensiontut/extensions-control-08.png
 
  
This final tab is the Eggbot Control's "About" page and shows the version of the extension which you currently have installed. Also, it lists any known requirements, limitations or problems with the extension.
+
== * ==
  
== Notes ==
+
{{sized-external-image|470px|https://cdn.evilmadscientist.com/wiki/eggbot/extensiontut/ext8_version.jpg}}
  
1. When using the "Start with pen centered" option, v2.0 and earlier of the Eggbot Control extension assumed that at the start of a plot the pen was resting along the line y=500. This was a historical assumption based upon a drawing page with dimensions 3200 by 1000 pixels.
+
This final tab is the EggBot Control's "About" page and shows the version of the extension which you currently have installed. Also, it lists any known requirements, limitations or problems with the extension.
  
 
----
 
----
  
[[The Eggbot Extensions|<<< The Eggbot Extensions]] || Eggbot Control || [[Preset hatch for fills|Preset hatch for fills >>>]]
+
[[The Eggbot Extensions|<<< The EggBot Extensions]] || EggBot Control || [[Hatch_fill |Hatch Fill >>>]]

Latest revision as of 13:39, 21 June 2019

eggbottiny.jpg This wiki page is part of the documentation for The Original Egg-Bot. Click here to return to the Egg-Bot overview.
The specifics of this portion assume that you have version 2.8.1 or higher of the Eggbot extensions installed.
Click here if you need help determining which version you have installed.


<<< The EggBot Extensions || EggBot Control || Hatch Fill >>>


EggBot Control is the main EggBot extension. This is the tool to use when you are ready to "print" your drawing on your Eggbot. It is your plotting "control panel" that you use to adjust settings and print your drawing to the EggBot. The EggBot Control extension has eight tabs, which are described in the sections that follow.

Plot[edit]

ext2_plot.jpg

The function of this tab is straightforward: send your Inkscape drawing to your Eggbot. Click the "Apply" button, and plotting will begin. (Before plotting, please do make sure that your EggBot is connected to power and USB.). If you wish to close the extension, click the "Close" button. To select another tab, click on the desired tab.

Once you've adjusted the EggBot control values with the other tabs, you will mostly use this tab and the "Setup" tab in order to load and unload eggs and then draw your plots.

If you wish to plot only a portion of your drawing, consider using the "Layers" tab. To resume a paused plot, use the "Resume" tab.


Setup[edit]

ext3_setup.jpg


The "Setup" tab is used for two stages of setup. First, for setting up the proper pen up and down stops for the objects you will be drawing on. Then, as you set each object up in the EggBot frame and subsequently unload it, you will again use this tab to raise the pen and disengage the motors. (Having the motors disengaged makes it easier to align the object for precise drawing.)

To draw on an object, the EggBot lowers the pen to the "pen down" height and then rotates the egg or moves the pen or a combination of the two. When a section of the drawing is finished and the pen needs to be repositioned without actually drawing, the pen is raised into the "pen up" height. The act of raising the pen is a "pen up" operation; the act of lowering the pen is a "pen down" operation. The physical raising and lowering of the pen is accomplished with the pen lift motor -- a servo -- whose arm (a "servo horn") lifts or lowers the distal pen arm. Assuming that the servo arm is attached such that it is roughly horizontal in the middle of its range, then a pen position of 0% corresponds to vertical down, 50% to horizontal, and 100% to vertical up. EggBot Control sets the pen up and pen down positions as a percentage of this range of travel.

The pen-up and pen-down positions, as percentages of the servo's full range of travel are set in the Pen up position and Pen down position fields. Changes will not take effect until you click the "Apply" button. Good starting value are 60% (up) and 40% (down). You can adjust them as needed, but keep the pen-up value higher than the pen-down value.

The Action on Apply selection lets you select what will happen when you click the Apply button. It can either toggle the pen up and down, or raise the pen and disengage the main motors.

After you have set the desired values, click the "Apply" button to perform that action.


Timing[edit]

ext4b_timing.jpg

The "Timing" tab controls how fast the Eggbot's motors and pen arm servo operate. The speeds are adjustable, and there are always tradeoffs between higher speed and higher quality. At too high of a speed, your plots will lose precision. Lower speeds mean that your plots will take longer to complete.


Speed when pen is down[edit]

This setting controls the maximum number of motor steps per second which may be taken by either or both stepper motors. (The distance around your egg -- or other object in the EggBot -- is exactly 3,200 steps around the equator, and about 800-1000 steps vertically.) The default value of 300 steps per second is a fairly good choice. If you want to get a quick sketch out as a "draft", you can use a faster value, up to perhaps 1000 steps/s.

To get a feel for the effect of different speeds, you may wish to comparing a plot at 150-200 steps per second with one at 400-500. The speed that works well for you will depend (amongst other things) on the model of EggBot you are using -- the Ostrich EggBot needs to be operated more slowly -- and on what kind of a tool you are using. Permanent marker pens can draw quite quickly, but using a tool like the diamond engraver requires a very slow speed for good results.


Speed when pen is up[edit]

This setting controls the maximum speed at which either or both stepper motors can operate while moving the raised pen between locations over the drawing surface. You can use much larger values than the pen down speed without compromising the quality of your plots. However, there is an upper limit to how fast you can go: At too fast of a speed, the pen or egg could slip position, ruining your plot.


Pen raising speed[edit]

To control how fast the pen is raised, change the "Pen raising speed" value. This value controls how many percentage points the pen is raised per second.


Delay after raising pen[edit]

After a pen-raise command is issued, the EggBot will pause for this duration of time before initiating another movement such as rotating the egg. The time to wait is specified in milliseconds (ms). This value should be set high enough to ensure that the pen is no longer in contact with the surface when the EggBot begins moving again.

Technical note: The delay starts at the beginning of the pen's upward movement, not at the ending, so you may wish to compute the time that it takes the pen to move up. For example, let's say we have a pen up position U of 68, a pen down position D of 62, and a pen raising speed R of 50. We see we have (U - D) / R = (68-62)/50 = 6/50 = 0.12 seconds = 120 ms before the pen gets up. If you wanted (for example) 200 ms of additional delay after raising, set this value to 320.


Pen lowering speed[edit]

This parameter controls how fast the pen is lowered between the pen up and pen down positions, specified in percentage points per second. Using a slower speed means that the pen will contact the surface more gently.


Delay after lowering pen[edit]

After a pen-lowering command is issued, the EggBot will pause for this duration of time before initiating another movement such as rotating the egg. The time to wait is specified in milliseconds (ms). This value should be set high enough to ensure that the pen is fully contact with the surface when the EggBot begins drawing.


Technical note: As with raising the pen, the delay starts at the beginning, not at the ending, of the pen's downward movement. You may wish to compute the time that it takes the pen to move down. For example, let's say we have a pen up position U of 68, a pen down position D of 62, a pen lowering speed r of 20, and want a (very long) 250 ms delay after the pen gets all the way down. Referring to item 8, we see we have (U - D) / r = (68-62)/20 = 6/20 = 0.3 seconds = 300 ms before the pen gets down. Adding that 250 ms pause we want for settling, means we should actually set this value to 550.


Options[edit]

ext5_options.jpg

A number of plotting related options are set with the "Options" tab. Most of these options need only be set once and then forgotten. They do not vary as you change your drawing media.


Reverse motion of Motor 1 (pen)[edit]

This option defaults to True (checked).

The “historical” EggBot coordinate system is such that when you print a drawing, the top of the drawing is oriented towards the headstock, and the bottom edge is towards the tailstock. Over time, we have generally found it best to reverse that, by checking both “Reverse motion of Motor 1 (pen)” and “Reverse motion of Motor 2 (egg)”. This way which we recommend, it is more natural to put the “fat” end of an egg (or the base of a glass ornament) towards the larger egg coupler, where it tends to perform better. You can, however, uncheck both checkboxes to point the top of your drawing towards the headstock.


Reverse motion of Motor 2 (egg)[edit]

This option defaults to True (checked), for the reasons described above.


Egg (x) axis wraps around[edit]

This option defaults to True (checked). When checked, the EggBot will "wrap" long lines by just continuing to rotate the egg in the appropriate direction. This is especially helpful for drawing patterns on your eggs which look similar to tessellations. It will also allow a shortcut to return straight home in less than a turn, even when rotated by many turns.


Return home when done[edit]

This option defaults to True (checked). After finishing a plot, the EggBot will position the pen back to the plot's starting position.


Enable engraver, if attached[edit]

This option defaults to True (checked). If you have purchased or built an engraving attachment for use with your Eggbot, then use this option to enable or disable the engraver while plotting. Note that when this option is selected, the engraver will be turned on and left running throughout the plot and only turned off when the plot is finished. The engraver is not turned off each time the pen arm is lifted.


Curve smoothing (lower for more)[edit]

Fundamentally, the EggBot only draws straight line segments. When presented with a circle, arc, or cubic spline to draw, the EggBot approximates the smooth curve with many short line segments that follow the path of the curve. This approximation can be made to appear smoother by drawing even more, shorter line segments. Or, it can be made rougher be drawing fewer, longer line segments. The degree of smoothness is controlled with this option. The smaller the value specified, the smoother the approximation will appear and the longer it will take to draw. The default value of 0.2 is generally an acceptable value.


Manual commands[edit]

ext6_manual.jpg

The "Manual" tab is so named as it allows you to manually send select, basic commands to the Eggbot. With the exception of the "Check EBB Version" command, these commands are intended to aid in fine tuning your Eggbot's setup for an egg or other object you are about to draw on.

In general, you will want to select the operation to perform with the "Command" drop-down list, and then click the "Apply" button. For the two motor walking commands, you can also specify the number of motor steps to turn the motor forward (+) or backwards (-).


Raise the Pen[edit]

Lift the pen to the pen up position. In most cases, it is easier to use the Setup tab for this action.


Lower the Pen[edit]

Lower the pen to the pen-down position. In most cases, it is easier to use the Setup tab for this action.


Walk Motor 2 (egg)[edit]

Rotate the "Egg" motor (which turns the object you are plotting) forward or backwards the number of steps specified in the "Walk distance" field. There are 3200 steps around in a full revolution.

Positive and negative distances are allowed. A negative value gives the opposite direction of rotation from that of a positive value. If the pen is down when this operation is performed, then a line line will be drawn. You may wish to use this command when attempting to precisely register the pen tip's position on the drawing surface. Note that the motor will automatically be engaged if necessary.


Walk Motor 1 (pen)[edit]

Move the pen arm longitudinally forward or backwards the number of steps specified in the "Walk distance" field. The angle moved will be steps * 360 degrees / 3200, since a full revolution of the pen arm (which is not possible in practice) would require 3200 steps of movement.

Positive and negative distances are allowed. A negative value gives the opposite direction of motion from that of a positive value. If the pen is down when this operation is performed, then a segment of a line of longitude will be drawn. You may wish to use this command when attempting to precisely register the pen tip's position on the drawing surface. The motor will automatically be engaged if necessary.


Enable Motors[edit]

Engage (power on) the Eggbot's "pen" and "egg" motors.


Disable Motors[edit]

Disable (power off) the Eggbot's "pen" and "egg" motors. In most cases, it is easier to use the Setup tab for this action.


Engraver On[edit]

Turn the engraver motor on. Requires an engraving attachment to be useful.


Engraver Off[edit]

Turn the engraver motor off. Requires an engraving attachment to be useful.


Check EBB version[edit]

Query the EggBot its firmware version. Information about updating its "EBB" firmware can be found here.


Strip plotter data from file[edit]

Certain information about your plot -- in particular progress through the file for save and resume processes -- is saved within your SVG document. This option will strip that information from your file, should there be a reason to do so.


Resume[edit]

ext7_resume.jpg


The EggBot has a useful feature which allows you to pause and resume your plots. By pressing the PRG button on the Eggbot's EBB (EiBotBoard) control board, plotting is paused. You can then make adjustments including changing drawing speeds and pen up or down positions. After making any adjustments, you can resume the plot by clicking the "Apply" button on this tab. Note that you can even exit Inkscape. The EggBot Control extension will automatically store plotting information in your drawing file. So, if you save the drawing file before exiting Inkscape, you can later resume your plot by relaunching Inkscape and re-opening your drawing.


Check the "Cancel and return home only" box if you wish to cancel the plot after pressing the PRG button on the EBB board, rather resuming.


Layers[edit]

ext8_layers.jpg

By default, the EggBot Control extension will plot your entire drawing. However, if you divide your drawing into separate Inkscape layers, you can then plot each layer or groups of layers in distinct plotting runs. This makes it easy to plot drawings with multiple colors by separating each color into its own layer. Load the pen for the first color, then plot that layer. When that layer is finished, change the pen to the next color and plot that layer. The only requirement to using this feature is that you begin each layer name with an integer in the range 0 through 100. For example, if you have three layers with the names,

1 - Red swirls
1 - Red zig zags
2 - Blue circles

Then you can plot the two red layers with a red pen by specifying "1" in the "Plot only layers beginning with" field. You can then change the pen to blue and plot the blue layer by specifying "2" in that field.


The only control within the Layers tab is the numeric entry box, Plot only the layers beginning with You can choose any integer in the range 1 through 100, inclusive. Click the "Apply" button each time to begin plotting of the selected layers.


*[edit]

ext8_version.jpg

This final tab is the EggBot Control's "About" page and shows the version of the extension which you currently have installed. Also, it lists any known requirements, limitations or problems with the extension.


<<< The EggBot Extensions || EggBot Control || Hatch Fill >>>