Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ Documentation for latest development version:
- [Reference](doc/reference.md)
- [Libraries](doc/libraries.md)
- [File system](doc/filesystem.md)
- [OTA update](doc/ota_updates/ota_updates.md)
- [OTA update](doc/ota_updates/readme.md)
- [Supported boards](doc/boards.md)
- [Change log](doc/changes.md)

Expand Down
90 changes: 0 additions & 90 deletions boards.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ menu.CpuFrequency=CPU Frequency
menu.FlashSize=Flash Size
menu.FlashMode=Flash Mode
menu.FlashFreq=Flash Frequency
menu.UploadTool=Upload Using
menu.ResetMethod=Reset Method
menu.ESPModule=Module
menu.Debug=Debug port
Expand Down Expand Up @@ -31,12 +30,6 @@ generic.build.spiffs_pagesize=256
generic.build.debug_port=
generic.build.debug_level=

generic.menu.UploadTool.esptool=Serial
generic.menu.UploadTool.esptool.upload.tool=esptool
generic.menu.UploadTool.esptool.upload.verbose=-vv
generic.menu.UploadTool.espota=OTA
generic.menu.UploadTool.espota.upload.tool=espota

generic.menu.CpuFrequency.80=80 MHz
generic.menu.CpuFrequency.80.build.f_cpu=80000000L
generic.menu.CpuFrequency.160=160 MHz
Expand Down Expand Up @@ -260,12 +253,6 @@ espduino.menu.CpuFrequency.80.build.f_cpu=80000000L
espduino.menu.CpuFrequency.160=160 MHz
espduino.menu.CpuFrequency.160.build.f_cpu=160000000L

espduino.menu.UploadTool.esptool=Serial
espduino.menu.UploadTool.esptool.upload.tool=esptool
espduino.menu.UploadTool.esptool.upload.verbose=-vv
espduino.menu.UploadTool.espota=OTA
espduino.menu.UploadTool.espota.upload.tool=espota

espduino.menu.UploadSpeed.115200=115200
espduino.menu.UploadSpeed.115200.upload.speed=115200
espduino.menu.UploadSpeed.9600=9600
Expand Down Expand Up @@ -329,10 +316,6 @@ huzzah.menu.CpuFrequency.80.build.f_cpu=80000000L
huzzah.menu.CpuFrequency.160=160 MHz
huzzah.menu.CpuFrequency.160.build.f_cpu=160000000L

huzzah.menu.UploadTool.esptool=Serial
huzzah.menu.UploadTool.esptool.upload.tool=esptool
huzzah.menu.UploadTool.esptool.upload.verbose=-vv

huzzah.menu.UploadSpeed.115200=115200
huzzah.menu.UploadSpeed.115200.upload.speed=115200
huzzah.menu.UploadSpeed.9600=9600
Expand Down Expand Up @@ -382,13 +365,6 @@ espresso_lite_v1.menu.CpuFrequency.80.build.f_cpu=80000000L
espresso_lite_v1.menu.CpuFrequency.160=160 MHz
espresso_lite_v1.menu.CpuFrequency.160.build.f_cpu=160000000L

espresso_lite_v1.menu.UploadTool.esptool=Serial
espresso_lite_v1.menu.UploadTool.esptool.upload.tool=esptool
espresso_lite_v1.menu.UploadTool.esptool.upload.verbose=-vv

espresso_lite_v1.menu.UploadTool.espota=OTA
espresso_lite_v1.menu.UploadTool.espota.upload.tool=espota

espresso_lite_v1.menu.UploadSpeed.115200=115200
espresso_lite_v1.menu.UploadSpeed.115200.upload.speed=115200
espresso_lite_v1.menu.UploadSpeed.57600=57600
Expand Down Expand Up @@ -454,14 +430,6 @@ espresso_lite_v2.menu.CpuFrequency.80.build.f_cpu=80000000L
espresso_lite_v2.menu.CpuFrequency.160=160 MHz
espresso_lite_v2.menu.CpuFrequency.160.build.f_cpu=160000000L

espresso_lite_v2.menu.UploadTool.esptool=Serial
espresso_lite_v2.menu.UploadTool.esptool.upload.tool=esptool
espresso_lite_v2.menu.UploadTool.esptool.upload.verbose=-vv

espresso_lite_v2.menu.UploadTool.espota=OTA
espresso_lite_v2.menu.UploadTool.espota.upload.tool=espota


espresso_lite_v2.menu.UploadSpeed.115200=115200
espresso_lite_v2.menu.UploadSpeed.115200.upload.speed=115200
espresso_lite_v2.menu.UploadSpeed.57600=57600
Expand Down Expand Up @@ -533,10 +501,6 @@ nodemcu.menu.CpuFrequency.80.build.f_cpu=80000000L
nodemcu.menu.CpuFrequency.160=160 MHz
nodemcu.menu.CpuFrequency.160.build.f_cpu=160000000L

nodemcu.menu.UploadTool.esptool=Serial
nodemcu.menu.UploadTool.esptool.upload.tool=esptool
nodemcu.menu.UploadTool.esptool.upload.verbose=-vv

nodemcu.menu.UploadSpeed.115200=115200
nodemcu.menu.UploadSpeed.115200.upload.speed=115200
nodemcu.menu.UploadSpeed.9600=9600
Expand Down Expand Up @@ -601,12 +565,6 @@ nodemcuv2.menu.CpuFrequency.80.build.f_cpu=80000000L
nodemcuv2.menu.CpuFrequency.160=160 MHz
nodemcuv2.menu.CpuFrequency.160.build.f_cpu=160000000L

nodemcuv2.menu.UploadTool.esptool=Serial
nodemcuv2.menu.UploadTool.esptool.upload.tool=esptool
nodemcuv2.menu.UploadTool.esptool.upload.verbose=-vv
nodemcuv2.menu.UploadTool.espota=OTA
nodemcuv2.menu.UploadTool.espota.upload.tool=espota

nodemcuv2.menu.UploadSpeed.115200=115200
nodemcuv2.menu.UploadSpeed.115200.upload.speed=115200
nodemcuv2.menu.UploadSpeed.9600=9600
Expand Down Expand Up @@ -678,10 +636,6 @@ modwifi.menu.CpuFrequency.80.build.f_cpu=80000000L
modwifi.menu.CpuFrequency.160=160 MHz
modwifi.menu.CpuFrequency.160.build.f_cpu=160000000L

modwifi.menu.UploadTool.esptool=Serial
modwifi.menu.UploadTool.esptool.upload.tool=esptool
modwifi.menu.UploadTool.esptool.upload.verbose=-vv

modwifi.menu.UploadSpeed.115200=115200
modwifi.menu.UploadSpeed.115200.upload.speed=115200
modwifi.menu.UploadSpeed.9600=9600
Expand Down Expand Up @@ -736,10 +690,6 @@ thing.menu.CpuFrequency.80.build.f_cpu=80000000L
thing.menu.CpuFrequency.160=160 MHz
thing.menu.CpuFrequency.160.build.f_cpu=160000000L

thing.menu.UploadTool.esptool=Serial
thing.menu.UploadTool.esptool.upload.tool=esptool
thing.menu.UploadTool.esptool.upload.verbose=-vv

thing.menu.UploadSpeed.115200=115200
thing.menu.UploadSpeed.115200.upload.speed=115200
thing.menu.UploadSpeed.9600=9600
Expand Down Expand Up @@ -789,10 +739,6 @@ thingdev.menu.CpuFrequency.80.build.f_cpu=80000000L
thingdev.menu.CpuFrequency.160=160 MHz
thingdev.menu.CpuFrequency.160.build.f_cpu=160000000L

thingdev.menu.UploadTool.esptool=Serial
thingdev.menu.UploadTool.esptool.upload.tool=esptool
thingdev.menu.UploadTool.esptool.upload.verbose=-vv

thingdev.menu.UploadSpeed.115200=115200
thingdev.menu.UploadSpeed.115200.upload.speed=115200
thingdev.menu.UploadSpeed.9600=9600
Expand Down Expand Up @@ -840,10 +786,6 @@ esp210.menu.CpuFrequency.80.build.f_cpu=80000000L
esp210.menu.CpuFrequency.160=160 MHz
esp210.menu.CpuFrequency.160.build.f_cpu=160000000L

esp210.menu.UploadTool.esptool=Serial
esp210.menu.UploadTool.esptool.upload.tool=esptool
esp210.menu.UploadTool.esptool.upload.verbose=-vv

esp210.menu.UploadSpeed.57600=57600
esp210.menu.UploadSpeed.57600.upload.speed=57600
esp210.menu.UploadSpeed.115200=115200
Expand Down Expand Up @@ -935,13 +877,6 @@ d1_mini.menu.CpuFrequency.80.build.f_cpu=80000000L
d1_mini.menu.CpuFrequency.160=160 MHz
d1_mini.menu.CpuFrequency.160.build.f_cpu=160000000L

d1_mini.menu.UploadTool.esptool=Serial
d1_mini.menu.UploadTool.esptool.upload.tool=esptool
d1_mini.menu.UploadTool.esptool.upload.verbose=-vv

d1_mini.menu.UploadTool.espota=OTA
d1_mini.menu.UploadTool.espota.upload.tool=espota

d1_mini.menu.UploadSpeed.921600=921600
d1_mini.menu.UploadSpeed.921600.upload.speed=921600
d1_mini.menu.UploadSpeed.115200=115200
Expand Down Expand Up @@ -1008,13 +943,6 @@ d1.menu.CpuFrequency.80.build.f_cpu=80000000L
d1.menu.CpuFrequency.160=160 MHz
d1.menu.CpuFrequency.160.build.f_cpu=160000000L

d1.menu.UploadTool.esptool=Serial
d1.menu.UploadTool.esptool.upload.tool=esptool
d1.menu.UploadTool.esptool.upload.verbose=-vv

d1.menu.UploadTool.espota=OTA
d1.menu.UploadTool.espota.upload.tool=espota

d1.menu.UploadSpeed.921600=921600
d1.menu.UploadSpeed.921600.upload.speed=921600
d1.menu.UploadSpeed.115200=115200
Expand Down Expand Up @@ -1078,12 +1006,6 @@ espino.build.spiffs_pagesize=256
espino.build.debug_port=
espino.build.debug_level=

espino.menu.UploadTool.esptool=Serial
espino.menu.UploadTool.esptool.upload.tool=esptool
espino.menu.UploadTool.esptool.upload.verbose=-vv
espino.menu.UploadTool.espota=OTA
espino.menu.UploadTool.espota.upload.tool=espota

espino.menu.CpuFrequency.80=80 MHz
espino.menu.CpuFrequency.80.build.f_cpu=80000000L
espino.menu.CpuFrequency.160=160 MHz
Expand Down Expand Up @@ -1161,12 +1083,6 @@ espinotee.menu.CpuFrequency.80.build.f_cpu=80000000L
espinotee.menu.CpuFrequency.160=160 MHz
espinotee.menu.CpuFrequency.160.build.f_cpu=160000000L

espinotee.menu.UploadTool.esptool=Serial
espinotee.menu.UploadTool.esptool.upload.tool=esptool
espinotee.menu.UploadTool.esptool.upload.verbose=-vv
espinotee.menu.UploadTool.espota=OTA
espinotee.menu.UploadTool.espota.upload.tool=espota

espinotee.menu.UploadSpeed.115200=115200
espinotee.menu.UploadSpeed.115200.upload.speed=115200
espinotee.menu.UploadSpeed.9600=9600
Expand Down Expand Up @@ -1301,12 +1217,6 @@ wifinfo.menu.ESPModule.ESP12.build.spiffs_blocksize=8192
wifinfo.menu.ESPModule.ESP12.build.spiffs_pagesize=256
wifinfo.menu.ESPModule.ESP12.upload.maximum_size=1044464

wifinfo.menu.UploadTool.esptool=Serial
wifinfo.menu.UploadTool.esptool.upload.tool=esptool
wifinfo.menu.UploadTool.esptool.upload.verbose=-vv
wifinfo.menu.UploadTool.espota=OTA
wifinfo.menu.UploadTool.espota.upload.tool=espota

wifinfo.menu.CpuFrequency.80=80 MHz
wifinfo.menu.CpuFrequency.80.build.f_cpu=80000000L
wifinfo.menu.CpuFrequency.160=160 MHz
Expand Down
Binary file modified doc/ota_updates/a-ota-ota-port-selection.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified doc/ota_updates/a-ota-ota-upload-complete.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified doc/ota_updates/a-ota-ota-upload-configuration.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified doc/ota_updates/a-ota-serial-upload-configuration.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified doc/ota_updates/a-ota-upload-complete-and-joined-wifi.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed doc/ota_updates/ota-ide-module-joined-wifi.png
Binary file not shown.
Binary file removed doc/ota_updates/ota-ide-ota-port-selection.png
Binary file not shown.
Binary file removed doc/ota_updates/ota-ide-ota-upload-complete.png
Binary file not shown.
Binary file removed doc/ota_updates/ota-ide-ota-upload-configuration.png
Binary file not shown.
Binary file not shown.
Binary file removed doc/ota_updates/ota-ide-sketch-selection.png
Binary file not shown.
Binary file removed doc/ota_updates/ota-ide-ssid-pass-entry.png
Binary file not shown.
109 changes: 16 additions & 93 deletions doc/ota_updates/ota_updates.md → doc/ota_updates/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,8 @@ title: OTA Update
* [Arduino IDE](#arduino-ide)
* [Requirements](#requirements)
* [Application Example](#application-example)
* [Classic OTA](#classic-ota)
* [ArduinoOTA](#arduinoota)
* [Password Protection](#password-protection)
* [Troubleshooting](#troubleshooting)
* [Password Protection](#password-protection)
* [Troubleshooting](#troubleshooting)
* [Web Browser](#web-browser)
* [Requirements](#requirements-1)
* [Implementation Overview](#implementation-overview)
Expand Down Expand Up @@ -108,93 +106,16 @@ Uploading modules wirelessly from Arduino IDE is intended for the following typi

### Application Example

Currently there are two software configurations that support OTA updates.
Instructions below show configuration of OTA on NodeMCU 1.0 (ESP-12E Module) board. You can use any other board assuming that it meets [requirements](#basic-requirements) described above. This instruction is valid for all operating systems supported by Arduino IDE. Screen captures have been made on Windows 7 and you may see small differences (like name of serial port) if you are using Linux and MacOS.

- [Classic OTA](#classic-ota-configuration): Arduino IDE 1.6.5 and 1.6.5-947-g39819f0 (of July 23, 2015) version of ESP8266 board support platform package that provides first OTA implementation, yet without support for [ArduinoOTA](https://github.com/esp8266/Arduino/tree/master/libraries/ArduinoOTA) library. This particular configuration soon will be depreciated in favor of new implementation described below.

- [ArduinoOTA](#arduinoota-configuration): Arduino IDE 1.6.7 and 2.0.0 version of platform package. Arduino IDE 1.6.7 is the first release that provides support for [ArduinoOTA](https://github.com/esp8266/Arduino/tree/master/libraries/ArduinoOTA) library.

For information how to install ESP8266 board support in Arduino IDE please refer to https://github.com/esp8266/Arduino#installing-with-boards-manager. Once installed, it is possible to switch between available versions of platform package using Boards Manager:

![Selecion of ESP8266 package version](selection-of-package-version.png)

Instructions below demonstrate how to configure both [Classic OTA](#classic-ota-configuration) and [ArduinoOTA](#arduinoota-configuration) using NodeMCU 1.0 (ESP-12E Module) board. You can use other boards assuming that they meet [requirements](#basic-requirements) described above.


#### Classic OTA

1. Before you begin, please make sure that you have the following installed:
- Arduino IDE 1.6.5 and 1.6.5-947-g39819f0 version of platform package,
- [Python](https://www.python.org/) 2.7 (do not install Python 3.5 that is not supported).

2. Now prepare the sketch and configuration for the upload over a serial port.
- Start Arduino IDE and load sketch DNS_SD_Arduino_OTA.ino available under File > Examples > ESP8266mDNS
![OTA sketch selection](ota-ide-sketch-selection.png)

**Note:** This sketch is available only for 1.6.5-947-g39819f0 (of July 23, 2015) platform package. It was removed in [#980](https://github.com/esp8266/Arduino/pull/980) from GitHub repository.
- Update SSID and password in the sketch so the module can join your Wi-Fi network
![SSID and password entry](ota-ide-ssid-pass-entry.png)

- Configure upload parameters as below (you may need to adjust configuration if you are using a different module):
![configuration of serial upload](ota-ide-serial-upload-configuration.png)

3. Upload the sketch (Ctrl+U). Once done, open Serial Monitor (Ctrl+Shift+M) and check if module has joined your Wi-Fi network.

![check if module joined network](ota-ide-module-joined-wifi.png)

4. Only if module is connected to network, after a couple of seconds, the esp8266-ota port will show up in Arduino IDE:

![selection of OTA port](ota-ide-ota-port-selection.png)

5. Now get ready for your first OTA upload by changing configuration settings as follows:

![configuration of OTA upload](ota-ide-ota-upload-configuration.png)

**Note:** If you do not see “Upload Using: OTA” option available for “NodeMCU 1.0 (ESP-12E Module)” board, please upload the latest [boards.txt](https://github.com/esp8266/Arduino/blob/master/boards.txt) file from GitHub repository, replace existing file and restart Arduino IDE.

6. If you have successfully completed all the above steps, you can upload (Ctrl+U) the same (or any other) sketch over OTA:

![OTA upload complete](ota-ide-ota-upload-complete.png)

**Note:** To be able to upload your sketch over and over again using OTA, you need to embed OTA routines inside. Please use DNS_SD_Arduino_OTA.ino as an example.

In case of issues please refer to information provided in section [Troubleshooting](#troubleshooting). Successful OTA process looks like below on serial terminal:

```
Arduino OTA Test
Sketch size: 346664
Free size: 700416
IP address: 192.168.1.100
Update Start: ip:192.168.1.10, port:48266, size:346672
Update Success: 6113
Rebooting...

ets Jan 8 2013,rst cause:1, boot mode:(3,7)

load 0x4010f000, len 1264, room 16
tail 0
chksum 0x42
csum 0x42
@cp:0
ld

Arduino OTA Test
Sketch size: 346664
Free size: 700416
IP address: 192.168.1.100
```
**Note:** Sketch and free memory sizes as well as IP addresses depend on your particular s/w and h/w configuration.


#### ArduinoOTA

1. Before you begin, please make sure that you have the following installed:
- Arduino IDE 1.6.7 and 2.0.0 version of platform package following the process described under https://github.com/esp8266/Arduino#installing-with-boards-manager
- [Python](https://www.python.org/) 2.7 (do not install Python 3.5 that is not supported):
1. Before you begin, please make sure that you have the following s/w installed:
- Arduino IDE 1.6.7 or newer - https://www.arduino.cc/en/Main/Software
- esp8266/Arduino platform package 2.0.0 or newer - for instructions follow https://github.com/esp8266/Arduino#installing-with-boards-manager
- Python 2.7 (do not install Python 3.5 that is not supported) - https://www.python.org/

**Note:** Windows users should select “Add python.exe to Path” (see below – this option is not selected by default).

![Python installation set up](ota-ide-python-configuration.png)
![Python installation set up](a-ota-python-configuration.png)

2. Now prepare the sketch and configuration for the upload over a serial port.
- Start Arduino IDE and load sketch BasicOTA.ino available under File > Examples > ArduinoOTA
Expand All @@ -206,21 +127,23 @@ IP address: 192.168.1.100
- Configure upload parameters as below (you may need to adjust configuration if you are using a different module):
![configuration of serial upload](a-ota-serial-upload-configuration.png)

**Note:** Depending on version of platform package and board you have, you may see ``` Upload Using: ``` in the menu above. This option is inactive and it does not matter what you select. It has been left for compatibility with older implementation of OTA and is targeted for removal in platform package version 2.2.0.

3. Upload the sketch (Ctrl+U). Once done, open Serial Monitor (Ctrl+Shift+M) and check if module has joined your Wi-Fi network:

![check if module joined network](a-ota-upload-complete-and-joined-wifi.png)

4. Only if module is connected to network, after a couple of seconds, the esp8266-ota port will show up in Arduino IDE:
4. Only if module is connected to network, after a couple of seconds, the esp8266-ota port will show up in Arduino IDE. Select port with IP adress shown in Serial Monitor in previus step:

![selection of OTA port](a-ota-ota-port-selection.png)

**Note:** If OTA port does not show up, try to exit Arduino IDE, open it again and check if port is there.
**Note:** If OTA port does not show up, exit Arduino IDE, open it again and check if port is there. If it does not help check your firewall settings.

5. Now get ready for your first OTA upload by selecting the OTA port:

![configuration of OTA upload](a-ota-ota-upload-configuration.png)

There is no need to change ``` Upload Using: ``` or ``` Upload Speed: ```.
**Note:** The menu entry ``` Upload Speed: ``` does not matter at this point as it concerns the serial port. Just left it unchanged.

6. If you have successfully completed all the above steps, you can upload (Ctrl+U) the same (or any other) sketch over OTA:

Expand Down Expand Up @@ -267,7 +190,7 @@ When uploading, Arduino IDE used previously entered password, so the upload fail

If OTA update fails, first step is to check for error messages that may be shown in upload window of Arduino IDE. If this is not providing any useful hints try to upload again while checking what is shown by ESP on serial port. Serial Monitor from IDE will not be useful in that case. When attempting to open it, you will likely see the following:

![Arduino IDE network terminal window](ota-ide-network-terminal.png)
![Arduino IDE network terminal window](a-ota-network-terminal.png)

This window is for Arduino Yún and not yet implemented for esp8266/Arduino. It shows up because IDE is attempting to open Serial Monitor using network port you have selected for OTA upload.

Expand All @@ -285,11 +208,11 @@ If upload fails you will likely see errors caught by the uploader, exception and

The most common causes of OTA failure are as follows:
* not enough physical memory on the chip (e.g. ESP01 with 512K flash memory is not enough for OTA),
* too much memory declared for SPIFFS so new sketch will not fit between existing sketch and SPIFFS – see [Update process - memory view]( https://github.com/esp8266/Arduino/blob/master/doc/ota_updates/ota_updates.md#update-process---memory-view),
* too much memory declared for SPIFFS so new sketch will not fit between existing sketch and SPIFFS – see [Update process - memory view](#update-process---memory-view),
* too little memory declared in Arduino IDE for your selected board (i.e. less than physical size).

For more details regarding flash memory layout please check [File system]( https://github.com/esp8266/Arduino/blob/master/doc/filesystem.md).
For overview where new sketch is stored, how it is copied and how memory is organized for the purpose of OTA see [Update process - memory view]( https://github.com/esp8266/Arduino/blob/master/doc/ota_updates/ota_updates.md#update-process---memory-view).
For overview where new sketch is stored, how it is copied and how memory is organized for the purpose of OTA see [Update process - memory view](#update-process---memory-view).


## Web Browser
Expand Down
Binary file removed doc/ota_updates/selection-of-package-version.png
Binary file not shown.
2 changes: 1 addition & 1 deletion doc/reference_items.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

- path: /doc/filesystem.html

- path: /doc/ota_updates/ota_updates.html
- path: /doc/ota_updates/readme.html

- path: /doc/boards.html

Expand Down
1 change: 0 additions & 1 deletion tools/build.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,6 @@ def compile(tmp_dir, sketch, tools_dir, hardware_dir, ide_path, f, args):
cmd += '-tools "' + ide_path + '/tools-builder" '
# Debug=Serial,DebugLevel=Core____
cmd += '-fqbn=esp8266com:esp8266:{board_name}:' \
'UploadTool=esptool,' \
'CpuFrequency={cpu_freq},' \
'FlashFreq={flash_freq},' \
'FlashMode={flash_mode},' \
Expand Down