Close
0%
0%

PlatformIO

PlatformIO is an open source ecosystem for IoT development
(Cross-platform IDE and unified debugger. Remote testing and firmware updates)

Similar projects worth following
PlatformIO.org is an open source ecosystem for IoT development. Cross-platform IDE and unified debugger. Remote unit testing and firmware updates.

Supported development platforms: Atmel AVR & SAM, Espressif, Freescale Kinetis, Nordic nRF51, NXP LPC, Silicon Labs EFM32, ST STM32, TI MSP430 & Tiva, Teensy, Arduino, mbed, libOpenCM3, etc.

While PlatformIO.org itself is a console application, it can be used in combination with one’s favourite IDE Integration or text editor such as Arduino, Atom, CLion, Eclipse, Qt Creator, Sublime Text, VIM, Visual Studio, etc.

Embedded Development. Easier Than Ever.

Smart Code Builder. Fast and Reliable.

  • Reliable, automatic dependency analysis and detection of build changes
  • Improved support for parallel builds
  • Ability to share built files in a cache
  • Lookup for external libraries which are installed via Library Manager

The Missing Library Manager. It’s here!

  • Friendly Command-Line Interface
  • Modern Web 2.0 Library Search
  • Library dependency management
  • Automatic library updating
  • It runs on Windows, Mac OS X, and Linux (+ARM).

  • PlatformIO Core 3.6.3

    Ivan Kravets2 days ago 0 comments

    • Ignore *.asm and *.ASM files when building Arduino-based library (compatibility with Arduino builder)
    • Fixed spurious project's "Problems" for PlatformIO IDE for VSCode when ARM mbed framework is used
    • Fixed an issue with a broken headers list when generating ".clang_complete" for Emacs (issue #1960)

  • PlatformIO Core 3.6.2

    Ivan Kravets11/29/2018 at 16:54 0 comments

    • Improved IntelliSense for PlatformIO IDE for VSCode via passing extra compiler information for C/C++ Code Parser (resolves issues with spurious project’s “Problems”)
    • Fixed an issue with VSCode IntelliSense warning about the missed headers located in includefolder
    • Fixed incorrect wording when initializing/updating project
    • Fixed an issue with incorrect order for library dependencies CPPPATH (issue #1914)
    • Fixed an issue when Library Dependency Finder (LDF) does not handle project src_filter (issue #1905)
    • Fixed an issue when Library Dependency Finder (LDF) finds spurious dependencies in chain+and deep+ modes (issue #1930)

  • PlatformIO Core 3.6.1

    Ivan Kravets11/29/2018 at 16:53 0 comments

    • Generate an include and test directories with a README file when initializing a new project
    • Support in-line comments for multi-line value (<span class="pre">lib_deps</span><span class="pre">build_flags</span>, etc) in “platformio.ini” (Project Configuration File)
    • Added <span class="pre">$PROJECT_HASH</span> template variable for build_dir. One of the use cases is setting a global storage for project artifacts using PLATFORMIO_BUILD_DIR system environment variable. For example, <span class="pre">/tmp/pio-build/$PROJECT_HASH</span> (Unix) or <span class="pre"></span> (Windows)
    • Improved a loading speed of PIO Home “Recent News”
    • Improved PIO Unified Debugger for “mbed” framework and fixed issue with missed local variables
    • Introduced “Release” and “Debug” Build Configurations
    • Build project in “Debug Mode” including debugging information with a new >span class="pre"###debug target using platformio run command or targets option in <span class="pre">platformio.ini</span>. The last option allows avoiding project rebuilding between “Run/Debug” modes. (issue #1833)
    • Process <span class="pre">build_unflags</span> for the cloned environment when building a static library
    • Report on outdated 99-platformio-udev.rules (issue #1823)
    • Show a valid error when the Internet is off-line while initializing a new project (issue #1784)
    • Do not re-create “.gitignore” and “.travis.yml” files if they were removed from a project
    • Fixed an issue when dynamic build flags were not handled correctly (issue #1799)
    • Fixed an issue when <span class="pre">pio</span> <span class="pre">run</span> <span class="pre">-t</span> <span class="pre">monitor</span> always uses the first <span class="pre">monitor_port</span> even with multiple environments (issue #1841)
    • Fixed an issue with broken includes when generating <span class="pre">.clang_complete</span> and space is used in a path (issue #1873)
    • Fixed an issue with incorrect handling of a custom package name when using platformio lib install or platformio platform install commands

  • PlatformIO Core 3.6.0

    Ivan Kravets08/06/2018 at 15:51 0 comments

    • Program Memory Usage
      • Print human-readable memory usage information after a build and before uploading
      • Print detailed memory usage information with "sections" and "addresses" in verbose mode
      • Check maximum allowed "program" and "data" sizes before uploading/programming (issue #1412)
    • PIO Unit Testing:
    • Check package structure after unpacking and raise error when antivirus tool blocks PlatformIO package manager (issue #1462)
    • Lock interprocess requests to PlatformIO Package Manager for install/uninstall operations (issue #1594)
    • Fixed an issue with PIO Remote when upload process depends on the source code of a project framework
    • Fixed an issue when srcFilter field in library.json breaks a library build (issue #1735)

  • PlatformIO Core 3.5.4

    Ivan Kravets07/03/2018 at 12:43 0 comments

  • PlatformIO 3.5.3

    Ivan Kravets06/01/2018 at 14:28 0 comments

    • PlatformIO Home - interact with PlatformIO ecosystem using modern and cross-platform GUI:
      • "Recent News" block on "Welcome" page
      • Direct import of development platform's example
    • Simplify configuration for PIO Unit Testing: separate main program from a test build process, drop requirement for #ifdef UNIT_TEST guard
    • Override any option from board manifest in Project Configuration File "platformio.ini" (issue #1612)
    • Configure a custom path to SVD file using debug_svd_path option
    • Custom project description which will be used by PlatformIO Home
    • Updated Unity tool to 2.4.3
    • Improved support for Black Magic Probe in "uploader" mode
    • Renamed "monitor_baud" option to "monitor_speed"
    • Fixed issue when a custom lib_dir was not handled correctly (issue #1473)
    • Fixed issue with useless project rebuilding for case insensitive file systems (Windows)
    • Fixed issue with build_unflags option when a macro contains value (e.g., -DNAME=VALUE)
    • Fixed issue which did not allow to override runtime build environment using extra POST script
    • Fixed "RuntimeError: maximum recursion depth exceeded" for library manager (issue #1528)

  • PlatformIO Core 3.5.2

    Ivan Kravets03/13/2018 at 11:18 0 comments

    • PlatformIO Home - interact with PlatformIO ecosystem using modern and cross-platform GUI:
      • Multiple themes (Dark & Light)
      • Ability to specify a name for new project
    • Control PIO Unified Debugger and its firmware loading mode using debug_load_mode option
    • Added aliases (off, light, strict) for LDF Compatibility Mode
    • Search for a library using PIO Library Registry ID id:X (e.g. pio lib search id:13)
    • Show device system information (MCU, Frequency, RAM, Flash, Debugging tools) in a build log
    • Show all available upload protocols before firmware uploading in a build log
    • Handle "os.mbed.com" URL as a Mercurial (hg) repository
    • Improved support for old mbed libraries without manifest
    • Fixed project generator for Qt Creator IDE (issue #1303issue #1323)
    • Mark project source and library directories for CLion IDE (issue #1359issue #1345issue #897)
    • Fixed issue with duplicated "include" records when generating data for IDE (issue #1301)

  • PlatformIO Core 3.5.1

    Ivan Kravets01/18/2018 at 14:08 0 comments

    • New test_speed option to control a communication baudrate/speed between PIO Unit Testingengine and a target device (issue #1273)
    • Show full library version in "Library Dependency Graph" including VCS information (issue #1274)
    • Configure a custom firmware/program name in build directory (example)
    • Renamed envs_dir option to build_dir in Project Configuration File "platformio.ini"
    • Refactored code without "arrow" dependency (resolve issue with "ImportError: No module named backports.functools_lru_cache")
    • Improved support of PIO Unified Debugger for Eclipse Oxygen
    • Improved a work in off-line mode
    • Fixed project generator for CLion and Qt Creator IDE (issue #1299)
    • Fixed PIO Unified Debugger for mbed framework
    • Fixed library updates when a version is declared in VCS format (not SemVer)

  • PlatformIO Core 3.5.0

    Ivan Kravets12/28/2017 at 16:27 0 comments

    PlatformIO Core 3.5.0 introduces many new features and performance improvements. The notable changes are as follows:

    See PlatformIO 3.5 Release Notes for details.

  • PlatformIO Core 3.4.1

    Ivan Kravets08/02/2017 at 13:58 0 comments

    • Pre/Post extra scripting for advanced control of PIO Build System (issue #891)
    • New lib_archive option to control library archiving and linking behavior (issue #993)
    • Add "inc" folder automatically to CPPPATH when "src" is available (works for project and library) (issue #1003)
    • Use a root of library when filtering source code using library.json and srcFilter field
    • Added monitor_* options to white-list for Project Configuration File "platformio.ini" (issue #982)
    • Do not ask for board ID when initializing project for desktop platform
    • Handle broken PIO Core state and create new one
    • Fixed an issue with a custom transport for PIO Unit Testing when multiple tests are present
    • Fixed an issue when can not upload firmware to SAM-BA based board (Due)

View all 47 project logs

  • 1
    Step 1

    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 over 150+ Embedded Boards and all major 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 IDE Integration.
    • Focus on the code development, significantly simplifying support for the Platforms & Embedded Boards 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 Project Configuration File platformio.ini
    • 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.

View all instructions

Enjoy this project?

Share

Discussions

jake_k wrote 06/17/2016 at 07:00 point

I'm liking the way this works quite a lot, but output tends to be really verbose. Is there a way to reduce that?

  Are you sure? yes | no

jake_k wrote 06/17/2016 at 07:18 point

Much better, thank you.

  Are you sure? yes | no

John Boyd wrote 04/25/2016 at 15:06 point

I really like your project! I had some questions I couldnt find on the website. Does the software support programming and debugging? Is it restricted to using the wiring language?

Thanks!

  Are you sure? yes | no

Ivan Kravets wrote 04/25/2016 at 18:25 point

> Does the software support programming and debugging?

Currently, the software supports only programming. However, we are working on debugging too. We hope that our user will see the first results very soon.

> Is it restricted to using the wiring language?

We have support for more than 10+ different frameworks, SDK and etc. See http://platformio.org/frameworks/

  Are you sure? yes | no

John Boyd wrote 04/25/2016 at 18:46 point

Thanks for your reply. I see the frameworks tab now. Thanks! I will be giving this a try this weekend :)

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates