Announcing HWaaS: Open-Source Hardware-in-the-Loop Test Automation

HWaaS is an open source infrastructure for reproducible hardware-in-the-loop testing, developed in collaboration with secunet and now released under the Apache 2.0 license. It turns physical hardware into a shared, automatable resource that can be used seamlessly by individual developers, CI systems, and entire engineering teams. With interfaces ranging from a REST API and Python library to a web UI and declarative workflows, HWaaS supports everything from interactive debugging to fully automated testing. Learn how it can simplify development on real hardware and explore the project on GitHub.


CTRL-OS Logo

Introducing HWaaS

Over the past few years, together with our partner secunet, we've been developing HWaaS (Hardware as a Service), an infrastructure for reproducible, automated hardware-in-the-loop (HIL) testing.

We're excited to announce its first public release under the Apache 2.0 license. The project is available on GitHub: https://github.com/secunet-AG/hwaas

The HWaaS project is new to the open source landscape but has been powering production CI and development workflows for the last few years. We are betting on this infrastructure being helpful to a variety of teams, and we're excited about how we can continue to grow and polish the project in the open.

Automating Hardware-in-the-Loop Testing with HWaaS

HWaaS creates a shared inventory of hardware that can be atomically leased, and shared amongst CI pipelines or teams. Developers can create isolated contexts, where they can perform tasks such as:

  • booting machines from custom images,
  • managing physical network interfaces,
  • toggling power,
  • interfacing with KVM (keyboard, video, and mouse), and
  • interacting with custom auxiliary devices.

HWaaS provides several interfaces depending on how engineers need to interact with their hardware:

  • a REST API for automation and integrations
  • a web interface for interactive use
  • a Python library for scripting and tooling
  • a declarative interface similar to NixOS Integration Tests

Rather than treating hardware as an end deployment target, HWaaS enables physical devices to be a part of every stage of development, from production quality assurance workflows, to small, one-off troubleshooting tasks.

Shared Hardware for CI, Development, and Testing

HWaaS is for development teams that need their software to work on specific hardware. HWaaS allows all kinds of activities remotely that usually need physical access to test hardware - from debugging bootloaders via serial, to production pipelines or quick interactive visual tasks with the Web UI.

We have found that the project is of particular use for:

  • operating system and hypervisor developers
  • embedded and firmware teams
  • hardware validation and QA teams
  • teams operating shared hardware laboratories
  • engineering teams looking to automate hardware-dependent testing

The project is particularly valuable in collaborative environments where multiple developers, CI systems, or teams need reliable and coordinated access to the same hardware resources. The requirements for bare-metal resources are next to none: the device simply needs to boot off a USB device. This means that it can work with a whole spectrum of devices; from lightweight embedded devices and edge boxes, to expensive workstations.

Get Started with HWaaS

Feel free to explore the project on GitHub, where we are currently working on expanding our documentation within the public repository.

Whether it's a casual conversation, or a serious inquiry, we are interested in hearing how your team is developing with shared hardware.