From 47c238b1ebd5bfd60c0bee169074a5aa67061103 Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Wed, 15 Jun 2016 19:30:37 +0300 Subject: [PATCH 01/19] Fix issue with ``platformio init --ide`` command for Python 2.6 --- .gitignore | 1 + HISTORY.rst | 5 +++++ platformio/__init__.py | 2 +- platformio/commands/upgrade.py | 2 ++ platformio/ide/projectgenerator.py | 7 ++++++- 5 files changed, 15 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index dfcb0c78..89257136 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ docs/_build dist build +.cache diff --git a/HISTORY.rst b/HISTORY.rst index ec59872a..1bc72b89 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -4,6 +4,11 @@ Release Notes PlatformIO 2.0 -------------- +2.10.4 (2016-06-??) +~~~~~~~~~~~~~~~~~~~ + +* Fixed issue with ``platformio init --ide`` command for Python 2.6 + 2.10.3 (2016-06-15) ~~~~~~~~~~~~~~~~~~~ diff --git a/platformio/__init__.py b/platformio/__init__.py index 0f8db754..8746c80d 100644 --- a/platformio/__init__.py +++ b/platformio/__init__.py @@ -14,7 +14,7 @@ import sys -VERSION = (2, 10, 3) +VERSION = (2, 10, "4.dev0") __version__ = ".".join([str(s) for s in VERSION]) __title__ = "platformio" diff --git a/platformio/commands/upgrade.py b/platformio/commands/upgrade.py index 894e8182..44e3b8ea 100644 --- a/platformio/commands/upgrade.py +++ b/platformio/commands/upgrade.py @@ -52,6 +52,8 @@ def cli(): r = None try: for cmd in cmds: + if sys.version_info < (2, 7, 0): + cmd[0] += ".__main__" cmd = [os.path.normpath(sys.executable), "-m"] + cmd r = None r = util.exec_command(cmd) diff --git a/platformio/ide/projectgenerator.py b/platformio/ide/projectgenerator.py index 2afd9d40..b4be53a3 100644 --- a/platformio/ide/projectgenerator.py +++ b/platformio/ide/projectgenerator.py @@ -66,7 +66,12 @@ class ProjectGenerator(object): envdata = self.get_project_env() if "env_name" not in envdata: return data - cmd = [normpath(sys.executable), "-m", "platformio", "-f"] + cmd = [ + normpath(sys.executable), "-m", + "platformio" + ( + ".__main__" if sys.version_info < (2, 7, 0) else ""), + "-f" + ] if app.get_session_var("caller_id"): cmd.extend(["-c", app.get_session_var("caller_id")]) cmd.extend(["run", "-t", "idedata", "-e", envdata['env_name']]) From 31a110c37ff7fb5a885b14fedd05719b874a4d37 Mon Sep 17 00:00:00 2001 From: Valerii Koval Date: Wed, 15 Jun 2016 20:55:45 +0300 Subject: [PATCH 02/19] Fix unnecessary uppercase for target includes --- platformio/builder/scripts/frameworks/mbed.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platformio/builder/scripts/frameworks/mbed.py b/platformio/builder/scripts/frameworks/mbed.py index 2b1bd2ad..08a9e873 100644 --- a/platformio/builder/scripts/frameworks/mbed.py +++ b/platformio/builder/scripts/frameworks/mbed.py @@ -163,7 +163,7 @@ def add_mbedlib(libname, libar): continue if "TARGET_" in root: - if all([p not in root.upper() for p in target_includes]): + if all([p not in root for p in target_includes]): continue var_dir = join("$BUILD_DIR", "FrameworkMbed%sInc%d" % From 4035b9ac6c824b0bf37e20c3458300c879177361 Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Sat, 18 Jun 2016 00:38:00 +0300 Subject: [PATCH 03/19] Better removing unnecessary flags using ``build_unflags`` option // Resolve #698 --- HISTORY.rst | 2 + platformio/__init__.py | 2 +- platformio/builder/scripts/basearm.py | 7 +-- platformio/builder/scripts/espressif.py | 6 +-- platformio/builder/scripts/frameworks/mbed.py | 7 ++- platformio/builder/scripts/ststm32.py | 5 --- platformio/builder/scripts/titiva.py | 7 --- platformio/builder/tools/platformio.py | 45 ++++++++++--------- 8 files changed, 37 insertions(+), 44 deletions(-) diff --git a/HISTORY.rst b/HISTORY.rst index 1bc72b89..f156f03b 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -7,6 +7,8 @@ PlatformIO 2.0 2.10.4 (2016-06-??) ~~~~~~~~~~~~~~~~~~~ +* Better removing unnecessary flags using ``build_unflags`` option + (`issue #698 `_) * Fixed issue with ``platformio init --ide`` command for Python 2.6 2.10.3 (2016-06-15) diff --git a/platformio/__init__.py b/platformio/__init__.py index 8746c80d..b2567541 100644 --- a/platformio/__init__.py +++ b/platformio/__init__.py @@ -14,7 +14,7 @@ import sys -VERSION = (2, 10, "4.dev0") +VERSION = (2, 10, "4.dev1") __version__ = ".".join([str(s) for s in VERSION]) __title__ = "platformio" diff --git a/platformio/builder/scripts/basearm.py b/platformio/builder/scripts/basearm.py index 20892b18..a8dc9cc7 100644 --- a/platformio/builder/scripts/basearm.py +++ b/platformio/builder/scripts/basearm.py @@ -40,8 +40,7 @@ env.Replace( "-fdata-sections", "-Wall", "-mthumb", - "-mcpu=${BOARD_OPTIONS['build']['cpu']}", - "-nostdlib" + "-mcpu=${BOARD_OPTIONS['build']['cpu']}" ], CXXFLAGS=[ @@ -57,7 +56,9 @@ env.Replace( "-Os", "-Wl,--gc-sections,--relax", "-mthumb", - "-mcpu=${BOARD_OPTIONS['build']['cpu']}" + "-mcpu=${BOARD_OPTIONS['build']['cpu']}", + "-nostdlib", + "-nostartfiles" ], LIBS=["c", "gcc", "m"], diff --git a/platformio/builder/scripts/espressif.py b/platformio/builder/scripts/espressif.py index 7c167489..34058955 100644 --- a/platformio/builder/scripts/espressif.py +++ b/platformio/builder/scripts/espressif.py @@ -71,8 +71,7 @@ env.Replace( "-Wpointer-arith", "-Wno-implicit-function-declaration", "-Wl,-EL", - "-fno-inline-functions", - "-nostdlib" + "-fno-inline-functions" ], CCFLAGS=[ @@ -82,8 +81,7 @@ env.Replace( "-falign-functions=4", "-U__STRICT_ANSI__", "-ffunction-sections", - "-fdata-sections", - "-MMD" # output dependancy info + "-fdata-sections" ], CXXFLAGS=[ diff --git a/platformio/builder/scripts/frameworks/mbed.py b/platformio/builder/scripts/frameworks/mbed.py index 08a9e873..3c7dc2e0 100644 --- a/platformio/builder/scripts/frameworks/mbed.py +++ b/platformio/builder/scripts/frameworks/mbed.py @@ -264,13 +264,12 @@ env.Replace( ) # restore external build flags -env.ProcessFlags([ - env.get("BOARD_OPTIONS", {}).get("build", {}).get("extra_flags") -]) +env.ProcessFlags( + env.get("BOARD_OPTIONS", {}).get("build", {}).get("extra_flags")) # remove base flags env.ProcessUnFlags(env.get("BUILD_UNFLAGS")) # apply user flags -env.ProcessFlags([env.get("BUILD_FLAGS")]) +env.ProcessFlags(env.get("BUILD_FLAGS")) # Hook for K64F and K22F if board_type in ("frdm_k22f", "frdm_k64f"): diff --git a/platformio/builder/scripts/ststm32.py b/platformio/builder/scripts/ststm32.py index 8dbd70ef..3077f74d 100644 --- a/platformio/builder/scripts/ststm32.py +++ b/platformio/builder/scripts/ststm32.py @@ -66,11 +66,6 @@ env.Append( ], LIBS=["stdc++", "nosys"], - - LINKFLAGS=[ - "-nostartfiles", - "-nostdlib" - ] ) # diff --git a/platformio/builder/scripts/titiva.py b/platformio/builder/scripts/titiva.py index e705cd62..411eb0cb 100644 --- a/platformio/builder/scripts/titiva.py +++ b/platformio/builder/scripts/titiva.py @@ -31,13 +31,6 @@ env.Replace( UPLOADCMD='"$UPLOADER" $SOURCES' ) -env.Append( - LINKFLAGS=[ - "-nostartfiles", - "-nostdlib" - ] -) - # # Target: Build executable and linkable firmware # diff --git a/platformio/builder/tools/platformio.py b/platformio/builder/tools/platformio.py index 01b50f57..41341b96 100644 --- a/platformio/builder/tools/platformio.py +++ b/platformio/builder/tools/platformio.py @@ -53,13 +53,12 @@ def BuildProgram(env): ) # process extra flags from board - env.ProcessFlags([ - env.get("BOARD_OPTIONS", {}).get("build", {}).get("extra_flags") - ]) + env.ProcessFlags( + env.get("BOARD_OPTIONS", {}).get("build", {}).get("extra_flags")) # remove base flags env.ProcessUnFlags(env.get("BUILD_UNFLAGS")) # apply user flags - env.ProcessFlags([env.get("BUILD_FLAGS")]) + env.ProcessFlags(env.get("BUILD_FLAGS")) if env.get("FRAMEWORK"): env.BuildFrameworks([ @@ -88,7 +87,7 @@ def BuildProgram(env): ) # Handle SRC_BUILD_FLAGS - env.ProcessFlags([env.get("SRC_BUILD_FLAGS", None)]) + env.ProcessFlags(env.get("SRC_BUILD_FLAGS")) env.Append( CPPPATH=["$PROJECTSRC_DIR"], @@ -117,18 +116,17 @@ def BuildProgram(env): def ProcessFlags(env, flags): - for f in flags: - if not f: + if not flags: + return + parsed_flags = env.ParseFlags(str(flags)) + for flag in parsed_flags.pop("CPPDEFINES"): + if not isinstance(flag, list): + env.Append(CPPDEFINES=flag) continue - parsed_flags = env.ParseFlags(str(f)) - for flag in parsed_flags.pop("CPPDEFINES"): - if not isinstance(flag, list): - env.Append(CPPDEFINES=flag) - continue - if '\"' in flag[1]: - flag[1] = flag[1].replace('\"', '\\\"') - env.Append(CPPDEFINES=[flag]) - env.Append(**parsed_flags) + if '\"' in flag[1]: + flag[1] = flag[1].replace('\"', '\\\"') + env.Append(CPPDEFINES=[flag]) + env.Append(**parsed_flags) # fix relative CPPPATH & LIBPATH for k in ("CPPPATH", "LIBPATH"): @@ -153,10 +151,17 @@ def ProcessFlags(env, flags): def ProcessUnFlags(env, flags): if not flags: return - for var, values in env.ParseFlags(flags).items(): - for v in values: - if v in env[var]: - env[var].remove(v) + parsed_flags = env.ParseFlags(flags) + all_flags = [] + for items in parsed_flags.values(): + all_flags.extend(items) + all_flags = set(all_flags) + + for key in parsed_flags.keys(): + cur_flags = set(env.get(key, [])) + common = cur_flags & all_flags + for item in common: + env[key].remove(item) def IsFileWithExt(env, file_, ext): # pylint: disable=W0613 From 8d94a62b9cc2f7f7fbfd2e68dc09de82638c4355 Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Sat, 18 Jun 2016 00:52:46 +0300 Subject: [PATCH 04/19] Revert back previous LINKFLAGS --- platformio/builder/scripts/basearm.py | 7 +++---- platformio/builder/scripts/espressif.py | 6 ++++-- platformio/builder/scripts/ststm32.py | 5 +++++ platformio/builder/scripts/titiva.py | 7 +++++++ 4 files changed, 19 insertions(+), 6 deletions(-) diff --git a/platformio/builder/scripts/basearm.py b/platformio/builder/scripts/basearm.py index a8dc9cc7..20892b18 100644 --- a/platformio/builder/scripts/basearm.py +++ b/platformio/builder/scripts/basearm.py @@ -40,7 +40,8 @@ env.Replace( "-fdata-sections", "-Wall", "-mthumb", - "-mcpu=${BOARD_OPTIONS['build']['cpu']}" + "-mcpu=${BOARD_OPTIONS['build']['cpu']}", + "-nostdlib" ], CXXFLAGS=[ @@ -56,9 +57,7 @@ env.Replace( "-Os", "-Wl,--gc-sections,--relax", "-mthumb", - "-mcpu=${BOARD_OPTIONS['build']['cpu']}", - "-nostdlib", - "-nostartfiles" + "-mcpu=${BOARD_OPTIONS['build']['cpu']}" ], LIBS=["c", "gcc", "m"], diff --git a/platformio/builder/scripts/espressif.py b/platformio/builder/scripts/espressif.py index 34058955..7c167489 100644 --- a/platformio/builder/scripts/espressif.py +++ b/platformio/builder/scripts/espressif.py @@ -71,7 +71,8 @@ env.Replace( "-Wpointer-arith", "-Wno-implicit-function-declaration", "-Wl,-EL", - "-fno-inline-functions" + "-fno-inline-functions", + "-nostdlib" ], CCFLAGS=[ @@ -81,7 +82,8 @@ env.Replace( "-falign-functions=4", "-U__STRICT_ANSI__", "-ffunction-sections", - "-fdata-sections" + "-fdata-sections", + "-MMD" # output dependancy info ], CXXFLAGS=[ diff --git a/platformio/builder/scripts/ststm32.py b/platformio/builder/scripts/ststm32.py index 3077f74d..8dbd70ef 100644 --- a/platformio/builder/scripts/ststm32.py +++ b/platformio/builder/scripts/ststm32.py @@ -66,6 +66,11 @@ env.Append( ], LIBS=["stdc++", "nosys"], + + LINKFLAGS=[ + "-nostartfiles", + "-nostdlib" + ] ) # diff --git a/platformio/builder/scripts/titiva.py b/platformio/builder/scripts/titiva.py index 411eb0cb..e705cd62 100644 --- a/platformio/builder/scripts/titiva.py +++ b/platformio/builder/scripts/titiva.py @@ -31,6 +31,13 @@ env.Replace( UPLOADCMD='"$UPLOADER" $SOURCES' ) +env.Append( + LINKFLAGS=[ + "-nostartfiles", + "-nostdlib" + ] +) + # # Target: Build executable and linkable firmware # From 2eca835ec765047d6fe21211491506f6ce736c33 Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Sat, 18 Jun 2016 00:53:23 +0300 Subject: [PATCH 05/19] Disable dependancy info --- platformio/builder/scripts/espressif.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/platformio/builder/scripts/espressif.py b/platformio/builder/scripts/espressif.py index 7c167489..d9cef77b 100644 --- a/platformio/builder/scripts/espressif.py +++ b/platformio/builder/scripts/espressif.py @@ -82,8 +82,7 @@ env.Replace( "-falign-functions=4", "-U__STRICT_ANSI__", "-ffunction-sections", - "-fdata-sections", - "-MMD" # output dependancy info + "-fdata-sections" ], CXXFLAGS=[ From 2b88ef134b47a136a064992baad4d9f6176b4ba4 Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Sat, 18 Jun 2016 00:56:04 +0300 Subject: [PATCH 06/19] Remove duplicated flags // Issue #698 --- platformio/__init__.py | 2 +- platformio/builder/tools/platformio.py | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/platformio/__init__.py b/platformio/__init__.py index b2567541..818bf941 100644 --- a/platformio/__init__.py +++ b/platformio/__init__.py @@ -14,7 +14,7 @@ import sys -VERSION = (2, 10, "4.dev1") +VERSION = (2, 10, "4.dev2") __version__ = ".".join([str(s) for s in VERSION]) __title__ = "platformio" diff --git a/platformio/builder/tools/platformio.py b/platformio/builder/tools/platformio.py index 41341b96..22e7dc94 100644 --- a/platformio/builder/tools/platformio.py +++ b/platformio/builder/tools/platformio.py @@ -159,9 +159,9 @@ def ProcessUnFlags(env, flags): for key in parsed_flags.keys(): cur_flags = set(env.get(key, [])) - common = cur_flags & all_flags - for item in common: - env[key].remove(item) + for item in (cur_flags & all_flags): + while item in env[key]: + env[key].remove(item) def IsFileWithExt(env, file_, ext): # pylint: disable=W0613 From 53bd1df8e5c59e0dfb3d6ff0c8f01a2c872b30c6 Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Sat, 18 Jun 2016 01:15:15 +0300 Subject: [PATCH 07/19] Fix PyLint warning --- platformio/builder/tools/platformio.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platformio/builder/tools/platformio.py b/platformio/builder/tools/platformio.py index 22e7dc94..1c7743fe 100644 --- a/platformio/builder/tools/platformio.py +++ b/platformio/builder/tools/platformio.py @@ -159,7 +159,7 @@ def ProcessUnFlags(env, flags): for key in parsed_flags.keys(): cur_flags = set(env.get(key, [])) - for item in (cur_flags & all_flags): + for item in cur_flags & all_flags: while item in env[key]: env[key].remove(item) From d219999892982325961f0ee275af5546f86e5547 Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Sat, 18 Jun 2016 13:26:04 +0300 Subject: [PATCH 08/19] Update name of the OpenEnergyMonitor board // Resolve #699 --- docs/frameworks/arduino.rst | 2 +- docs/platforms/atmelavr.rst | 2 +- docs/platforms/embedded_boards.rst | 2 +- platformio/boards/misc.json | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/frameworks/arduino.rst b/docs/frameworks/arduino.rst index f7a4877a..db5b6d92 100644 --- a/docs/frameworks/arduino.rst +++ b/docs/frameworks/arduino.rst @@ -1211,7 +1211,7 @@ OpenEnergyMonitor - RAM * - ``emonpi`` - - `emonPi `_ + - `OpenEnergyMonitor emonPi `_ - ATMEGA328P - 16 MHz - 32 Kb diff --git a/docs/platforms/atmelavr.rst b/docs/platforms/atmelavr.rst index 58185e7c..fb181900 100644 --- a/docs/platforms/atmelavr.rst +++ b/docs/platforms/atmelavr.rst @@ -826,7 +826,7 @@ OpenEnergyMonitor - RAM * - ``emonpi`` - - `emonPi `_ + - `OpenEnergyMonitor emonPi `_ - ATMEGA328P - 16 MHz - 32 Kb diff --git a/docs/platforms/embedded_boards.rst b/docs/platforms/embedded_boards.rst index 23721690..bd52ca0c 100644 --- a/docs/platforms/embedded_boards.rst +++ b/docs/platforms/embedded_boards.rst @@ -1576,7 +1576,7 @@ OpenEnergyMonitor - RAM * - ``emonpi`` - - `emonPi `_ + - `OpenEnergyMonitor emonPi `_ - ATMEGA328P - 16 MHz - 32 Kb diff --git a/platformio/boards/misc.json b/platformio/boards/misc.json index a8cc9e5a..114e8022 100644 --- a/platformio/boards/misc.json +++ b/platformio/boards/misc.json @@ -52,7 +52,7 @@ "variant": "standard" }, "frameworks": ["arduino"], - "name": "emonPi", + "name": "OpenEnergyMonitor emonPi", "platform": "atmelavr", "upload": { "maximum_ram_size": 2048, From 748437ef7a28a65662a21513b35b4c04cd9df43c Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Sat, 18 Jun 2016 23:37:58 +0300 Subject: [PATCH 09/19] Use env.Flatten to manipulate with CPPDEFINES --- platformio/builder/tools/piomisc.py | 12 ++++-------- platformio/builder/tools/platformio.py | 7 ++----- 2 files changed, 6 insertions(+), 13 deletions(-) diff --git a/platformio/builder/tools/piomisc.py b/platformio/builder/tools/piomisc.py index 1fa62f93..a848ea0e 100644 --- a/platformio/builder/tools/piomisc.py +++ b/platformio/builder/tools/piomisc.py @@ -122,8 +122,8 @@ def ConvertInoToCpp(env): remove(file_) except: # pylint: disable=bare-except if isfile(file_): - print ("Warning: Could not remove temporary file '%s'. " - "Please remove it manually." % file_) + print("Warning: Could not remove temporary file '%s'. " + "Please remove it manually." % file_) ino_nodes = (env.Glob(join("$PROJECTSRC_DIR", "*.ino")) + env.Glob(join("$PROJECTSRC_DIR", "*.pde"))) @@ -202,9 +202,7 @@ def DumpIDEData(env): def get_defines(env_): defines = [] # global symbols - for item in env_.get("CPPDEFINES", []): - if isinstance(item, list): - item = "=".join(item) + for item in env.Flatten(env_.get("CPPDEFINES", [])): defines.append(env_.subst(item).replace('\\"', '"')) # special symbol for Atmel AVR MCU @@ -232,9 +230,7 @@ def DumpIDEData(env): # https://github.com/platformio/platformio-atom-ide/issues/34 _new_defines = [] - for item in env_.get("CPPDEFINES", []): - if isinstance(item, list): - item = "=".join(item) + for item in env.Flatten(env_.get("CPPDEFINES", [])): item = item.replace('\\"', '"') if " " in item: _new_defines.append(item.replace(" ", "\\\\ ")) diff --git a/platformio/builder/tools/platformio.py b/platformio/builder/tools/platformio.py index 1c7743fe..e1b599c8 100644 --- a/platformio/builder/tools/platformio.py +++ b/platformio/builder/tools/platformio.py @@ -36,12 +36,9 @@ SRC_DEFAULT_FILTER = " ".join([ def BuildProgram(env): def _append_pio_macros(): - if any(["PLATFORMIO=" in str(d) for d in env.get("CPPDEFINES", [])]): - return - env.Append( + env.AppendUnique( CPPDEFINES=["PLATFORMIO={0:02d}{1:02d}{2:02d}".format( - *pioversion_to_intstr())], - ) + *pioversion_to_intstr())]) _append_pio_macros() From 51dd86e6da04aacbae9284fb2c98576ff3e2be29 Mon Sep 17 00:00:00 2001 From: Valeriy Koval Date: Tue, 21 Jun 2016 15:03:09 +0300 Subject: [PATCH 10/19] Add new SAMD21 boards // Issue #520, #620 --- platformio/boards/adafruit.json | 30 ++++++++++++ platformio/boards/arduino.json | 32 +++++++++++++ platformio/boards/sparkfun.json | 64 +++++++++++++++++++++++++- platformio/builder/scripts/atmelsam.py | 2 +- 4 files changed, 126 insertions(+), 2 deletions(-) diff --git a/platformio/boards/adafruit.json b/platformio/boards/adafruit.json index 6200608e..fc5ef21c 100644 --- a/platformio/boards/adafruit.json +++ b/platformio/boards/adafruit.json @@ -248,5 +248,35 @@ }, "url": "http://www.adafruit.com/products/2000", "vendor": "Adafruit" + }, + "adafruit_feather_m0_usb": { + "build": { + "core": "arduino_zero", + "extra_flags": "-DARDUINO_SAMD_FEATHER_M0 -DARDUINO_ARCH_SAMD -D__SAMD21G18A__", + "f_cpu": "48000000L", + "mcu": "samd21g18a", + "cpu": "cortex-m0plus", + "usb_product": "Adafruit Feather M0", + "variant": "arduino_zero", + "ldscript": "flash_with_bootloader.ld", + "hwids": [ + ["0x239A", "0x800B"], + ["0x239A", "0x000B"] + ] + }, + "frameworks": ["arduino"], + "name": "Adafruit Feather M0", + "platform": "atmelsam", + "upload": { + "disable_flushing": true, + "maximum_ram_size": 32768, + "maximum_size": 262144, + "protocol": "sam-ba", + "require_upload_port" : true, + "use_1200bps_touch": true, + "wait_for_upload_port": true + }, + "url": "https://www.adafruit.com/product/2772", + "vendor": "Adafruit" } } diff --git a/platformio/boards/arduino.json b/platformio/boards/arduino.json index dab169e5..36153504 100644 --- a/platformio/boards/arduino.json +++ b/platformio/boards/arduino.json @@ -923,5 +923,37 @@ }, "url": "https://www.arduino.cc/en/Main/ArduinoBoardZero", "vendor": "Arduino" + }, + "mkr1000USB": { + "build": { + "core": "arduino_zero", + "extra_flags": "-DARDUINO_SAMD_MKR1000 -DARDUINO_ARCH_SAMD -D__SAMD21G18A__", + "f_cpu": "48000000L", + "mcu": "samd21g18a", + "cpu": "cortex-m0plus", + "usb_product": "Arduino MKR1000", + "variant": "mkr1000", + "ldscript": "flash_with_bootloader.ld", + "hwids": [ + ["0x2341", "0x804E"], + ["0x2341", "0x004E"], + ["0x2341", "0x824E"], + ["0x2341", "0x024E"] + ] + }, + "frameworks": ["arduino"], + "name": "Arduino MKR1000", + "platform": "atmelsam", + "upload": { + "disable_flushing": true, + "maximum_ram_size": 32768, + "maximum_size": 262144, + "protocol": "sam-ba", + "require_upload_port" : true, + "use_1200bps_touch": true, + "wait_for_upload_port": true + }, + "url": "https://www.arduino.cc/en/Main/ArduinoMKR1000", + "vendor": "Arduino" } } diff --git a/platformio/boards/sparkfun.json b/platformio/boards/sparkfun.json index 44d5cb52..b14a9ab9 100644 --- a/platformio/boards/sparkfun.json +++ b/platformio/boards/sparkfun.json @@ -238,5 +238,67 @@ }, "url": "https://www.sparkfun.com/products/12923", "vendor": "SparkFun" + }, + + "sparkfun_samd21_dev_usb": { + "build": { + "core": "arduino_zero", + "extra_flags": "-DARDUINO_SAMD_ZERO -DARDUINO_ARCH_SAMD -D__SAMD21G18A__", + "f_cpu": "48000000L", + "mcu": "samd21g18a", + "cpu": "cortex-m0plus", + "usb_product": "SparkFun SAMD21", + "variant": "arduino_zero", + "ldscript": "flash_with_bootloader.ld", + "hwids": [ + ["0x1B4F", "0x8D21"], + ["0x1B4F", "0x0D21"] + ] + }, + "frameworks": ["arduino"], + "name": "SparkFun SAMD21 Dev Breakout", + "platform": "atmelsam", + "upload": { + "disable_flushing": true, + "maximum_ram_size": 32768, + "maximum_size": 262144, + "protocol": "sam-ba", + "require_upload_port" : true, + "use_1200bps_touch": true, + "wait_for_upload_port": true + }, + "url": "https://www.sparkfun.com/products/13672", + "vendor": "SparkFun" + }, + + "sparkfun_samd21_mini_usb": { + "build": { + "core": "arduino_zero", + "extra_flags": "-DARDUINO_SAMD_ZERO -DARDUINO_ARCH_SAMD -D__SAMD21G18A__", + "f_cpu": "48000000L", + "mcu": "samd21g18a", + "cpu": "cortex-m0plus", + "usb_product": "SparkFun SAMD21", + "variant": "SparkFun_SAMD_Mini", + "ldscript": "flash_with_bootloader.ld", + "hwids": [ + ["0x1B4F", "0x8D21"], + ["0x1B4F", "0x0D21"] + ] + }, + "frameworks": ["arduino"], + "name": "SparkFun SAMD21 Mini Breakout", + "platform": "atmelsam", + "upload": { + "disable_flushing": true, + "maximum_ram_size": 32768, + "maximum_size": 262144, + "protocol": "sam-ba", + "require_upload_port" : true, + "use_1200bps_touch": true, + "wait_for_upload_port": true + }, + "url": "https://www.sparkfun.com/products/13664", + "vendor": "SparkFun" } -} \ No newline at end of file +} diff --git a/platformio/builder/scripts/atmelsam.py b/platformio/builder/scripts/atmelsam.py index 5fa5cd4b..9c9297e4 100644 --- a/platformio/builder/scripts/atmelsam.py +++ b/platformio/builder/scripts/atmelsam.py @@ -137,7 +137,7 @@ if "sam3x8e" in env.get("BOARD_OPTIONS", {}).get("build", {}).get("mcu", None): ] ) -elif "zero" in env.subst("$BOARD"): +elif "samd" in env.get("BOARD_OPTIONS", {}).get("build", {}).get("mcu", None): env.Append( LINKFLAGS=[ "--specs=nosys.specs", From 1089c55b268f2460b923836dcf99d823dc4cd3b7 Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Thu, 23 Jun 2016 17:34:00 +0300 Subject: [PATCH 11/19] Update history --- HISTORY.rst | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/HISTORY.rst b/HISTORY.rst index f156f03b..075a8900 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -7,6 +7,11 @@ PlatformIO 2.0 2.10.4 (2016-06-??) ~~~~~~~~~~~~~~~~~~~ +* Added support for Arduino MKR1000 board + (`issue #620 `_) +* Added support for Adafruit Feather M0, SparkFun SAMD21 and SparkFun SAMD21 + Mini Breakout boards + (`issue #520 `_) * Better removing unnecessary flags using ``build_unflags`` option (`issue #698 `_) * Fixed issue with ``platformio init --ide`` command for Python 2.6 From 1d919e5874d48e965de9e184d95ead0872be6f2d Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Thu, 23 Jun 2016 20:21:48 +0300 Subject: [PATCH 12/19] New articles --- docs/articles.rst | 4 ++++ docs/platforms/espressif_extra.rst | 1 + 2 files changed, 5 insertions(+) diff --git a/docs/articles.rst b/docs/articles.rst index 8791784c..3dbe604c 100644 --- a/docs/articles.rst +++ b/docs/articles.rst @@ -23,6 +23,10 @@ Here are recent articles about PlatformIO: 2016 ^^^^ +* Jun 14, 2016 - **Glyn Hudson** - `OpenEnergyMonitor Part 2/3: Firmware Continuous Test & Build `_ +* Jun 13, 2016 - **Daniel Eichhorn** - `New Weather Station Demo on Github `_ +* Jun 12, 2016 - **Glyn Hudson** - `OpenEnergyMonitor Part 1/3: PlatformIO open-source embedded development ecosystem `_ +* Jun 12, 2016 - **Uli Wolf** - `Nutzung von PlatformIO im Atom Editor zur Entwicklung von Arduino Code (Use PlatformIO and Atom Editor to develop Arduino code, German) `_ * Jun 3, 2016 - **Daniel Eichhorn** - `ESP8266: Continuous Delivery Pipeline – Push To Production `_ * May 30, 2016 - **Ron Moerman** - `IoT Development with PlatformIO `_ * May 29, 2016 - **Chris Synan** - `Reverse Engineer RF Remote Controller for IoT! `_ diff --git a/docs/platforms/espressif_extra.rst b/docs/platforms/espressif_extra.rst index fd04de77..65d7356a 100644 --- a/docs/platforms/espressif_extra.rst +++ b/docs/platforms/espressif_extra.rst @@ -240,6 +240,7 @@ Using Arduino Framework with Staging version Articles -------- +* Jun 13, 2016 - **Daniel Eichhorn** - `New Weather Station Demo on Github `_ * Jun 3, 2016 - **Daniel Eichhorn** - `ESP8266: Continuous Delivery Pipeline – Push To Production `_ * May 29, 2016 - **Chris Synan** - `Reverse Engineer RF Remote Controller for IoT! `_ * May 22, 2016 - **Pedro Minatel** - `Estação meteorológica com ESP8266 (Weather station with ESP8266, Portuguese) `_ From 85becf861f3bd554efd1a37f3c030805de698022 Mon Sep 17 00:00:00 2001 From: jphollanti Date: Sun, 26 Jun 2016 11:12:02 +0300 Subject: [PATCH 13/19] Add a mention about library managers 24 hour update cycle --- docs/librarymanager/creating.rst | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/librarymanager/creating.rst b/docs/librarymanager/creating.rst index efbfc32f..2cfc2e4e 100644 --- a/docs/librarymanager/creating.rst +++ b/docs/librarymanager/creating.rst @@ -20,6 +20,9 @@ source code structure. The only one requirement is library's manifest file - :ref:`library_config`. It can be located inside your library or in the another location where |PIOAPICR| will have *HTTP* access. +Updates to existing libraries are done every 24 hours. In case a more urgent +update is required, you can post a request on PlatformIO `community `_. + .. contents:: Source Code Location From f6b9fd02b2e4bacdb6e84b19a747d05f60309df6 Mon Sep 17 00:00:00 2001 From: jphollanti Date: Sun, 26 Jun 2016 11:19:13 +0300 Subject: [PATCH 14/19] Added mention about building docs to README.rst --- README.rst | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.rst b/README.rst index 7976f9ac..391214f2 100644 --- a/README.rst +++ b/README.rst @@ -198,8 +198,9 @@ Contributing 6. Make changes to code, documentation, etc. 7. Lint source code ``tox -e lint`` 8. Run the tests ``tox -e py27`` -9. Commit changes to your forked repository -10. Submit a Pull Request on GitHub. +9. Build documentation ``tox -e docs`` (creates a directory _build under docs where you can find the html) +10. Commit changes to your forked repository +11. Submit a Pull Request on GitHub. Licence ------- From 2ba3603a3dddc08daf696c5f05f8c0da2d70040c Mon Sep 17 00:00:00 2001 From: jphollanti Date: Sun, 26 Jun 2016 11:29:46 +0300 Subject: [PATCH 15/19] add command example to create library examples --- docs/librarymanager/creating.rst | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/librarymanager/creating.rst b/docs/librarymanager/creating.rst index 2cfc2e4e..2fe3dbbd 100644 --- a/docs/librarymanager/creating.rst +++ b/docs/librarymanager/creating.rst @@ -155,6 +155,12 @@ to :ref:`install ` it. Examples -------- +Command: + +.. code-block:: bash + + $ platformio lib register http://my.example.com/library.json + * `GitHub + fixed release `_ * `Dependencies by author and framework `_ * `Multiple libraries in the one repository `_ From 486529b11251b2a1fb7929d9c7b9b3b0a5879520 Mon Sep 17 00:00:00 2001 From: Valeriy Koval Date: Tue, 28 Jun 2016 11:27:49 +0300 Subject: [PATCH 16/19] Add initial support for Arduino M0 Pro board // Issue #472 --- platformio/boards/arduino.json | 33 ++++++- platformio/builder/scripts/atmelsam.py | 123 +++++++++++++++---------- 2 files changed, 108 insertions(+), 48 deletions(-) diff --git a/platformio/boards/arduino.json b/platformio/boards/arduino.json index 36153504..6baf0751 100644 --- a/platformio/boards/arduino.json +++ b/platformio/boards/arduino.json @@ -885,7 +885,7 @@ "disable_flushing": true, "maximum_ram_size": 32768, "maximum_size": 262144, - "protocol": "sam-ba", + "protocol": "openocd", "require_upload_port" : false, "use_1200bps_touch": false, "wait_for_upload_port": false @@ -955,5 +955,36 @@ }, "url": "https://www.arduino.cc/en/Main/ArduinoMKR1000", "vendor": "Arduino" + }, + "mzeropro": { + "build": { + "core": "arduino_zero", + "extra_flags": "-DARDUINO_SAMD_ZERO -DARDUINO_ARCH_SAMD -D__SAMD21G18A__", + "f_cpu": "48000000L", + "mcu": "samd21g18a", + "cpu": "cortex-m0plus", + "usb_product": "Arduino M0 Pro", + "variant": "arduino_zero", + "ldscript": "samd21g18a_bootloader_org.ld", + "hwids": [ + ["0x03EB", "0x2111"], + ["0x2A03", "0x804F"] + ] + }, + "frameworks": ["arduino"], + "name": "Arduino M0 Pro (Programming Port)", + "platform": "atmelsam", + "upload": { + "disable_flushing": true, + "maximum_ram_size": 32768, + "maximum_size": 262144, + "protocol": "openocd", + "require_upload_port" : false, + "use_1200bps_touch": false, + "wait_for_upload_port": false, + "section_start": "0x4000" + }, + "url": "http://www.arduino.org/products/boards/arduino-m0-pro", + "vendor": "Arduino" } } diff --git a/platformio/builder/scripts/atmelsam.py b/platformio/builder/scripts/atmelsam.py index 9c9297e4..8fe0a0c7 100644 --- a/platformio/builder/scripts/atmelsam.py +++ b/platformio/builder/scripts/atmelsam.py @@ -25,14 +25,6 @@ from platformio.util import get_serialports def BeforeUpload(target, source, env): # pylint: disable=W0613,W0621 - board_type = env.subst("$BOARD") - if "zero" not in board_type: - env.Append( - UPLOADERFLAGS=[ - "-U", - "true" if ("usb" in board_type.lower( - ) or board_type == "digix") else "false" - ]) upload_options = env.get("BOARD_OPTIONS", {}).get("upload", {}) @@ -48,7 +40,8 @@ def BeforeUpload(target, source, env): # pylint: disable=W0613,W0621 env.Replace(UPLOAD_PORT=env.WaitForNewSerialPort(before_ports)) # use only port name for BOSSA - if "/" in env.subst("$UPLOAD_PORT"): + if ("/" in env.subst("$UPLOAD_PORT") and + env.subst("$UPLOAD_PROTOCOL") == "sam-ba"): env.Replace(UPLOAD_PORT=basename(env.subst("$UPLOAD_PORT"))) @@ -56,41 +49,8 @@ env = DefaultEnvironment() SConscript(env.subst(join("$PIOBUILDER_DIR", "scripts", "basearm.py"))) -if env.subst("$BOARD") == "zero": - env.Replace( - UPLOADER=join("$PIOPACKAGES_DIR", "tool-openocd", "bin", "openocd"), - UPLOADERFLAGS=[ - "-d2", - "-s", - join( - "$PIOPACKAGES_DIR", - "tool-openocd", "share", "openocd", "scripts"), - "-f", - join( - "$PLATFORMFW_DIR", "variants", - "${BOARD_OPTIONS['build']['variant']}", "openocd_scripts", - "${BOARD_OPTIONS['build']['variant']}.cfg" - ), - "-c", "\"telnet_port", "disabled;", - "program", "{{$SOURCES}}", - "verify", "reset", "0x00002000;", "shutdown\"" - ], - UPLOADCMD='"$UPLOADER" $UPLOADERFLAGS' - ) -else: - env.Replace( - UPLOADER=join("$PIOPACKAGES_DIR", "$PIOPACKAGE_UPLOADER", "bossac"), - UPLOADERFLAGS=[ - "--info", - "--port", '"$UPLOAD_PORT"', - "--erase", - "--write", - "--verify", - "--reset", - "--debug" - ], - UPLOADCMD='"$UPLOADER" $UPLOADERFLAGS $SOURCES' - ) +BOARD_OPTIONS = env.get("BOARD_OPTIONS", {}) + env.Append( @@ -120,8 +80,21 @@ env.Append( ] ) +user_code_section = BOARD_OPTIONS.get("upload", {}).get("section_start", False) -if "sam3x8e" in env.get("BOARD_OPTIONS", {}).get("build", {}).get("mcu", None): +if user_code_section: + env.Append( + CPPDEFINES=[ + "printf=iprintf" + ], + + LINKFLAGS=[ + "-Wl,--entry=Reset_Handler", + "-Wl,--section-start=.text=%s" % user_code_section + ] + ) + +if "sam3x8e" in BOARD_OPTIONS.get("build", {}).get("mcu", ""): env.Append( CPPDEFINES=[ "printf=iprintf" @@ -137,7 +110,7 @@ if "sam3x8e" in env.get("BOARD_OPTIONS", {}).get("build", {}).get("mcu", None): ] ) -elif "samd" in env.get("BOARD_OPTIONS", {}).get("build", {}).get("mcu", None): +elif "samd" in BOARD_OPTIONS.get("build", {}).get("mcu", ""): env.Append( LINKFLAGS=[ "--specs=nosys.specs", @@ -145,6 +118,62 @@ elif "samd" in env.get("BOARD_OPTIONS", {}).get("build", {}).get("mcu", None): ] ) + +upload_protocol = BOARD_OPTIONS.get("upload", {}).get("protocol", None) + +if upload_protocol == "openocd": + env.Replace( + UPLOADER=join("$PIOPACKAGES_DIR", "tool-openocd", "bin", "openocd"), + UPLOADERFLAGS=[ + "-d2", + "-s", join( + "$PIOPACKAGES_DIR", + "tool-openocd", + "share", + "openocd", + "scripts" + ), + + "-f", join( + "$PLATFORMFW_DIR", + "variants", + "${BOARD_OPTIONS['build']['variant']}", + "openocd_scripts", + "${BOARD_OPTIONS['build']['variant']}.cfg" + ), + + "-c", "\"telnet_port", "disabled;", + "program", "{{$SOURCES}}", + "verify", "reset", + "%s;" % user_code_section if user_code_section else "0x2000", + "shutdown\"" + ], + + UPLOADCMD='"$UPLOADER" $UPLOADERFLAGS' + ) + +elif upload_protocol == "sam-ba": + + board_type = env.subst("$BOARD") + + env.Replace( + UPLOADER=join("$PIOPACKAGES_DIR", "$PIOPACKAGE_UPLOADER", "bossac"), + UPLOADERFLAGS=[ + "--info", + "--port", '"$UPLOAD_PORT"', + "--erase", + "--write", + "--verify", + "--reset", + "--debug", + "-U", + "true" if ("usb" in board_type.lower( + ) or board_type == "digix") else "false" + ], + + UPLOADCMD='"$UPLOADER" $UPLOADERFLAGS $SOURCES' + ) + # # Target: Build executable and linkable firmware # @@ -171,7 +200,7 @@ AlwaysBuild(target_size) # Target: Upload by default .bin file # -if env.subst("$BOARD") == "zero": +if upload_protocol == "openocd": upload = env.Alias(["upload", "uploadlazy"], target_firm, "$UPLOADCMD") else: upload = env.Alias( From 59606410f4300d22cb83b289324b9e393116e010 Mon Sep 17 00:00:00 2001 From: Valeriy Koval Date: Tue, 28 Jun 2016 14:10:18 +0300 Subject: [PATCH 17/19] Update espressif platform according to the new framework version --- platformio/boards/espressif.json | 104 +++++++++++++++++- .../builder/scripts/frameworks/arduino.py | 7 +- 2 files changed, 107 insertions(+), 4 deletions(-) diff --git a/platformio/boards/espressif.json b/platformio/boards/espressif.json index a3db71e2..3c9d21be 100644 --- a/platformio/boards/espressif.json +++ b/platformio/boards/espressif.json @@ -358,7 +358,7 @@ "d1": { "build": { "core": "esp8266", - "extra_flags": "-DESP8266 -DARDUINO_ARCH_ESP8266 -DARDUINO_ESP8266_NODEMCU", + "extra_flags": "-DESP8266 -DARDUINO_ARCH_ESP8266 -DESP8266_WEMOS_D1MINI", "f_cpu": "80000000L", "f_flash": "40000000L", "flash_mode": "dio", @@ -383,7 +383,7 @@ "d1_mini": { "build": { "core": "esp8266", - "extra_flags": "-DESP8266 -DARDUINO_ARCH_ESP8266 -DARDUINO_ESP8266_NODEMCU", + "extra_flags": "-DESP8266 -DARDUINO_ARCH_ESP8266 -DESP8266_WEMOS_D1MINI", "f_cpu": "80000000L", "f_flash": "40000000L", "flash_mode": "dio", @@ -478,5 +478,105 @@ }, "url": "http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family", "vendor": "Espressif" + }, + + "esp8285": { + "build": { + "core": "esp8266", + "extra_flags": "-DESP8266 -DARDUINO_ARCH_ESP8266 -DESP8266_ESP01", + "f_cpu": "80000000L", + "f_flash": "40000000L", + "flash_mode": "dout", + "ldscript": "esp8266.flash.1m256.ld", + "mcu": "esp8266", + "variant": "generic" + }, + "frameworks": ["arduino"], + "name": "Generic ESP8285 Module", + "platform": "espressif", + "upload": { + "maximum_ram_size": 81920, + "maximum_size": 434160, + "resetmethod": "ck", + "require_upload_port" : true, + "speed": 115200 + }, + "url": "http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family", + "vendor": "Espressif" + }, + + "phoenix_v1": { + "build": { + "core": "esp8266", + "extra_flags": "-DESP8266 -DARDUINO_ARCH_ESP8266 -DESP8266_PHOENIX_V1", + "f_cpu": "80000000L", + "f_flash": "40000000L", + "flash_mode": "dio", + "ldscript": "esp8266.flash.4m1m.ld", + "mcu": "esp8266", + "variant": "phoenix_v1" + }, + "frameworks": ["arduino"], + "name": "Phoenix 1.0", + "platform": "espressif", + "upload": { + "maximum_ram_size": 81920, + "maximum_size": 1044464, + "resetmethod": "nodemcu", + "require_upload_port" : true, + "speed": 115200 + }, + "url": "http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family", + "vendor": "Espressif" + }, + + "phoenix_v2": { + "build": { + "core": "esp8266", + "extra_flags": "-DESP8266 -DARDUINO_ARCH_ESP8266 -DESP8266_PHOENIX_V2", + "f_cpu": "80000000L", + "f_flash": "40000000L", + "flash_mode": "dio", + "ldscript": "esp8266.flash.4m1m.ld", + "mcu": "esp8266", + "variant": "phoenix_v2" + }, + "frameworks": ["arduino"], + "name": "Phoenix 2.0", + "platform": "espressif", + "upload": { + "maximum_ram_size": 81920, + "maximum_size": 1044464, + "resetmethod": "ck", + "require_upload_port" : true, + "speed": 115200 + }, + "url": "http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family", + "vendor": "Espressif" + }, + + "wifinfo": { + "build": { + "core": "esp8266", + "extra_flags": "-DESP8266 -DARDUINO_ARCH_ESP8266 -DWIFINFO", + "f_cpu": "80000000L", + "f_flash": "40000000L", + "flash_mode": "qio", + "ldscript": "esp8266.flash.1m256.ld", + "mcu": "esp8266", + "variant": "wifinfo" + }, + "frameworks": ["arduino"], + "name": "WifInfo", + "platform": "espressif", + "upload": { + "maximum_ram_size": 81920, + "maximum_size": 434160, + "resetmethod": "nodemcu", + "require_upload_port" : true, + "speed": 115200 + }, + "url": "http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family", + "vendor": "Espressif" } } diff --git a/platformio/builder/scripts/frameworks/arduino.py b/platformio/builder/scripts/frameworks/arduino.py index a81d29b3..21be9b6a 100644 --- a/platformio/builder/scripts/frameworks/arduino.py +++ b/platformio/builder/scripts/frameworks/arduino.py @@ -60,8 +60,11 @@ elif env.get("PLATFORM") == "espressif": join("$PLATFORMFW_DIR", "tools", "sdk", "lwip", "include") ], LIBPATH=[join("$PLATFORMFW_DIR", "tools", "sdk", "lib")], - LIBS=["mesh", "wpa2", "smartconfig", "pp", "main", "wpa", "lwip", - "net80211", "wps", "crypto", "phy", "hal", "axtls", "gcc", "m"] + LIBS=[ + "mesh", "wpa2", "smartconfig", "pp", "main", "wpa", "lwip", + "net80211", "wps", "crypto", "phy", "hal", "axtls", "gcc", + "m", "stdc++" + ] ) env.VariantDirWrap( join("$BUILD_DIR", "generic"), From 8d7ff7f37edaef7ecaf23730c6fa446a52057872 Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Tue, 28 Jun 2016 18:01:08 +0300 Subject: [PATCH 18/19] Update history --- HISTORY.rst | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/HISTORY.rst b/HISTORY.rst index 075a8900..2494c872 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -7,11 +7,15 @@ PlatformIO 2.0 2.10.4 (2016-06-??) ~~~~~~~~~~~~~~~~~~~ +* New ESP8266-based boards: Generic ESP8285 Module, Phoenix 1.0 & 2.0, WifInfo +* Added support for Arduino M0 Pro board + (`issue #472 `_) * Added support for Arduino MKR1000 board (`issue #620 `_) * Added support for Adafruit Feather M0, SparkFun SAMD21 and SparkFun SAMD21 Mini Breakout boards (`issue #520 `_) +* Updated Arduino ESP8266 core for Espressif platform to 2.3.0 * Better removing unnecessary flags using ``build_unflags`` option (`issue #698 `_) * Fixed issue with ``platformio init --ide`` command for Python 2.6 From 39f9789fa1c20292271ef66b8d689163205fe834 Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Tue, 28 Jun 2016 18:04:08 +0300 Subject: [PATCH 19/19] Version bump to 2.11.0 (issues #472, #520, #614, #620, #685, #698, #699) --- HISTORY.rst | 2 +- platformio/__init__.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/HISTORY.rst b/HISTORY.rst index 2494c872..fe6d261e 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -4,7 +4,7 @@ Release Notes PlatformIO 2.0 -------------- -2.10.4 (2016-06-??) +2.11.0 (2016-06-28) ~~~~~~~~~~~~~~~~~~~ * New ESP8266-based boards: Generic ESP8285 Module, Phoenix 1.0 & 2.0, WifInfo diff --git a/platformio/__init__.py b/platformio/__init__.py index 818bf941..7931da16 100644 --- a/platformio/__init__.py +++ b/platformio/__init__.py @@ -14,7 +14,7 @@ import sys -VERSION = (2, 10, "4.dev2") +VERSION = (2, 11, 0) __version__ = ".".join([str(s) for s in VERSION]) __title__ = "platformio"