diff --git a/HISTORY.rst b/HISTORY.rst index ae4961ea..5aa6b40d 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -4,6 +4,34 @@ Release Notes PlatformIO 2.0 -------------- +2.9.2 (2016-06-02) +~~~~~~~~~~~~~~~~~~ + +* 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/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 `_) +* 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 `_) +* Fixed issue with ARM mbed framework when abstract class breaks compile + for LPC1768 + (`issue #666 `_) + 2.9.1 (2016-04-30) ~~~~~~~~~~~~~~~~~~ @@ -646,7 +674,7 @@ PlatformIO 1.0 (`issue #183 `_) * Added GDB as alternative uploader to `ststm32 `__ platform (`issue #175 `_) -* Added `examples `__ +* Added `examples `__ with preconfigured IDE projects (`issue #154 `_) * Fixed firmware uploading under Linux OS for Arduino Leonardo board diff --git a/README.rst b/README.rst index 2350c701..7976f9ac 100644 --- a/README.rst +++ b/README.rst @@ -16,11 +16,8 @@ PlatformIO .. image:: https://img.shields.io/pypi/l/platformio.svg :target: https://pypi.python.org/pypi/platformio/ :alt: License -.. image:: https://img.shields.io/pypi/dm/platformio.svg - :target: https://pypi.python.org/pypi/platformio/ - :alt: PyPi Downloads .. image:: https://img.shields.io/community/PlatformIO.png - :alt: Join the chat at https://gitter.im/platformio/platformio + :alt: Community Forums :target: https://community.platformio.org .. image:: https://img.shields.io/donate/PlatformIO.png?color=yellow :alt: Donate for PlatformIO.Org @@ -29,7 +26,7 @@ PlatformIO `Home `_ | `IDE `_ | -`Project Examples `_ | +`Project Examples `_ | `Docs `_ | `Twitter `_ | `Facebook `_ | @@ -62,9 +59,9 @@ IDE integration. Arduino and MBED compatible. Ready for Cloud compiling. platforms and frameworks; learn via examples; be up-to-date with the latest version. -*Atmel AVR & SAM, Espressif, Freescale Kinetis, Nordic nRF51, NXP LPC, -Silicon Labs EFM32, ST STM32, TI MSP430 & Tiva, Teensy, Arduino, mbed, -libOpenCM3, etc.* +*Atmel AVR & SAM, Espressif, Freescale Kinetis, Intel ARC32, Lattice iCE40, +Microchip PIC32, Nordic nRF51, NXP LPC, Silicon Labs EFM32, ST STM32, +TI MSP430 & Tiva, Teensy, Arduino, mbed, libOpenCM3, etc.* .. image:: https://raw.githubusercontent.com/platformio/platformio/develop/docs/_static/platformio-demo-wiring.gif :target: http://platformio.org @@ -161,6 +158,9 @@ It has support for the most popular embedded platforms: * `Atmel SAM `_ * `Espressif `_ * `Freescale Kinetis `_ +* `Intel ARC32 `_ +* `Lattice iCE40 `_ +* `Microchip PIC32 `_ * `Nordic nRF51 `_ * `NXP LPC `_ * `ST STM32 `_ diff --git a/appveyor.yml b/appveyor.yml index cd09e534..845307f6 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,27 +1,13 @@ build: off environment: - global: - WITH_COMPILER: "cmd /E:ON /V:ON /C .\\scripts\\appveyor\\run_with_compiler.cmd" + matrix: - TOXENV: "py27" - TOXPYTHON: "C:\\Python27-x64\\python.exe" - WINDOWS_SDK_VERSION: "v7.0" - PYTHON_HOME: "C:\\Python27-x64" - PYTHON_VERSION: "2.7" - PYTHON_ARCH: "64" - -init: - - "ECHO %TOXENV%" - - ps: "ls C:\\Python*" - + install: - - "git submodule update --init --recursive" - - "powershell scripts\\appveyor\\install.ps1" - -before_test: - - cmd: SET PATH=%PATH%;C:\MinGW\bin - + - cmd: git submodule update --init --recursive + - cmd: SET PATH=%PATH%;C:\Python27\Scripts;C:\MinGW\bin + - cmd: pip install tox + test_script: - - "%PYTHON_HOME%\\Scripts\\tox --version" - - "%PYTHON_HOME%\\Scripts\\pip --version" - - "%WITH_COMPILER% %PYTHON_HOME%\\Scripts\\tox" + - cmd: tox diff --git a/docs/_static/ide-eclipse-virtualiot.jpg b/docs/_static/ide-eclipse-virtualiot.jpg new file mode 100644 index 00000000..1c6ee0fa Binary files /dev/null and b/docs/_static/ide-eclipse-virtualiot.jpg differ diff --git a/docs/articles.rst b/docs/articles.rst index 26b4cd40..e844b961 100644 --- a/docs/articles.rst +++ b/docs/articles.rst @@ -23,10 +23,22 @@ 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 (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 `_ +* 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 `_ * Apr 16, 2016 - **Sathittham Sangthong** - `[PlatformIO] มาลองเล่น PlatformIO แทน Arduino IDE กัน (Let's play together with PlatformIO IDE [alternative to Arduino IDE], Thai) `_ +* Apr 15, 2016 - **Daniel Eichhorn** - `ESP8266: Offline Debugging with the Platformio Environment `_ * Apr 11, 2016 - **Matjaz Trcek** - `Top 5 Arduino integrated development environments `_ * Apr 06, 2016 - **Aleks** - `PlatformIO ausprobiert (Tried PlatformIO, German) `_ +* Apr 02, 2016 - **Diego Pinto** - `Você tem coragem de abandonar a IDE do Arduino? PlatformIO + Atom (Do you dare to leave the Arduino IDE? PlatformIO + Atom, Portuguese) `_ * Mar 30, 2016 - **Brandon Cannaday** - `Getting Started with PlatformIO and ESP8266 NodeMcu `_ * Mar 29, 2016 - **Pablo Peñalve** - `PlatformIO + Geany + Raspberry PI, Spanish `_ * Mar 24, 2016 - **NAzT** - `PlatformIO และการปรับแต่ง เพื่อใช้สำหรับพัฒนา Arduino Library (PlatformIO and advanced development for Arduino Library, Thai) `_ diff --git a/docs/ci/appveyor.rst b/docs/ci/appveyor.rst index b79c690f..2fc919dd 100644 --- a/docs/ci/appveyor.rst +++ b/docs/ci/appveyor.rst @@ -44,142 +44,20 @@ Put ``appveyor.yml`` to the root directory of the GitHub repository. build: off environment: - global: - WITH_COMPILER: "cmd /E:ON /V:ON /C .\\scripts\\appveyor\\run_with_compiler.cmd" - matrix: - - PLATFORMIO_CI_SRC: "path\\to\\source\\file.c" - PLATFORMIO_CI_SRC: "path\\to\\source\\file.ino" - PLATFORMIO_CI_SRC: "path\\to\\source\\directory" - WINDOWS_SDK_VERSION: "v7.0" - PYTHON_HOME: "C:\\Python27-x64" - PYTHON_VERSION: "2.7" - PYTHON_ARCH: "64" - install: - - "git submodule update --init --recursive" - - "powershell scripts\\appveyor\\install.ps1" - before_test: - - cmd: SET PATH=%PATH%;%PYTHON_HOME%;%PYTHON_HOME%\Scripts - test_script: - - '%WITH_COMPILER% %PYTHON_HOME%\\Scripts\\platformio ci --board=TYPE_1 --board=TYPE_2 --board=TYPE_N' + matrix: + - PLATFORMIO_CI_SRC: "path\\to\\source\\file.c" + - PLATFORMIO_CI_SRC: "path\\to\\source\\file.ino" + - PLATFORMIO_CI_SRC: "path\\to\\source\\directory" -Then create ``scripts/appveyor`` folder and put these 2 scripts (they are the -same for the all projects, don't need to modify them): + install: + - cmd: git submodule update --init --recursive + - cmd: SET PATH=%PATH%;C:\Python27\Scripts + - cmd: pip install -U platformio -1. ``scripts/appveyor/install.ps1``: + test_script: + - cmd: platformio ci --board=TYPE_1 --board=TYPE_2 --board=TYPE_N -.. code-block:: PowerShell - - $BASE_URL = "https://www.python.org/ftp/python/" - $GET_PIP_URL = "https://bootstrap.pypa.io/get-pip.py" - $GET_PIP_PATH = "C:\get-pip.py" - - - function DownloadPython ($python_version, $platform_suffix) { - $webclient = New-Object System.Net.WebClient - $filename = "python-" + $python_version + $platform_suffix + ".msi" - $url = $BASE_URL + $python_version + "/" + $filename - - $basedir = $pwd.Path + "\" - $filepath = $basedir + $filename - if (Test-Path $filename) { - Write-Host "Reusing" $filepath - return $filepath - } - - # Download and retry up to 5 times in case of network transient errors. - Write-Host "Downloading" $filename "from" $url - $retry_attempts = 3 - for($i=0; $i -lt $retry_attempts; $i++){ - try { - $webclient.DownloadFile($url, $filepath) - break - } - Catch [Exception]{ - Start-Sleep 1 - } - } - Write-Host "File saved at" $filepath - return $filepath - } - - - function InstallPython ($python_version, $architecture, $python_home) { - Write-Host "Installing Python" $python_version "for" $architecture "bit architecture to" $python_home - if (Test-Path $python_home) { - Write-Host $python_home "already exists, skipping." - return $false - } - if ($architecture -eq "32") { - $platform_suffix = "" - } else { - $platform_suffix = ".amd64" - } - $filepath = DownloadPython $python_version $platform_suffix - Write-Host "Installing" $filepath "to" $python_home - $args = "/qn /i $filepath TARGETDIR=$python_home" - Write-Host "msiexec.exe" $args - Start-Process -FilePath "msiexec.exe" -ArgumentList $args -Wait -Passthru - Write-Host "Python $python_version ($architecture) installation complete" - return $true - } - - - function InstallPip ($python_home) { - $python_path = $python_home + "/python.exe" - Write-Host "Installing pip..." - $webclient = New-Object System.Net.WebClient - $webclient.DownloadFile($GET_PIP_URL, $GET_PIP_PATH) - Write-Host "Executing:" $python_path $GET_PIP_PATH - Start-Process -FilePath "$python_path" -ArgumentList "$GET_PIP_PATH" -Wait -Passthru - } - - function InstallPackage ($python_home, $pkg) { - $pip_path = $python_home + "/Scripts/pip.exe" - & $pip_path install -U $pkg - } - - function main () { - InstallPython $env:PYTHON_VERSION $env:PYTHON_ARCH $env:PYTHON_HOME - InstallPip $env:PYTHON_HOME - InstallPackage $env:PYTHON_HOME setuptools - InstallPackage $env:PYTHON_HOME platformio - } - - main - -2. ``scripts/appveyor/run_with_compiler.cmd``: - -.. code-block:: guess - - @ECHO OFF - - SET COMMAND_TO_RUN=%* - SET WIN_SDK_ROOT=C:\Program Files\Microsoft SDKs\Windows - - SET MAJOR_PYTHON_VERSION="%PYTHON_VERSION:~0,1%" - IF %MAJOR_PYTHON_VERSION% == "2" ( - SET WINDOWS_SDK_VERSION="v7.0" - ) ELSE IF %MAJOR_PYTHON_VERSION% == "3" ( - SET WINDOWS_SDK_VERSION="v7.1" - ) ELSE ( - ECHO Unsupported Python version: "%MAJOR_PYTHON_VERSION%" - EXIT 1 - ) - - IF "%PYTHON_ARCH%"=="64" ( - ECHO Configuring Windows SDK %WINDOWS_SDK_VERSION% for Python %MAJOR_PYTHON_VERSION% on a 64 bit architecture - SET DISTUTILS_USE_SDK=1 - SET MSSdk=1 - "%WIN_SDK_ROOT%\%WINDOWS_SDK_VERSION%\Setup\WindowsSdkVer.exe" -q -version:%WINDOWS_SDK_VERSION% - "%WIN_SDK_ROOT%\%WINDOWS_SDK_VERSION%\Bin\SetEnv.cmd" /x64 /release - ECHO Executing: %COMMAND_TO_RUN% - call %COMMAND_TO_RUN% || EXIT 1 - ) ELSE ( - ECHO Using default MSVC build environment for 32 bit architecture - ECHO Executing: %COMMAND_TO_RUN% - call %COMMAND_TO_RUN% || EXIT 1 - ) For more details as for PlatformIO build process please look into :ref:`cmd_ci` command. @@ -194,20 +72,16 @@ Examples build: off environment: - global: - WITH_COMPILER: "cmd /E:ON /V:ON /C .\\scripts\\appveyor\\run_with_compiler.cmd" - matrix: - - PLATFORMIO_CI_SRC: "examples\\Bluetooth\\PS3SPP\\PS3SPP.ino" - PLATFORMIO_CI_SRC: "examples\\pl2303\\pl2303_gps\\pl2303_gps.ino" - WINDOWS_SDK_VERSION: "v7.0" - PYTHON_HOME: "C:\\Python27-x64" - PYTHON_VERSION: "2.7" - PYTHON_ARCH: "64" - install: - - "git submodule update --init --recursive" - - "powershell scripts\\appveyor\\install.ps1" - before_test: - - cmd: SET PATH=%PATH%;%PYTHON_HOME%;%PYTHON_HOME%\Scripts - - cmd: git clone https://github.com/xxxajk/spi4teensy3.git c:\spi4teensy - test_script: - - '%WITH_COMPILER% %PYTHON_HOME%\\Scripts\\platformio ci --lib="." --lib="c:\spi4teensy" --board=uno --board=teensy31 --board=due' + + matrix: + - PLATFORMIO_CI_SRC: "examples\\Bluetooth\\PS3SPP\\PS3SPP.ino" + - PLATFORMIO_CI_SRC: "examples\\pl2303\\pl2303_gps\\pl2303_gps.ino" + + install: + - cmd: git submodule update --init --recursive + - cmd: SET PATH=%PATH%;C:\Python27\Scripts + - cmd: pip install -U platformio + - cmd: git clone https://github.com/xxxajk/spi4teensy3.git C:\spi4teensy + + test_script: + - cmd: platformio ci --lib="." --lib="C:\\spi4teensy" --board=uno --board=teensy31 --board=due diff --git a/docs/demo.rst b/docs/demo.rst index e53a31fa..7d1d2c25 100644 --- a/docs/demo.rst +++ b/docs/demo.rst @@ -19,7 +19,7 @@ Demo & Projects Project Examples ---------------- -Preconfigured demo projects are located in `PlatformIO GitHub `_ repository. +Preconfigured demo projects are located in `PlatformIO GitHub `_ repository. "Blink Project" --------------- 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 diff --git a/docs/frameworks/arduino.rst b/docs/frameworks/arduino.rst index af3f11b1..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 @@ -571,13 +571,6 @@ Digilent - 512 Kb - 128 Kb - * - ``openbci`` - - `Digilent OpenScope `_ - - 32MX250F128B - - 40 MHz - - 128 Kb - - 32 Kb - * - ``openscope`` - `Digilent OpenScope `_ - 32MZ2048EFG124 @@ -1020,6 +1013,13 @@ Mcudude - 64 Kb - 4 Kb + * - ``mightycore8535`` + - `MightyCore ATmega8535 `_ + - ATMEGA16 + - 16 MHz + - 8 Kb + - 0.5 Kb + Microduino ~~~~~~~~~~ @@ -1150,6 +1150,26 @@ Olimex - 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 + PONTECH ~~~~~~~ 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 00f84582..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 @@ -77,7 +77,7 @@ TI * - ``lpmsp430fr4133`` - `TI LaunchPad w/ msp430fr4133 `_ - - MSP430G2553 + - MSP430FR4133 - 16 MHz - 16 Kb - 2 Kb @@ -98,7 +98,7 @@ TI * - ``lpmsp430fr6989`` - `TI LaunchPad w/ msp430fr6989 `_ - - MSP430G2553 + - MSP430FR6989 - 16 MHz - 128 Kb - 2 Kb 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 2335eaa9..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 @@ -286,6 +286,26 @@ JKSoft - 128 Kb - 16 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 ~~~~~~~~~~~~~~~~ @@ -705,6 +725,13 @@ Silicon Labs - 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 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/ide/atom.rst b/docs/ide/atom.rst index 61d515ea..f46d5a2c 100644 --- a/docs/ide/atom.rst +++ b/docs/ide/atom.rst @@ -437,6 +437,19 @@ To force Smart Code Linter to use Arduino files as C++ please Frequently Asked Questions -------------------------- +Keep build panel visible +~~~~~~~~~~~~~~~~~~~~~~~~ + +PlatformIO IDE hides build panel on success by default. Nevertheless, you can +keep it visible all time. Please follow to +``Menu: PlatformIO > Settings > Build`` and set ``Panel Visibility`` to +``Keep Visible``. + +Key-bindings (toggle panel): + +* ``cmd+alt+v`` - Mac OS X +* ``ctrl+alt+v`` - Windows/Linux + Automatically save on build ~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -458,10 +471,13 @@ 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) `_ * Apr 11, 2016 - **Matjaz Trcek** - `Top 5 Arduino integrated development environments `_ * Apr 06, 2016 - **Aleks** - `PlatformIO ausprobiert (Tried PlatformIO, German) `_ +* Apr 02, 2016 - **Diego Pinto** - `Você tem coragem de abandonar a IDE do Arduino? PlatformIO + Atom (Do you dare to leave the Arduino IDE? PlatformIO + Atom, Portuguese) `_ * Mar 30, 2016 - **Brandon Cannaday** - `Getting Started with PlatformIO and ESP8266 NodeMcu `_ * Mar 12, 2016 - **Peter Marks** - `PlatformIO, the Arduino IDE for programmers `_ * Mar 05, 2016 - **brichacek.net** - `PlatformIO – otevřený ekosystém pro vývoj IoT (PlatformIO – an open source ecosystem for IoT development, Czech) `_ diff --git a/docs/ide/eclipse.rst b/docs/ide/eclipse.rst index 7a775272..230de1f9 100644 --- a/docs/ide/eclipse.rst +++ b/docs/ide/eclipse.rst @@ -71,9 +71,18 @@ If you have some problems with unresolved includes, defines, etc., then after generating process wont be reflected in IDE. To fix it you need to reinitialize project using :ref:`cmd_init` (repeat it). +Live Integration +---------------- + +Eclipse Virtual IoT Meetup: `PlatformIO: a cross-platform IoT solution to build them all! `_ + +.. image:: ../_static/ide-eclipse-virtualiot.jpg + :target: https://www.youtube.com/watch?v=6t7UbX812Yw + Articles / Manuals ------------------ +* May 05, 2016 - **Ivan Kravets, Ph.D. / Eclipse Virtual IoT Meetup** - `PlatformIO: a cross-platform IoT solution to build them all! `_ * Sep 01, 2015 - **Thomas P. Weldon, Ph.D.** - `Improvised MBED FRDM-K64F Eclipse/PlatformIO Setup and Software Installation `_ * Jul 11, 2015 - **TrojanC** - `Learning Arduino GitHub Repository `_ * June 20, 2014 - **Ivan Kravets, Ph.D.** - `Building and debugging Atmel AVR (Arduino-based) project using Eclipse IDE+PlatformIO `_ diff --git a/docs/index.rst b/docs/index.rst index b2f1fcca..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 @@ -39,7 +39,7 @@ libOpenCM3, etc.* * :ref:`ide_atom` * `Web 2.0 Library Search `_ | `Embedded Boards Explorer `_ -* `Project Examples `_ +* `Project Examples `_ * `Source Code `_ | `Issues `_ * `Blog `_ | @@ -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/librarymanager/config.rst b/docs/librarymanager/config.rst index 1784a99b..c56d74ed 100644 --- a/docs/librarymanager/config.rst +++ b/docs/librarymanager/config.rst @@ -141,7 +141,7 @@ Examples: The repository in which the source code can be found. The field consists for the next items: -* ``type`` +* ``type`` the only "git", "hg" or "svn" are supported * ``url`` * ``branch`` if is not specified, default branch will be used. This field will be ignored if tag/release exists with the value of :ref:`libjson_version`. diff --git a/docs/platforms/atmelavr.rst b/docs/platforms/atmelavr.rst index 4f4b5955..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 @@ -702,6 +702,13 @@ Mcudude - 64 Kb - 4 Kb + * - ``mightycore8535`` + - `MightyCore ATmega8535 `_ + - ATMEGA16 + - 16 MHz + - 8 Kb + - 0.5 Kb + Microduino ~~~~~~~~~~ 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/espressif_extra.rst b/docs/platforms/espressif_extra.rst index c4a32b3f..b9430876 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 (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) `_ * Feb 23, 2016 - **Ptarmigan Labs** - `ESP8266 Over The Air updating – what are the options? `_ 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 46e56537..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 @@ -177,13 +177,6 @@ Digilent - 512 Kb - 128 Kb - * - ``openbci`` - - `Digilent OpenScope `_ - - 32MX250F128B - - 40 MHz - - 128 Kb - - 32 Kb - * - ``openscope`` - `Digilent OpenScope `_ - 32MZ2048EFG124 @@ -245,6 +238,26 @@ Olimex - 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 + PONTECH ~~~~~~~ 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 11929989..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 @@ -98,6 +98,13 @@ Silicon Labs - 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 diff --git a/docs/platforms/ststm32.rst b/docs/platforms/ststm32.rst index cb56e6ac..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 @@ -142,6 +142,26 @@ Armstrap - 512 Kb - 192 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 + ST ~~ 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 1ef7c5a3..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 @@ -122,7 +122,7 @@ TI * - ``lpmsp430fr4133`` - `TI LaunchPad w/ msp430fr4133 `_ - - MSP430G2553 + - MSP430FR4133 - 16 MHz - 16 Kb - 2 Kb @@ -143,7 +143,7 @@ TI * - ``lpmsp430fr6989`` - `TI LaunchPad w/ msp430fr6989 `_ - - MSP430G2553 + - MSP430FR6989 - 16 MHz - 128 Kb - 2 Kb 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 0af9c5f5..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: @@ -610,7 +610,7 @@ Examples .. note:: A full list with project examples can be found in - `PlatformIO Repository `_. + `PlatformIO Repository `_. 1. :ref:`platform_atmelavr`: Arduino UNO board with auto pre-configured ``board_*`` and ``upload_*`` options (use only ``board`` option) and Arduino diff --git a/docs/quickstart.rst b/docs/quickstart.rst index f70bbe63..77877d28 100644 --- a/docs/quickstart.rst +++ b/docs/quickstart.rst @@ -15,7 +15,7 @@ Quick Start =========== .. note:: - If you are looking for a Qucik Start for PlatformIO IDE please follow to + If you are looking for a Quick Start for PlatformIO IDE please follow to :ref:`PlatformIO IDE Quick Start ` page. This tutorial introduces you to the basics of PlatformIO Command Line Interface @@ -256,5 +256,5 @@ Arduino Uno: Further Reading --------------- -* `Project examples `_ +* `Project examples `_ * :ref:`userguide` for PlatformIO CLI commands 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/examples b/examples index c06e8437..a5498135 160000 --- a/examples +++ b/examples @@ -1 +1 @@ -Subproject commit c06e843757238811d50f5e5008c211e694308b7e +Subproject commit a5498135baca2dd71e518406ee5cf19ac4be058b diff --git a/platformio/__init__.py b/platformio/__init__.py index 0f6724ec..e6127e13 100644 --- a/platformio/__init__.py +++ b/platformio/__init__.py @@ -14,7 +14,7 @@ import sys -VERSION = (2, 9, 1) +VERSION = (2, 9, 2) __version__ = ".".join([str(s) for s in VERSION]) __title__ = "platformio" diff --git a/platformio/boards/microchippic32.json b/platformio/boards/microchippic32.json index a118c8e0..b5a949be 100644 --- a/platformio/boards/microchippic32.json +++ b/platformio/boards/microchippic32.json @@ -561,7 +561,7 @@ "variant": "OpenBCI" }, "frameworks": ["arduino"], - "name": "Digilent OpenScope", + "name": "OpenBCI 32bit", "platform": "microchippic32", "upload": { "maximum_ram_size": 32768, @@ -571,7 +571,7 @@ "speed": 115200, "wait_for_upload_port": true }, - "url": "http://store.digilentinc.com/", - "vendor": "Digilent" + "url": "http://shop.openbci.com/", + "vendor": "OpenBCI" } } diff --git a/platformio/boards/mightycore.json b/platformio/boards/mightycore.json index 88730431..7ee7913f 100644 --- a/platformio/boards/mightycore.json +++ b/platformio/boards/mightycore.json @@ -129,5 +129,27 @@ }, "url": "https://www.tindie.com/products/MCUdude/dip-40-arduino-compatible-development-board", "vendor": "Mcudude" + }, + + "mightycore8535": { + "build": { + "core": "MightyCore", + "extra_flags": "-DARDUINO_ARCH_AVR -DARDUINO_AVR_ATmega8535", + "f_cpu": "16000000L", + "mcu": "atmega16", + "variant": "mightycore" + }, + "frameworks": ["arduino"], + "name": "MightyCore ATmega8535", + "platform": "atmelavr", + "upload": { + "maximum_ram_size": 512, + "maximum_size": 7680, + "protocol": "arduino", + "require_upload_port" : true, + "speed": 115200 + }, + "url": "https://www.tindie.com/products/MCUdude/dip-40-arduino-compatible-development-board", + "vendor": "Mcudude" } -} \ No newline at end of file +} diff --git a/platformio/boards/siliconlabsefm32.json b/platformio/boards/siliconlabsefm32.json index dfa58584..e4d55f18 100644 --- a/platformio/boards/siliconlabsefm32.json +++ b/platformio/boards/siliconlabsefm32.json @@ -82,5 +82,22 @@ }, "url": "https://developer.mbed.org/platforms/EFM32-Happy-Gecko/", "vendor": "Silicon Labs" + }, + + "efm32pg_stk3401": { + "build": { + "f_cpu": "40000000L", + "cpu": "cortex-m4", + "mcu": "efm32pg1b200f256" + }, + "frameworks": ["mbed"], + "name": "Silicon Labs SLSTK3401A (Pearl Gecko)", + "platform": "siliconlabsefm32", + "upload": { + "maximum_ram_size": 32768, + "maximum_size": 262144 + }, + "url": "https://developer.mbed.org/platforms/EFM32-Pearl-Gecko/", + "vendor": "Silicon Labs" } } diff --git a/platformio/boards/ststm32.json b/platformio/boards/ststm32.json index 18633fab..46037168 100644 --- a/platformio/boards/ststm32.json +++ b/platformio/boards/ststm32.json @@ -14,7 +14,8 @@ "platform": "ststm32", "upload": { "maximum_ram_size": 131072, - "maximum_size": 1048576 + "maximum_size": 1048576, + "protocol": "stlink" }, "url": "http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF252419", "vendor": "ST" @@ -34,7 +35,8 @@ "platform": "ststm32", "upload": { "maximum_ram_size": 16384, - "maximum_size": 131072 + "maximum_size": 131072, + "protocol": "stlink" }, "url": "http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF258515", "vendor": "ST" @@ -54,7 +56,8 @@ "platform": "ststm32", "upload": { "maximum_ram_size": 49152, - "maximum_size": 262144 + "maximum_size": 262144, + "protocol": "stlink" }, "url": "http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF254044", "vendor": "ST" @@ -70,7 +73,8 @@ "platform": "ststm32", "upload": { "maximum_ram_size": 8192, - "maximum_size": 131072 + "maximum_size": 131072, + "protocol": "stlink" }, "url": "http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF250863", "vendor": "ST" @@ -86,7 +90,8 @@ "platform": "ststm32", "upload": { "maximum_ram_size": 8192, - "maximum_size": 65536 + "maximum_size": 65536, + "protocol": "stlink" }, "url": "http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF253215", "vendor": "ST" @@ -102,7 +107,8 @@ "platform": "ststm32", "upload": { "maximum_ram_size": 16384, - "maximum_size": 65536 + "maximum_size": 65536, + "protocol": "stlink" }, "url": "http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF260318", "vendor": "ST" @@ -118,7 +124,8 @@ "platform": "ststm32", "upload": { "maximum_ram_size": 65536, - "maximum_size": 262144 + "maximum_size": 262144, + "protocol": "stlink" }, "url": "http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF259098", "vendor": "ST" @@ -134,7 +141,8 @@ "platform": "ststm32", "upload": { "maximum_ram_size": 262144, - "maximum_size": 2097152 + "maximum_size": 2097152, + "protocol": "stlink" }, "url": "http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF259090", "vendor": "ST" @@ -425,7 +433,8 @@ "platform": "ststm32", "upload": { "maximum_ram_size": 8192, - "maximum_size": 65536 + "maximum_size": 65536, + "protocol": "stlink" }, "url": "http://www.st.com/web/en/catalog/tools/PF260319", "vendor": "ST" @@ -441,7 +450,8 @@ "platform": "ststm32", "upload": { "maximum_ram_size": 12288, - "maximum_size": 65536 + "maximum_size": 65536, + "protocol": "stlink" }, "url": "http://www.st.com/web/en/catalog/tools/PF260318", "vendor": "ST" @@ -457,7 +467,8 @@ "platform": "ststm32", "upload": { "maximum_ram_size": 393216, - "maximum_size": 1048576 + "maximum_size": 1048576, + "protocol": "stlink" }, "url": "http://www.st.com/web/catalog/tools/FM116/CL1620/SC959/SS1532/LN1848/PF262395", "vendor": "ST" @@ -473,7 +484,8 @@ "platform": "ststm32", "upload": { "maximum_ram_size": 131072, - "maximum_size": 1048576 + "maximum_size": 1048576, + "protocol": "stlink" }, "url": "http://www.st.com/web/catalog/tools/FM116/CL1620/SC959/SS1532/LN1848/PF261635", "vendor": "ST" @@ -605,5 +617,21 @@ }, "url": "https://developer.mbed.org/platforms/ST-B96B-F446VE/", "vendor": "96Boards" + }, + "mts_mdot_f411re": { + "build": { + "f_cpu": "100000000L", + "cpu": "cortex-m4", + "mcu": "stm32f411ret6" + }, + "frameworks": ["mbed"], + "name": "MultiTech mDot F411", + "platform": "ststm32", + "upload": { + "maximum_ram_size": 131072, + "maximum_size": 524288 + }, + "url": "https://developer.mbed.org/platforms/MTS-mDot-F411/", + "vendor": "MultiTech" } } diff --git a/platformio/boards/timsp430.json b/platformio/boards/timsp430.json index ca46ffad..5b8544a6 100644 --- a/platformio/boards/timsp430.json +++ b/platformio/boards/timsp430.json @@ -129,7 +129,7 @@ "build": { "core": "msp430", "f_cpu": "16000000L", - "mcu": "msp430g2553", + "mcu": "msp430fr4133", "variant": "launchpad_fr4133" }, "frameworks": ["energia"], @@ -147,7 +147,7 @@ "build": { "core": "msp430", "f_cpu": "16000000L", - "mcu": "msp430g2553", + "mcu": "msp430fr6989", "variant": "launchpad_fr6989" }, "frameworks": ["energia"], diff --git a/platformio/builder/main.py b/platformio/builder/main.py index 69f9e53c..8b01c7b2 100644 --- a/platformio/builder/main.py +++ b/platformio/builder/main.py @@ -12,6 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. +import base64 import json import sys from os import environ @@ -99,6 +100,12 @@ DefaultEnvironment( ) env = DefaultEnvironment() + +# decode common variables +for k in commonvars.keys(): + if k in env: + env[k] = base64.b64decode(env[k]) + env.Prepend(LIBPATH=[join("$PIOPACKAGES_DIR", "ldscripts")]) if "BOARD" in env: diff --git a/platformio/builder/scripts/atmelavr.py b/platformio/builder/scripts/atmelavr.py index daff63af..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 @@ -65,13 +63,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..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() @@ -41,13 +39,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 +107,7 @@ env.Append( ], CPPDEFINES=[ - "USBCON", - 'USB_MANUFACTURER="PlatformIO"' + "USBCON" ], LINKFLAGS=[ 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 = [] diff --git a/platformio/builder/tools/pioupload.py b/platformio/builder/tools/pioupload.py index d1cd6dab..cb973b92 100644 --- a/platformio/builder/tools/pioupload.py +++ b/platformio/builder/tools/pioupload.py @@ -47,11 +47,13 @@ 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 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] @@ -104,11 +106,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.") diff --git a/platformio/builder/tools/platformio.py b/platformio/builder/tools/platformio.py index f897d24a..891f45ba 100644 --- a/platformio/builder/tools/platformio.py +++ b/platformio/builder/tools/platformio.py @@ -80,6 +80,7 @@ def BuildProgram(env): env.Append( CPPDEFINES=["PLATFORMIO={0:02d}{1:02d}{2:02d}".format( *pioversion_to_intstr())], + CPPPATH=["$PROJECTSRC_DIR"], LIBS=deplibs, LIBPATH=["$BUILD_DIR"] ) diff --git a/platformio/commands/run.py b/platformio/commands/run.py index c0739dc5..0834edf0 100644 --- a/platformio/commands/run.py +++ b/platformio/commands/run.py @@ -81,7 +81,8 @@ def cli(ctx, environment, target, upload_port, # pylint: disable=R0913,R0914 envname = section[4:] if ((environment and envname not in environment) or - (env_default and envname not in env_default)): + (not environment and env_default and + envname not in env_default)): # echo("Skipped %s environment" % style(envname, fg="yellow")) continue @@ -163,14 +164,14 @@ class EnvironmentProcessor(object): return result def _get_build_variables(self): - variables = ["PIOENV=" + self.name] + variables = {"pioenv": self.name} if self.upload_port: - variables.append("UPLOAD_PORT=%s" % self.upload_port) + variables['upload_port'] = self.upload_port for k, v in self.options.items(): - k = k.upper() - if k == "TARGETS" or (k == "UPLOAD_PORT" and self.upload_port): + k = k.lower() + if k == "targets" or (k == "upload_port" and self.upload_port): continue - variables.append("%s=%s" % (k, v)) + variables[k] = v return variables def _get_build_targets(self): diff --git a/platformio/pkgmanager.py b/platformio/pkgmanager.py index 0c7bdce7..33f74bb7 100644 --- a/platformio/pkgmanager.py +++ b/platformio/pkgmanager.py @@ -102,6 +102,7 @@ class PackageManager(object): dlpath = self.download(info['url'], pkg_dir, info['sha1']) except (requests.exceptions.ConnectionError, requests.exceptions.ChunkedEncodingError, + requests.exceptions.SSLError, exception.FDUnrecognizedStatusCode, StopIteration): if not info['url'].startswith("http://dl.platformio.org"): dlpath = self.download( diff --git a/platformio/platforms/base.py b/platformio/platforms/base.py index b5e311a9..8486967d 100644 --- a/platformio/platforms/base.py +++ b/platformio/platforms/base.py @@ -12,6 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. +import base64 import os import re import sys @@ -400,10 +401,10 @@ class BasePlatform(object): obsolated = pm.get_outdated() return not set(self.get_packages().keys()).isdisjoint(set(obsolated)) - def configure_default_packages(self, envoptions, targets): + def configure_default_packages(self, variables, targets): # enbale used frameworks for pkg_name in self.pkg_aliases_to_names(["framework"]): - for framework in envoptions.get("framework", "").split(","): + for framework in variables.get("framework", "").split(","): framework = framework.lower().strip() if not framework: continue @@ -441,15 +442,10 @@ class BasePlatform(object): raise exception.PlatformNotInstalledYet(self.get_type()) def run(self, variables, targets, verbose): - assert isinstance(variables, list) + assert isinstance(variables, dict) assert isinstance(targets, list) - envoptions = {} - for v in variables: - _name, _value = v.split("=", 1) - envoptions[_name.lower()] = _value - - self.configure_default_packages(envoptions, targets) + self.configure_default_packages(variables, targets) self._install_default_packages() self._verbose_level = int(verbose) @@ -458,23 +454,17 @@ class BasePlatform(object): targets.remove("clean") targets.append("-c") - if "build_script" not in envoptions: - variables.append("BUILD_SCRIPT=%s" % self.get_build_script()) - - for v in variables: - if not v.startswith("BUILD_SCRIPT="): - continue - _, path = v.split("=", 1) - if not isfile(path): - raise exception.BuildScriptNotFound(path) + if "build_script" not in variables: + variables['build_script'] = self.get_build_script() + if not isfile(variables['build_script']): + raise exception.BuildScriptNotFound(variables['build_script']) # append aliases of the installed packages installed_packages = PackageManager.get_installed() for name, options in self.get_packages().items(): if "alias" not in options or name not in installed_packages: continue - variables.append( - "PIOPACKAGE_%s=%s" % (options['alias'].upper(), name)) + variables['piopackage_%s' % options['alias']] = name self._found_error = False result = self._run_scons(variables, targets) @@ -498,16 +488,22 @@ class BasePlatform(object): _PYTHONPATH.append(p) os.environ['PYTHONPATH'] = os.pathsep.join(_PYTHONPATH) + cmd = [ + os.path.normpath(sys.executable), + join(util.get_home_dir(), "packages", "tool-scons", + "script", "scons"), + "-Q", + "-j %d" % self.get_job_nums(), + "--warn=no-no-parallel-support", + "-f", join(util.get_source_dir(), "builder", "main.py") + ] + targets + + # encode and append variables + for key, value in variables.items(): + cmd.append("%s=%s" % (key.upper(), base64.b64encode(value))) + result = util.exec_command( - [ - os.path.normpath(sys.executable), - join(util.get_home_dir(), "packages", "tool-scons", - "script", "scons"), - "-Q", - "-j %d" % self.get_job_nums(), - "--warn=no-no-parallel-support", - "-f", join(util.get_source_dir(), "builder", "main.py") - ] + variables + targets, + cmd, stdout=util.AsyncPipe(self.on_run_out), stderr=util.AsyncPipe(self.on_run_err) ) diff --git a/platformio/util.py b/platformio/util.py index 6dc1bd5e..221c6d9b 100644 --- a/platformio/util.py +++ b/platformio/util.py @@ -280,7 +280,34 @@ def exec_command(*args, **kwargs): return result -def get_serialports(): +def get_serialports(use_grep=False): + + def _grep_serial_ports(): + result = [] + if system() == "Windows": + 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: + 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: + result = _grep_serial_ports() + if result: + return result + try: from serial.tools.list_ports import comports except ImportError: @@ -290,7 +317,7 @@ def get_serialports(): for p, d, h in comports(): if not p: continue - if "windows" in get_systype(): + if system() == "Windows": try: d = unicode(d, errors="ignore") except TypeError: @@ -298,9 +325,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 and not use_grep: + result = _grep_serial_ports() + return result @@ -308,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()) diff --git a/scripts/appveyor/install.ps1 b/scripts/appveyor/install.ps1 deleted file mode 100644 index 61e93c1e..00000000 --- a/scripts/appveyor/install.ps1 +++ /dev/null @@ -1,82 +0,0 @@ -# https://packaging.python.org/en/latest/appveyor.html -# Sample script to install Python and pip under Windows -# Authors: Olivier Grisel and Kyle Kastner -# License: CC0 1.0 Universal: http://creativecommons.org/publicdomain/zero/1.0/ - -$BASE_URL = "https://www.python.org/ftp/python/" -$GET_PIP_URL = "https://bootstrap.pypa.io/get-pip.py" -$GET_PIP_PATH = "C:\get-pip.py" - - -function DownloadPython ($python_version, $platform_suffix) { - $webclient = New-Object System.Net.WebClient - $filename = "python-" + $python_version + $platform_suffix + ".msi" - $url = $BASE_URL + $python_version + "/" + $filename - - $basedir = $pwd.Path + "\" - $filepath = $basedir + $filename - if (Test-Path $filename) { - Write-Host "Reusing" $filepath - return $filepath - } - - # Download and retry up to 5 times in case of network transient errors. - Write-Host "Downloading" $filename "from" $url - $retry_attempts = 3 - for($i=0; $i -lt $retry_attempts; $i++){ - try { - $webclient.DownloadFile($url, $filepath) - break - } - Catch [Exception]{ - Start-Sleep 1 - } - } - Write-Host "File saved at" $filepath - return $filepath -} - - -function InstallPython ($python_version, $architecture, $python_home) { - Write-Host "Installing Python" $python_version "for" $architecture "bit architecture to" $python_home - if (Test-Path $python_home) { - Write-Host $python_home "already exists, skipping." - return $false - } - if ($architecture -eq "32") { - $platform_suffix = "" - } else { - $platform_suffix = ".amd64" - } - $filepath = DownloadPython $python_version $platform_suffix - Write-Host "Installing" $filepath "to" $python_home - $args = "/qn /i $filepath TARGETDIR=$python_home" - Write-Host "msiexec.exe" $args - Start-Process -FilePath "msiexec.exe" -ArgumentList $args -Wait -Passthru - Write-Host "Python $python_version ($architecture) installation complete" - return $true -} - - -function InstallPip ($python_home) { - $python_path = $python_home + "/python.exe" - Write-Host "Installing pip..." - $webclient = New-Object System.Net.WebClient - $webclient.DownloadFile($GET_PIP_URL, $GET_PIP_PATH) - Write-Host "Executing:" $python_path $GET_PIP_PATH - Start-Process -FilePath "$python_path" -ArgumentList "$GET_PIP_PATH" -Wait -Passthru -} - -function InstallPackage ($python_home, $pkg) { - $pip_path = $python_home + "/Scripts/pip.exe" - & $pip_path install -U $pkg -} - -function main () { - InstallPython $env:PYTHON_VERSION $env:PYTHON_ARCH $env:PYTHON_HOME - InstallPip $env:PYTHON_HOME - InstallPackage $env:PYTHON_HOME setuptools - InstallPackage $env:PYTHON_HOME tox -} - -main diff --git a/scripts/appveyor/run_with_compiler.cmd b/scripts/appveyor/run_with_compiler.cmd deleted file mode 100644 index 7a75d18c..00000000 --- a/scripts/appveyor/run_with_compiler.cmd +++ /dev/null @@ -1,48 +0,0 @@ -:: https://packaging.python.org/en/latest/appveyor.html -:: To build extensions for 64 bit Python 3, we need to configure environment -:: variables to use the MSVC 2010 C++ compilers from GRMSDKX_EN_DVD.iso of: -:: MS Windows SDK for Windows 7 and .NET Framework 4 (SDK v7.1) -:: -:: To build extensions for 64 bit Python 2, we need to configure environment -:: variables to use the MSVC 2008 C++ compilers from GRMSDKX_EN_DVD.iso of: -:: MS Windows SDK for Windows 7 and .NET Framework 3.5 (SDK v7.0) -:: -:: 32 bit builds do not require specific environment configurations. -:: -:: Note: this script needs to be run with the /E:ON and /V:ON flags for the -:: cmd interpreter, at least for (SDK v7.0) -:: -:: More details at: -:: https://github.com/cython/cython/wiki/64BitCythonExtensionsOnWindows -:: http://stackoverflow.com/a/13751649/163740 -:: -:: Author: Olivier Grisel -:: License: CC0 1.0 Universal: http://creativecommons.org/publicdomain/zero/1.0/ -@ECHO OFF - -SET COMMAND_TO_RUN=%* -SET WIN_SDK_ROOT=C:\Program Files\Microsoft SDKs\Windows - -SET MAJOR_PYTHON_VERSION="%PYTHON_VERSION:~0,1%" -IF %MAJOR_PYTHON_VERSION% == "2" ( - SET WINDOWS_SDK_VERSION="v7.0" -) ELSE IF %MAJOR_PYTHON_VERSION% == "3" ( - SET WINDOWS_SDK_VERSION="v7.1" -) ELSE ( - ECHO Unsupported Python version: "%MAJOR_PYTHON_VERSION%" - EXIT 1 -) - -IF "%PYTHON_ARCH%"=="64" ( - ECHO Configuring Windows SDK %WINDOWS_SDK_VERSION% for Python %MAJOR_PYTHON_VERSION% on a 64 bit architecture - SET DISTUTILS_USE_SDK=1 - SET MSSdk=1 - "%WIN_SDK_ROOT%\%WINDOWS_SDK_VERSION%\Setup\WindowsSdkVer.exe" -q -version:%WINDOWS_SDK_VERSION% - "%WIN_SDK_ROOT%\%WINDOWS_SDK_VERSION%\Bin\SetEnv.cmd" /x64 /release - ECHO Executing: %COMMAND_TO_RUN% - call %COMMAND_TO_RUN% || EXIT 1 -) ELSE ( - ECHO Using default MSVC build environment for 32 bit architecture - ECHO Executing: %COMMAND_TO_RUN% - call %COMMAND_TO_RUN% || EXIT 1 -) \ No newline at end of file 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()) diff --git a/tests/test_pkgmanifest.py b/tests/test_pkgmanifest.py index ff0235cb..62b1b9d6 100644 --- a/tests/test_pkgmanifest.py +++ b/tests/test_pkgmanifest.py @@ -38,7 +38,7 @@ def validate_response(req): def test_package(package_data): - assert package_data['url'].endswith("%d.tar.gz" % package_data['version']) + assert package_data['url'].endswith(".tar.gz") r = requests.head(package_data['url'], allow_redirects=True) validate_response(r)