Skip to content

EmbedOps DevKit Quickstart

Welcome to the EmbedOps DevKit Quickstart Guide!

EmbedOps DevKit

This quickstart guide will walk you through setting up your first embedded project using EmbedOps with Zephyr RTOS. By the end of this guide, you'll have a working LED blinky application running on your hardware, with the full power of EmbedOps like CI/CD, memory analysis, and more at your fingertips.

Prerequisites

To use this quickstart, you should have an EmbedOps devkit. These are available from our sales team upon request. If you don't have one yet, please contact us to get started.

This guide assumes you've just created an EmbedOps account. No other setup or tools are required - we'll walk through everything you need!

What You'll Build

In this quickstart, you'll:

  • Install the EmbedOps CLI and required tools
  • Initialize a new EmbedOps project
  • Add Zephyr RTOS support with either Rust or C
  • Build and run a simple LED blink application
  • Explore additional EmbedOps features

Step 1: Install the EmbedOps CLI

First, let's install the EmbedOps command-line interface (CLI). The CLI is your primary tool for interacting with EmbedOps features.

mkdir -p /usr/local/bin && cd /usr/local
curl -fsSL https://gitlab.com/embedops-public/embedops-cli/-/raw/main/install.sh | sh
curl -fsSL https://gitlab.com/embedops-public/embedops-cli/-/raw/main/install.sh | BIN_DIR=$HOME/.local/bin sh

Verify the installation:

eo version

For detailed installation instructions and troubleshooting, see our Installation Guide.

Step 2: Install Docker

EmbedOps uses Dev Containers to provide consistent development environments. You'll need Docker or a compatible container runtime.

Step 3: Log In to EmbedOps

Connect your CLI to your EmbedOps account:

eo login

This will open a browser window for authentication. Once logged in, you can close the browser and return to your terminal.

For more details, see Logging In.

Step 4: Create Your Project

Create a new directory for your DevKit project and initialize it with EmbedOps:

mkdir my-devkit-project
cd my-devkit-project
eo init

The eo init command will prompt you for:

  • CI Provider: Choose your preferred CI system (GitLab, GitHub, or Bitbucket)
  • Linux Distribution: Select the base container OS (Ubuntu recommended)

This creates:

  • .embedops/repo_id.yml - Connects your repo to the EmbedOps platform
  • .embedops/template-settings.yml - Saves your configuration choices
  • .devcontainer/ - Dev Container configuration
  • CI configuration files for your chosen provider

Step 5: Add Zephyr Template and Project Support

Now let's add DevKit support to your project. EmbedOps supports both Rust and C development:

eo add embedops-devkit

You'll be prompted to choose between:

  • Rust - For Rust-based Zephyr development
  • C - For traditional C-based Zephyr development

Choosing Between Rust and C

  • Choose Rust if you want memory safety features and modern language constructs
  • Choose C if you prefer traditional embedded development

This command sets up:

  • Zephyr SDK and toolchain in your Dev Container
  • Build system configuration (CMake for C, Cargo for Rust)
  • Sample LED blink application
  • CI pipeline for building your Zephyr application

Open in VS Code with Dev Containers

  1. Install VS Code and the Dev Containers extension
  2. Open your project folder in VS Code
  3. When prompted, click "Reopen in Container" (or use Command Palette: "Dev Containers: Reopen in Container")

Build the Project

Once inside the Dev Container, run:

  eo build    

You have just built your application without needing to install any additional tools on your host machine in a managed environment!

Step 7: Flash and Run

Install the dfu-util tool for flashing your application:

brew install dfu-util
sudo apt install dfu-util

Programming the devkit via USB and built-in USB bootloader is the easiest way to get started. Ensure you place a jumper cap on the BOOT0 pin and power cycle the board to put it into DFU mode.

Flash the application to your board using the helper script (you must not be inside the dev container for this step):

./flash.sh

You should see the LED on your board start blinking!

Next Steps: Explore EmbedOps Features

Now that you have a working project, explore these powerful EmbedOps features:

๐Ÿงช Add Unit Testing

Add Google Test support for your embedded code:

eo add unittest

Learn more in our Unit Testing Guide.

๐Ÿ“Š Analyze Memory Usage

Visualize your firmware's memory consumption:

eo analyze-memory

See our Memory Analysis Guide for details.

๐Ÿ” Add Static Analysis

Add Cppcheck for code quality:

eo add cppcheck

๐Ÿ”ง Hardware-in-the-Loop Testing

Set up automated testing on real hardware with our HIL Quick Start.

๐Ÿ“ˆ CI/CD Pipeline

Your project already includes CI configuration! Push to your Git provider to see automated builds in action. Run pipelines locally with:

eo build

Learn more about CI/CD with EmbedOps.

๐Ÿ“‹ Requirements Tracking

Track and validate project requirements:

eo requirements sync

See our Requirements Management Guide.

Getting Help

What's Next?

Congratulations! You've successfully:

  • โœ… Set up your EmbedOps development environment
  • โœ… Created a Zephyr-based embedded project
  • โœ… Built and ran your first application

Continue exploring EmbedOps features to accelerate your embedded development workflow. Check out our comprehensive tutorials for more advanced topics.

Happy coding with the EmbedOps DevKit! ๐Ÿš€