Search

Home > The Amp Hour Electronics Podcast > #556 – Firmware for Hardware Engineers with Phillip Johnston
Podcast: The Amp Hour Electronics Podcast
Episode:

#556 – Firmware for Hardware Engineers with Phillip Johnston

Category: Science & Medicine
Duration: 01:19:34
Publish Date: 2021-09-07 02:36:14
Description:

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:

Total Play: 0