This drawing robot is similar to the commercially available AxiDraw. It is powered by an Arduino Uno controller and a CNC Shield and uses GRBL firmware. The approximate cost to build this drawing robot is $100.
Assembly documentation can be found in the Files section and at the following link. Thanks to Jonathan K for supplying this documentation.
There's also a document which explains how to install Inkscape, the Inkscape MI extension, and the Universal G-Code Sender. It guides you through three example projects and can be found in the Files section of this Thing. Use these instructions instead of the last three pages of the assembly document which describe a different G-Code extension.
This drawing robot allows you to draw things in Inkscape and then plot them out. The drawing robot receives G Code commands that are created inside an Inkscape extension called MI. Below are the links to the software used. There's a document in the Files section explaining how to use the software.
Print all the parts. Assemble them using the assembly guide and then use the installation and use guide to start using your Draw Robot.
When setting up your hardware you must do the following:
- Be sure to install 3 jumpers on the CNC Shield for each stepper driver. There's a photo showing the jumpers.
- You must use the GRBL version pointed to in the link below. Replace the "config.h" file with the one provided which has the correct features enabled before you compile and download from the Arduino IDE.
- Set the GRBL parameters to the settings that provided in one of the photos. This step is missing from the otherwise excellent instructions. You must do this or the robot will not work.
4.Be sure to set the correct MI Extension parameters the first time you get the MI extension pop up.
I have posted all the parts needed from the two source designs. There are only 15 parts to print and none of them are very large. I added a stronger pen slider and a controller enclosure. I also clarified the names that were in Spanish. I have posted all needed files so that there isn't confusion regarding which parts are needed from each of the original designs.
My drawing robot is modified version of this one
Place this version of GRBL Firmware for the Arduino on your computer. You must use this version of GRBL. Other GRBL versions do not have the control code for the Z axis servo.
Replace the default config.h file in GRBL with the one supplied in the "Thing Files" section
Upload GRBL to your Arduino Uno using these instructions
https://github.com/grbl/grbl/wiki/Compiling-Grbl (Ignore references to GRBL V1.1)
You must copy the config.h which I supply here to the directory where GRBL resides and then do the upload. The new config.h will be used for the compile of the GRBL code.
Inkscape Drawing Software
Universal G-Code Sender
Use the Inkscape MI Extension to generate G Code:
There is a tutorial in the Files section on how to use the software.
2x Nema 17
2x Linear rod M8 x 450mm, X Axis
2x Linear rod M8 x 350mm, Y axis
2x Linear rod M3 x 75mm, Z Axis
(You can find them in any old CDROM or purchase on EBay)
1x M8x470mm threaded rod
8x LM8UU or printed
1x Servo sg90
2x GT2 Pulley 16 teeth
5x Bearing 624zz
1x 2000mm GT2 belt
misc M3 and M4 screws and nuts
12V 2A Wall Transformer
2-4 limit switches ( optional. Suggest to leave them off and add later if you want them)
Inkscape which is the graphics design software
Inkscape MI GRBL Extension
Universal G Code Sender (sends the machine commands from a file)
GRBL which is the Arduino firmware (programmed into the Arduino Uno)
I have supplied a few G Code files that work with this drawing robot. If your drawing robot is built identical to this design, the G Code files will also work with yours.
Here are a couple of videos of this drawing robot in action:
Update 6-15-2017: I added the limit switches about 10 days ago and they don't add much to the functionality. When GRBL sees a limit switch hit, it just stops with an alarm condition. You must soft reset the robot and your drawing cannot be continued. The homing feature doesn't seem to work. I read in another persons post that they could not get home to work in GRBL 0.9. At this point I suggest building the drawing robot without the limit switches. As long as your drawing does not exceed the envelope of the robot, you won't need the limit switches.
Update 6-19-2017: My friend found a better Inkscape Extension for generating G Code.
I think the MI Extension is easier to use and generates better G Code:
Update 6-26-2017: I added the config.h file needed for GRBL for this machine. With this file and the GRBL parameter settings in the screen shot, you should be able to easily get your machine up and running. Don't forget to install the stepper driver jumpers.
The top and bottom clam shells did not fit without pushing the LM8UU bearings slightly out of alignment. I removed a small amount of material from the top clamshell to allow clearance for the bottom clamshell posts. The old Top_XY_clamshell.stl file has been removed and replaced with the Top_XY_clamshell_V4.stl file. Thanks to rocketmannate who caught this problem.
Jonathan K. provided assembly documentation. Thanks you so much. I appreciate your efforts. Checkout the great PDF with excellent photos.
I have had some questions from people whose drawing robots didn't work. Here are some things to check If your robot doesn't work:
Make sure you have the correct version of GRBL
Make sure you copied the config.h file to your GRBL directory
Check your CNC jumpers. All three should be installed
Check that you entered the GRBL parameters using Universal G-Code sender
If your Z axis motor isn't working, make sure you have the correct version of GRBL and that you wired your servo to the correct pins. See the photo.