The Amp Hour Electronics Podcast

A weekly show about the trends in the electronic industry.

  • For Us
    • Donate
    • Link Here!
    • Suggest
      • Guest Suggestions
      • Story Suggestions
      • Feature My Workbench!
    • Advertising
  • For You
    • Episode Index
    • Guest Episodes
    • Buy Stuff
  • About
  • Email
  • Facebook
  • LinkedIn
  • RSS
  • Twitter
  • YouTube
You are here: Home / Guest Appearance / #556 – Firmware for Hardware Engineers with Phillip Johnston

#556 – Firmware for Hardware Engineers with Phillip Johnston

Play

Podcast: Play in new window | Download

Subscribe: Apple Podcasts | RSS

Welcome Phillip Johnston of Embedded Artistry!

  • Phillip was on episode 290 of Embedded.fm
  • Phillip’s firmware experience started at a military contractor. He also had a programming background from high school.
  • The minimum product is a bootloader and has remote firmware update capabilities
  • General guidelines and design methodologies for writing better firmware
    • Separation of concerns: break things down smaller
    • How to hide information
    • Loosely coupled to the hardware
  • “How can I make this smaller?”
  • “Can I test this without the hardware?”
  • Either James Grenning / Jacob Beningo talk about “There is no spoon” and hardware is just another dependency.
  • Flex paging system example
  • Recorded data over the radio
  • Continuous Integration (CI)/ Continuous Deployment (CD)
  • Test Driven Development (TDD) is a well known software engineering concept that James Grenning teaches for embedded development
    • Start sketching out on the computer first
    • What interfaces do I need to create
    • Interface with sensors using a direct interface from the desktop like the Aardvark
    • Isolating someone else’s code into its own box
  • Writing it using x86 based GCC or CLang
  • Forces you to think about dependencies
  • Lager data episode with Akbar (hardware in the loop testing)
  • Setting up tests
  • E&O insurance
  • What does a test suite look like?
  • Phillip uses Jenkins for his build system, but there is also GitHub actions, circleCI, travis
  • Hardware in the loop test
  • When should people start CI?
  • Need to build from command line
  • Automated systems allows you to leverage yourself
  • Embedded Artistry has Courses that teach people how to build systems for their embedded systems
  • Design for Change is an upcoming course
  • Putting the pipeline in place
  • Start by checking code on the server
  • Having a shell on the device
  • What does ‘best’ look like?
  • Mixed metaphors in software
  • Dealing with multiple PCB builds
  • Dwigt
  • What happens when the complexity goes up (networking interface)?
  • Testing in more difficult environments
  • nRF5 SDK to Zephyr
  • Treat an RTOS like any other dependency
  • Zephyr
  • Low power seems to be lacking

Links from Embedded Artistry that our listeners might find useful, not already linked above:

  • Embedded Artistry
    • Welcome – for people unfamiliar with us, this is a great place to start
    • For Beginners – mentioned in the podcast
    • Newsletter – we send out a monthly industry update along with other embedded-related emails
    • Course Library
    • Membership Information
  • Consulting

Copyright © 2025