Arduino CLI – Program, Compile & Upload Codes using arduino-cli


Arduino CLI

Arduino has launched its own CLI (Command Line Interface) Tool that allows us to code, compile and upload codes to your arduino boards using command prompt(Windows) and Terminal (Linux and MAC).

ARM Support

The best thing about this you can easily install and run Arduino CLI on both x86, x86 64 as well as ARM architectures. This flexibility allows you to install Arduino CLI on ARM devices such as Raspberry Pi or on your servers and use it to compile and upload codes on to the board of your choice.

Arduino CLI Installation

Video Tutorial

Step 1 – Get the Tool

You can either Download manually from the below link or Build the latest bleeding edge from source


Linux – 64 bit

Linux – 32 bit

Linux – ARM (Supports Raspberry PI)



Build from source

First install ‘Go’ using the command

sudo apt install golang


go get -u

You will find the arduino-cli executable $GOPATH/bin/arduino-cli (Generally ~/go/bin/arduino-cli)

If you want, you can copy this file under /bin/

Step 2 – Coding

Create a new code using the below command

arduino-cli sketch new test

Sketch created in: /home/luca/Arduino/test

This will create a file with basic setup and loop function

cat ~/Arduino/test/test.ino

void setup() {

void loop() {

Open the file using any text editor and copy the below code and paste it there.

void setup() {

void loop() {
digitalWrite(LED_BUILTIN, HIGH);
digitalWrite(LED_BUILTIN, LOW);

Save it and close the file

Step 3 – Board Setup

Now its time to connect your board to your PC.

Run the below command to update platform indexes.

arduino-cli core update-index

Check the connected board listusing

arduino-cli board list

FQBN Port ID Board Name
/dev/ttyACM0 2341:804E unknown

We can see that the board has been detected but the core to upload the board is not available. So we have to install the core of that particular board.

Let us search for all available codes

arduino-cli core search mkr1000

Searching for platforms matching 'mkr1000'
ID Version Installed Name
arduino:samd 1.6.19 No Arduino SAMD Boards (32-bits ARM Cortex-M0+)

So, the right platform for the Arduino MKR1000 is arduino:samd. So let us install it using the command

arduino-cli core install arduino:samd

We will once again check if the board is now being detected as a MKR1000
arduino-cli board list

FQBN Port ID Board Name
arduino:samd:mkr1000 /dev/ttyACM0 2341:804E Arduino/Genuino MKR1000

Step 4 – Compile the Code using Arduino CLI

To compile the sketch we should have the FQBN of the board that we got from the previous step.

arduino-cli compile --fqbn arduino:samd:mkr1000 Arduino/MyFirstSketch

Step 5 – Upload your sketch

We can finally upload the sketch and see our board blinking, we now have to specify the serial port used by our board other than the FQBN:

$ arduino-cli upload -p /dev/ttyACM0 –fqbn arduino:samd:mkr1000 Arduino/MyFirstSketch

Thats It!!.

This will now upload your code to the Arduino Board. Get more details from – Arduino Blog



Written by Jithin

Leave a Reply

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


Piano Using Arduino Tutorial

Chakra arduino meditation

Chakra Healing Harmonizer – Arduino Meditation