This post will cover the “burning” or “flashing” of the CNC driver software to the Arduino board.

For this a few things are needed:

  • A host computer with a USB port capable of providing sufficient power to the Arduino board
  • A USB cable
  • The CNC driver software
  • The Arduino IDE (Integrated Development Environment)

I will be using a host computer with Linux Mint 19.3. Mac or Windows will do as well, but the description below assumes the Linux Mint OS.

The Arduino IDE is available from, but on Linux Mint I used the SW-manager to install it nearly automatically.

Using the SW-Manager, type “arduino” in the search field. It will return a couple of hits, select the one titled “Arduino IDE” (the second from above when I did this). When the details of this SW package are displayed, click the “install” button. It will be installed in the “Programming” section.

Next we need to download the driver software. As written before I will be using the Marlin driver for 3D-printing, but adapted by V1-Engineering for CNC-applications. This driver SW is available from: (Allted is the name used by V1-Engineering on github).

The SW can be downloaded in two ways, I will be using git. Alternatively a zip compressed file can be downloaded manually.

Using git, open a command line window and navigate to a directory in which you want to install the driver SW:

$ mkdir Projects
$ cd Projects
$ mkdir CNC
$ cd CNC
$ mkdir
$ cd

Then download the repository from github:

$ git clone

Now we need to select the correct driver from the available drivers:

$ cd Marlin
$ git checkout MPCNC_Ramps_T8_16T_LCD_32step

Be sure to checkout the driver that fits your (envisioned) hardware. The one I selected is not a complete fit, thus I will probably need to make a few changes later. For the breadboard this is not a problem as long as the RAMPS board is used. On the Allted github page you can use the dropdown box to see which versions are available.

Next attach the Arduino board to the computer. The board will be powered from the USB interface, thus be sure to use a connection that can supply the necessary power.

Now follow the instructions given on the v1-engineering site in the section “How to flash firmware on the Ramps 1.4”, starting at the point “Open Arduino”. I will give the textual sequence here, for pictures see the link.

  • On the host computer, start the Arduino IDE.
  • Select menu: Sketch -> Include Library -> Manage Libraries
  • Type U8glib in the search box
  • Click the U8glib Select Version and select the highest version number
  • Click Install
  • Close the library manager
  • Select menu: Tools -> Board and then the board that will be used (mine: Mega or Mega 2560)
  • Select menu: Tools -> Processor and then the processor that will be used (mine: Mega 2560)
  • Select menu: Tools -> Port and then the port that will be used

Note: Many of the Tools menu items will already be set correctly because the IDE found the board that was connected to the computer as the IDE was started. And when multiple boards are connected, well, then you would not be reading this ;-)

Now select the driver:

  • Select menu: File -> Open and navigate to the appropriate item (mine: ~/Projects/CNC/

Next, compile and upload (in a single step) the driver:

  • Click the upload arrow in the top left of the IDE window. Now wait until the status bar displays: Done uploading.

Note: The compilation process did generate one warning “incompatible pointer type”. For now, I am just hoping that this warning will not affect operations.

That is it. Exit the IDE and disconnect the Arduino.