Uncategorized

Drawbot update: Preview your gcode


Black lines are the robot drawing limits. They only appear when the robot is connected.
Blue are straight lines.
Green are arcs.
Pink are lines when the pen is up (and should not be drawn).

Edit: You can also move the preview while holding button 1 and scale while holding button 3.

Uncategorized

Meet Drawbot Customer #1

This is Henry, customer #1.  Henry bid in the Vancouver Mini Maker Faire Fundraiser last week, sniping the most hotly contested item in the auction.  He came down to the Vancouver Hack Space and together we got our first test print going, as pictured below.  Henry, you’ve been a joy to work with and you really helped me smooth out the rough spots in the instructions.  Thank you!

Uncategorized

Drawbot update: easier to configure, redux!

The Drawbot GUI has had a signifigant update this morning.

  • Menu items are disabled until the GUI confirms it is connected to the robot
  • GUI can now read & write robot config settings
  • Files are removed from “recent files” if they could not be opened.
  • Log tab is cleared when connection is reset
  • File tab is cleared when file is changed/fails to load
Uncategorized

Drawbot update: easier to configure!

It used to be to configure the drawbot you had to look for and change some pretty cryptic things in the code: X_SEPARATION, LIMYMIN, and LIMYMAX.  Worse, if you ever changed these values you had to re-flash your robot.  Maybe not a lot of work for an engineer, but too much for someone who wants it to just work.  So the latest version throws out all that and adds a new command.

CONFIG [Tx.xx] [Bx.xx] [Rx.xx] [Lx.xx];

Description: Sets the limits in the robot.

Input: the Top, Bottom, Right, and Left limits in the robot.  All measurements are in the current mode – you can switch to inches before calling config and it will compensate.  By default it expects centimeters (cm).  You can leave out any of the [values] and it will assume these numbers are unchanged.  You can rearrange them so long as the command starts with CONFIG and ends with a semi-colon.  You can leave out all options and get the current state of the limits.

Ouptut: The newest limits, the current feed rate, and the current acceleration.

Note: This command replaces LIMITS; as the output is the same.  The name has been changed because CONFIG; can be expanded on to add more features later.

Uncategorized

Drawbot G-Code Tutorial

When you first turn on the drawbot in Arduino, you should see text similar to this:

== HELLO WORLD ==
(-14.00,-30.00) - {14.00,21.50)
F8.90
A5.00
== DRAWBOT - 2012 Feb 28 - [email protected] ==
All commands end with a semi-colon.
HELP; - display this message
WHERE; - display current virtual coordinates
LIMITS; - display maximum distance plotter can move
DEMO; - draw a test pattern
TELEPORT [Xx.xx] [Yx.xx]; - move the virtual plotter.
As well as the following G-codes (http://en.wikipedia.org/wiki/G-code):
G01-G04,G20,G21,G90,G91
>

Let’s take a look at each of these commands and what they do in detail.

HELP;

Type in this command and you’ll see the help message again.

WHERE;

When you first turn on the robot it assumes that it is at (0,0) and WHERE; would return exactly that.  If you moved X+10 and typed WHERE; again it would say (10,0).  X+ is to the right, Y+ is up just like on graphs you’d draw in class.

LIMITS;

limits are the maximum distance the robot will move the plotter.  This

(-14.00,-30.00) - (14.00,21.50)
F8.90
A5.00

is the part of the message when you turn it on.  the first parenthesis are the bottom left corner, the second parenthesis are the top right corner, F is the “feed rate” (maximum speed) and A is the maximum acceleration.

DEMO;

You’ve seen the youtube drawbot video with the test pattern and halftones?  This is how you draw that test pattern.  It’s a great place to start to check if your steppers are backwards or your speeds are too high.  More on that in a future post.

TELEPORT [Xx.xx] [Yx.xx];

When you first turn on the robot it assumes that it is at (0,0).  Let’s say the actual position on the wall is (3,-5).  You need an easy way to correct this.  TELEPORT X3 Y-5; will tell the robot “no no, you’re actually over here.”  After that you could say G00 X0 Y0; and it would move to the actual (0,0).  If you don’t specify an X or Y, the current value will be used.

G00 [Xx.xx] [Yx.xx] [Fx.xx];

G01 [Xx.xx] [Yx.xx] [Fx.xx];

Draw a straight line from the current position to (X,Y) with a maximum speed of F.  If you don’t specify an X,Y, or F, the current value will used.

G02 [Xx.xx] [Yx.xx] [Fx.xx] [Ix.xx] [Jx.xx];

G03 [Xx.xx] [Yx.xx] [Fx.xx] [Ix.xx] [Jx.xx];

Draw a circular arc to from the starting point here to (X,Y).  The center of the circle is (I,J) away from the starting point.  G02 draws a clockwise arcs.  G03 draws a counter-clockwise arc.

G04 [Px.xx];

Dwell, aka wait P milliseconds.  Remember that you need 1000 milliseconds to pause for one second.

G20;

Programming in inches (in).  The robot works internally in centimeters (cm), so it will divide all coordinates you give it by 2.54 (cm/in).

G21;

Programming in millimeters (mm).  The robot works internally in centimeters (cm), so it will divide all coordinates you give it by 0.1 (cm/mm).  This is the default.

G90;

Absolute mode.  In this mode, a G00 X1 Y0; will move to (1,0).  This is the default.

G91;

Relative mode.  In this mode, a G00 X1 Y0; will move 1 cm to the right.