2016-01-01 20:51:48 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								..  Copyright 2014-2016 Ivan Kravets <me@ikravets.com> 
  
						 
					
						
							
								
									
										
										
										
											2015-11-18 17:33:46 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    Licensed under the Apache License, Version 2.0 (the "License");
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    you may not use this file except in compliance with the License.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    You may obtain a copy of the License at
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								       http://www.apache.org/licenses/LICENSE-2.0
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Unless required by applicable law or agreed to in writing, software
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    distributed under the License is distributed on an "AS IS" BASIS,
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    See the License for the specific language governing permissions and
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    limitations under the License.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-08-09 16:31:20 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								..  _projectconf: 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-03-05 01:36:31 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Project Configuration File `` platformio.ini `` 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								=============================================
 
							 
						 
					
						
							
								
									
										
										
										
											2014-08-09 16:31:20 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								The Project configuration file is named `` platformio.ini `` . This is a
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								`INI-style  <http://en.wikipedia.org/wiki/INI_file> `_  file.
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								`` platformio.ini ``  has sections (each denoted by a `` [header] `` ) and
  
						 
					
						
							
								
									
										
										
										
											2016-01-04 01:45:57 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								key / value pairs within the sections. Lines beginning with `` # ``  or `` ; `` 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								are ignored and may be used to provide comments.
 
							 
						 
					
						
							
								
									
										
										
										
											2014-08-09 16:31:20 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								The sections and their allowable values are described below.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								..  contents :: 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-01-13 15:03:13 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Section `` [platformio] `` 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								------------------------
 
							 
						 
					
						
							
								
									
										
										
										
											2014-08-22 17:57:28 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								A `` platformio ``  section is used for overriding default configuration options
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-02-22 22:24:22 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								..  note :: 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Relative path is allowed for directory option:
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  `` ~ ``  will be expanded to user's home directory
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  `` ../ ``  or `` ..\ ``  go up to one folder
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-08-22 17:57:28 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Options
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								~~~~~~~
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-01-08 23:21:30 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								..  _projectconf_pio_home_dir: 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-08-22 17:57:28 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								`` home_dir `` 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								^^^^^^^^^^^^
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-12-26 01:02:44 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Is used to store platform toolchains, frameworks, external libraries,
 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-05 01:36:31 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								service data and etc.
 
							 
						 
					
						
							
								
									
										
										
										
											2014-08-22 17:57:28 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-03-05 01:36:31 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								A default value is User's home directory:
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  Unix `` ~/.platformio `` 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  Windows `` %HOMEPATH%\.platformio `` 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								This option can be overridden by global environment variable
 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-14 00:14:04 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								:envvar: `PLATFORMIO_HOME_DIR` .
  
						 
					
						
							
								
									
										
										
										
											2015-03-05 01:36:31 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								..  _projectconf_pio_lib_dir: 
  
						 
					
						
							
								
									
										
										
										
											2014-08-22 17:57:28 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-09-06 18:46:19 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								`` lib_dir `` 
  
						 
					
						
							
								
									
										
										
										
											2015-02-22 22:24:22 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								^^^^^^^^^^^
 
							 
						 
					
						
							
								
									
										
										
										
											2014-09-06 18:46:19 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								This directory is used to store external libraries downloaded by
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								:ref: `librarymanager` .
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-03-05 01:36:31 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								A default value is `` %home_dir%/lib `` .
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								This option can be overridden by global environment variable
 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-14 00:14:04 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								:envvar: `PLATFORMIO_LIB_DIR` .
  
						 
					
						
							
								
									
										
										
										
											2015-03-05 01:36:31 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-07-29 21:14:41 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								..  note :: 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    You can put here your own/private libraries. The source code of each
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    library should be placed in separate directory. For example,
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    `` %lib_dir%/private_lib/[here are source files] `` .
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-03-05 01:36:31 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								..  _projectconf_pio_src_dir: 
  
						 
					
						
							
								
									
										
										
										
											2014-09-06 18:46:19 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-02-22 22:24:22 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								`` src_dir `` 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								^^^^^^^^^^^
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-03-05 01:36:31 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								A path to project's source directory. PlatformIO uses it for :ref: `cmd_run` 
 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-22 22:24:22 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								command.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-01-01 19:44:24 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								A default value is `` src ``  which means that folder is located in the root of
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								project.
 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-05 01:36:31 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								This option can be overridden by global environment variable
 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-14 00:14:04 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								:envvar: `PLATFORMIO_SRC_DIR` .
  
						 
					
						
							
								
									
										
										
										
											2015-02-22 22:24:22 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								..  note :: 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    This option is useful for people who migrate from Arduino/Energia IDEs where
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    source directory should have the same name like the main source file.
 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-25 11:34:48 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    See `example  <https://github.com/platformio/platformio/tree/develop/examples/atmelavr-and-arduino/arduino-own-src_dir> `__  project with own source directory.
 
							 
						 
					
						
							
								
									
										
										
										
											2015-02-22 22:24:22 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-03-05 01:36:31 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								..  _projectconf_pio_envs_dir: 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								`` envs_dir `` 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								^^^^^^^^^^^^
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*PlatformIO Builder*  within :ref: `cmd_run`  command uses this folder for project
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								environments to store compiled object files, static libraries, firmwares and
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								other cached information. It allows PlatformIO to build source code extremely
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								fast!
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*You can delete this folder without any risk!*  If you modify :ref: `projectconf` ,
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								then PlatformIO will remove this folder automatically. It will be created on the
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								next build operation.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-01-01 19:44:24 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								A default value is `` .pioenvs ``  which means that folder is located in the root of
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								project.
 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-05 01:36:31 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								This option can be overridden by global environment variable
 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-14 00:14:04 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								:envvar: `PLATFORMIO_ENVS_DIR` .
  
						 
					
						
							
								
									
										
										
										
											2015-03-05 01:36:31 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								..  note :: 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    If you have any problems with building your Project environmets which
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    are defined in :ref: `projectconf` , then **TRY TO DELETE**  this folder. In
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    this situation you will remove all cached files without any risk.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-12-28 01:15:06 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								..  _projectconf_pio_data_dir: 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								`` data_dir `` 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								^^^^^^^^^^^^
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Data directory to store contents and :ref: `platform_espressif_uploadfs` .
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-01-01 19:44:24 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								A default value is `` data ``  which means that folder is located in the root of
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								project.
 
							 
						 
					
						
							
								
									
										
										
										
											2015-12-28 01:15:06 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								This option can be overridden by global environment variable
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								:envvar: `PLATFORMIO_DATA_DIR` .
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-08-09 16:31:20 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								----------
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-01-13 15:03:13 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Section `` [env:NAME] `` 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								----------------------
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-08-09 16:31:20 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								A section with `` env: ``  prefix is used to define virtual environment with
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								specific options that will be processed with :ref: `cmd_run`  command. You can
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								define unlimited numbers of environments.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Each environment must have unique `` NAME `` . The valid chars for `` NAME ``  are
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  letters `` a-z `` 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  numbers `` 0-9 `` 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  special char `` _ ``  (underscore)
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								For example, `` [env:hello_world] `` .
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-01-13 15:03:13 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								General options
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								~~~~~~~~~~~~~~~
 
							 
						 
					
						
							
								
									
										
										
										
											2014-08-09 16:31:20 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-12-29 20:22:01 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								..  _projectconf_env_platform: 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-08-09 16:31:20 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								`` platform `` 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								^^^^^^^^^^^^
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-03-13 19:13:36 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								:ref: `Platform <platforms>`  type.
  
						 
					
						
							
								
									
										
										
										
											2014-08-09 16:31:20 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-12-29 20:22:01 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								..  _projectconf_env_framework: 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-08-09 16:31:20 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								`` framework `` 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								^^^^^^^^^^^^^
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-03-13 19:13:36 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								:ref: `Framework <frameworks>`  type.
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								The multiple frameworks are allowed, split them with comma `` , ``  separator.
 
							 
						 
					
						
							
								
									
										
										
										
											2014-08-09 16:31:20 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-12-29 20:22:01 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								..  _projectconf_env_board: 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-08-09 16:31:20 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								`` board `` 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								^^^^^^^^^
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-03-05 01:36:31 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								*PlatformIO*  has pre-configured settings for the most popular boards. You don't
  
						 
					
						
							
								
									
										
										
										
											2014-08-09 16:31:20 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								need to specify `` board_mcu `` , `` board_f_cpu `` , `` upload_protocol ``  or
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								`` upload_speed ``  options. Just define a `` board ``  type and *PlatformIO*  will
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								pre-fill options described above with appropriate values.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-06-28 20:18:16 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								You can find the `` board ``  type in *Boards*  section of each :ref: `platforms`  or
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								using `PlatformIO Embedded Boards Explorer  <http://platformio.org/#!/boards> `_ .
 
							 
						 
					
						
							
								
									
										
										
										
											2014-08-09 16:31:20 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-01-13 15:03:13 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Board options
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								~~~~~~~~~~~~~
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-08-09 16:31:20 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								`` board_mcu `` 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								^^^^^^^^^^^^^
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								`` board_mcu ``  is a microcontroller(MCU) type that is used by compiler to
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								recognize MCU architecture. The correct type of `` board_mcu ``  depends on
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								platform library. For example, the list of `` board_mcu ``  for "megaAVR Devices"
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								is described `here  <http://www.nongnu.org/avr-libc/user-manual/> `_ .
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-03-05 01:36:31 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								The full list of `` board_mcu ``  for the popular embedded platforms you can find
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								in *Boards*  section of :ref: `platforms` . See "Microcontroller" column.
 
							 
						 
					
						
							
								
									
										
										
										
											2014-08-09 16:31:20 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-12-18 19:29:20 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								..  _projectconf_board_f_cpu: 
  
						 
					
						
							
								
									
										
										
										
											2014-08-09 16:31:20 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								`` board_f_cpu `` 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								^^^^^^^^^^^^^^^
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								An option `` board_f_cpu ``  is used to define MCU frequency (Hertz, Clock). A
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								format of this option is `` C-like long integer ``  value with `` L ``  suffix. The
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								1 Hertz is equal to `` 1L `` , then 16 Mhz (Mega Hertz) is equal to `` 16000000L `` .
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-03-05 01:36:31 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								The full list of `` board_f_cpu ``  for the popular embedded platforms you can
 
							 
						 
					
						
							
								
									
										
										
										
											2016-01-29 17:52:54 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								find in *Boards*  section of :ref: `platforms` . See "Frequency" column. You can
 
							 
						 
					
						
							
								
									
										
										
										
											2016-01-25 22:24:08 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								overclock a board by specifying a `` board_f_cpu ``  value other than the default.
 
							 
						 
					
						
							
								
									
										
										
										
											2014-08-09 16:31:20 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-02-10 22:58:12 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								..  _projectconf_board_f_flash: 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								`` board_f_flash `` 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								^^^^^^^^^^^^^^^^^
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								An option `` board_f_flash ``  is used to define FLASH chip frequency (Hertz, Clock). A
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								format of this option is `` C-like long integer ``  value with `` L ``  suffix. The
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								1 Hertz is equal to `` 1L `` , then 40 Mhz (Mega Hertz) is equal to `` 40000000L `` .
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								This option isn't available for the all development platforms. The only
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								:ref: `platform_espressif`  supports it.
  
						 
					
						
							
								
									
										
										
										
											2014-08-09 16:31:20 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-02-11 00:00:23 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								..  _projectconf_board_flash_mode: 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								`` board_flash_mode `` 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								^^^^^^^^^^^^^^^^^^^^
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Flash chip interface mode. This option isn't available for the all development
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								platforms. The only :ref: `platform_espressif`  supports it.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-01-13 15:03:13 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Building options
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								~~~~~~~~~~~~~~~~
 
							 
						 
					
						
							
								
									
										
										
										
											2015-12-11 15:20:08 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-12-03 14:56:24 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								..  _projectconf_build_flags: 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-08-09 16:31:20 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								`` build_flags `` 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								^^^^^^^^^^^^^^^
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								These flags/options control preprocessing, compilation, assembly and linking
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								processes:
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								..  list-table :: 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    :header-rows:   1 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  - Format
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      -  Scope
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      -  Description
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  - `` -D name `` 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      -  CPPDEFINES
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      -  Predefine *name*  as a macro, with definition 1.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  - `` -D name=definition `` 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      -  CPPDEFINES
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      -  The contents of *definition*  are tokenized and processed as if they
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        appeared during translation phase three in a `` #define ``  directive.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  - `` -U name `` 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      -  CPPDEFINES
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      -  Cancel any previous definition of *name* , either built in or provided
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        with a `` -D ``  option.
 
							 
						 
					
						
							
								
									
										
										
										
											2015-06-19 13:43:30 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    *  - `` -Wp,option `` 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      -  CPPFLAGS
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      -  Bypass the compiler driver and pass *option*  directly  through to the
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        preprocessor
 
							 
						 
					
						
							
								
									
										
										
										
											2014-08-09 16:31:20 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    *  - `` -Wall `` 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      -  CCFLAGS
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      -  Turns on all optional warnings which are desirable for normal code.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  - `` -Werror `` 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      -  CCFLAGS
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      -  Make all warnings into hard errors. Source code which triggers warnings will be rejected.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  - `` -w `` 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      -  CCFLAGS
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      -  Suppress all warnings, including those which GNU CPP issues by default.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  - `` -include file `` 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      -  CCFLAGS
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      -  Process *file*  as if `` #include "file" ``  appeared as the first line of
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        the primary source file.
 
							 
						 
					
						
							
								
									
										
										
										
											2015-06-19 13:43:30 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    *  - `` -Idir `` 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      -  CPPPATH
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      -  Add the directory *dir*  to the list of directories to be searched
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        for header files.
 
							 
						 
					
						
							
								
									
										
										
										
											2014-08-09 16:31:20 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    *  - `` -Wa,option `` 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      -  ASFLAGS, CCFLAGS
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      -  Pass *option*  as an option to the assembler. If *option*  contains
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        commas, it is split into multiple options at the commas.
 
							 
						 
					
						
							
								
									
										
										
										
											2015-06-19 13:43:30 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    *  - `` -Wl,option `` 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      -  LINKFLAGS
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      -  Pass *option*  as an option to the linker. If *option*  contains
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        commas, it is split into multiple options at the commas.
 
							 
						 
					
						
							
								
									
										
										
										
											2014-08-09 16:31:20 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    *  - `` -llibrary `` 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      -  LIBS
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      -  Search the *library*  named library when linking
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    *  - `` -Ldir `` 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      -  LIBPATH
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      -  Add directory *dir*  to the list of directories to be searched for
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        `` -l `` .
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-23 19:17:07 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								This option can be set by global environment variable
 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-14 00:14:04 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								:envvar: `PLATFORMIO_BUILD_FLAGS` .
  
						 
					
						
							
								
									
										
										
										
											2015-05-23 19:17:07 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-08-09 16:31:20 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								Example:
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								..  code-block ::    ini
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    [env:specific_defines]
 
							 
						 
					
						
							
								
									
										
										
										
											2015-06-19 13:43:30 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    build_flags = -Dfoo -Dbar=1
 
							 
						 
					
						
							
								
									
										
										
										
											2014-08-09 16:31:20 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    [env:specific_inclibs]
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    build_flags = -I/opt/include -L/opt/lib -lfoo
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-06-19 13:43:30 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    [env:specific_ld_script]
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    build_flags = -Wl,-T/path/to/ld_script.ld
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-08-09 16:31:20 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								For more detailed information about available flags/options go to:
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  `Options to Request or Suppress Warnings
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  <https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html>`_
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  `Options for Debugging Your Program
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  <https://gcc.gnu.org/onlinedocs/gcc/Debugging-Options.html>`_
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  `Options That Control Optimization
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  <https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html>`_
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  `Options Controlling the Preprocessor
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  <https://gcc.gnu.org/onlinedocs/gcc/Preprocessor-Options.html>`_
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  `Passing Options to the Assembler
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  <https://gcc.gnu.org/onlinedocs/gcc/Assembler-Options.html>`_
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  `Options for Linking  <https://gcc.gnu.org/onlinedocs/gcc/Link-Options.html> `_ 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  `Options for Directory Search
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  <https://gcc.gnu.org/onlinedocs/gcc/Directory-Options.html>`_
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-06-28 20:18:16 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								..  _projectconf_src_build_flags: 
  
						 
					
						
							
								
									
										
										
										
											2014-08-09 16:31:20 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-06-28 20:18:16 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								`` src_build_flags `` 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								^^^^^^^^^^^^^^^^^^^
 
							 
						 
					
						
							
								
									
										
										
										
											2014-08-09 16:31:20 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-06-28 20:18:16 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								An option `` src_build_flags ``  has the same behaviour like `` build_flags `` 
 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-05 01:36:31 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								but will be applied only for the project source code from
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								:ref: `projectconf_pio_src_dir`  directory.
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-23 19:17:07 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								This option can be set by global environment variable
 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-14 00:14:04 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								:envvar: `PLATFORMIO_SRC_BUILD_FLAGS` .
  
						 
					
						
							
								
									
										
										
										
											2014-08-09 16:31:20 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-06-22 15:06:39 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								..  _projectconf_src_filter: 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								`` src_filter `` 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								^^^^^^^^^^^^^^
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								This option allows to specify which source files should be included/excluded
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								from build process. Filter supports 2 templates:
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  `` +<PATH> ``  include template
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  `` -<PATH> ``  exclude template
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								`` PATH ``  MAST BE related from :ref: `projectconf_pio_src_dir` . All patterns will
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								be applied in theirs order.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								`GLOB Patterns  <http://en.wikipedia.org/wiki/Glob_(programming)> `_  are allowed.
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								By default, `` src_filter ``  is predefined to
 
							 
						 
					
						
							
								
									
										
										
										
											2016-01-29 17:52:54 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								`` +<*> -<.git/> -<svn/> -<example/> -<examples/> -<test/> -<tests/> `` ,
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								which means "includes ALL files, then
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								exclude `` .git ``  and `` svn ``  repository folders, `` example ``  ... folder.
 
							 
						 
					
						
							
								
									
										
										
										
											2015-06-22 15:06:39 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								This option can be set by global environment variable
 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-14 00:14:04 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								:envvar: `PLATFORMIO_SRC_FILTER` .
  
						 
					
						
							
								
									
										
										
										
											2015-06-22 15:06:39 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-06-19 15:29:22 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								..  _projectconf_extra_script: 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								`` extra_script `` 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								^^^^^^^^^^^^^^^^
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Allows to launch extra script using `SCons  <http://www.scons.org> `_  software
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								construction tool. For more details please follow to "Construction Environments"
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								section of
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								`SCons documentation  <http://www.scons.org/doc/production/HTML/scons-user.html#chap-environments> `_ .
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								This option can be set by global environment variable
 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-14 00:14:04 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								:envvar: `PLATFORMIO_EXTRA_SCRIPT` .
  
						 
					
						
							
								
									
										
										
										
											2015-06-19 15:29:22 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Example, specify own upload command for :ref: `platform_atmelavr` :
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								`` platformio.ini `` :
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								..  code-block ::  ini
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    [env:env_with_specific_extra_script]
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    platform = atmelavr
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    extra_script = /path/to/extra_script.py
 
							 
						 
					
						
							
								
									
										
										
										
											2015-12-10 23:52:33 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    custom_option = hello
 
							 
						 
					
						
							
								
									
										
										
										
											2015-06-19 15:29:22 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								`` extra_script.py `` :
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								..  code-block ::  python
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    from SCons.Script import DefaultEnvironment
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    env = DefaultEnvironment()
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-12-10 23:52:33 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    env.Replace(UPLOADHEXCMD='"$UPLOADER" ${ARGUMENTS.get("custom_option")} --uploader --flags')
 
							 
						 
					
						
							
								
									
										
										
										
											2015-06-19 15:29:22 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    # uncomment line below to see environment variables
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    # print env.Dump()
 
							 
						 
					
						
							
								
									
										
										
										
											2015-12-10 23:52:33 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    # print ARGUMENTS
 
							 
						 
					
						
							
								
									
										
										
										
											2015-06-19 15:29:22 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-12-04 00:02:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  see built-in examples of `PlatformIO build scripts  <https://github.com/platformio/platformio/tree/develop/platformio/builder/scripts> `_ .
  
						 
					
						
							
								
									
										
										
										
											2015-12-26 01:02:44 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								*  take a look at the multiple snippets/answers for the user questions:
  
						 
					
						
							
								
									
										
										
										
											2016-01-19 00:22:12 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  -  `#462 Split C/C++ build flags  <https://github.com/platformio/platformio/issues/462#issuecomment-172667342> `_ 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  -  `#365 Extra configuration for ESP8266 uploader  <https://github.com/platformio/platformio/issues/365#issuecomment-163695011> `_ 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  -  `#351 Specific reset method for ESP8266  <https://github.com/platformio/platformio/issues/351#issuecomment-161789165> `_ 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  -  `#247 Specific options for avrdude  <https://github.com/platformio/platformio/issues/247#issuecomment-118169728> `_ .
 
							 
						 
					
						
							
								
									
										
										
										
											2015-01-29 12:49:46 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-06-28 20:18:16 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								`` targets `` 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								^^^^^^^^^^^
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								A list with targets which will be processed by :ref: `cmd_run`  command by
 
							 
						 
					
						
							
								
									
										
										
										
											2015-12-28 01:15:06 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								default. You can enter more than one target separated with "space".
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								The list with available targets is located in :option: `platformio run --target` .
 
							 
						 
					
						
							
								
									
										
										
										
											2015-06-28 20:38:37 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								**Tip!**  You can use these targets like an option to
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								:option: `platformio run --target`  command. For example:
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								..  code-block ::  bash
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    # clean project
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    platformio run -t clean
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    # dump curent build environment
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    platformio run --target envdump
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								When no targets are defined, *PlatformIO*  will build only sources by default.
 
							 
						 
					
						
							
								
									
										
										
										
											2015-06-28 20:18:16 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-01-13 15:03:13 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Uploading options
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								~~~~~~~~~~~~~~~~~
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								`` upload_port `` 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								^^^^^^^^^^^^^^^
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								This option is used by "uploader" tool when sending firmware to board via
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								`` upload_port `` . For example,
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  `` /dev/ttyUSB0 ``  - Unix-based OS
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  `` COM3 ``  - Windows OS
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*  `` 192.168.0.13 ``  - IP address when using OTA
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								If `` upload_port ``  isn't specified, then *PlatformIO*  will try to detect it
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								automatically.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								To print all available serial ports use :ref: `cmd_serialports`  command.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								`` upload_protocol `` 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								^^^^^^^^^^^^^^^^^^^
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								A protocol that "uploader" tool uses to talk to the board.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								..  _projectconf_upload_speed: 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								`` upload_speed `` 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								^^^^^^^^^^^^^^^^
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								A connection speed (`baud rate  <http://en.wikipedia.org/wiki/Baud> `_ )
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								which "uploader" tool uses when sending firmware to board.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								`` upload_flags `` 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								^^^^^^^^^^^^^^^^
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								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 :ref: `projectconf_extra_script` .
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-01-14 01:07:57 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								..  _projectconf_upload_resetmethod: 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								`` upload_resetmethod `` 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								^^^^^^^^^^^^^^^^^^^^^^
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Specify reset method for "uploader" tool. This option isn't available for all
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								development platforms. The only :ref: `platform_espressif`  supports it.
 
							 
						 
					
						
							
								
									
										
										
										
											2016-01-13 15:03:13 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Library options
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								~~~~~~~~~~~~~~~
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								`` lib_install `` 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								^^^^^^^^^^^^^^^
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Specify dependent libraries which should be installed before environment
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								process. The only library IDs are allowed. Multiple libraries can be passed
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								using comma `` , ``  sign.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								You can obtain library IDs using :ref: `cmd_lib_search`  command.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Example:
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								..  code-block ::  ini
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    [env:depends_on_some_libs]
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    lib_install = 1,13,19
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								`` lib_use `` 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								^^^^^^^^^^^
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Specify libraries which should be used by `` Library Dependency Finder (LDF) ``  with
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								the highest priority.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Example:
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								..  code-block ::  ini
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    [env:libs_with_highest_priority]
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    lib_use = OneWire_ID1,SPI
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								`` lib_ignore `` 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								^^^^^^^^^^^^^^
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Specify libraries which should be ignored by `` Library Dependency Finder (LDF) `` 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Example:
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								..  code-block ::  ini
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    [env:ignore_some_libs]
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    lib_ignore = SPI,EngduinoV3_ID123
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								`` lib_dfcyclic `` 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								^^^^^^^^^^^^^^^^
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Control cyclic (recursive) behaviour for `` Library Dependency Finder (LDF) `` .
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								By default, this option is turned OFF (`` lib_dfcyclic=False `` ) and means that
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								`` LDF ``  will find only libraries which are included in source files from the
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								project :ref: `projectconf_pio_src_dir` .
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								If you want to enable cyclic (recursive, nested) search, please set this option
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								to `` True `` . Founded library will be treated like a new source files and
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								`` LDF ``  will search dependencies for it.
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Example:
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								..  code-block ::  ini
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    [env:libs_with_enabled_ldf_cyclic]
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    lib_dfcyclic = True
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-----------
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-12-03 14:56:24 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								..  _projectconf_examples: 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-08-09 16:31:20 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								Examples
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								--------
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-03-05 01:36:31 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								..  note :: 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    A full list with project examples can be found in
 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-25 11:34:48 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    `PlatformIO Repository  <https://github.com/platformio/platformio/tree/develop/examples> `_ .
 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-05 01:36:31 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-08-09 16:31:20 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								1.  :ref: `platform_atmelavr` : Arduino UNO board with auto pre-configured
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   `` board_* ``  and `` upload_* ``  options (use only `` board ``  option) and Arduino
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   Wiring-based Framework
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-12-19 19:53:25 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								..  code-block ::  ini
  
						 
					
						
							
								
									
										
										
										
											2014-08-09 16:31:20 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    [env:atmelavr_arduino_uno_board]
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    platform = atmelavr
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    framework = arduino
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    board = uno
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-08-11 12:20:08 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    # enable auto-uploading
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    targets = upload
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-09-10 16:43:09 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								2.  :ref: `platform_atmelavr` : Embedded board that is based on ATmega168 MCU with
  
						 
					
						
							
								
									
										
										
										
											2014-08-09 16:31:20 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								   "arduino" bootloader
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-12-19 19:53:25 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								..  code-block ::  ini
  
						 
					
						
							
								
									
										
										
										
											2014-08-09 16:31:20 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    [env:atmelavr_atmega168_board]
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    platform = atmelavr
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    board_mcu = atmega168
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    board_f_cpu = 16000000L
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    upload_port = /dev/ttyUSB0
 
							 
						 
					
						
							
								
									
										
										
										
											2014-08-11 12:20:08 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    # for Windows OS
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    # upload_port = COM3
 
							 
						 
					
						
							
								
									
										
										
										
											2014-08-09 16:31:20 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    upload_protocol = arduino
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    upload_speed = 19200
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    # enable auto-uploading
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    targets = upload
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-09-10 16:43:09 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								3.  Upload firmware via USB programmer (USBasp) to :ref: `platform_atmelavr` 
  
						 
					
						
							
								
									
										
										
										
											2014-12-19 19:53:25 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								   microcontrollers
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								..  code-block ::  ini
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    [env:atmelavr_usbasp]
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    platform = atmelavr
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    framework = arduino
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    board = pro8MHzatmega328
 
							 
						 
					
						
							
								
									
										
										
										
											2015-12-25 00:17:19 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    upload_protocol = usbasp
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    upload_flags = -Pusb -B5
 
							 
						 
					
						
							
								
									
										
										
										
											2015-11-02 22:36:49 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-01-13 15:03:13 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Then upload firmware using target `` program ``  for :option: `platformio run --target` .
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								command. To use other programmers see :ref: `atmelavr_upload_via_programmer` .
 
							 
						 
					
						
							
								
									
										
										
										
											2014-12-19 19:53:25 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-09-10 16:43:09 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								4.  :ref: `platform_ststm32` : Upload firmware using GDB script `` upload.gdb `` ,
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   `issue #175  <https://github.com/platformio/platformio/issues/175> `_ 
 
							 
						 
					
						
							
								
									
										
										
										
											2014-08-09 16:31:20 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-12-19 19:53:25 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								..  code-block ::  ini
  
						 
					
						
							
								
									
										
										
										
											2014-08-09 16:31:20 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-09-10 16:43:09 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    [env:st_via_gdb]
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    platform = ststm32
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    board = armstrap_eagle512
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    upload_protocol = gdb
 
							 
						 
					
						
							
								
									
										
										
										
											2014-08-09 16:31:20 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-11-20 22:41:36 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Also, take a look at this article `Armstrap Eagle and PlatformIO  <http://isobit.io/2015/08/08/armstrap.html> `_ .
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-09-10 16:43:09 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								5.  :ref: `platform_ststm32` : Upload firmware using ST-Link instead mbed's media
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   disk
 
							 
						 
					
						
							
								
									
										
										
										
											2014-08-09 16:31:20 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-12-19 19:53:25 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								..  code-block ::  ini
  
						 
					
						
							
								
									
										
										
										
											2014-08-09 16:31:20 +03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-09-10 16:43:09 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    [env:stlink_for_mbed]
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    platform = ststm32
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    board = disco_f100rb
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    upload_protocol = stlink