Date: Mon, 24 Feb 2020 22:00:00 -0500
<div class="wp-block-jetpack-markdown"><h3>Summary</h3> <p>Embedded software development is a challenging endeavor due to a fragmented ecosystem of tools. Ivan Kravets experienced the pain of programming for different hardware platforms when embroiled in a home automation project. As a result he built the PlatformIO ecosystem to reduce the friction encountered by engineers working with multiple microcontroller architectures. In this episode he describes the complexities associated with targeting multiple platforms, the tools that PlatformIO offers to simplify the workflow, and how it fits into the development process. If you are feeling the pain of working with different editing environments and build toolchains for various microcontroller vendors then give this interview a listen and then try it out for yourself.</p> <h3>Announcements</h3> <ul> <li>Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great.</li> <li>When you’re ready to launch your next app or want to try a project you hear about on the show, you’ll need somewhere to deploy it, so take a look at our friends over at Linode. With 200 Gbit/s private networking, node balancers, a 40 Gbit/s public network, and a brand new managed Kubernetes platform, all controlled by a convenient API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they’ve got dedicated CPU and GPU instances. Go to <a href="https://www.pythonpodcast.com/linode?utm_source=rss&utm_medium=rss">pythonpodcast.com/linode</a> to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show!</li> <li>You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Corinium Global Intelligence, ODSC, and Data Council. Upcoming events include the Strata Data in San Jose, and PyCon US in Pittsburgh. Go to <a href="https://www.pythonpodcast.com/conferences?utm_source=rss&utm_medium=rss">pythonpodcast.com/conferences</a> to learn more about these and other events, and take advantage of our partner discounts to save money when you register today.</li> <li>Your host as usual is Tobias Macey and today I’m interviewing Ivan Kravets about PlatformIO, an open source ecosystem for IoT development including a cross-platform IDE, unified debugger, remote unit testing, and firmware updates.</li> </ul> <h3>Interview</h3> <ul> <li>Introductions</li> <li>How did you get introduced to Python?</li> <li>Can you start by describing what PlatformIO is? <ul> <li>What was your motivation for creating it?</li> <li>What are the aspects of embedded development that keep you interested and engaged in this space?</li> </ul> </li> <li>What are some of the types of projects that someone might use PlatformIO to build?</li> <li>What are some of the common challenges that a developer might encounter when working on embedded systems? <ul> <li>What are the additional complexities that get introduced as more hardware targets get added to a project?</li> </ul> </li> <li>What is the workflow for someone using PlatformIO for embedded systems development?</li> <li>What are the different elements of PlatformIO and how do they simplify the work of building embedded systems projects?</li> <li>How is PlatformIO implemented and how has the system design evolved since you first began working on it? <ul> <li>What was your reason for selecting Python as the implementation language?</li> <li>If you were to start over today what would you do differently?</li> </ul> </li> <li>How has the embedded hardware and software landscape changed since you first started work on PlatformIO? <ul> <li>How has that impacted your product direction?</li> </ul> </li> <li>How do developers handle testing and validation of their applications?</li> <li>How does PlatformIO help with updating deployed devices with new firmware?</li> <li>What have been some of the most interesting/unexpected/innovative projects that you have seen built with PlatformIO?</li> <li>What have been some of the most interesting/unexpected/challenging aspects of building and maintaining PlatformIO?</li> <li>How are you approaching sustainability of the project and business?</li> <li>What do you have planned for the future of PlatformIO?</li> </ul> <h3>Keep In Touch</h3> <ul> <li><a href="https://www.linkedin.com/in/ivankravets/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">LinkedIn</a></li> <li><a href="https://www.ikravets.com/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Website</a></li> <li><a href="https://github.com/ivankravets?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">ivankravets</a> on GitHub</li> <li><a href="http://twitter.com/ikravets?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">@ikravets</a> on Twitter</li> </ul> <h3>Picks</h3> <ul> <li>Tobias <ul> <li><a href="https://phys.org/news/2020-02-green-technology-electricity-thin-air.html?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">UMass Amherst Making Electricity From Thin Air</a></li> </ul> </li> <li>Ivan <ul> <li>Don’t focus on the money side of your project, just focus on building a great product.</li> </ul> </li> </ul> <h3>Closing Announcements</h3> <ul> <li>Thank you for listening! Don’t forget to check out our other show, the <a href="https://feeds.fireside.fm/pythonpodcast/rss">Data Engineering Podcast</a> for the latest on modern data management.</li> <li>Visit the <a href="https://www.pythonpodcast.com?utm_source=rss&utm_medium=rss">site</a> to subscribe to the show, sign up for the mailing list, and read the show notes.</li> <li>If you’ve learned something or tried out a project from the show then tell us about it! Email <a href="mailto:hosts@podcastinit.com">hosts@podcastinit.com</a>) with your story.</li> <li>To help other people find the show please leave a review on <a href="https://itunes.apple.com/us/podcast/podcast.-init/id981834425?mt=2&uo=6&at=&ct=&utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">iTunes</a> and tell your friends and co-workers</li> <li>Join the community in the new Zulip chat workspace at <a href="https://www.pythonpodcast.com/chat?utm_source=rss&utm_medium=rss">pythonpodcast.com/chat</a></li> </ul> <h3>Links</h3> <ul> <li><a href="https://platformio.org/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">PlatformIO</a></li> <li><a href="https://en.wikipedia.org/wiki/Ukraine?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Ukraine</a></li> <li><a href="https://en.wikipedia.org/wiki/Home_automation?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Home Automation</a></li> <li><a href="https://www.home-assistant.io/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Home Assistant</a> <ul> <li><a href="https://www.pythonpodcast.com/episode-94-home-assistant-with-paulus-schoutsen/?utm_source=rss&utm_medium=rss">Podcast Episode</a></li> </ul> </li> <li><a href="https://twistedmatrix.com/trac/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Twisted</a> <ul> <li><a href="https://www.pythonpodcast.com/twisted-with-moshe-zadka-episode-170/?utm_source=rss&utm_medium=rss">Podcast Episode</a></li> </ul> </li> <li><a href="https://zigbeealliance.org/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Zigbee Radio</a></li> <li><a href="https://en.wikipedia.org/wiki/Serial_communication?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Serial I/O</a></li> <li><a href="https://en.wikipedia.org/wiki/RS-232?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">RS-232</a></li> <li><a href="https://en.wikipedia.org/wiki/ARM_architecture?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">ARM CPU Architecture</a></li> <li><a href="https://riscv.org/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">RISC-V</a></li> <li><a href="https://en.wikipedia.org/wiki/AVR_microcontrollers?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">AVR Microcontrollers</a></li> <li><a href="https://www.arduino.cc/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Arduino</a></li> <li><a href="http://www.ti.com/design-resources/embedded-development/hardware-kits-boards.html?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Texas Instruments Launchpad</a></li> <li><a href="https://www.eclipse.org/ide/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Eclipse IDE</a></li> <li><a href="https://en.wikipedia.org/wiki/Microcontroller?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">MCU == MicroController Unit</a></li> <li><a href="https://code.visualstudio.com/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">VSCode</a> <ul> <li><a href="https://docs.platformio.org/en/latest/ide/vscode.html?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">PlatformIO Extension</a></li> </ul> </li> <li><a href="https://scons.org/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">SCons</a></li> <li><a href="https://www.gnu.org/software/make/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Make</a></li> <li><a href="https://www.raspberrypi.org/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Raspberry Pi</a></li> <li><a href="https://en.wikipedia.org/wiki/ESP8266?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">ESP8266</a></li> <li><a href="https://marlinfw.org/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Marlin 3D Printer Firmware</a></li> <li><a href="https://esphome.io/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">ESP Home</a></li> <li><a href="https://www.zephyrproject.org/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Zephyr Realtime Operating System</a></li> <li><a href="https://www.westerndigital.com/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">Western Digital</a></li> </ul> <p>The intro and outro music is from Requiem for a Fish <a href="http://freemusicarchive.org/music/The_Freak_Fandango_Orchestra/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">The Freak Fandango Orchestra</a> / <a href="http://creativecommons.org/licenses/by-sa/3.0/?utm_source=rss&utm_medium=rss" rel="noopener" target="_blank">CC BY-SA</a></p> </div> <img alt="" height="0" src="https://analytics.boundlessnotions.com/piwik.php?idsite=1&rec=1&url=https%3A%2F%2Fwww.pythonpodcast.com%2Fplatformio-embedded-software-devleopment-episode-251%2F&action_name=Reducing+The+Friction+Of+Embedded+Software+Development+With+PlatformIO+-+Episode+251&urlref=https%3A%2F%2Fwww.pythonpodcast.com%2Ffeed%2F&utm_source=rss&utm_medium=rss" style="border: 0; width: 0; height: 0;" width="0" />