diff --git a/HISTORY.rst b/HISTORY.rst index 3c4a5f7d..75e475ba 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -4,6 +4,12 @@ Release History PlatformIO 2.0 -------------- +2.3.4 (2015-10-??) +~~~~~~~~~~~~~~~~~~ + +* Added support for ubIQio Ardhat board + (`pull #302 `_) + 2.3.3 (2015-10-02) ~~~~~~~~~~~~~~~~~~ diff --git a/README.rst b/README.rst index bc7998be..e27d5901 100644 --- a/README.rst +++ b/README.rst @@ -31,12 +31,13 @@ PlatformIO `Home & Demo `_ | `Project Examples `_ | -`Code `_ | +`Source Code `_ | `Documentation `_ || `Blog `_ | -`Reddit `_ | +`Twitter `_ | +`Hackaday `_ | `Facebook `_ | -`Twitter `_ +`Reddit `_ .. image:: https://raw.githubusercontent.com/platformio/platformio/develop/docs/_static/platformio-logo.png :target: http://platformio.org diff --git a/docs/faq.rst b/docs/faq.rst index 8aa0bd0c..8a7fc30d 100644 --- a/docs/faq.rst +++ b/docs/faq.rst @@ -24,13 +24,14 @@ 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. +: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. 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 ` and all major +boards and MCUs. To keep things short: PlatformIO supports over 150+ +`Embedded Boards `_ and all major :ref:`Development Platforms `. PlatformIO allows users to: @@ -55,6 +56,19 @@ the project developed using PlatformIO is as follows: * Users develop code and PlatformIO makes sure that it is compiled, prepared and uploaded to all the boards of interest. +Commands completion in Terminal +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +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)" + .. _faq_troubleshooting: Troubleshooting diff --git a/docs/frameworks/arduino.rst b/docs/frameworks/arduino.rst index 2902cd6d..0e76b4f1 100644 --- a/docs/frameworks/arduino.rst +++ b/docs/frameworks/arduino.rst @@ -476,7 +476,7 @@ Espressif * - ``esp01`` - `Espressif ESP8266 board `_ - ESP8266 - - 80 MHz + - 40 MHz - 512 Kb - 32 Kb @@ -976,3 +976,23 @@ Wicked Device - 16 MHz - 128 Kb - 16 Kb + +ubIQio +~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``ardhat`` + - `ubIQio Ardhat `_ + - ATMEGA328P + - 16 MHz + - 32 Kb + - 2 Kb diff --git a/docs/index.rst b/docs/index.rst index febb2777..33e9d7ce 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -18,9 +18,10 @@ libOpenCM3, etc.* * `Source Code `_ | `Issues `_ * `Blog `_ | - `Reddit `_ | + `Twitter `_ | + `Hackaday `_ | `Facebook `_ | - `Twitter `_ + `Reddit `_ You have **no need** to install any *IDE* or compile any tool chains. *PlatformIO* has pre-built different development platforms and pre-configured settings for diff --git a/docs/platforms/atmelavr.rst b/docs/platforms/atmelavr.rst index cfd264d0..c86340e0 100644 --- a/docs/platforms/atmelavr.rst +++ b/docs/platforms/atmelavr.rst @@ -872,3 +872,23 @@ Wicked Device - 16 MHz - 128 Kb - 16 Kb + +ubIQio +~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``ardhat`` + - `ubIQio Ardhat `_ + - ATMEGA328P + - 16 MHz + - 32 Kb + - 2 Kb diff --git a/docs/platforms/espressif.rst b/docs/platforms/espressif.rst index 1a134dcb..5fde9300 100644 --- a/docs/platforms/espressif.rst +++ b/docs/platforms/espressif.rst @@ -77,6 +77,6 @@ Espressif * - ``esp01`` - `Espressif ESP8266 board `_ - ESP8266 - - 80 MHz + - 40 MHz - 512 Kb - 32 Kb diff --git a/platformio/__init__.py b/platformio/__init__.py index 33f6ab52..51ef87aa 100644 --- a/platformio/__init__.py +++ b/platformio/__init__.py @@ -1,7 +1,7 @@ # Copyright (C) Ivan Kravets # See LICENSE for details. -VERSION = (2, 3, 3) +VERSION = (2, 3, "4.dev1") __version__ = ".".join([str(s) for s in VERSION]) __title__ = "platformio" diff --git a/platformio/boards/misc.json b/platformio/boards/misc.json index fbcbf031..ed4fde29 100644 --- a/platformio/boards/misc.json +++ b/platformio/boards/misc.json @@ -1,4 +1,26 @@ { + "ardhat": { + "build": { + "core": "arduino", + "extra_flags": "-DARDUINO_ARCH_AVR -DAVR_ARDHAT", + "f_cpu": "16000000L", + "mcu": "atmega328p", + "variant": "standard" + }, + "frameworks": ["arduino"], + "name": "ubIQio Ardhat", + "platform": "atmelavr", + "upload": { + "maximum_ram_size": 2048, + "maximum_size": 32256, + "protocol": "arduino", + "require_upload_port" : true, + "speed": 115200 + }, + "url": "http://ardhat.com", + "vendor": "ubIQio" + }, + "raspduino": { "build": { "core": "arduino", diff --git a/platformio/commands/run.py b/platformio/commands/run.py index daf6ae41..11a16325 100644 --- a/platformio/commands/run.py +++ b/platformio/commands/run.py @@ -36,13 +36,19 @@ def cli(ctx, environment, target, upload_port, # pylint: disable=R0913,R0914 if not config.sections(): raise exception.ProjectEnvsNotAvailable() - unknown = set(environment) - set([s[4:] for s in config.sections()]) + known = set([s[4:] for s in config.sections() + if s.startswith("env:")]) + unknown = set(environment) - known if unknown: - raise exception.UnknownEnvNames(", ".join(unknown)) + raise exception.UnknownEnvNames( + ", ".join(unknown), ", ".join(known)) # clean obsolete .pioenvs dir if not disable_auto_clean: - _clean_pioenvs_dir() + try: + _clean_pioenvs_dir(util.get_pioenvs_dir()) + except Exception: + raise exception.CleanPioenvsDirError(util.get_pioenvs_dir()) results = [] for section in config.sections(): @@ -221,8 +227,7 @@ def _autoinstall_libs(ctx, libids_list): ctx.invoke(cmd_lib_install, libid=not_intalled_libs) -def _clean_pioenvs_dir(): - pioenvs_dir = util.get_pioenvs_dir() +def _clean_pioenvs_dir(pioenvs_dir): structhash_file = join(pioenvs_dir, "structure.hash") proj_hash = calculate_project_hash() diff --git a/platformio/exception.py b/platformio/exception.py index 84b6aca0..8195912e 100644 --- a/platformio/exception.py +++ b/platformio/exception.py @@ -33,14 +33,14 @@ class UnknownPlatform(PlatformioException): class PlatformNotInstalledYet(PlatformioException): - MESSAGE = ("The platform '%s' has not been installed yet. " - "Use `platformio platforms install` command") + MESSAGE = "The platform '%s' has not been installed yet. "\ + "Use `platformio platforms install` command" class UnknownCLICommand(PlatformioException): - MESSAGE = ("Unknown command '%s'. Please use `platformio --help`" - " to see all available commands") + MESSAGE = "Unknown command '%s'. Please use `platformio --help`"\ + " to see all available commands" class UnknownBoard(PlatformioException): @@ -75,14 +75,14 @@ class FDUnrecognizedStatusCode(PlatformioException): class FDSizeMismatch(PlatformioException): - MESSAGE = ("The size (%d bytes) of downloaded file '%s' " - "is not equal to remote size (%d bytes)") + MESSAGE = "The size (%d bytes) of downloaded file '%s' "\ + "is not equal to remote size (%d bytes)" class FDSHASumMismatch(PlatformioException): - MESSAGE = ("The 'sha1' sum '%s' of downloaded file '%s' " - "is not equal to remote '%s'") + MESSAGE = "The 'sha1' sum '%s' of downloaded file '%s' "\ + "is not equal to remote '%s'" class NotPlatformProject(PlatformioException): @@ -104,17 +104,23 @@ class UnsupportedArchiveType(PlatformioException): class ProjectEnvsNotAvailable(PlatformioException): - MESSAGE = "Please setup environments in `platformio.ini` file." + MESSAGE = "Please setup environments in `platformio.ini` file" class InvalidEnvName(PlatformioException): - MESSAGE = "Invalid environment '%s'. The name must start " "with 'env:'." + MESSAGE = "Invalid environment '%s'. The name must start with 'env:'" class UnknownEnvNames(PlatformioException): - MESSAGE = "Unknown environment names '%s'." + MESSAGE = "Unknown environment names '%s'. Valid names are '%s'" + + +class CleanPioenvsDirError(PlatformioException): + + MESSAGE = "Can not remove temporary directory `%s`. "\ + "Please remove it manually" class GetSerialPortsError(PlatformioException): @@ -124,7 +130,7 @@ class GetSerialPortsError(PlatformioException): class GetLatestVersionError(PlatformioException): - MESSAGE = "Can't retrieve the latest PlatformIO version" + MESSAGE = "Can not retrieve the latest PlatformIO version" class APIRequestError(PlatformioException): @@ -173,36 +179,28 @@ class UpgraderFailed(PlatformioException): class CIBuildEnvsEmpty(PlatformioException): - MESSAGE = ( - "Can't find PlatformIO build environments.\nPlease specify `--board` " - "or path to `platformio.ini` with predefined environments using " - "`--project-conf` option" - ) + MESSAGE = "Can't find PlatformIO build environments.\n"\ + "Please specify `--board` or path to `platformio.ini` with "\ + "predefined environments using `--project-conf` option" class SConsNotInstalled(PlatformioException): - MESSAGE = ( - "The PlatformIO and `scons` aren't installed properly. " - "More details in FAQ/Troubleshooting section: " + MESSAGE = "The PlatformIO and `scons` aren't installed properly. "\ + "More details in FAQ/Troubleshooting section: "\ "http://docs.platformio.org/en/latest/faq.html" - ) class PlatformioUpgradeError(PlatformioException): - MESSAGE = ( - "%s \n\n" - "1. Please report this issue here: " - "https://github.com/platformio/platformio/issues \n" - "2. Try different installation/upgrading steps: " + MESSAGE = "%s \n\n"\ + "1. Please report this issue here: "\ + "https://github.com/platformio/platformio/issues \n"\ + "2. Try different installation/upgrading steps: "\ "http://docs.platformio.org/en/latest/installation.html" - ) class CygwinEnvDetected(PlatformioException): - MESSAGE = ( - "PlatformIO does not work within Cygwin environment. " + MESSAGE = "PlatformIO does not work within Cygwin environment. "\ "Use native Terminal instead." - ) diff --git a/platformio/maintenance.py b/platformio/maintenance.py index 5efec017..97675dab 100644 --- a/platformio/maintenance.py +++ b/platformio/maintenance.py @@ -184,10 +184,12 @@ def check_platformio_upgrade(): click.echo("") click.echo("*" * terminal_width) click.secho("There is a new version %s of PlatformIO available.\n" - "Please upgrade it via " % latest_version, + "Please upgrade it via `" % latest_version, fg="yellow", nl=False) click.secho("platformio upgrade", fg="cyan", nl=False) - click.secho(" command.\nChanges: ", fg="yellow", nl=False) + click.secho("` or `", fg="yellow", nl=False) + click.secho("pip install -U platformio", fg="cyan", nl=False) + click.secho("` command.\nChanges: ", fg="yellow", nl=False) click.secho("http://docs.platformio.org/en/latest/history.html", fg="cyan") click.echo("*" * terminal_width) diff --git a/requirements.txt b/requirements.txt index c2c1efc3..d942675f 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,5 +3,5 @@ click==5.1 colorama==0.3.3 lockfile==0.10.2 pyserial==2.7 -requests==2.7.0 +requests==2.8.0 scons==2.3.6