| 
									
										
										
										
											2015-03-29 23:19:50 +03:00
										 |  |  | .. _faq:
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Frequently Asked Questions
 | 
					
						
							|  |  |  | ==========================
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. contents::
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | General
 | 
					
						
							|  |  |  | -------
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. _faq_what_is_platformio:
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | What is PlatformIO?
 | 
					
						
							|  |  |  | ~~~~~~~~~~~~~~~~~~~
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | `PlatformIO <http://platformio.org>`_ is a cross-platform code builder
 | 
					
						
							|  |  |  | and the missing library manager.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | PlatformIO is independent from the platform, in which it is running. In fact,
 | 
					
						
							|  |  |  | the only requirement is Python, which exists pretty much everywhere. What this
 | 
					
						
							|  |  |  | means is that PlatformIO projects can be easily moved from one computer to
 | 
					
						
							|  |  |  | another, as well as that PlatformIO allows for the easy sharing of projects
 | 
					
						
							|  |  |  | between team members, regardless of operating system they prefer to work with.
 | 
					
						
							|  |  |  | Beyond that, PlatformIO can be run not only on commonly used desktops/laptops
 | 
					
						
							|  |  |  | but also on the servers without X Window System. While PlatformIO itself is a
 | 
					
						
							|  |  |  | console application, it can be used in combination with one's favorite
 | 
					
						
							|  |  |  | :ref:`ide` or text editor such as :ref:`ide_arduino`, :ref:`ide_eclipse`,
 | 
					
						
							|  |  |  | :ref:`ide_visualstudio`, :ref:`ide_vim`,  :ref:`ide_sublimetext`, etc.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Alright, so PlatformIO can run on different operating systems. But more
 | 
					
						
							|  |  |  | importantly, from development perspective at least, is a list of supported
 | 
					
						
							|  |  |  | boards and MCUs. To keep things short: PlatformIO supports over 100
 | 
					
						
							|  |  |  | :ref:`Embedded Boards <platforms>` and all major
 | 
					
						
							|  |  |  | :ref:`Development Platforms <platforms>`.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | PlatformIO allows users to:
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | * Decide which operation system they want to run development process on.
 | 
					
						
							|  |  |  |   You can even use one OS at home and another at work.
 | 
					
						
							|  |  |  | * Choose which editor to use for writing the code. It can be pretty simple
 | 
					
						
							|  |  |  |   editor or powerful favorite :ref:`ide`.
 | 
					
						
							|  |  |  | * Focus on the code development, significantly simplifying support for the
 | 
					
						
							|  |  |  |   :ref:`platforms` and MCUs.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | How does it work?
 | 
					
						
							|  |  |  | ~~~~~~~~~~~~~~~~~
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Without going too deep into PlatformIO implementation details, work cycle of
 | 
					
						
							|  |  |  | the project developed using PlatformIO is as follows:
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | * Users choose board(s) interested in :ref:`projectconf`
 | 
					
						
							|  |  |  | * Based on this list of boards, PlatformIO downloads required toolchains and
 | 
					
						
							|  |  |  |   installs them automatically.
 | 
					
						
							|  |  |  | * Users develop code and PlatformIO makes sure that it is compiled, prepared
 | 
					
						
							|  |  |  |   and uploaded to all the boards of interest.
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-03-31 15:27:04 +03:00
										 |  |  | .. _faq_troubleshooting:
 | 
					
						
							| 
									
										
										
										
											2015-03-29 23:19:50 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | Troubleshooting
 | 
					
						
							|  |  |  | ---------------
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-03-31 15:27:04 +03:00
										 |  |  | .. _faq_troubleshooting_pioblocksprompt:
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-04-03 00:15:54 +03:00
										 |  |  | PlatformIO blocks command execution using user prompt
 | 
					
						
							| 
									
										
										
										
											2015-03-31 15:27:04 +03:00
										 |  |  | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | If you are going to run *PlatformIO* from **subprocess**, you **MUST
 | 
					
						
							|  |  |  | DISABLE** all prompts. It will allow you to avoid blocking.
 | 
					
						
							|  |  |  | There are a few options:
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-05-15 22:50:39 +02:00
										 |  |  | - using :option:`platformio --force` option before each command
 | 
					
						
							| 
									
										
										
										
											2015-08-14 00:14:04 +03:00
										 |  |  | - using environment variable :envvar:`PLATFORMIO_SETTING_ENABLE_PROMPTS=No <PLATFORMIO_SETTING_ENABLE_PROMPTS>`
 | 
					
						
							| 
									
										
										
										
											2015-03-31 15:27:04 +03:00
										 |  |  | - disable global setting ``enable_prompts`` via :ref:`cmd_settings` command
 | 
					
						
							|  |  |  | - masking under Continuous Integration system via environment variable
 | 
					
						
							| 
									
										
										
										
											2015-08-14 00:14:04 +03:00
										 |  |  |   :envvar:`CI=true <CI>`.
 | 
					
						
							| 
									
										
										
										
											2015-03-31 15:27:04 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-21 23:41:50 +03:00
										 |  |  | .. _faq_troubleshooting_pionotfoundinpath:
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Program ``platformio`` not found in PATH
 | 
					
						
							|  |  |  | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Where is ``platformio`` binary installed? Run this command in Terminal
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. code-block:: bash
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     # for Unix
 | 
					
						
							|  |  |  |     which platformio
 | 
					
						
							|  |  |  |     echo $PATH
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     # for Windows OS
 | 
					
						
							|  |  |  |     where platformio
 | 
					
						
							|  |  |  |     echo %PATH%
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | For example, ``which platformio`` is equal to ``/usr/local/bin/platformio``,
 | 
					
						
							|  |  |  | then `PATH (wiki) <https://en.wikipedia.org/wiki/PATH_(variable)>`_
 | 
					
						
							|  |  |  | should contain ``/usr/local/bin`` directory.
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-22 17:30:58 +03:00
										 |  |  | **Unix Users**: You can make "symlinks" from ``platformio`` and ``scons``
 | 
					
						
							|  |  |  | programs to the ``bin`` directory which is included in ``$PATH``. For example,
 | 
					
						
							|  |  |  | see `issue #272 <https://github.com/platformio/platformio/issues/272#issuecomment-133626112>`_.
 | 
					
						
							| 
									
										
										
										
											2015-03-31 15:27:04 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | Windows: ``UnicodeDecodeError: 'ascii' codec can't decode byte``
 | 
					
						
							|  |  |  | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-03-31 15:56:35 +03:00
										 |  |  | Answered in `issue #143 <https://github.com/platformio/platformio/issues/143#issuecomment-88060906>`_.
 | 
					
						
							| 
									
										
										
										
											2015-03-31 15:27:04 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-03-29 23:19:50 +03:00
										 |  |  | Serial does not work with panStampAVR board
 | 
					
						
							|  |  |  | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-03-31 15:56:35 +03:00
										 |  |  | Answered in `issue #144 <https://github.com/platformio/platformio/issues/144#issuecomment-87388038>`_.
 | 
					
						
							| 
									
										
										
										
											2015-03-31 15:27:04 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-04-16 13:16:56 +02:00
										 |  |  | PlatformIO: command not found || An error ``pkg_resources.DistributionNotFound``
 | 
					
						
							| 
									
										
										
										
											2015-05-15 22:50:39 +02:00
										 |  |  | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 | 
					
						
							| 
									
										
										
										
											2015-03-31 15:27:04 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | Please upgrade *SetupTools* package:
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .. code-block:: bash
 | 
					
						
							| 
									
										
										
										
											2015-03-29 23:19:50 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-03-31 15:27:04 +03:00
										 |  |  |     $ [sudo] pip uninstall setuptools
 | 
					
						
							|  |  |  |     $ [sudo] pip install setuptools
 | 
					
						
							| 
									
										
										
										
											2015-03-29 23:19:50 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-03-31 15:27:04 +03:00
										 |  |  |     # Then re-install PlatformIO
 | 
					
						
							|  |  |  |     $ [sudo] pip uninstall platformio
 | 
					
						
							|  |  |  |     $ [sudo] pip install platformio
 | 
					
						
							| 
									
										
										
										
											2015-06-22 18:45:20 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-21 23:09:56 +03:00
										 |  |  | Windows: ``AttributeError: 'module' object has no attribute 'packages'``
 | 
					
						
							|  |  |  | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Answered in `issue #252 <https://github.com/platformio/platformio/issues/252#issuecomment-127072039>`_.
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-22 18:45:20 +03:00
										 |  |  | ARM toolchain: ``cc1plus: error while loading shared libraries``
 | 
					
						
							|  |  |  | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | See related answers for
 | 
					
						
							|  |  |  | `error while loading shared libraries <https://github.com/platformio/platformio/issues?utf8=✓&q=error+while+loading+shared+libraries>`_.
 |