Back to Omi

Update Omi Firmware

docs/doc/get_started/Flash_device.mdx

3.0.0-Android-App8.2 KB
Original Source

Overview

There are two ways to update your Omi device firmware:

<CardGroup cols={2}> <Card title="Via Omi App" icon="mobile"> **Recommended** - The easiest way to update
Go to **Settings → Device Settings → Update Firmware**
</Card> <Card title="Manual Update" icon="terminal"> For advanced users or troubleshooting
Follow the instructions below for your device
</Card> </CardGroup> <Tabs> <Tab title="DevKit (DK1 & DK2)" icon="microchip"> ## Manual Update for DevKit
<Steps>
  <Step title="Download Required Files" icon="download">
    **Bootloader** (required for first-time setup or if corrupted):
    - Download [bootloader0.9.0.uf2](https://github.com/BasedHardware/omi/releases/download/v2.0.1-Omi/bootloader0.9.0.uf2)
    - Compatible with Seeed XIAO nRF52840 Sense (SoftDevice S140 7.3.0)

    **Firmware** (choose your device):
    - [DevKit 1 Firmware](https://github.com/BasedHardware/omi/releases?q=release_firmware+DK1)
    - [DevKit 2 Firmware](https://github.com/BasedHardware/omi/releases?q=release_firmware+DK2)
  </Step>
  <Step title="Prepare Your Device" icon="check">
    Before starting, ensure:
    - Battery is above 50%
    - Using a direct USB connection (avoid USB hubs)
    - Have a small pin ready for the reset button
  </Step>
  <Step title="Enter DFU Mode" icon="power-off">
    1. Connect your device via USB
    2. Locate the reset button:

    <Tabs>
      <Tab title="DevKit 2">
        Remove the lid and find the button labeled "RST"

        ![DFU Button Location, DevKit 2](/images/docs/get_started/assets/images/dk2_rst_button-568e837198e6acedc078bd922c2a46e0.jpeg)
      </Tab>
      <Tab title="DevKit 1">
        Use the button shown below

        ![DFU Button Location, DevKit 1](/images/docs/get_started/assets/images/dfu_dev_kit_reset_button-6564f71a7c6f4aab49c9ff131d3435ce.png)
      </Tab>
    </Tabs>

    3. **Double-click** the reset button quickly
    4. Your computer should show a drive named `/Volumes/XIAO-SENSE`
  </Step>
  <Step title="Flash the Device" icon="bolt">
    **Install Bootloader** (if needed):
    1. Drag `bootloader0.9.0.uf2` to the `/Volumes/XIAO-SENSE` drive
    2. Wait for the drive to eject automatically
    3. Put device back in DFU mode (repeat step 3)

    **Install Firmware**:
    1. Drag the firmware `.uf2` file to the `/Volumes/XIAO-SENSE` drive
    2. Wait for completion (ignore "transfer incomplete" messages)
    3. Device will restart automatically
  </Step>
</Steps>

### Troubleshooting

<AccordionGroup>
  <Accordion title="Device isn't recognized" icon="usb">
    - Try a different USB cable (some cables are charge-only)
    - Try a different USB port
    - Avoid USB hubs - connect directly to your computer
  </Accordion>
  <Accordion title="Update fails" icon="rotate">
    - Retry the process from the beginning
    - Make sure battery is above 50%
    - Try double-clicking the reset button faster
  </Accordion>
  <Accordion title="'Transfer incomplete' message" icon="clock">
    This is normal! Wait 30 seconds, then check if the device restarted successfully.
  </Accordion>
  <Accordion title="Still having issues?" icon="circle-question">
    See the [DevKit2 Firmware Guide](https://help.omi.me/en/articles/9995941-updating-your-devkit2-firmware) for additional help.
  </Accordion>
</AccordionGroup>
</Tab> <Tab title="Consumer Version (CV1)" icon="microchip"> ## Flashing Consumer Version 1
<Warning>
CV1 requires a **special flashing cable** that connects to a J-Link programmer. Without this cable, the CV1 cannot be programmed.
</Warning>

### Prerequisites

<CardGroup cols={2}>
  <Card title="Hardware Required" icon="plug">
    - Omi CV1 device
    - J-Link programmer
    - Special SWD flashing cable
    - USB cable
  </Card>
  <Card title="Software Required" icon="download">
    - [J-Link Software](https://www.segger.com/downloads/jlink/)
    - Latest firmware files from GitHub
  </Card>
</CardGroup>

### Step 1: Download Latest Firmware

<Steps>
  <Step title="Get Firmware Files" icon="download">
    1. Go to [Omi GitHub Releases for CV1](https://github.com/BasedHardware/omi/releases?q=release_firmware+OMI+CV1)
    2. Find the latest release
    3. Download both files:
       - `merged.hex` — Application core firmware
       - `merged_CPUNET.hex` — Network core firmware
  </Step>
  <Step title="Replace Existing Files" icon="copy">
    <Tabs>
      <Tab title="macOS">
        ```bash
        cd MAC/

        # Optional: Backup existing files
        mv merged.hex merged.hex.backup
        mv merged_CPUNET.hex merged_CPUNET.hex.backup

        # Copy new firmware files to this folder
        ```
      </Tab>
      <Tab title="Windows">
        ```cmd
        cd WINDOWS\

        # Optional: Backup existing files
        # Rename merged.hex → merged.hex.backup
        # Rename merged_CPUNET.hex → merged_CPUNET.hex.backup

        # Copy new firmware files to this folder
        ```
      </Tab>
    </Tabs>
  </Step>
  <Step title="Verify Files" icon="check">
    Ensure both files are updated:
    - File sizes should match downloaded versions
    - Modification dates should reflect the replacement
  </Step>
</Steps>

### Step 2: Flash the Firmware

<Tabs>
  <Tab title="macOS" icon="apple">
    1. Install J-Link Software from [SEGGER](https://www.segger.com/downloads/jlink/)

    2. Navigate to the MAC folder and flash:
    ```bash
    cd MAC

    # Flash network core first
    JLinkExe -CommanderScript program_net.jlink

    # Then flash application core
    JLinkExe -CommanderScript program_app.jlink
    ```
  </Tab>
  <Tab title="Windows" icon="windows">
    1. Install J-Link Software from [SEGGER](https://www.segger.com/downloads/jlink/)
    2. Add J-Link to your PATH (default: `C:\Program Files\SEGGER\JLink\`)

    3. Navigate to the WINDOWS folder and flash:
    ```cmd
    cd WINDOWS

    # Flash network core first
    JLink.exe -CommanderScript program_net.jlink

    # Then flash application core
    JLink.exe -CommanderScript program_app.jlink
    ```
  </Tab>
</Tabs>

### Verification

<Info>
If the LEDs start blinking after flashing, the update was successful! Confirm the firmware version in the Omi app.
</Info>

### Troubleshooting

<AccordionGroup>
  <Accordion title="JLinkExe not found" icon="terminal">
    - Verify J-Link is installed correctly
    - Check that the installation path is in your system PATH
    - Try using the full path to the executable
  </Accordion>
  <Accordion title="Connection issues" icon="plug">
    - Try a different USB port or cable
    - Ensure device is in programming mode
    - Check that the flashing cable is properly connected
  </Accordion>
  <Accordion title="Flashing fails" icon="circle-xmark">
    - Always flash the network core first
    - Wait for each command to complete before running the next
    - Ensure device has sufficient power
  </Accordion>
  <Accordion title="Firmware file errors" icon="file-circle-xmark">
    - Re-download the firmware files
    - Verify file integrity (sizes should match GitHub)
    - Check for file corruption during download
  </Accordion>
</AccordionGroup>
</Tab> </Tabs>

Success!

<Tip> Your Omi device is now updated with the latest firmware. Enjoy the enhanced features and improvements! </Tip> <CardGroup cols={2}> <Card title="Build Your Device" icon="hammer" href="/doc/assembly/Build_the_device"> Step-by-step assembly instructions </Card> <Card title="Buying Guide" icon="cart-shopping" href="/doc/assembly/Buying_Guide"> Components needed to build Omi </Card> <Card title="Get Started" icon="rocket" href="/doc/get_started/introduction"> Introduction to Omi </Card> </CardGroup>