423: Speaking of Aardvarks

Embedded.fm · 4 Aug 2022 · 1h 08m · Episode 423

What this episode covers

Phillip Johnston, founder of Embedded Artistry, discusses how his approach to embedded software design has evolved, particularly regarding abstract interfaces and the tension between code reuse and client IP ownership. He explains his shift from full abstract interfaces to 'delegate' patterns (like the template method) to improve changeability, and details his experience building an embedded virtual machine that failed due to vendor lock-in concerns. The conversation also covers his new educational courses, the importance of design patterns like state machines and queues, and the utility of the Total Phase Aardvark adapter for hardware debugging.

Mentioned

Companies
Embedded Artistry, Memfault, Total Phase
Products
Arduino STK, Zephyr, QP Framework, Design Patterns for Embedded Systems in C
Tools
Aardvark I2C/SPI Host Adapter, Bus Pirate, CppUTest
Also
Bruce Powel Douglass, David Parnas, Gang of Four

Other shows on the same ground, closest first.

  • 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.

  • The Pragmatic Embedded Podcast · 52m

    Patterns in the Machine with John and Wayne Taylor

    John and Wayne Taylor, authors of the book 'Patterns in the Machine', discuss strategies for creating reusable, decoupled code in embedded software development. They advocate for upfront architectural planning, including defining constraints and using functional simulators, to enable agile execution later in the project. The conversation covers specific patterns like the data model architecture for decoupling drivers from applications, and the importance of writing documentation that captures intent rather than just implementation details. They also address the cultural and logistical challenges of reusing code across different projects and organizations.

  • The Amp Hour · 1h 49m

    An Interview with Piotr Esden-Tempski

    Piotr Esden-Tempski, founder of One Bit Squared, discusses the development of open-source hardware and software tools for embedded systems, specifically the Blackmagic Probe and OneBitC board. He explains the technical rationale behind creating these tools, citing licensing issues with STMicroelectronics libraries and the need for robust, open debugging capabilities like GDB integration. The conversation covers the hardware design of the Lisa series autopilots, the software architecture of Paparazzi UAV, and the community-driven growth of the Blackmagic Probe project following a successful Kickstarter.

  • Moore's Lobby · 49m

    Creating Next-Gen Microcontroller Developer Tools and Equipping the People Who Use Them

    Rodger Richey, Vice President of Development Tools and Academic Programs at Microchip Technology, discusses the evolution of embedded development tools over his 30-year tenure. He explains how Microchip shifted its IDE support from NetBeans to VS Code to align with developer habits and details the integration of AI as an assistant for code generation and debugging rather than a replacement. Richey also highlights Microchip's academic initiatives, including virtual internships and hardware labs in India, designed to bridge the gap between theoretical education and practical engineering skills.

  • The Pragmatic Embedded Podcast · 42m

    Interview with Phillip Johnston Part 2

    Phillip Johnston, founder of Embedded Artistry, discusses the practical implementation of remote monitoring and debugging for embedded devices, focusing on data storage, transmission, and Over-The-Air (OTA) update strategies. He argues that while building these capabilities in-house is possible for large enterprises or consultancies, most companies should use services like Memfault, Golioth, or Mender to avoid the high cost and long development time required to match their maturity. The conversation covers the trade-offs between local storage and connectivity, the necessity of robust fallback mechanisms for OTA updates to prevent bricking, and the critical role of human oversight in interpreting automated data.

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