SlideShare ist ein Scribd-Unternehmen logo
1 von 21
Downloaden Sie, um offline zu lesen
Ivan Kravets
Explore the new development
instruments for Arduino with
PlatformIO ecosystem
ARDUINO DEVELOPER SUMMIT 2016
@me
IVAN KRAVETS
CTO, Founder of PlatformIO.Org
Ph.D., Researcher and Software Architect
“Creativity comes from talent and never from knowledge” ©
www.ikravets.com / me@ikravets.com
ARDUINO DEVELOPER SUMMIT 2016
What is PlatformIO?
An open source ecosystem for IoT development
• Cross-platform Build System
• Package Manager (pre-built toolchains, frameworks, SDK)
• Library Manager
• Continuous and IDE integration
• Arduino and ARM mbed compatible
• Windows, macOS, Linux (+ARM v6/v7)
• Written in Python
ARDUINO DEVELOPER SUMMIT 2016
Professional development for...
• 250+ embedded boards
• 100+ different MCUs
• 20+ development platforms: Atmel AVR/SAM, Espressif, Freescale Kinetis, Intel ARC32,
Lattice iCE40 FPGA, Microchip PIC32, Nordic nRF51, NXP LPC, Silicon Labs EFM32, ST
STM32, TI MSP430/Tiva, Teensy
• 10+ frameworks: Arduino, CMSIS, WiringPi, libOpenCM3, Energia, ESP8266 SDK, SPL,
ARM mbed
ARDUINO DEVELOPER SUMMIT 2016
PlatformIO Command Line Interface (CLI)
$ platformio --help
• Coloured terminal output
• Option “--json-output”
• Standard streams
• Exit status “echo $?”
• Ready for Cloud Compiling
• Windows, macOS, Linux
ARDUINO DEVELOPER SUMMIT 2016
PlatformIO IDE
The next-generation integrated development environment for IoT
ARDUINO DEVELOPER SUMMIT 2016
PlatformIO IDE: key features
• C/C++ Intelligent Code Completion and
Smart Code Linter for rapid professional
development
• Multi-projects workflow with multiple
panes and Themes support with dark
and light colours
• Built-in Terminal with PlatformIO CLI tool
and powerful Serial Port Monitor
ARDUINO DEVELOPER SUMMIT 2016
Project Generator for your IDE
$ platformio init --ide
• Integration with Atom, CLion, CodeBlocks, Eclipse, Emacs, NetBeans, Qt Creator, Sublime
Text, Vim, Microsoft Visual Studio
• Native plugins/packages for Atom, CodeBlocks, Emacs, NetBeans, Sublime Text
• Actual project data for code completion and for the source code linter
ARDUINO DEVELOPER SUMMIT 2016
Project Configuration “platformio.ini”
Single source code.
Multiple environments.
• Custom CPU frequency or Flash size
• Extra build flags
• Option to remove built-in flags (“unflags")
• Source code filter
• Upload settings (port, protocol, speed)
• Extra scripting (control build system)
ARDUINO DEVELOPER SUMMIT 2016
• Friendly Command-Line Interface
• Web 2.0 Library Portal (examples,
discussions, frameworks and platforms
compatibility information)
• Open Source API
• Library Crawler for “library.json” manifest
• Library dependency management
• Automatic library updates
Library Manager and Registry
ARDUINO DEVELOPER SUMMIT 2016
Web 2.0 Library Portal
ARDUINO DEVELOPER SUMMIT 2016
“library.json”
Manifest file for embedded library
• Custom structure of source code
• Examples list
• Compatible frameworks and platforms
• Library dependencies
• Extra build flags, source code filters
ARDUINO DEVELOPER SUMMIT 2016
Continuous Integration
$ platformio ci --help
• Integration with AppVeyor, Circle CI, Dron.IO, Shippable, Travis CI
• Variable source code ($PLATFORMIO_CI_SRC) and build flags
($PLATFORMIO_BUILD_FLAGS)
• Custom Project Configuration “$ platformio ci --project-conf /path/custom_platformio.ini”
• Project as a library “$ platformio ci /path/to/example --lib .”
ARDUINO DEVELOPER SUMMIT 2016
Travis CI: Embedded Builds with PlatformIO
• Official Travis CI documentation
• Automatic Build Jobs / Matrix Builds
• Cache system for PlatformIO
packages
• Project generator with “.travis.yml”
template
ARDUINO DEVELOPER SUMMIT 2016
Continuous Delivery
Automatic firmware updates by Daniel Eichhorn
ARDUINO DEVELOPER SUMMIT 2016
• Decentralised architecture for development
platforms
• Unit testing for embedded (local & remote)
• Cloud Agent for integration with Cloud IDEs
(Cloud9, Codeanywhere, Codenvy, Eclipse Che)
• New Library Build System (semantic
versioning, intelligent dependency finder,
support for 3-rd party manifests)
• Hardware debugging
PlatformIO 3.0
ARDUINO DEVELOPER SUMMIT 2016
Decentralised architecture: “platform.json”
• “platform.json” manifest file for development platform
• Semantic versioning for packages, development
platforms and projects
• Package dependencies with custom package storage
• Embedded board configurations (build and upload
options)
• Isolated build scripts
ARDUINO DEVELOPER SUMMIT 2016
Unit Testing
$ platformio test --help
• Local PC and Hardware unit testing for embedded
• Rich Unity Test API
ARDUINO DEVELOPER SUMMIT 2016
Developers love PlatformIO!
• 1100 stars on GitHub
• 2000 commits and 60 releases since May, 2014
• Estimated 4 years of effort (COCOMO model)
• 30000 downloads of PlatformIO IDE for the first 3 months
• Community from 150 countries
• Nominated for the year’s best Software and Tools in the 2015/16 IoT Awards
ARDUINO DEVELOPER SUMMIT 2016
PlatformIO 3.0
THIS SUMMER
Questions?
T H A N K Y O U

Weitere ähnliche Inhalte

Was ist angesagt?

Software, Over the Air (SOTA) for Automotive Grade Linux (AGL)
Software, Over the Air (SOTA) for Automotive Grade Linux (AGL)Software, Over the Air (SOTA) for Automotive Grade Linux (AGL)
Software, Over the Air (SOTA) for Automotive Grade Linux (AGL)Leon Anavi
 
Rad Studio, Delphi, C++Builder, and Appmethod 2015 Technology Roadmap
Rad Studio, Delphi, C++Builder, and Appmethod 2015 Technology RoadmapRad Studio, Delphi, C++Builder, and Appmethod 2015 Technology Roadmap
Rad Studio, Delphi, C++Builder, and Appmethod 2015 Technology RoadmapJTatEmbarcaderoTechnologies
 
Having A Talk With Jenkins
Having A Talk With JenkinsHaving A Talk With Jenkins
Having A Talk With JenkinsCliffano Subagio
 
Tehran's 1st Android bootcamp - Part2
Tehran's 1st Android bootcamp - Part2Tehran's 1st Android bootcamp - Part2
Tehran's 1st Android bootcamp - Part2Mohsen Mirhoseini
 
A Deep Dive into Open Source Android Development
A Deep Dive into Open Source Android DevelopmentA Deep Dive into Open Source Android Development
A Deep Dive into Open Source Android DevelopmentDavid Wu
 
Web e device in real time con asp.net Signal R
Web e device in real time con asp.net Signal RWeb e device in real time con asp.net Signal R
Web e device in real time con asp.net Signal RLuca Zulian
 
Native Script by Sebastian Witalec
Native Script by Sebastian WitalecNative Script by Sebastian Witalec
Native Script by Sebastian WitalecSimone Basso
 
Everything as code
Everything as codeEverything as code
Everything as codekloia
 
Introduction to LIFF (LINE Front-End Framework)
Introduction to LIFF (LINE Front-End Framework)Introduction to LIFF (LINE Front-End Framework)
Introduction to LIFF (LINE Front-End Framework)LINE Corporation
 
Inserting AR directly into a native mobile app | IKEA - Unite Copenhagen 2019
Inserting AR directly into a native mobile app | IKEA - Unite Copenhagen 2019Inserting AR directly into a native mobile app | IKEA - Unite Copenhagen 2019
Inserting AR directly into a native mobile app | IKEA - Unite Copenhagen 2019Unity Technologies
 
Using Docker EE in a CI/CD Workflow
Using Docker EE in a CI/CD WorkflowUsing Docker EE in a CI/CD Workflow
Using Docker EE in a CI/CD WorkflowAshnikbiz
 
Introduction to NativeScript - BuildTruly Native Apps using JavaScript
Introduction to NativeScript - BuildTruly Native Apps using JavaScriptIntroduction to NativeScript - BuildTruly Native Apps using JavaScript
Introduction to NativeScript - BuildTruly Native Apps using JavaScriptLohith Goudagere Nagaraj
 
Making a Headless Android Device (Oslo Embedded Meetup 2018)
Making a Headless Android Device (Oslo Embedded Meetup 2018)Making a Headless Android Device (Oslo Embedded Meetup 2018)
Making a Headless Android Device (Oslo Embedded Meetup 2018)Patricia Aas
 
Making a Headless Android Device
Making a Headless Android DeviceMaking a Headless Android Device
Making a Headless Android DevicePatricia Aas
 
Future of Mobile Automation, Appium Steals it
Future of Mobile Automation, Appium Steals itFuture of Mobile Automation, Appium Steals it
Future of Mobile Automation, Appium Steals itSrinivasan Sekar
 
ng-conf NativeScript and Angular 2 Workshop
ng-conf NativeScript and Angular 2 Workshopng-conf NativeScript and Angular 2 Workshop
ng-conf NativeScript and Angular 2 Workshoptjvantoll
 
CLI, SDK, Doc... What if we generate them?
CLI, SDK, Doc... What if we generate them?CLI, SDK, Doc... What if we generate them?
CLI, SDK, Doc... What if we generate them?Scaleway
 

Was ist angesagt? (20)

Software, Over the Air (SOTA) for Automotive Grade Linux (AGL)
Software, Over the Air (SOTA) for Automotive Grade Linux (AGL)Software, Over the Air (SOTA) for Automotive Grade Linux (AGL)
Software, Over the Air (SOTA) for Automotive Grade Linux (AGL)
 
Rad Studio, Delphi, C++Builder, and Appmethod 2015 Technology Roadmap
Rad Studio, Delphi, C++Builder, and Appmethod 2015 Technology RoadmapRad Studio, Delphi, C++Builder, and Appmethod 2015 Technology Roadmap
Rad Studio, Delphi, C++Builder, and Appmethod 2015 Technology Roadmap
 
Having A Talk With Jenkins
Having A Talk With JenkinsHaving A Talk With Jenkins
Having A Talk With Jenkins
 
Tehran's 1st Android bootcamp - Part2
Tehran's 1st Android bootcamp - Part2Tehran's 1st Android bootcamp - Part2
Tehran's 1st Android bootcamp - Part2
 
A Deep Dive into Open Source Android Development
A Deep Dive into Open Source Android DevelopmentA Deep Dive into Open Source Android Development
A Deep Dive into Open Source Android Development
 
Web e device in real time con asp.net Signal R
Web e device in real time con asp.net Signal RWeb e device in real time con asp.net Signal R
Web e device in real time con asp.net Signal R
 
Native Script by Sebastian Witalec
Native Script by Sebastian WitalecNative Script by Sebastian Witalec
Native Script by Sebastian Witalec
 
Everything as code
Everything as codeEverything as code
Everything as code
 
Introduction to LIFF (LINE Front-End Framework)
Introduction to LIFF (LINE Front-End Framework)Introduction to LIFF (LINE Front-End Framework)
Introduction to LIFF (LINE Front-End Framework)
 
Inserting AR directly into a native mobile app | IKEA - Unite Copenhagen 2019
Inserting AR directly into a native mobile app | IKEA - Unite Copenhagen 2019Inserting AR directly into a native mobile app | IKEA - Unite Copenhagen 2019
Inserting AR directly into a native mobile app | IKEA - Unite Copenhagen 2019
 
Net core
Net coreNet core
Net core
 
Using Docker EE in a CI/CD Workflow
Using Docker EE in a CI/CD WorkflowUsing Docker EE in a CI/CD Workflow
Using Docker EE in a CI/CD Workflow
 
Introduction to NativeScript - BuildTruly Native Apps using JavaScript
Introduction to NativeScript - BuildTruly Native Apps using JavaScriptIntroduction to NativeScript - BuildTruly Native Apps using JavaScript
Introduction to NativeScript - BuildTruly Native Apps using JavaScript
 
Making a Headless Android Device (Oslo Embedded Meetup 2018)
Making a Headless Android Device (Oslo Embedded Meetup 2018)Making a Headless Android Device (Oslo Embedded Meetup 2018)
Making a Headless Android Device (Oslo Embedded Meetup 2018)
 
Making a Headless Android Device
Making a Headless Android DeviceMaking a Headless Android Device
Making a Headless Android Device
 
NativeScript + Push Notifications
NativeScript + Push NotificationsNativeScript + Push Notifications
NativeScript + Push Notifications
 
Future of Mobile Automation, Appium Steals it
Future of Mobile Automation, Appium Steals itFuture of Mobile Automation, Appium Steals it
Future of Mobile Automation, Appium Steals it
 
ng-conf NativeScript and Angular 2 Workshop
ng-conf NativeScript and Angular 2 Workshopng-conf NativeScript and Angular 2 Workshop
ng-conf NativeScript and Angular 2 Workshop
 
Nativescript
NativescriptNativescript
Nativescript
 
CLI, SDK, Doc... What if we generate them?
CLI, SDK, Doc... What if we generate them?CLI, SDK, Doc... What if we generate them?
CLI, SDK, Doc... What if we generate them?
 

Ähnlich wie Explore the new development instruments for Arduino with PlatformIO ecosystem

Tech talk with Antmicro - Building an open source system verilog ecosystem
Tech talk with Antmicro - Building an open source system verilog ecosystemTech talk with Antmicro - Building an open source system verilog ecosystem
Tech talk with Antmicro - Building an open source system verilog ecosystemRISC-V International
 
321 codeincontainer brewbox
321 codeincontainer brewbox321 codeincontainer brewbox
321 codeincontainer brewboxLino Telera
 
AWS Summit Auckland - Moving MS .NET Applications One Container at a Time
AWS Summit Auckland - Moving MS .NET Applications One Container at a TimeAWS Summit Auckland - Moving MS .NET Applications One Container at a Time
AWS Summit Auckland - Moving MS .NET Applications One Container at a TimeAmazon Web Services
 
Moving microsoft .net applications one container at a time
 Moving microsoft .net applications one container at a time  Moving microsoft .net applications one container at a time
Moving microsoft .net applications one container at a time Amazon Web Services
 
Evolution of VS code Java ecosystem
Evolution of VS code Java ecosystemEvolution of VS code Java ecosystem
Evolution of VS code Java ecosystem Adi Polak
 
Continuous Integration with Cloud Foundry Concourse and Docker on OpenPOWER
Continuous Integration with Cloud Foundry Concourse and Docker on OpenPOWERContinuous Integration with Cloud Foundry Concourse and Docker on OpenPOWER
Continuous Integration with Cloud Foundry Concourse and Docker on OpenPOWERIndrajit Poddar
 
Oscon 2017: Build your own container-based system with the Moby project
Oscon 2017: Build your own container-based system with the Moby projectOscon 2017: Build your own container-based system with the Moby project
Oscon 2017: Build your own container-based system with the Moby projectPatrick Chanezon
 
Getting Started with OpenStack
Getting Started with OpenStackGetting Started with OpenStack
Getting Started with OpenStackCisco DevNet
 
Native App Development for iOS, Android, and Windows with Visual Studio
Native App Development for iOS, Android, and Windows with Visual StudioNative App Development for iOS, Android, and Windows with Visual Studio
Native App Development for iOS, Android, and Windows with Visual StudioXamarin
 
RISC-V software state of the union
RISC-V software state of the unionRISC-V software state of the union
RISC-V software state of the unionRISC-V International
 
Docker Platform and Ecosystem Nov 2015
Docker Platform and Ecosystem Nov 2015Docker Platform and Ecosystem Nov 2015
Docker Platform and Ecosystem Nov 2015Patrick Chanezon
 
DevOps with Azure, Kubernetes, and Helm Webinar
DevOps with Azure, Kubernetes, and Helm WebinarDevOps with Azure, Kubernetes, and Helm Webinar
DevOps with Azure, Kubernetes, and Helm WebinarCodefresh
 
Moby Open Source Summit North America 2017
Moby Open Source Summit North America 2017Moby Open Source Summit North America 2017
Moby Open Source Summit North America 2017Patrick Chanezon
 
CI/CD usando Visual Studio Team Services para proyectos en Linux
CI/CD usando Visual Studio Team Services para proyectos en LinuxCI/CD usando Visual Studio Team Services para proyectos en Linux
CI/CD usando Visual Studio Team Services para proyectos en LinuxPlain Concepts
 
TypeScript - Javascript done right
TypeScript - Javascript done rightTypeScript - Javascript done right
TypeScript - Javascript done rightWekoslav Stefanovski
 
Cloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWSCloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWSAWS Vietnam Community
 
DevOps Unleashed: Strategies that Speed Deployments
DevOps Unleashed: Strategies that Speed DeploymentsDevOps Unleashed: Strategies that Speed Deployments
DevOps Unleashed: Strategies that Speed DeploymentsForgeRock
 
Backstage l'Internal Developer Portal Open Source per una migliore Developer ...
Backstage l'Internal Developer Portal Open Source per una migliore Developer ...Backstage l'Internal Developer Portal Open Source per una migliore Developer ...
Backstage l'Internal Developer Portal Open Source per una migliore Developer ...Commit University
 

Ähnlich wie Explore the new development instruments for Arduino with PlatformIO ecosystem (20)

Tech talk with Antmicro - Building an open source system verilog ecosystem
Tech talk with Antmicro - Building an open source system verilog ecosystemTech talk with Antmicro - Building an open source system verilog ecosystem
Tech talk with Antmicro - Building an open source system verilog ecosystem
 
321 codeincontainer brewbox
321 codeincontainer brewbox321 codeincontainer brewbox
321 codeincontainer brewbox
 
AWS Summit Auckland - Moving MS .NET Applications One Container at a Time
AWS Summit Auckland - Moving MS .NET Applications One Container at a TimeAWS Summit Auckland - Moving MS .NET Applications One Container at a Time
AWS Summit Auckland - Moving MS .NET Applications One Container at a Time
 
Moving microsoft .net applications one container at a time
 Moving microsoft .net applications one container at a time  Moving microsoft .net applications one container at a time
Moving microsoft .net applications one container at a time
 
Evolution of VS code Java ecosystem
Evolution of VS code Java ecosystemEvolution of VS code Java ecosystem
Evolution of VS code Java ecosystem
 
Continuous Integration with Cloud Foundry Concourse and Docker on OpenPOWER
Continuous Integration with Cloud Foundry Concourse and Docker on OpenPOWERContinuous Integration with Cloud Foundry Concourse and Docker on OpenPOWER
Continuous Integration with Cloud Foundry Concourse and Docker on OpenPOWER
 
Oscon 2017: Build your own container-based system with the Moby project
Oscon 2017: Build your own container-based system with the Moby projectOscon 2017: Build your own container-based system with the Moby project
Oscon 2017: Build your own container-based system with the Moby project
 
Getting Started with OpenStack
Getting Started with OpenStackGetting Started with OpenStack
Getting Started with OpenStack
 
Native App Development for iOS, Android, and Windows with Visual Studio
Native App Development for iOS, Android, and Windows with Visual StudioNative App Development for iOS, Android, and Windows with Visual Studio
Native App Development for iOS, Android, and Windows with Visual Studio
 
RISC-V software state of the union
RISC-V software state of the unionRISC-V software state of the union
RISC-V software state of the union
 
Docker Platform and Ecosystem Nov 2015
Docker Platform and Ecosystem Nov 2015Docker Platform and Ecosystem Nov 2015
Docker Platform and Ecosystem Nov 2015
 
DevOps with Azure, Kubernetes, and Helm Webinar
DevOps with Azure, Kubernetes, and Helm WebinarDevOps with Azure, Kubernetes, and Helm Webinar
DevOps with Azure, Kubernetes, and Helm Webinar
 
Moby Open Source Summit North America 2017
Moby Open Source Summit North America 2017Moby Open Source Summit North America 2017
Moby Open Source Summit North America 2017
 
Top 10 python ide
Top 10 python ideTop 10 python ide
Top 10 python ide
 
CI/CD usando Visual Studio Team Services para proyectos en Linux
CI/CD usando Visual Studio Team Services para proyectos en LinuxCI/CD usando Visual Studio Team Services para proyectos en Linux
CI/CD usando Visual Studio Team Services para proyectos en Linux
 
TypeScript - Javascript done right
TypeScript - Javascript done rightTypeScript - Javascript done right
TypeScript - Javascript done right
 
Cloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWSCloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWS
 
DevOps Unleashed: Strategies that Speed Deployments
DevOps Unleashed: Strategies that Speed DeploymentsDevOps Unleashed: Strategies that Speed Deployments
DevOps Unleashed: Strategies that Speed Deployments
 
.NET Core on Mac
.NET Core on Mac.NET Core on Mac
.NET Core on Mac
 
Backstage l'Internal Developer Portal Open Source per una migliore Developer ...
Backstage l'Internal Developer Portal Open Source per una migliore Developer ...Backstage l'Internal Developer Portal Open Source per una migliore Developer ...
Backstage l'Internal Developer Portal Open Source per una migliore Developer ...
 

Explore the new development instruments for Arduino with PlatformIO ecosystem

  • 1. Ivan Kravets Explore the new development instruments for Arduino with PlatformIO ecosystem
  • 2. ARDUINO DEVELOPER SUMMIT 2016 @me IVAN KRAVETS CTO, Founder of PlatformIO.Org Ph.D., Researcher and Software Architect “Creativity comes from talent and never from knowledge” © www.ikravets.com / me@ikravets.com
  • 3. ARDUINO DEVELOPER SUMMIT 2016 What is PlatformIO? An open source ecosystem for IoT development • Cross-platform Build System • Package Manager (pre-built toolchains, frameworks, SDK) • Library Manager • Continuous and IDE integration • Arduino and ARM mbed compatible • Windows, macOS, Linux (+ARM v6/v7) • Written in Python
  • 4. ARDUINO DEVELOPER SUMMIT 2016 Professional development for... • 250+ embedded boards • 100+ different MCUs • 20+ development platforms: Atmel AVR/SAM, Espressif, Freescale Kinetis, Intel ARC32, Lattice iCE40 FPGA, Microchip PIC32, Nordic nRF51, NXP LPC, Silicon Labs EFM32, ST STM32, TI MSP430/Tiva, Teensy • 10+ frameworks: Arduino, CMSIS, WiringPi, libOpenCM3, Energia, ESP8266 SDK, SPL, ARM mbed
  • 5. ARDUINO DEVELOPER SUMMIT 2016 PlatformIO Command Line Interface (CLI) $ platformio --help • Coloured terminal output • Option “--json-output” • Standard streams • Exit status “echo $?” • Ready for Cloud Compiling • Windows, macOS, Linux
  • 6. ARDUINO DEVELOPER SUMMIT 2016 PlatformIO IDE The next-generation integrated development environment for IoT
  • 7. ARDUINO DEVELOPER SUMMIT 2016 PlatformIO IDE: key features • C/C++ Intelligent Code Completion and Smart Code Linter for rapid professional development • Multi-projects workflow with multiple panes and Themes support with dark and light colours • Built-in Terminal with PlatformIO CLI tool and powerful Serial Port Monitor
  • 8. ARDUINO DEVELOPER SUMMIT 2016 Project Generator for your IDE $ platformio init --ide • Integration with Atom, CLion, CodeBlocks, Eclipse, Emacs, NetBeans, Qt Creator, Sublime Text, Vim, Microsoft Visual Studio • Native plugins/packages for Atom, CodeBlocks, Emacs, NetBeans, Sublime Text • Actual project data for code completion and for the source code linter
  • 9. ARDUINO DEVELOPER SUMMIT 2016 Project Configuration “platformio.ini” Single source code. Multiple environments. • Custom CPU frequency or Flash size • Extra build flags • Option to remove built-in flags (“unflags") • Source code filter • Upload settings (port, protocol, speed) • Extra scripting (control build system)
  • 10. ARDUINO DEVELOPER SUMMIT 2016 • Friendly Command-Line Interface • Web 2.0 Library Portal (examples, discussions, frameworks and platforms compatibility information) • Open Source API • Library Crawler for “library.json” manifest • Library dependency management • Automatic library updates Library Manager and Registry
  • 11. ARDUINO DEVELOPER SUMMIT 2016 Web 2.0 Library Portal
  • 12. ARDUINO DEVELOPER SUMMIT 2016 “library.json” Manifest file for embedded library • Custom structure of source code • Examples list • Compatible frameworks and platforms • Library dependencies • Extra build flags, source code filters
  • 13. ARDUINO DEVELOPER SUMMIT 2016 Continuous Integration $ platformio ci --help • Integration with AppVeyor, Circle CI, Dron.IO, Shippable, Travis CI • Variable source code ($PLATFORMIO_CI_SRC) and build flags ($PLATFORMIO_BUILD_FLAGS) • Custom Project Configuration “$ platformio ci --project-conf /path/custom_platformio.ini” • Project as a library “$ platformio ci /path/to/example --lib .”
  • 14. ARDUINO DEVELOPER SUMMIT 2016 Travis CI: Embedded Builds with PlatformIO • Official Travis CI documentation • Automatic Build Jobs / Matrix Builds • Cache system for PlatformIO packages • Project generator with “.travis.yml” template
  • 15. ARDUINO DEVELOPER SUMMIT 2016 Continuous Delivery Automatic firmware updates by Daniel Eichhorn
  • 16. ARDUINO DEVELOPER SUMMIT 2016 • Decentralised architecture for development platforms • Unit testing for embedded (local & remote) • Cloud Agent for integration with Cloud IDEs (Cloud9, Codeanywhere, Codenvy, Eclipse Che) • New Library Build System (semantic versioning, intelligent dependency finder, support for 3-rd party manifests) • Hardware debugging PlatformIO 3.0
  • 17. ARDUINO DEVELOPER SUMMIT 2016 Decentralised architecture: “platform.json” • “platform.json” manifest file for development platform • Semantic versioning for packages, development platforms and projects • Package dependencies with custom package storage • Embedded board configurations (build and upload options) • Isolated build scripts
  • 18. ARDUINO DEVELOPER SUMMIT 2016 Unit Testing $ platformio test --help • Local PC and Hardware unit testing for embedded • Rich Unity Test API
  • 19. ARDUINO DEVELOPER SUMMIT 2016 Developers love PlatformIO! • 1100 stars on GitHub • 2000 commits and 60 releases since May, 2014 • Estimated 4 years of effort (COCOMO model) • 30000 downloads of PlatformIO IDE for the first 3 months • Community from 150 countries • Nominated for the year’s best Software and Tools in the 2015/16 IoT Awards
  • 20. ARDUINO DEVELOPER SUMMIT 2016 PlatformIO 3.0 THIS SUMMER
  • 21. Questions? T H A N K Y O U