From a1e7ce415b96e452c3cb76b8277fe004b0e89801 Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Mon, 30 May 2016 13:15:19 +0300 Subject: [PATCH 01/18] Add MinGW to the PATH --- appveyor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appveyor.yml b/appveyor.yml index a04e1904..845307f6 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -6,7 +6,7 @@ environment: install: - cmd: git submodule update --init --recursive - - cmd: SET PATH=%PATH%;C:\Python27\Scripts + - cmd: SET PATH=%PATH%;C:\Python27\Scripts;C:\MinGW\bin - cmd: pip install tox test_script: From c74a2b452959cf46cfa9df752aca8bce2eb42949 Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Wed, 1 Jun 2016 20:24:08 +0300 Subject: [PATCH 02/18] Improve firmware uploading to Arduino Leonardo based boards --- HISTORY.rst | 1 + platformio/builder/tools/pioupload.py | 3 ++- platformio/util.py | 27 ++++++++++++++++++++++----- 3 files changed, 25 insertions(+), 6 deletions(-) diff --git a/HISTORY.rst b/HISTORY.rst index 3133868b..1215c69d 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -16,6 +16,7 @@ PlatformIO 2.0 (`issue #585 `_) * Use HTTP mirror for Package Manager in a case with SSL errors (`issue #645 `_) +* Improved firmware uploading to Arduino Leonardo based boards * Fixed bug with ``env_default`` when ``pio run -e`` is used * Fixed issue with ``src_filter`` option for Windows OS (`issue #652 `_) diff --git a/platformio/builder/tools/pioupload.py b/platformio/builder/tools/pioupload.py index d1cd6dab..bbf77d19 100644 --- a/platformio/builder/tools/pioupload.py +++ b/platformio/builder/tools/pioupload.py @@ -50,8 +50,9 @@ def TouchSerialPort(env, port, baudrate): def WaitForNewSerialPort(env, before): new_port = None elapsed = 0 + sleep(0.5) while elapsed < 10: - now = [i['port'] for i in get_serialports()] + now = [i['port'] for i in get_serialports(use_grep=True)] diff = list(set(now) - set(before)) if diff: new_port = diff[0] diff --git a/platformio/util.py b/platformio/util.py index 6dc1bd5e..e3a02b3d 100644 --- a/platformio/util.py +++ b/platformio/util.py @@ -280,7 +280,24 @@ def exec_command(*args, **kwargs): return result -def get_serialports(): +def get_serialports(use_grep=False): + + def _grep_serial_ports(): + assert "Windows" != system() + result = [] + if "Linux" == system(): + patterns = ["/dev/%s*" % p for p in ( + "ttyS", "ttyUSB", "ttyACM", "ttyAMA", "rfcomm", "ttyO")] + else: + patterns = ["/dev/tty.*"] + for pattern in patterns: + for port in glob(pattern): + result.append({"port": port, "description": "", "hwid": ""}) + return result + + if use_grep and "Windows" != system(): + return _grep_serial_ports() + try: from serial.tools.list_ports import comports except ImportError: @@ -290,7 +307,7 @@ def get_serialports(): for p, d, h in comports(): if not p: continue - if "windows" in get_systype(): + if "Windows" == system(): try: d = unicode(d, errors="ignore") except TypeError: @@ -298,9 +315,9 @@ def get_serialports(): result.append({"port": p, "description": d, "hwid": h}) # fix for PySerial - if not result and system() == "Darwin": - for p in glob("/dev/tty.*"): - result.append({"port": p, "description": "", "hwid": ""}) + if not result: + result = _grep_serial_ports() + return result From 250b39bcc80f9c40e409d26f996b4ae4ed48461a Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Wed, 1 Jun 2016 20:26:10 +0300 Subject: [PATCH 03/18] Skip grep search for serial ports on Windows machines --- platformio/util.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platformio/util.py b/platformio/util.py index e3a02b3d..a82b3c15 100644 --- a/platformio/util.py +++ b/platformio/util.py @@ -315,7 +315,7 @@ def get_serialports(use_grep=False): result.append({"port": p, "description": d, "hwid": h}) # fix for PySerial - if not result: + if not result and "Windows" != system(): result = _grep_serial_ports() return result From 694121d49a991403b88c14b7dabfacc36a42d366 Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Wed, 1 Jun 2016 20:35:05 +0300 Subject: [PATCH 04/18] Grep for "/dev/cu.*" on OS X --- platformio/util.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platformio/util.py b/platformio/util.py index a82b3c15..39f3ad06 100644 --- a/platformio/util.py +++ b/platformio/util.py @@ -289,7 +289,7 @@ def get_serialports(use_grep=False): patterns = ["/dev/%s*" % p for p in ( "ttyS", "ttyUSB", "ttyACM", "ttyAMA", "rfcomm", "ttyO")] else: - patterns = ["/dev/tty.*"] + patterns = ["/dev/tty.*", "/dev/cu.*"] for pattern in patterns: for port in glob(pattern): result.append({"port": port, "description": "", "hwid": ""}) From ce72ee04f45da1945a831941ac347fe9ea0eaf39 Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Wed, 1 Jun 2016 20:36:13 +0300 Subject: [PATCH 05/18] Link Community Forums FAQ with Docs FAQ --- docs/faq.rst | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/faq.rst b/docs/faq.rst index bf412216..663c108f 100644 --- a/docs/faq.rst +++ b/docs/faq.rst @@ -14,6 +14,10 @@ Frequently Asked Questions ========================== +.. note:: + We have a big database with `Frequently Asked Questions in our Community Forums `_. + Please have a look at it. + .. contents:: General From f3689ac157287cf0f1adb55f4abaf0c311e32d79 Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Wed, 1 Jun 2016 21:30:30 +0300 Subject: [PATCH 06/18] Add new articles --- docs/articles.rst | 8 ++++++++ docs/ide/atom.rst | 1 + docs/platforms/espressif_extra.rst | 4 ++++ 3 files changed, 13 insertions(+) diff --git a/docs/articles.rst b/docs/articles.rst index a4244ac0..c11c1657 100644 --- a/docs/articles.rst +++ b/docs/articles.rst @@ -23,6 +23,14 @@ Here are recent articles about PlatformIO: 2016 ^^^^ +* May 30, 2016 - **Ron Moerman** - `IoT Development with PlatformIO `_ +* May 29, 2016 - **Chris Synan** - `Reverse Engineer RF Remote Controller for IoT! `_ +* May 26, 2016 - **Charlie Key** - `7 Best Developer Tools To Build Your NEXT Internet of Things Application `_ +* May 22, 2016 - **Pedro Minatel** - `Estação meteorológica com ESP8266 (Weather station with ESP8266, Portuguese) `_ +* May 16, 2016 - **Pedro Minatel** - `Controle remoto WiFi com ESP8266 (Remote WiFi with ESP8266, Portuguese) `_ +* May 11, 2016 - **Jo Vandeginste** - `Using PlatformIO to compile for Jeelabs' Jeenode Micro `_ +* May 08, 2016 - **Radoslaw Bob** - `Touch controlled buzzer (Nodemcu ESP8266) `_ +* May 06, 2016 - **Jean Roux** - `The IoT building blocks I use for my home-automation projects `_ * May 05, 2016 - **Ivan Kravets, Ph.D. / Eclipse Virtual IoT Meetup** - `PlatformIO: a cross-platform IoT solution to build them all! `_ * May 01, 2016 - **Pedro Minatel** - `PlatformIO – Uma alternativa ao Arduino IDE (PlatformIO - An alternative to the Arduino IDE, Portuguese) `_ * Apr 23, 2016 - **Al Williams** - `Hackaday: Atomic Arduino (and Other) Development `_ diff --git a/docs/ide/atom.rst b/docs/ide/atom.rst index 1f7e5e59..f46d5a2c 100644 --- a/docs/ide/atom.rst +++ b/docs/ide/atom.rst @@ -471,6 +471,7 @@ package and `C/C++ Uncrustify Code Beautifier `_ * May 01, 2016 - **Pedro Minatel** - `PlatformIO – Uma alternativa ao Arduino IDE (PlatformIO - An alternative to the Arduino IDE, Portuguese) `_ * Apr 23, 2016 - **Al Williams** - `Hackaday: Atomic Arduino (and Other) Development `_ * Apr 16, 2016 - **Sathittham Sangthong** - `[PlatformIO] มาลองเล่น PlatformIO แทน Arduino IDE กัน (Let's play together with PlatformIO IDE [alternative to Arduino IDE], Thai) `_ diff --git a/docs/platforms/espressif_extra.rst b/docs/platforms/espressif_extra.rst index c4a32b3f..17e5c7d5 100644 --- a/docs/platforms/espressif_extra.rst +++ b/docs/platforms/espressif_extra.rst @@ -240,6 +240,10 @@ Using Arduino Framework with Staging version Articles -------- +* 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) `_ +* May 16, 2016 - **Pedro Minatel** - `Controle remoto WiFi com ESP8266 (Remote WiFi with ESP8266, Portuguese) `_ +* May 08, 2016 - **Radoslaw Bob** - `Touch controlled buzzer (Nodemcu ESP8266) `_ * Mar 07, 2016 - **Joran Jessurun** - `Nieuwe wereld met PlatformIO (New world with PlatformIO, Dutch) `_ * Feb 25, 2016 - **NutDIY** - `PlatformIO Blink On Nodemcu Dev Kit V1.0 (ESP 12-E) `_ * Feb 23, 2016 - **Ptarmigan Labs** - `ESP8266 Over The Air updating – what are the options? `_ From 406e240de1485175015e3693592666dbadd18904 Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Wed, 1 Jun 2016 22:14:37 +0300 Subject: [PATCH 07/18] Update title of the article --- docs/articles.rst | 2 +- docs/platforms/espressif_extra.rst | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/articles.rst b/docs/articles.rst index c11c1657..e844b961 100644 --- a/docs/articles.rst +++ b/docs/articles.rst @@ -27,7 +27,7 @@ Here are recent articles about PlatformIO: * May 29, 2016 - **Chris Synan** - `Reverse Engineer RF Remote Controller for IoT! `_ * May 26, 2016 - **Charlie Key** - `7 Best Developer Tools To Build Your NEXT Internet of Things Application `_ * May 22, 2016 - **Pedro Minatel** - `Estação meteorológica com ESP8266 (Weather station with ESP8266, Portuguese) `_ -* May 16, 2016 - **Pedro Minatel** - `Controle remoto WiFi com ESP8266 (Remote WiFi with ESP8266, Portuguese) `_ +* May 16, 2016 - **Pedro Minatel** - `Controle remoto WiFi com ESP8266 (WiFi remote control using ESP8266, Portuguese) `_ * May 11, 2016 - **Jo Vandeginste** - `Using PlatformIO to compile for Jeelabs' Jeenode Micro `_ * May 08, 2016 - **Radoslaw Bob** - `Touch controlled buzzer (Nodemcu ESP8266) `_ * May 06, 2016 - **Jean Roux** - `The IoT building blocks I use for my home-automation projects `_ diff --git a/docs/platforms/espressif_extra.rst b/docs/platforms/espressif_extra.rst index 17e5c7d5..b9430876 100644 --- a/docs/platforms/espressif_extra.rst +++ b/docs/platforms/espressif_extra.rst @@ -242,7 +242,7 @@ Articles * 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) `_ -* May 16, 2016 - **Pedro Minatel** - `Controle remoto WiFi com ESP8266 (Remote WiFi with ESP8266, Portuguese) `_ +* May 16, 2016 - **Pedro Minatel** - `Controle remoto WiFi com ESP8266 (WiFi remote control using ESP8266, Portuguese) `_ * May 08, 2016 - **Radoslaw Bob** - `Touch controlled buzzer (Nodemcu ESP8266) `_ * Mar 07, 2016 - **Joran Jessurun** - `Nieuwe wereld met PlatformIO (New world with PlatformIO, Dutch) `_ * Feb 25, 2016 - **NutDIY** - `PlatformIO Blink On Nodemcu Dev Kit V1.0 (ESP 12-E) `_ From d7ca3f15a4a3c01306cf85a4150adca67c0cd4a7 Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Wed, 1 Jun 2016 23:33:15 +0300 Subject: [PATCH 08/18] Use $PROGNAME instead static name when looking for the firmware --- platformio/builder/tools/pioupload.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/platformio/builder/tools/pioupload.py b/platformio/builder/tools/pioupload.py index bbf77d19..89a8d6bc 100644 --- a/platformio/builder/tools/pioupload.py +++ b/platformio/builder/tools/pioupload.py @@ -105,11 +105,13 @@ def AutodetectUploadPort(env): def UploadToDisk(_, target, source, env): # pylint: disable=W0613,W0621 env.AutodetectUploadPort() + progname = env.subst("$PROGNAME") for ext in ("bin", "hex"): - fpath = join(env.subst("$BUILD_DIR"), "firmware.%s" % ext) + fpath = join(env.subst("$BUILD_DIR"), "%s.%s" % (progname, ext)) if not isfile(fpath): continue - copyfile(fpath, join(env.subst("$UPLOAD_PORT"), "firmware.%s" % ext)) + copyfile(fpath, join( + env.subst("$UPLOAD_PORT"), "%s.%s" % (progname, ext))) print("Firmware has been successfully uploaded.\n" "Please restart your board.") From b188a05b695a8b4b6635bd7e963511a25f4bb5d4 Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Thu, 2 Jun 2016 00:14:02 +0300 Subject: [PATCH 09/18] Fix PyLint's "misplaced-comparison-constant" --- platformio/util.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/platformio/util.py b/platformio/util.py index 39f3ad06..07966d2c 100644 --- a/platformio/util.py +++ b/platformio/util.py @@ -283,9 +283,9 @@ def exec_command(*args, **kwargs): def get_serialports(use_grep=False): def _grep_serial_ports(): - assert "Windows" != system() + assert system() != "Windows" result = [] - if "Linux" == system(): + if system() == "Linux": patterns = ["/dev/%s*" % p for p in ( "ttyS", "ttyUSB", "ttyACM", "ttyAMA", "rfcomm", "ttyO")] else: @@ -295,7 +295,7 @@ def get_serialports(use_grep=False): result.append({"port": port, "description": "", "hwid": ""}) return result - if use_grep and "Windows" != system(): + if use_grep and system() != "Windows": return _grep_serial_ports() try: @@ -307,7 +307,7 @@ def get_serialports(use_grep=False): for p, d, h in comports(): if not p: continue - if "Windows" == system(): + if system() == "Windows": try: d = unicode(d, errors="ignore") except TypeError: @@ -315,7 +315,7 @@ def get_serialports(use_grep=False): result.append({"port": p, "description": d, "hwid": h}) # fix for PySerial - if not result and "Windows" != system(): + if not result and system() != "Windows": result = _grep_serial_ports() return result From c773c8f5d51b27dfe2d4dfdb19b74de07d321dbc Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Thu, 2 Jun 2016 01:09:05 +0300 Subject: [PATCH 10/18] Minor improvements --- platformio/builder/scripts/atmelavr.py | 4 +--- platformio/builder/scripts/atmelsam.py | 7 ++----- platformio/builder/tools/pioupload.py | 6 ++++-- platformio/util.py | 5 +++-- 4 files changed, 10 insertions(+), 12 deletions(-) diff --git a/platformio/builder/scripts/atmelavr.py b/platformio/builder/scripts/atmelavr.py index daff63af..24c6bd72 100644 --- a/platformio/builder/scripts/atmelavr.py +++ b/platformio/builder/scripts/atmelavr.py @@ -65,13 +65,11 @@ def BeforeUpload(target, source, env): # pylint: disable=W0613,W0621 if not upload_options.get("disable_flushing", False): env.FlushSerialBuffer("$UPLOAD_PORT") - before_ports = [i['port'] for i in get_serialports()] - if upload_options.get("use_1200bps_touch", False): env.TouchSerialPort("$UPLOAD_PORT", 1200) if upload_options.get("wait_for_upload_port", False): - env.Replace(UPLOAD_PORT=env.WaitForNewSerialPort(before_ports)) + env.Replace(UPLOAD_PORT=env.WaitForNewSerialPort()) env = DefaultEnvironment() diff --git a/platformio/builder/scripts/atmelsam.py b/platformio/builder/scripts/atmelsam.py index d91b0bf0..af24f08b 100644 --- a/platformio/builder/scripts/atmelsam.py +++ b/platformio/builder/scripts/atmelsam.py @@ -41,13 +41,11 @@ def BeforeUpload(target, source, env): # pylint: disable=W0613,W0621 if not upload_options.get("disable_flushing", False): env.FlushSerialBuffer("$UPLOAD_PORT") - before_ports = [i['port'] for i in get_serialports()] - if upload_options.get("use_1200bps_touch", False): env.TouchSerialPort("$UPLOAD_PORT", 1200) if upload_options.get("wait_for_upload_port", False): - env.Replace(UPLOAD_PORT=env.WaitForNewSerialPort(before_ports)) + env.Replace(UPLOAD_PORT=env.WaitForNewSerialPort()) # use only port name for BOSSA if "/" in env.subst("$UPLOAD_PORT"): @@ -111,8 +109,7 @@ env.Append( ], CPPDEFINES=[ - "USBCON", - 'USB_MANUFACTURER="PlatformIO"' + "USBCON" ], LINKFLAGS=[ diff --git a/platformio/builder/tools/pioupload.py b/platformio/builder/tools/pioupload.py index 89a8d6bc..e27efd30 100644 --- a/platformio/builder/tools/pioupload.py +++ b/platformio/builder/tools/pioupload.py @@ -47,12 +47,14 @@ def TouchSerialPort(env, port, baudrate): sleep(0.4) -def WaitForNewSerialPort(env, before): +def WaitForNewSerialPort(env): + before = [i['port'] for i in get_serialports(use_grep=True)] + sleep(0.5) new_port = None elapsed = 0 - sleep(0.5) while elapsed < 10: now = [i['port'] for i in get_serialports(use_grep=True)] + print 45, now diff = list(set(now) - set(before)) if diff: new_port = diff[0] diff --git a/platformio/util.py b/platformio/util.py index 07966d2c..2e8e12b2 100644 --- a/platformio/util.py +++ b/platformio/util.py @@ -283,8 +283,9 @@ def exec_command(*args, **kwargs): def get_serialports(use_grep=False): def _grep_serial_ports(): - assert system() != "Windows" result = [] + if system() == "Windows": + return result if system() == "Linux": patterns = ["/dev/%s*" % p for p in ( "ttyS", "ttyUSB", "ttyACM", "ttyAMA", "rfcomm", "ttyO")] @@ -315,7 +316,7 @@ def get_serialports(use_grep=False): result.append({"port": p, "description": d, "hwid": h}) # fix for PySerial - if not result and system() != "Windows": + if not result: result = _grep_serial_ports() return result From 1fdc2e309159d73a57570bd0d33b513b8b2c814d Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Thu, 2 Jun 2016 01:13:34 +0300 Subject: [PATCH 11/18] Remove unused imports --- platformio/builder/scripts/atmelavr.py | 2 -- platformio/builder/scripts/atmelsam.py | 2 -- platformio/builder/tools/pioupload.py | 1 - 3 files changed, 5 deletions(-) diff --git a/platformio/builder/scripts/atmelavr.py b/platformio/builder/scripts/atmelavr.py index 24c6bd72..26370f22 100644 --- a/platformio/builder/scripts/atmelavr.py +++ b/platformio/builder/scripts/atmelavr.py @@ -22,8 +22,6 @@ from time import sleep from SCons.Script import (COMMAND_LINE_TARGETS, AlwaysBuild, Default, DefaultEnvironment, SConscript) -from platformio.util import get_serialports - def BeforeUpload(target, source, env): # pylint: disable=W0613,W0621 diff --git a/platformio/builder/scripts/atmelsam.py b/platformio/builder/scripts/atmelsam.py index af24f08b..7cf50a31 100644 --- a/platformio/builder/scripts/atmelsam.py +++ b/platformio/builder/scripts/atmelsam.py @@ -21,8 +21,6 @@ from os.path import basename, join from SCons.Script import (COMMAND_LINE_TARGETS, AlwaysBuild, Default, DefaultEnvironment, SConscript) -from platformio.util import get_serialports - def BeforeUpload(target, source, env): # pylint: disable=W0613,W0621 env.AutodetectUploadPort() diff --git a/platformio/builder/tools/pioupload.py b/platformio/builder/tools/pioupload.py index e27efd30..cb973b92 100644 --- a/platformio/builder/tools/pioupload.py +++ b/platformio/builder/tools/pioupload.py @@ -54,7 +54,6 @@ def WaitForNewSerialPort(env): elapsed = 0 while elapsed < 10: now = [i['port'] for i in get_serialports(use_grep=True)] - print 45, now diff = list(set(now) - set(before)) if diff: new_port = diff[0] From b3fc6617e5edf6a478ddc0e222494d0d6b4e4973 Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Thu, 2 Jun 2016 14:57:44 +0300 Subject: [PATCH 12/18] Implement grep serial ports for Windows --- platformio/util.py | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/platformio/util.py b/platformio/util.py index 2e8e12b2..221c6d9b 100644 --- a/platformio/util.py +++ b/platformio/util.py @@ -285,19 +285,28 @@ def get_serialports(use_grep=False): def _grep_serial_ports(): result = [] if system() == "Windows": - return result - if system() == "Linux": - patterns = ["/dev/%s*" % p for p in ( - "ttyS", "ttyUSB", "ttyACM", "ttyAMA", "rfcomm", "ttyO")] + output = exec_command(["mode"]).get("out", "") + for line in output.split("\n"): + line = line.strip() + if "COM" in line: + result.append({"port": line[line.index("COM"):-1], + "description": "", "hwid": ""}) else: - patterns = ["/dev/tty.*", "/dev/cu.*"] - for pattern in patterns: - for port in glob(pattern): - result.append({"port": port, "description": "", "hwid": ""}) + if system() == "Linux": + patterns = ["/dev/%s*" % p for p in ( + "ttyS", "ttyUSB", "ttyACM", "ttyAMA", "rfcomm", "ttyO")] + else: + patterns = ["/dev/tty.*", "/dev/cu.*"] + for pattern in patterns: + for port in glob(pattern): + result.append( + {"port": port, "description": "", "hwid": ""}) return result - if use_grep and system() != "Windows": - return _grep_serial_ports() + if use_grep: + result = _grep_serial_ports() + if result: + return result try: from serial.tools.list_ports import comports @@ -316,7 +325,7 @@ def get_serialports(use_grep=False): result.append({"port": p, "description": d, "hwid": h}) # fix for PySerial - if not result: + if not result and not use_grep: result = _grep_serial_ports() return result @@ -326,7 +335,7 @@ def get_logicaldisks(): disks = [] if system() == "Windows": result = exec_command( - ["wmic", "logicaldisk", "get", "name,VolumeName"]).get("out") + ["wmic", "logicaldisk", "get", "name,VolumeName"]).get("out", "") disknamere = re.compile(r"^([A-Z]{1}\:)\s*(\S+)?") for line in result.split("\n"): match = disknamere.match(line.strip()) From 03d9351decf474a44084f84124231a1e1bea3f45 Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Thu, 2 Jun 2016 16:41:04 +0300 Subject: [PATCH 13/18] Add "stlink" as the default uploader for STM32 Discovery boards // Resolve #665 --- HISTORY.rst | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/HISTORY.rst b/HISTORY.rst index 1215c69d..34971927 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -7,16 +7,18 @@ PlatformIO 2.0 2.9.2 (2016-??-??) ~~~~~~~~~~~~~~~~~~ -* Simplified documentation for `Continuous Integration with AppVeyor `__ +* Simplified `Continuous Integration with AppVeyor `__ (`issue #671 `_) * Automatically add source directory to ``CPPPATH`` of Build System * Added support for Silicon Labs SLSTK3401A (Pearl Gecko) and MultiTech mDot F411 ARM mbed based boards * Added support for MightyCore ATmega8535 board (`issue #585 `_) +* Added ``stlink`` as the default uploader for STM32 Discovery boards + (`issue #665 `_) * Use HTTP mirror for Package Manager in a case with SSL errors (`issue #645 `_) -* Improved firmware uploading to Arduino Leonardo based boards +* Improved firmware uploading to Arduino Leonardo/Due based boards * Fixed bug with ``env_default`` when ``pio run -e`` is used * Fixed issue with ``src_filter`` option for Windows OS (`issue #652 `_) From 0c8f4692468d685dd78a2c3996a37823376984e9 Mon Sep 17 00:00:00 2001 From: Valeriy Koval Date: Thu, 2 Jun 2016 17:27:52 +0300 Subject: [PATCH 14/18] Fix multiple definition in mbed framework when using abstract class // Issue #641, #666 --- 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 24b04dbe..0f6399e2 100644 --- a/platformio/builder/scripts/frameworks/mbed.py +++ b/platformio/builder/scripts/frameworks/mbed.py @@ -199,7 +199,7 @@ def get_build_flags(data): def _mbed_whole_archive_hook(libs_): if (not isinstance(libs_, list) or - env.get("BOARD_OPTIONS", {}).get("platform") != "ststm32"): + env.get("BOARD_OPTIONS", {}).get("platform") == "nordicnrf51"): return libs_ _dynlibs = [] From 3ad1ad4ef10d9885333e55571be5abf554338e23 Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Thu, 2 Jun 2016 20:41:10 +0300 Subject: [PATCH 15/18] List embedded boards in docs --- docs/frameworks/arduino.rst | 2 +- docs/frameworks/cmsis.rst | 2 +- docs/frameworks/energia.rst | 2 +- docs/frameworks/libopencm3.rst | 2 +- docs/frameworks/mbed.rst | 2 +- docs/frameworks/simba.rst | 2 +- docs/frameworks/spl.rst | 2 +- docs/frameworks/wiringpi.rst | 2 +- docs/index.rst | 10 +- docs/platforms/atmelavr.rst | 2 +- docs/platforms/atmelsam.rst | 2 +- docs/platforms/creating_board.rst | 7 +- docs/platforms/creating_platform.rst | 4 +- docs/platforms/embedded_boards.rst | 2670 ++++++++++++++++++++ docs/platforms/espressif.rst | 2 +- docs/platforms/freescalekinetis.rst | 2 +- docs/platforms/index.rst | 15 +- docs/platforms/intel_arc32.rst | 2 +- docs/platforms/lattice_ice40.rst | 2 +- docs/platforms/linux_arm.rst | 2 +- docs/platforms/linux_i686.rst | 2 +- docs/platforms/linux_x86_64.rst | 2 +- docs/platforms/microchippic32.rst | 2 +- docs/platforms/native.rst | 2 +- docs/platforms/nordicnrf51.rst | 2 +- docs/platforms/nxplpc.rst | 2 +- docs/platforms/siliconlabsefm32.rst | 2 +- docs/platforms/ststm32.rst | 2 +- docs/platforms/teensy.rst | 2 +- docs/platforms/timsp430.rst | 2 +- docs/platforms/titiva.rst | 2 +- docs/platforms/windows_x86.rst | 2 +- docs/projectconf.rst | 4 +- docs/userguide/cmd_update.rst | 4 +- docs/userguide/platforms/cmd_install.rst | 5 +- docs/userguide/platforms/cmd_list.rst | 4 +- docs/userguide/platforms/cmd_search.rst | 4 +- docs/userguide/platforms/cmd_show.rst | 4 +- docs/userguide/platforms/cmd_uninstall.rst | 4 +- docs/userguide/platforms/cmd_update.rst | 4 +- scripts/docspregen.py | 63 +- 41 files changed, 2786 insertions(+), 70 deletions(-) create mode 100644 docs/platforms/embedded_boards.rst diff --git a/docs/frameworks/arduino.rst b/docs/frameworks/arduino.rst index 74b7b485..90054e71 100644 --- a/docs/frameworks/arduino.rst +++ b/docs/frameworks/arduino.rst @@ -1,4 +1,4 @@ -.. Copyright 2014-2016 Ivan Kravets +.. Copyright 2014-present Ivan Kravets Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at diff --git a/docs/frameworks/cmsis.rst b/docs/frameworks/cmsis.rst index 8a264924..7520cd94 100644 --- a/docs/frameworks/cmsis.rst +++ b/docs/frameworks/cmsis.rst @@ -1,4 +1,4 @@ -.. Copyright 2014-2016 Ivan Kravets +.. Copyright 2014-present Ivan Kravets Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at diff --git a/docs/frameworks/energia.rst b/docs/frameworks/energia.rst index 7caf06e0..4f9a2594 100644 --- a/docs/frameworks/energia.rst +++ b/docs/frameworks/energia.rst @@ -1,4 +1,4 @@ -.. Copyright 2014-2016 Ivan Kravets +.. Copyright 2014-present Ivan Kravets Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at diff --git a/docs/frameworks/libopencm3.rst b/docs/frameworks/libopencm3.rst index 1f422e82..9822bc97 100644 --- a/docs/frameworks/libopencm3.rst +++ b/docs/frameworks/libopencm3.rst @@ -1,4 +1,4 @@ -.. Copyright 2014-2016 Ivan Kravets +.. Copyright 2014-present Ivan Kravets Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at diff --git a/docs/frameworks/mbed.rst b/docs/frameworks/mbed.rst index 9aa1575b..ca428b05 100644 --- a/docs/frameworks/mbed.rst +++ b/docs/frameworks/mbed.rst @@ -1,4 +1,4 @@ -.. Copyright 2014-2016 Ivan Kravets +.. Copyright 2014-present Ivan Kravets Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at diff --git a/docs/frameworks/simba.rst b/docs/frameworks/simba.rst index e2c12f20..699e38be 100644 --- a/docs/frameworks/simba.rst +++ b/docs/frameworks/simba.rst @@ -1,4 +1,4 @@ -.. Copyright 2014-2016 Ivan Kravets +.. Copyright 2014-present Ivan Kravets Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at diff --git a/docs/frameworks/spl.rst b/docs/frameworks/spl.rst index 03316962..54fbe5e5 100644 --- a/docs/frameworks/spl.rst +++ b/docs/frameworks/spl.rst @@ -1,4 +1,4 @@ -.. Copyright 2014-2016 Ivan Kravets +.. Copyright 2014-present Ivan Kravets Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at diff --git a/docs/frameworks/wiringpi.rst b/docs/frameworks/wiringpi.rst index 46f705f3..c973dbd8 100644 --- a/docs/frameworks/wiringpi.rst +++ b/docs/frameworks/wiringpi.rst @@ -1,4 +1,4 @@ -.. Copyright 2014-2016 Ivan Kravets +.. Copyright 2014-present Ivan Kravets Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at diff --git a/docs/index.rst b/docs/index.rst index be6c83e8..f839bbd8 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -1,4 +1,4 @@ -.. Copyright 2014-2016 Ivan Kravets +.. Copyright 2014-present Ivan Kravets Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at @@ -57,8 +57,7 @@ Embedded Development. *Easier Than Ever.* * Cloud compiling and :ref:`ci` with *AppVeyor, Circle CI, Drone, Shippable, Travis CI* * Built-in :ref:`Serial Port Monitor ` and configurable build :ref:`-flags/-options ` -* Pre-built toolchains, :ref:`frameworks` for the - :ref:`Development Platforms ` +* Pre-built toolchains, :ref:`frameworks` for the :ref:`platforms` Smart Build System. *Fast and Reliable.* ---------------------------------------- @@ -108,8 +107,11 @@ Contents :caption: Instruments :maxdepth: 3 - Platforms & Boards + platforms/index + platforms/embedded_boards frameworks/index + platforms/creating_platform + platforms/creating_board .. toctree:: :caption: Library Manager diff --git a/docs/platforms/atmelavr.rst b/docs/platforms/atmelavr.rst index 3731e747..30f5aa76 100644 --- a/docs/platforms/atmelavr.rst +++ b/docs/platforms/atmelavr.rst @@ -1,4 +1,4 @@ -.. Copyright 2014-2016 Ivan Kravets +.. Copyright 2014-present Ivan Kravets Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at diff --git a/docs/platforms/atmelsam.rst b/docs/platforms/atmelsam.rst index 9e232616..3ff2a173 100644 --- a/docs/platforms/atmelsam.rst +++ b/docs/platforms/atmelsam.rst @@ -1,4 +1,4 @@ -.. Copyright 2014-2016 Ivan Kravets +.. Copyright 2014-present Ivan Kravets Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at diff --git a/docs/platforms/creating_board.rst b/docs/platforms/creating_board.rst index 60c6e2e5..c55b1649 100644 --- a/docs/platforms/creating_board.rst +++ b/docs/platforms/creating_board.rst @@ -1,4 +1,4 @@ -.. Copyright 2014-2016 Ivan Kravets +.. Copyright 2014-present Ivan Kravets Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at @@ -33,10 +33,9 @@ JSON Structure The key fields: -* ``build`` data will be used by :ref:`Platforms ` and - :ref:`frameworks` builders +* ``build`` data will be used by :ref:`platforms` and :ref:`frameworks` builders * ``frameworks`` is the list with supported :ref:`frameworks` -* ``platform`` main type of :ref:`Platforms ` +* ``platform`` main type of :ref:`platforms` * ``upload`` upload settings which depend on the ``platform`` .. code-block:: json diff --git a/docs/platforms/creating_platform.rst b/docs/platforms/creating_platform.rst index 1b606a40..d4e6d96a 100644 --- a/docs/platforms/creating_platform.rst +++ b/docs/platforms/creating_platform.rst @@ -1,4 +1,4 @@ -.. Copyright 2014-2016 Ivan Kravets +.. Copyright 2014-present Ivan Kravets Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at @@ -27,7 +27,7 @@ different/own build scripts, uploader and etc. .. note:: If you want to change some build flags for the existing - :ref:`Platforms `, you don't need to create (or duplicate) own + :ref:`platforms`, you don't need to create (or duplicate) own development platforms! Please use :ref:`projectconf_build_flags` option. **Step-by-Step Manual** diff --git a/docs/platforms/embedded_boards.rst b/docs/platforms/embedded_boards.rst new file mode 100644 index 00000000..440ddb8c --- /dev/null +++ b/docs/platforms/embedded_boards.rst @@ -0,0 +1,2670 @@ +.. Copyright 2014-present Ivan Kravets + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + http://www.apache.org/licenses/LICENSE-2.0 + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +.. _embedded_boards: + +Embedded Boards +=============== + +Rapid Embedded Development, Continuous and IDE integration in a few +steps with PlatformIO thanks to built-in project generator for the most +popular embedded boards and IDE. + +* You can list pre-configured boards using :ref:`cmd_boards` command or + `PlatformIO Boards Explorer `_ +* For more detailed ``board`` information please scroll tables below by + horizontal. + +.. contents:: + +4DSystems +~~~~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``picadillo_35t`` + - `4DSystems PICadillo 35T `_ + - 32MX795F512L + - 80 MHz + - 512 Kb + - 128 Kb + +96Boards +~~~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``b96b_f446ve`` + - `96Boards B96B-F446VE `_ + - STM32F446VET6 + - 168 MHz + - 512 Kb + - 128 Kb + +Adafruit +~~~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``bluefruitmicro`` + - `Adafruit Bluefruit Micro `_ + - ATMEGA32U4 + - 8 MHz + - 32 Kb + - 2.5 Kb + + * - ``feather32u4`` + - `Adafruit Feather `_ + - ATMEGA32U4 + - 8 MHz + - 32 Kb + - 2.5 Kb + + * - ``flora8`` + - `Adafruit Flora `_ + - ATMEGA32U4 + - 8 MHz + - 32 Kb + - 2.5 Kb + + * - ``gemma`` + - `Adafruit Gemma `_ + - ATTINY85 + - 8 MHz + - 8 Kb + - 0.5 Kb + + * - ``huzzah`` + - `Adafruit HUZZAH ESP8266 `_ + - ESP8266 + - 80 MHz + - 4096 Kb + - 80 Kb + + * - ``metro`` + - `Adafruit Metro `_ + - ATMEGA328P + - 16 MHz + - 32 Kb + - 2 Kb + + * - ``protrinket3`` + - `Adafruit Pro Trinket 3V/12MHz (USB) `_ + - ATMEGA328P + - 12 MHz + - 32 Kb + - 2 Kb + + * - ``protrinket3ftdi`` + - `Adafruit Pro Trinket 3V/12MHz (FTDI) `_ + - ATMEGA328P + - 16 MHz + - 32 Kb + - 2 Kb + + * - ``protrinket5`` + - `Adafruit Pro Trinket 5V/16MHz (USB) `_ + - ATMEGA328P + - 16 MHz + - 32 Kb + - 2 Kb + + * - ``protrinket5ftdi`` + - `Adafruit Pro Trinket 5V/16MHz (USB) `_ + - ATMEGA328P + - 16 MHz + - 32 Kb + - 2 Kb + + * - ``trinket3`` + - `Adafruit Trinket 3V/8MHz `_ + - ATTINY85 + - 8 MHz + - 8 Kb + - 0.5 Kb + + * - ``trinket5`` + - `Adafruit Trinket 5V/16MHz `_ + - ATTINY85 + - 16 MHz + - 8 Kb + - 0.5 Kb + +Arduino +~~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``LilyPadUSB`` + - `Arduino LilyPad USB `_ + - ATMEGA32U4 + - 8 MHz + - 32 Kb + - 2.5 Kb + + * - ``atmegangatmega168`` + - `Arduino NG or older ATmega168 `_ + - ATMEGA168 + - 16 MHz + - 16 Kb + - 1 Kb + + * - ``atmegangatmega8`` + - `Arduino NG or older ATmega8 `_ + - ATMEGA8 + - 16 MHz + - 8 Kb + - 1 Kb + + * - ``btatmega168`` + - `Arduino BT ATmega168 `_ + - ATMEGA168 + - 16 MHz + - 16 Kb + - 1 Kb + + * - ``btatmega328`` + - `Arduino BT ATmega328 `_ + - ATMEGA328P + - 16 MHz + - 32 Kb + - 2 Kb + + * - ``chiwawa`` + - `Arduino Industrial 101 `_ + - ATMEGA32U4 + - 16 MHz + - 32 Kb + - 2.5 Kb + + * - ``diecimilaatmega168`` + - `Arduino Duemilanove or Diecimila ATmega168 `_ + - ATMEGA168 + - 16 MHz + - 16 Kb + - 1 Kb + + * - ``diecimilaatmega328`` + - `Arduino Duemilanove or Diecimila ATmega328 `_ + - ATMEGA328P + - 16 MHz + - 32 Kb + - 2 Kb + + * - ``due`` + - `Arduino Due (Programming Port) `_ + - SAM3X8E + - 84 MHz + - 512 Kb + - 32 Kb + + * - ``dueUSB`` + - `Arduino Due (USB Native Port) `_ + - SAM3X8E + - 84 MHz + - 512 Kb + - 32 Kb + + * - ``esplora`` + - `Arduino Esplora `_ + - ATMEGA32U4 + - 16 MHz + - 32 Kb + - 2.5 Kb + + * - ``ethernet`` + - `Arduino Ethernet `_ + - ATMEGA328P + - 16 MHz + - 32 Kb + - 2 Kb + + * - ``fio`` + - `Arduino Fio `_ + - ATMEGA328P + - 8 MHz + - 32 Kb + - 2 Kb + + * - ``leonardo`` + - `Arduino Leonardo `_ + - ATMEGA32U4 + - 16 MHz + - 32 Kb + - 2.5 Kb + + * - ``leonardoeth`` + - `Arduino Leonardo ETH `_ + - ATMEGA32U4 + - 16 MHz + - 32 Kb + - 2.5 Kb + + * - ``lilypadatmega168`` + - `Arduino LilyPad ATmega168 `_ + - ATMEGA168 + - 8 MHz + - 16 Kb + - 1 Kb + + * - ``lilypadatmega328`` + - `Arduino LilyPad ATmega328 `_ + - ATMEGA328P + - 8 MHz + - 32 Kb + - 2 Kb + + * - ``megaADK`` + - `Arduino Mega ADK `_ + - ATMEGA2560 + - 16 MHz + - 256 Kb + - 8 Kb + + * - ``megaatmega1280`` + - `Arduino Mega or Mega 2560 ATmega1280 `_ + - ATMEGA1280 + - 16 MHz + - 128 Kb + - 8 Kb + + * - ``megaatmega2560`` + - `Arduino Mega or Mega 2560 ATmega2560 (Mega 2560) `_ + - ATMEGA2560 + - 16 MHz + - 256 Kb + - 8 Kb + + * - ``micro`` + - `Arduino Micro `_ + - ATMEGA32U4 + - 16 MHz + - 32 Kb + - 2.5 Kb + + * - ``miniatmega168`` + - `Arduino Mini ATmega168 `_ + - ATMEGA168 + - 16 MHz + - 16 Kb + - 1 Kb + + * - ``miniatmega328`` + - `Arduino Mini ATmega328 `_ + - ATMEGA328P + - 16 MHz + - 32 Kb + - 2 Kb + + * - ``nanoatmega168`` + - `Arduino Nano ATmega168 `_ + - ATMEGA168 + - 16 MHz + - 16 Kb + - 1 Kb + + * - ``nanoatmega328`` + - `Arduino Nano ATmega328 `_ + - ATMEGA328P + - 16 MHz + - 32 Kb + - 2 Kb + + * - ``pro16MHzatmega168`` + - `Arduino Pro or Pro Mini ATmega168 (5V, 16 MHz) `_ + - ATMEGA168 + - 16 MHz + - 16 Kb + - 1 Kb + + * - ``pro16MHzatmega328`` + - `Arduino Pro or Pro Mini ATmega328 (5V, 16 MHz) `_ + - ATMEGA328P + - 16 MHz + - 32 Kb + - 2 Kb + + * - ``pro8MHzatmega168`` + - `Arduino Pro or Pro Mini ATmega168 (3.3V, 8 MHz) `_ + - ATMEGA168 + - 8 MHz + - 16 Kb + - 1 Kb + + * - ``pro8MHzatmega328`` + - `Arduino Pro or Pro Mini ATmega328 (3.3V, 8 MHz) `_ + - ATMEGA328P + - 8 MHz + - 32 Kb + - 2 Kb + + * - ``robotControl`` + - `Arduino Robot Control `_ + - ATMEGA32U4 + - 16 MHz + - 32 Kb + - 2.5 Kb + + * - ``robotMotor`` + - `Arduino Robot Motor `_ + - ATMEGA32U4 + - 16 MHz + - 32 Kb + - 2.5 Kb + + * - ``uno`` + - `Arduino Uno `_ + - ATMEGA328P + - 16 MHz + - 32 Kb + - 2 Kb + + * - ``yun`` + - `Arduino Yun `_ + - ATMEGA32U4 + - 16 MHz + - 32 Kb + - 2.5 Kb + + * - ``yunmini`` + - `Arduino Yun Mini `_ + - ATMEGA32U4 + - 16 MHz + - 32 Kb + - 2.5 Kb + + * - ``zero`` + - `Arduino Zero (Programming Port) `_ + - SAMD21G18A + - 48 MHz + - 256 Kb + - 32 Kb + + * - ``zeroUSB`` + - `Arduino Zero (USB Native Port) `_ + - SAMD21G18A + - 48 MHz + - 256 Kb + - 32 Kb + +Armstrap +~~~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``armstrap_eagle1024`` + - `Armstrap Eagle 1024 `_ + - STM32F417VGT6 + - 168 MHz + - 1024 Kb + - 192 Kb + + * - ``armstrap_eagle2048`` + - `Armstrap Eagle 2048 `_ + - STM32F427VIT6 + - 168 MHz + - 2048 Kb + - 256 Kb + + * - ``armstrap_eagle512`` + - `Armstrap Eagle 512 `_ + - STM32F407VET6 + - 168 MHz + - 512 Kb + - 192 Kb + +Atmel +~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``samd21_xpro`` + - `Atmel SAMD21-XPRO `_ + - ATSAMD21J18A + - 48 MHz + - 256 Kb + - 32 Kb + + * - ``saml21_xpro_b`` + - `Atmel SAML21-XPRO-B `_ + - ATSAML21J18B + - 48 MHz + - 256 Kb + - 32 Kb + + * - ``samr21_xpro`` + - `Atmel ATSAMR21-XPRO `_ + - ATSAMR21G18A + - 48 MHz + - 256 Kb + - 32 Kb + +BBC +~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``bbcmicrobit`` + - `BBC micro:bit `_ + - NRF51822 + - 16 MHz + - 256 Kb + - 16 Kb + +BQ +~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``icezum`` + - `BQ IceZUM Alhambra FPGA `_ + - ICE40HX1K + - 12 MHz + - 32 Kb + - 32 Kb + + * - ``zumbt328`` + - `BQ ZUM BT-328 `_ + - ATMEGA328P + - 16 MHz + - 32 Kb + - 2 Kb + +BitWizard +~~~~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``raspduino`` + - `BitWizard Raspduino `_ + - ATMEGA328P + - 16 MHz + - 32 Kb + - 2 Kb + +CQ Publishing +~~~~~~~~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``lpc11u35_501`` + - `CQ Publishing TG-LPC11U35-501 `_ + - LPC11U35 + - 48 MHz + - 64 Kb + - 10 Kb + +Delta +~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``dfcm_nnn40`` + - `Delta DFCM-NNN40 `_ + - NRF51822 + - 32 MHz + - 256 Kb + - 32 Kb + +Digilent +~~~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``cerebot32mx4`` + - `Digilent Cerebot 32MX4 `_ + - 32MX460F512L + - 80 MHz + - 512 Kb + - 32 Kb + + * - ``cerebot32mx7`` + - `Digilent Cerebot 32MX7 `_ + - 32MX795F512L + - 80 MHz + - 512 Kb + - 128 Kb + + * - ``chipkit_cmod`` + - `Digilent chipKIT Cmod `_ + - 32MX150F128D + - 40 MHz + - 128 Kb + - 32 Kb + + * - ``chipkit_dp32`` + - `Digilent chipKIT DP32 `_ + - 32MX250F128B + - 40 MHz + - 128 Kb + - 32 Kb + + * - ``chipkit_mx3`` + - `Digilent chipKIT MX3 `_ + - 32MX320F128H + - 80 MHz + - 128 Kb + - 16 Kb + + * - ``chipkit_pro_mx4`` + - `Digilent chipKIT Pro MX4 `_ + - 32MX460F512L + - 80 MHz + - 512 Kb + - 32 Kb + + * - ``chipkit_pro_mx7`` + - `Digilent chipKIT Pro MX7 `_ + - 32MX795F512L + - 80 MHz + - 512 Kb + - 128 Kb + + * - ``chipkit_uc32`` + - `Digilent chipKIT uC32 `_ + - 32MX340F512H + - 80 MHz + - 512 Kb + - 32 Kb + + * - ``chipkit_wf32`` + - `Digilent chipKIT WF32 `_ + - 32MX695F512L + - 80 MHz + - 512 Kb + - 128 Kb + + * - ``chipkit_wifire`` + - `Digilent chipKIT WiFire `_ + - 32MZ2048ECG100 + - 200 MHz + - 2048 Kb + - 512 Kb + + * - ``mega_pic32`` + - `Digilent chipKIT MAX32 `_ + - 32MX795F512L + - 80 MHz + - 512 Kb + - 128 Kb + + * - ``openscope`` + - `Digilent OpenScope `_ + - 32MZ2048EFG124 + - 200 MHz + - 2048 Kb + - 512 Kb + + * - ``uno_pic32`` + - `Digilent chipKIT UNO32 `_ + - 32MX320F128H + - 80 MHz + - 128 Kb + - 16 Kb + +Digistump +~~~~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``digispark-pro`` + - `Digistump Digispark Pro (Default 16 MHz) `_ + - ATTINY167 + - 16 MHz + - 16 Kb + - 0.5 Kb + + * - ``digispark-pro32`` + - `Digistump Digispark Pro (16 MHz) (32 byte buffer) `_ + - ATTINY167 + - 16 MHz + - 16 Kb + - 0.5 Kb + + * - ``digispark-pro64`` + - `Digistump Digispark Pro (16 MHz) (64 byte buffer) `_ + - ATTINY167 + - 16 MHz + - 16 Kb + - 0.5 Kb + + * - ``digispark-tiny`` + - `Digistump Digispark (Default - 16 MHz) `_ + - ATTINY85 + - 16 MHz + - 8 Kb + - 0.5 Kb + + * - ``digix`` + - `Digistump DigiX `_ + - AT91SAM3X8E + - 84 MHz + - 512 Kb + - 28 Kb + +Doit +~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``espduino`` + - `ESPDuino (ESP-13 Module) `_ + - ESP8266 + - 80 MHz + - 4096 Kb + - 80 Kb + +ESPert +~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``espresso_lite_v1`` + - `ESPresso Lite 1.0 `_ + - ESP8266 + - 80 MHz + - 4096 Kb + - 80 Kb + + * - ``espresso_lite_v2`` + - `ESPresso Lite 2.0 `_ + - ESP8266 + - 80 MHz + - 4096 Kb + - 80 Kb + +ESPino +~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``espino`` + - `ESPino `_ + - ESP8266 + - 80 MHz + - 4096 Kb + - 80 Kb + +Embedded Artists +~~~~~~~~~~~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``lpc11u35`` + - `Embedded Artists LPC11U35 QuickStart Board `_ + - LPC11U35 + - 48 MHz + - 64 Kb + - 10 Kb + + * - ``lpc4088`` + - `Embedded Artists LPC4088 QuickStart Board `_ + - LPC4088 + - 120 MHz + - 512 Kb + - 96 Kb + + * - ``lpc4088_dm`` + - `Embedded Artists LPC4088 Display Module `_ + - LPC4088 + - 120 MHz + - 512 Kb + - 96 Kb + +Engduino +~~~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``engduinov1`` + - `Engduino 1 `_ + - ATMEGA32U4 + - 8 MHz + - 32 Kb + - 2.5 Kb + + * - ``engduinov2`` + - `Engduino 2 `_ + - ATMEGA32U4 + - 8 MHz + - 32 Kb + - 2.5 Kb + + * - ``engduinov3`` + - `Engduino 3 `_ + - ATMEGA32U4 + - 8 MHz + - 32 Kb + - 2.5 Kb + +Espressif +~~~~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``esp01`` + - `Espressif Generic ESP8266 ESP-01 512k `_ + - ESP8266 + - 80 MHz + - 512 Kb + - 80 Kb + + * - ``esp01_1m`` + - `Espressif Generic ESP8266 ESP-01 1M `_ + - ESP8266 + - 80 MHz + - 1024 Kb + - 80 Kb + + * - ``esp07`` + - `Espressif Generic ESP8266 ESP-07 `_ + - ESP8266 + - 80 MHz + - 4096 Kb + - 80 Kb + + * - ``esp12e`` + - `Espressif ESP8266 ESP-12E `_ + - ESP8266 + - 80 MHz + - 4096 Kb + - 80 Kb + + * - ``esp_wroom_02`` + - `ESP-WROOM-02 `_ + - ESP8266 + - 80 MHz + - 4096 Kb + - 50 Kb + +Freescale +~~~~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``IBMEthernetKit`` + - `Ethernet IoT Starter Kit `_ + - MK64FN1M0VLL12 + - 120 MHz + - 1024 Kb + - 256 Kb + + * - ``frdm_k20d50m`` + - `Freescale Kinetis FRDM-K20D50M `_ + - MK20DX128VLH5 + - 48 MHz + - 128 Kb + - 16 Kb + + * - ``frdm_k22f`` + - `Freescale Kinetis FRDM-K22F `_ + - MK22FN512VLH12 + - 120 MHz + - 512 Kb + - 128 Kb + + * - ``frdm_k64f`` + - `Freescale Kinetis FRDM-K64F `_ + - MK64FN1M0VLL12 + - 120 MHz + - 1024 Kb + - 256 Kb + + * - ``frdm_kl05z`` + - `Freescale Kinetis FRDM-KL05Z `_ + - MKL05Z32VFM4 + - 48 MHz + - 32 Kb + - 4 Kb + + * - ``frdm_kl25z`` + - `Freescale Kinetis FRDM-KL25Z `_ + - MKL25Z128VLK4 + - 48 MHz + - 128 Kb + - 16 Kb + + * - ``frdm_kl46z`` + - `Freescale Kinetis FRDM-KL46Z `_ + - MKL46Z256VLL4 + - 48 MHz + - 256 Kb + - 32 Kb + +Fubarino +~~~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``fubarino_mini`` + - `Fubarino Mini `_ + - 32MX250F128D + - 48 MHz + - 128 Kb + - 32 Kb + + * - ``fubarino_sd`` + - `Fubarino SD (1.5) `_ + - 32MX795F512H + - 80 MHz + - 512 Kb + - 128 Kb + +Generic ATTiny +~~~~~~~~~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``attiny13`` + - `Generic ATTiny13 `_ + - ATTINY13 + - 9 MHz + - 1 Kb + - 0.0625 Kb + + * - ``attiny24`` + - `Generic ATTiny24 `_ + - ATTINY24 + - 8 MHz + - 2 Kb + - 0.125 Kb + + * - ``attiny25`` + - `Generic ATTiny25 `_ + - ATTINY25 + - 8 MHz + - 2 Kb + - 0.125 Kb + + * - ``attiny44`` + - `Generic ATTiny44 `_ + - ATTINY44 + - 8 MHz + - 4 Kb + - 0.25 Kb + + * - ``attiny45`` + - `Generic ATTiny45 `_ + - ATTINY45 + - 8 MHz + - 4 Kb + - 0.25 Kb + + * - ``attiny84`` + - `Generic ATTiny84 `_ + - ATTINY84 + - 8 MHz + - 8 Kb + - 0.5 Kb + + * - ``attiny85`` + - `Generic ATTiny85 `_ + - ATTINY85 + - 8 MHz + - 8 Kb + - 0.5 Kb + +Intel +~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``genuino101`` + - `Arduino/Genuino 101 `_ + - ARCV2EM + - 32 MHz + - 192 Kb + - 80 Kb + +JKSoft +~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``wallBotBLE`` + - `JKSoft Wallbot BLE `_ + - NRF51822 + - 16 MHz + - 128 Kb + - 16 Kb + +Lattice +~~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``icestick`` + - `Lattice iCEstick FPGA Evaluation Kit `_ + - ICE40HX1K + - 12 MHz + - 32 Kb + - 32 Kb + +LightUp +~~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``lightup`` + - `LightUp `_ + - ATMEGA32U4 + - 8 MHz + - 32 Kb + - 2.5 Kb + +Linino +~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``one`` + - `Linino One `_ + - ATMEGA32U4 + - 16 MHz + - 32 Kb + - 2.5 Kb + +LowPowerLab +~~~~~~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``moteino`` + - `LowPowerLab Moteino `_ + - ATMEGA328P + - 16 MHz + - 32 Kb + - 2 Kb + + * - ``moteinomega`` + - `LowPowerLab MoteinoMEGA `_ + - ATMEGA1284P + - 16 MHz + - 128 Kb + - 16 Kb + +Mcudude +~~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``mightycore1284`` + - `MightyCore ATmega1284 `_ + - ATMEGA1284P + - 16 MHz + - 128 Kb + - 16 Kb + + * - ``mightycore16`` + - `MightyCore ATmega16 `_ + - ATMEGA16 + - 16 MHz + - 16 Kb + - 1 Kb + + * - ``mightycore164`` + - `MightyCore ATmega164 `_ + - ATMEGA164P + - 16 MHz + - 16 Kb + - 1 Kb + + * - ``mightycore32`` + - `MightyCore ATmega32 `_ + - ATMEGA32 + - 16 MHz + - 32 Kb + - 2 Kb + + * - ``mightycore324`` + - `MightyCore ATmega324 `_ + - ATMEGA324P + - 16 MHz + - 32 Kb + - 2 Kb + + * - ``mightycore644`` + - `MightyCore ATmega644 `_ + - ATMEGA644P + - 16 MHz + - 64 Kb + - 4 Kb + + * - ``mightycore8535`` + - `MightyCore ATmega8535 `_ + - ATMEGA16 + - 16 MHz + - 8 Kb + - 0.5 Kb + +Microduino +~~~~~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``1284p16m`` + - `Microduino Core+ (ATmega1284P@16M,5V) `_ + - ATMEGA1284P + - 16 MHz + - 128 Kb + - 16 Kb + + * - ``1284p8m`` + - `Microduino Core+ (ATmega1284P@8M,3.3V) `_ + - ATMEGA1284P + - 8 MHz + - 128 Kb + - 16 Kb + + * - ``168pa16m`` + - `Microduino Core (Atmega168PA@16M,5V) `_ + - ATMEGA168P + - 16 MHz + - 16 Kb + - 1 Kb + + * - ``168pa8m`` + - `Microduino Core (Atmega168PA@8M,3.3V) `_ + - ATMEGA168P + - 8 MHz + - 16 Kb + - 1 Kb + + * - ``328p16m`` + - `Microduino Core (Atmega328P@16M,5V) `_ + - ATMEGA328P + - 16 MHz + - 32 Kb + - 2 Kb + + * - ``328p8m`` + - `Microduino Core (Atmega328P@8M,3.3V) `_ + - ATMEGA328P + - 8 MHz + - 32 Kb + - 2 Kb + + * - ``32u416m`` + - `Microduino Core USB (ATmega32U4@16M,5V) `_ + - ATMEGA32U4 + - 16 MHz + - 32 Kb + - 2.5 Kb + + * - ``644pa16m`` + - `Microduino Core+ (Atmega644PA@16M,5V) `_ + - ATMEGA644P + - 16 MHz + - 64 Kb + - 4 Kb + + * - ``644pa8m`` + - `Microduino Core+ (Atmega644PA@8M,3.3V) `_ + - ATMEGA644P + - 8 MHz + - 64 Kb + - 4 Kb + +MultiTech +~~~~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``mts_mdot_f411re`` + - `MultiTech mDot F411 `_ + - STM32F411RET6 + - 100 MHz + - 512 Kb + - 128 Kb + +NGX Technologies +~~~~~~~~~~~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``blueboard_lpc11u24`` + - `NGX Technologies BlueBoard-LPC11U24 `_ + - LPC11U24 + - 48 MHz + - 32 Kb + - 8 Kb + +NXP +~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``lpc11u24`` + - `NXP mbed LPC11U24 `_ + - LPC11U24 + - 48 MHz + - 32 Kb + - 8 Kb + + * - ``lpc1549`` + - `NXP LPCXpresso1549 `_ + - LPC1549 + - 72 MHz + - 256 Kb + - 36 Kb + + * - ``lpc1768`` + - `NXP mbed LPC1768 `_ + - LPC1768 + - 96 MHz + - 512 Kb + - 64 Kb + +NodeMCU +~~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``nodemcu`` + - `NodeMCU 0.9 (ESP-12 Module) `_ + - ESP8266 + - 80 MHz + - 4096 Kb + - 80 Kb + + * - ``nodemcuv2`` + - `NodeMCU 1.0 (ESP-12E Module) `_ + - ESP8266 + - 80 MHz + - 4096 Kb + - 80 Kb + +Nordic +~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``nrf51_dk`` + - `Nordic nRF51-DK `_ + - NRF51822 + - 32 MHz + - 256 Kb + - 32 Kb + + * - ``nrf51_dongle`` + - `Nordic nRF51-Dongle `_ + - NRF51822 + - 32 MHz + - 256 Kb + - 32 Kb + + * - ``nrf51_mkit`` + - `Nordic nRF51822-mKIT `_ + - NRF51822 + - 16 MHz + - 128 Kb + - 16 Kb + +Olimex +~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``modwifi`` + - `Olimex MOD-WIFI-ESP8266(-DEV) `_ + - ESP8266 + - 80 MHz + - 2048 Kb + - 80 Kb + + * - ``pinguino32`` + - `Olimex PIC32-PINGUINO `_ + - 32MX440F256H + - 80 MHz + - 256 Kb + - 32 Kb + +OpenBCI +~~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``openbci`` + - `OpenBCI 32bit `_ + - 32MX250F128B + - 40 MHz + - 128 Kb + - 32 Kb + +Outrageous Circuits +~~~~~~~~~~~~~~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``mbuino`` + - `Outrageous Circuits mBuino `_ + - LPC11U24 + - 48 MHz + - 32 Kb + - 8 Kb + +PONTECH +~~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``quick240_usb`` + - `PONTECH quicK240 `_ + - 32MX795F512L + - 80 MHz + - 512 Kb + - 128 Kb + + * - ``usbono_pic32`` + - `PONTECH UAV100 `_ + - 32MX440F512H + - 80 MHz + - 512 Kb + - 32 Kb + +PanStamp +~~~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``panStampAVR`` + - `PanStamp AVR `_ + - ATMEGA328P + - 8 MHz + - 32 Kb + - 2 Kb + + * - ``panStampNRG`` + - `PanStamp NRG 1.1 `_ + - CC430F5137 + - 12 MHz + - 32 Kb + - 4 Kb + +Punch Through +~~~~~~~~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``lightblue-bean`` + - `LightBlue Bean `_ + - ATMEGA328P + - 8 MHz + - 32 Kb + - 2 Kb + +Quirkbot +~~~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``quirkbot`` + - `Quirkbot `_ + - ATMEGA32U4 + - 8 MHz + - 32 Kb + - 2.5 Kb + +RFduino +~~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``rfduino`` + - `RFduino `_ + - NRF51822 + - 16 MHz + - 128 Kb + - 8 Kb + +Raspberry Pi +~~~~~~~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``raspberrypi_1b`` + - `Raspberry Pi 1 Model B `_ + - BCM2835 + - 700 MHz + - 524288 Kb + - 524288 Kb + + * - ``raspberrypi_2b`` + - `Raspberry Pi 2 Model B `_ + - BCM2836 + - 900 MHz + - 1048576 Kb + - 1048576 Kb + + * - ``raspberrypi_zero`` + - `Raspberry Pi Zero `_ + - BCM2835 + - 1000 MHz + - 524288 Kb + - 524288 Kb + +RedBearLab +~~~~~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``blend`` + - `RedBearLab Blend `_ + - ATMEGA32U4 + - 16 MHz + - 32 Kb + - 2.5 Kb + + * - ``blendmicro16`` + - `RedBearLab Blend Micro 3.3V/16MHz (overclock) `_ + - ATMEGA32U4 + - 16 MHz + - 32 Kb + - 2.5 Kb + + * - ``blendmicro8`` + - `RedBearLab Blend Micro 3.3V/8MHz `_ + - ATMEGA32U4 + - 8 MHz + - 32 Kb + - 2.5 Kb + + * - ``redBearLab`` + - `RedBearLab nRF51822 `_ + - NRF51822 + - 16 MHz + - 256 Kb + - 16 Kb + + * - ``redBearLabBLENano`` + - `RedBearLab BLE Nano `_ + - NRF51822 + - 16 MHz + - 256 Kb + - 16 Kb + +RepRap +~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``reprap_rambo`` + - `RepRap RAMBo `_ + - ATMEGA2560 + - 16 MHz + - 256 Kb + - 8 Kb + +ST +~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``disco_f051r8`` + - `ST STM32F0DISCOVERY `_ + - STM32F051R8T6 + - 48 MHz + - 64 Kb + - 8 Kb + + * - ``disco_f100rb`` + - `ST STM32VLDISCOVERY `_ + - STM32F100RBT6 + - 24 MHz + - 128 Kb + - 8 Kb + + * - ``disco_f303vc`` + - `ST STM32F3DISCOVERY `_ + - STM32F303VCT6 + - 72 MHz + - 256 Kb + - 48 Kb + + * - ``disco_f334c8`` + - `ST 32F3348DISCOVERY `_ + - STM32F334C8T6 + - 72 MHz + - 64 Kb + - 12 Kb + + * - ``disco_f401vc`` + - `ST 32F401CDISCOVERY `_ + - STM32F401VCT6 + - 84 MHz + - 256 Kb + - 64 Kb + + * - ``disco_f407vg`` + - `ST STM32F4DISCOVERY `_ + - STM32F407VGT6 + - 168 MHz + - 1024 Kb + - 128 Kb + + * - ``disco_f429zi`` + - `ST 32F429IDISCOVERY `_ + - STM32F429ZIT6 + - 180 MHz + - 2048 Kb + - 256 Kb + + * - ``disco_f469ni`` + - `ST 32F469IDISCOVERY `_ + - STM32F469NIH6 + - 180 MHz + - 1024 Kb + - 384 Kb + + * - ``disco_l053c8`` + - `ST 32L0538DISCOVERY `_ + - STM32L053C8T6 + - 32 MHz + - 64 Kb + - 8 Kb + + * - ``disco_l152rb`` + - `ST STM32LDISCOVERY `_ + - STM32L152RBT6 + - 32 MHz + - 128 Kb + - 16 Kb + + * - ``disco_l476vg`` + - `ST 32L476GDISCOVERY `_ + - STM32L476VGT6 + - 80 MHz + - 1024 Kb + - 128 Kb + + * - ``nucleo_f030r8`` + - `ST Nucleo F030R8 `_ + - STM32F030R8T6 + - 48 MHz + - 64 Kb + - 8 Kb + + * - ``nucleo_f031k6`` + - `ST Nucleo F031K6 `_ + - STM32F031K6T6 + - 48 MHz + - 32 Kb + - 4 Kb + + * - ``nucleo_f042k6`` + - `ST Nucleo F042K6 `_ + - STM32F042K6T6 + - 48 MHz + - 32 Kb + - 6 Kb + + * - ``nucleo_f070rb`` + - `ST Nucleo F070RB `_ + - STM32F070RBT6 + - 48 MHz + - 128 Kb + - 16 Kb + + * - ``nucleo_f072rb`` + - `ST Nucleo F072RB `_ + - STM32F072RBT6 + - 48 MHz + - 128 Kb + - 16 Kb + + * - ``nucleo_f091rc`` + - `ST Nucleo F091RC `_ + - STM32F091RCT6 + - 48 MHz + - 256 Kb + - 32 Kb + + * - ``nucleo_f103rb`` + - `ST Nucleo F103RB `_ + - STM32F103RBT6 + - 72 MHz + - 128 Kb + - 20 Kb + + * - ``nucleo_f302r8`` + - `ST Nucleo F302R8 `_ + - STM32F302R8T6 + - 72 MHz + - 64 Kb + - 16 Kb + + * - ``nucleo_f303k8`` + - `ST Nucleo F303K8 `_ + - STM32F303K8T6 + - 72 MHz + - 64 Kb + - 16 Kb + + * - ``nucleo_f303re`` + - `ST Nucleo F303RE `_ + - STM32F303RET6 + - 72 MHz + - 512 Kb + - 64 Kb + + * - ``nucleo_f334r8`` + - `ST Nucleo F334R8 `_ + - STM32F334R8T6 + - 72 MHz + - 64 Kb + - 16 Kb + + * - ``nucleo_f401re`` + - `ST Nucleo F401RE `_ + - STM32F401RET6 + - 84 MHz + - 512 Kb + - 96 Kb + + * - ``nucleo_f410rb`` + - `ST Nucleo F410RB `_ + - STM32F410RBT6 + - 100 MHz + - 128 Kb + - 32 Kb + + * - ``nucleo_f411re`` + - `ST Nucleo F411RE `_ + - STM32F411RET6 + - 100 MHz + - 512 Kb + - 128 Kb + + * - ``nucleo_f446re`` + - `ST Nucleo F446RE `_ + - STM32F446RET6 + - 180 MHz + - 512 Kb + - 128 Kb + + * - ``nucleo_l053r8`` + - `ST Nucleo L053R8 `_ + - STM32L053R8T6 + - 48 MHz + - 64 Kb + - 8 Kb + + * - ``nucleo_l073rz`` + - `ST Nucleo L073RZ `_ + - STM32L073RZ + - 32 MHz + - 192 Kb + - 20 Kb + + * - ``nucleo_l152re`` + - `ST Nucleo L152RE `_ + - STM32L152RET6 + - 32 MHz + - 512 Kb + - 80 Kb + + * - ``nucleo_l476rg`` + - `ST Nucleo L476RG `_ + - STM32L476RGT6 + - 80 MHz + - 1024 Kb + - 128 Kb + +SainSmart +~~~~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``sainSmartDue`` + - `SainSmart Due (Programming Port) `_ + - AT91SAM3X8E + - 84 MHz + - 512 Kb + - 32 Kb + + * - ``sainSmartDueUSB`` + - `SainSmart Due (USB Native Port) `_ + - AT91SAM3X8E + - 84 MHz + - 512 Kb + - 32 Kb + +Sanguino +~~~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``sanguino_atmega1284_8m`` + - `Sanguino ATmega1284p (8MHz) `_ + - ATMEGA1284P + - 8 MHz + - 128 Kb + - 16 Kb + + * - ``sanguino_atmega1284p`` + - `Sanguino ATmega1284p (16MHz) `_ + - ATMEGA1284P + - 16 MHz + - 128 Kb + - 16 Kb + + * - ``sanguino_atmega644`` + - `Sanguino ATmega644 or ATmega644A (16 MHz) `_ + - ATMEGA644 + - 16 MHz + - 64 Kb + - 4 Kb + + * - ``sanguino_atmega644_8m`` + - `Sanguino ATmega644 or ATmega644A (8 MHz) `_ + - ATMEGA644 + - 8 MHz + - 64 Kb + - 4 Kb + + * - ``sanguino_atmega644p`` + - `Sanguino ATmega644P or ATmega644PA (16 MHz) `_ + - ATMEGA644P + - 16 MHz + - 64 Kb + - 4 Kb + + * - ``sanguino_atmega644p_8m`` + - `Sanguino ATmega644P or ATmega644PA (8 MHz) `_ + - ATMEGA644P + - 8 MHz + - 64 Kb + - 4 Kb + +SeeedStudio +~~~~~~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``cui32stem`` + - `SeeedStudio CUI32stem `_ + - 32MX795F512H + - 80 MHz + - 512 Kb + - 128 Kb + + * - ``seeedArchMax`` + - `SeeedStudio Arch Max `_ + - STM32F407VET6 + - 168 MHz + - 512 Kb + - 192 Kb + + * - ``seeedTinyBLE`` + - `SeeedStudio Seeed Tiny BLE `_ + - NRF51822 + - 16 MHz + - 256 Kb + - 16 Kb + + * - ``seeeduinoArchPro`` + - `SeeedStudio Seeeduino-Arch-Pro `_ + - LPC1768 + - 96 MHz + - 512 Kb + - 64 Kb + +Silicon Labs +~~~~~~~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``efm32gg_stk3700`` + - `Silicon Labs EFM32GG-STK3700 (Giant Gecko) `_ + - EFM32GG990F1024 + - 48 MHz + - 1024 Kb + - 128 Kb + + * - ``efm32hg_stk3400`` + - `Silicon Labs SLSTK3400A USB-enabled (Happy Gecko) `_ + - EFM32HG322F64 + - 24 MHz + - 64 Kb + - 8 Kb + + * - ``efm32lg_stk3600`` + - `Silicon Labs EFM32LG-STK3600 (Leopard Gecko) `_ + - EFM32LG990F256 + - 48 MHz + - 256 Kb + - 32 Kb + + * - ``efm32pg_stk3401`` + - `Silicon Labs SLSTK3401A (Pearl Gecko) `_ + - EFM32PG1B200F256 + - 40 MHz + - 256 Kb + - 32 Kb + + * - ``efm32wg_stk3800`` + - `Silicon Labs EFM32WG-STK3800 (Wonder Gecko) `_ + - EFM32WG990F256 + - 48 MHz + - 256 Kb + - 32 Kb + + * - ``efm32zg_stk3200`` + - `Silicon Labs EFM32ZG-STK3200 (Zero Gecko) `_ + - EFM2ZG222F32 + - 24 MHz + - 32 Kb + - 4 Kb + +Solder Splash Labs +~~~~~~~~~~~~~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``dipcortexm0`` + - `Solder Splash Labs DipCortex M0 `_ + - LPC11U24 + - 50 MHz + - 32 Kb + - 8 Kb + +SparkFun +~~~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``sparkfun_digitalsandbox`` + - `SparkFun Digital Sandbox `_ + - ATMEGA328P + - 16 MHz + - 32 Kb + - 2 Kb + + * - ``sparkfun_fiov3`` + - `SparkFun Fio V3 3.3V/8MHz `_ + - ATMEGA32U4 + - 8 MHz + - 32 Kb + - 2.5 Kb + + * - ``sparkfun_makeymakey`` + - `SparkFun Makey Makey `_ + - ATMEGA32U4 + - 16 MHz + - 32 Kb + - 2.5 Kb + + * - ``sparkfun_megamini`` + - `SparkFun Mega Pro Mini 3.3V `_ + - ATMEGA2560 + - 8 MHz + - 256 Kb + - 8 Kb + + * - ``sparkfun_megapro16MHz`` + - `SparkFun Mega Pro 5V/16MHz `_ + - ATMEGA2560 + - 16 MHz + - 256 Kb + - 8 Kb + + * - ``sparkfun_megapro8MHz`` + - `SparkFun Mega Pro 3.3V/8MHz `_ + - ATMEGA2560 + - 8 MHz + - 256 Kb + - 8 Kb + + * - ``sparkfun_promicro16`` + - `SparkFun Pro Micro 5V/16MHz `_ + - ATMEGA32U4 + - 16 MHz + - 32 Kb + - 2.5 Kb + + * - ``sparkfun_promicro8`` + - `SparkFun Pro Micro 3.3V/8MHz `_ + - ATMEGA32U4 + - 8 MHz + - 32 Kb + - 2.5 Kb + + * - ``sparkfun_redboard`` + - `SparkFun RedBoard `_ + - ATMEGA328P + - 16 MHz + - 32 Kb + - 2 Kb + + * - ``thing`` + - `SparkFun ESP8266 Thing `_ + - ESP8266 + - 80 MHz + - 512 Kb + - 80 Kb + + * - ``thingdev`` + - `SparkFun ESP8266 Thing Dev `_ + - ESP8266 + - 80 MHz + - 512 Kb + - 80 Kb + + * - ``uview`` + - `SparkFun MicroView `_ + - ATMEGA328P + - 16 MHz + - 32 Kb + - 2 Kb + +SweetPea +~~~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``esp210`` + - `SweetPea ESP-210 `_ + - ESP8266 + - 80 MHz + - 4096 Kb + - 80 Kb + +Switch Science +~~~~~~~~~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``hrm1017`` + - `Switch Science mbed HRM1017 `_ + - NRF51822 + - 16 MHz + - 256 Kb + - 16 Kb + + * - ``lpc1114fn28`` + - `Switch Science mbed LPC1114FN28 `_ + - LPC1114FN28 + - 48 MHz + - 32 Kb + - 4 Kb + +TI +~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``lplm4f120h5qr`` + - `TI LaunchPad (Stellaris) w/ lm4f120 (80MHz) `_ + - LPLM4F120H5QR + - 80 MHz + - 256 Kb + - 32 Kb + + * - ``lpmsp430f5529`` + - `TI LaunchPad w/ msp430f5529 (16MHz) `_ + - MSP430F5529 + - 16 MHz + - 128 Kb + - 1 Kb + + * - ``lpmsp430f5529_25`` + - `TI LaunchPad w/ msp430f5529 (25MHz) `_ + - MSP430F5529 + - 25 MHz + - 128 Kb + - 1 Kb + + * - ``lpmsp430fr4133`` + - `TI LaunchPad w/ msp430fr4133 `_ + - MSP430FR4133 + - 16 MHz + - 16 Kb + - 2 Kb + + * - ``lpmsp430fr5739`` + - `TI FraunchPad w/ msp430fr5739 `_ + - MSP430FR5739 + - 16 MHz + - 16 Kb + - 1 Kb + + * - ``lpmsp430fr5969`` + - `TI LaunchPad w/ msp430fr5969 `_ + - MSP430FR5969 + - 8 MHz + - 64 Kb + - 1 Kb + + * - ``lpmsp430fr6989`` + - `TI LaunchPad w/ msp430fr6989 `_ + - MSP430FR6989 + - 16 MHz + - 128 Kb + - 2 Kb + + * - ``lpmsp430g2231`` + - `TI LaunchPad w/ msp430g2231 (1 MHz) `_ + - MSP430G2231 + - 1 MHz + - 2 Kb + - 0.125 Kb + + * - ``lpmsp430g2452`` + - `TI LaunchPad w/ msp430g2452 (16MHz) `_ + - MSP430G2452 + - 16 MHz + - 8 Kb + - 0.25 Kb + + * - ``lpmsp430g2553`` + - `TI LaunchPad w/ msp430g2553 (16MHz) `_ + - MSP430G2553 + - 16 MHz + - 16 Kb + - 0.5 Kb + + * - ``lptm4c1230c3pm`` + - `TI LaunchPad (Tiva C) w/ tm4c123 (80MHz) `_ + - LPTM4C1230C3PM + - 80 MHz + - 256 Kb + - 32 Kb + + * - ``lptm4c1294ncpdt`` + - `TI LaunchPad (Tiva C) w/ tm4c129 (120MHz) `_ + - LPTM4C1294NCPDT + - 120 MHz + - 1024 Kb + - 256 Kb + +Teensy +~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``teensy20`` + - `Teensy 2.0 `_ + - ATMEGA32U4 + - 16 MHz + - 32 Kb + - 2.5 Kb + + * - ``teensy20pp`` + - `Teensy++ 2.0 `_ + - AT90USB1286 + - 16 MHz + - 128 Kb + - 8 Kb + + * - ``teensy30`` + - `Teensy 3.0 `_ + - MK20DX128 + - 48 MHz + - 128 Kb + - 16 Kb + + * - ``teensy31`` + - `Teensy 3.1 / 3.2 `_ + - MK20DX256 + - 72 MHz + - 256 Kb + - 64 Kb + + * - ``teensylc`` + - `Teensy LC `_ + - MKL26Z64 + - 48 MHz + - 64 Kb + - 8 Kb + +ThaiEasyElec +~~~~~~~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``espinotee`` + - `ThaiEasyElec ESPino `_ + - ESP8266 + - 80 MHz + - 4096 Kb + - 80 Kb + +TinyCircuits +~~~~~~~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``tinyduino`` + - `TinyCircuits TinyDuino Processor Board `_ + - ATMEGA328P + - 8 MHz + - 32 Kb + - 2 Kb + + * - ``tinylily`` + - `TinyCircuits TinyLily Mini Processor `_ + - ATMEGA328P + - 8 MHz + - 32 Kb + - 2 Kb + +UBW32 +~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``ubw32_mx460`` + - `UBW32 MX460 `_ + - 32MX460F512L + - 80 MHz + - 512 Kb + - 32 Kb + + * - ``ubw32_mx795`` + - `UBW32 MX795 `_ + - 32MX795F512L + - 80 MHz + - 512 Kb + - 128 Kb + +WeMos +~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``d1`` + - `WeMos D1(Retired) `_ + - ESP8266 + - 80 MHz + - 4096 Kb + - 80 Kb + + * - ``d1_mini`` + - `WeMos D1 R2 & mini `_ + - ESP8266 + - 80 MHz + - 4096 Kb + - 80 Kb + +Wicked Device +~~~~~~~~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``wildfirev2`` + - `Wicked Device WildFire V2 `_ + - ATMEGA1284P + - 16 MHz + - 128 Kb + - 16 Kb + + * - ``wildfirev3`` + - `Wicked Device WildFire V3 `_ + - ATMEGA1284P + - 16 MHz + - 128 Kb + - 16 Kb + +element14 +~~~~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``chipkit_pi`` + - `Element14 chipKIT Pi `_ + - 32MX250F128B + - 40 MHz + - 128 Kb + - 32 Kb + +u-blox +~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``ubloxc027`` + - `u-blox C027 `_ + - LPC1768 + - 96 MHz + - 512 Kb + - 64 Kb + +ubIQio +~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``ardhat`` + - `ubIQio Ardhat `_ + - ATMEGA328P + - 16 MHz + - 32 Kb + - 2 Kb diff --git a/docs/platforms/espressif.rst b/docs/platforms/espressif.rst index d14329d3..f8333846 100644 --- a/docs/platforms/espressif.rst +++ b/docs/platforms/espressif.rst @@ -1,4 +1,4 @@ -.. Copyright 2014-2016 Ivan Kravets +.. Copyright 2014-present Ivan Kravets Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at diff --git a/docs/platforms/freescalekinetis.rst b/docs/platforms/freescalekinetis.rst index 0e26057c..13e60daf 100644 --- a/docs/platforms/freescalekinetis.rst +++ b/docs/platforms/freescalekinetis.rst @@ -1,4 +1,4 @@ -.. Copyright 2014-2016 Ivan Kravets +.. Copyright 2014-present Ivan Kravets Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at diff --git a/docs/platforms/index.rst b/docs/platforms/index.rst index 01b6df47..f7f68146 100644 --- a/docs/platforms/index.rst +++ b/docs/platforms/index.rst @@ -1,4 +1,4 @@ -.. Copyright 2014-2016 Ivan Kravets +.. Copyright 2014-present Ivan Kravets Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at @@ -11,8 +11,8 @@ .. _platforms: -Platforms & Embedded Boards -=========================== +Development Platforms +===================== *PlatformIO* has pre-built different development platforms for popular OS (*Mac OS X, Linux (+ARM) and Windows*). Each of them include compiler, @@ -54,12 +54,3 @@ Desktop linux_i686 linux_x86_64 windows_x86 - -Custom Platform & Board ------------------------ - -.. toctree:: - :maxdepth: 2 - - creating_platform - creating_board diff --git a/docs/platforms/intel_arc32.rst b/docs/platforms/intel_arc32.rst index 1ff6ea57..c4863e5c 100644 --- a/docs/platforms/intel_arc32.rst +++ b/docs/platforms/intel_arc32.rst @@ -1,4 +1,4 @@ -.. Copyright 2014-2016 Ivan Kravets +.. Copyright 2014-present Ivan Kravets Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at diff --git a/docs/platforms/lattice_ice40.rst b/docs/platforms/lattice_ice40.rst index b21d8bbd..4a836ed3 100644 --- a/docs/platforms/lattice_ice40.rst +++ b/docs/platforms/lattice_ice40.rst @@ -1,4 +1,4 @@ -.. Copyright 2014-2016 Ivan Kravets +.. Copyright 2014-present Ivan Kravets Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at diff --git a/docs/platforms/linux_arm.rst b/docs/platforms/linux_arm.rst index 821a60f6..56783765 100644 --- a/docs/platforms/linux_arm.rst +++ b/docs/platforms/linux_arm.rst @@ -1,4 +1,4 @@ -.. Copyright 2014-2016 Ivan Kravets +.. Copyright 2014-present Ivan Kravets Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at diff --git a/docs/platforms/linux_i686.rst b/docs/platforms/linux_i686.rst index eab273a7..583ad151 100644 --- a/docs/platforms/linux_i686.rst +++ b/docs/platforms/linux_i686.rst @@ -1,4 +1,4 @@ -.. Copyright 2014-2016 Ivan Kravets +.. Copyright 2014-present Ivan Kravets Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at diff --git a/docs/platforms/linux_x86_64.rst b/docs/platforms/linux_x86_64.rst index c368a17d..d770b2e8 100644 --- a/docs/platforms/linux_x86_64.rst +++ b/docs/platforms/linux_x86_64.rst @@ -1,4 +1,4 @@ -.. Copyright 2014-2016 Ivan Kravets +.. Copyright 2014-present Ivan Kravets Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at diff --git a/docs/platforms/microchippic32.rst b/docs/platforms/microchippic32.rst index 5e6a6bfe..7f38d2bb 100644 --- a/docs/platforms/microchippic32.rst +++ b/docs/platforms/microchippic32.rst @@ -1,4 +1,4 @@ -.. Copyright 2014-2016 Ivan Kravets +.. Copyright 2014-present Ivan Kravets Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at diff --git a/docs/platforms/native.rst b/docs/platforms/native.rst index 74d1afd5..68fd805b 100644 --- a/docs/platforms/native.rst +++ b/docs/platforms/native.rst @@ -1,4 +1,4 @@ -.. Copyright 2014-2016 Ivan Kravets +.. Copyright 2014-present Ivan Kravets Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at diff --git a/docs/platforms/nordicnrf51.rst b/docs/platforms/nordicnrf51.rst index fa5c307f..4c4d65fe 100644 --- a/docs/platforms/nordicnrf51.rst +++ b/docs/platforms/nordicnrf51.rst @@ -1,4 +1,4 @@ -.. Copyright 2014-2016 Ivan Kravets +.. Copyright 2014-present Ivan Kravets Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at diff --git a/docs/platforms/nxplpc.rst b/docs/platforms/nxplpc.rst index 129213df..2c94410f 100644 --- a/docs/platforms/nxplpc.rst +++ b/docs/platforms/nxplpc.rst @@ -1,4 +1,4 @@ -.. Copyright 2014-2016 Ivan Kravets +.. Copyright 2014-present Ivan Kravets Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at diff --git a/docs/platforms/siliconlabsefm32.rst b/docs/platforms/siliconlabsefm32.rst index d08cca92..c4829f08 100644 --- a/docs/platforms/siliconlabsefm32.rst +++ b/docs/platforms/siliconlabsefm32.rst @@ -1,4 +1,4 @@ -.. Copyright 2014-2016 Ivan Kravets +.. Copyright 2014-present Ivan Kravets Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at diff --git a/docs/platforms/ststm32.rst b/docs/platforms/ststm32.rst index 0f900362..789d0b6f 100644 --- a/docs/platforms/ststm32.rst +++ b/docs/platforms/ststm32.rst @@ -1,4 +1,4 @@ -.. Copyright 2014-2016 Ivan Kravets +.. Copyright 2014-present Ivan Kravets Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at diff --git a/docs/platforms/teensy.rst b/docs/platforms/teensy.rst index 487e8920..0edcbcd2 100644 --- a/docs/platforms/teensy.rst +++ b/docs/platforms/teensy.rst @@ -1,4 +1,4 @@ -.. Copyright 2014-2016 Ivan Kravets +.. Copyright 2014-present Ivan Kravets Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at diff --git a/docs/platforms/timsp430.rst b/docs/platforms/timsp430.rst index 8b444792..28b25393 100644 --- a/docs/platforms/timsp430.rst +++ b/docs/platforms/timsp430.rst @@ -1,4 +1,4 @@ -.. Copyright 2014-2016 Ivan Kravets +.. Copyright 2014-present Ivan Kravets Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at diff --git a/docs/platforms/titiva.rst b/docs/platforms/titiva.rst index eefbdbed..bf4d6288 100644 --- a/docs/platforms/titiva.rst +++ b/docs/platforms/titiva.rst @@ -1,4 +1,4 @@ -.. Copyright 2014-2016 Ivan Kravets +.. Copyright 2014-present Ivan Kravets Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at diff --git a/docs/platforms/windows_x86.rst b/docs/platforms/windows_x86.rst index 3836a807..6f904a0b 100644 --- a/docs/platforms/windows_x86.rst +++ b/docs/platforms/windows_x86.rst @@ -1,4 +1,4 @@ -.. Copyright 2014-2016 Ivan Kravets +.. Copyright 2014-present Ivan Kravets Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at diff --git a/docs/projectconf.rst b/docs/projectconf.rst index 6ca71ca4..5274ccb4 100644 --- a/docs/projectconf.rst +++ b/docs/projectconf.rst @@ -1,4 +1,4 @@ -.. Copyright 2014-2016 Ivan Kravets +.. Copyright 2014-present Ivan Kravets Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at @@ -194,7 +194,7 @@ General options ``platform`` ^^^^^^^^^^^^ -:ref:`Platform ` type. +:ref:`platforms` type. .. _projectconf_env_framework: diff --git a/docs/userguide/cmd_update.rst b/docs/userguide/cmd_update.rst index 22a65099..d429bb0d 100644 --- a/docs/userguide/cmd_update.rst +++ b/docs/userguide/cmd_update.rst @@ -1,4 +1,4 @@ -.. Copyright 2014-2016 Ivan Kravets +.. Copyright 2014-present Ivan Kravets Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at @@ -27,7 +27,7 @@ Usage Description ----------- -Check or update installed :ref:`Platforms ` and +Check or update installed :ref:`platforms` and :ref:`Libraries ` diff --git a/docs/userguide/platforms/cmd_install.rst b/docs/userguide/platforms/cmd_install.rst index fc36d9ed..03008881 100644 --- a/docs/userguide/platforms/cmd_install.rst +++ b/docs/userguide/platforms/cmd_install.rst @@ -1,4 +1,4 @@ -.. Copyright 2014-2016 Ivan Kravets +.. Copyright 2014-present Ivan Kravets Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at @@ -27,8 +27,7 @@ Usage Description ----------- -Install pre-built development :ref:`Platforms ` with related -packages. +Install pre-built development :ref:`platforms` with related packages. There are several predefined aliases for packages, such as: diff --git a/docs/userguide/platforms/cmd_list.rst b/docs/userguide/platforms/cmd_list.rst index b1b9bb2d..ebc72141 100644 --- a/docs/userguide/platforms/cmd_list.rst +++ b/docs/userguide/platforms/cmd_list.rst @@ -1,4 +1,4 @@ -.. Copyright 2014-2016 Ivan Kravets +.. Copyright 2014-present Ivan Kravets Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at @@ -27,7 +27,7 @@ Usage Description ----------- -List installed :ref:`Platforms ` +List installed :ref:`platforms` Options ~~~~~~~ diff --git a/docs/userguide/platforms/cmd_search.rst b/docs/userguide/platforms/cmd_search.rst index 1f372518..1bb7104d 100644 --- a/docs/userguide/platforms/cmd_search.rst +++ b/docs/userguide/platforms/cmd_search.rst @@ -1,4 +1,4 @@ -.. Copyright 2014-2016 Ivan Kravets +.. Copyright 2014-present Ivan Kravets Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at @@ -27,7 +27,7 @@ Usage Description ----------- -Search for development :ref:`Platforms ` +Search for development :ref:`platforms` Options ~~~~~~~ diff --git a/docs/userguide/platforms/cmd_show.rst b/docs/userguide/platforms/cmd_show.rst index 20f005b0..3f66d3d3 100644 --- a/docs/userguide/platforms/cmd_show.rst +++ b/docs/userguide/platforms/cmd_show.rst @@ -1,4 +1,4 @@ -.. Copyright 2014-2016 Ivan Kravets +.. Copyright 2014-present Ivan Kravets Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at @@ -27,7 +27,7 @@ Usage Description ----------- -Show details about the installed :ref:`Platforms ` +Show details about the installed :ref:`platforms` Examples diff --git a/docs/userguide/platforms/cmd_uninstall.rst b/docs/userguide/platforms/cmd_uninstall.rst index a9e5411a..0a4545a9 100644 --- a/docs/userguide/platforms/cmd_uninstall.rst +++ b/docs/userguide/platforms/cmd_uninstall.rst @@ -1,4 +1,4 @@ -.. Copyright 2014-2016 Ivan Kravets +.. Copyright 2014-present Ivan Kravets Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at @@ -27,7 +27,7 @@ Usage Description ----------- -Uninstall specified :ref:`Platforms ` +Uninstall specified :ref:`platforms` Examples diff --git a/docs/userguide/platforms/cmd_update.rst b/docs/userguide/platforms/cmd_update.rst index f8ba36c9..96e52d68 100644 --- a/docs/userguide/platforms/cmd_update.rst +++ b/docs/userguide/platforms/cmd_update.rst @@ -1,4 +1,4 @@ -.. Copyright 2014-2016 Ivan Kravets +.. Copyright 2014-present Ivan Kravets Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at @@ -27,7 +27,7 @@ Usage Description ----------- -Check or update installed :ref:`Platforms ` +Check or update installed :ref:`platforms` Examples diff --git a/scripts/docspregen.py b/scripts/docspregen.py index 023b9bcb..90fb3455 100644 --- a/scripts/docspregen.py +++ b/scripts/docspregen.py @@ -1,4 +1,4 @@ -# Copyright 2014-2016 Ivan Kravets +# Copyright 2014-present Ivan Kravets # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -35,7 +35,7 @@ def generate_boards(boards): def _round_memory_size(size): if size == 1: - return 1; + return 1 size = ceil(size) for b in (64, 32, 16, 8, 4, 2, 1): @@ -134,7 +134,7 @@ def generate_platform(name): print "Processing platform: %s" % name lines = [] - lines.append(""".. Copyright 2014-2016 Ivan Kravets + lines.append(""".. Copyright 2014-present Ivan Kravets Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at @@ -241,7 +241,7 @@ def generate_framework(type_, data): print "Processing framework: %s" % type_ lines = [] - lines.append(""".. Copyright 2014-2016 Ivan Kravets + lines.append(""".. Copyright 2014-present Ivan Kravets Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at @@ -364,10 +364,65 @@ Packages ) +def update_embedded_boards(): + lines = [] + + lines.append(""".. Copyright 2014-present Ivan Kravets + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + http://www.apache.org/licenses/LICENSE-2.0 + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +""") + + lines.append(".. _embedded_boards:") + lines.append("") + + lines.append("Embedded Boards") + lines.append("===============") + + lines.append(""" +Rapid Embedded Development, Continuous and IDE integration in a few +steps with PlatformIO thanks to built-in project generator for the most +popular embedded boards and IDE. + +* You can list pre-configured boards using :ref:`cmd_boards` command or + `PlatformIO Boards Explorer `_ +* For more detailed ``board`` information please scroll tables below by + horizontal. +""") + + lines.append(".. contents::") + lines.append("") + + vendors = {} + for board, data in util.get_boards().items(): + vendor = data['vendor'] + if vendor in vendors: + vendors[vendor].append({board: data}) + else: + vendors[vendor] = [{board: data}] + + for vendor, boards in sorted(vendors.iteritems()): + lines.append(str(vendor)) + lines.append("~" * len(vendor)) + lines.append(generate_boards(boards)) + + emboards_rst = join(dirname(realpath(__file__)), + "..", "docs", "platforms", "embedded_boards.rst") + with open(emboards_rst, "w") as f: + f.write("\n".join(lines)) + + def main(): update_create_platform_doc() update_platform_docs() update_framework_docs() + update_embedded_boards() if __name__ == "__main__": sys_exit(main()) From 38967eab646f63adda3eebbec619d9de0a8535d8 Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Thu, 2 Jun 2016 20:45:43 +0300 Subject: [PATCH 16/18] Fix issue with ARM mbed framework and multiple definition errors on FRDM-KL46Z board // Resolve #641 --- HISTORY.rst | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/HISTORY.rst b/HISTORY.rst index 34971927..af32b711 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -25,6 +25,10 @@ PlatformIO 2.0 * Fixed configuration data for TI LaunchPads based on msp430fr4133 and msp430fr6989 MCUs (`issue #676 `_) +* Fixed issue with ARM mbed framework and multiple definition errors + on FRDM-KL46Z board + (`issue #641 `_) + 2.9.1 (2016-04-30) ~~~~~~~~~~~~~~~~~~ From 0b80ed6c2bee21117cabddf97bded9d9eeff1ad0 Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Thu, 2 Jun 2016 20:47:09 +0300 Subject: [PATCH 17/18] Fix issue with ARM mbed framework when abstract class breaks compile for LPC1768 // Resolve #666 --- HISTORY.rst | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/HISTORY.rst b/HISTORY.rst index af32b711..68085ebe 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -28,7 +28,9 @@ PlatformIO 2.0 * Fixed issue with ARM mbed framework and multiple definition errors on FRDM-KL46Z board (`issue #641 `_) - +* Fixed issue with ARM mbed framework when abstract class breaks compile + for LPC1768 + (`issue #666 `_) 2.9.1 (2016-04-30) ~~~~~~~~~~~~~~~~~~ From 331cfb5b54ec344e10820e99cffb4ce084e2a604 Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Thu, 2 Jun 2016 20:56:52 +0300 Subject: [PATCH 18/18] Version bump to 2.9.2 (issues #641, #645, #648, #652, #664, #665, #666, #671, #674) --- HISTORY.rst | 2 +- platformio/__init__.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/HISTORY.rst b/HISTORY.rst index 68085ebe..5aa6b40d 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -4,7 +4,7 @@ Release Notes PlatformIO 2.0 -------------- -2.9.2 (2016-??-??) +2.9.2 (2016-06-02) ~~~~~~~~~~~~~~~~~~ * Simplified `Continuous Integration with AppVeyor `__ diff --git a/platformio/__init__.py b/platformio/__init__.py index d8d22716..e6127e13 100644 --- a/platformio/__init__.py +++ b/platformio/__init__.py @@ -14,7 +14,7 @@ import sys -VERSION = (2, 9, "2.dev0") +VERSION = (2, 9, 2) __version__ = ".".join([str(s) for s in VERSION]) __title__ = "platformio"