Skip to main content

Overview

Two areas to test on DevKit 2: SD card storage (offline audio recording) and button behavior (tap events via BLE).
Never remove the SD card while the device is on. It is not hot-swappable. Use the safe removal process described below.

SD Card Storage

When the device is disconnected from the phone (LED is red), audio data is written to the SD card instead of streaming over Bluetooth.

SD Card Commands

Commands are sent as 6-byte packets: [command, file_number, offset_byte0, offset_byte1, offset_byte2, offset_byte3] Example: Read file 1 starting at byte 255:

Response Codes

If you don’t receive code 100 or 200, the command was not completed.

Testing Process

Prerequisites: Python packages from requirements.txt, plus ffmpeg and opus for audio decoding. The test scripts live in omi/firmware/scripts/devkit/.
Run these scripts in order:

Discover Devices

Run discover_devices.py to list all nearby Bluetooth devices. Look for “Omi” or “Omi Devkit 2” and note the device ID.

Check File Sizes

Run get_info_list.py — replace the device_id value with your device ID. This lists the size of each audio file on the SD card.

Download Audio

Run get_audio_file.py — replace the device_id value with your device ID. Audio data streams to my_file.txt in the current directory.

Decode Audio

Run decode_audio.py to convert the downloaded data into a WAV file. If successful, you’ll have a playable recording of what was spoken near the mic.

(Optional) Delete Audio

Run delete_audio_files.py — replace the device_id value with your device ID. This clears audio data from the specified file.

Safe SD Card Removal

1

Reset the device

Double-tap the reset button inside the kit
2

Remove the SD card

Remove the card to inspect contents on your computer
3

Reinsert and restart

Put the SD card back and tap the button to restart

Device Behavior

App-Side SD Card Import

When the device connects to the app with stored audio:
  1. A green banner appears showing estimated download time
  2. Tap the banner (or go to Settings → Device Settings → Storage) to open the import screen
  3. Press the download button to start importing — a progress bar shows completion
The green banner only appears for DevKit 2 devices. DevKit 1 devices do not support SD card import.

Button Events

After connecting to the BLE notification service, these events fire: Verify that each physical action sends the correct BLE packet.

Known Issues

Some devices create an empty a01.txt file, preventing audio from being written.Fix:
  1. Delete the audio file
  2. Press the reset button to reboot
  3. The device will auto-generate the required files on startup