upload_port
¶Type: String (Pattern)
| Multiple: No
This option is used by “uploader” tool when sending firmware to board via
upload_port
. For example,
/dev/ttyUSB0
- Serial port (Unix-based OS)
COM3
- Serial port (Windows OS)
192.168.0.13
- IP address when using OTA
/media/disk
- physical path to media disk/flash drive
(Mbed enabled boards)
D:
- physical path to media disk/flash drive (Windows OS).
If upload_port
isn’t specified, then PlatformIO will try to detect it
automatically.
To print all available serial ports please use pio device list command.
This option can also be set by global environment variable
PLATFORMIO_UPLOAD_PORT
.
Please note that you can use patterns:
Pattern |
Meaning |
---|---|
|
matches everything |
|
matches any single character |
|
matches any character in seq |
|
matches any character not in seq |
Example
[env:uno]
platform = atmelavr
framework = arduino
; any port that starts with /dev/ttyUSB
upload_port = /dev/ttyUSB*
; COM1 or COM3
upload_port = COM[13]
upload_protocol
¶Type: String
| Multiple: No
A protocol that “uploader” tool uses to talk to a board. Please check Boards for supported uploading protocols by your board.
Note
upload_protocol = custom
allows one to use a custom upload_command
- see below.
upload_speed
¶Type: Number
| Multiple: No
A connection speed (baud rate) which “uploader” tool uses when sending firmware to board.
upload_flags
¶Type: String
| Multiple: Yes
Extra flags for uploader. Will be added to the end of uploader command. If you need to override uploader command or base flags please use extra_scripts.
This option can also be set by global environment variable
PLATFORMIO_UPLOAD_FLAGS
.
Example
Please specify each flag/option in a new line starting with minimum 2 spaces.
[env:atmega328pb]
platform = atmelavr
board = atmega328pb
framework = arduino
upload_flags =
-P$UPLOAD_PORT
-b$UPLOAD_SPEED
-u
-Ulock:w:0xCF:m
-Uhfuse:w:0xD7:m
-Uefuse:w:0xF6:m
-Ulfuse:w:0xE2:m
upload_resetmethod
¶Type: String
| Multiple: No
Specify reset method for “uploader” tool. This option isn’t available for all development platforms. The only Espressif 8266 supports it.
upload_command
¶Type: String
| Singleline: Yes
Override default Development Platforms upload command with a custom command. You can pass a full upload command with arguments and options or mix with upload_flags.
In order to use upload_command
, upload_protocol = custom
must be specified.
Default upload commands are declared in build/main.py
script file of
Development Platforms. See a list with open source
Development Platforms => https://github.com/topics/platformio-platform
Note
Please note that you can use build variables in upload_command
, such as
PlatformIO project folders and other runtime configuration. A list with
build variables are available by running
pio run --target envdump
command.
Examples
Override default upload command but handle pre-uploading actions (looking
for serial port, extra image preparation, etc.). Normally, the
pre-configured upload options will be stored in $UPLOADERFLAGS
build
variable. A classic default upload command for Development Platforms may look as
some-flash-bin-tool $UPLOADERFLAGS $SOURCE
, where
$SOURCE
will be replaced by a real program/firmware binary.
${platformio.packages_dir}
template points to packages_dir.
[env:program_via_AVR_ISP]
platform = atmelavr
framework = arduino
board = uno
upload_protocol = custom
upload_flags =
-C
${platformio.packages_dir}/tool-avrdude/avrdude.conf
-p
atmega328p
-P
$UPLOAD_PORT
-b
115200
-c
stk500v1
upload_command = avrdude $UPLOAD_FLAGS -U flash:w:$SOURCE:i
Override default upload command and skip pre-uploading actions.
[env:program_via_usbasp]
platform = atmelavr
framework = arduino
board = uno
upload_protocol = custom
upload_flags =
-C
${platformio.packages_dir}/tool-avrdude/avrdude.conf
-p
atmega328p
-Pusb
-c
stk500v1
upload_command = avrdude $UPLOAD_FLAGS -U flash:w:$SOURCE:i
; Use ST-util for flashing
; https://github.com/texane/stlink
[env:custom_st_flash]
platform = ststm32
framework = stm32cube
board = bluepill_f103c6
upload_protocol = custom
upload_command = ${platformio.packages_dir}/tool-stlink/st-flash write $SOURCE 0x8000000