Installing

Boards Manager

This is the suggested installation method for end users.

Prerequisites

Instructions

  • Start Arduino and open Preferences window.

  • Enterhttps://arduino.esp8266.com/stable/package_esp8266com_index.jsonintoAdditional Board Manager URLs field. You can add multipleURLs, separating them with commas.

  • Open Boards Manager from Tools > Board menu and findesp8266platform.

  • Select the version you need from a drop-down box.

  • Clickinstall button.

  • Don’t forget to select your ESP8266 board from Tools > Board menuafter installation.

For more information on the Arduino Board Manager, see:

Using git version

This is the suggested installation method for contributors and librarydevelopers.

Prerequisites

Instructions - Windows 10

  • First, make sure you don’t already have an ESP8266 core version installedusing the Board Manager (see above). If you do, uninstall it from theBoard Manager before proceeding. It is also advisable to erase the Arduino15contents.

  • Install git for Windows (if not already; seehttps://git-scm.com/download/win)

  • Open a command prompt (cmd) and go to Arduino default directory. This is typically thesketchbook directory (usuallyC:\Users\{username}\Documents\Arduino where the environment variable%USERPROFILE% usually containsC:\Users\{username})

  • Clone this repository into hardware/esp8266com/esp8266 directory.

    cd%USERPROFILE%\Documents\Arduino\ifnotexisthardwaremkdirhardwarecdhardwareifnotexistesp8266commkdiresp8266comcdesp8266comgitclonehttps://github.com/esp8266/Arduino.gitesp8266

    You should end up with the following directory structure in

    C:\Users\{yourusername}\Documents\

    Arduino|---libraries---hardware|---esp8266com|---esp8266|---bootloaders---cores---doc---libraries---package---tests---tools---variants---platform.txt---programmers.txt---README.md---boards.txt---LICENSE
  • Initialize submodules to fetch external libraries

    cd%USERPROFILE%\Documents\Arduino\hardware\esp8266com\esp8266gitsubmoduleupdate--init

Not doing this step would cause build failure when attempting to includeSoftwareSerial.h,Ethernet.h, etc.See our.gitmodules file for the full list.

  • Download binary tools

    cdtoolspython3get.py
  • Restart Arduino

  • If using the Arduino IDE for Visual Studio (https://www.visualmicro.com/), be sure to click Tools - Visual Micro - Rescan Toolchains and Libraries

  • When later updating your local library, goto the esp8266 directory and do a git pull

    cd%USERPROFILE%\Documents\Arduino\hardware\esp8266com\esp8266gitstatusgitpull

Note that you could, in theory install inC:\ProgramFiles(x86)\Arduino\hardware however this has security implications, not to mention the directory often gets blown away when re-installing Arduino IDE. It does have the benefit (or drawback, depending on your perspective) - of being available to all users on your PC that use Arduino.

Instructions - Other OS

  • First, make sure you don’t already have an ESP8266 core version installedusing the Board Manager (see above). If you do, uninstall it from theBoard Manager before proceeding. It is also advisable to erase the .arduino15 (Linux)or Arduino15 (MacOS) contents.

  • Open the console and go to Arduino directory. This can be either yoursketchbook directory (usually<Documents>/Arduino), or thedirectory of Arduino application itself, the choice is up to you.

  • Clone this repository into hardware/esp8266com/esp8266 directory.Alternatively, clone it elsewhere and create a symlink, if your OSsupports them.

    cdhardwaremkdiresp8266comcdesp8266comgitclonehttps://github.com/esp8266/Arduino.gitesp8266

    You should end up with the following directory structure:

    Arduino|---hardware|---esp8266com|---esp8266|---bootloaders---cores---doc---libraries---package---tests---tools---variants---platform.txt---programmers.txt---README.md---boards.txt---LICENSE
  • Initialize submodules to fetch external libraries

    cdesp8266gitsubmoduleupdate--init

Not doing this step would cause build failure when attempting to includeSoftwareSerial.h,Ethernet.h, etc.See our.gitmodules file for the full list.

  • Download binary tools

    cdtoolspython3get.py

If you get an error message stating that python3 is not found, you will need to install it (most modern UNIX-like OSes provide Python 3 aspart of the default install). To install you will need to usesudoyuminstallpython3,sudoaptinstallpython3, orbrewinstallpython3as appropriate. On the Mac you may get an error message like:

python3get.pyPlatform:x86_64-apple-darwinDownloadingpython3-macosx-placeholder.tar.gzTraceback(mostrecentcalllast):File"/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/urllib/request.py",line1317,indo_openencode_chunked=req.has_header('Transfer-encoding'))...File"/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/ssl.py",line1117,indo_handshakeself._sslobj.do_handshake()ssl.SSLCertVerificationError:[SSL:CERTIFICATE_VERIFY_FAILED]certificateverifyfailed:unabletogetlocalissuercertificate(_ssl.c:1056)

This is because Homebrew on the Mac does not always install the required SSL certificates by default. Install them manually (adjust the Python 3.7 as needed) with:

cd"/Applications/Python 3.7/"&&sudo"./Install Certificates.command"
  • Restart Arduino

  • When later updating your local library, goto the esp8266 directory and do a git pull

    cdhardware\esp8266com\esp8266gitstatusgitpull

Maintaining

To keep up with the development branch

gitswitch--recurse-submodules--discard-changesmastergitpull--recurse-submodulescdtoolspython3get.py

Pull requests

To test not yet merged Pull Request, first you have to find its ID number. This is the sequence of digits right after the pull request title.

Open terminal and cd into the directory where the repository was previously cloned. For example, 12345 is the Pull Request ID

gitfetchoriginpull/12345/headgitswitch--detach--recurse-submodules--discard-changesFETCH_HEAD

When Pull Request updates packaged tools, make sure to also fetch their latest versions.

cdtoolspython3get.py

To go back to using the development branch

gitswitch--recurse-submodules--discard-changesmastergitpull--recurse-submodules

Using PlatformIO

PlatformIOis an open source ecosystem for IoT development with a cross-platformbuild system, a library manager, and full support for Espressif(ESP8266) development. It works on the following popular host operatingsystems: macOS, Windows, Linux 32/64, and Linux ARM (like Raspberry Pi,BeagleBone, CubieBoard).