This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Documentation Overview

You are at the right place to learn about the Jumpstarter project!

What is Jumpstarter?

Jumpstarter is a project to enable Hardware in the Loop testing for Edge devices.



Embedded and Edge devices have been traditionally tested in a manual way, with a human operator. This is not scalable, and it is not suitable for CI/CD pipelines, i.e. GitHub CI, GitLab CI, Jenkins, (TekTon under development), etc.

In a modern development cycle we want to know that our software changes work well into our device hardware. We need to test the onboarding process, the software stack, the hardware, the updates and the interaction between all of them.

Why do I want it?

  • I need my software to be tested in real hardware for every new pull/merge request to my project.

  • I need my software to be tested for every new release or commit of my project.

  • I want my software to be automatically tested in newer versions of the hardware.

  • I have multiple variants of the hardware where my software needs to run, and I want to test them all.

  • I want a hands-free operation of hardware in my development environment, i.e. I don’t want to manually flash images, reboot the DUT, insert usb sticks, manually interact with a bootloader, etc.

  • I want to create a lab where developers can test their software in real hardware.

  • What is it good for?: Integrating your hardware edge devices into your software CI/CD pipeline. Creating a distributed lab for your developers to test their software in real hardware.

  • What is it not good for?: Managing edge devices. Jumpstarter is not a device management tool, it is a testing tool.

Where should I go next?

1 - Getting Started

What do you need to get started with Jumpstarter?

Installation

...

Setup

Hello World

1.1 - Concepts

In this section you can find a more detailed explanation of the concepts used in the Jumpstarter project.
ConceptDefinition
Testing HarnessThis is the physical device used to allow Jumpstarter interfacing into your hardware, one example of this is the dutlink-board which is an Open Hardware reference design for Jumpstarter. But other Testing Harnesses can exist.
DUTDevice Under Test: This is the device that you connect to your
Serial consoleEmbedded devices and most servers have one or multiple serial consoles. A serial console allows you to transmit and receive bytes via a TX and RX line (plus Ground), sometimes in RS-232 physical voltage levels, sometimes in digital voltage levels (i.e. 3.3v, 1.8v, etc..), most bootloaders, UEFI bios, and the kernel can communicate through a serial console. i.e. the kernel accepts the console parameter to let you direct the main kernel output and console, for example using the kernel parameter console=ttyS0,115200. In jumpstarter we use the console as a the main communication method to Edge devices, with the purpose of monitoring and automation

2 - Contribution guidelines

If you want to contribute to Jumpstarter you can write a PR to one of our repositories (small changes and bugfixes), if you plan on implementing a new feature or a new driver, we recommend you to contact us first, this project is moving rapidly and we’d love to make it easier for you to contribute.

Get in touch with us via our Community page, we have a weekly meeting as well as a matrix channel.

This contribution guideline is still under development and our community is very new, so we are open to suggestions on how to improve it.