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

Tests passingNightly buildcodecov

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.

✨ Thanks to all ourcontributors! ✨

How to install

Get the latest package

You have several options to install the latest version of the Arduino CLIon your system.

Install via Homebrew (macOS/Linux)

The Arduino CLI is available as a Homebrew formula since version0.5.0:

brew updatebrew install arduino-cli

Use the install script

The easiest way to get the latest version ofarduino-cli on any supportedplatform 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

Download the latest packages from Arduino CDN

In order to get the latest stable release for your platform you can use thefollowing links:

These links return a302: Found response, redirecting to latest generated builds by replacinglatest with the latestavailable stable release. Once downloaded, place the executablearduino-cli into a directory which is in yourPATH.

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.

Download the latest package from the release page on GitHub

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

Get 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 using Docker

If you don't have a working Golang environment or if you want to buildarduino-cli targeting different platforms, you can use Docker to get a binarydirectly from sources. From the project folder run:

docker run -v $PWD:/arduino-cli -w /arduino-cli -e PACKAGE_NAME_PREFIX='snapshot' arduino/arduino-cli:builder-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 namedMyFirstSketch in the current directory

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

Step 2. Modify your sketch

Use your favourite file editor or IDE to modify the .ino file, in this exampleunder:$HOME/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 listPort         Type              Board Name              FQBN                 Core/dev/ttyACM1 Serial Port (USB) Arduino/Genuino MKR1000 arduino:samd:mkr1000 arduino:samd

the board has been discovered but we need the correct core to program it, let'sinstall it!

Step 4. Install the core for your board

From the output of theboard list command, the right platform for the ArduinoMKR1000 isarduino:samd, we can install it with:

$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+)

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 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 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 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