ESP8266 - Arduino

Gotcha's

  • It seems the LED_BUILTIN pin is a pullup so when you set it low: digitalWrite(LED_BUILTIN, LOW) It will be HIGH, and vice versa. D4 is the pin associated with the actual written value

Create sketch, compile, and upload

  1. arduino-cli sketch new my-sketch
  2. Edit sketch to your liking (see starter script "on this page")
  3. arduino-cli compile --fqbn esp8266:esp8266:d1_mini my-sketch
  4. arduino-cli upload -p /dev/ttyUSB0 --fqbn esp8266:esp8266:d1_mini my-sketch

Initialize config

arduino-cli config init

# you will also need to add esp8266 package index to your config file after created
# see "Install esp8266 package index" on this page
        

Install esp8266 package index

add this to your board_manager key in your arduino-cli.yaml file

board_manager:
  additional_urls: ['https://arduino.esp8266.com/stable/package_esp8266com_index.json']
# note the added url for esp8266

# Then you have to run:
arduino-cli core update-index
arduino-cli core install esp8266:esp8266

# should be good now to get board fqbn's, compile and upload
        

Get board fqbn's

arduino-cli board listall
# if no boards show up here then run the following:
arduino-cli core install esp8266:esp8266
        

Starter script

void setup() {
    pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
    digitalWrite(LED_BUILTIN, HIGH);
    delay(1000);
    digitalWrite(LED_BUILTIN, LOW);
    delay(1000);
}
        

Full Process (unedited history of commands)

9927  tar -xzvf arduino-cli_0.22.0_Linux_64bit.tar.gz
9928  ls
9929  vim arduino-cli
9930  rm arduino-cli_0.22.0_Linux_64bit.tar.gz
9931  rm LICENSE.txt
9932  mv arduino-cli ~/.local/bin
9933  arduino-cli 0h
9934  arduino-cli -h
9935  arduino-cli help core
9936  arduino-cli -h
9937  mkdir arduino
9938  cd arduino
9939  arduino
9940  arduino-cli config init
9941  cd ..
9942  cd .arduino15
9943  ls
9944  vim arduino-cli.yaml
9945  cd ../arduino
9946  arduino-cli sketch new MyFirstSketch
9947  ls
9948  touch log.log
9949  arduino-cli sketch new MyFirstSketch
9950  ls
9951  rm log.log
9952  cd ../.arduino15
9953  vim arduino-cli.yaml
9954  cd ..
9955  cd arduino
9956  arduino-cli sketch new MyFirstSketch
9957  ls
9958  vim log.log
9959  vim MyFirstSketch
9960  cd MyFirstSketch
9961  ls
9962  vim MyFirstSketch.ino
9963  cd ..
9964  arduino-cli core update-index
9965  ls
9966  vim log.log
9967  cd ../.arduino15
9968  ls
9969  vim package_index.json
9970  arduino-cli board list
9971  cd ../arduino
9972  arduino-cli board list
9973  arduino-cli -h
9974  arduino-cli help board
9975  arduino-cli help core
9976  arduino-cli core download https://arduino.esp8266.com/stable/package_esp8266com_index.json
9977  arduino-cli lib download https://arduino.esp8266.com/stable/package_esp8266com_index.json
9978  arduino-cli core update-index
9979  arduino-cli core list
9980  arduino-cli core search
9981  cd ../.arduino15
9982  ls
9983  vim arduino-cli.yaml
9984  arduino-cli core update-index
9985  arduino-cli core search esp8266
9986  cd arduino
9987  arduino-cli board list
9988  arduino-cli board listall
9989  arduino-cli core install esp8266:esp8266
9990  arduino-cli board listall
9991  arudino-cli compile --fqbn esp8266:esp8266:d1_mini MyFirstSketch
9992  arduino-cli compile --fqbn esp8266:esp8266:d1_mini MyFirstSketch
9993  arduino-cli board list
9994  arduino-cli help upload
9995  arduino-cli upload -p /dev/ttyUSB0 MyFirstSketch
9996  arduino-cli boards listall
9997  arduino-cli board listall
9998  arduino-cli upload -p /dev/ttyUSB0 --fqbn esp8266:esp8266:d1_mini MyFirstSketch