2015-11-18 17:33:46 +02:00
|
|
|
.. Copyright 2014-2015 Ivan Kravets <me@ikravets.com>
|
|
|
|
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.
|
|
|
|
|
2015-03-29 23:19:50 +03:00
|
|
|
.. _faq:
|
|
|
|
|
|
|
|
Frequently Asked Questions
|
|
|
|
==========================
|
|
|
|
|
|
|
|
.. contents::
|
|
|
|
|
|
|
|
General
|
|
|
|
-------
|
|
|
|
|
|
|
|
.. _faq_what_is_platformio:
|
|
|
|
|
|
|
|
What is PlatformIO?
|
|
|
|
~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
2015-11-28 17:14:42 +02:00
|
|
|
`PlatformIO <http://platformio.org>`_ is an open source ecosystem for IoT
|
|
|
|
development.
|
2015-03-29 23:19:50 +03:00
|
|
|
|
|
|
|
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
|
2015-10-04 15:20:49 +01:00
|
|
|
:ref:`ide` or text editor such as :ref:`ide_arduino`, :ref:`ide_atom`,
|
|
|
|
:ref:`ide_clion`, :ref:`ide_eclipse`, :ref:`ide_qtcreator`,
|
|
|
|
:ref:`ide_sublimetext`, :ref:`ide_vim`, :ref:`ide_visualstudio`, etc.
|
2015-03-29 23:19:50 +03:00
|
|
|
|
|
|
|
Alright, so PlatformIO can run on different operating systems. But more
|
|
|
|
importantly, from development perspective at least, is a list of supported
|
2015-12-19 01:19:36 +02:00
|
|
|
boards and MCUs. To keep things short: PlatformIO supports approximately 200
|
2015-10-08 16:50:47 +01:00
|
|
|
`Embedded Boards <http://platformio.org/#!/boards>`_ and all major
|
2015-03-29 23:19:50 +03:00
|
|
|
: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-10-13 17:44:28 +01:00
|
|
|
Command completion in Terminal
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
2015-10-04 15:20:49 +01:00
|
|
|
|
|
|
|
Bash completion
|
|
|
|
'''''''''''''''
|
|
|
|
|
|
|
|
Bash completion support will complete subcommands and parameters. To enable
|
|
|
|
Bash completion for `platformio` subcommands you need to put into your `.bashrc`:
|
|
|
|
|
|
|
|
.. code-block:: bash
|
|
|
|
|
|
|
|
eval "$(_PLATFORMIO_COMPLETE=source platformio)"
|
|
|
|
|
2015-10-13 17:44:28 +01:00
|
|
|
ZSH completion
|
|
|
|
''''''''''''''
|
|
|
|
|
|
|
|
To enable ``zsh`` completion please run these commands:
|
|
|
|
|
2015-10-13 18:36:37 +01:00
|
|
|
.. code-block:: bash
|
2015-10-13 17:44:28 +01:00
|
|
|
|
|
|
|
autoload bashcompinit && bashcompinit
|
|
|
|
eval "$(_PLATFORMIO_COMPLETE=source platformio)"
|
|
|
|
|
|
|
|
.. note::
|
|
|
|
|
|
|
|
For permanent command completion you need to place commands above to
|
|
|
|
``~/.bashrc`` or ``~/.zshrc`` file.
|
|
|
|
|
2015-03-31 15:27:04 +03:00
|
|
|
.. _faq_troubleshooting:
|
2015-03-29 23:19:50 +03:00
|
|
|
|
|
|
|
Troubleshooting
|
|
|
|
---------------
|
|
|
|
|
2015-09-28 16:57:28 +01:00
|
|
|
Installation
|
|
|
|
~~~~~~~~~~~~
|
2015-03-31 15:27:04 +03:00
|
|
|
|
2015-12-21 17:35:30 +02:00
|
|
|
``SCons`` is not installed in your system
|
|
|
|
'''''''''''''''''''''''''''''''''''''''''
|
2015-09-10 17:47:19 +03:00
|
|
|
|
2015-12-11 00:16:06 +02:00
|
|
|
PlatformIO depends on awesome and irreplaceable software construction tool
|
|
|
|
named `SCons <http://www.scons.org>`_. PlatformIO Code Builder uses it to build
|
|
|
|
single source code for the multiple embedded platforms.
|
2015-09-10 17:47:19 +03:00
|
|
|
|
2015-12-11 00:16:06 +02:00
|
|
|
When you install PlatformIO it tries to find ``scons`` program in your OS. If
|
|
|
|
SCons is installed in your system, then PlatformIO will use it. Otherwise,
|
|
|
|
PlatformIO tries to install it automatically using ``pip install scons``. So, if
|
|
|
|
you are here, then it means that PlatformIO could not install it for you.
|
|
|
|
Let fix it manually.
|
|
|
|
|
|
|
|
1. Need to cleanup all previous SCons installations using `pip <https://pip.pypa.io>`_
|
2015-09-10 17:47:19 +03:00
|
|
|
|
|
|
|
.. code-block:: bash
|
|
|
|
|
|
|
|
[sudo] pip uninstall scons
|
2015-12-11 00:16:06 +02:00
|
|
|
|
|
|
|
|
|
|
|
2. Try to install it manually
|
|
|
|
|
|
|
|
.. code-block:: bash
|
|
|
|
|
2015-09-10 17:47:19 +03:00
|
|
|
[sudo] pip install scons
|
|
|
|
|
2015-12-12 18:00:03 +02:00
|
|
|
# If you have errors:
|
|
|
|
# * error: option --single-version-externally-managed not recognized
|
|
|
|
# * OSError: [Errno 1] Operation not permitted: '/System/Library/Frameworks/Python.framework/Versions/2.7/man'
|
|
|
|
[sudo] pip install --egg scons --install-option="--no-install-man"
|
2015-10-13 17:44:28 +01:00
|
|
|
|
2015-12-11 00:16:06 +02:00
|
|
|
3. If it didn't help you, try system OS package manager
|
|
|
|
|
2015-12-22 19:53:54 +02:00
|
|
|
* **Mac OS X** using `SCons Mac OS X Installer <https://github.com/rviney/scons-mac-installer>`_
|
|
|
|
or `brew <http://brew.sh>`_ (``brew install scons``)
|
|
|
|
* **Linux** ``[sudo] apt-get install scons`` or ``[sudo] yum install scons``
|
2015-12-11 00:16:06 +02:00
|
|
|
|
|
|
|
To identify that SCons is installed in your system run ``scons -v``.
|
|
|
|
|
2015-09-10 17:47:19 +03:00
|
|
|
|
|
|
|
.. _faq_troubleshooting_sconssingverextmanaged:
|
|
|
|
|
|
|
|
PIP & SCons Error: option --single-version-externally-managed not recognized
|
2015-09-28 16:57:28 +01:00
|
|
|
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
|
2015-09-10 17:47:19 +03:00
|
|
|
|
|
|
|
Answered in `issue #279 <https://github.com/platformio/platformio/issues/279>`_.
|
|
|
|
|
2015-09-28 16:57:28 +01:00
|
|
|
[Errno 1] Operation not permitted
|
|
|
|
'''''''''''''''''''''''''''''''''
|
|
|
|
|
|
|
|
Answered in `issue #295 <https://github.com/platformio/platformio/issues/295#issuecomment-143772005>`_.
|
|
|
|
|
2015-11-24 19:58:24 +02:00
|
|
|
Windows AttributeError: 'module' object has no attribute 'packages'
|
|
|
|
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
|
2015-09-28 16:57:28 +01:00
|
|
|
|
2015-11-24 19:58:24 +02:00
|
|
|
Answered in `issue #252 <https://github.com/platformio/platformio/issues/252#issuecomment-127072039>`_.
|
2015-09-28 16:57:28 +01:00
|
|
|
|
2015-08-21 23:41:50 +03:00
|
|
|
.. _faq_troubleshooting_pionotfoundinpath:
|
|
|
|
|
2015-12-11 00:16:06 +02:00
|
|
|
Program "platformio" not found in PATH
|
|
|
|
''''''''''''''''''''''''''''''''''''''
|
2015-08-21 23:41:50 +03:00
|
|
|
|
|
|
|
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
|
|
|
|
2015-09-10 17:47:19 +03:00
|
|
|
Windows UnicodeDecodeError: 'ascii' codec can't decode byte
|
2015-11-24 19:58:24 +02:00
|
|
|
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
|
2015-03-31 15:27:04 +03:00
|
|
|
|
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-11-24 19:58:24 +02:00
|
|
|
PlatformIO: command not found || An error "pkg_resources.DistributionNotFound"
|
|
|
|
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
|
2015-03-31 15:27:04 +03:00
|
|
|
|
|
|
|
Please upgrade *SetupTools* package:
|
|
|
|
|
|
|
|
.. code-block:: bash
|
2015-03-29 23:19:50 +03:00
|
|
|
|
2015-09-10 17:47:19 +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
|
2015-09-10 17:47:19 +03:00
|
|
|
[sudo] pip uninstall platformio
|
|
|
|
[sudo] pip install platformio
|
2015-06-22 18:45:20 +03:00
|
|
|
|
2015-11-24 19:58:24 +02:00
|
|
|
Miscellaneous
|
|
|
|
~~~~~~~~~~~~~
|
2015-08-21 23:09:56 +03:00
|
|
|
|
2015-11-24 19:58:24 +02:00
|
|
|
.. _faq_troubleshooting_pioblocksprompt:
|
|
|
|
|
|
|
|
PlatformIO blocks command execution using user prompt
|
|
|
|
'''''''''''''''''''''''''''''''''''''''''''''''''''''
|
|
|
|
|
|
|
|
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:
|
|
|
|
|
|
|
|
- using :option:`platformio --force` option before each command
|
|
|
|
- using environment variable :envvar:`PLATFORMIO_SETTING_ENABLE_PROMPTS=No <PLATFORMIO_SETTING_ENABLE_PROMPTS>`
|
|
|
|
- disable global setting ``enable_prompts`` via :ref:`cmd_settings` command
|
|
|
|
- masking under Continuous Integration system via environment variable
|
|
|
|
:envvar:`CI=true <CI>`.
|
|
|
|
|
|
|
|
Serial does not work with panStampAVR board
|
|
|
|
'''''''''''''''''''''''''''''''''''''''''''
|
|
|
|
|
|
|
|
Answered in `issue #144 <https://github.com/platformio/platformio/issues/144#issuecomment-87388038>`_.
|
|
|
|
|
|
|
|
Building
|
|
|
|
~~~~~~~~
|
|
|
|
|
|
|
|
Can not compile a library that compiles without issue with Arduino IDE
|
|
|
|
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
|
|
|
|
|
|
|
|
* `#298: Unable to use Souliss library <https://github.com/platformio/platformio/issues/298>`_
|
|
|
|
* `#331: Unable to use MySensors library <https://github.com/platformio/platformio/issues/331>`_
|
2015-08-21 23:09:56 +03:00
|
|
|
|
2015-09-10 17:47:19 +03:00
|
|
|
ARM toolchain: cc1plus: error while loading shared libraries
|
2015-11-24 19:58:24 +02:00
|
|
|
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
|
2015-06-22 18:45:20 +03:00
|
|
|
|
|
|
|
See related answers for
|
|
|
|
`error while loading shared libraries <https://github.com/platformio/platformio/issues?utf8=✓&q=error+while+loading+shared+libraries>`_.
|
2015-09-23 15:55:19 +03:00
|
|
|
|
|
|
|
Archlinux: libncurses.so.5: cannot open shared object file
|
2015-11-24 19:58:24 +02:00
|
|
|
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
|
2015-09-23 15:55:19 +03:00
|
|
|
|
|
|
|
Answered in `issue #291 <https://github.com/platformio/platformio/issues/291>`_.
|
2015-12-17 20:22:17 +02:00
|
|
|
|
|
|
|
Monitoring a serial port breaks upload
|
|
|
|
''''''''''''''''''''''''''''''''''''''
|
|
|
|
|
|
|
|
Answered in `issue #384 <https://github.com/platformio/platformio/issues/384>`_.
|