Skip to main content

Quick Start

Get up and running with SiFi Bridge in 5 minutes.

Starting the REPL

Launch the SiFi Bridge interactive shell:

sifibridge
{"new": {"active":"device","created": "device","message":"Device device created and selected"}}

You're now in the REPL (Read-Eval-Print Loop) where you can type commands interactively.

JSON Output

SiFi Bridge outputs responses in JSON format. For easier reading, use the --pretty flag:

sifibridge --pretty
{
"new": {
"active": "device",
"created": "device",
"message": "Device device created and selected"
}
}

The examples below show simplified output for clarity.

Scan for Devices

Discover available SiFi devices via Bluetooth:

> list ble
{
"list": {
"devices": [
{
"name": "BioPoint_v1_3",
"id": "C2:EC:EF:30:0D:10"
},
]
}
}

You can also list devices from other sources with list serial or list devices.

Connect to a Device

Connect to your device using its name or MAC address:

> connect BioPoint_v1_3

You can also connect by MAC address:

> connect C2:EC:EF:30:0D:10
{
"connect": {
"id": "device",
"device": "BioPointV1_3",
"connected": true,
"mac": "C2:EC:EF:30:0D:10"
}
}

Check Device Status

View detailed information about the connected device:

> show
{
"show": {
"id": "device",
"mac": "C2:EC:EF:30:0D:10",
"connected": true,
"device": {
--- snip ---
}
}
}

The show command outputs the complete device configuration in JSON format.

Start Collecting Data

Begin acquiring data from your device:

> start
{
"command": {
"id": "device",
"device": "BioPointV1_3",
"connected": true,
"command": "start_acquisition"
}
}
{
"device": "BioPointV1_3",
"id": "device",
"mac": "C2:EC:EF:30:0D:10",
"packet_type": "start_time",
"data": {
"year": [
2025.0
],
"day": [
16.0
],
"hour": [
14.0
],
"minute": [
50.0
],
"second": [
36.0
],
"month": [
11.0
]
},
"data_timestamps": {
--- snip ---
},
"data_lost_count": {
--- snip ---
},
"status": "lost_data",
"timestamp": 1763322636.219
}

SiFi Bridge returns the start acquisition response acknowledge. Notice that the device returns a Start time packet whenever a new acquisition is started.

Stop Data Collection

Stop the data acquisition:

> stop
{
"command": {
"id": "device",
"device": "BioPointV1_3",
"connected": true,
"command": "stop_acquisition"
}
}

Export Data to CSV

To save data to CSV files, use the --csv-out flag when starting sifibridge:

sifibridge --csv-out ./data/

A file will be created for each device, sensor and recording. Each file contains timestamped sensor data ready for analysis.

You can also use the REPL command:

> download-memory [options] <PATH>

For example:

> download-memory ./data/
--- data packets snip ---
{
"device": "BioPointV1_3",
"id": "device",
"mac": "C2:EC:EF:30:0D:10",
"packet_type": "memory",
"status": "memory_download_completed",
"timestamp": 1763324822.599
}

And now the output folder contains:

$ tree ./data/
data
├── device_2025-11-16-15-26-06_ecg.csv
├── device_2025-11-16-15-26-06_eda.csv
├── device_2025-11-16-15-26-06_emg.csv
├── device_2025-11-16-15-26-06_imu.csv
├── device_2025-11-16-15-26-06_ppg.csv
├── device_2025-11-16-15-26-19_ecg.csv
├── device_2025-11-16-15-26-19_eda.csv
├── device_2025-11-16-15-26-19_emg.csv
├── device_2025-11-16-15-26-19_imu.csv
└── device_2025-11-16-15-26-19_ppg.csv

All the files' header starts with time, followed by the biochannels:

$ head -n 2 data/device_2025-11-16-15-26-06_imu.csv
time,ax,ay,az,qw,qx,qy,qz
1763324766,2.40,-1.49,0.90,0.80,-0.31,-0.51,-0.01

Disconnect from Device

Close the connection:

> disconnect
{
"disconnect": {
"id": "device",
"device": "BioPointV1_3",
"connected": false
}
}

Exit SiFi Bridge

Leave the REPL:

> quit

You can also use Ctrl+C or Ctrl+D to exit.

Get Help

Type help in the REPL for a list of all available commands, or help <command> for details about a specific command:

> help
Available commands:
list List devices from BLE, serial, or saved devices
connect Connect to a device
disconnect Disconnect from device
...

> help connect
Connect to a device via BLE.

The connection handle can be:
- Empty to auto-connect to a device
- BLE device name (e.g. 'BioPoint')
- (Windows/Linux) BLE MAC address (e.g. '00:11:22:33:44:55')
- (MacOS) BLE UUID (e.g. '00001122-3344-5566-7788-99AABBCCDDEE')

Usage: connect [HANDLE]

Arguments:
[HANDLE]
Connection handle

Options:
-h, --help
Print help (see a summary with '-h')