Drawing Robot - Arduino Uno + CNC Shield + GRBL
by henryarnold, published
Liked ByView All
Give a Shout Out
If you print this Thing and display it in public proudly give attribution by printing and displaying this tag.Print Thing Tag
This drawing robot is similar to the commercially available AxiDraw. It is powered by an Arduino Uno controller and a CNC Shield which uses GRBL firmware. Approximate cost to build this drawing robot is $100.
Documentation can be found here and by an attached PDF thanks to Jonathan K.
This robot was put together using two other people's designs. I added the improved pen slider and the controller enclosure. 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. Below are the links to the software I used. Avanhanegem's design has a great tutorial on how to generate G Code within Inkscape and then send it to the drawing robot using Source Rabbit G Code Sender. Also check out the easier to use MI GRBL Extension mentioned below in an update.
When setting up your hardware:
- Be sure to install 3 jumpers on the CNC Shield for each stepper driver. I have added a photo showing the jumpers.
- Replace the "config.h" file with the one I provide which has the correct features enabled before you compile and download from the Arduino IDE.
- Set the GRBL parameters to the settings that I provide in one of the photos.
I have posted all 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 I supply 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
Source Rabbit G Code Sender
Tutorial on how to generate G Code in Inkscape
There is also an MI Extension which I think is easier to use and generates better G Code:
Use whichever extension you like best.
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 (Includes G Code Extension)
Source Rabbit which is the 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 yours is identical to this design, the G Code files should also work with yours.
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 from GRBL for this machine. With this file and the 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.
Upgrade this Thing with Thingiverse AppsCustomization
Edit, personalize, or revise this ThingPrint Fulfilment
Order a print of this ThingTools and Utilities
Repair, slice, or enhance this Thing
Drawing Robot - Arduino Uno + CNC Shield + GRBL by henryarnold is licensed under the Creative Commons - Attribution license.
What does this mean?
- You must attribute (give credit) to the creator of this Thing.
- Remixing or Changing this Thing is allowed.
- Commercial use is allowed.
Show Some Love
Say thanks by giving henryarnold a tip and help them continue to share amazing Things with the Thingiverse community.Tip Designer
We're sure henryarnold would love to see what you've printed. Please document your print and share a Make with the community.
To post a Make simply visit this Thing again and click I Made One to start uploading your photo. It’s even easier to post a Make via the Thingiverse Mobile app (available via Google Play and Apple App Store).