MakerBot Print is our newest print-prepration software, which supports native CAD files and STL assemblies,
allows you to interact with all your printers via the Cloud, and many other exciting new features.

Download Now


DrawingBot with improved head and rotate pen (for fountain pen)

by avanhanegem Jan 24, 2017
Download All Files

Thing Apps Enabled

Please Login to Comment

how can i get the correct config. for the steppers.
i got the same wired than your images but the mottors doesnt work correctly.
when i tray make a move in x axis it makes a 45 degres line and not a 90 degres.

Hi Alain
very nice project,...
i am trying to make an Arduino plotter , using arduino uno + grbl-servo lib, Grable controller 3.6.1 , 2 (stepper motors + easydrivers ) and a micro servo motor, i have only one problem ,... i cant get the servo to work. the grbl controller is moving the X&Y axis but not the Z(micro servo).

Hello. Please tell me where you can download the firmware for this robot?

It's all described in the main page 'Thing details".
Firmware: https://github.com/robottini/grbl-servo

Many thanks. Forgive my not attentiveness =)

I am quite sure everything is connected as in the diagram, however I cannot get my servo to work. What are possible causes for this?

Hi Ojacie,
There can be quite some reasons why it might not work. Have you checked your power supply to deliver enough power (and the right voltage to the controller board)?
Are you able to test your servo motors with another tool or simple program to flash to the Arduino Uno to just let it rotate on a pulse?
If not, do you have a multimeter to measure pulses with or else an oscilloscope for more detailed measurements?

Else send me a direct message so you can send me some pics by email to help you in detail.


Hi. I have some problem. ı cant flash grbl firmware in arduino uno . Can you take a video for it?

Hi meqcain,
Based on your question, it's sort of very hard to guess what and how you're tring to flash the Arduino with Grbl.
I'd suggest to check this forum if that relates to your problem: http://forum.arduino.cc/index.php?topic=397659.0 and also make sure to read this first: https://github.com/grbl/grbl/wiki/Frequently-Asked-Questions
Else you need to provide a lot more info to help.


Comments deleted.

Hi, My current ears are in plastic part.
But now my biggest difficulty is not knowing how to fit the GT2 belt.
Looking forward to receiving detailed instruction and jinhf photos from you.
Thank you very much

Thanks for the quick reply .
I'll also manually home till i find something.
Please let me know if you get any homing solutions in the future (modifying config.h etc)

There is one more problem that i face. When the pen holder is far away from the x axis, the y axis shakes and wiggles a lot in the movement of pen up and down, which disturbs my drawing. Any solutions ?

The wobble when the arms are reaching out to their maximum could be caused by not having a rigid construction between the 2 legs (make sure to use 2 rods and one screw rod of M8 at least and tighten that one with nuts on both ends (2x2 nuts).
Another solutions it to reduce the travel of the pen lifting servo.
You will always face a little bit of wobble, but with both tricks above you should be able to reduce it!


If you suffer from a wobble on the Y-axis (which holds the pen) when the pen moves up/down rapidly, I'd suggest to first assure the base stands are joined as solid/tight as possible by using a 8mm rod and nuts with locker rings.
Also make sure the slider rods are a snug fit on both ends.
When in doubt, use else 2 or 3 rods on the bottom area by drilling those extra needed holes.

Another quick fix you could do is to add a little bit more weight to the moving platform that holds your Y-axis. But that is more experimental.

Hope these hints help!


Comments deleted.

I have made a drawing machine which is a corexy machine wih 2 axis and servo support
Having grbl 0.9i from

https://github.com/misan/grbl-servo (same as robottini)

I have setup limit switches and am pretty sure the hardware is perfect as hard limits are triggered on both x and y successfully

BUT when i run a homing cycle, both x and y start to move good, but then when one of the switches is triggered, the second axis doesn't move (or moves vert very slow) and does not home and makes a strong humming sound and homing fails

Note: if i deliberately press the switch while humming, there is no homing fail.
In short only one axis gets homed properly

Please can you provide me help with this matter as I've searched all over the internet but nothing worked

Hi faisalbelwadi,

Homing on 0.9 with CoreXY seems anyway broken. I use manual homing, which works fine so far.

More details on homing issues related to switches can be found here: https://github.com/grbl/grbl/issues/950
Not sure if there is a fix already in a later version that also supports the servo Z axis hack.


Hi Alain,
I just finished to build this core-xy machine, all is ok ! but i have a problem with limit switches: i put 4 switch (NC-C), but the firmware does not recognize them, i cannot understand if machine need some calibration.
Are your switches working well?


Hi Marco,
Great to hear you build one! :)
There is one thing you need to make sure to configure in GRBL (the firmware, runtime) which is the 'hard limits' setting.
It is defined under setting $21.
If you haven't already, please check this list of settings: https://github.com/grbl/grbl/wiki/Configuring-Grbl-v0.9#21---hard-limits-bool

For your reference, these are the settings I use in the GRBL firmware, which you can request with the command $$:
$0=10 (step pulse, usec)
$1=25 (step idle delay, msec)
$2=0 (step port invert mask:00000000)
$3=3 (dir port invert mask:00000011)
$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=1 (hard limits, bool)
$22=1 (homing cycle, bool)
$23=3 (homing dir invert mask:00000011)
$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=41.000 (x, step/mm)
$101=41.000 (y, step/mm)
$102=41.000 (z, step/mm)
$110=10000.000 (x max rate, mm/min)
$111=10000.000 (y max rate, mm/min)
$112=10000.000 (z max rate, mm/min)
$120=1500.000 (x accel, mm/sec^2)
$121=1500.000 (y accel, mm/sec^2)
$122=1500.000 (z accel, mm/sec^2)
$130=297.000 (x max travel, mm)
$131=220.000 (y max travel, mm)
$132=100.000 (z max travel, mm)

And note: in 0.9 the CoreXY homing feature is broken. So I'm just homing it manually and resetting references to zero.

Let me know if that works for you. If not, just ping back!


Hi Alain, thank you very much! i have change settings and now working very well.


Hi my friend.

as on photo, the belt is not suitable moving on bearing .. it goes out of bearing . to up and stack.. how i can fix it ?

Hi gurkanlokman,

One reason could be that the timing belt on the two motors is mounted too high against the motors. As this causes the belt to crawl up on the bearings on the main block, like you indicate.
Try reversing the GT2 sprockets on the motor shafts, having the teeth section pointing downward. This should result in a slightly sloping path of the timing belt from motors to center block.
That should do the trick!


Hi. I have build this but the carrier doesn't move. The just make a horrible sound. Nothing move. please help me

Hi gurkanlokman,

The part 'bracket_for_strips.stl' is the orange colored/printed part on the main photo which can be used to stick two pieces of filament in to guide the cables across to the plotter head.
And in case you have longer cabling (I didn't in the build) then you can ti-wrap them to the bracket as well use the loops on the side.

Hope this help.


what for the bracket_for_strips.stl part ? thks

Do you see any reason why this couldn't be used to hold a hotend and mounted on the Z axis of a 3d printer to eliminate the need for moving the table?

Hi warham,
I'm sure the answer to your question is Yes. It all depends what you want to achieve, using what hardware and/or 3D-printer setup and what level of detail/quality you want.
This plotter concept is half way to become a 3D printer if you like to go that far. You could also use other firmware implementation like https://github.com/MarlinFirmware/Marlin with some tweaks here and there...


Hi there,

Where I can find the instructions for this project?

Thanks in advance

Hi pbonnelly,

High level instructions can be found on both the original thing and the annotations I made in this thing/description.
I've also attached some more pictures recently, as well as a diagram with the wire connection to the CNC shield.

If you need more specific details then just send me a direct message.


Thanks for the photos. Hope to get soon all the electronics to do it.