How Jumpstarter Works¶
Jumpstarter provides a set of tools that enable you to build a consistent development environment for your hardware. Think of it as a Makefile for hardware automation.
These tools enable you to decouple your target hardware from the test runners, development machines, and CI/CD pipelines allowing you to use the same automation scripts, commands, and processes everywhere.
The core components of Jumpstarter are:
Clients that allow you to interact with your hardware through a CLI tool or Python library.
Drivers that describe how to interact with your hardware interfaces.
Exporters that expose your device’s hardware using the drivers.
A Service that helps you manage hardware access from anywhere.
Since Jumpstarter’s core components are written in Python, it is possible to run them almost everywhere. This means that you can setup a test lab with low-cost exporters such as Raspberry Pis or mini PCs, while still using the same Linux-based CI systems you currently host in the cloud.
Jumpstarter is also able to seamlessly integrate into the existing ecosystem of Python testing tools such as pytest. You can also use the Jumpstarter CLI directly from shell scripts and Makefiles allowing you to write simple automation scripts easily.
In addition to testing, Jumpstarter can also act as a KVM allowing developers to remotely access hardware for ad-hoc development whether they are sitting at the next desk or on the other side of the globe.
Development Modes¶
Jumpstarter can be used in either a local-only or distributed environment depending on your hardware development needs.
Local-Only¶
When using Jumpstarter locally, you can easily develop drivers, write automated tests, and control your hardware from your development machine
The local-only mode is useful when working directly with hardware on your desk that you have unlimited access to.
Distributed¶
When your project grows, Jumpstarter also can help you collaborate across teams, implement CI/CD pipelines, and automate common tasks such as firmware updates.
The distributed mode takes advantage of Kubernetes to support the management of multiple target devices directly from your existing cluster. This allows for seamless integration with many existing Cloud Native technologies such as Tekton, ArgoCD, and Prometheus.
The following sections provide more information on the basics of Jumpstarter, its core components, and how they work together to make hardware testing easier.