arduino-cli-dat
https://github.com/arduino/arduino-cli
https://arduino.github.io/arduino-cli/1.2/getting-started/
install on windows
https://downloads.arduino.cc/arduino-cli/arduino-cli_latest_Windows_64bit.zip
Create a configuration file and a new sketch:
$ arduino-cli config init
Config file written: /home/luca/.arduino15/arduino-cli.yaml
C:\Users\Administrator>arduino-cli config init
Config file written to: C:\Users\Administrator\AppData\Local\Arduino15\arduino-cli.yaml
$ arduino-cli sketch new MyFirstSketch
Sketch created in: /home/luca/MyFirstSketch
work flow
- Search library for example - arduino-cli lib search TimeLib
- Install library - arduino-cli lib install "ArduinoJson" "Time" "ESP32 HUB75 LED MATRIX PANEL DMA Display" "Adafruit GFX Library" "SimpleDHT"
- CD into sketch folder - cd MyFirstSketch
- compile arduino-cli compile --fqbn esp32:esp32:esp32 .
install boards
arduino-cli board list
Port Protocol Type Board Name FQBN Core
COM1 serial Serial Port Unknown
COM8 serial Serial Port (USB) LilyGo T-Display esp32:esp32:lilygo_t_display esp32:esp32
arduino-cli core list
arduino-cli core install arduino:samd
arduino-cli board listall mkr
C:\Users\Administrator>arduino-cli core list
ID Installed Latest Name
arduino:avr 1.8.6 1.8.6 Arduino AVR Boards
DxCore:megaavr 1.5.11 1.5.11 DxCore
esp32:esp32 3.2.1 3.2.1 esp32
esp8266:esp8266 3.1.2 3.1.2 ESP8266 Boards (3.1.2)
megaTinyCore:megaavr 2.6.10 2.6.10 megaTinyCore
board manager
board_manager:
additional_urls:
- https://arduino.esp8266.com/stable/package_esp8266com_index.json
- https://arduino.esp8266.com/stable/package_esp8266com_index.json
- file:///absolute/path/to/your/package_nrf52832_index.json
search and udpate
$ arduino-cli core update-index
Updating index: package_index.json downloaded
Updating index: package_esp8266com_index.json downloaded
Updating index: package_nrf52832_index.json
Updating index: package_index.json downloaded
$ arduino-cli core search esp8266
ID Version Name
esp8266:esp8266 2.5.2 esp8266
compile and upload
# Generic ESP8266 Module
arduino-cli compile --fqbn esp8266:esp8266:generic .
arduino-cli compile --fqbn esp8266:esp8266:generic esp8266-SX126x_Transmit
arduino-cli compile --fqbn esp8266:esp8266:generic PingPong
arduino-cli compile --fqbn esp32:esp32:esp32 .
arduino-cli compile --fqbn esp32:esp32:esp32:PartitionScheme=huge_app .
arduino-cli compile --fqbn esp32:esp32:lilygo_t_display esp8266-PingPong
arduino-cli compile --fqbn esp8266:esp8266 esp8266-PingPong
arduino-cli compile --fqbn arduino:samd:mkr1000 MyFirstSketch
arduino-cli upload -p /dev/ttyACM0 --fqbn arduino:samd:mkr1000 MyFirstSketch
compile for esp32 dev module
arduino-cli compile --fqbn esp32:esp32:esp32 rtos-cam-web-2
compile add extra includes
arduino-cli compile --fqbn esp8266:esp8266:generic --build-property compiler.cpp.extra_flags="-I../include" .
arduino-cli compile --fqbn esp8266:esp8266:generic --build-property compiler.cpp.extra_flags="-IE:\Git-category\Git-Arduino\arduino-esp8266\Libraries\EPD_Libraries-master\epd2in13" .
add extra libraries path
Create or edit arduino-cli.yaml (by default it lives in %USERPROFILE%\AppData\Local\Arduino15\arduino-cli.yaml on Windows).
Add a directories.libraries section pointing to your folder, e.g.:
directories:
data: C:\Users\Administrator\AppData\Local\Arduino15
downloads: C:\Users\Administrator\AppData\Local\Arduino15\staging
user: C:\Users\Administrator\Documents\Arduino
libraries:
- E:\Git-category\Git-Arduino\arduino-esp8266\Libraries
upload
esptool erase-flash
arduino-cli upload -p COM21 --fqbn esp32:esp32:esp32 --verbose --upload-field speed=921600 .
arduino-cli upload -p COM19 --fqbn esp32:esp32:esp32 --verbose --upload-field speed=921600 .
# --upload-field speed=921600 (fastest)
arduino-cli upload -p COM8 --fqbn esp8266:esp8266:generic --verbose PingPong
arduino-cli upload -p COM8 --fqbn esp32:esp32:esp32 --verbose rtos-cam-web-2
library
arduino-cli lib search debouncer arduino-cli lib search SSD1306Wire arduino-cli lib search RadioLib arduino-cli lib search SX126x
E:\Git-category\Git-Arduino\Arduino-ESP32\BSP\ESP\ESP1000-ESP32-tori>arduino-cli lib search SSD1306Wire
Name: "SSD1306wire"
Author: Alexander Pronin <[email protected]>
Maintainer: Alexander Pronin <[email protected]>
Sentence: Display text on OLED module SSD1306 with I2C.
Paragraph: It allow dipslay text on SSD1306 communication with I2C.
Website: https://gitlab.com/alexpr0/ssd1306wire.git
Category: Display
Architecture: avr
Types: Contributed
Versions: [2.0.1]
arduino-cli lib install "RadioLib"
arduino-cli lib install FTDebouncer
arduino-cli lib install SSD1306Wire
arduino-cli lib install "SX126x-Arduino"
arduino-cli lib install SSD1306Wire
Downloading [email protected]...
[email protected] downloaded
Installing [email protected]...
Installed [email protected]
"ESP8266 and ESP32 OLED driver for SSD1306 displays"
arduino-cli lib install "ESP8266 and ESP32 OLED driver for SSD1306 displays"
Downloading ESP8266 and ESP32 OLED driver for SSD1306 [email protected]...
ESP8266 and ESP32 OLED driver for SSD1306 [email protected] downloaded
Installing ESP8266 and ESP32 OLED driver for SSD1306 [email protected]...
Installed ESP8266 and ESP32 OLED driver for SSD1306 [email protected]
arduino-cli lib search BMx280MI
Name: "BMx280MI"
Author: Gregor Christandl <[email protected]>
Maintainer: Gregor Christandl <[email protected]>
Sentence: A library for the Bosch Sensortec BME280 and BMP280 Digital Pressure Sensors.
Paragraph: The library supports both the SPI (via the SPI Library) and I2C (via the Wire Library) interfaces. Use of other I2C / SPI libraries (e.g. software I2C) is supported by inheritance. Supports 64 bit pressure calculation.
Website: https://bitbucket.org/christandlg/bmx280mi
Category: Sensors
Architecture: *
Types: Contributed
Versions: [0.0.1, 0.0.2, 1.0.0, 1.1.0, 1.1.1, 1.1.2, 1.2.0, 1.2.1, 1.2.2, 1.2.3]
lib manage
If you're managing libraries manually (e.g., cloned to ~/Arduino/libraries/), make sure it's in the default path or explicitly reference it in your arduino-cli.yaml config if you moved it.
Let me know if you need help installing manually or verifying the include paths.
list lib
arduino-cli lib list
Name Installed Available Location Description
BMx280MI 1.2.3 - user -
ESP8266 and ESP32 OLED driver for SSD1306 displays 4.6.1 - user -
SSD1306wire 2.0.1 - user -
== D:\HE\Documents\Arduino\libraries