Merge branch 'release/v2.9.0'

This commit is contained in:
Ivan Kravets
2016-04-28 18:48:01 +03:00
266 changed files with 7713 additions and 1056 deletions

View File

@ -2,7 +2,7 @@ What kind of issue is this?
- [ ] Question. This issue tracker is not the place for questions. If you want to ask how to do
something, or to understand why something isn't working the way you expect it to, use
our Community Forums http://community.platformio.org
our Community Forums https://community.platformio.org
- [ ] Feature Request. Start by telling us what problem youre trying to solve. Often a solution
already exists! Dont send pull requests to implement new features without first getting our

9
.gitmodules vendored
View File

@ -1,6 +1,3 @@
[submodule "examples/atmelavr-and-arduino/arduino-external-libs/lib/Adafruit-PCD8544-Nokia-5110-LCD-library"]
path = examples/atmelavr-and-arduino/arduino-external-libs/lib/Adafruit-PCD8544-Nokia-5110-LCD-library
url = https://github.com/adafruit/Adafruit-PCD8544-Nokia-5110-LCD-library.git
[submodule "examples/atmelavr-and-arduino/arduino-external-libs/lib/Adafruit-GFX-Library"]
path = examples/atmelavr-and-arduino/arduino-external-libs/lib/Adafruit-GFX-Library
url = https://github.com/adafruit/Adafruit-GFX-Library.git
[submodule "examples"]
path = examples
url = https://github.com/platformio/platformio-examples.git

View File

@ -1,21 +1,23 @@
language: python
python:
"2.7"
- "2.7"
env:
TOX_ENV=docs
TOX_ENV=lint
TOX_ENV=py26
TOX_ENV=py27
- TOX_ENV=docs
- TOX_ENV=lint
- TOX_ENV=py26
- TOX_ENV=py27
install:
pip install -U pip setuptools tox
- git submodule update --init --recursive
- pip install -U pip setuptools tox
- sudo apt-get install -qq lib32z1 lib32ncurses5 lib32bz2-1.0 # temporarily
script:
tox -e $TOX_ENV
- tox -e $TOX_ENV
notifications:
slack:
secure: uEU56hHACLxq6iRRZ0JeAl/MPADqQWMZZAsZB9IOnXaRUd0Pa6lT2CicJXhVlsEEbNRqR2u5LbcQ4R0nvAKPjYgglDlDet4RfhP+YIqLX2v2dv3B5q8cITsKMUUediv4fybdO/nmvQSImq5nqRQQsXKAwTAJZooIwS3F5Dsg+eE=
on_failure: :always
on_success: :change
secure: ksQmXOP5NVsf8IgoDuxD68Q/YNwDpZuwq0V29h2dxYCr38oYdAkq/Os4LSCs0X6P0cQFf6nC1hM/d+cAvU+SmzcHGxEceHNEGCg3/TAj+68KIwooPU93Lfq1zwdfteZWxANjKlCQy4+wZliHLhL8fvCYgfJww/6qKmqSYleBNM=
on_failure: always
on_success: change

View File

@ -4,10 +4,75 @@ Release Notes
PlatformIO 2.0
--------------
2.9.0 (2016-04-28)
~~~~~~~~~~~~~~~~~~
* Project generator for `CodeBlocks IDE <http://docs.platformio.org/en/latest/ide/codeblocks.html>`__
(`issue #600 <https://github.com/platformio/platformio/issues/600>`_)
* New `Lattice iCE40 FPGA <http://docs.platformio.org/en/latest/platforms/lattice_ice40.html>`__
development platform with support for Lattice iCEstick FPGA Evaluation
Kit and BQ IceZUM Alhambra FPGA
(`issue #480 <https://github.com/platformio/platformio/issues/480>`_)
* New `Intel ARC 32-bit <http://docs.platformio.org/en/latest/platforms/intel_arc32.html>`_
development platform with support for Arduino/Genuino 101 board
(`issue #535 <https://github.com/platformio/platformio/issues/535>`_)
* New `Microchip PIC32 <http://docs.platformio.org/en/latest/platforms/microchippic32.html>`__
development platform with support for 20+ different PIC32 based boards
(`issue #438 <https://github.com/platformio/platformio/issues/438>`_)
* New RTOS and build Framework named `Simba <http://docs.platformio.org/en/latest/frameworks/simba.html>`__
(`issue #412 <https://github.com/platformio/platformio/issues/412>`_)
* New boards for `ARM mbed <http://docs.platformio.org/en/latest/frameworks/mbed.html>`__
framework: ST Nucleo F410RB, ST Nucleo L073RZ and BBC micro:bit
* Added support for Arduino.Org boards: Arduino Leonardo ETH, Arduino Yun Mini,
Arduino Industrial 101 and Linino One
(`issue #472 <https://github.com/platformio/platformio/issues/472>`_)
* Added support for Generic ATTiny boards: ATTiny13, ATTiny24, ATTiny25,
ATTiny45 and ATTiny85
(`issue #636 <https://github.com/platformio/platformio/issues/636>`_)
* Added support for MightyCore boards: ATmega1284, ATmega644, ATmega324,
ATmega164, ATmega32, ATmega16 and ATmega8535
(`issue #585 <https://github.com/platformio/platformio/issues/585>`_)
* Added support for `TI MSP430 <http://docs.platformio.org/en/latest/platforms/timsp430.html>`__
boards: TI LaunchPad w/ msp430fr4133 and TI LaunchPad w/ msp430fr6989
* Updated Arduino core for Espressif platform to 2.2.0
(`issue #627 <https://github.com/platformio/platformio/issues/627>`_)
* Updated native SDK for ESP8266 to 1.5
(`issue #366 <https://github.com/platformio/platformio/issues/366>`_)
* PlatformIO Library Registry in JSON format! Implemented
``--json-output`` and ``--page`` options for
`platformio lib search <http://docs.platformio.org/en/latest/userguide/lib/cmd_search.html>`__
command
(`issue #604 <https://github.com/platformio/platformio/issues/604>`_)
* Allowed to specify default environments `env_default <http://docs.platformio.org/en/latest/projectconf.html#env-default>`__
which should be processed by default with ``platformio run`` command
(`issue #576 <https://github.com/platformio/platformio/issues/576>`_)
* Allowed to unflag(remove) base/initial flags using
`build_unflags <http://docs.platformio.org/en/latest/projectconf.html#build-unflags>`__
option
(`issue #559 <https://github.com/platformio/platformio/issues/559>`_)
* Allowed multiple VID/PID pairs when detecting serial ports
(`issue #632 <https://github.com/platformio/platformio/issues/632>`_)
* Automatically add ``-DUSB_MANUFACTURER`` with vendor's name
(`issue #631 <https://github.com/platformio/platformio/issues/631>`_)
* Automatically reboot Teensy board after upload when Teensy Loader GUI is used
(`issue #609 <https://github.com/platformio/platformio/issues/609>`_)
* Refactored source code converter from ``*.ino`` to ``*.cpp``
(`issue #610 <https://github.com/platformio/platformio/issues/610>`_)
* Forced ``-std=gnu++11`` for Atmel SAM development platform
(`issue #601 <https://github.com/platformio/platformio/issues/601>`_)
* Don't check OS type for ARM mbed-enabled boards and ST STM32 development
platform before uploading to disk
(`issue #596 <https://github.com/platformio/platformio/issues/596>`_)
* Fixed broken compilation for Atmel SAMD based boards except Arduino Due
(`issue #598 <https://github.com/platformio/platformio/issues/598>`_)
* Fixed firmware uploading using serial port with spaces in the path
* Fixed cache system when project's root directory is used as ``src_dir``
(`issue #635 <https://github.com/platformio/platformio/issues/635>`_)
2.8.6 (2016-03-22)
~~~~~~~~~~~~~~~~~~
* Launched `PlatformIO Community Forums <http://community.platformio.org>`_
* Launched `PlatformIO Community Forums <https://community.platformio.org>`_
(`issue #530 <https://github.com/platformio/platformio/issues/530>`_)
* Added support for ARM mbed-enabled board Seed Arch Max (STM32F407VET6)
(`issue #572 <https://github.com/platformio/platformio/issues/572>`_)
@ -821,9 +886,9 @@ PlatformIO 0.0
* Fixed "*OSError: [Errno 2] No such file or directory*" within
`platformio run <http://docs.platformio.org/en/latest/userguide/cmd_run.html>`__
command when PlatformIO isn't installed properly
* Fixed example for `Eclipse IDE with Tiva board <https://github.com/platformio/platformio/tree/develop/examples/ide/eclipse>`_
* Fixed example for `Eclipse IDE with Tiva board <https://github.com/platformio/platformio-examples/tree/develop/ide/eclipse>`_
(`issue #32 <https://github.com/platformio/platformio/pull/32>`_)
* Upgraded `Eclipse Project Examples <https://github.com/platformio/platformio/tree/develop/examples/ide/eclipse>`_
* Upgraded `Eclipse Project Examples <https://github.com/platformio/platformio-examples/tree/develop/ide/eclipse>`_
to latest *Luna* and *PlatformIO* releases
0.9.0 (2014-12-01)
@ -891,7 +956,7 @@ PlatformIO 0.0
* Disabled default warning flag "-Wall"
* Added auto-conversation from \*.ino to valid \*.cpp for Arduino/Energia
frameworks (`issue #7 <https://github.com/platformio/platformio/issues/7>`_)
* Added `Arduino example <https://github.com/platformio/platformio/tree/develop/examples/>`_
* Added `Arduino example <https://github.com/platformio/platformio-examples/tree/develop/>`_
with external library (*Adafruit CC3000*)
* Implemented `platformio upgrade <http://docs.platformio.org/en/latest/userguide/cmd_upgrade.html>`_
command and "auto-check" for the latest
@ -940,7 +1005,7 @@ PlatformIO 0.0
* Resolved `issue #1 "Build referred libraries" <https://github.com/platformio/platformio/issues/1>`_
* Renamed project's "libs" directory to "lib"
* Added `arduino-internal-library <https://github.com/platformio/platformio/tree/develop/examples/>`_ example
* Added `arduino-internal-library <https://github.com/platformio/platformio-examples/tree/develop/>`_ example
* Changed to beta status

View File

@ -7,9 +7,6 @@ PlatformIO
.. image:: https://ci.appveyor.com/api/projects/status/dku0h2rutfj0ctls/branch/develop?svg=true
:target: https://ci.appveyor.com/project/ivankravets/platformio
:alt: AppVeyor.CI Build Status
.. image:: https://circleci.com/gh/platformio/platformio/tree/develop.svg?style=svg
:target: https://circleci.com/gh/platformio/platformio/tree/develop
:alt: Circle.CI Build Status
.. image:: https://requires.io/github/platformio/platformio/requirements.svg?branch=develop
:target: https://requires.io/github/platformio/platformio/requirements/?branch=develop
:alt: Requirements Status
@ -24,7 +21,7 @@ PlatformIO
:alt: PyPi Downloads
.. image:: https://img.shields.io/community/PlatformIO.png
:alt: Join the chat at https://gitter.im/platformio/platformio
:target: http://community.platformio.org
:target: https://community.platformio.org
.. image:: https://img.shields.io/donate/PlatformIO.png?color=yellow
:alt: Donate for PlatformIO.Org
:target: http://platformio.org/donate
@ -38,7 +35,7 @@ PlatformIO
`Facebook <https://www.facebook.com/platformio>`_ |
`Hackaday <https://hackaday.io/project/7980-platformio>`_ |
`Bintray <https://bintray.com/platformio>`_ |
`Community <http://community.platformio.org>`_ |
`Community <https://community.platformio.org>`_ |
`Donate <http://platformio.org/donate>`_ |
`Contact Us <http://platformio.org/contact>`_
@ -49,7 +46,7 @@ PlatformIO
development. Cross-platform build system and library manager. Continuous and
IDE integration. Arduino and MBED compatible. Ready for Cloud compiling.
* **PlatformIO IDE** - The next generation integrated development environment for IoT.
* **PlatformIO IDE** - The next-generation integrated development environment for IoT.
C/C++ Intelligent Code Completion and Smart Code Linter for the super-fast coding.
Multi-projects workflow with Multiple Panes. Themes Support with dark and light colors.
Built-in Terminal with PlatformIO CLI tool and support for the powerful Serial Port Monitor.
@ -176,10 +173,11 @@ Frameworks:
* `Arduino <http://platformio.org/frameworks/arduino>`_
* `CMSIS <http://platformio.org/frameworks/cmsis>`_
* `libOpenCM3 <http://platformio.org/frameworks/libopencm3>`_
* `Energia <http://platformio.org/frameworks/energia>`_
* `SPL <http://platformio.org/frameworks/spl>`_
* `libOpenCM3 <http://platformio.org/frameworks/libopencm3>`_
* `mbed <http://platformio.org/frameworks/mbed>`_
* `Simba <http://platformio.org/frameworks/simba>`_
* `SPL <http://platformio.org/frameworks/spl>`_
* `WiringPi <http://platformio.org/frameworks/wiringpi>`_
For further details, please refer to `What is PlatformIO? <http://docs.platformio.org/en/latest/faq.html#what-is-platformio>`_

View File

@ -1,16 +0,0 @@
machine:
python:
version: 2.7
checkout:
post:
- git submodule update --init
- pip install -U pip setuptools virtualenv
dependencies:
pre:
- pip install tox
test:
override:
- tox -e py27

View File

@ -270,6 +270,28 @@ nav {
font-weight: 500;
}
.navbar .github-corner {
display: none;
}
.navbar .github-corner svg {
fill: #fff;
color: #080808;
position: absolute;
top: -1px;
right: 0;
border: 0;
width: 50px;
height: 50px;
transform: scale(1, 1);
}
@media screen and (min-width: 992px) {
.navbar .github-corner {
display: block;
}
}
.top-banner {
display: block;
padding: 10px 20px;

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

View File

@ -3,6 +3,13 @@
{% block extrafooter %}
<link rel="stylesheet" href="{{ pathto('_static/extra.css', 1) }}" type="text/css" />
<header id="pionav" class="navbar navbar-inverse navbar-fixed-top">
<a href="https://github.com/platformio" target="_blank" class="github-corner">
<svg viewBox="0 0 250 250">
<path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path>
<path d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2" fill="currentColor" style="transform-origin: 130px 106px;" class="octo-arm"></path>
<path d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z" fill="currentColor" class="octo-body"></path>
</svg>
</a>
<div class="container container-fluid">
<div class="navbar-header">
<a class="navbar-brand" href="http://platformio.org">PlatformIO</a>
@ -19,7 +26,7 @@
<ul class="nav navbar-nav navbar-right">
<li class="active"><a href="http://docs.platformio.org"><i class="fa fa-book fa-lg"></i>Docs</a></li>
<li><a href="http://community.platformio.org"><i class="fa fa-comments-o fa-lg"></i>Community</a></li>
<li><a href="https://community.platformio.org"><i class="fa fa-comments-o fa-lg"></i>Community</a></li>
<li><a href="http://platformio.org/contact"><i class="fa fa-envelope fa-lg"></i>Contact</a></li>
</ul>
</div>

View File

@ -23,6 +23,14 @@ Here are recent articles about PlatformIO:
2016
^^^^
* Apr 23, 2016 - **Al Williams** - `Hackaday: Atomic Arduino (and Other) Development <http://hackaday.com/2016/04/23/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) <http://www.sathittham.com/platformio/platformio-ide/>`_
* Apr 11, 2016 - **Matjaz Trcek** - `Top 5 Arduino integrated development environments <https://codeandunicorns.com/top-5-arduino-integrated-development-environments-ide/>`_
* Apr 06, 2016 - **Aleks** - `PlatformIO ausprobiert (Tried PlatformIO, German) <http://5volt-junkie.net/platformio/>`_
* Mar 30, 2016 - **Brandon Cannaday** - `Getting Started with PlatformIO and ESP8266 NodeMcu <https://www.losant.com/blog/getting-started-with-platformio-esp8266-nodemcu>`_
* Mar 29, 2016 - **Pablo Peñalve** - `PlatformIO + Geany + Raspberry PI, Spanish <http://ret-catriel.blogspot.com/2016/03/framework-platformio-geany-raspberry-pi.html>`_
* Mar 24, 2016 - **NAzT** - `PlatformIO และการปรับแต่ง เพื่อใช้สำหรับพัฒนา Arduino Library (PlatformIO and advanced development for Arduino Library, Thai) <https://cmmakerclub.com/tools-2/config-platformio-for-arduino-framework-developer/>`_
* Mar 16, 2016 - **Jakub Skořepa** - `Instalace PlatformIO (PlatformIO IDE Installation, Czech) <http://ok1kvk.cz/clanek/2016/instalace-platformio/>`_
* Mar 12, 2016 - **Peter Marks** - `PlatformIO, the Arduino IDE for programmers <http://blog.marxy.org/2016/03/platformio-arduino-ide-for-programmers.html>`_
* Mar 12, 2016 - **Richard Arthurs** - `Getting Started With PlatformIO <http://richarthurs.com/2016/03/12/platformio-review-and-first-thoughts/>`_
* Mar 07, 2016 - **Joran Jessurun** - `Nieuwe wereld met PlatformIO (New world with PlatformIO, Dutch) <http://blog.wisclub.nl/#post178>`_
@ -33,6 +41,7 @@ Here are recent articles about PlatformIO:
* Feb 23, 2016 - **Ptarmigan Labs** - `ESP8266 Over The Air updating what are the options? <https://ptarmiganlabs.com/blog/2016/02/23/esp8266-over-the-air-updating-what-are-the-options/>`_
* Feb 22, 2016 - **Grzegorz Hołdys** - `How to Integrate PlatformIO with Netbeans <http://www.instructables.com/id/How-to-Integrate-PlatformIO-With-Netbeans/>`_
* Feb 19, 2016 - **Embedds** - `Develop easier with PlatformIO ecosystem <http://www.embedds.com/develop-easier-with-platformio-ecosystem/>`_
* Feb 13, 2016 - **Robert Cudmore** - `Programming an arduino with PlatformIO <http://blog.cudmore.io/post/2016/02/13/Programming-an-arduino-with-platformio/>`_
* Jan 24, 2016 - **Sergey Prilukin** - `How to use IntelliJ IDEA to develop and upload software for micro controllers like Arduino <http://jandevblog.blogspot.com/2016/01/how-to-use-intellij-idea-to-develop-and.html>`_
* Jan 16, 2016 - **Dani Eichhorn** - `ESP8266 Arduino IDE Alternative: PlatformIO <http://blog.squix.ch/2016/01/esp8266-arduino-ide-alternative.html>`_
* Jan 11, 2016 - **David Mills, Ph.D.** - `STM NUCLEOF401RE TIMER IO <http://webshed.org/wiki/STM_NUCLEOF401RE_TIMER_IO>`_

View File

@ -106,7 +106,7 @@ Install dependent library using :ref:`librarymanager`
# Libraries from PlatformIO Library Registry:
#
# http://platformio.org/lib/show/1/OneWire
platformio lib install 1
- platformio lib install 1
Manually download dependent library and include in build process via ``--lib`` option
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@ -117,8 +117,8 @@ Manually download dependent library and include in build process via ``--lib`` o
- pip install -U platformio
# download library to the temporary directory
wget https://github.com/PaulStoffregen/OneWire/archive/master.zip -O /tmp/onewire_source.zip
unzip /tmp/onewire_source.zip -d /tmp/
- wget https://github.com/PaulStoffregen/OneWire/archive/master.zip -O /tmp/onewire_source.zip
- unzip /tmp/onewire_source.zip -d /tmp/
script:
- platformio ci --lib="/tmp/OneWire-master" --board=TYPE_1 --board=TYPE_2 --board=TYPE_N
@ -137,8 +137,7 @@ PlatformIO allows to specify own build flags using :envvar:`PLATFORMIO_BUILD_FLA
install:
- pip install -U platformio
export PLATFORMIO_BUILD_FLAGS=-D GLOBAL_MACROS_FOR_ALL_TEST_ENV
- export PLATFORMIO_BUILD_FLAGS="-D GLOBAL_MACROS_FOR_ALL_TEST_ENV"
For the more details, please follow to

View File

@ -29,7 +29,7 @@ Preconfigured demo projects are located in `PlatformIO GitHub <https://github.co
Used in demo
~~~~~~~~~~~~
1. Source code of `Wiring Blink Example <https://github.com/platformio/platformio/tree/develop/examples/wiring-blink>`_
1. Source code of `Wiring Blink Example <https://github.com/platformio/platformio-examples/tree/develop/wiring-blink>`_
2. :ref:`cmd_run` command
3. :ref:`platformio run -t upload <cmd_run>` command.

View File

@ -59,6 +59,11 @@ To enable ``zsh`` completion please run these commands:
For permanent command completion you need to place commands above to
``~/.bashrc`` or ``~/.zshrc`` file.
PlatformIO IDE
--------------
Please refer to :ref:`PlatformIO IDE Frequently Asked Questions <ide_atom_faq>`.
.. _faq_troubleshooting:
Troubleshooting
@ -89,8 +94,7 @@ Where is ``platformio`` binary installed? Run this command in Terminal
# for Unix
which platformio
echo $PATH
# for Windows OS
Windows OS
where platformio
echo %PATH%

View File

@ -36,6 +36,12 @@ Platforms
* - :ref:`platform_espressif`
- Espressif Systems is a privately held fabless semiconductor company. They provide wireless communications and Wi-Fi chips which are widely used in mobile devices and the Internet of Things applications.
* - :ref:`platform_intel_arc32`
- ARC embedded processors are a family of 32-bit CPUs that are widely used in SoC devices for storage, home, mobile, automotive, and Internet of Things applications.
* - :ref:`platform_microchippic32`
- Microchip's 32-bit portfolio with the MIPS microAptiv or M4K core offer high performance microcontrollers, and all the tools needed to develop your embedded projects. PIC32 MCUs gives your application the processing power, memory and peripherals your design needs!
* - :ref:`platform_nordicnrf51`
- The Nordic nRF51 Series is a family of highly flexible, multi-protocol, system-on-chip (SoC) devices for ultra-low power wireless applications. nRF51 Series devices support a range of protocol stacks including Bluetooth Smart (previously called Bluetooth low energy), ANT and proprietary 2.4GHz protocols such as Gazell.
@ -53,6 +59,26 @@ Boards
`PlatformIO Boards Explorer <http://platformio.org/boards>`_
* For more detailed ``board`` information please scroll tables below by horizontal.
4DSystems
~~~~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``picadillo_35t``
- `4DSystems PICadillo 35T <http://www.4dsystems.com.au/product/Picadillo_35T/>`_
- 32MX795F512L
- 80 MHz
- 512 Kb
- 128 Kb
Adafruit
~~~~~~~~
@ -434,6 +460,117 @@ BitWizard
- 32 Kb
- 2 Kb
Digilent
~~~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``cerebot32mx4``
- `Digilent Cerebot 32MX4 <http://store.digilentinc.com/cerebot-32mx4-limited-time-see-chipkit-pro-mx4/>`_
- 32MX460F512L
- 80 MHz
- 512 Kb
- 32 Kb
* - ``cerebot32mx7``
- `Digilent Cerebot 32MX7 <http://www.microchip.com/Developmenttools/ProductDetails.aspx?PartNO=TDGL004>`_
- 32MX795F512L
- 80 MHz
- 512 Kb
- 128 Kb
* - ``chipkit_cmod``
- `Digilent chipKIT Cmod <http://store.digilentinc.com/chipkit-cmod-breadboardable-mz-microcontroller-board/>`_
- 32MX150F128D
- 40 MHz
- 128 Kb
- 32 Kb
* - ``chipkit_dp32``
- `Digilent chipKIT DP32 <http://store.digilentinc.com/chipkit-dp32-dip-package-prototyping-microcontroller-board/>`_
- 32MX250F128B
- 40 MHz
- 128 Kb
- 32 Kb
* - ``chipkit_mx3``
- `Digilent chipKIT MX3 <http://store.digilentinc.com/chipkit-mx3-microcontroller-board-with-pmod-headers/>`_
- 32MX320F128H
- 80 MHz
- 128 Kb
- 16 Kb
* - ``chipkit_pro_mx4``
- `Digilent chipKIT Pro MX4 <http://store.digilentinc.com/chipkit-pro-mx4-embedded-systems-trainer-board/>`_
- 32MX460F512L
- 80 MHz
- 512 Kb
- 32 Kb
* - ``chipkit_pro_mx7``
- `Digilent chipKIT Pro MX7 <http://store.digilentinc.com/chipkit-pro-mx7-advanced-peripherals-embedded-systems-trainer-board/>`_
- 32MX795F512L
- 80 MHz
- 512 Kb
- 128 Kb
* - ``chipkit_uc32``
- `Digilent chipKIT uC32 <http://store.digilentinc.com/chipkit-uc32-basic-microcontroller-board-with-uno-r3-headers/>`_
- 32MX340F512H
- 80 MHz
- 512 Kb
- 32 Kb
* - ``chipkit_wf32``
- `Digilent chipKIT WF32 <http://store.digilentinc.com/chipkit-wf32-wifi-enabled-microntroller-board-with-uno-r3-headers/>`_
- 32MX695F512L
- 80 MHz
- 512 Kb
- 128 Kb
* - ``chipkit_wifire``
- `Digilent chipKIT WiFire <http://store.digilentinc.com/chipkit-wi-fire-wifi-enabled-mz-microcontroller-board/>`_
- 32MZ2048ECG100
- 200 MHz
- 2048 Kb
- 512 Kb
* - ``mega_pic32``
- `Digilent chipKIT MAX32 <http://store.digilentinc.com/chipkit-max32-microcontroller-board-with-mega-r3-headers/>`_
- 32MX795F512L
- 80 MHz
- 512 Kb
- 128 Kb
* - ``openbci``
- `Digilent OpenScope <http://store.digilentinc.com/>`_
- 32MX250F128B
- 40 MHz
- 128 Kb
- 32 Kb
* - ``openscope``
- `Digilent OpenScope <http://store.digilentinc.com/>`_
- 32MZ2048EFG124
- 200 MHz
- 2048 Kb
- 512 Kb
* - ``uno_pic32``
- `Digilent chipKIT UNO32 <http://store.digilentinc.com/chipkit-uno32-basic-microcontroller-board-retired-see-chipkit-uc32/>`_
- 32MX320F128H
- 80 MHz
- 128 Kb
- 16 Kb
Digistump
~~~~~~~~~
@ -631,6 +768,115 @@ Espressif
- 4096 Kb
- 50 Kb
Fubarino
~~~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``fubarino_mini``
- `Fubarino Mini <http://fubarino.org/mini/>`_
- 32MX250F128D
- 48 MHz
- 128 Kb
- 32 Kb
* - ``fubarino_sd``
- `Fubarino SD (1.5) <http://fubarino.org/sd/index.html>`_
- 32MX795F512H
- 80 MHz
- 512 Kb
- 128 Kb
Generic ATTiny
~~~~~~~~~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``attiny13``
- `Generic ATTiny13 <http://www.atmel.com/devices/ATTINY13.aspx>`_
- ATTINY13
- 9 MHz
- 1 Kb
- 0.0625 Kb
* - ``attiny24``
- `Generic ATTiny24 <http://www.atmel.com/devices/ATTINY24.aspx>`_
- ATTINY24
- 8 MHz
- 2 Kb
- 0.125 Kb
* - ``attiny25``
- `Generic ATTiny25 <http://www.atmel.com/devices/ATTINY25.aspx>`_
- ATTINY25
- 8 MHz
- 2 Kb
- 0.125 Kb
* - ``attiny44``
- `Generic ATTiny44 <http://www.atmel.com/devices/ATTINY44.aspx>`_
- ATTINY44
- 8 MHz
- 4 Kb
- 0.25 Kb
* - ``attiny45``
- `Generic ATTiny45 <http://www.atmel.com/devices/ATTINY45.aspx>`_
- ATTINY45
- 8 MHz
- 4 Kb
- 0.25 Kb
* - ``attiny84``
- `Generic ATTiny84 <http://www.atmel.com/devices/ATTINY84.aspx>`_
- ATTINY84
- 8 MHz
- 8 Kb
- 0.5 Kb
* - ``attiny85``
- `Generic ATTiny85 <http://www.atmel.com/devices/ATTINY85.aspx>`_
- 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 <https://www.arduino.cc/en/Main/ArduinoBoard101>`_
- ARCV2EM
- 32 MHz
- 192 Kb
- 80 Kb
LightUp
~~~~~~~
@ -678,6 +924,61 @@ LowPowerLab
- 128 Kb
- 16 Kb
Mcudude
~~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``mightycore1284``
- `MightyCore ATmega1284 <https://www.tindie.com/products/MCUdude/dip-40-arduino-compatible-development-board>`_
- ATMEGA1284P
- 16 MHz
- 128 Kb
- 16 Kb
* - ``mightycore16``
- `MightyCore ATmega16 <https://www.tindie.com/products/MCUdude/dip-40-arduino-compatible-development-board>`_
- ATMEGA16
- 16 MHz
- 16 Kb
- 1 Kb
* - ``mightycore164``
- `MightyCore ATmega164 <https://www.tindie.com/products/MCUdude/dip-40-arduino-compatible-development-board>`_
- ATMEGA164P
- 16 MHz
- 16 Kb
- 1 Kb
* - ``mightycore32``
- `MightyCore ATmega32 <https://www.tindie.com/products/MCUdude/dip-40-arduino-compatible-development-board>`_
- ATMEGA32
- 16 MHz
- 32 Kb
- 2 Kb
* - ``mightycore324``
- `MightyCore ATmega324 <https://www.tindie.com/products/MCUdude/dip-40-arduino-compatible-development-board>`_
- ATMEGA324P
- 16 MHz
- 32 Kb
- 2 Kb
* - ``mightycore644``
- `MightyCore ATmega644 <https://www.tindie.com/products/MCUdude/dip-40-arduino-compatible-development-board>`_
- ATMEGA644P
- 16 MHz
- 64 Kb
- 4 Kb
Microduino
~~~~~~~~~~
@ -801,6 +1102,40 @@ Olimex
- 2048 Kb
- 80 Kb
* - ``pinguino32``
- `Olimex PIC32-PINGUINO <https://www.olimex.com/Products/Duino/PIC32/PIC32-PINGUINO/open-source-hardware>`_
- 32MX440F256H
- 80 MHz
- 256 Kb
- 32 Kb
PONTECH
~~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``quick240_usb``
- `PONTECH quicK240 <http://quick240.com/quicki/>`_
- 32MX795F512L
- 80 MHz
- 512 Kb
- 128 Kb
* - ``usbono_pic32``
- `PONTECH UAV100 <http://www.pontech.com/productdisplay/uav100>`_
- 32MX440F512H
- 80 MHz
- 512 Kb
- 32 Kb
PanStamp
~~~~~~~~
@ -1024,6 +1359,26 @@ Sanguino
- 64 Kb
- 4 Kb
SeeedStudio
~~~~~~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``cui32stem``
- `SeeedStudio CUI32stem <http://www.seeedstudio.com/wiki/CUI32Stem>`_
- 32MX795F512H
- 80 MHz
- 512 Kb
- 128 Kb
SparkFun
~~~~~~~~
@ -1236,6 +1591,33 @@ TinyCircuits
- 32 Kb
- 2 Kb
UBW32
~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``ubw32_mx460``
- `UBW32 MX460 <http://www.schmalzhaus.com/UBW32/>`_
- 32MX460F512L
- 80 MHz
- 512 Kb
- 32 Kb
* - ``ubw32_mx795``
- `UBW32 MX795 <http://www.schmalzhaus.com/UBW32/>`_
- 32MX795F512L
- 80 MHz
- 512 Kb
- 128 Kb
WeMos
~~~~~
@ -1290,6 +1672,26 @@ Wicked Device
- 128 Kb
- 16 Kb
element14
~~~~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``chipkit_pi``
- `Element14 chipKIT Pi <http://www.element14.com/community/community/knode/dev_platforms_kits/element14_dev_kits/microchip-chipkit/chipkit_pi>`_
- 32MX250F128B
- 40 MHz
- 128 Kb
- 32 Kb
ubIQio
~~~~~~

View File

@ -20,6 +20,6 @@ Examples
--------
All project examples are located in PlatformIO repository
`Examples for CMSIS framework <https://github.com/platformio/platformio/tree/develop/examples/stm32>`_.
`Examples for CMSIS framework <https://github.com/platformio/platformio-examples/tree/develop/stm32>`_.
* `Blink <https://github.com/platformio/platformio/tree/develop/examples/stm32/stm32-cmsis-blink>`_
* `Blink <https://github.com/platformio/platformio-examples/tree/develop/stm32/stm32-cmsis-blink>`_

View File

@ -75,6 +75,13 @@ TI
- 128 Kb
- 1 Kb
* - ``lpmsp430fr4133``
- `TI LaunchPad w/ msp430fr4133 <http://www.ti.com/tool/msp-exp430fr4133>`_
- MSP430G2553
- 16 MHz
- 16 Kb
- 2 Kb
* - ``lpmsp430fr5739``
- `TI FraunchPad w/ msp430fr5739 <http://www.ti.com/tool/msp-exp430fr5739>`_
- MSP430FR5739
@ -89,6 +96,13 @@ TI
- 64 Kb
- 1 Kb
* - ``lpmsp430fr6989``
- `TI LaunchPad w/ msp430fr6989 <http://www.ti.com/tool/msp-exp430fr6989>`_
- MSP430G2553
- 16 MHz
- 128 Kb
- 2 Kb
* - ``lpmsp430g2231``
- `TI LaunchPad w/ msp430g2231 (1 MHz) <http://www.ti.com/ww/en/launchpad/launchpads-msp430-msp-exp430g2.html>`_
- MSP430G2231

View File

@ -22,5 +22,6 @@ Frameworks
energia
libopencm3
mbed
simba
spl
wiringpi

View File

@ -13,6 +13,6 @@ Examples
--------
All project examples are located in PlatformIO repository
`Examples for libOpenCM3 framework <https://github.com/platformio/platformio/tree/develop/examples/stm32>`_.
`Examples for libOpenCM3 framework <https://github.com/platformio/platformio-examples/tree/develop/stm32>`_.
* `Blink <https://github.com/platformio/platformio/tree/develop/examples/stm32/stm32-opencm3-blink>`_
* `Blink <https://github.com/platformio/platformio-examples/tree/develop/stm32/stm32-opencm3-blink>`_

View File

@ -56,6 +56,26 @@ Boards
`PlatformIO Boards Explorer <http://platformio.org/boards>`_
* For more detailed ``board`` information please scroll tables below by horizontal.
96Boards
~~~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``b96b_f446ve``
- `96Boards B96B-F446VE <https://developer.mbed.org/platforms/ST-B96B-F446VE/>`_
- STM32F446VET6
- 168 MHz
- 512 Kb
- 128 Kb
Atmel
~~~~~
@ -90,6 +110,26 @@ Atmel
- 256 Kb
- 32 Kb
BBC
~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``bbcmicrobit``
- `BBC micro:bit <https://developer.mbed.org/platforms/Microbit/>`_
- NRF51822
- 16 MHz
- 256 Kb
- 16 Kb
CQ Publishing
~~~~~~~~~~~~~
@ -548,6 +588,13 @@ ST
- 512 Kb
- 96 Kb
* - ``nucleo_f410rb``
- `ST Nucleo F410RB <https://developer.mbed.org/platforms/ST-Nucleo-F410RB/>`_
- STM32F410RBT6
- 100 MHz
- 128 Kb
- 32 Kb
* - ``nucleo_f411re``
- `ST Nucleo F411RE <https://developer.mbed.org/platforms/ST-Nucleo-F411RE/>`_
- STM32F411RET6
@ -569,6 +616,13 @@ ST
- 64 Kb
- 8 Kb
* - ``nucleo_l073rz``
- `ST Nucleo L073RZ <https://developer.mbed.org/platforms/ST-Nucleo-L073RZ/>`_
- STM32L073RZ
- 32 MHz
- 192 Kb
- 20 Kb
* - ``nucleo_l152re``
- `ST Nucleo L152RE <https://developer.mbed.org/platforms/ST-Nucleo-L152RE/>`_
- STM32L152RET6

View File

@ -23,10 +23,10 @@ Examples
--------
All project examples are located in PlatformIO repository
`Examples for MBED framework <https://github.com/platformio/platformio/tree/develop/examples/mbed>`_.
`Examples for MBED framework <https://github.com/platformio/platformio-examples/tree/develop/mbed>`_.
* `Blink <https://github.com/platformio/platformio/tree/develop/examples/mbed/mbed-blink>`_
* `DSP <https://github.com/platformio/platformio/tree/develop/examples/mbed/mbed-dsp>`_
* `HTTP Client <https://github.com/platformio/platformio/tree/develop/examples/mbed/mbed-http-client>`_
* `RTOS <https://github.com/platformio/platformio/tree/develop/examples/mbed/mbed-rtos>`_
* `Serial <https://github.com/platformio/platformio/tree/develop/examples/mbed/mbed-serial>`_
* `Blink <https://github.com/platformio/platformio-examples/tree/develop/mbed/mbed-blink>`_
* `DSP <https://github.com/platformio/platformio-examples/tree/develop/mbed/mbed-dsp>`_
* `HTTP Client <https://github.com/platformio/platformio-examples/tree/develop/mbed/mbed-http-client>`_
* `RTOS <https://github.com/platformio/platformio-examples/tree/develop/mbed/mbed-rtos>`_
* `Serial <https://github.com/platformio/platformio-examples/tree/develop/mbed/mbed-serial>`_

169
docs/frameworks/simba.rst Normal file
View File

@ -0,0 +1,169 @@
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
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.
.. _framework_simba:
Framework ``simba``
===================
Simba is an RTOS and build framework. It aims to make embedded programming easy and portable.
For more detailed information please visit `vendor site <http://simba-os.readthedocs.org>`_.
.. contents::
Platforms
---------
.. list-table::
:header-rows: 1
* - Name
- Description
* - :ref:`platform_atmelavr`
- Atmel AVR 8- and 32-bit MCUs deliver a unique combination of performance, power efficiency and design flexibility. Optimized to speed time to market-and easily adapt to new ones-they are based on the industrys most code-efficient architecture for C and assembly programming.
* - :ref:`platform_atmelsam`
- Atmel | SMART offers Flash- based ARM products based on the ARM Cortex-M0+, Cortex-M3 and Cortex-M4 architectures, ranging from 8KB to 2MB of Flash including a rich peripheral and feature mix.
* - :ref:`platform_espressif`
- Espressif Systems is a privately held fabless semiconductor company. They provide wireless communications and Wi-Fi chips which are widely used in mobile devices and the Internet of Things applications.
Boards
------
.. note::
* You can list pre-configured boards by :ref:`cmd_boards` command or
`PlatformIO Boards Explorer <http://platformio.org/boards>`_
* For more detailed ``board`` information please scroll tables below by horizontal.
Adafruit
~~~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``huzzah``
- `Adafruit HUZZAH ESP8266 <https://www.adafruit.com/products/2471>`_
- ESP8266
- 80 MHz
- 4096 Kb
- 80 Kb
Arduino
~~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``due``
- `Arduino Due (Programming Port) <http://arduino.cc/en/Main/arduinoBoardDue>`_
- SAM3X8E
- 84 MHz
- 512 Kb
- 32 Kb
* - ``megaatmega2560``
- `Arduino Mega or Mega 2560 ATmega2560 (Mega 2560) <http://arduino.cc/en/Main/arduinoBoardMega2560>`_
- ATMEGA2560
- 16 MHz
- 256 Kb
- 8 Kb
* - ``nanoatmega328``
- `Arduino Nano ATmega328 <http://arduino.cc/en/Main/ArduinoBoardNano>`_
- ATMEGA328P
- 16 MHz
- 32 Kb
- 2 Kb
* - ``uno``
- `Arduino Uno <http://arduino.cc/en/Main/ArduinoBoardUno>`_
- ATMEGA328P
- 16 MHz
- 32 Kb
- 2 Kb
Espressif
~~~~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``esp01``
- `Espressif Generic ESP8266 ESP-01 512k <http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family>`_
- ESP8266
- 80 MHz
- 512 Kb
- 80 Kb
* - ``esp01_1m``
- `Espressif Generic ESP8266 ESP-01 1M <http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family>`_
- ESP8266
- 80 MHz
- 1024 Kb
- 80 Kb
* - ``esp12e``
- `Espressif ESP8266 ESP-12E <http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family>`_
- ESP8266
- 80 MHz
- 4096 Kb
- 80 Kb
NodeMCU
~~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``nodemcu``
- `NodeMCU 0.9 (ESP-12 Module) <http://www.nodemcu.com/>`_
- ESP8266
- 80 MHz
- 4096 Kb
- 80 Kb
* - ``nodemcuv2``
- `NodeMCU 1.0 (ESP-12E Module) <http://www.nodemcu.com/>`_
- ESP8266
- 80 MHz
- 4096 Kb
- 80 Kb
.. include:: simba_extra.rst

18
docs/frameworks/simba_extra.rst Executable file
View File

@ -0,0 +1,18 @@
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
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.
Examples
--------
All project examples are located in PlatformIO repository
`Examples for Simba framework <https://github.com/platformio/platformio-examples/tree/develop/examples/simba>`_.
* `Blink <https://github.com/platformio/platformio-examples/tree/develop/simba/blink>`_

View File

@ -13,6 +13,6 @@ Examples
--------
All project examples are located in PlatformIO repository
`Examples for SPL framework <https://github.com/platformio/platformio/tree/develop/examples/stm32>`_.
`Examples for SPL framework <https://github.com/platformio/platformio-examples/tree/develop/stm32>`_.
* `Blink <https://github.com/platformio/platformio/tree/develop/examples/stm32/stm32-spl-blink>`_
* `Blink <https://github.com/platformio/platformio-examples/tree/develop/stm32/stm32-spl-blink>`_

View File

@ -13,7 +13,7 @@ Examples
--------
All project examples are located in PlatformIO repository
`Examples for WiringPi framework <https://github.com/platformio/platformio/tree/develop/examples/raspberrypi>`_.
`Examples for WiringPi framework <https://github.com/platformio/platformio-examples/tree/develop/raspberrypi>`_.
* `Blink <https://github.com/platformio/platformio/tree/develop/examples/raspberrypi/wiringpi-blink>`_
* `Serial <https://github.com/platformio/platformio/tree/develop/examples/raspberrypi/wiringpi-serial>`_
* `Blink <https://github.com/platformio/platformio-examples/tree/develop/raspberrypi/wiringpi-blink>`_
* `Serial <https://github.com/platformio/platformio-examples/tree/develop/raspberrypi/wiringpi-serial>`_

View File

@ -19,6 +19,7 @@ IDE Integration
ide/atom
ide/clion
ide/codeblocks
ide/eclipse
ide/emacs
ide/netbeans

View File

@ -11,7 +11,7 @@
.. note::
We are proud to present our official `PlatformIO IDE <http://platformio.org/platformio-ide>`_ -
The next generation integrated development environment for IoT.
The next-generation integrated development environment for IoT.
* Cross-platform build system without external dependencies to the OS software:

View File

@ -14,7 +14,7 @@
PlatformIO IDE for Atom
=======================
PlatformIO IDE is the next generation integrated development environment for IoT:
PlatformIO IDE is the next-generation integrated development environment for IoT:
* Cross-platform build system without external dependencies to the OS software:
@ -44,7 +44,7 @@ config file.
Installation
------------
PlatformIO IDE is the next generation integrated development environment for IoT.
PlatformIO IDE is the next-generation integrated development environment for IoT.
It's built on top of `GitHub's Atom "hackable" text editor <https://atom.io>`_.
If you have already Atom installed, please install `PlatformIO IDE for Atom package <https://atom.io/packages/platformio-ide>`_.
@ -53,25 +53,7 @@ If you have already Atom installed, please install `PlatformIO IDE for Atom pack
PlatformIO CLI is built into PlatformIO IDE and you will be able to use it
within PlatformIO IDE Terminal.
1. IDE Installation
~~~~~~~~~~~~~~~~~~~
.. note::
If you don't have Atom installed yet, we propose to download
`PlatformIO IDE for Atom bundle <http://platformio.org/platformio-ide>`_
with built-in auto installer (optional).
1. Download and install the `latest official Atom text editor <https://atom.io>`_.
2. Open Atom Package Manager and install `platformio-ide <https://atom.io/packages/platformio-ide>`_
Atom package (be patient and let the installation complete)
- **Mac OS X**: ``Menu: Atom > Preferences > Install``
- **Windows**: ``Menu: File > Settings > Install``
- **Linux**: ``Menu: Edit > Preferences > Install``
.. image:: ../_static/ide-atom-platformio-install.png
2. Python Interpreter
1. Python Interpreter
~~~~~~~~~~~~~~~~~~~~~
PlatformIO IDE is based on PlatformIO CLI which is written in
@ -86,14 +68,15 @@ on the "Customize" stage, otherwise ``python`` command will not be available.
.. _ide_atom_installation_clang:
3. Clang for Intelligent Code Autocompletion
2. Clang for Intelligent Code Autocompletion
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PlatformIO IDE uses `clang <http://clang.llvm.org>`_ for the Intelligent Code Autocompletion.
To check that ``clang`` is available in your system, please open
Terminal and run ``clang --version``. If ``clang`` is not installed, then install it:
- **Mac OS X**: Install the latest Xcode along with the latest Command Line Tools
- **Mac OS X**: `Install the latest Xcode <https://developer.apple.com/xcode/download/>`_
along with the latest Command Line Tools
(they are installed automatically when you run ``clang`` in Terminal for the
first time, or manually by running ``xcode-select --install``
- **Windows**: Download the latest `Clang for Windows <http://llvm.org/releases/download.html>`_.
@ -109,6 +92,24 @@ Terminal and run ``clang --version``. If ``clang`` is not installed, then instal
not be reflected in code linter. You need ``Menu: PlatformIO >
Rebuild C/C++ Project Index (Autocomplete, Linter)``.
3. IDE Installation
~~~~~~~~~~~~~~~~~~~
.. note::
If you don't have Atom installed yet, we propose to download
`PlatformIO IDE for Atom bundle <http://platformio.org/platformio-ide>`_
with built-in auto installer (optional).
- Download and install the `latest official Atom text editor <https://atom.io>`_.
- Open Atom Package Manager and install `platformio-ide <https://atom.io/packages/platformio-ide>`_
Atom package (be patient and let the installation complete)
- **Mac OS X**: ``Menu: Atom > Preferences > Install``
- **Windows**: ``Menu: File > Settings > Install``
- **Linux**: ``Menu: Edit > Preferences > Install``
.. image:: ../_static/ide-atom-platformio-install.png
.. _atom_ide_quickstart:
Quick Start
@ -431,9 +432,37 @@ To force Smart Code Linter to use Arduino files as C++ please
2. Perform all steps from :ref:`ide_atom_knownissues_sclarduino_manually`
(without renaming to ``.cpp``).
.. _ide_atom_faq:
Frequently Asked Questions
--------------------------
Automatically save on build
~~~~~~~~~~~~~~~~~~~~~~~~~~~
If you want automatically save all edited files when triggering a build, please follow to
``Menu: PlatformIO > Settings > Build`` and check ``Automatically save on build``.
Jump to Declaration
~~~~~~~~~~~~~~~~~~~
Click on a function/include, press ``F3`` and you will be taken directly to
the declaration for that function.
Code Formatting
~~~~~~~~~~~~~~~
You need to install `atom-beautify <https://atom.io/packages/atom-beautify>`_
package and `C/C++ Uncrustify Code Beautifier <http://sourceforge.net/projects/uncrustify/>`_.
Articles / Manuals
------------------
* Apr 23, 2016 - **Al Williams** - `Hackaday: Atomic Arduino (and Other) Development <http://hackaday.com/2016/04/23/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) <http://www.sathittham.com/platformio/platformio-ide/>`_
* Apr 11, 2016 - **Matjaz Trcek** - `Top 5 Arduino integrated development environments <https://codeandunicorns.com/top-5-arduino-integrated-development-environments-ide/>`_
* Apr 06, 2016 - **Aleks** - `PlatformIO ausprobiert (Tried PlatformIO, German) <http://5volt-junkie.net/platformio/>`_
* Mar 30, 2016 - **Brandon Cannaday** - `Getting Started with PlatformIO and ESP8266 NodeMcu <https://www.getstructure.io/blog/getting-started-with-platformio-esp8266-nodemcu>`_
* Mar 12, 2016 - **Peter Marks** - `PlatformIO, the Arduino IDE for programmers <http://blog.marxy.org/2016/03/platformio-arduino-ide-for-programmers.html>`_
* Mar 05, 2016 - **brichacek.net** - `PlatformIO otevřený ekosystém pro vývoj IoT (PlatformIO an open source ecosystem for IoT development, Czech) <http://blog.brichacek.net/platformio-otevreny-ekosystem-pro-vyvoj-iot/>`_
* Mar 04, 2016 - **Ricardo Vega** - `Programa tu Arduino desde Atom (Program your Arduino from Atom, Spanish) <http://ricveal.com/blog/programa-arduino-desde-atom/>`_

View File

@ -73,7 +73,7 @@ the screenshot below):
(will be created in project directory after initialization).
``*.ino`` file isn't acceptable for ``add_executable`` command. You should
convert it manually to ``*.cpp``. See `project example <https://github.com/platformio/platformio/tree/develop/examples/ide/clion>`_.
convert it manually to ``*.cpp``. See `project example <https://github.com/platformio/platformio-examples/tree/develop/ide/clion>`_.
More info `CLion issue #CPP-3977 <https://youtrack.jetbrains.com/issue/CPP-3977>`_.
Active discussion is located in
@ -94,4 +94,4 @@ Examples
"Blink" Project
^^^^^^^^^^^^^^^
Source code of `CLion "Blink" Project <https://github.com/platformio/platformio/tree/develop/examples/ide/clion>`_.
Source code of `CLion "Blink" Project <https://github.com/platformio/platformio-examples/tree/develop/ide/clion>`_.

54
docs/ide/codeblocks.rst Normal file
View File

@ -0,0 +1,54 @@
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
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.
.. _ide_codeblocks:
CodeBlocks
==========
Code::Blocks is a free, open-source cross-platform IDE that supports multiple
compilers including GCC, Clang and Visual C++. It is developed in C++ using
wxWidgets as the GUI toolkit. Using a plugin architecture, its capabilities
and features are defined by the provided plugins. Currently, Code::Blocks is
oriented towards C, C++, and Fortran.
CodeBlocks IDE can be downloaded from `here <http://www.codeblocks.org/downloads>`_.
.. image:: ../_static/ide-platformio-codeblocks.png
:target: http://docs.platformio.org/en/latest/_images/ide-platformio-codeblocks.png
.. contents::
Integration
-----------
Choose board ``type`` using :ref:`cmd_boards` or `Embedded Boards Explorer <http://platformio.org/boards>`_
command and generate project via :option:`platformio init --ide` command:
.. code-block:: shell
platformio init --ide codeblocks --board %TYPE%
# For example, generate project for Arduino UNO
platformio init --ide codeblocks --board uno
Then:
1. Open this project via ``Menu: File > Open...``
2. Add new files to ``src`` directory (``*.c, *.cpp, *.ino, etc.``) via
``Menu: File > New > File...``
3. Build project using ``Menu: Build > Build``
4. Upload firmware using ``Menu: Build > Run``
.. warning::
The libraries which are added, installed or used in the project
after generating process wont be reflected in IDE. To fix it you
need to reinitialize project using :ref:`cmd_init` (repeat it).

View File

@ -86,4 +86,4 @@ Examples
"Blink" Project
^^^^^^^^^^^^^^^
Source code of `Eclipse "Blink" Project <https://github.com/platformio/platformio/tree/develop/examples/ide/eclipse>`_.
Source code of `Eclipse "Blink" Project <https://github.com/platformio/platformio-examples/tree/develop/ide/eclipse>`_.

View File

@ -193,4 +193,4 @@ Examples
"Blink" Project
^^^^^^^^^^^^^^^
Source code of `Qt Creator "Blink" Project <https://github.com/platformio/platformio/tree/develop/examples/ide/qtcreator>`_.
Source code of `Qt Creator "Blink" Project <https://github.com/platformio/platformio-examples/tree/develop/ide/qtcreator>`_.

View File

@ -192,4 +192,4 @@ Examples
"Blink" Project
^^^^^^^^^^^^^^^
Source code of `Sublime Text "Blink" Project <https://github.com/platformio/platformio/tree/develop/examples/ide/sublimetext>`_.
Source code of `Sublime Text "Blink" Project <https://github.com/platformio/platformio-examples/tree/develop/ide/sublimetext>`_.

View File

@ -153,7 +153,7 @@ Examples
"Blink" Project
^^^^^^^^^^^^^^^
Source code of `Visual Studio "Blink" Project <https://github.com/platformio/platformio/tree/develop/examples/ide/visualstudio>`_.
Source code of `Visual Studio "Blink" Project <https://github.com/platformio/platformio-examples/tree/develop/ide/visualstudio>`_.
Known issues
------------

View File

@ -15,7 +15,7 @@ PlatformIO is an open source ecosystem for IoT development
**Cross-platform build system and library manager. Continuous and IDE
integration. Arduino and MBED compatible. Ready for Cloud compiling.**
* **PlatformIO IDE** - The next generation integrated development environment for IoT.
* **PlatformIO IDE** - The next-generation integrated development environment for IoT.
C/C++ Intelligent Code Completion and Smart Code Linter for the super-fast coding.
Multi-projects workflow with Multiple Panes. Themes Support with dark and light colors.
Built-in Terminal with PlatformIO CLI tool and support for the powerful Serial Port Monitor.
@ -36,6 +36,7 @@ Silicon Labs EFM32, ST STM32, TI MSP430 & Tiva, Teensy, Arduino, mbed,
libOpenCM3, etc.*
* `Website <http://platformio.org>`_
* :ref:`ide_atom`
* `Web 2.0 Library Search <http://platformio.org/lib>`_ |
`Embedded Boards Explorer <http://platformio.org/boards>`_
* `Project Examples <https://github.com/platformio/platformio/tree/develop/examples>`_
@ -45,7 +46,7 @@ libOpenCM3, etc.*
`Twitter <https://twitter.com/PlatformIO_Org>`_ |
`Facebook <https://www.facebook.com/platformio>`_ |
`Hackaday <https://hackaday.io/project/7980-platformio>`_ |
`Forums <http://community.platformio.org>`_
`Forums <https://community.platformio.org>`_
Embedded Development. *Easier Than Ever.*
-----------------------------------------

View File

@ -201,7 +201,7 @@ dash. `Semantic Versioning <http://semver.org>`_ IS RECOMMENDED.
``branch`` is not specified, then default branch will be used.
We recommend to use :ref:`libjson_version` field and specify the real release
version and make appropriate target in the :ref:`libjson_repository`. In other
version and make appropriate tag in the :ref:`libjson_repository`. In other
case, users will receive updates for library with each new commit to
:ref:`libjson_repository`.

View File

@ -34,6 +34,9 @@ Packages
* - ``tool-avrdude``
- `AVRDUDE <http://www.nongnu.org/avrdude/>`_
* - ``framework-simba``
- `Simba Framework <https://github.com/eerimoq/simba>`_
* - ``framework-arduinoavr``
- `Arduino Wiring-based Framework (AVR Core, 1.6) <http://arduino.cc/en/Reference/HomePage>`_
@ -61,6 +64,9 @@ Frameworks
* - :ref:`framework_arduino`
- Arduino Wiring-based Framework allows writing cross-platform software to control devices attached to a wide range of Arduino boards to create all kinds of creative coding, interactive objects, spaces or physical experiences.
* - :ref:`framework_simba`
- Simba is an RTOS and build framework. It aims to make embedded programming easy and portable.
Boards
------
@ -491,6 +497,68 @@ Engduino
- 32 Kb
- 2.5 Kb
Generic ATTiny
~~~~~~~~~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``attiny13``
- `Generic ATTiny13 <http://www.atmel.com/devices/ATTINY13.aspx>`_
- ATTINY13
- 9 MHz
- 1 Kb
- 0.0625 Kb
* - ``attiny24``
- `Generic ATTiny24 <http://www.atmel.com/devices/ATTINY24.aspx>`_
- ATTINY24
- 8 MHz
- 2 Kb
- 0.125 Kb
* - ``attiny25``
- `Generic ATTiny25 <http://www.atmel.com/devices/ATTINY25.aspx>`_
- ATTINY25
- 8 MHz
- 2 Kb
- 0.125 Kb
* - ``attiny44``
- `Generic ATTiny44 <http://www.atmel.com/devices/ATTINY44.aspx>`_
- ATTINY44
- 8 MHz
- 4 Kb
- 0.25 Kb
* - ``attiny45``
- `Generic ATTiny45 <http://www.atmel.com/devices/ATTINY45.aspx>`_
- ATTINY45
- 8 MHz
- 4 Kb
- 0.25 Kb
* - ``attiny84``
- `Generic ATTiny84 <http://www.atmel.com/devices/ATTINY84.aspx>`_
- ATTINY84
- 8 MHz
- 8 Kb
- 0.5 Kb
* - ``attiny85``
- `Generic ATTiny85 <http://www.atmel.com/devices/ATTINY85.aspx>`_
- ATTINY85
- 8 MHz
- 8 Kb
- 0.5 Kb
LightUp
~~~~~~~
@ -538,6 +606,61 @@ LowPowerLab
- 128 Kb
- 16 Kb
Mcudude
~~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``mightycore1284``
- `MightyCore ATmega1284 <https://www.tindie.com/products/MCUdude/dip-40-arduino-compatible-development-board>`_
- ATMEGA1284P
- 16 MHz
- 128 Kb
- 16 Kb
* - ``mightycore16``
- `MightyCore ATmega16 <https://www.tindie.com/products/MCUdude/dip-40-arduino-compatible-development-board>`_
- ATMEGA16
- 16 MHz
- 16 Kb
- 1 Kb
* - ``mightycore164``
- `MightyCore ATmega164 <https://www.tindie.com/products/MCUdude/dip-40-arduino-compatible-development-board>`_
- ATMEGA164P
- 16 MHz
- 16 Kb
- 1 Kb
* - ``mightycore32``
- `MightyCore ATmega32 <https://www.tindie.com/products/MCUdude/dip-40-arduino-compatible-development-board>`_
- ATMEGA32
- 16 MHz
- 32 Kb
- 2 Kb
* - ``mightycore324``
- `MightyCore ATmega324 <https://www.tindie.com/products/MCUdude/dip-40-arduino-compatible-development-board>`_
- ATMEGA324P
- 16 MHz
- 32 Kb
- 2 Kb
* - ``mightycore644``
- `MightyCore ATmega644 <https://www.tindie.com/products/MCUdude/dip-40-arduino-compatible-development-board>`_
- ATMEGA644P
- 16 MHz
- 64 Kb
- 4 Kb
Microduino
~~~~~~~~~~

View File

@ -52,6 +52,15 @@ Configuration for the programmers:
framework = arduino
upload_protocol = usbtiny
* ArduinoISP
.. code-block:: ini
[env:myenv]
platform = atmelavr
framework = arduino
upload_protocol = arduinoisp
* USBasp
.. code-block:: ini
@ -103,13 +112,13 @@ Examples
--------
All project examples are located in PlatformIO repository
`Examples for Atmel AVR platform <https://github.com/platformio/platformio/tree/develop/examples/atmelavr-and-arduino>`_.
`Examples for Atmel AVR platform <https://github.com/platformio/platformio-examples/tree/develop/atmelavr-and-arduino>`_.
* `Wiring Blink <https://github.com/platformio/platformio/tree/develop/examples/wiring-blink>`_
* `Arduino with external libraries <https://github.com/platformio/platformio/tree/develop/examples/atmelavr-and-arduino/arduino-external-libs>`_
* `Arduino with internal libraries <https://github.com/platformio/platformio/tree/develop/examples/atmelavr-and-arduino/arduino-internal-libs>`_
* `Project uses source file name for "src" directory (Arduino project structure) <https://github.com/platformio/platformio/tree/develop/examples/atmelavr-and-arduino/arduino-own-src_dir>`_
* `Atmel AVR Native blink <https://github.com/platformio/platformio/tree/develop/examples/atmelavr-and-arduino/atmelavr-native-blink>`_
* `Digitstump Mouse <https://github.com/platformio/platformio/tree/develop/examples/atmelavr-and-arduino/digitstump-mouse>`_
* `Engduino magnetometer <https://github.com/platformio/platformio/tree/develop/examples/atmelavr-and-arduino/engduino-magnetometer>`_
* `PanStamp blink <https://github.com/platformio/platformio/tree/develop/examples/atmelavr-and-arduino/panstamp-blink>`_
* `Wiring Blink <https://github.com/platformio/platformio-examples/tree/develop/wiring-blink>`_
* `Arduino with external libraries <https://github.com/platformio/platformio-examples/tree/develop/atmelavr-and-arduino/arduino-external-libs>`_
* `Arduino with internal libraries <https://github.com/platformio/platformio-examples/tree/develop/atmelavr-and-arduino/arduino-internal-libs>`_
* `Project uses source file name for "src" directory (Arduino project structure) <https://github.com/platformio/platformio-examples/tree/develop/atmelavr-and-arduino/arduino-own-src_dir>`_
* `Atmel AVR Native blink <https://github.com/platformio/platformio-examples/tree/develop/atmelavr-and-arduino/atmelavr-native-blink>`_
* `Digitstump Mouse <https://github.com/platformio/platformio-examples/tree/develop/atmelavr-and-arduino/digitstump-mouse>`_
* `Engduino magnetometer <https://github.com/platformio/platformio-examples/tree/develop/atmelavr-and-arduino/engduino-magnetometer>`_
* `PanStamp blink <https://github.com/platformio/platformio-examples/tree/develop/atmelavr-and-arduino/panstamp-blink>`_

View File

@ -34,6 +34,9 @@ Packages
* - ``framework-arduinosam``
- `Arduino Wiring-based Framework (SAM Core, 1.6) <http://arduino.cc/en/Reference/HomePage>`_
* - ``framework-simba``
- `Simba Framework <https://github.com/eerimoq/simba>`_
* - ``tool-openocd``
- `OpenOCD <http://openocd.org>`_
@ -70,6 +73,9 @@ Frameworks
* - :ref:`framework_mbed`
- The mbed framework The mbed SDK has been designed to provide enough hardware abstraction to be intuitive and concise, yet powerful enough to build complex projects. It is built on the low-level ARM CMSIS APIs, allowing you to code down to the metal if needed. In addition to RTOS, USB and Networking libraries, a cookbook of hundreds of reusable peripheral and module libraries have been built on top of the SDK by the mbed Developer Community.
* - :ref:`framework_simba`
- Simba is an RTOS and build framework. It aims to make embedded programming easy and portable.
Boards
------

View File

@ -59,6 +59,12 @@ Packages
* - ``framework-arduinoespressif``
- `Arduino Wiring-based Framework (ESP8266 Core) <https://github.com/esp8266/Arduino>`_
* - ``framework-arduinointel``
- `Arduino Wiring-based Framework (Intel ARC Core) <https://github.com/01org/corelibs-arduino101>`_
* - ``framework-arduinomicrochippic32``
- `Arduino Wiring-based Framework (PIC32 Core) <https://github.com/chipKIT32/chipKIT-core>`_
* - ``framework-arduinomsp430``
- `Arduino Wiring-based Framework (MSP430 Core) <http://arduino.cc/en/Reference/HomePage>`_
@ -86,6 +92,9 @@ Packages
* - ``framework-mbed``
- `mbed Framework <http://mbed.org>`_
* - ``framework-simba``
- `Simba Framework <https://github.com/eerimoq/simba>`_
* - ``framework-spl``
- `Standard Peripheral Library for STM32 MCUs <http://www.st.com/web/catalog/tools/FM147/CL1794/SC961/SS1743/PF257890>`_
@ -98,6 +107,9 @@ Packages
* - ``sdk-esp8266``
- `ESP8266 SDK <http://bbs.espressif.com>`_
* - ``tool-arduino101load``
- `Genuino101 uploader <https://github.com/01org/intel-arduino-tools>`_
* - ``tool-avrdude``
- `AVRDUDE <http://www.nongnu.org/avrdude/>`_
@ -122,6 +134,9 @@ Packages
* - ``tool-openocd``
- `OpenOCD <http://openocd.org>`_
* - ``tool-pic32prog``
- `pic32prog <https://github.com/sergev/pic32prog>`_
* - ``tool-rfdloader``
- `rfdloader <https://github.com/RFduino/RFduino>`_
@ -152,6 +167,15 @@ Packages
* - ``toolchain-gccmingw32``
- `MinGW <http://www.mingw.org>`_
* - ``toolchain-icestorm``
- `GCC for FPGA IceStorm <http://www.clifford.at/icestorm/>`_
* - ``toolchain-intelarc32``
- `GCC for Intel ARC <https://github.com/foss-for-synopsys-dwc-arc-processors/toolchain>`_
* - ``toolchain-microchippic32``
- `GCC for Microchip PIC32 <https://github.com/chipKIT32/chipKIT-cxx>`_
* - ``toolchain-timsp430``
- `msp-gcc <http://sourceforge.net/projects/mspgcc/>`_, `GDB <http://www.gnu.org/software/gdb/>`_

View File

@ -31,6 +31,9 @@ Packages
* - ``toolchain-xtensa``
- `xtensa-gcc <https://github.com/jcmvbkbc/gcc-xtensa>`_, `GDB <http://www.gnu.org/software/gdb/>`_
* - ``framework-simba``
- `Simba Framework <https://github.com/eerimoq/simba>`_
* - ``tool-esptool``
- `esptool-ck <https://github.com/igrr/esptool-ck>`_
@ -67,6 +70,9 @@ Frameworks
* - :ref:`framework_arduino`
- Arduino Wiring-based Framework allows writing cross-platform software to control devices attached to a wide range of Arduino boards to create all kinds of creative coding, interactive objects, spaces or physical experiences.
* - :ref:`framework_simba`
- Simba is an RTOS and build framework. It aims to make embedded programming easy and portable.
Boards
------

View File

@ -118,7 +118,8 @@ Uploading files to file system SPIFFS
information first.
1. Initialise project :ref:`cmd_init` (if you have not initialized yet)
2. Create :ref:`projectconf_pio_data_dir` and put files here
2. Create ``data`` folder (it should be on the same level as ``src`` folder)
and put files here. Also, you can specify own location for :ref:`projectconf_pio_data_dir`
3. Run target ``uploadfs`` using :option:`platformio run --target` command.
To upload SPIFFS image using OTA update please specify ``upload_port`` /
@ -136,7 +137,7 @@ Active discussion is located in `issue #382 <https://github.com/platformio/platf
Over-the-Air (OTA) update
-------------------------
Firstly, please read `What is OTA? How to use it? <https://github.com/esp8266/Arduino/blob/master/doc/ota_updates/ota_updates.md>`_
Firstly, please read `What is OTA? How to use it? <https://github.com/esp8266/Arduino/blob/master/doc/ota_updates/readme.md>`_
There are 2 options:
@ -252,8 +253,8 @@ Examples
--------
All project examples are located in PlatformIO repository
`Examples for Espressif platform <https://github.com/platformio/platformio/tree/develop/examples/espressif>`_.
`Examples for Espressif platform <https://github.com/platformio/platformio-examples/tree/develop/espressif>`_.
* `Native SDK <https://github.com/platformio/platformio/tree/develop/examples/espressif/esp8266-native>`_
* `WebServer <https://github.com/platformio/platformio/tree/develop/examples/espressif/esp8266-webserver>`_
* `WiFiScan <https://github.com/platformio/platformio/tree/develop/examples/espressif/esp8266-wifiscan>`_
* `Native SDK <https://github.com/platformio/platformio-examples/tree/develop/espressif/esp8266-native>`_
* `WebServer <https://github.com/platformio/platformio-examples/tree/develop/espressif/esp8266-webserver>`_
* `WiFiScan <https://github.com/platformio/platformio-examples/tree/develop/espressif/esp8266-wifiscan>`_

View File

@ -32,6 +32,9 @@ Embedded
atmelsam
espressif
freescalekinetis
intel_arc32
lattice_ice40
microchippic32
nordicnrf51
nxplpc
siliconlabsefm32

View File

@ -0,0 +1,88 @@
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
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.
.. _platform_intel_arc32:
Platform ``intel_arc32``
========================
ARC embedded processors are a family of 32-bit CPUs that are widely used in SoC devices for storage, home, mobile, automotive, and Internet of Things applications.
For more detailed information please visit `vendor site <http://www.intel.com/content/www/us/en/wearables/wearable-soc.html>`_.
.. contents::
Packages
--------
.. list-table::
:header-rows: 1
* - Name
- Contents
* - ``framework-arduinointel``
- `Arduino Wiring-based Framework (Intel ARC Core) <https://github.com/01org/corelibs-arduino101>`_
* - ``tool-arduino101load``
- `Genuino101 uploader <https://github.com/01org/intel-arduino-tools>`_
* - ``toolchain-intelarc32``
- `GCC for Intel ARC <https://github.com/foss-for-synopsys-dwc-arc-processors/toolchain>`_
.. warning::
**Linux Users:** Don't forget to install "udev" rules file
`99-platformio-udev.rules <https://github.com/platformio/platformio/blob/develop/scripts/99-platformio-udev.rules>`_ (an instruction is located in the file).
**Windows Users:** Please check that you have correctly installed USB
driver from board manufacturer
Frameworks
----------
.. list-table::
:header-rows: 1
* - Name
- Description
* - :ref:`framework_arduino`
- Arduino Wiring-based Framework allows writing cross-platform software to control devices attached to a wide range of Arduino boards to create all kinds of creative coding, interactive objects, spaces or physical experiences.
Boards
------
.. note::
* You can list pre-configured boards by :ref:`cmd_boards` command or
`PlatformIO Boards Explorer <http://platformio.org/boards>`_
* For more detailed ``board`` information please scroll tables below by
horizontal.
Intel
~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``genuino101``
- `Arduino/Genuino 101 <https://www.arduino.cc/en/Main/ArduinoBoard101>`_
- ARCV2EM
- 32 MHz
- 192 Kb
- 80 Kb

View File

@ -0,0 +1,91 @@
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
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.
.. _platform_lattice_ice40:
Platform ``lattice_ice40``
==========================
The iCE40 family of ultra-low power, non-volatile FPGAs has five devices with densities ranging from 384 to 7680 Look-Up Tables (LUTs). In addition to LUT-based,low-cost programmable logic, these devices feature Embedded Block RAM (EBR), Non-volatile Configuration Memory (NVCM) and Phase Locked Loops (PLLs). These features allow the devices to be used in low-cost, high-volume consumer and system applications.
For more detailed information please visit `vendor site <http://www.latticesemi.com/Products/FPGAandCPLD/iCE40.aspx>`_.
.. contents::
Packages
--------
.. list-table::
:header-rows: 1
* - Name
- Contents
* - ``toolchain-icestorm``
- `GCC for FPGA IceStorm <http://www.clifford.at/icestorm/>`_
.. warning::
**Linux Users:** Don't forget to install "udev" rules file
`99-platformio-udev.rules <https://github.com/platformio/platformio/blob/develop/scripts/99-platformio-udev.rules>`_ (an instruction is located in the file).
**Windows Users:** Please check that you have correctly installed USB
driver from board manufacturer
Boards
------
.. note::
* You can list pre-configured boards by :ref:`cmd_boards` command or
`PlatformIO Boards Explorer <http://platformio.org/boards>`_
* For more detailed ``board`` information please scroll tables below by
horizontal.
BQ
~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``icezum``
- `BQ IceZUM Alhambra FPGA <https://github.com/bqlabs/icezum/wiki>`_
- ICE40HX1K
- 12 MHz
- 32 Kb
- 32 Kb
Lattice
~~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``icestick``
- `Lattice iCEstick FPGA Evaluation Kit <http://www.latticesemi.com/icestick>`_
- ICE40HX1K
- 12 MHz
- 32 Kb
- 32 Kb

View File

@ -0,0 +1,340 @@
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
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.
.. _platform_microchippic32:
Platform ``microchippic32``
===========================
Microchip's 32-bit portfolio with the MIPS microAptiv or M4K core offer high performance microcontrollers, and all the tools needed to develop your embedded projects. PIC32 MCUs gives your application the processing power, memory and peripherals your design needs!
For more detailed information please visit `vendor site <http://www.microchip.com/design-centers/32-bit>`_.
.. contents::
Packages
--------
.. list-table::
:header-rows: 1
* - Name
- Contents
* - ``framework-arduinomicrochippic32``
- `Arduino Wiring-based Framework (PIC32 Core) <https://github.com/chipKIT32/chipKIT-core>`_
* - ``toolchain-microchippic32``
- `GCC for Microchip PIC32 <https://github.com/chipKIT32/chipKIT-cxx>`_
* - ``tool-pic32prog``
- `pic32prog <https://github.com/sergev/pic32prog>`_
.. warning::
**Linux Users:** Don't forget to install "udev" rules file
`99-platformio-udev.rules <https://github.com/platformio/platformio/blob/develop/scripts/99-platformio-udev.rules>`_ (an instruction is located in the file).
**Windows Users:** Please check that you have correctly installed USB
driver from board manufacturer
Frameworks
----------
.. list-table::
:header-rows: 1
* - Name
- Description
* - :ref:`framework_arduino`
- Arduino Wiring-based Framework allows writing cross-platform software to control devices attached to a wide range of Arduino boards to create all kinds of creative coding, interactive objects, spaces or physical experiences.
Boards
------
.. note::
* You can list pre-configured boards by :ref:`cmd_boards` command or
`PlatformIO Boards Explorer <http://platformio.org/boards>`_
* For more detailed ``board`` information please scroll tables below by
horizontal.
4DSystems
~~~~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``picadillo_35t``
- `4DSystems PICadillo 35T <http://www.4dsystems.com.au/product/Picadillo_35T/>`_
- 32MX795F512L
- 80 MHz
- 512 Kb
- 128 Kb
Digilent
~~~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``cerebot32mx4``
- `Digilent Cerebot 32MX4 <http://store.digilentinc.com/cerebot-32mx4-limited-time-see-chipkit-pro-mx4/>`_
- 32MX460F512L
- 80 MHz
- 512 Kb
- 32 Kb
* - ``cerebot32mx7``
- `Digilent Cerebot 32MX7 <http://www.microchip.com/Developmenttools/ProductDetails.aspx?PartNO=TDGL004>`_
- 32MX795F512L
- 80 MHz
- 512 Kb
- 128 Kb
* - ``chipkit_cmod``
- `Digilent chipKIT Cmod <http://store.digilentinc.com/chipkit-cmod-breadboardable-mz-microcontroller-board/>`_
- 32MX150F128D
- 40 MHz
- 128 Kb
- 32 Kb
* - ``chipkit_dp32``
- `Digilent chipKIT DP32 <http://store.digilentinc.com/chipkit-dp32-dip-package-prototyping-microcontroller-board/>`_
- 32MX250F128B
- 40 MHz
- 128 Kb
- 32 Kb
* - ``chipkit_mx3``
- `Digilent chipKIT MX3 <http://store.digilentinc.com/chipkit-mx3-microcontroller-board-with-pmod-headers/>`_
- 32MX320F128H
- 80 MHz
- 128 Kb
- 16 Kb
* - ``chipkit_pro_mx4``
- `Digilent chipKIT Pro MX4 <http://store.digilentinc.com/chipkit-pro-mx4-embedded-systems-trainer-board/>`_
- 32MX460F512L
- 80 MHz
- 512 Kb
- 32 Kb
* - ``chipkit_pro_mx7``
- `Digilent chipKIT Pro MX7 <http://store.digilentinc.com/chipkit-pro-mx7-advanced-peripherals-embedded-systems-trainer-board/>`_
- 32MX795F512L
- 80 MHz
- 512 Kb
- 128 Kb
* - ``chipkit_uc32``
- `Digilent chipKIT uC32 <http://store.digilentinc.com/chipkit-uc32-basic-microcontroller-board-with-uno-r3-headers/>`_
- 32MX340F512H
- 80 MHz
- 512 Kb
- 32 Kb
* - ``chipkit_wf32``
- `Digilent chipKIT WF32 <http://store.digilentinc.com/chipkit-wf32-wifi-enabled-microntroller-board-with-uno-r3-headers/>`_
- 32MX695F512L
- 80 MHz
- 512 Kb
- 128 Kb
* - ``chipkit_wifire``
- `Digilent chipKIT WiFire <http://store.digilentinc.com/chipkit-wi-fire-wifi-enabled-mz-microcontroller-board/>`_
- 32MZ2048ECG100
- 200 MHz
- 2048 Kb
- 512 Kb
* - ``mega_pic32``
- `Digilent chipKIT MAX32 <http://store.digilentinc.com/chipkit-max32-microcontroller-board-with-mega-r3-headers/>`_
- 32MX795F512L
- 80 MHz
- 512 Kb
- 128 Kb
* - ``openbci``
- `Digilent OpenScope <http://store.digilentinc.com/>`_
- 32MX250F128B
- 40 MHz
- 128 Kb
- 32 Kb
* - ``openscope``
- `Digilent OpenScope <http://store.digilentinc.com/>`_
- 32MZ2048EFG124
- 200 MHz
- 2048 Kb
- 512 Kb
* - ``uno_pic32``
- `Digilent chipKIT UNO32 <http://store.digilentinc.com/chipkit-uno32-basic-microcontroller-board-retired-see-chipkit-uc32/>`_
- 32MX320F128H
- 80 MHz
- 128 Kb
- 16 Kb
Fubarino
~~~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``fubarino_mini``
- `Fubarino Mini <http://fubarino.org/mini/>`_
- 32MX250F128D
- 48 MHz
- 128 Kb
- 32 Kb
* - ``fubarino_sd``
- `Fubarino SD (1.5) <http://fubarino.org/sd/index.html>`_
- 32MX795F512H
- 80 MHz
- 512 Kb
- 128 Kb
Olimex
~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``pinguino32``
- `Olimex PIC32-PINGUINO <https://www.olimex.com/Products/Duino/PIC32/PIC32-PINGUINO/open-source-hardware>`_
- 32MX440F256H
- 80 MHz
- 256 Kb
- 32 Kb
PONTECH
~~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``quick240_usb``
- `PONTECH quicK240 <http://quick240.com/quicki/>`_
- 32MX795F512L
- 80 MHz
- 512 Kb
- 128 Kb
* - ``usbono_pic32``
- `PONTECH UAV100 <http://www.pontech.com/productdisplay/uav100>`_
- 32MX440F512H
- 80 MHz
- 512 Kb
- 32 Kb
SeeedStudio
~~~~~~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``cui32stem``
- `SeeedStudio CUI32stem <http://www.seeedstudio.com/wiki/CUI32Stem>`_
- 32MX795F512H
- 80 MHz
- 512 Kb
- 128 Kb
UBW32
~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``ubw32_mx460``
- `UBW32 MX460 <http://www.schmalzhaus.com/UBW32/>`_
- 32MX460F512L
- 80 MHz
- 512 Kb
- 32 Kb
* - ``ubw32_mx795``
- `UBW32 MX795 <http://www.schmalzhaus.com/UBW32/>`_
- 32MX795F512L
- 80 MHz
- 512 Kb
- 128 Kb
element14
~~~~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``chipkit_pi``
- `Element14 chipKIT Pi <http://www.element14.com/community/community/knode/dev_platforms_kits/element14_dev_kits/microchip-chipkit/chipkit_pi>`_
- 32MX250F128B
- 40 MHz
- 128 Kb
- 32 Kb

View File

@ -73,6 +73,26 @@ Boards
* For more detailed ``board`` information please scroll tables below by
horizontal.
BBC
~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``bbcmicrobit``
- `BBC micro:bit <https://developer.mbed.org/platforms/Microbit/>`_
- NRF51822
- 16 MHz
- 256 Kb
- 16 Kb
Delta
~~~~~

View File

@ -13,6 +13,6 @@ Examples
--------
All project examples are located in PlatformIO repository
`Examples for Nordic nRF51 platform <https://github.com/platformio/platformio/tree/develop/examples/nordicnrf51>`_.
`Examples for Nordic nRF51 platform <https://github.com/platformio/platformio-examples/tree/develop/nordicnrf51>`_.
* `RFduino iBeacon <https://github.com/platformio/platformio/tree/develop/examples/nordicnrf51/rfduino-ibeacon>`_
* `RFduino iBeacon <https://github.com/platformio/platformio-examples/tree/develop/nordicnrf51/rfduino-ibeacon>`_

View File

@ -88,6 +88,26 @@ Boards
* For more detailed ``board`` information please scroll tables below by
horizontal.
96Boards
~~~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``b96b_f446ve``
- `96Boards B96B-F446VE <https://developer.mbed.org/platforms/ST-B96B-F446VE/>`_
- STM32F446VET6
- 168 MHz
- 512 Kb
- 128 Kb
Armstrap
~~~~~~~~
@ -296,6 +316,13 @@ ST
- 512 Kb
- 96 Kb
* - ``nucleo_f410rb``
- `ST Nucleo F410RB <https://developer.mbed.org/platforms/ST-Nucleo-F410RB/>`_
- STM32F410RBT6
- 100 MHz
- 128 Kb
- 32 Kb
* - ``nucleo_f411re``
- `ST Nucleo F411RE <https://developer.mbed.org/platforms/ST-Nucleo-F411RE/>`_
- STM32F411RET6
@ -317,6 +344,13 @@ ST
- 64 Kb
- 8 Kb
* - ``nucleo_l073rz``
- `ST Nucleo L073RZ <https://developer.mbed.org/platforms/ST-Nucleo-L073RZ/>`_
- STM32L073RZ
- 32 MHz
- 192 Kb
- 20 Kb
* - ``nucleo_l152re``
- `ST Nucleo L152RE <https://developer.mbed.org/platforms/ST-Nucleo-L152RE/>`_
- STM32L152RET6

View File

@ -22,8 +22,8 @@ Examples
--------
All project examples are located in PlatformIO repository
`Examples for ST STM32 platform <https://github.com/platformio/platformio/tree/develop/examples/stm32>`_.
`Examples for ST STM32 platform <https://github.com/platformio/platformio-examples/tree/develop/stm32>`_.
* `CMSIS Blink <https://github.com/platformio/platformio/tree/develop/examples/stm32/stm32-cmsis-blink>`_
* `libOpenCM3 Blink <https://github.com/platformio/platformio/tree/develop/examples/stm32/stm32-opencm3-blink>`_
* `SPL Blink <https://github.com/platformio/platformio/tree/develop/examples/stm32/stm32-spl-blink>`_
* `CMSIS Blink <https://github.com/platformio/platformio-examples/tree/develop/stm32/stm32-cmsis-blink>`_
* `libOpenCM3 Blink <https://github.com/platformio/platformio-examples/tree/develop/stm32/stm32-opencm3-blink>`_
* `SPL Blink <https://github.com/platformio/platformio-examples/tree/develop/stm32/stm32-spl-blink>`_

View File

@ -13,8 +13,8 @@ Examples
--------
All project examples are located in PlatformIO repository
`Examples for Teensy platform <https://github.com/platformio/platformio/tree/develop/examples/teensy>`_.
`Examples for Teensy platform <https://github.com/platformio/platformio-examples/tree/develop/teensy>`_.
* `Wiring Blink <https://github.com/platformio/platformio/tree/develop/examples/wiring-blink>`_
* `HID Mouse <https://github.com/platformio/platformio/tree/develop/examples/teensy/teensy-hid-usb-mouse>`_
* `Chat Server <https://github.com/platformio/platformio/tree/develop/examples/teensy/teensy-internal-libs>`_
* `Wiring Blink <https://github.com/platformio/platformio-examples/tree/develop/wiring-blink>`_
* `HID Mouse <https://github.com/platformio/platformio-examples/tree/develop/teensy/teensy-hid-usb-mouse>`_
* `Chat Server <https://github.com/platformio/platformio-examples/tree/develop/teensy/teensy-internal-libs>`_

View File

@ -120,6 +120,13 @@ TI
- 128 Kb
- 1 Kb
* - ``lpmsp430fr4133``
- `TI LaunchPad w/ msp430fr4133 <http://www.ti.com/tool/msp-exp430fr4133>`_
- MSP430G2553
- 16 MHz
- 16 Kb
- 2 Kb
* - ``lpmsp430fr5739``
- `TI FraunchPad w/ msp430fr5739 <http://www.ti.com/tool/msp-exp430fr5739>`_
- MSP430FR5739
@ -134,6 +141,13 @@ TI
- 64 Kb
- 1 Kb
* - ``lpmsp430fr6989``
- `TI LaunchPad w/ msp430fr6989 <http://www.ti.com/tool/msp-exp430fr6989>`_
- MSP430G2553
- 16 MHz
- 128 Kb
- 2 Kb
* - ``lpmsp430g2231``
- `TI LaunchPad w/ msp430g2231 (1 MHz) <http://www.ti.com/ww/en/launchpad/launchpads-msp430-msp-exp430g2.html>`_
- MSP430G2231

View File

@ -20,9 +20,9 @@ Examples
--------
All project examples are located in PlatformIO repository
`Examples for TI MSP430 platform <https://github.com/platformio/platformio/tree/develop/examples/timsp430>`_.
`Examples for TI MSP430 platform <https://github.com/platformio/platformio-examples/tree/develop/timsp430>`_.
* `Energia blink <https://github.com/platformio/platformio/tree/develop/examples/timsp430/timsp430-energia-blink>`_
* `Native blink <https://github.com/platformio/platformio/tree/develop/examples/timsp430/timsp430-native-blink>`_
* `Wiring Blink <https://github.com/platformio/platformio/tree/develop/examples/wiring-blink>`_
* `PanStamp blink <https://github.com/platformio/platformio/tree/develop/examples/timsp430/panstamp-blink>`_
* `Energia blink <https://github.com/platformio/platformio-examples/tree/develop/timsp430/timsp430-energia-blink>`_
* `Native blink <https://github.com/platformio/platformio-examples/tree/develop/timsp430/timsp430-native-blink>`_
* `Wiring Blink <https://github.com/platformio/platformio-examples/tree/develop/wiring-blink>`_
* `PanStamp blink <https://github.com/platformio/platformio-examples/tree/develop/timsp430/panstamp-blink>`_

View File

@ -20,8 +20,8 @@ Examples
--------
All project examples are located in PlatformIO repository
`Examples for TI TIVA platform <https://github.com/platformio/platformio/tree/develop/examples/titiva>`_.
`Examples for TI TIVA platform <https://github.com/platformio/platformio-examples/tree/develop/titiva>`_.
* `Energia blink <https://github.com/platformio/platformio/tree/develop/examples/titiva/titiva-energia-blink>`_
* `Native blink <https://github.com/platformio/platformio/tree/develop/examples/titiva/titiva-native-blink>`_
* `OpenCM3 Blink <https://github.com/platformio/platformio/tree/develop/examples/titiva/titiva-opencm3-blink>`_
* `Energia blink <https://github.com/platformio/platformio-examples/tree/develop/titiva/titiva-energia-blink>`_
* `Native blink <https://github.com/platformio/platformio-examples/tree/develop/titiva/titiva-native-blink>`_
* `OpenCM3 Blink <https://github.com/platformio/platformio-examples/tree/develop/titiva/titiva-opencm3-blink>`_

View File

@ -90,7 +90,7 @@ This option can be overridden by global environment variable
.. note::
This option is useful for people who migrate from Arduino/Energia IDEs where
source directory should have the same name like the main source file.
See `example <https://github.com/platformio/platformio/tree/develop/examples/atmelavr-and-arduino/arduino-own-src_dir>`__ project with own source directory.
See `example <https://github.com/platformio/platformio-examples/tree/develop/atmelavr-and-arduino/arduino-own-src_dir>`__ project with own source directory.
.. _projectconf_pio_envs_dir:
@ -130,6 +130,45 @@ project.
This option can be overridden by global environment variable
:envvar:`PLATFORMIO_DATA_DIR`.
.. _projectconf_pio_env_default:
``env_default``
^^^^^^^^^^^^^^^
:ref:`cmd_run` command processes all environments ``[env:***]`` by default
if :option:`platformio run --environment` option is not specified.
:ref:`projectconf_pio_env_default` allows to define environments which
should be processed by default.
Multiple environments are allowed if they are separated with ``,`` (comma).
For example.
.. code-block:: ini
[platformio]
env_default = uno, nodemcu
[env:uno]
platform = atmelavr
framework = arduino
board = uno
[env:nodemcu]
platform = espressif
framework = arduino
board = nodemcu
[env:teensy31]
platform = teensy
framework = arduino
board = teensy31
[env:lpmsp430g2553]
platform = timsp430
framework = energia
board = lpmsp430g2553
build_flags = -D LED_BUILTIN=RED_LED
----------
Section ``[env:NAME]``
@ -341,6 +380,17 @@ but will be applied only for the project source code from
This option can be set by global environment variable
:envvar:`PLATFORMIO_SRC_BUILD_FLAGS`.
``build_unflags``
^^^^^^^^^^^^^^^^^
Remove base/initial flags which were set by development platform.
.. code-block:: ini
[env:unflags]
build_unflags = -Os -std=gnu++11
build_flags = -O2
.. _projectconf_src_filter:
``src_filter``

View File

@ -38,7 +38,10 @@ Options
.. option::
-e, --environment
Process specified environments
Process specified environments.
You can also specify which environments should be processed by default using
:ref:`projectconf_pio_env_default`.
.. option::
@ -93,7 +96,7 @@ or :ref:`projectconf_pio_src_dir` (project structure) have been modified.
Examples
--------
1. Process `Wiring Blink Example <https://github.com/platformio/platformio/tree/develop/examples/wiring-blink>`_
1. Process `Wiring Blink Example <https://github.com/platformio/platformio-examples/tree/develop/wiring-blink>`_
.. code-block:: bash

View File

@ -96,6 +96,17 @@ Filter libraries by specified framework
Filter libraries by specified keyword
.. option::
--json-output
Return the output in `JSON <http://en.wikipedia.org/wiki/JSON>`_ format
.. option::
--page
Manually paginate through search results. This option is useful in pair with
``--json-output``.
Examples
--------

3
examples/.gitmodules vendored Normal file
View File

@ -0,0 +1,3 @@
[submodule "atmelavr-and-arduino/arduino-external-libs/lib/OneWire"]
path = atmelavr-and-arduino/arduino-external-libs/lib/OneWire
url = https://github.com/PaulStoffregen/OneWire.git

201
examples/LICENSE Normal file
View File

@ -0,0 +1,201 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "{}"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright {yyyy} {name of copyright owner}
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.

View File

@ -1,24 +0,0 @@
/*
Blink
Turns on an LED on for one second, then off for one second, repeatedly.
This example code is in the public domain.
*/
int led = 1; // blink 'digital' pin 1 - AKA the built in red LED
// the setup routine runs once when you press reset:
void setup() {
// initialize the digital pin as an output.
pinMode(led, OUTPUT);
}
// the loop routine runs over and over again forever:
void loop() {
digitalWrite(led, HIGH);
delay(1000);
digitalWrite(led, LOW);
delay(1000);
}

View File

@ -0,0 +1,3 @@
.pioenvs
.clang_complete
.gcc-flags.json

View File

@ -0,0 +1,38 @@
.. Copyright 2014-present Ivan Kravets <me@ikravets.com>
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.
How to build PlatformIO based project
=====================================
1. `Install PlatformIO <http://docs.platformio.org/en/latest/installation.html>`_
2. Download `source code with examples <https://github.com/platformio/platformio-examples/archive/develop.zip>`_
3. Extract ZIP archive
4. Run these commands:
.. code-block:: bash
# Change directory to example
> cd platformio-examples/atmelavr-and-arduino/arduino-blink
# Build project
> platformio run
# Upload firmware
> platformio run --target upload
# Build specific environment
> platformio run -e flora8
# Upload firmware for the specific environment
> platformio run -e flora8 --target upload
# Clean build files
> platformio run --target clean

View File

@ -0,0 +1,45 @@
#
# Project Configuration File
#
# A detailed documentation with the EXAMPLES is located here:
# http://docs.platformio.org/en/latest/projectconf.html
#
# A sign `#` at the beginning of the line indicates a comment
# Comment lines are ignored.
# Simple and base environment
# [env:mybaseenv]
# platform = %INSTALLED_PLATFORM_NAME_HERE%
# framework =
# board =
#
# Automatic targets - enable auto-uploading
# targets = upload
[env:uno]
platform = atmelavr
framework = arduino
board = uno
[env:leonardo]
platform = atmelavr
framework = arduino
board = leonardo
[env:flora8]
platform = atmelavr
framework = arduino
board = flora8
build_flags = -D LED_BUILTIN=1
[env:protrinket5]
platform = atmelavr
framework = arduino
board = protrinket5
[env:panStampAVR]
platform = atmelavr
framework = arduino
board = panStampAVR
build_flags = -D LED_BUILTIN=13

View File

@ -0,0 +1,25 @@
/*
* Blink
* Turns on an LED on for one second,
* then off for one second, repeatedly.
*/
#include <Arduino.h>
void setup()
{
// initialize LED digital pin as an output.
pinMode(LED_BUILTIN, OUTPUT);
}
void loop()
{
// turn the LED on (HIGH is the voltage level)
digitalWrite(LED_BUILTIN, HIGH);
// wait for a second
delay(1000);
// turn the LED off by making the voltage LOW
digitalWrite(LED_BUILTIN, LOW);
// wait for a second
delay(1000);
}

View File

@ -1 +1,3 @@
.pioenvs
.pioenvs
.clang_complete
.gcc-flags.json

View File

@ -1,4 +1,4 @@
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
.. Copyright 2014-present Ivan Kravets <me@ikravets.com>
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
@ -13,17 +13,20 @@ How to build PlatformIO based project
=====================================
1. `Install PlatformIO <http://docs.platformio.org/en/latest/installation.html>`_
2. Download `source code with examples <https://github.com/platformio/platformio/archive/develop.zip>`_
2. Download `source code with examples <https://github.com/platformio/platformio-examples/archive/develop.zip>`_
3. Extract ZIP archive
4. Run these commands:
.. code-block:: bash
# Change directory to example
> cd platformio-develop/examples/atmelavr-and-arduino/arduino-external-libs
> cd platformio-examples/atmelavr-and-arduino/arduino-external-libs
# Process example project
# Build project
> platformio run
# Upload firmware
> platformio run --target upload
# Clean build files
> platformio run --target clean

Submodule examples/atmelavr-and-arduino/arduino-external-libs/lib/Adafruit-GFX-Library updated: 6d40eb3423...334e815bc1

View File

@ -17,7 +17,7 @@
# Automatic targets - enable auto-uploading
# targets = upload
[env:arduino_uno]
[env:uno]
platform = atmelavr
framework = arduino
board = uno

View File

@ -0,0 +1,114 @@
#include <Arduino.h>
#include <OneWire.h>
// OneWire DS18S20, DS18B20, DS1822 Temperature Example
//
// http://www.pjrc.com/teensy/td_libs_OneWire.html
//
// The DallasTemperature library can do all this work for you!
// http://milesburton.com/Dallas_Temperature_Control_Library
OneWire ds(10); // on pin 10 (a 4.7K resistor is necessary)
void setup(void) {
Serial.begin(9600);
}
void loop(void) {
byte i;
byte present = 0;
byte type_s;
byte data[12];
byte addr[8];
float celsius, fahrenheit;
if ( !ds.search(addr)) {
Serial.println("No more addresses.");
Serial.println();
ds.reset_search();
delay(250);
return;
}
Serial.print("ROM =");
for( i = 0; i < 8; i++) {
Serial.write(' ');
Serial.print(addr[i], HEX);
}
if (OneWire::crc8(addr, 7) != addr[7]) {
Serial.println("CRC is not valid!");
return;
}
Serial.println();
// the first ROM byte indicates which chip
switch (addr[0]) {
case 0x10:
Serial.println(" Chip = DS18S20"); // or old DS1820
type_s = 1;
break;
case 0x28:
Serial.println(" Chip = DS18B20");
type_s = 0;
break;
case 0x22:
Serial.println(" Chip = DS1822");
type_s = 0;
break;
default:
Serial.println("Device is not a DS18x20 family device.");
return;
}
ds.reset();
ds.select(addr);
ds.write(0x44, 1); // start conversion, with parasite power on at the end
delay(1000); // maybe 750ms is enough, maybe not
// we might do a ds.depower() here, but the reset will take care of it.
present = ds.reset();
ds.select(addr);
ds.write(0xBE); // Read Scratchpad
Serial.print(" Data = ");
Serial.print(present, HEX);
Serial.print(" ");
for ( i = 0; i < 9; i++) { // we need 9 bytes
data[i] = ds.read();
Serial.print(data[i], HEX);
Serial.print(" ");
}
Serial.print(" CRC=");
Serial.print(OneWire::crc8(data, 8), HEX);
Serial.println();
// Convert the data to actual temperature
// because the result is a 16 bit signed integer, it should
// be stored to an "int16_t" type, which is always 16 bits
// even when compiled on a 32 bit processor.
int16_t raw = (data[1] << 8) | data[0];
if (type_s) {
raw = raw << 3; // 9 bit resolution default
if (data[7] == 0x10) {
// "count remain" gives full 12 bit resolution
raw = (raw & 0xFFF0) + 12 - data[6];
}
} else {
byte cfg = (data[4] & 0x60);
// at lower res, the low bits are undefined, so let's zero them
if (cfg == 0x00) raw = raw & ~7; // 9 bit resolution, 93.75 ms
else if (cfg == 0x20) raw = raw & ~3; // 10 bit res, 187.5 ms
else if (cfg == 0x40) raw = raw & ~1; // 11 bit res, 375 ms
//// default is 12 bit resolution, 750 ms conversion time
}
celsius = (float)raw / 16.0;
fahrenheit = celsius * 1.8 + 32.0;
Serial.print(" Temperature = ");
Serial.print(celsius);
Serial.print(" Celsius, ");
Serial.print(fahrenheit);
Serial.println(" Fahrenheit");
}

View File

@ -1,350 +0,0 @@
/*********************************************************************
This is an example sketch for our Monochrome Nokia 5110 LCD Displays
Pick one up today in the adafruit shop!
------> http://www.adafruit.com/products/338
These displays use SPI to communicate, 4 or 5 pins are required to
interface
Adafruit invests time and resources providing this open source code,
please support Adafruit and open-source hardware by purchasing
products from Adafruit!
Written by Limor Fried/Ladyada for Adafruit Industries.
BSD license, check license.txt for more information
All text above, and the splash screen must be included in any redistribution
*********************************************************************/
#include <SPI.h>
#include <Adafruit_GFX.h>
#include <Adafruit_PCD8544.h>
// Software SPI (slower updates, more flexible pin options):
// pin 7 - Serial clock out (SCLK)
// pin 6 - Serial data out (DIN)
// pin 5 - Data/Command select (D/C)
// pin 4 - LCD chip select (CS)
// pin 3 - LCD reset (RST)
Adafruit_PCD8544 display = Adafruit_PCD8544(7, 6, 5, 4, 3);
// Hardware SPI (faster, but must use certain hardware pins):
// SCK is LCD serial clock (SCLK) - this is pin 13 on Arduino Uno
// MOSI is LCD DIN - this is pin 11 on an Arduino Uno
// pin 5 - Data/Command select (D/C)
// pin 4 - LCD chip select (CS)
// pin 3 - LCD reset (RST)
// Adafruit_PCD8544 display = Adafruit_PCD8544(5, 4, 3);
// Note with hardware SPI MISO and SS pins aren't used but will still be read
// and written to during SPI transfer. Be careful sharing these pins!
#define NUMFLAKES 10
#define XPOS 0
#define YPOS 1
#define DELTAY 2
#define LOGO16_GLCD_HEIGHT 16
#define LOGO16_GLCD_WIDTH 16
static const unsigned char PROGMEM logo16_glcd_bmp[] =
{ B00000000, B11000000,
B00000001, B11000000,
B00000001, B11000000,
B00000011, B11100000,
B11110011, B11100000,
B11111110, B11111000,
B01111110, B11111111,
B00110011, B10011111,
B00011111, B11111100,
B00001101, B01110000,
B00011011, B10100000,
B00111111, B11100000,
B00111111, B11110000,
B01111100, B11110000,
B01110000, B01110000,
B00000000, B00110000 };
void setup() {
Serial.begin(9600);
display.begin();
// init done
// you can change the contrast around to adapt the display
// for the best viewing!
display.setContrast(50);
display.display(); // show splashscreen
delay(2000);
display.clearDisplay(); // clears the screen and buffer
// draw a single pixel
display.drawPixel(10, 10, BLACK);
display.display();
delay(2000);
display.clearDisplay();
// draw many lines
testdrawline();
display.display();
delay(2000);
display.clearDisplay();
// draw rectangles
testdrawrect();
display.display();
delay(2000);
display.clearDisplay();
// draw multiple rectangles
testfillrect();
display.display();
delay(2000);
display.clearDisplay();
// draw mulitple circles
testdrawcircle();
display.display();
delay(2000);
display.clearDisplay();
// draw a circle, 10 pixel radius
display.fillCircle(display.width()/2, display.height()/2, 10, BLACK);
display.display();
delay(2000);
display.clearDisplay();
testdrawroundrect();
delay(2000);
display.clearDisplay();
testfillroundrect();
delay(2000);
display.clearDisplay();
testdrawtriangle();
delay(2000);
display.clearDisplay();
testfilltriangle();
delay(2000);
display.clearDisplay();
// draw the first ~12 characters in the font
testdrawchar();
display.display();
delay(2000);
display.clearDisplay();
// text display tests
display.setTextSize(1);
display.setTextColor(BLACK);
display.setCursor(0,0);
display.println("Hello, world!");
display.setTextColor(WHITE, BLACK); // 'inverted' text
display.println(3.141592);
display.setTextSize(2);
display.setTextColor(BLACK);
display.print("0x"); display.println(0xDEADBEEF, HEX);
display.display();
delay(2000);
// rotation example
display.clearDisplay();
display.setRotation(1); // rotate 90 degrees counter clockwise, can also use values of 2 and 3 to go further.
display.setTextSize(1);
display.setTextColor(BLACK);
display.setCursor(0,0);
display.println("Rotation");
display.setTextSize(2);
display.println("Example!");
display.display();
delay(2000);
// revert back to no rotation
display.setRotation(0);
// miniature bitmap display
display.clearDisplay();
display.drawBitmap(30, 16, logo16_glcd_bmp, 16, 16, 1);
display.display();
// invert the display
display.invertDisplay(true);
delay(1000);
display.invertDisplay(false);
delay(1000);
// draw a bitmap icon and 'animate' movement
testdrawbitmap(logo16_glcd_bmp, LOGO16_GLCD_WIDTH, LOGO16_GLCD_HEIGHT);
}
void loop() {
}
void testdrawbitmap(const uint8_t *bitmap, uint8_t w, uint8_t h) {
uint8_t icons[NUMFLAKES][3];
srandom(666); // whatever seed
// initialize
for (uint8_t f=0; f< NUMFLAKES; f++) {
icons[f][XPOS] = random() % display.width();
icons[f][YPOS] = 0;
icons[f][DELTAY] = random() % 5 + 1;
Serial.print("x: ");
Serial.print(icons[f][XPOS], DEC);
Serial.print(" y: ");
Serial.print(icons[f][YPOS], DEC);
Serial.print(" dy: ");
Serial.println(icons[f][DELTAY], DEC);
}
while (1) {
// draw each icon
for (uint8_t f=0; f< NUMFLAKES; f++) {
display.drawBitmap(icons[f][XPOS], icons[f][YPOS], logo16_glcd_bmp, w, h, BLACK);
}
display.display();
delay(200);
// then erase it + move it
for (uint8_t f=0; f< NUMFLAKES; f++) {
display.drawBitmap(icons[f][XPOS], icons[f][YPOS], logo16_glcd_bmp, w, h, WHITE);
// move it
icons[f][YPOS] += icons[f][DELTAY];
// if its gone, reinit
if (icons[f][YPOS] > display.height()) {
icons[f][XPOS] = random() % display.width();
icons[f][YPOS] = 0;
icons[f][DELTAY] = random() % 5 + 1;
}
}
}
}
void testdrawchar(void) {
display.setTextSize(1);
display.setTextColor(BLACK);
display.setCursor(0,0);
for (uint8_t i=0; i < 168; i++) {
if (i == '\n') continue;
display.write(i);
//if ((i > 0) && (i % 14 == 0))
//display.println();
}
display.display();
}
void testdrawcircle(void) {
for (int16_t i=0; i<display.height(); i+=2) {
display.drawCircle(display.width()/2, display.height()/2, i, BLACK);
display.display();
}
}
void testfillrect(void) {
uint8_t color = 1;
for (int16_t i=0; i<display.height()/2; i+=3) {
// alternate colors
display.fillRect(i, i, display.width()-i*2, display.height()-i*2, color%2);
display.display();
color++;
}
}
void testdrawtriangle(void) {
for (int16_t i=0; i<min(display.width(),display.height())/2; i+=5) {
display.drawTriangle(display.width()/2, display.height()/2-i,
display.width()/2-i, display.height()/2+i,
display.width()/2+i, display.height()/2+i, BLACK);
display.display();
}
}
void testfilltriangle(void) {
uint8_t color = BLACK;
for (int16_t i=min(display.width(),display.height())/2; i>0; i-=5) {
display.fillTriangle(display.width()/2, display.height()/2-i,
display.width()/2-i, display.height()/2+i,
display.width()/2+i, display.height()/2+i, color);
if (color == WHITE) color = BLACK;
else color = WHITE;
display.display();
}
}
void testdrawroundrect(void) {
for (int16_t i=0; i<display.height()/2-2; i+=2) {
display.drawRoundRect(i, i, display.width()-2*i, display.height()-2*i, display.height()/4, BLACK);
display.display();
}
}
void testfillroundrect(void) {
uint8_t color = BLACK;
for (int16_t i=0; i<display.height()/2-2; i+=2) {
display.fillRoundRect(i, i, display.width()-2*i, display.height()-2*i, display.height()/4, color);
if (color == WHITE) color = BLACK;
else color = WHITE;
display.display();
}
}
void testdrawrect(void) {
for (int16_t i=0; i<display.height()/2; i+=2) {
display.drawRect(i, i, display.width()-2*i, display.height()-2*i, BLACK);
display.display();
}
}
void testdrawline() {
for (int16_t i=0; i<display.width(); i+=4) {
display.drawLine(0, 0, i, display.height()-1, BLACK);
display.display();
}
for (int16_t i=0; i<display.height(); i+=4) {
display.drawLine(0, 0, display.width()-1, i, BLACK);
display.display();
}
delay(250);
display.clearDisplay();
for (int16_t i=0; i<display.width(); i+=4) {
display.drawLine(0, display.height()-1, i, 0, BLACK);
display.display();
}
for (int8_t i=display.height()-1; i>=0; i-=4) {
display.drawLine(0, display.height()-1, display.width()-1, i, BLACK);
display.display();
}
delay(250);
display.clearDisplay();
for (int16_t i=display.width()-1; i>=0; i-=4) {
display.drawLine(display.width()-1, display.height()-1, i, 0, BLACK);
display.display();
}
for (int16_t i=display.height()-1; i>=0; i-=4) {
display.drawLine(display.width()-1, display.height()-1, 0, i, BLACK);
display.display();
}
delay(250);
display.clearDisplay();
for (int16_t i=0; i<display.height(); i+=4) {
display.drawLine(display.width()-1, 0, 0, i, BLACK);
display.display();
}
for (int16_t i=0; i<display.width(); i+=4) {
display.drawLine(display.width()-1, 0, i, display.height()-1, BLACK);
display.display();
}
delay(250);
}

View File

@ -1 +1,3 @@
.pioenvs
.pioenvs
.clang_complete
.gcc-flags.json

View File

@ -1,4 +1,4 @@
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
.. Copyright 2014-present Ivan Kravets <me@ikravets.com>
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
@ -13,17 +13,26 @@ How to build PlatformIO based project
=====================================
1. `Install PlatformIO <http://docs.platformio.org/en/latest/installation.html>`_
2. Download `source code with examples <https://github.com/platformio/platformio/archive/develop.zip>`_
2. Download `source code with examples <https://github.com/platformio/platformio-examples/archive/develop.zip>`_
3. Extract ZIP archive
4. Run these commands:
.. code-block:: bash
# Change directory to example
> cd platformio-develop/examples/atmelavr-and-arduino/arduino-internal-libs
> cd platformio-examples/atmelavr-and-arduino/arduino-internal-libs
# Process example project
# Build project
> platformio run
# Upload firmware
> platformio run --target upload
# Build specific environment
> platformio run -e uno
# Upload firmware for the specific environment
> platformio run -e uno --target upload
# Clean build files
> platformio run --target clean

View File

@ -17,47 +17,42 @@
# Automatic targets - enable auto-uploading
# targets = upload
[env:arduino_uno]
[env:uno]
platform = atmelavr
framework = arduino
board = uno
[env:arduino_ethernet]
[env:ethernet]
platform = atmelavr
framework = arduino
board = ethernet
[env:arduino_leonardo]
[env:leonardo]
platform = atmelavr
framework = arduino
board = leonardo
[env:arduino_pro16MHzatmega328]
[env:pro16MHzatmega328]
platform = atmelavr
framework = arduino
board = pro16MHzatmega328
[env:arduino_megaatmega1280]
[env:megaatmega1280]
platform = atmelavr
framework = arduino
board = megaatmega1280
[env:arduino_micro]
[env:micro]
platform = atmelavr
framework = arduino
board = micro
[env:arduino_robotControl]
[env:robotControl]
platform = atmelavr
framework = arduino
board = robotControl
[env:arduino_yun]
[env:yun]
platform = atmelavr
framework = arduino
board = yun
[env:arduino_due]
platform = atmelsam
framework = arduino
board = due

View File

@ -17,6 +17,7 @@
*/
#include <Arduino.h>
#include <SPI.h>
#include <Ethernet.h>

View File

@ -1 +1,3 @@
.pioenvs
.pioenvs
.clang_complete
.gcc-flags.json

View File

@ -1,7 +1,4 @@
/**
* Copyright (C) Ivan Kravets <me@ikravets.com>
* See LICENSE for details.
*/
#include <Arduino.h>
#ifndef LED_PIN
#define LED_PIN 13 // Most Arduino boards already have a LED attached to pin 13 on the board itself

View File

@ -1,4 +1,4 @@
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
.. Copyright 2014-present Ivan Kravets <me@ikravets.com>
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
@ -13,17 +13,20 @@ How to build PlatformIO based project
=====================================
1. `Install PlatformIO <http://docs.platformio.org/en/latest/installation.html>`_
2. Download `source code with examples <https://github.com/platformio/platformio/archive/develop.zip>`_
2. Download `source code with examples <https://github.com/platformio/platformio-examples/archive/develop.zip>`_
3. Extract ZIP archive
4. Run these commands:
.. code-block:: bash
# Change directory to example
> cd platformio-develop/examples/arduino-own-src_dir
> cd platformio-examples/arduino-own-src_dir
# Process example project
# Build project
> platformio run
# Upload firmware
> platformio run --target upload
# Clean build files
> platformio run --target clean

View File

@ -20,7 +20,7 @@
[platformio]
src_dir = Blink
[env:arduino_uno]
[env:uno]
platform = atmelavr
framework = arduino
board = uno

View File

@ -0,0 +1,3 @@
.pioenvs
.clang_complete
.gcc-flags.json

View File

@ -1,4 +1,4 @@
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
.. Copyright 2014-present Ivan Kravets <me@ikravets.com>
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
@ -13,17 +13,20 @@ How to build PlatformIO based project
=====================================
1. `Install PlatformIO <http://docs.platformio.org/en/latest/installation.html>`_
2. Download `source code with examples <https://github.com/platformio/platformio/archive/develop.zip>`_
2. Download `source code with examples <https://github.com/platformio/platformio-examples/archive/develop.zip>`_
3. Extract ZIP archive
4. Run these commands:
.. code-block:: bash
# Change directory to example
> cd platformio-develop/examples/atmelavr-and-arduino/atmelavr-native-blink
> cd platformio-examples/atmelavr-and-arduino/atmelavr-native-blink
# Process example project
# Build project
> platformio run
# Upload firmware
> platformio run --target upload
# Clean build files
> platformio run --target clean

View File

@ -1 +1,3 @@
.pioenvs
.pioenvs
.clang_complete
.gcc-flags.json

View File

@ -1,4 +1,4 @@
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
.. Copyright 2014-present Ivan Kravets <me@ikravets.com>
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
@ -13,17 +13,26 @@ How to build PlatformIO based project
=====================================
1. `Install PlatformIO <http://docs.platformio.org/en/latest/installation.html>`_
2. Download `source code with examples <https://github.com/platformio/platformio/archive/develop.zip>`_
2. Download `source code with examples <https://github.com/platformio/platformio-examples/archive/develop.zip>`_
3. Extract ZIP archive
4. Run these commands:
.. code-block:: bash
# Change directory to example
> cd platformio-develop/examples/atmelavr-and-arduino/digitstump-mouse
> cd platformio-examples/atmelavr-and-arduino/digitstump-mouse
# Process example project
# Build project
> platformio run
# Upload firmware
> platformio run --target upload
# Build specific environment
> platformio run -e digispark-tiny
# Upload firmware for the specific environment
> platformio run -e digispark-tiny --target upload
# Clean build files
> platformio run --target clean

View File

@ -2,6 +2,7 @@
// CAUTION!!!! This does click things!!!!!!!!
// Originally created by Sean Murphy (duckythescientist)
#include <Arduino.h>
#include <DigiMouse.h>
void setup() {
@ -11,7 +12,7 @@ void setup() {
void loop() {
// If not using plentiful DigiMouse.delay(), make sure to call
// DigiMouse.update() at least every 50ms
// move across the screen
// these are signed chars
DigiMouse.moveY(10); //down 10
@ -20,9 +21,9 @@ void loop() {
DigiMouse.delay(500);
DigiMouse.scroll(5);
DigiMouse.delay(500);
// or DigiMouse.move(X, Y, scroll) works
// three buttons are the three LSBs of an unsigned char
DigiMouse.setButtons(1<<0); //left click
DigiMouse.delay(500);

View File

@ -1 +1,3 @@
.pioenvs
.pioenvs
.clang_complete
.gcc-flags.json

View File

@ -1,4 +1,4 @@
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
.. Copyright 2014-present Ivan Kravets <me@ikravets.com>
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
@ -13,16 +13,16 @@ How to build PlatformIO based project
=====================================
1. `Install PlatformIO <http://docs.platformio.org/en/latest/installation.html>`_
2. Download `source code with examples <https://github.com/platformio/platformio/archive/develop.zip>`_
2. Download `source code with examples <https://github.com/platformio/platformio-examples/archive/develop.zip>`_
3. Extract ZIP archive
4. Run these commands:
.. code-block:: bash
# Change directory to example
> cd platformio-develop/examples/atmelavr-and-arduino/engduino-magnetometer
> cd platformio-examples/atmelavr-and-arduino/engduino-magnetometer
# Process example project
# Build project
> platformio run
# Upload firmware

View File

@ -1,3 +1,4 @@
#include <Arduino.h>
#include <EngduinoMagnetometer.h>
#include <Wire.h>
@ -7,12 +8,12 @@
//
void setup()
{
{
EngduinoMagnetometer.begin();
}
void loop()
{
{
float magneticField[3];
// Read magnetic field strength. The values range from -20000
@ -20,7 +21,7 @@ void loop()
// values
//
EngduinoMagnetometer.xyz(magneticField);
float x = magneticField[0];
float y = magneticField[1];
float z = magneticField[2];
@ -31,7 +32,7 @@ void loop()
Serial.print(" counts z = ");
Serial.print(z);
Serial.println(" counts");
// Note that this is an uncalibrated temperature
// of the die itself. Whilst it should be a value
// in degrees C, the lack of calibration could mean
@ -39,6 +40,6 @@ void loop()
int8_t t = EngduinoMagnetometer.temperature();
Serial.print("Temperature: ");
Serial.println(t);
delay(1000);
}

View File

@ -1 +0,0 @@
.pioenvs

View File

@ -0,0 +1,3 @@
.pioenvs
.clang_complete
.gcc-flags.json

View File

@ -0,0 +1,38 @@
.. Copyright 2014-present Ivan Kravets <me@ikravets.com>
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.
How to build PlatformIO based project
=====================================
1. `Install PlatformIO <http://docs.platformio.org/en/latest/installation.html>`_
2. Download `source code with examples <https://github.com/platformio/platformio-examples/archive/develop.zip>`_
3. Extract ZIP archive
4. Run these commands:
.. code-block:: bash
# Change directory to example
> cd platformio-examples/atmelsam-and-arduino/arduino-external-libs
# Build project
> platformio run
# Upload firmware
> platformio run --target upload
# Build specific environment
> platformio run -e due
# Upload firmware for the specific environment
> platformio run -e due --target upload
# Clean build files
> platformio run --target clean

View File

@ -0,0 +1,387 @@
/*
SFE_BMP180.cpp
Bosch BMP180 pressure sensor library for the Arduino microcontroller
Mike Grusin, SparkFun Electronics
Uses floating-point equations from the Weather Station Data Logger project
http://wmrx00.sourceforge.net/
http://wmrx00.sourceforge.net/Arduino/BMP085-Calcs.pdf
Forked from BMP085 library by M.Grusin
version 1.0 2013/09/20 initial version
Our example code uses the "beerware" license. You can do anything
you like with this code. No really, anything. If you find it useful,
buy me a (root) beer someday.
*/
#include <SFE_BMP180.h>
#include <Wire.h>
#include <stdio.h>
#include <math.h>
SFE_BMP180::SFE_BMP180()
// Base library type
{
}
char SFE_BMP180::begin()
// Initialize library for subsequent pressure measurements
{
double c3,c4,b1;
// Start up the Arduino's "wire" (I2C) library:
Wire.begin();
// The BMP180 includes factory calibration data stored on the device.
// Each device has different numbers, these must be retrieved and
// used in the calculations when taking pressure measurements.
// Retrieve calibration data from device:
if (readInt(0xAA,AC1) &&
readInt(0xAC,AC2) &&
readInt(0xAE,AC3) &&
readUInt(0xB0,AC4) &&
readUInt(0xB2,AC5) &&
readUInt(0xB4,AC6) &&
readInt(0xB6,VB1) &&
readInt(0xB8,VB2) &&
readInt(0xBA,MB) &&
readInt(0xBC,MC) &&
readInt(0xBE,MD))
{
// All reads completed successfully!
// If you need to check your math using known numbers,
// you can uncomment one of these examples.
// (The correct results are commented in the below functions.)
// Example from Bosch datasheet
// AC1 = 408; AC2 = -72; AC3 = -14383; AC4 = 32741; AC5 = 32757; AC6 = 23153;
// B1 = 6190; B2 = 4; MB = -32768; MC = -8711; MD = 2868;
// Example from http://wmrx00.sourceforge.net/Arduino/BMP180-Calcs.pdf
// AC1 = 7911; AC2 = -934; AC3 = -14306; AC4 = 31567; AC5 = 25671; AC6 = 18974;
// VB1 = 5498; VB2 = 46; MB = -32768; MC = -11075; MD = 2432;
/*
Serial.print("AC1: "); Serial.println(AC1);
Serial.print("AC2: "); Serial.println(AC2);
Serial.print("AC3: "); Serial.println(AC3);
Serial.print("AC4: "); Serial.println(AC4);
Serial.print("AC5: "); Serial.println(AC5);
Serial.print("AC6: "); Serial.println(AC6);
Serial.print("VB1: "); Serial.println(VB1);
Serial.print("VB2: "); Serial.println(VB2);
Serial.print("MB: "); Serial.println(MB);
Serial.print("MC: "); Serial.println(MC);
Serial.print("MD: "); Serial.println(MD);
*/
// Compute floating-point polynominals:
c3 = 160.0 * pow(2,-15) * AC3;
c4 = pow(10,-3) * pow(2,-15) * AC4;
b1 = pow(160,2) * pow(2,-30) * VB1;
c5 = (pow(2,-15) / 160) * AC5;
c6 = AC6;
mc = (pow(2,11) / pow(160,2)) * MC;
md = MD / 160.0;
x0 = AC1;
x1 = 160.0 * pow(2,-13) * AC2;
x2 = pow(160,2) * pow(2,-25) * VB2;
y0 = c4 * pow(2,15);
y1 = c4 * c3;
y2 = c4 * b1;
p0 = (3791.0 - 8.0) / 1600.0;
p1 = 1.0 - 7357.0 * pow(2,-20);
p2 = 3038.0 * 100.0 * pow(2,-36);
/*
Serial.println();
Serial.print("c3: "); Serial.println(c3);
Serial.print("c4: "); Serial.println(c4);
Serial.print("c5: "); Serial.println(c5);
Serial.print("c6: "); Serial.println(c6);
Serial.print("b1: "); Serial.println(b1);
Serial.print("mc: "); Serial.println(mc);
Serial.print("md: "); Serial.println(md);
Serial.print("x0: "); Serial.println(x0);
Serial.print("x1: "); Serial.println(x1);
Serial.print("x2: "); Serial.println(x2);
Serial.print("y0: "); Serial.println(y0);
Serial.print("y1: "); Serial.println(y1);
Serial.print("y2: "); Serial.println(y2);
Serial.print("p0: "); Serial.println(p0);
Serial.print("p1: "); Serial.println(p1);
Serial.print("p2: "); Serial.println(p2);
*/
// Success!
return(1);
}
else
{
// Error reading calibration data; bad component or connection?
return(0);
}
}
char SFE_BMP180::readInt(char address, int &value)
// Read a signed integer (two bytes) from device
// address: register to start reading (plus subsequent register)
// value: external variable to store data (function modifies value)
{
unsigned char data[2];
data[0] = address;
if (readBytes(data,2))
{
value = (((int)data[0]<<8)|(int)data[1]);
//if (*value & 0x8000) *value |= 0xFFFF0000; // sign extend if negative
return(1);
}
value = 0;
return(0);
}
char SFE_BMP180::readUInt(char address, unsigned int &value)
// Read an unsigned integer (two bytes) from device
// address: register to start reading (plus subsequent register)
// value: external variable to store data (function modifies value)
{
unsigned char data[2];
data[0] = address;
if (readBytes(data,2))
{
value = (((unsigned int)data[0]<<8)|(unsigned int)data[1]);
return(1);
}
value = 0;
return(0);
}
char SFE_BMP180::readBytes(unsigned char *values, char length)
// Read an array of bytes from device
// values: external array to hold data. Put starting register in values[0].
// length: number of bytes to read
{
char x;
Wire.beginTransmission(BMP180_ADDR);
Wire.write(values[0]);
_error = Wire.endTransmission();
if (_error == 0)
{
Wire.requestFrom(BMP180_ADDR,length);
while(Wire.available() != length) ; // wait until bytes are ready
for(x=0;x<length;x++)
{
values[x] = Wire.read();
}
return(1);
}
return(0);
}
char SFE_BMP180::writeBytes(unsigned char *values, char length)
// Write an array of bytes to device
// values: external array of data to write. Put starting register in values[0].
// length: number of bytes to write
{
char x;
Wire.beginTransmission(BMP180_ADDR);
Wire.write(values,length);
_error = Wire.endTransmission();
if (_error == 0)
return(1);
else
return(0);
}
char SFE_BMP180::startTemperature(void)
// Begin a temperature reading.
// Will return delay in ms to wait, or 0 if I2C error
{
unsigned char data[2], result;
data[0] = BMP180_REG_CONTROL;
data[1] = BMP180_COMMAND_TEMPERATURE;
result = writeBytes(data, 2);
if (result) // good write?
return(5); // return the delay in ms (rounded up) to wait before retrieving data
else
return(0); // or return 0 if there was a problem communicating with the BMP
}
char SFE_BMP180::getTemperature(double &T)
// Retrieve a previously-started temperature reading.
// Requires begin() to be called once prior to retrieve calibration parameters.
// Requires startTemperature() to have been called prior and sufficient time elapsed.
// T: external variable to hold result.
// Returns 1 if successful, 0 if I2C error.
{
unsigned char data[2];
char result;
double tu, a;
data[0] = BMP180_REG_RESULT;
result = readBytes(data, 2);
if (result) // good read, calculate temperature
{
tu = (data[0] * 256.0) + data[1];
//example from Bosch datasheet
//tu = 27898;
//example from http://wmrx00.sourceforge.net/Arduino/BMP085-Calcs.pdf
//tu = 0x69EC;
a = c5 * (tu - c6);
T = a + (mc / (a + md));
/*
Serial.println();
Serial.print("tu: "); Serial.println(tu);
Serial.print("a: "); Serial.println(a);
Serial.print("T: "); Serial.println(*T);
*/
}
return(result);
}
char SFE_BMP180::startPressure(char oversampling)
// Begin a pressure reading.
// Oversampling: 0 to 3, higher numbers are slower, higher-res outputs.
// Will return delay in ms to wait, or 0 if I2C error.
{
unsigned char data[2], result, delay;
data[0] = BMP180_REG_CONTROL;
switch (oversampling)
{
case 0:
data[1] = BMP180_COMMAND_PRESSURE0;
delay = 5;
break;
case 1:
data[1] = BMP180_COMMAND_PRESSURE1;
delay = 8;
break;
case 2:
data[1] = BMP180_COMMAND_PRESSURE2;
delay = 14;
break;
case 3:
data[1] = BMP180_COMMAND_PRESSURE3;
delay = 26;
break;
default:
data[1] = BMP180_COMMAND_PRESSURE0;
delay = 5;
break;
}
result = writeBytes(data, 2);
if (result) // good write?
return(delay); // return the delay in ms (rounded up) to wait before retrieving data
else
return(0); // or return 0 if there was a problem communicating with the BMP
}
char SFE_BMP180::getPressure(double &P, double &T)
// Retrieve a previously started pressure reading, calculate abolute pressure in mbars.
// Requires begin() to be called once prior to retrieve calibration parameters.
// Requires startPressure() to have been called prior and sufficient time elapsed.
// Requires recent temperature reading to accurately calculate pressure.
// P: external variable to hold pressure.
// T: previously-calculated temperature.
// Returns 1 for success, 0 for I2C error.
// Note that calculated pressure value is absolute mbars, to compensate for altitude call sealevel().
{
unsigned char data[3];
char result;
double pu,s,x,y,z;
data[0] = BMP180_REG_RESULT;
result = readBytes(data, 3);
if (result) // good read, calculate pressure
{
pu = (data[0] * 256.0) + data[1] + (data[2]/256.0);
//example from Bosch datasheet
//pu = 23843;
//example from http://wmrx00.sourceforge.net/Arduino/BMP085-Calcs.pdf, pu = 0x982FC0;
//pu = (0x98 * 256.0) + 0x2F + (0xC0/256.0);
s = T - 25.0;
x = (x2 * pow(s,2)) + (x1 * s) + x0;
y = (y2 * pow(s,2)) + (y1 * s) + y0;
z = (pu - x) / y;
P = (p2 * pow(z,2)) + (p1 * z) + p0;
/*
Serial.println();
Serial.print("pu: "); Serial.println(pu);
Serial.print("T: "); Serial.println(*T);
Serial.print("s: "); Serial.println(s);
Serial.print("x: "); Serial.println(x);
Serial.print("y: "); Serial.println(y);
Serial.print("z: "); Serial.println(z);
Serial.print("P: "); Serial.println(*P);
*/
}
return(result);
}
double SFE_BMP180::sealevel(double P, double A)
// Given a pressure P (mb) taken at a specific altitude (meters),
// return the equivalent pressure (mb) at sea level.
// This produces pressure readings that can be used for weather measurements.
{
return(P/pow(1-(A/44330.0),5.255));
}
double SFE_BMP180::altitude(double P, double P0)
// Given a pressure measurement P (mb) and the pressure at a baseline P0 (mb),
// return altitude (meters) above baseline.
{
return(44330.0*(1-pow(P/P0,1/5.255)));
}
char SFE_BMP180::getError(void)
// If any library command fails, you can retrieve an extended
// error code using this command. Errors are from the wire library:
// 0 = Success
// 1 = Data too long to fit in transmit buffer
// 2 = Received NACK on transmit of address
// 3 = Received NACK on transmit of data
// 4 = Other error
{
return(_error);
}

View File

@ -0,0 +1,121 @@
/*
SFE_BMP180.h
Bosch BMP180 pressure sensor library for the Arduino microcontroller
Mike Grusin, SparkFun Electronics
Uses floating-point equations from the Weather Station Data Logger project
http://wmrx00.sourceforge.net/
http://wmrx00.sourceforge.net/Arduino/BMP085-Calcs.pdf
Forked from BMP085 library by M.Grusin
version 1.0 2013/09/20 initial version
Our example code uses the "beerware" license. You can do anything
you like with this code. No really, anything. If you find it useful,
buy me a (root) beer someday.
*/
#ifndef SFE_BMP180_h
#define SFE_BMP180_h
#if defined(ARDUINO) && ARDUINO >= 100
#include "Arduino.h"
#else
#include "WProgram.h"
#endif
class SFE_BMP180
{
public:
SFE_BMP180(); // base type
char begin();
// call pressure.begin() to initialize BMP180 before use
// returns 1 if success, 0 if failure (bad component or I2C bus shorted?)
char startTemperature(void);
// command BMP180 to start a temperature measurement
// returns (number of ms to wait) for success, 0 for fail
char getTemperature(double &T);
// return temperature measurement from previous startTemperature command
// places returned value in T variable (deg C)
// returns 1 for success, 0 for fail
char startPressure(char oversampling);
// command BMP180 to start a pressure measurement
// oversampling: 0 - 3 for oversampling value
// returns (number of ms to wait) for success, 0 for fail
char getPressure(double &P, double &T);
// return absolute pressure measurement from previous startPressure command
// note: requires previous temperature measurement in variable T
// places returned value in P variable (mbar)
// returns 1 for success, 0 for fail
double sealevel(double P, double A);
// convert absolute pressure to sea-level pressure (as used in weather data)
// P: absolute pressure (mbar)
// A: current altitude (meters)
// returns sealevel pressure in mbar
double altitude(double P, double P0);
// convert absolute pressure to altitude (given baseline pressure; sea-level, runway, etc.)
// P: absolute pressure (mbar)
// P0: fixed baseline pressure (mbar)
// returns signed altitude in meters
char getError(void);
// If any library command fails, you can retrieve an extended
// error code using this command. Errors are from the wire library:
// 0 = Success
// 1 = Data too long to fit in transmit buffer
// 2 = Received NACK on transmit of address
// 3 = Received NACK on transmit of data
// 4 = Other error
private:
char readInt(char address, int &value);
// read an signed int (16 bits) from a BMP180 register
// address: BMP180 register address
// value: external signed int for returned value (16 bits)
// returns 1 for success, 0 for fail, with result in value
char readUInt(char address, unsigned int &value);
// read an unsigned int (16 bits) from a BMP180 register
// address: BMP180 register address
// value: external unsigned int for returned value (16 bits)
// returns 1 for success, 0 for fail, with result in value
char readBytes(unsigned char *values, char length);
// read a number of bytes from a BMP180 register
// values: array of char with register address in first location [0]
// length: number of bytes to read back
// returns 1 for success, 0 for fail, with read bytes in values[] array
char writeBytes(unsigned char *values, char length);
// write a number of bytes to a BMP180 register (and consecutive subsequent registers)
// values: array of char with register address in first location [0]
// length: number of bytes to write
// returns 1 for success, 0 for fail
int AC1,AC2,AC3,VB1,VB2,MB,MC,MD;
unsigned int AC4,AC5,AC6;
double c5,c6,mc,md,x0,x1,x2,y0,y1,y2,p0,p1,p2;
char _error;
};
#define BMP180_ADDR 0x77 // 7-bit address
#define BMP180_REG_CONTROL 0xF4
#define BMP180_REG_RESULT 0xF6
#define BMP180_COMMAND_TEMPERATURE 0x2E
#define BMP180_COMMAND_PRESSURE0 0x34
#define BMP180_COMMAND_PRESSURE1 0x74
#define BMP180_COMMAND_PRESSURE2 0xB4
#define BMP180_COMMAND_PRESSURE3 0xF4
#endif

View File

@ -17,17 +17,17 @@
# Automatic targets - enable auto-uploading
# targets = upload
[env:flora8]
platform = atmelavr
[env:due]
platform = atmelsam
framework = arduino
board = flora8
board = due
[env:trinket3]
platform = atmelavr
[env:digix]
platform = atmelsam
framework = arduino
board = trinket3
board = digix
[env:protrinket5]
platform = atmelavr
[env:zero]
platform = atmelsam
framework = arduino
board = protrinket5
board = zeroUSB

View File

@ -0,0 +1,169 @@
/* SFE_BMP180 altitude example sketch
This sketch shows how to use the Bosch BMP180 pressure sensor
as an altimiter.
https://www.sparkfun.com/products/11824
Like most pressure sensors, the BMP180 measures absolute pressure.
Since absolute pressure varies with altitude, you can use the pressure
to determine your altitude.
Because pressure also varies with weather, you must first take a pressure
reading at a known baseline altitude. Then you can measure variations
from that pressure
Hardware connections:
- (GND) to GND
+ (VDD) to 3.3V
(WARNING: do not connect + to 5V or the sensor will be damaged!)
You will also need to connect the I2C pins (SCL and SDA) to your
Arduino. The pins are different on different Arduinos:
Any Arduino pins labeled: SDA SCL
Uno, Redboard, Pro: A4 A5
Mega2560, Due: 20 21
Leonardo: 2 3
Leave the IO (VDDIO) pin unconnected. This pin is for connecting
the BMP180 to systems with lower logic levels such as 1.8V
Have fun! -Your friends at SparkFun.
The SFE_BMP180 library uses floating-point equations developed by the
Weather Station Data Logger project: http://wmrx00.sourceforge.net/
Our example code uses the "beerware" license. You can do anything
you like with this code. No really, anything. If you find it useful,
buy me a beer someday.
V10 Mike Grusin, SparkFun Electronics 10/24/2013
*/
// Your sketch must #include this library, and the Wire library.
// (Wire is a standard library included with Arduino.):
#include <Arduino.h>
#include <SFE_BMP180.h>
#include <Wire.h>
// You will need to create an SFE_BMP180 object, here called "pressure":
SFE_BMP180 pressure;
double baseline; // baseline pressure
void setup()
{
Serial.begin(9600);
Serial.println("REBOOT");
// Initialize the sensor (it is important to get calibration values stored on the device).
if (pressure.begin())
Serial.println("BMP180 init success");
else
{
// Oops, something went wrong, this is usually a connection problem,
// see the comments at the top of this sketch for the proper connections.
Serial.println("BMP180 init fail (disconnected?)\n\n");
while(1); // Pause forever.
}
// Get the baseline pressure:
baseline = getPressure();
Serial.print("baseline pressure: ");
Serial.print(baseline);
Serial.println(" mb");
}
void loop()
{
double a,P;
// Get a new pressure reading:
P = getPressure();
// Show the relative altitude difference between
// the new reading and the baseline reading:
a = pressure.altitude(P,baseline);
Serial.print("relative altitude: ");
if (a >= 0.0) Serial.print(" "); // add a space for positive numbers
Serial.print(a,1);
Serial.print(" meters, ");
if (a >= 0.0) Serial.print(" "); // add a space for positive numbers
Serial.print(a*3.28084,0);
Serial.println(" feet");
delay(500);
}
double getPressure()
{
char status;
double T,P,p0,a;
// You must first get a temperature measurement to perform a pressure reading.
// Start a temperature measurement:
// If request is successful, the number of ms to wait is returned.
// If request is unsuccessful, 0 is returned.
status = pressure.startTemperature();
if (status != 0)
{
// Wait for the measurement to complete:
delay(status);
// Retrieve the completed temperature measurement:
// Note that the measurement is stored in the variable T.
// Use '&T' to provide the address of T to the function.
// Function returns 1 if successful, 0 if failure.
status = pressure.getTemperature(T);
if (status != 0)
{
// Start a pressure measurement:
// The parameter is the oversampling setting, from 0 to 3 (highest res, longest wait).
// If request is successful, the number of ms to wait is returned.
// If request is unsuccessful, 0 is returned.
status = pressure.startPressure(3);
if (status != 0)
{
// Wait for the measurement to complete:
delay(status);
// Retrieve the completed pressure measurement:
// Note that the measurement is stored in the variable P.
// Use '&P' to provide the address of P.
// Note also that the function requires the previous temperature measurement (T).
// (If temperature is stable, you can do one temperature measurement for a number of pressure measurements.)
// Function returns 1 if successful, 0 if failure.
status = pressure.getPressure(P,T);
if (status != 0)
{
return(P);
}
else Serial.println("error retrieving pressure measurement\n");
}
else Serial.println("error starting pressure measurement\n");
}
else Serial.println("error retrieving temperature measurement\n");
}
else Serial.println("error starting temperature measurement\n");
}

View File

@ -0,0 +1,3 @@
.pioenvs
.clang_complete
.gcc-flags.json

View File

@ -0,0 +1,65 @@
# Continuous Integration (CI) is the practice, in software
# engineering, of merging all developer working copies with a shared mainline
# several times a day < http://docs.platformio.org/en/latest/ci/index.html >
#
# Documentation:
#
# * Travis CI Embedded Builds with PlatformIO
# < https://docs.travis-ci.com/user/integration/platformio/ >
#
# * PlatformIO integration with Travis CI
# < http://docs.platformio.org/en/latest/ci/travis.html >
#
# * User Guide for `platformio ci` command
# < http://docs.platformio.org/en/latest/userguide/cmd_ci.html >
#
#
# Please choose one of the following templates (proposed below) and uncomment
# it (remove "# " before each line) or use own configuration according to the
# Travis CI documentation (see above).
#
#
# Template #1: General project. Test it using existing `platformio.ini`.
#
# language: python
# python:
# - "2.7"
#
# sudo: false
# cache:
# directories:
# - "~/.platformio"
#
# install:
# - pip install -U platformio
#
# script:
# - platformio run
#
# Template #2: The project is intended to by used as a library with examples
#
# language: python
# python:
# - "2.7"
#
# sudo: false
# cache:
# directories:
# - "~/.platformio"
#
# env:
# - PLATFORMIO_CI_SRC=path/to/test/file.c
# - PLATFORMIO_CI_SRC=examples/file.ino
# - PLATFORMIO_CI_SRC=path/to/test/directory
#
# install:
# - pip install -U platformio
#
# script:
# - platformio ci --lib="." --board=TYPE_1 --board=TYPE_2 --board=TYPE_N

View File

@ -0,0 +1,38 @@
.. Copyright 2014-present Ivan Kravets <me@ikravets.com>
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.
How to build PlatformIO based project
=====================================
1. `Install PlatformIO <http://docs.platformio.org/en/latest/installation.html>`_
2. Download `source code with examples <https://github.com/platformio/platformio-examples/archive/develop.zip>`_
3. Extract ZIP archive
4. Run these commands:
.. code-block:: bash
# Change directory to example
> cd platformio-examples/atmelsam-and-arduino/arduino-internal-libs
# Build project
> platformio run
# Upload firmware
> platformio run --target upload
# Build specific environment
> platformio run -e uno
# Upload firmware for the specific environment
> platformio run -e uno --target upload
# Clean build files
> platformio run --target clean

View File

@ -0,0 +1,38 @@
This directory is intended for the project specific (private) libraries.
PlatformIO will compile them to static libraries and link to executable file.
The source code of each library should be placed in separate directory, like
"lib/private_lib/[here are source files]".
For example, see how can be organized `Foo` and `Bar` libraries:
|--lib
| |--Bar
| | |--docs
| | |--examples
| | |--src
| | |- Bar.c
| | |- Bar.h
| |--Foo
| | |- Foo.c
| | |- Foo.h
| |- readme.txt --> THIS FILE
|- platformio.ini
|--src
|- main.c
Then in `src/main.c` you should use:
#include <Foo.h>
#include <Bar.h>
// rest H/C/CPP code
PlatformIO will find your libraries automatically, configure preprocessor's
include paths and build them.
See additional options for PlatformIO Library Dependency Finder `lib_*`:
http://docs.platformio.org/en/latest/projectconf.html#lib-install

Some files were not shown because too many files have changed in this diff Show More