Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Arduino command line tool

License

NotificationsYou must be signed in to change notification settings

arduino/arduino-cli

 
 

Repository files navigation

Workflow Statuscodecov

arduino-cli is an all-in-one solution that provides builder, boards/library manager, uploader,discovery and many other tools needed to use any Arduino compatible board and platforms.

This software is currently under active development: anything can change at any time, API and UImust be considered unstable.

How to contribute

Contributions are welcome!

Please read the documentHow to contribute which will guide you through how tobuild the source code, run the tests, and contribute your changes to the project.

How to install

Get the latest package

The easiest way to get the latest version ofarduino-cli on any supported platform is using theinstall.sh script:

curl -fsSL https://raw.githubusercontent.com/arduino/arduino-cli/master/install.sh | sh

The script will installarduino-cli at$PWD/bin, if you want to target a different directory,for example~/local/bin, set theBINDIR environment variable like this:

curl -fsSL https://raw.githubusercontent.com/arduino/arduino-cli/master/install.sh | BINDIR=~/local/bin sh

Deprecation notice: Links in the formhttp://downloads.arduino.cc/arduino-cli/arduino-cli-latest-<platform>.tar.bz2won't be further updated. That URL will provide arduino-cli 0.3.7-alpha.preview, regardless of further releases.

Alternatively you can download one of the pre-built binaries for the supported platforms from therelease page. Once downloaded, place the executablearduino-cli into a directory which is in yourPATH.

Download a nightly build

These builds are generated once a day frommaster branch starting at 01:00 GMT

In order to get the latest nightly build for your platform use the following links:

These links return a302: Found response, redirecting to latest generated builds by replacinglatest with the latestavailable build date, using the format YYYYMMDD (i.e for 2019/Aug/06latest is replaced with20190806 )

Checksums for the nightly builds are available athttps://downloads.arduino.cc/arduino-cli/nightly/nightly-<DATE>-checksums.txt

Once downloaded, place the executablearduino-cli into a directory which is in yourPATH.

Build from source with Docker

If you don't have a working Golang environment or if you want to buildarduino-cli targetingdifferent platforms, you can use Docker to get a binary directly from sources. From the projectfolder run:

docker run -v $PWD:/arduino-cli -w /arduino-cli arduino/arduino-cli:builder-0.1 goreleaser --rm-dist --snapshot --skip-publish

Once the build is over, you will find a./dist/ folder containing the packages built out ofthe current source tree.

Build from source

If you're familiar with Golang or if you want to contribute to the project, you will probablybuild thearduino-cli locally with your Go compiler. Please refer to thecontributing doc for setup instructions.

Getting Started

The goal of the Arduino CLI is to be used by either including it in Makefile or in any kind ofscript for the Command Line. The Arduino CLI aims to replace the majority of features the ArduinoIDE has without the graphical UI.

Step 1. Create a new sketch

The command will create a new empty sketch named MyFirstSketch in the default directory under $HOME/Arduino/

$arduino-cli sketch new MyFirstSketchSketch created in: /home/luca/Arduino/MyFirstSketch$cat /home/luca/Arduino/MyFirstSketch/MyFirstSketch.inovoid setup() {}void loop() {}

Step 2. Modify your sketch

Use your favourite file editor or IDE to modify the .ino file under:$HOME/Arduino/MyFirstSketch/MyFirstSketch.inoand change the file to look like this one:

voidsetup() {pinMode(LED_BUILTIN,OUTPUT);}voidloop() {digitalWrite(LED_BUILTIN,HIGH);delay(1000);digitalWrite(LED_BUILTIN,LOW);delay(1000);}

Step 3. Connect the board to your PC

If you are running a fresh install of the arduino-cli you probably need to update the platformindexes by running:

$arduino-cli core update-indexUpdating index: package_index.json downloaded

Now, just connect the board to your PCs by using the USB cable. In this example we will use theMKR1000 board:

$arduino-cli board listFQBN    Port            ID              Board Name        /dev/ttyACM0    2341:804E       unknown

the board has been discovered but we do not have the correct core to program it yet.Let's install it!

Step 4. Find and install the right core

We have to look at the core available with thecore search command. It will provide a list ofavailable cores matching the name arduino:

$arduino-cli core search arduinoSearching for platforms matching 'arduino'ID                Version NameIntel:arc32       2.0.4   Intel Curie Boardsarduino:avr       1.6.23  Arduino AVR Boardsarduino:mbed      1.1.0   Arduino nRF528x Boards (Mbed OS)arduino:megaavr   1.8.3   Arduino megaAVR Boardsarduino:nrf52     1.0.2   Arduino nRF52 Boardsarduino:sam       1.6.12  Arduino SAM Boards (32-bits ARM Cortex-M3)arduino:samd      1.8.3   Arduino SAMD Boards (32-bits ARM Cortex-M0+)arduino:samd_beta 1.6.25  Arduino SAMD Beta Boards (32-bits ARM Cortex-M0+)arduino:stm32f4   1.0.1   Arduino STM32F4 BoardslittleBits:avr    1.0.0   littleBits Arduino AVR Modules

If you're unsure you can try to refine the search with the board name

$arduino-cli core search mkr1000Searching for platforms matching 'mkr1000'ID           Version Namearduino:samd 1.8.3   Arduino SAMD Boards (32-bits ARM Cortex-M0+)

So, the right platform for the Arduino MKR1000 is arduino:samd, now we can install it

$arduino-cli core install arduino:samdDownloading tools...arduino:arm-none-eabi-gcc@4.8.3-2014q1 downloadedarduino:bossac@1.7.0 downloadedarduino:openocd@0.9.0-arduino6-static downloadedarduino:CMSIS@4.5.0 downloadedarduino:CMSIS-Atmel@1.1.0 downloadedarduino:arduinoOTA@1.2.0 downloadedDownloading cores...arduino:samd@1.6.19 downloadedInstalling tools...Installing platforms...Results:arduino:samd@1.6.19 - Installedarduino:arm-none-eabi-gcc@4.8.3-2014q1 - Installedarduino:bossac@1.7.0 - Installedarduino:openocd@0.9.0-arduino6-static - Installedarduino:CMSIS@4.5.0 - Installedarduino:CMSIS-Atmel@1.1.0 - Installedarduino:arduinoOTA@1.2.0 - Installed

Now verify we have installed the core properly by running

$arduino-cli core listID              Installed       Latest  Namearduino:samd    1.6.19          1.6.19  Arduino SAMD Boards (32-bits ARM Cortex-M0+)

We can finally check if the board is now recognized as a MKR1000

$arduino-cli board listFQBN                    Port            ID              Board Namearduino:samd:mkr1000    /dev/ttyACM0    2341:804E       Arduino/Genuino MKR1000

If the board is not detected for any reason, you can list all the supported boardswitharduino-cli board listall and also search for a specific board:

$arduino-cli board listall mkrBoard Name              FQBNArduino MKR FOX 1200    arduino:samd:mkrfox1200Arduino MKR GSM 1400    arduino:samd:mkrgsm1400Arduino MKR WAN 1300    arduino:samd:mkrwan1300Arduino MKR WiFi 1010   arduino:samd:mkrwifi1010Arduino MKRZERO         arduino:samd:mkrzeroArduino/Genuino MKR1000 arduino:samd:mkr1000

Great! Now we have the Board FQBN (Fully Qualified Board Name)arduino:samd:mkr1000and the Board Name look good, we are ready to compile and upload the sketch

Adding 3rd party cores

To add 3rd party core packages add a link of the additional package to the filearduino-cli.yaml

If you want to add the ESP8266 core, for example:

board_manager:additional_urls:    -http://arduino.esp8266.com/stable/package_esp8266com_index.json

And then run:

$arduino-cli core update-indexUpdating index: package_index.json downloadedUpdating index: package_esp8266com_index.json downloadedUpdating index: package_index.json downloaded$arduino-cli core search esp8266ID              Version Nameesp8266:esp8266 2.5.2   esp8266

Alternatively, you can pass the--additional-urls to any command involving the additional cores:

$arduino-cli core update-index --additional-urls http://arduino.esp8266.com/stable/package_esp8266com_index.json$$arduino-cli core search esp8266 --additional-urls http://arduino.esp8266.com/stable/package_esp8266com_index.jsonID              Version Nameesp8266:esp8266 2.5.2   esp8266

Step 5. Compile the sketch

To compile the sketch we have to run thecompile command with the proper FQBN we just got in theprevious command.

$arduino-cli compile --fqbn arduino:samd:mkr1000 Arduino/MyFirstSketchSketch uses 9600 bytes (3%) of program storage space. Maximum is 262144 bytes.

Step 6. Upload your sketch

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

$arduino-cli upload -p /dev/ttyACM0 --fqbn arduino:samd:mkr1000 Arduino/MyFirstSketchNo new serial port detected.Atmel SMART device 0x10010005 foundDevice       : ATSAMD21G18AChip ID      : 10010005Version      : v2.0 [Arduino:XYZ] Dec 20 2016 15:36:43Address      : 8192Pages        : 3968Page Size    : 64 bytesTotal Size   : 248KBPlanes       : 1Lock Regions : 16Locked       : noneSecurity     : falseBoot Flash   : trueBOD          : trueBOR          : trueArduino      : FAST_CHIP_ERASEArduino      : FAST_MULTI_PAGE_WRITEArduino      : CAN_CHECKSUM_MEMORY_BUFFERErase flashdone in 0.784 secondsWrite 9856 bytes to flash (154 pages)[==============================] 100% (154/154 pages)done in 0.069 secondsVerify 9856 bytes of flash with checksum.Verify successfuldone in 0.009 secondsCPU reset.

Step 7. Add libraries

Now we can try to add a useful library to our sketch. We can at first look at the name of a library,our favourite one is the wifi101, here the command to get more info:

$arduino-cli lib search wifi101Name: "WiFi101OTA"  Author:  Arduino  Maintainer:  Arduino <info@arduino.cc>  Sentence:  Update sketches to your board over WiFi  Paragraph:  Requires an SD card and SAMD board  Website:  http://www.arduino.cc/en/Reference/WiFi101OTA  Category:  Other  Architecture:  samd  Types:  Arduino  Versions:  [1.0.2, 1.0.0, 1.0.1]Name: "WiFi101"  Author:  Arduino  Maintainer:  Arduino <info@arduino.cc>  Sentence:  Network driver for ATMEL WINC1500 module (used on Arduino/Genuino Wifi Shield 101 and MKR1000 boards)  Paragraph:  This library implements a network driver for devices based on the ATMEL WINC1500 wifi module  Website:  http://www.arduino.cc/en/Reference/WiFi101  Category:  Communication  Architecture:  *  Types:  Arduino  Versions:  [0.5.0, 0.6.0, 0.10.0, 0.11.0, 0.11.1, 0.11.2, 0.12.0, 0.15.2, 0.8.0, 0.9.0, 0.12.1, 0.14.1, 0.14.4, 0.14.5, 0.15.1, 0.7.0, 0.14.0, 0.14.2, 0.14.3, 0.9.1, 0.13.0, 0.15.0, 0.5.1]

We are now ready to install it! Please be sure to use the full name of the lib as specified in the"Name:" section previously seen:

$arduino-cli lib install"WiFi101"Downloading libraries...WiFi101@0.15.2 downloadedInstalled WiFi101@0.15.2

Inline Help

arduino-cli is a container of commands, to see the full list just run:

$arduino-cliArduino Command Line Interface (arduino-cli).Usage:  arduino-cli [command]Examples:arduino <command> [flags...]Available Commands:  board         Arduino board commands.  compile       Compiles Arduino sketches.  config        Arduino Configuration Commands.  core          Arduino Core operations.  help          Help about any command  lib           Arduino commands about libraries.  sketch        Arduino CLI Sketch Commands.  upload        Upload Arduino sketches.  version       Shows version number of Arduino CLI.  ....

Each command has his own specific help that can be obtained with thehelp command, for example:

$arduino-clihelp coreArduino Core operations.Usage:  arduino-cli core [command]Examples:arduino-cli core update-index # to update the package index file.Available Commands:  download     Downloads one or more cores and corresponding tool dependencies.  install      Installs one or more cores and corresponding tool dependencies.  list         Shows the list of installed cores.  update-index Updates the index of cores.Flags:  -h, --help   help for coreGlobal Flags:      --config-file string   The custom config file (if not specified the default one will be used).      --debug                Enables debug output (super verbose, used to debug the CLI).      --format string        The output format, can be [text|json]. (default "text")Use "arduino-cli core [command] --help" for more information about a command.

FAQ

Why the Arduino Uno/Mega/Duemilanove is not detected when I runarduino-cli board list?

Because:

  • Your board is a cheaper clone, or
  • It mounts a USB2Serial converter like FT232 or CH320: these chips always reports the same USBVID/PID to the operating system, so the only thing that we know is that the board mounts thatspecific USB2Serial chip, but we don't know which board is.

What is the core for the Uno/Mega/Nano/Duemilanove?

arduino:avr

What is the FQBN for ...?

  • Arduino UNO:arduino:avr:uno
  • Arduino Mega:arduino:avr:mega
  • Arduino Nano:arduino:avr:nano orarduino:avr:nano:cpu=atmega328old if you have the old bootloader

How can I find the core/FQBN for a board?

Update the core index to have latest boards informations:

$arduino-cli core update-indexUpdating index: package_index.json downloaded

See:https://github.com/arduino/arduino-cli#step-4-find-and-install-the-right-core

Further help can be found inthis comment in#138.

For a deeper understanding of how FQBN works, you should understand Arduino Hardware specification.You can find more information in thisarduino/Arduino wiki page

Using the gRPC interface

Theclient_example folder contains a sample program thatshows how to use gRPC interface of the CLI.


[8]ページ先頭

©2009-2025 Movatter.jp