Hardware-in-the-Loop Testing

Using Zephyr RTOS

Developer Relations Engineer

Mike Szczys

Handy Links:

  • This slide deck:
         https://slides.com/golioth/hil-testing-zephyr
     
  • Example Repo:
         https://github.com/golioth/zephyr_twister_hil_testing

@szczys@chaos.social on Mastodon

@szczys@bsky.social on Bluesky

  • Developer Relations Engineer at Golioth
  • 15 years of firmware experience
  • Previously: Editor in Chief of Hackaday

Mike Szczys

What is Golioth?

We make it easy for hardware engineers to connect sensors and other devices to the web.

https://golioth.io/

Demo

Zephyr: basic/blinky

  • Compile on cloud
  • Flash and run on hardware
  • No actual test confirmation
  • Use GitHub secrets

workflow file: https://glth.io/3PgsZhC

What are self-hosted runners?

Self-Hosted Runners

  • Continuous Integration (CI) on a computer you control
  • Hardware under test is directly connected to your runner
  • Read more:
    • GitHub: https://docs.github.com/en/actions/hosting-your-own-runners/managing-self-hosted-runners/about-self-hosted-runners
    • GitLab: https://docs.gitlab.com/runner/install/index.html

Self-Hosted Runners

Demo

Authenticating a runner with GitHub

Demo

Zephyr: hello_world

  • Compile on self-hosted runner
  • Twister build/flashes/tests
  • Uses hardware map

workflow file: https://glth.io/3qZriNK

Demo

Golioth: hello

  • Compile on self-hosted runner
  • Twister build/flashes/tests
  • Uses hardware map & env variable
  • Uses a pytest harness

workflow file: https://glth.io/44MYHsA

Summary:

  • Hardware-in-the-Loop (HIL) automates tests on the actual hardware
  • There are unique challenges to reliability compared to build-only testing
  • Careful implementations can be as touchless as cloud runners
  • Huge time savings over manual testing

 

  • Application: https://github.com/golioth/zephyr_twister_hil_testing
  • https://golioth.io

Workflow Examples:

Try Golioth:

Made with Slides.com