Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork436
arduino/arduino-cli
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
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 in alpha state: new features will be added and some may be changed.
It will be soon used as a building block in the Arduino IDE and Arduino Create.
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.
This isnot yet available until the first stable version is released.
Please note that these arepreview builds, they may have bugs, some features may not work or maybe changed without notice, the latest preview version is0.3.7-alpha.preview:
Once downloaded, place the executablearduino-cli into a directory which is in yourPATHenvironment variable.
These builds are generated once a day frommaster branch starting at 23:00 UTC
Once downloaded, place the executablearduino-cli into a directory which is in yourPATHenvironment variable.
- You should have a recent Go compiler installed.
- Run
go get -u github.com/arduino/arduino-cli - The
arduino-cliexecutable will be produced in$GOPATH/bin/arduino-cli
You may want to copy the executable into a directory which is in yourPATH environment variable(such as/usr/local/bin/).
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.
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() {}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:
void setup() { pinMode(LED_BUILTIN, OUTPUT);}void loop() { digitalWrite(LED_BUILTIN, HIGH); delay(1000); digitalWrite(LED_BUILTIN, LOW); delay(1000);}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 downloadedNow, 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 unknownthe board has been discovered but we do not have the correct core to program it yet.Let's install it!
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 Installed NameIntel:arc32 2.0.2 No Intel Curie Boardsarduino:avr 1.6.21 No Arduino AVR Boardsarduino:nrf52 1.0.2 No Arduino nRF52 Boardsarduino:sam 1.6.11 No Arduino SAM Boards (32-bits ARM Cortex-M3)arduino:samd 1.6.18 No Arduino SAMD Boards (32-bits ARM Cortex-M0+)arduino:stm32f4 1.0.1 No Arduino STM32F4 BoardslittleBits:avr 1.0.0 No littleBits Arduino AVR ModulesIf 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 Installed Namearduino:samd 1.6.19 No 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 - InstalledNow 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 MKR1000If 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:mkr1000Great! 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
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.jsonAnd then run:
arduino-cli core update-indexarduino-cli core install esp8266:esp8266To 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.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.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.2arduino-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-cli help 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.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.
arduino:avr
- Arduino UNO:
arduino:avr:uno - Arduino Mega:
arduino:avr:mega - Arduino Nano:
arduino:avr:nanoorarduino:avr:nano:cpu=atmega328oldif you have the old bootloader
Update the core index to have latest boards informations:
$ arduino-cli core update-indexUpdating index: package_index.json downloadedSee: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
About
Arduino command line tool
Topics
Resources
License
Contributing
Security policy
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Sponsor this project
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.