Scrappy Arduino Pen Plotter with Nema17 Steppers

After seeing a really neat commercial Pen Plotter on Youtube, I decided the time has come to build my own Arduino Pen Plotter using Nema17 Stepper Motors and readily available 3D Printer spare parts.

Building the Scrappy Arduino Pen Plotter

The key component to this pen plotter project is the Arduino grbl library. It is hard to overstate the power which comes with this piece of carefully crafted code. The grbl library transforms your Arduino into a fully functional CNC stepping motor controller. All you need to add are some Polulu A4988 and you’re ready to go.

The image above shows an Arduino Uno with a CNC Shield attached. The CNC Shield in turn has 3 A4988 attached to it. That’s all you need to get the grbl library to directly control the A4988s which in turn will drive your stepping motors of choice.

In the case of this Arduino Pen Plotter, I went for a Nema17 stepping motor build. The reason for this decision lays within the fact that those motors are used widely with 3D printers, and since I used a lot of 3D printer spare parts (rods and couplers and such) the Nema17 was a natural choice. Plus they are cheap. And they are available on Amazon.

What follows are some images of the Scrappy Arduino Pen Plotter build. All parts other than the rectangular aluminium profiles and screws are 3D Printer spare parts purchased on Amazon.

There would normally be a Nema17 Stepping Motor right in the middle of this picture. I usually unmount the motors for easier storage.

Note the small rubber sheets between the screws and the aluminium plate. I put them there to absorb mechanical vibrations.

In the last picture you can see the servo motor positioning. I put it there in order to lift the pen up. Which reminds me that I didn’t use the original grbl library, but rather a fork of it. Github user “robottini” made this very nice fork which let’s you control a Servo motor via Gcode!

Some Moving footage

We saw some pics, which was nice. But does it work? Does it actually draw? And are the results acceptable? Well, I got 2 videos for you. Here’s the first one.

To be fair, this is an older version of the Scrappy Arduino Pen Plotter. It uses a different Pen Holding mechanism. One without a servo, but rather a small stepping motor which provides the up/down movements. The pen holder mechanism was salvages from a CD drive. Hence the “Scrappy”. It is in fact the part the laser is normally sliding forth and back on.  I salvaged some CD drives and figured this might work. And it did. Until it didn’t work anymore.

The small CD drive stepper got destroyed. So I got a new CD laser slider thingy. And this time, I mounted a servo on it. This seemed better, because with the stepping motor approach, the draw height is fix. Which can be bad if the surface height of the paper is different depending on the position of the moving pen. That was one problem I encountered. The servo approach fixes this problem really nicely by just letting the pen fall and then forgetting about it.

Here’s moving footage of the newer build. The video is rather long. I probably should have edited it a bit more. You might want to skip through it.

How I Got The Gcode

When using the grbl library, it is essential to have a Gcode file containing all the path information the Plotter is supposed to follow.

First I got the image from the dailycatdrawings Tumblr! Here’s the original drawing “Meow!”: http://dailycatdrawings.tumblr.com/po…

And here are some more details on what I did here. I used Inkscape and the GcodeTools plugin. This plugin enables you to get Gcode out of a drawing like the one I used.

Here’s a link to GcodeTools: https://github.com/cnc-club/gcodetools

Once I had the Gcode, all there was left to do was to feed it to the Arduino via the serial port (my software of choice was the UniversalGcodeSender).

Some More Details

When using grbl with your Arduino you can program some of the parameters via the serial port (using putty or a similar program). Below are the parameters I used for this project on the grbl CNC Controller. This might also be of interest if you’re wondering what kind of parameters you can fiddle around with when using grbl. You get this parameter list by sending “$$” to the Arduino via serial port.

Grbl 0.9i ['$' for help]
$0=10 (step pulse, usec)
$1=25 (step idle delay, msec)
$2=0 (step port invert mask:00000000)
$3=1 (dir port invert mask:00000001)
$4=0 (step enable invert, bool)
$5=0 (limit pins invert, bool)
$6=0 (probe pin invert, bool)
$10=3 (status report mask:00000011)
$11=0.010 (junction deviation, mm)
$12=0.002 (arc tolerance, mm)
$13=0 (report inches, bool)
$20=0 (soft limits, bool)
$21=0 (hard limits, bool)
$22=0 (homing cycle, bool)
$23=0 (homing dir invert mask:00000000)
$24=25.000 (homing feed, mm/min)
$25=500.000 (homing seek, mm/min)
$26=250 (homing debounce, msec)
$27=1.000 (homing pull-off, mm)
$100=250.000 (x, step/mm)
$101=250.000 (y, step/mm)
$102=250.000 (z, step/mm)
$110=2000.000 (x max rate, mm/min)
$111=2000.000 (y max rate, mm/min)
$112=2000.000 (z max rate, mm/min)
$120=200.000 (x accel, mm/sec^2)
$121=200.000 (y accel, mm/sec^2)
$122=200.000 (z accel, mm/sec^2)
$130=200.000 (x max travel, mm)
$131=200.000 (y max travel, mm)
$132=200.000 (z max travel, mm)

The parameter List above is mainly a memo for myself which I might use should I ever feel like setting the Scrappy Arduino Pen Plotter back up again. For now, I decided to scrap the Arduino with CNC Shield for a different project…

Published by

T-Kuhn

Author and Webmaster of this blog. Likes electronic things, programming, and languages.

20 thoughts on “Scrappy Arduino Pen Plotter with Nema17 Steppers”

  1. Loved this article. Came here for the $3 stepper motor article and decided to see others. I really like this one. I saw a plotter on a whiteboard a few years ago at the Hackaday SuperCon in San Francisco. Loved that idea. He used Raspberry Pis to run the motors. I have an ancient pen plotter in my office that I saved from the scrap heap. Perhaps I can get it to work again or use parts from it.

      1. You just need a CNC board for the Arduino Uno, that’s all. Connect all the stepper motors to the CNC board and you’re done. There is no circuit diagram because the circuit is so simple.

  2. sir i am getting ”
    “specified folder does not contain a valid library” can you specify what kind error is this iam unable to add library

      1. Figured it out. It’s the Z+ pin on the Shield. Also just FYI to anyone GRBL-servo needs to be compiled against it’s included libraries, not the standard GRBL ones.

  3. The best in class, Depoxito meet the expense of you
    high-end experience that dispatch the see and vibes of real
    VIP standarts, we give you the best glamorous to high-level experience of VIPs
    expect in any top end casino, grand flesh and blood casino royale give
    you the new studio design element including the grand blackjack, offering our VIP Customer the best experience of a Salon privee table.

    New style table furthermore feature across the room in the manner
    of grand roulette upgraded on our provider playtechs mini prestige roulette which delivering more
    fascinating and richer playing experience. The other experience contains
    a total of seven tables including five blackjack tables, one roulette table and one baccarat table.
    Grand rouse casino royale has been tall hand-engineered to fit the needs of our customer to using it,
    and contains unique elements that is specially meant to maximize the
    impact value we got from our customers and diversify it
    to the existing network.
    Soon, Depoxito will manufacture an improved veracity technology on stimulate casino for our VIP member, these most militant
    technology ever seen in alive casino including this augmented reality.
    Which permit players to experience products on an entire supplementary level
    which is never seen previously literally
    leaping out of the game and taking the blackjack, baccarat,
    roulette and further game into the combined entire level.

    Depoxito VIP Baccarat, we offer you the completely exclusive
    flesh and blood VIP Baccarat that is played considering happening to
    7 players at the thesame table and our severely trained beautiful bring to life baccarat dealer.
    And of course our VIP advocate will mood as if they were essentially sitting at
    one of the summit casino baccarat table. This immersive gaming experience creates
    a hugely thrill-seeking broadcast that our VIP players
    will find difficult to surpass.
    Here is the list of rouse casino game that depoxito provide, we pay for the widest range of
    flesh and blood casino games upon the push including : blackjack unlimited, blackjack
    prestige, roulette, baccarat, poker, hi-lo, sic bo, and grand
    living casino royale such as Grand Baccarat, Grand Blackjack and Grand Roulette for our VIP member.

    And of course as a advocate of Depoxito you can enjoy all the
    games that we have the funds for to you, every you infatuation to
    realize is just visit our site depoxito and register it by yourself takes in the works to 3 minutes and subsequently youre
    within acceptable limits to accomplish any game that
    you want.
    Be our VIP, visceral our VIP enthusiast of course contracted you the best advance
    you can acquire from us all you obsession to be a VIP
    aficionada is very easy. every you compulsion is just save playing upon our site, increase and bill gone a VIP
    when the amount that our company had written, save playing and our customer encourage will log on you that you are promoted to
    become a VIP supporter on our site.

Leave a Reply

Your email address will not be published. Required fields are marked *