From 0263691f8d1bcd2a881797bca8562ace34627495 Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Thu, 25 Feb 2016 02:23:54 +0200 Subject: [PATCH] Refactor docs for "What is PlatformIO?" --- docs/demo.rst | 10 +++- docs/faq.rst | 44 +---------------- docs/index.rst | 9 +++- docs/what-is-platformio.rst | 98 +++++++++++++++++++++++++++++++++++++ 4 files changed, 115 insertions(+), 46 deletions(-) create mode 100644 docs/what-is-platformio.rst diff --git a/docs/demo.rst b/docs/demo.rst index 9f3bcb87..91f438db 100644 --- a/docs/demo.rst +++ b/docs/demo.rst @@ -17,10 +17,18 @@ Demo & Projects .. contents:: Project Examples ----------------- +^^^^^^^^^^^^^^^^ Preconfigured demo projects are located in `PlatformIO GitHub `_ repository. +PlatformIO IDE Demo +^^^^^^^^^^^^^^^^^^^ + +Soon. + +PlatformIO CLI Demo +^^^^^^^^^^^^^^^^^^^ + Wiring Blink ------------ diff --git a/docs/faq.rst b/docs/faq.rst index cb0b0360..efc7df81 100644 --- a/docs/faq.rst +++ b/docs/faq.rst @@ -19,53 +19,11 @@ Frequently Asked Questions General ------- -.. _faq_what_is_platformio: - What is PlatformIO? ~~~~~~~~~~~~~~~~~~~ -`PlatformIO `_ is an open source ecosystem for IoT -development. +Please refer to :ref:`what_is_pio`. -PlatformIO is independent from the platform, in which it is running. In fact, -the only requirement is Python, which exists pretty much everywhere. What this -means is that PlatformIO projects can be easily moved from one computer to -another, as well as that PlatformIO allows for the easy sharing of projects -between team members, regardless of operating system they prefer to work with. -Beyond that, PlatformIO can be run not only on commonly used desktops/laptops -but also on the servers without X Window System. While PlatformIO itself is a -console application, it can be used in combination with one's favorite -:ref:`ide` or text editor such as :ref:`ide_atom`, :ref:`ide_clion`, -:ref:`ide_eclipse`, :ref:`ide_emacs`, :ref:`ide_qtcreator`, -:ref:`ide_sublimetext`, :ref:`ide_vim`, :ref:`ide_visualstudio`, etc. - -Alright, so PlatformIO can run on different operating systems. But more -importantly, from development perspective at least, is a list of supported -boards and MCUs. To keep things short: PlatformIO supports approximately 200 -`Embedded Boards `_ and all major -:ref:`Development Platforms `. - -PlatformIO allows users to: - -* Decide which operation system they want to run development process on. - You can even use one OS at home and another at work. -* Choose which editor to use for writing the code. It can be pretty simple - editor or powerful favorite :ref:`ide`. -* Focus on the code development, significantly simplifying support for the - :ref:`platforms` and MCUs. - - -How does it work? -~~~~~~~~~~~~~~~~~ - -Without going too deep into PlatformIO implementation details, work cycle of -the project developed using PlatformIO is as follows: - -* Users choose board(s) interested in :ref:`projectconf` -* Based on this list of boards, PlatformIO downloads required toolchains and - installs them automatically. -* Users develop code and PlatformIO makes sure that it is compiled, prepared - and uploaded to all the boards of interest. Command completion in Terminal ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/docs/index.rst b/docs/index.rst index d90add24..5fd6c62c 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -72,16 +72,21 @@ The Missing Library Manager. *It's here!* * It runs on Windows, Mac OS X, and Linux (+ARM). For further details, please refer to -:ref:`What is PlatformIO? How does it work? ` +:ref:`What is PlatformIO? How does it work? ` Contents -------- +.. toctree:: + :maxdepth: 2 + + what-is-platformio + demo + .. toctree:: :caption: Getting Started :maxdepth: 2 - demo installation quickstart userguide/index diff --git a/docs/what-is-platformio.rst b/docs/what-is-platformio.rst new file mode 100644 index 00000000..3ac16524 --- /dev/null +++ b/docs/what-is-platformio.rst @@ -0,0 +1,98 @@ +.. Copyright 2014-2016 Ivan Kravets + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + http://www.apache.org/licenses/LICENSE-2.0 + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +.. _what_is_pio: + +What is PlatformIO? +=================== + +.. contents:: + +Press about PlatformIO +---------------------- + +"Different microcontrollers normally have different developing tools [*]_. +For instance Arduino rely on Arduino IDE. Few more advanced users set up different +graphical interfaces like Eclipse for better project management. Sometimes +it may be hard to keep up with different microcontrollers and tools. You +probably thought that single unified development tool could be great. Well +this is what PlatformIO open source ecosystem is for. + +This is cross platform code builder and library manager with platforms like +Arduino or MBED support. They took care of toolchains, debuggers, frameworks +that work on most popular platforms like Windows, Mac and Linux. It supports +more than 200 development boards along with more than 15 development platforms +and 10 frameworks. So most of popular boards are covered. They’ve done hard +work in organizing and managing hundreds of libraries that can be included +in to your project. Also lots of examples allow you to start developing +quickly. PlatformIO initially was developed with Command line philosophy. +It’s been successfully used with other IDE’s like Eclipse or Visual Studio. +Recently they’ve released a version with built in IDE based on Atom text editor". + +Problematic +----------- + +* The main problem which repulses people from embedded world is a complicated + process to setup development software for a specific MCU/board: toolchains, + proprietary vendor’s IDE (which sometimes isn’t free) and what is more, + to get a computer with OS where that software is supported. +* Multiple hardware platforms (MCUs, boards) require different toolchains, + IDEs, etc, and, respectively, spending time on learning new development environments. +* Finding proper libraries and code samples showing how to use popular + sensors, actuators, etc. +* Sharing embedded projects between team members, regardless of operating + system they prefer to work with. + +Overview +-------- + +PlatformIO is independent from the platform, in which it is running. In fact, +the only requirement is Python, which exists pretty much everywhere. What this +means is that PlatformIO projects can be easily moved from one computer to +another, as well as that PlatformIO allows for the easy sharing of projects +between team members, regardless of operating system they prefer to work with. +Beyond that, PlatformIO can be run not only on commonly used desktops/laptops +but also on the servers without X Window System. While PlatformIO itself is a +console application, it can be used in combination with one's favorite +:ref:`ide` or text editor such as :ref:`ide_atom`, :ref:`ide_clion`, +:ref:`ide_eclipse`, :ref:`ide_emacs`, :ref:`ide_netbeans`, :ref:`ide_qtcreator`, +:ref:`ide_sublimetext`, :ref:`ide_vim`, :ref:`ide_visualstudio`, etc. + +Alright, so PlatformIO can run on different operating systems. But more +importantly, from development perspective at least, is a list of supported +boards and MCUs. To keep things short: PlatformIO supports approximately 200 +`Embedded Boards `_ and all major +:ref:`Development Platforms `. + +PlatformIO allows users to: + +* Decide which operation system they want to run development process on. + You can even use one OS at home and another at work. +* Choose which editor to use for writing the code. It can be pretty simple + editor or powerful favorite :ref:`ide`. +* Focus on the code development, significantly simplifying support for the + :ref:`platforms` and MCUs. + + +How does it work? +----------------- + +Without going too deep into PlatformIO implementation details, work cycle of +the project developed using PlatformIO is as follows: + +* Users choose board(s) interested in :ref:`projectconf` +* Based on this list of boards, PlatformIO downloads required toolchains and + installs them automatically. +* Users develop code and PlatformIO makes sure that it is compiled, prepared + and uploaded to all the boards of interest. + + +.. [*] Embedds.com: `Develop easier with PlatformIO ecosystem `_ \ No newline at end of file