Skip to content

17. Machine design

This week in Group with my instructor Antonio Grillo we actuated and automated the machanical design of the 3dof Cam Slider we made, through GRBL and interfacing control.


GRBL is an open source embedded CNC controller written in optimized C that runs on Arduino; this software is written in highly optimized C utilizing every clever feature of the AVR-chips to achieve precise timing and asynchronous operation, even through many interfacing programs.

Uploading GRBL to Arduino

1st On GitHub I downloaded GRBL (GRBL 0.9) and I unziped the grbl-master folder;

2nd I launched the Arduino IDE and I uploaded Grbl: I clicked the Sketch drop-down menu, I navigated to Include Library and I selected Add .ZIP Library. Then I selected the Grbl folder inside the grbl-master folder, which only contains the source files and an example directory);

3rd In Arduino I found the GrblUpload Arduino example, and I opened it. Then I uploaded it to my Arduino;


So I used the serial terminal of Arduino and set the baud rate to 115200, and I could check the connection seeing this message:

Grbl 0.9i ['$' for help]


GRBL settings

Typing $ and pressing enter I saw main settings and info commands:


And to see advanced settings, about coordinating and timing commands, I pressed $$ and enter:


Here you can find a link to the complete commands guide on GitHub.

Grbl’s default build can be customized editing the config.h file, but only inside the Arduino library folder. This file enables or disables all of Grbl’s additional compile-time options.

Actuating the 3dof Cam Slider

1st I put together the CNC shield v3 to an Arduino UNO to make the configuration to connect the pins of the nema17 bipolar stepper motors and the respective polulu supported drivers for each stepper motor;



2nd And I charged the machine with 12 Volt through a desktop power supply; and I connected it to a serial port of my pc.


Automating through interfacing

1st I downloaded GRBL Controller, one of the many GRBL interfacing programs;

2nd I opened it and I selected the respective GRBL-Arduino port and the same baud rate;

3rd And then I selected “Open” button and I started controlling the 3dof Cam Slider by the respective axes button of the interface.

So through the descibed setting commands I calibrated the software setting to control the machine properly, in terms of step/mm and speed, moving origin point command ($G0).


You can check our 3dof Cam Slider working and all details on the Fab Lab Napoli page.

Video and details

Fab Lab Napoli page


GRBL v1.1

GRBL interfacing programs

GRBL guide