> ## Documentation Index
> Fetch the complete documentation index at: https://docs.omi.me/llms.txt
> Use this file to discover all available pages before exploring further.

# Compile Firmware

> Build and flash custom firmware for your Omi device using nRF Connect.

## Overview

Build firmware from source to customize your Omi device. If you just want to install the latest release, use the [Flash Device](/doc/get_started/Flash_device) page instead.

<CardGroup cols={2}>
  <Card title="Consumer Firmware" icon="tag">
    `firmware/omi` — SDK v2.9.0
  </Card>

  <Card title="DevKit Firmware" icon="flask">
    `firmware/devkit` — SDK v2.7.0
  </Card>
</CardGroup>

***

## Build Steps

<Steps>
  <Step title="Install nRF Connect" icon="download">
    Install the [nRF Connect for VS Code](https://www.nordicsemi.com/Products/Development-tools/nRF-Connect-for-VS-Code) extension.

    <Accordion title="Setup video tutorial" icon="video">
      Follow this walkthrough: [How to Set Up nRF Connect](https://youtu.be/EAJdOqsL9m8)
    </Accordion>
  </Step>

  <Step title="Install the SDK Toolchain" icon="gear">
    In the nRF Connect extension, install the correct SDK + toolchain version:

    | Firmware       | SDK Version | Folder            |
    | -------------- | ----------- | ----------------- |
    | Consumer (Omi) | **2.9.0**   | `firmware/omi`    |
    | DevKit         | **2.7.0**   | `firmware/devkit` |

    <Warning>
      Using the wrong SDK version will cause build failures. Double-check the version before proceeding.
    </Warning>
  </Step>

  <Step title="Open the Application" icon="folder-open">
    1. Open the **nRF Connect Extension** panel in VS Code
    2. Click **Open an existing application**
    3. Navigate to `firmware/omi` (consumer) or `firmware/devkit` (DevKit)
  </Step>

  <Step title="Add Build Configuration" icon="sliders">
    1. In the application panel, click **Add Build Configuration**
    2. Set the board target:

    ```
    xiao_ble/nrf52840/sense
    ```

    3. Click **Build Configuration** to start the build
    4. A VS Code notification will show build progress
  </Step>

  <Step title="Locate the Firmware File" icon="file">
    After a successful build, find `zephyr.uf2` in:

    ```
    firmware/build/<your-preset>/zephyr/zephyr.uf2
    ```
  </Step>

  <Step title="Flash the Device" icon="bolt">
    Follow the [Flash Device](/doc/get_started/Flash_device) guide to install the compiled firmware on your device.
  </Step>
</Steps>

***

## Related

<CardGroup cols={2}>
  <Card title="Flash Device" icon="bolt" href="/doc/get_started/Flash_device">
    Install pre-built or custom firmware
  </Card>

  <Card title="Hardware Docs" icon="microchip" href="/doc/hardware/OmiConsumer">
    Omi consumer hardware specs
  </Card>
</CardGroup>
