From 51dd86e6da04aacbae9284fb2c98576ff3e2be29 Mon Sep 17 00:00:00 2001 From: Valeriy Koval Date: Tue, 21 Jun 2016 15:03:09 +0300 Subject: [PATCH 01/27] 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 02/27] 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 03/27] 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 04/27] 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 05/27] 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 06/27] 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 07/27] 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 08/27] 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 09/27] 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 10/27] 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" From 98f5f73a41b89be107922e1626af6c0294bc2a86 Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Wed, 29 Jun 2016 13:17:06 +0300 Subject: [PATCH 11/27] Auto-remove project cache when PlatformIO is upgraded --- HISTORY.rst | 5 +++++ platformio/__init__.py | 2 +- platformio/commands/run.py | 4 ++-- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/HISTORY.rst b/HISTORY.rst index fe6d261e..eb34ef63 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -4,6 +4,11 @@ Release Notes PlatformIO 2.0 -------------- +2.11.1 (2016-??-??) +~~~~~~~~~~~~~~~~~~~ + +* Auto-remove project cache when PlatformIO is upgraded + 2.11.0 (2016-06-28) ~~~~~~~~~~~~~~~~~~~ diff --git a/platformio/__init__.py b/platformio/__init__.py index 7931da16..6d594c01 100644 --- a/platformio/__init__.py +++ b/platformio/__init__.py @@ -14,7 +14,7 @@ import sys -VERSION = (2, 11, 0) +VERSION = (2, 11, "1.dev0") __version__ = ".".join([str(s) for s in VERSION]) __title__ = "platformio" diff --git a/platformio/commands/run.py b/platformio/commands/run.py index 0834edf0..023d0a34 100644 --- a/platformio/commands/run.py +++ b/platformio/commands/run.py @@ -21,7 +21,7 @@ from time import time import click -from platformio import app, exception, telemetry, util +from platformio import __version__, app, exception, telemetry, util from platformio.commands.lib import lib_install as cmd_lib_install from platformio.libmanager import LibraryManager from platformio.platforms.base import PlatformFactory @@ -243,7 +243,7 @@ def _clean_pioenvs_dir(pioenvs_dir): def calculate_project_hash(): - structure = [] + structure = [__version__] for d in (util.get_projectsrc_dir(), util.get_projectlib_dir()): if not isdir(d): continue From 241ad8174fd767dd17fb86a3e8b86cd121685095 Mon Sep 17 00:00:00 2001 From: Valeriy Koval Date: Mon, 4 Jul 2016 13:40:43 +0300 Subject: [PATCH 12/27] Fix missed --boot flag for sam3x uploader // Issue # 710 --- platformio/builder/scripts/atmelsam.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/platformio/builder/scripts/atmelsam.py b/platformio/builder/scripts/atmelsam.py index 8fe0a0c7..39440cb0 100644 --- a/platformio/builder/scripts/atmelsam.py +++ b/platformio/builder/scripts/atmelsam.py @@ -103,10 +103,6 @@ if "sam3x8e" in BOARD_OPTIONS.get("build", {}).get("mcu", ""): LINKFLAGS=[ "-Wl,--entry=Reset_Handler", "-Wl,--start-group" - ], - - UPLOADERFLAGS=[ - "--boot", ] ) @@ -174,6 +170,9 @@ elif upload_protocol == "sam-ba": UPLOADCMD='"$UPLOADER" $UPLOADERFLAGS $SOURCES' ) + if "sam3x8e" in BOARD_OPTIONS.get("build", {}).get("mcu", ""): + env.Append(UPLOADERFLAGS=["--boot"]) + # # Target: Build executable and linkable firmware # From 4dd90d549350dc6a6c59114a447878fa1bf48451 Mon Sep 17 00:00:00 2001 From: Valeriy Koval Date: Mon, 4 Jul 2016 18:01:49 +0300 Subject: [PATCH 13/27] Update project template for Qt Creator // Issue #711 --- platformio/ide/tpls/qtcreator/platformio.pro.tpl | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/platformio/ide/tpls/qtcreator/platformio.pro.tpl b/platformio/ide/tpls/qtcreator/platformio.pro.tpl index b33b91cf..21155e67 100644 --- a/platformio/ide/tpls/qtcreator/platformio.pro.tpl +++ b/platformio/ide/tpls/qtcreator/platformio.pro.tpl @@ -20,7 +20,6 @@ DEFINES += "{{define}}" OTHER_FILES += \ platformio.ini -SOURCES += \ - % for file in src_files: - {{file}} - % end +% for file in src_files: +SOURCES += {{file}} +% end From 2c7c74743ddab85336f1afcdd4c0eb56154b8170 Mon Sep 17 00:00:00 2001 From: Valeriy Koval Date: Mon, 4 Jul 2016 19:28:02 +0300 Subject: [PATCH 14/27] Initial support for Arduino M0/Tian boards // Issue #472 --- platformio/boards/arduino.json | 66 ++++++++++++++++++++++++++ platformio/builder/scripts/atmelsam.py | 36 +++++++++++++- 2 files changed, 101 insertions(+), 1 deletion(-) diff --git a/platformio/boards/arduino.json b/platformio/boards/arduino.json index 6baf0751..29f22147 100644 --- a/platformio/boards/arduino.json +++ b/platformio/boards/arduino.json @@ -986,5 +986,71 @@ }, "url": "http://www.arduino.org/products/boards/arduino-m0-pro", "vendor": "Arduino" + }, + "mzeroUSB": { + "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": [ + ["0x2A03", "0x004D"], + ["0x2A03", "0x804D"], + ["0x2A03", "0x004F"], + ["0x2A03", "0x804F"] + ] + }, + "frameworks": ["arduino"], + "name": "Arduino M0 Pro (Native USB Port)", + "platform": "atmelsam", + "upload": { + "disable_flushing": true, + "maximum_ram_size": 32768, + "maximum_size": 262144, + "protocol": "stk500v2", + "require_upload_port" : true, + "speed": 57600, + "use_1200bps_touch": true, + "wait_for_upload_port": true, + "section_start": "0x4000" + }, + "url": "http://www.arduino.org/products/boards/arduino-m0-pro", + "vendor": "Arduino" + }, + "tian": { + "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 Tian", + "variant": "arduino_zero", + "ldscript": "samd21g18a_bootloader_org.ld", + "hwids": [ + ["0x10C4", "0xEA70"], + ["0x2A03", "0x8052"] + ] + }, + "frameworks": ["arduino"], + "name": "Arduino Tian", + "platform": "atmelsam", + "upload": { + "disable_flushing": true, + "maximum_ram_size": 32768, + "maximum_size": 262144, + "protocol": "stk500v2", + "require_upload_port" : true, + "speed": 57600, + "use_1200bps_touch": true, + "wait_for_upload_port": true, + "section_start": "0x4000" + }, + "url": "http://www.arduino.org/products/boards/arduino-tian", + "vendor": "Arduino" } } diff --git a/platformio/builder/scripts/atmelsam.py b/platformio/builder/scripts/atmelsam.py index 39440cb0..26009472 100644 --- a/platformio/builder/scripts/atmelsam.py +++ b/platformio/builder/scripts/atmelsam.py @@ -18,7 +18,7 @@ from os.path import basename, join -from SCons.Script import (COMMAND_LINE_TARGETS, AlwaysBuild, Default, +from SCons.Script import (COMMAND_LINE_TARGETS, AlwaysBuild, Builder, Default, DefaultEnvironment, SConscript) from platformio.util import get_serialports @@ -173,6 +173,38 @@ elif upload_protocol == "sam-ba": if "sam3x8e" in BOARD_OPTIONS.get("build", {}).get("mcu", ""): env.Append(UPLOADERFLAGS=["--boot"]) +elif upload_protocol == "stk500v2": + env.Append( + BUILDERS=dict( + ElfToHex=Builder( + action=" ".join([ + "$OBJCOPY", + "-O", + "ihex", + "-R", + ".eeprom", + "$SOURCES", + "$TARGET"]), + suffix=".hex" + ) + ) + ) + + env.Replace( + UPLOADER=join("$PIOPACKAGES_DIR", "tool-avrdude", "avrdude"), + UPLOADERFLAGS=[ + "-C", '"%s"' % join("$PIOPACKAGES_DIR", + "tool-avrdude", "avrdude.conf"), + "-v", + "-p", "atmega2560", # Arduino M0/Tian upload hook + "-c", "$UPLOAD_PROTOCOL", + "-P", '"$UPLOAD_PORT"', + "-b", "$UPLOAD_SPEED" + ], + + UPLOADCMD='"$UPLOADER" $UPLOADERFLAGS -U flash:w:$SOURCES:i' + ) + # # Target: Build executable and linkable firmware # @@ -185,6 +217,8 @@ target_elf = env.BuildProgram() if "uploadlazy" in COMMAND_LINE_TARGETS: target_firm = join("$BUILD_DIR", "firmware.bin") +elif upload_protocol == "stk500v2": + target_firm = env.ElfToHex(join("$BUILD_DIR", "firmware"), target_elf) else: target_firm = env.ElfToBin(join("$BUILD_DIR", "firmware"), target_elf) From e8290054c2a0b46fc749373c14093188957d784d Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Mon, 4 Jul 2016 20:35:29 +0300 Subject: [PATCH 15/27] * Fix missed ``--boot`` flag for the firmware uploader for ATSAM3X8E Cortex-M3 MCU based boards (Arduino Due, etc) // Resolve #710 --- HISTORY.rst | 3 +++ 1 file changed, 3 insertions(+) diff --git a/HISTORY.rst b/HISTORY.rst index eb34ef63..ba641d5a 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -8,6 +8,9 @@ PlatformIO 2.0 ~~~~~~~~~~~~~~~~~~~ * Auto-remove project cache when PlatformIO is upgraded +* Fixed missed ``--boot`` flag for the firmware uploader for ATSAM3X8E + Cortex-M3 MCU based boards (Arduino Due, etc) + (`issue #710 `_) 2.11.0 (2016-06-28) ~~~~~~~~~~~~~~~~~~~ From 935f7cd5c371131cddaacabb30526aef7e09c194 Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Mon, 4 Jul 2016 20:36:02 +0300 Subject: [PATCH 16/27] Fix missing trailing ``\`` for the source files list when generate project for Qt Creator IDE // Resolve #711 --- HISTORY.rst | 3 +++ 1 file changed, 3 insertions(+) diff --git a/HISTORY.rst b/HISTORY.rst index ba641d5a..3a197787 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -11,6 +11,9 @@ PlatformIO 2.0 * Fixed missed ``--boot`` flag for the firmware uploader for ATSAM3X8E Cortex-M3 MCU based boards (Arduino Due, etc) (`issue #710 `_) +* Fixed missing trailing ``\`` for the source files list when generate project + for Qt Creator IDE + (`issue #711 `_) 2.11.0 (2016-06-28) ~~~~~~~~~~~~~~~~~~~ From e8acc9ca390f1a77c72cbff4cb544c209da3f749 Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Mon, 4 Jul 2016 23:30:34 +0300 Subject: [PATCH 17/27] Improve project generator for CLion IDE --- HISTORY.rst | 1 + docs/ide/clion.rst | 23 ++++---------------- platformio/ide/projectgenerator.py | 13 +---------- platformio/ide/tpls/clion/CMakeLists.txt.tpl | 17 ++------------- 4 files changed, 8 insertions(+), 46 deletions(-) diff --git a/HISTORY.rst b/HISTORY.rst index 3a197787..9d2e66e9 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -7,6 +7,7 @@ PlatformIO 2.0 2.11.1 (2016-??-??) ~~~~~~~~~~~~~~~~~~~ +* Improved project generator for `CLion IDE `__ * Auto-remove project cache when PlatformIO is upgraded * Fixed missed ``--boot`` flag for the firmware uploader for ATSAM3X8E Cortex-M3 MCU based boards (Arduino Due, etc) diff --git a/docs/ide/clion.rst b/docs/ide/clion.rst index 4ad92d8f..89ad7cfa 100644 --- a/docs/ide/clion.rst +++ b/docs/ide/clion.rst @@ -43,10 +43,11 @@ command and generate project via :option:`platformio init --ide` command: Then: -1. Import this project via ``Menu: File > Import Project`` +1. Place source files (``*.c, *.cpp, *.h, *.ino, etc.``) to ``src`` directory +2. Import this project via ``Menu: File > Import Project`` and specify root directory where is located :ref:`projectconf` -2. Open source file from ``src`` directory (``*.c, *.cpp, *.ino, etc.``) -3. Build project (*DO NOT RUN*): ``Menu: Run > Build``. +3. Open source file from ``src`` directory +4. Build project (*DO NOT RUN*): ``Menu: Run > Build``. There are 6 predefined targets for building (*NOT FOR RUNNING*, see marks on the screenshot below): @@ -63,22 +64,6 @@ the screenshot below): after generating process wont be reflected in IDE. To fix it you need to reinitialize project using :ref:`cmd_init` (repeat it). -.. warning:: - PlatformIO generates empty project by default and **code auto-completion - will not work!** To enable auto-completion please choose one of: - - * Add source files ``*.c, *.cpp, etc`` to ``src`` directory and re-initialize - project with command above - * Manually correct ``add_executable`` command in ``CMakeLists.txt`` file - (will be created in project directory after initialization). - - ``*.ino`` file isn't acceptable for ``add_executable`` command. You should - convert it manually to ``*.cpp``. See `project example `_. - - More info `CLion issue #CPP-3977 `_. - Active discussion is located in - `PlatformIO issue #132 `_. - Articles / Manuals ------------------ diff --git a/platformio/ide/projectgenerator.py b/platformio/ide/projectgenerator.py index b4be53a3..aa78b691 100644 --- a/platformio/ide/projectgenerator.py +++ b/platformio/ide/projectgenerator.py @@ -132,22 +132,11 @@ class ProjectGenerator(object): return bottle.template(content, **self._tplvars) def _gather_tplvars(self): - src_files = self.get_src_files() - - if (not any([f.endswith((".c", ".cpp")) for f in src_files]) and - self.ide == "clion"): - click.secho( - "Warning! Can not find main source file (*.c, *.cpp). So, " - "code auto-completion is disabled. Please add source files " - "to `src` directory and re-initialize project or edit " - "`CMakeLists.txt` file manually (`add_executable` command).", - fg="yellow") - self._tplvars.update(self.get_project_env()) self._tplvars.update(self.get_project_build_data()) self._tplvars.update({ "project_name": self.get_project_name(), - "src_files": src_files, + "src_files": self.get_src_files(), "user_home_dir": abspath(expanduser("~")), "project_dir": self.project_dir, "systype": util.get_systype(), diff --git a/platformio/ide/tpls/clion/CMakeLists.txt.tpl b/platformio/ide/tpls/clion/CMakeLists.txt.tpl index 25a7b79e..9b56290c 100644 --- a/platformio/ide/tpls/clion/CMakeLists.txt.tpl +++ b/platformio/ide/tpls/clion/CMakeLists.txt.tpl @@ -43,18 +43,5 @@ add_custom_target( WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} ) -% if src_files and any([f.endswith((".c", ".cpp")) for f in src_files]): -add_executable({{project_name}} -% for f in src_files: -% if f.endswith((".c", ".cpp")): - {{f.replace("\\", "/")}} -% end -% end -) -% else: -# -# To enable code auto-completion, please specify path -# to main source file (*.c, *.cpp) and uncomment line below -# -# add_executable({{project_name}} src/main_change_me.cpp) -% end +aux_source_directory(src SRC_LIST) +add_executable(${PROJECT_NAME} ${SRC_LIST}) From 52f1502051859b2e9493a5311d31794fe3f28d84 Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Mon, 4 Jul 2016 23:42:19 +0300 Subject: [PATCH 18/27] Split source files to HEADERS and SOURCES when generate project for Qt Creator IDE // Resolve #713 --- HISTORY.rst | 5 ++++- platformio/ide/projectgenerator.py | 1 - platformio/ide/tpls/qtcreator/platformio.pro.tpl | 7 +++++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/HISTORY.rst b/HISTORY.rst index 9d2e66e9..89f4c83a 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -13,8 +13,11 @@ PlatformIO 2.0 Cortex-M3 MCU based boards (Arduino Due, etc) (`issue #710 `_) * Fixed missing trailing ``\`` for the source files list when generate project - for Qt Creator IDE + for `Qt Creator IDE `__ (`issue #711 `_) +* Split source files to ``HEADERS`` and ``SOURCES`` when generate project + for `Qt Creator IDE `__ + (`issue #713 `_) 2.11.0 (2016-06-28) ~~~~~~~~~~~~~~~~~~~ diff --git a/platformio/ide/projectgenerator.py b/platformio/ide/projectgenerator.py index aa78b691..3347ae8d 100644 --- a/platformio/ide/projectgenerator.py +++ b/platformio/ide/projectgenerator.py @@ -20,7 +20,6 @@ from os.path import (abspath, basename, expanduser, isdir, join, normpath, relpath) import bottle -import click # pylint: disable=wrong-import-order from platformio import app, exception, util diff --git a/platformio/ide/tpls/qtcreator/platformio.pro.tpl b/platformio/ide/tpls/qtcreator/platformio.pro.tpl index 21155e67..2ae9d49d 100644 --- a/platformio/ide/tpls/qtcreator/platformio.pro.tpl +++ b/platformio/ide/tpls/qtcreator/platformio.pro.tpl @@ -17,9 +17,12 @@ INCLUDEPATH += "{{include}}" DEFINES += "{{define}}" % end -OTHER_FILES += \ - platformio.ini +OTHER_FILES += platformio.ini % for file in src_files: +% if file.endswith((".h", ".hpp")): +HEADERS += {{file}} +% else: SOURCES += {{file}} % end +% end From ac9c3f88f9a99d72b09de8e5bacacd151f4e8eb0 Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Tue, 5 Jul 2016 00:11:48 +0300 Subject: [PATCH 19/27] Automatically install dependent upload tools // Issue #472 --- docs/frameworks/arduino.rst | 77 ++++++++++++++++++++++++++ docs/platforms/atmelavr.rst | 10 ---- docs/platforms/atmelsam.rst | 88 ++++++++++++++++++++++++++++-- docs/platforms/embedded_boards.rst | 77 ++++++++++++++++++++++++++ docs/platforms/espressif.rst | 28 ++++++++++ platformio/platforms/atmelavr.py | 8 +-- platformio/platforms/atmelsam.py | 24 +++++++- 7 files changed, 290 insertions(+), 22 deletions(-) diff --git a/docs/frameworks/arduino.rst b/docs/frameworks/arduino.rst index db5b6d92..0e5b8b80 100644 --- a/docs/frameworks/arduino.rst +++ b/docs/frameworks/arduino.rst @@ -92,6 +92,13 @@ Adafruit - Flash - RAM + * - ``adafruit_feather_m0_usb`` + - `Adafruit Feather M0 `_ + - SAMD21G18A + - 48 MHz + - 256 Kb + - 32 Kb + * - ``bluefruitmicro`` - `Adafruit Bluefruit Micro `_ - ATMEGA32U4 @@ -377,6 +384,27 @@ Arduino - 32 Kb - 2 Kb + * - ``mkr1000USB`` + - `Arduino MKR1000 `_ + - SAMD21G18A + - 48 MHz + - 256 Kb + - 32 Kb + + * - ``mzeroUSB`` + - `Arduino M0 Pro (Native USB Port) `_ + - SAMD21G18A + - 48 MHz + - 256 Kb + - 32 Kb + + * - ``mzeropro`` + - `Arduino M0 Pro (Programming Port) `_ + - SAMD21G18A + - 48 MHz + - 256 Kb + - 32 Kb + * - ``nanoatmega168`` - `Arduino Nano ATmega168 `_ - ATMEGA168 @@ -433,6 +461,13 @@ Arduino - 32 Kb - 2.5 Kb + * - ``tian`` + - `Arduino Tian `_ + - SAMD21G18A + - 48 MHz + - 256 Kb + - 32 Kb + * - ``uno`` - `Arduino Uno `_ - ATMEGA328P @@ -802,6 +837,13 @@ Espressif - 4096 Kb - 80 Kb + * - ``esp8285`` + - `Generic ESP8285 Module `_ + - ESP8266 + - 80 MHz + - 448 Kb + - 80 Kb + * - ``esp_wroom_02`` - `ESP-WROOM-02 `_ - ESP8266 @@ -809,6 +851,27 @@ Espressif - 4096 Kb - 50 Kb + * - ``phoenix_v1`` + - `Phoenix 1.0 `_ + - ESP8266 + - 80 MHz + - 1024 Kb + - 80 Kb + + * - ``phoenix_v2`` + - `Phoenix 2.0 `_ + - ESP8266 + - 80 MHz + - 1024 Kb + - 80 Kb + + * - ``wifinfo`` + - `WifInfo `_ + - ESP8266 + - 80 MHz + - 448 Kb + - 80 Kb + Fubarino ~~~~~~~~ @@ -1563,6 +1626,20 @@ SparkFun - 32 Kb - 2 Kb + * - ``sparkfun_samd21_dev_usb`` + - `SparkFun SAMD21 Dev Breakout `_ + - SAMD21G18A + - 48 MHz + - 256 Kb + - 32 Kb + + * - ``sparkfun_samd21_mini_usb`` + - `SparkFun SAMD21 Mini Breakout `_ + - SAMD21G18A + - 48 MHz + - 256 Kb + - 32 Kb + * - ``thing`` - `SparkFun ESP8266 Thing `_ - ESP8266 diff --git a/docs/platforms/atmelavr.rst b/docs/platforms/atmelavr.rst index fb181900..f5ba50c1 100644 --- a/docs/platforms/atmelavr.rst +++ b/docs/platforms/atmelavr.rst @@ -43,16 +43,6 @@ Packages * - ``tool-micronucleus`` - `Micronucleus `_ -.. warning:: - **Linux Users:** Don't forget to install "udev" rules file - `99-platformio-udev.rules `_ (an instruction is located in the file). - - - **Windows Users:** Please check that you have correctly installed USB - driver from board manufacturer - - - Frameworks ---------- .. list-table:: diff --git a/docs/platforms/atmelsam.rst b/docs/platforms/atmelsam.rst index 3ff2a173..a90b15b6 100644 --- a/docs/platforms/atmelsam.rst +++ b/docs/platforms/atmelsam.rst @@ -28,23 +28,26 @@ Packages * - Name - Contents + * - ``framework-mbed`` + - `mbed Framework `_ + * - ``toolchain-gccarmnoneeabi`` - `gcc-arm-embedded `_, `GDB `_ * - ``framework-arduinosam`` - `Arduino Wiring-based Framework (SAM Core, 1.6) `_ + * - ``ldscripts`` + - `Linker Scripts `_ + * - ``framework-simba`` - `Simba Framework `_ * - ``tool-openocd`` - `OpenOCD `_ - * - ``framework-mbed`` - - `mbed Framework `_ - - * - ``ldscripts`` - - `Linker Scripts `_ + * - ``tool-avrdude`` + - `AVRDUDE `_ * - ``tool-bossac`` - `BOSSA CLI `_ @@ -85,6 +88,26 @@ Boards * For more detailed ``board`` information please scroll tables below by horizontal. +Adafruit +~~~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``adafruit_feather_m0_usb`` + - `Adafruit Feather M0 `_ + - SAMD21G18A + - 48 MHz + - 256 Kb + - 32 Kb + Arduino ~~~~~~~ @@ -112,6 +135,34 @@ Arduino - 512 Kb - 32 Kb + * - ``mkr1000USB`` + - `Arduino MKR1000 `_ + - SAMD21G18A + - 48 MHz + - 256 Kb + - 32 Kb + + * - ``mzeroUSB`` + - `Arduino M0 Pro (Native USB Port) `_ + - SAMD21G18A + - 48 MHz + - 256 Kb + - 32 Kb + + * - ``mzeropro`` + - `Arduino M0 Pro (Programming Port) `_ + - SAMD21G18A + - 48 MHz + - 256 Kb + - 32 Kb + + * - ``tian`` + - `Arduino Tian `_ + - SAMD21G18A + - 48 MHz + - 256 Kb + - 32 Kb + * - ``zero`` - `Arduino Zero (Programming Port) `_ - SAMD21G18A @@ -206,3 +257,30 @@ SainSmart - 84 MHz - 512 Kb - 32 Kb + +SparkFun +~~~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``sparkfun_samd21_dev_usb`` + - `SparkFun SAMD21 Dev Breakout `_ + - SAMD21G18A + - 48 MHz + - 256 Kb + - 32 Kb + + * - ``sparkfun_samd21_mini_usb`` + - `SparkFun SAMD21 Mini Breakout `_ + - SAMD21G18A + - 48 MHz + - 256 Kb + - 32 Kb diff --git a/docs/platforms/embedded_boards.rst b/docs/platforms/embedded_boards.rst index bd52ca0c..2b8cc1c4 100644 --- a/docs/platforms/embedded_boards.rst +++ b/docs/platforms/embedded_boards.rst @@ -78,6 +78,13 @@ Adafruit - Flash - RAM + * - ``adafruit_feather_m0_usb`` + - `Adafruit Feather M0 `_ + - SAMD21G18A + - 48 MHz + - 256 Kb + - 32 Kb + * - ``bluefruitmicro`` - `Adafruit Bluefruit Micro `_ - ATMEGA32U4 @@ -363,6 +370,27 @@ Arduino - 32 Kb - 2 Kb + * - ``mkr1000USB`` + - `Arduino MKR1000 `_ + - SAMD21G18A + - 48 MHz + - 256 Kb + - 32 Kb + + * - ``mzeroUSB`` + - `Arduino M0 Pro (Native USB Port) `_ + - SAMD21G18A + - 48 MHz + - 256 Kb + - 32 Kb + + * - ``mzeropro`` + - `Arduino M0 Pro (Programming Port) `_ + - SAMD21G18A + - 48 MHz + - 256 Kb + - 32 Kb + * - ``nanoatmega168`` - `Arduino Nano ATmega168 `_ - ATMEGA168 @@ -419,6 +447,13 @@ Arduino - 32 Kb - 2.5 Kb + * - ``tian`` + - `Arduino Tian `_ + - SAMD21G18A + - 48 MHz + - 256 Kb + - 32 Kb + * - ``uno`` - `Arduino Uno `_ - ATMEGA328P @@ -957,6 +992,13 @@ Espressif - 4096 Kb - 80 Kb + * - ``esp8285`` + - `Generic ESP8285 Module `_ + - ESP8266 + - 80 MHz + - 448 Kb + - 80 Kb + * - ``esp_wroom_02`` - `ESP-WROOM-02 `_ - ESP8266 @@ -964,6 +1006,27 @@ Espressif - 4096 Kb - 50 Kb + * - ``phoenix_v1`` + - `Phoenix 1.0 `_ + - ESP8266 + - 80 MHz + - 1024 Kb + - 80 Kb + + * - ``phoenix_v2`` + - `Phoenix 2.0 `_ + - ESP8266 + - 80 MHz + - 1024 Kb + - 80 Kb + + * - ``wifinfo`` + - `WifInfo `_ + - ESP8266 + - 80 MHz + - 448 Kb + - 80 Kb + Freescale ~~~~~~~~~ @@ -2322,6 +2385,20 @@ SparkFun - 32 Kb - 2 Kb + * - ``sparkfun_samd21_dev_usb`` + - `SparkFun SAMD21 Dev Breakout `_ + - SAMD21G18A + - 48 MHz + - 256 Kb + - 32 Kb + + * - ``sparkfun_samd21_mini_usb`` + - `SparkFun SAMD21 Mini Breakout `_ + - SAMD21G18A + - 48 MHz + - 256 Kb + - 32 Kb + * - ``thing`` - `SparkFun ESP8266 Thing `_ - ESP8266 diff --git a/docs/platforms/espressif.rst b/docs/platforms/espressif.rst index f8333846..56ffbc43 100644 --- a/docs/platforms/espressif.rst +++ b/docs/platforms/espressif.rst @@ -210,6 +210,13 @@ Espressif - 4096 Kb - 80 Kb + * - ``esp8285`` + - `Generic ESP8285 Module `_ + - ESP8266 + - 80 MHz + - 448 Kb + - 80 Kb + * - ``esp_wroom_02`` - `ESP-WROOM-02 `_ - ESP8266 @@ -217,6 +224,27 @@ Espressif - 4096 Kb - 50 Kb + * - ``phoenix_v1`` + - `Phoenix 1.0 `_ + - ESP8266 + - 80 MHz + - 1024 Kb + - 80 Kb + + * - ``phoenix_v2`` + - `Phoenix 2.0 `_ + - ESP8266 + - 80 MHz + - 1024 Kb + - 80 Kb + + * - ``wifinfo`` + - `WifInfo `_ + - ESP8266 + - 80 MHz + - 448 Kb + - 80 Kb + NodeMCU ~~~~~~~ diff --git a/platformio/platforms/atmelavr.py b/platformio/platforms/atmelavr.py index 62fef55d..4469b652 100644 --- a/platformio/platforms/atmelavr.py +++ b/platformio/platforms/atmelavr.py @@ -36,11 +36,9 @@ class AtmelavrPlatform(BasePlatform): }, "tool-avrdude": { - "alias": "uploader" }, "tool-micronucleus": { - "alias": "uploader" }, "framework-arduinoavr": { @@ -58,10 +56,10 @@ class AtmelavrPlatform(BasePlatform): def configure_default_packages(self, envoptions, targets): if envoptions.get("board"): board = get_boards(envoptions.get("board")) - disable_tool = "tool-micronucleus" if "digispark" in board['build']['core']: - disable_tool = "tool-avrdude" - del self.PACKAGES[disable_tool]['alias'] + self.PACKAGES['tool-micronucleus']['alias'] = "uploader" + else: + self.PACKAGES['tool-avrdude']['alias'] = "uploader" return BasePlatform.configure_default_packages( self, envoptions, targets) diff --git a/platformio/platforms/atmelsam.py b/platformio/platforms/atmelsam.py index 0e8d7da2..e12f02ba 100644 --- a/platformio/platforms/atmelsam.py +++ b/platformio/platforms/atmelsam.py @@ -13,6 +13,7 @@ # limitations under the License. from platformio.platforms.base import BasePlatform +from platformio.util import get_boards class AtmelsamPlatform(BasePlatform): @@ -49,13 +50,32 @@ class AtmelsamPlatform(BasePlatform): }, "tool-bossac": { - "alias": "uploader" }, "tool-openocd": { - "alias": "uploader" + }, + + "tool-avrdude": { } } def get_name(self): return "Atmel SAM" + + def configure_default_packages(self, envoptions, targets): + if envoptions.get("board"): + board = get_boards(envoptions.get("board")) + upload_protocol = board.get("upload", {}).get("protocol", None) + upload_tool = None + if upload_protocol == "openocd": + upload_tool = "tool-openocd" + elif upload_protocol == "sam-ba": + upload_tool = "tool-bossac" + elif upload_protocol == "stk500v2": + upload_tool = "tool-avrdude" + + if upload_tool: + self.PACKAGES[upload_tool]['alias'] = "uploader" + + return BasePlatform.configure_default_packages( + self, envoptions, targets) From 63ae732e72a1b37f71e0b6d9933ef57214db064c Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Tue, 5 Jul 2016 00:14:00 +0300 Subject: [PATCH 20/27] Push 2.11.1.dev1 --- platformio/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platformio/__init__.py b/platformio/__init__.py index 6d594c01..1891ceb7 100644 --- a/platformio/__init__.py +++ b/platformio/__init__.py @@ -14,7 +14,7 @@ import sys -VERSION = (2, 11, "1.dev0") +VERSION = (2, 11, "1.dev1") __version__ = ".".join([str(s) for s in VERSION]) __title__ = "platformio" From 9160e61ac79ce7b75b1496cf5dbdcd68ad015cee Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Tue, 5 Jul 2016 12:34:37 +0300 Subject: [PATCH 21/27] Documented uploading of EEPROM data --- HISTORY.rst | 2 ++ docs/platforms/atmelavr_extra.rst | 7 +++++++ 2 files changed, 9 insertions(+) diff --git a/HISTORY.rst b/HISTORY.rst index 89f4c83a..83892644 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -7,6 +7,8 @@ PlatformIO 2.0 2.11.1 (2016-??-??) ~~~~~~~~~~~~~~~~~~~ +* Documented `uploading of EEPROM data `__ + (from EEMEM directive) * Improved project generator for `CLion IDE `__ * Auto-remove project cache when PlatformIO is upgraded * Fixed missed ``--boot`` flag for the firmware uploader for ATSAM3X8E diff --git a/docs/platforms/atmelavr_extra.rst b/docs/platforms/atmelavr_extra.rst index 8ef5a20f..754de6e0 100644 --- a/docs/platforms/atmelavr_extra.rst +++ b/docs/platforms/atmelavr_extra.rst @@ -95,6 +95,13 @@ Configuration for the programmers: upload_port = SERIAL_PORT_HERE upload_speed = 19200 +Upload EEPROM data +------------------ + +To upload EEPROM data (from EEMEM directive) you need to use ``uploadeep`` +target instead ``upload`` for :option:`platformio run --target` command. +For example, ``platformio run -t uploadeep``. + Articles -------- From 5cd3f9d84dfed77fc0f67baacee138dbd7507102 Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Tue, 5 Jul 2016 13:18:31 +0300 Subject: [PATCH 22/27] Keep user changes for ".gitignore" file when re-generate/update project data --- HISTORY.rst | 1 + platformio/ide/projectgenerator.py | 40 ++++++++++++++++++++++-------- 2 files changed, 30 insertions(+), 11 deletions(-) diff --git a/HISTORY.rst b/HISTORY.rst index 83892644..b381be6b 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -11,6 +11,7 @@ PlatformIO 2.0 (from EEMEM directive) * Improved project generator for `CLion IDE `__ * Auto-remove project cache when PlatformIO is upgraded +* Keep user changes for ``.gitignore`` file when re-generate/update project data * Fixed missed ``--boot`` flag for the firmware uploader for ATSAM3X8E Cortex-M3 MCU based boards (Arduino Due, etc) (`issue #710 `_) diff --git a/platformio/ide/projectgenerator.py b/platformio/ide/projectgenerator.py index 3347ae8d..53f776bd 100644 --- a/platformio/ide/projectgenerator.py +++ b/platformio/ide/projectgenerator.py @@ -16,8 +16,8 @@ import json import os import re import sys -from os.path import (abspath, basename, expanduser, isdir, join, normpath, - relpath) +from os.path import (abspath, basename, expanduser, isdir, isfile, join, + normpath, relpath) import bottle @@ -113,16 +113,18 @@ class ProjectGenerator(object): return tpls def generate(self): - for _relpath, _path in self.get_tpls(): - tpl_dir = self.project_dir - if _relpath: - tpl_dir = join(self.project_dir, _relpath) - if not isdir(tpl_dir): - os.makedirs(tpl_dir) + for tpl_relpath, tpl_path in self.get_tpls(): + dst_dir = self.project_dir + if tpl_relpath: + dst_dir = join(self.project_dir, tpl_relpath) + if not isdir(dst_dir): + os.makedirs(dst_dir) - file_name = basename(_path)[:-4] - with open(join(tpl_dir, file_name), "w") as f: - f.write(self._render_tpl(_path).encode("utf8")) + file_name = basename(tpl_path)[:-4] + self._merge_contents( + join(dst_dir, file_name), + self._render_tpl(tpl_path).encode("utf8") + ) def _render_tpl(self, tpl_path): content = "" @@ -130,6 +132,22 @@ class ProjectGenerator(object): content = f.read() return bottle.template(content, **self._tplvars) + def _merge_contents(self, dst_path, contents): + file_name = basename(dst_path) + + # merge .gitignore + if file_name == ".gitignore" and isfile(dst_path): + contents = [l.strip() for l in contents.split("\n") if l.strip()] + with open(dst_path) as f: + for line in f.readlines(): + line = line.strip() + if line and line not in contents: + contents.append(line) + contents = "\n".join(contents) + + with open(dst_path, "w") as f: + f.write(contents) + def _gather_tplvars(self): self._tplvars.update(self.get_project_env()) self._tplvars.update(self.get_project_build_data()) From db204941ed5adb8ad30ba28165477aa5fa2264ce Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Tue, 5 Jul 2016 13:28:22 +0300 Subject: [PATCH 23/27] Fix PyLint warning --- platformio/ide/projectgenerator.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/platformio/ide/projectgenerator.py b/platformio/ide/projectgenerator.py index 53f776bd..102f7878 100644 --- a/platformio/ide/projectgenerator.py +++ b/platformio/ide/projectgenerator.py @@ -132,7 +132,8 @@ class ProjectGenerator(object): content = f.read() return bottle.template(content, **self._tplvars) - def _merge_contents(self, dst_path, contents): + @staticmethod + def _merge_contents(dst_path, contents): file_name = basename(dst_path) # merge .gitignore From 9ba96d3673aa5d59422b3bea798a779f799a8e6f Mon Sep 17 00:00:00 2001 From: Valeriy Koval Date: Tue, 5 Jul 2016 17:06:14 +0300 Subject: [PATCH 24/27] Update microchippic32 platform and boards --- platformio/boards/microchippic32.json | 27 +++++++++++++++++-- .../builder/scripts/frameworks/arduino.py | 5 +++- 2 files changed, 29 insertions(+), 3 deletions(-) diff --git a/platformio/boards/microchippic32.json b/platformio/boards/microchippic32.json index 83af9110..7090d97c 100644 --- a/platformio/boards/microchippic32.json +++ b/platformio/boards/microchippic32.json @@ -236,7 +236,7 @@ "f_cpu": "80000000L", "ldscript": "chipKIT-application-32MX440F512.ld", "mcu": "32MX440F512H", - "variant": "Default_64" + "variant": "PONTECH_UAV100" }, "frameworks": ["arduino"], "name": "PONTECH UAV100", @@ -510,7 +510,7 @@ "core": "pic32", "extra_flags": "-D_BOARD_OPENSCOPE_", "f_cpu": "200000000L", - "ldscript": "MZ-application-32MZ2048ECX.ld", + "ldscript": "OpenScope.ld", "mcu": "32MZ2048EFG124", "variant": "OpenScope" }, @@ -549,5 +549,28 @@ }, "url": "http://shop.openbci.com/", "vendor": "OpenBCI" + }, + + "lenny": { + "build": { + "core": "pic32", + "extra_flags": "-D_BOARD_LENNY_ -D_USE_USB_FOR_SERIAL_", + "f_cpu": "40000000L", + "ldscript": "chipKIT-application-32MX270F256.ld", + "mcu": "32MX270F256D", + "variant": "Lenny" + }, + "frameworks": ["arduino"], + "name": "chipKIT Lenny", + "platform": "microchippic32", + "upload": { + "maximum_ram_size": 32768, + "maximum_size": 122880, + "protocol": "stk500v2", + "require_upload_port" : true, + "speed": 115200 + }, + "url": "http://chipkit.net/tag/lenny/", + "vendor": "chipKIT" } } diff --git a/platformio/builder/scripts/frameworks/arduino.py b/platformio/builder/scripts/frameworks/arduino.py index 21be9b6a..1e3874b3 100644 --- a/platformio/builder/scripts/frameworks/arduino.py +++ b/platformio/builder/scripts/frameworks/arduino.py @@ -115,7 +115,10 @@ elif env.get("PLATFORM") == "microchippic32": "$PLATFORMFW_DIR", "variants", "${BOARD_OPTIONS['build']['variant']}" ) - ] + ], + + CPPDEFINES=["ARDUINO_ARCH_PIC32"] + ) elif "intel" in env.get("PLATFORM"): From ae81ec043d6026fa5e4090afca54cedccf3d0f6d Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Tue, 5 Jul 2016 17:40:00 +0300 Subject: [PATCH 25/27] Update history --- HISTORY.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HISTORY.rst b/HISTORY.rst index b381be6b..8cad7732 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -7,6 +7,8 @@ PlatformIO 2.0 2.11.1 (2016-??-??) ~~~~~~~~~~~~~~~~~~~ +* Added support for Microchip chipKIT Lenny board +* Updated Microchip PIC32 Arduino framework to v1.2.1 * Documented `uploading of EEPROM data `__ (from EEMEM directive) * Improved project generator for `CLion IDE `__ From 8fe8318c7740e2b4e9c45fff2ff23b9f26d6f77f Mon Sep 17 00:00:00 2001 From: Valeriy Koval Date: Wed, 6 Jul 2016 11:02:36 +0300 Subject: [PATCH 26/27] Add Arduino M0 as a separate board --- platformio/boards/arduino.json | 38 ++++++++++++++++++++++++++++++++-- 1 file changed, 36 insertions(+), 2 deletions(-) diff --git a/platformio/boards/arduino.json b/platformio/boards/arduino.json index 29f22147..e5ac7c25 100644 --- a/platformio/boards/arduino.json +++ b/platformio/boards/arduino.json @@ -987,14 +987,14 @@ "url": "http://www.arduino.org/products/boards/arduino-m0-pro", "vendor": "Arduino" }, - "mzeroUSB": { + "mzeroproUSB": { "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", + "usb_product": "Arduino M0 Pro", "variant": "arduino_zero", "ldscript": "samd21g18a_bootloader_org.ld", "hwids": [ @@ -1021,6 +1021,40 @@ "url": "http://www.arduino.org/products/boards/arduino-m0-pro", "vendor": "Arduino" }, + "mzeroUSB": { + "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", + "variant": "arduino_zero", + "ldscript": "samd21g18a_bootloader_org.ld", + "hwids": [ + ["0x2A03", "0x004D"], + ["0x2A03", "0x804D"], + ["0x2A03", "0x004E"], + ["0x2A03", "0x804E"] + ] + }, + "frameworks": ["arduino"], + "name": "Arduino M0", + "platform": "atmelsam", + "upload": { + "disable_flushing": true, + "maximum_ram_size": 32768, + "maximum_size": 262144, + "protocol": "stk500v2", + "require_upload_port" : true, + "speed": 57600, + "use_1200bps_touch": true, + "wait_for_upload_port": true, + "section_start": "0x4000" + }, + "url": "http://www.arduino.org/products/boards/arduino-m0", + "vendor": "Arduino" + }, "tian": { "build": { "core": "arduino_zero", From 7f47a2fd25159c611c88e3f4d8617c35cf3a911d Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Wed, 6 Jul 2016 13:27:36 +0300 Subject: [PATCH 27/27] Update boards list --- docs/frameworks/arduino.rst | 29 ++++++++++++++++++++++++++++- docs/platforms/atmelsam.rst | 9 ++++++++- docs/platforms/embedded_boards.rst | 29 ++++++++++++++++++++++++++++- docs/platforms/microchippic32.rst | 20 ++++++++++++++++++++ 4 files changed, 84 insertions(+), 3 deletions(-) diff --git a/docs/frameworks/arduino.rst b/docs/frameworks/arduino.rst index 0e5b8b80..e0d9c67f 100644 --- a/docs/frameworks/arduino.rst +++ b/docs/frameworks/arduino.rst @@ -392,7 +392,7 @@ Arduino - 32 Kb * - ``mzeroUSB`` - - `Arduino M0 Pro (Native USB Port) `_ + - `Arduino M0 `_ - SAMD21G18A - 48 MHz - 256 Kb @@ -405,6 +405,13 @@ Arduino - 256 Kb - 32 Kb + * - ``mzeroproUSB`` + - `Arduino M0 Pro (Native USB Port) `_ + - SAMD21G18A + - 48 MHz + - 256 Kb + - 32 Kb + * - ``nanoatmega168`` - `Arduino Nano ATmega168 `_ - ATMEGA168 @@ -1857,6 +1864,26 @@ Wicked Device - 128 Kb - 16 Kb +chipKIT +~~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``lenny`` + - `chipKIT Lenny `_ + - 32MX270F256D + - 40 MHz + - 128 Kb + - 32 Kb + element14 ~~~~~~~~~ diff --git a/docs/platforms/atmelsam.rst b/docs/platforms/atmelsam.rst index a90b15b6..12cbc41a 100644 --- a/docs/platforms/atmelsam.rst +++ b/docs/platforms/atmelsam.rst @@ -143,7 +143,7 @@ Arduino - 32 Kb * - ``mzeroUSB`` - - `Arduino M0 Pro (Native USB Port) `_ + - `Arduino M0 `_ - SAMD21G18A - 48 MHz - 256 Kb @@ -156,6 +156,13 @@ Arduino - 256 Kb - 32 Kb + * - ``mzeroproUSB`` + - `Arduino M0 Pro (Native USB Port) `_ + - SAMD21G18A + - 48 MHz + - 256 Kb + - 32 Kb + * - ``tian`` - `Arduino Tian `_ - SAMD21G18A diff --git a/docs/platforms/embedded_boards.rst b/docs/platforms/embedded_boards.rst index 2b8cc1c4..f5a6a0d6 100644 --- a/docs/platforms/embedded_boards.rst +++ b/docs/platforms/embedded_boards.rst @@ -378,7 +378,7 @@ Arduino - 32 Kb * - ``mzeroUSB`` - - `Arduino M0 Pro (Native USB Port) `_ + - `Arduino M0 `_ - SAMD21G18A - 48 MHz - 256 Kb @@ -391,6 +391,13 @@ Arduino - 256 Kb - 32 Kb + * - ``mzeroproUSB`` + - `Arduino M0 Pro (Native USB Port) `_ + - SAMD21G18A + - 48 MHz + - 256 Kb + - 32 Kb + * - ``nanoatmega168`` - `Arduino Nano ATmega168 `_ - ATMEGA168 @@ -2740,6 +2747,26 @@ Wicked Device - 128 Kb - 16 Kb +chipKIT +~~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``lenny`` + - `chipKIT Lenny `_ + - 32MX270F256D + - 40 MHz + - 128 Kb + - 32 Kb + element14 ~~~~~~~~~ diff --git a/docs/platforms/microchippic32.rst b/docs/platforms/microchippic32.rst index 7f38d2bb..51c92e8e 100644 --- a/docs/platforms/microchippic32.rst +++ b/docs/platforms/microchippic32.rst @@ -332,6 +332,26 @@ UBW32 - 512 Kb - 128 Kb +chipKIT +~~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``lenny`` + - `chipKIT Lenny `_ + - 32MX270F256D + - 40 MHz + - 128 Kb + - 32 Kb + element14 ~~~~~~~~~