See board_build.f_cpu option from Project Configuration File platformio.ini
[env:myenv]
; set frequency to 160MHz
board_build.f_cpu = 160000000L
Please use board_build.f_flash
option from Project Configuration File platformio.ini to change
a value. Possible values:
20000000L
26000000L
40000000L
(default)
80000000L
[env:myenv]
; set frequency to 80MHz
board_build.f_flash = 80000000L
Flash chip interface mode. This parameter is stored in the binary image header, along with the flash size and flash frequency. The ROM bootloader in the ESP chip uses the value of these parameters in order to know how to talk to the flash chip.
Please use board_build.flash_mode
option from Project Configuration File platformio.ini to change
a value. Possible values:
qio
qout
dio
dout
[env:myenv]
board_build.flash_mode = qio
You can set custom reset method using upload_resetmethod option from Project Configuration File platformio.ini.
The possible values are:
ck
- RTS controls RESET or CH_PD, DTR controls GPIO0
wifio
- TXD controls GPIO0 via PNP transistor and DTR controls RESET via a capacitor
nodemcu
- GPIO0 and RESET controlled using two NPN transistors as in NodeMCU devkit.
See default reset methods per board.
[env:myenv]
upload_resetmethod = ck
Warning
Please make sure to read ESP8266 Flash layout information first.
Available LD-scripts: https://github.com/esp8266/Arduino/tree/master/tools/sdk/ld
eagle.flash.512k0.ld
512K (no SPIFFS)
eagle.flash.512k64.ld
512K (64K SPIFFS)
eagle.flash.512k128.ld
512K (128K SPIFFS)
eagle.flash.1m0.ld
1M (no SPIFFS)
eagle.flash.1m64.ld
1M (64K SPIFFS)
eagle.flash.1m128.ld
1M (128K SPIFFS)
eagle.flash.1m144.ld
1M (144K SPIFFS)
eagle.flash.1m160.ld
1M (160K SPIFFS)
eagle.flash.1m192.ld
1M (192K SPIFFS)
eagle.flash.1m256.ld
1M (256K SPIFFS)
eagle.flash.1m512.ld
1M (512K SPIFFS)
eagle.flash.2m.ld
2M (1M SPIFFS)
eagle.flash.4m1m.ld
4M (1M SPIFFS)
eagle.flash.4m2m.ld
4M (2M SPIFFS)
eagle.flash.4m.ld
4M (3M SPIFFS)
eagle.flash.8m.ld
8M (7M SPIFFS)
eagle.flash.16m.ld
16M (15M SPIFFS)
To override default LD script please use build_flags from Project Configuration File platformio.ini.
[env:myenv]
build_flags = -Wl,-Teagle.flash.4m.ld
You can set custom upload speed using upload_speed option from Project Configuration File platformio.ini
[env:myenv]
upload_speed = 9600
Available variants (macros):
-D PIO_FRAMEWORK_ARDUINO_LWIP_HIGHER_BANDWIDTH
v1.4 Higher Bandwidth (default)
-D PIO_FRAMEWORK_ARDUINO_LWIP2_LOW_MEMORY
v2 Lower Memory
-D PIO_FRAMEWORK_ARDUINO_LWIP2_HIGHER_BANDWIDTH
v2 Higher Bandwidth
You can change lwIP Variant passing a custom macro using project build_flags.
For example, switch to lwIP v2 Lower Memory
[env:myenv]
...
build_flags = -D PIO_FRAMEWORK_ARDUINO_LWIP2_LOW_MEMORY
Please use the next build_flags to enable Serial debug:
[env:myenv]
...
build_flags = -DDEBUG_ESP_PORT=Serial
; or for Serial1
build_flags = -DDEBUG_ESP_PORT=Serial1
Please use one of the next build_flags to change debug level. A build_flags option could be used only the one time per build environment. If you need to specify more flags, please separate them with a new line or space.
Also, please note that you will need to extend build_flags
with Serial Debug macro. For example,
build_flags = -DDEBUG_ESP_PORT=Serial -DDEBUG_ESP_SSL ...
.
Actual information is available in Arduino for ESP8266 Board Manifest.
Please scroll to generic.menu.DebugLevel
section.
[env:myenv]
platform = ...
board = ...
framework = arduino
;;;;; Possible options ;;;;;;
; SSL
build_flags = -DDEBUG_ESP_SSL
; TLS_MEM
build_flags = -DDEBUG_ESP_TLS_MEM
; HTTP_CLIENT
build_flags = -DDEBUG_ESP_HTTP_CLIENT
; HTTP_SERVER
build_flags = -DDEBUG_ESP_HTTP_SERVER
; SSL+TLS_MEM
build_flags =
-DDEBUG_ESP_SSL
-DDEBUG_ESP_TLS_MEM
; SSL+HTTP_CLIENT
build_flags =
-DDEBUG_ESP_SSL
-DDEBUG_ESP_HTTP_CLIENT
; SSL+HTTP_SERVER
build_flags =
-DDEBUG_ESP_SSL
-DDEBUG_ESP_HTTP_SERVER
; TLS_MEM+HTTP_CLIENT
build_flags =
-DDEBUG_ESP_TLS_MEM
-DDEBUG_ESP_HTTP_CLIENT
; TLS_MEM+HTTP_SERVER
build_flags =
-DDEBUG_ESP_TLS_MEM
-DDEBUG_ESP_HTTP_SERVER
; HTTP_CLIENT+HTTP_SERVER
build_flags =
-DDEBUG_ESP_HTTP_CLIENT
-DDEBUG_ESP_HTTP_SERVER
; SSL+TLS_MEM+HTTP_CLIENT
build_flags =
-DDEBUG_ESP_SSL
-DDEBUG_ESP_TLS_MEM
-DDEBUG_ESP_HTTP_CLIENT
; SSL+TLS_MEM+HTTP_SERVER
build_flags =
-DDEBUG_ESP_SSL
-DDEBUG_ESP_TLS_MEM
-DDEBUG_ESP_HTTP_SERVER
; SSL+HTTP_CLIENT+HTTP_SERVER
build_flags =
-DDEBUG_ESP_SSL
-DDEBUG_ESP_HTTP_CLIENT
-DDEBUG_ESP_HTTP_SERVER
; TLS_MEM+HTTP_CLIENT+HTTP_SERVER
build_flags =
-DDEBUG_ESP_TLS_MEM
-DDEBUG_ESP_HTTP_CLIENT
-DDEBUG_ESP_HTTP_SERVER
; SSL+TLS_MEM+HTTP_CLIENT+HTTP_SERVER
build_flags =
-DDEBUG_ESP_SSL
-DDEBUG_ESP_TLS_MEM
-DDEBUG_ESP_HTTP_CLIENT
-DDEBUG_ESP_HTTP_SERVER
; CORE
build_flags = -DDEBUG_ESP_CORE
; WIFI
build_flags = -DDEBUG_ESP_WIFI
; HTTP_UPDATE
build_flags = -DDEBUG_ESP_HTTP_UPDATE
; UPDATER
build_flags = -DDEBUG_ESP_UPDATER
; OTA
build_flags = -DDEBUG_ESP_OTA
; OOM
build_flags =
-DDEBUG_ESP_OOM
-include "umm_malloc/umm_malloc_cfg.h"
; CORE+WIFI+HTTP_UPDATE+UPDATER+OTA+OOM
build_flags =
-DDEBUG_ESP_CORE
-DDEBUG_ESP_WIFI
-DDEBUG_ESP_HTTP_UPDATE
-DDEBUG_ESP_UPDATER
-DDEBUG_ESP_OTA
-DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h"
; SSL+TLS_MEM+HTTP_CLIENT+HTTP_SERVER+CORE+WIFI+HTTP_UPDATE+UPDATER+OTA+OOM
build_flags =
-DDEBUG_ESP_SSL
-DDEBUG_ESP_TLS_MEM
-DDEBUG_ESP_HTTP_CLIENT
-DDEBUG_ESP_HTTP_SERVER
-DDEBUG_ESP_CORE
-DDEBUG_ESP_WIFI
-DDEBUG_ESP_HTTP_UPDATE
-DDEBUG_ESP_UPDATER
-DDEBUG_ESP_OTA
-DDEBUG_ESP_OOM -include "umm_malloc/umm_malloc_cfg.h"
; NoAssert-NDEBUG
build_flags = -DNDEBUG
Please use one of the next build_flags:
[env:myenv]
...
; Flash (default)
build_flags = -DVTABLES_IN_FLASH
; Heap
build_flags = -DVTABLES_IN_DRAM
; IRAM
build_flags = -DVTABLES_IN_IRAM
Warning
Please make sure to read ESP8266 Flash layout information first.
Initialize project platformio init (if you have not initialized yet)
Create data
folder (it should be on the same level as src
folder)
and put files here. Also, you can specify own location for data_dir
Run buildfs
or uploadfs
target using platformio run --target
command.
To upload SPIFFS image using OTA update please specify upload_port
/
--upload-port
as IP address or mDNS host name (ending with the *.local
).
For the details please follow to Over-the-Air (OTA) update.
By default, will be used default LD Script for the board where is specified SPIFFS offsets (start, end, page, block). You can override it using Flash Size.
Active discussion is located in issue #382.
Firstly, please read What is OTA? How to use it?
There are 2 options:
Directly specify platformio run --upload-port
in command line
platformio run --target upload --upload-port IP_ADDRESS_HERE or mDNS_NAME.local
Specify upload_port
option in Project Configuration File platformio.ini
[env:myenv]
upload_port = IP_ADDRESS_HERE or mDNS_NAME.local
For example,
platformio run -t upload --upload-port 192.168.0.255
platformio run -t upload --upload-port myesp8266.local
You can pass additional options/flags to OTA uploader using
upload_flags
option in Project Configuration File platformio.ini
[env:myenv]
upload_flags = --port=8266
Available flags
--port=ESP_PORT
ESP8266 OTA Port. Default 8266
--auth=AUTH
Set authentication password
--spiffs
Use this option to transmit a SPIFFS image and do not flash
the module
For the full list with available options please run
~/.platformio/packages/tool-espotapy/espota.py -h
Usage: espota.py [options]
Transmit image over the air to the esp8266 module with OTA support.
Options:
-h, --help show this help message and exit
Destination:
-i ESP_IP, --ip=ESP_IP
ESP8266 IP Address.
-p ESP_PORT, --port=ESP_PORT
ESP8266 ota Port. Default 8266
Authentication:
-a AUTH, --auth=AUTH
Set authentication password.
Image:
-f FILE, --file=FILE
Image file.
-s, --spiffs Use this option to transmit a SPIFFS image and do not
flash the module.
Output:
-d, --debug Show debug output. And override loglevel with debug.
-r, --progress Show progress output. Does not work for ArduinoIDE
PlatformIO will install the latest Arduino Core for ESP8266 from
https://github.com/esp8266/Arduino. The Git
should be installed in a system. To update Arduino Core to the latest revision,
please open PlatformIO IDE and navigate to PIO Home > Platforms > Updates
.
Please install PlatformIO IDE
Initialize a new project, open Project Configuration File platformio.ini and set
platform to
https://github.com/platformio/platform-espressif8266.git#feature/stage
.
For example,
[env:nodemcuv2]
platform = https://github.com/platformio/platform-espressif8266.git#feature/stage
board = nodemcuv2
framework = arduino
Try to build project
If you see build errors, then try to build this project using the same
stage
with Arduino IDE
If it works with Arduino IDE but doesn’t work with PlatformIO, then please file new issue with attached information:
test project/files
detailed log of build process from Arduino IDE (please copy it from console to https://hastebin.com)
detailed log of build process from PlatformIO Build System (please copy it from console to https://hastebin.com)