Continuous Integration for Embedded Systems

The Pragmatic Embedded Podcast · 1 Mar 2021 · 39m

What this episode covers

Jeff Gable and Luca Ingianni discuss setting up continuous integration (CI) pipelines for embedded systems, distinguishing CI from continuous delivery and deployment. They outline prerequisites like version control and single-command builds, recommend tools like Jenkins and GitHub Actions, and emphasize capturing the build environment using Docker or on-premise servers to avoid 'works on my machine' issues. The hosts advocate for 'null automation'—starting with manual scripts and gradually automating steps—to lower the barrier to entry for teams hesitant about the initial investment.

Most relevant to

early-stage companies

Topics

Mentioned

Tools
Jenkins, GitHub Actions, Circle CI, Docker, Eclipse

Other shows on the same ground, closest first.

  • The Amp Hour · 1h 20m

    Firmware Deployment and Troubleshooting with Akbar Dhanaliwala

    Chris Gammell, founder of Lager Data, explains how his experiences with companies like SolarCity, Ringly, and Minna Life revealed the tedious nature of embedded firmware testing, inspiring the creation of the Lager Gateway platform. He details how the system enables continuous integration and deployment (CI/CD) for embedded devices by allowing engineers to run unit and system tests, flash firmware, and debug remotely from a command line without physical lab access. Gammell highlights the use of Dockerized build environments and integration with GitHub Actions to automate testing, ensuring that changes to firmware do not break device functionality or over-the-air update capabilities.

  • The Amp Hour · 1h 10m

    Works on my machine

    Chris Gammell and Dave Jones discuss the challenges of automating embedded firmware builds using GitHub Actions to ensure reproducible results and avoid 'works on my machine' issues. They also cover recent tech events, including the Manly Warringah Radio Society vintage kit evening featuring Dick Smith, and the EV Show where they met Robert Llewellyn. The conversation touches on hardware tools like the Prusa Mark 4 3D printer and the open-source Thunderscope, as well as the cultural shift of hardware engineers adopting software DevOps practices.

  • The Amp Hour · 1h 19m

    Firmware for Hardware Engineers with Phillip Johnston

    Phillip Johnston of Embedded Artistry explains how hardware engineers can improve firmware quality by adopting software engineering practices like separation of concerns, information hiding, and loose coupling. He details the implementation of Continuous Integration (CI) pipelines using tools like Jenkins and GitHub Actions to automate testing, static analysis, and hardware-in-the-loop checks. Johnston also discusses the strategic shift from bare-metal development to ecosystems like Zephyr RTOS and the importance of designing for change to mitigate supply chain risks.

  • Embedded.fm · 1h 19m

    211: 4 weeks, 3 days

    Dennis Jackson, Director of Firmware at Element Science, discusses how software engineers can transition into embedded systems by building personal projects using low-cost hardware like STM32 Discovery boards. He advises new hires to read James Grenning’s Test Driven Development in Embedded C and Elecia White’s Making Embedded Systems, emphasizing that understanding build systems like Make and continuous integration is as critical as writing drivers. Jackson argues that the distinction between firmware and software is fading, urging engineers to apply general software best practices like unit testing and static analysis to embedded constraints. He shares his interview philosophy, which prioritizes problem-solving and code quality over syntax, and highlights the importance of establishing a reproducible build environment to ensure reliable production releases.

  • Embedded.fm · 1h 05m

    426: Equivalently Annoying

    Hosts Elecia White and Chris White discuss their recent vacation, burnout, and the challenges of onboarding junior engineers. They provide a detailed technical breakdown of Cypress PSoC chips, explaining their programmable logic architecture and the significant tooling and source control pain points involved. The episode concludes with a list of specific VSCode extensions for productivity and advice on debugging performance issues with Docker and Linux drivers.

The summary, chapters and topics are generated from the episode’s audio by this directory, not written by The Pragmatic Embedded Podcast. The episode itself belongs to its publisher.