Software Engineer & Web Developer

CNC writing Robot

It is a robot uses a CNC with a pen to write or draw.

Robot parts

  •   2- Nema 17
  •   2- Linear rod M8 x 450mm, X Axis
  •   2- Linear rod M8 x 350mm, Y axis
  •   2- Linear rod M3 x 75mm, Z Axis (You can find them in any old CDROM)
  •   1- M8x470mm threaded rod
  •   8- LM8UU
  •   1- Servo sg90
  •   2- GT2 Pulley 16 teeth
  •   5- Bearing 624zz
  •   1- 2000mm GT2 belt
  •   4- limit switch
  •   5- M4 screws
  •   5- M3 screws
  •   8- M8 nuts
  •   1- Arduini uno
  •   1- CNC Shield
  •   1- 12V 2A Wall Transformer

Setting Information

  •   Be sure to install 2 jumpers on the CNC Shield for each stepper driver.(like in the photo)
  •   You must use the GRBL library which you can find it in the download file, because I made a few changes on it
  •   Use Grbl setting which in the download file

Arduino software setup

After install Arduino Ide (Here) you need to copy grbl-coreXY-servo-master folder to arduino lib folder


then you can open the ino file in Example folder and upload the software to your arduino uno board

after that you need to run the following commands using arduino terminal (one by one to make sure there is no errors) to set the grbl settings

     $1=25 (step idle delay, msec)

$2=0 (step port invert mask:00000000)
$3=0 (dir port invert mask:00000000)
$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.010 (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=80.000 (x, step/mm)
$101=80.000 (y, step/mm)
$102=80.000 (z, step/mm)
$110=5000.000 (x max rate, mm/min)
$111=5000.000 (y max rate, mm/min)
$112=5000.000 (z max rate, mm/min)
$120=10.000 (x accel, mm/sec^2)
$121=10.000 (y accel, mm/sec^2)
$122=10.000 (z accel, mm/sec^2)
$130=435.000 (x max travel, mm)
$131=255.000 (y max travel, mm)
$132=200.000 (z max travel, mm)

now your arduino uno is ready

Work with Inkspace

you need to install inkspace from Here then you can open the draw.svg file which contain an example and the setting that you need to generate gcode file using inkspace

Write Somthing

Convert object to path

Generate gcode

Generate gcode sitting

after click apply, it will take few seconds to generate gcode file and it will show like this

you have to make small change in the gcode file, after line 7 just write M5 , this command will rise the pen in the first run

save the file and it is now ready to be printed

Sourcerabbit settings

you need to install Sourcerabbit from Here after open it, it will detect automaticly the port that arduino is connected to

you can run grbl setting command using sourcerabbit

run $$ command to check grbl setting are same with the last sitting, here are some useful commands

        $$ (return grbl sittings)

$H (reset machine to 0,0 point )
M5 (rise the pen) M3S030 (set the pen down)

just choose the gcode file and send it to the machine and ENJOY

There are 1 comment


need help

by muhammet | 11/30/2020 10:22:56 AM

Hello Ahmed, I have several questions about CNC writing robot. Please write my E-mail... I know Turkish but I made lots of mistakes when I writing Thanks ... False

Add your comment