EGO1/EGO1GS
EGO1 (the GI EGO Headset) is a head-mounted stereo (binocular) egocentric capture device. Two forward-facing 1080p cameras at human eye spacing produce a clean stereo first-person stream, and an integrated 9-DoF IMU tracks head pose. It records offline to a MicroSD card, joins your Wi-Fi network, and can upload recordings straight to your own cloud bucket.
It's designed to be operated with nothing more than a phone and a computer with any MCAP viewer. The Visio Companion app gives you live preview, device settings, and cloud-upload configuration — and because the device also serves its own setup page in any browser, you can do the essentials with no app installed at all.
Two variants
EGO1 ships in two variants, sold alongside each other:
- EGO1 — the rolling-shutter headset.
- EGO1GS — the global-shutter headset. Every pixel of a frame is exposed at the same instant, so fast head motion produces no skew or wobble and feature tracking, SLAM, and photogrammetry all get clean geometry. It also adds onboard audio: stereo microphones, plus a speaker that announces status out loud so the wearer gets feedback without looking at a phone.
Both variants are current. They are operated identically, and everything in these guides applies to both unless a page says otherwise — which one you want depends on how fast the wearer moves and whether you need audio.

EGO1 · stereo head-mounted capture device
Which one do I have?
Open the device in the Visio Companion app and look at Device info → Hardware version:
| Hardware version | Variant |
|---|---|
ego_v2 | EGO1 |
audio_ego_v3 | EGO1GS |
The same two devices label the hardware picker under Settings → Firmware downloads, where the app spells
them EGO 1 and EGO 1 GS. Firmware is not interchangeable between them; see
OTA firmware upgrade.
The quickest physical tell: EGO1GS has a speaker. Power it on and it says "device ready" out loud.
What differs
| EGO1 | EGO1GS | |
|---|---|---|
| Shutter | Rolling shutter | Global shutter |
| Field of view (per camera) | 125° H × 75° V | 157° H × 84° V |
| Capture resolutions | 1920×1080 (default), 1600×1296, 1600×1200 | 1920×1080 (default), 1728×1200 |
| Microphones | — | 2× (stereo, 16 kHz) |
| Speaker / voice notices | — | Yes — spoken status in English or Chinese |
| Recording reminder | — | Optional tick-tock while recording |
| IMU | 9-DoF, on-chip fusion — 200 Hz | 9-DoF, host-fused — ≈470 Hz |
| On-device hand detection | — | Yes, on a dedicated firmware build — see below |
Everything else is shared: 30 fps stereo capture, H.265 encoding on-device, hardware-synced exposure across both cameras and the IMU, per-unit factory calibration, MicroSD recording, the physical record switch, Wi-Fi, the built-in setup page, and auto-upload to cloud storage.
The field of view is the second big difference, and it is easy to overlook next to the shutter. EGO1GS sees 32° more horizontally, which is what keeps both of the wearer's hands in frame through a full reach envelope rather than only in front of the body. If your task involves wide arm movement, that matters as much as the shutter does.
Global shutter changes how each frame is exposed, not how many you get. Both variants deliver a hardware-synced 30.00 fps stereo pair.
Why global shutter matters
A rolling shutter exposes the sensor one row at a time, top to bottom. Every frame is therefore a slight time-smear rather than a single instant: when the camera moves quickly, straight edges lean and wobble ("skew" or "jello"), and under LED or fluorescent lighting you can get horizontal banding.
A global shutter exposes every pixel at the same instant. There is no skew, no wobble, and no rolling banding, no matter how fast the wearer turns their head.
For egocentric capture this matters more than it does for most cameras, because a head-worn device lives in exactly the motion regime that rolling shutter handles worst — quick head turns to follow the hands.
Choose EGO1GS when:
- The wearer moves quickly, or the task involves fast head rotation.
- You are feeding the recordings into SLAM / VIO, photogrammetry, or any pipeline that tracks features across frames. Rolling-shutter skew biases these; global shutter removes the error at the source rather than asking the estimator to model it.
- You need geometric accuracy from single frames.
- You want audio alongside the video, or you want the wearer to get spoken feedback without looking at a phone.
EGO1 remains a good fit for slower, more deliberate tasks where the wearer's head is relatively steady and audio isn't needed.
Audio on EGO1GS
The GS variant adds two microphones and a speaker.
Microphones. Stereo capture at 16 kHz, published as a foxglove.RawAudio channel and recorded alongside
the video. Whether audio actually lands in recordings is a toggle — Device settings → Audio → Record
audio in the companion app. It applies immediately; no reboot.
Speaker. The device speaks short status notices so the wearer gets feedback without looking at a phone — for example when it is ready, when recording starts and stops, and when something is wrong (no SD card, card full, write error, network error). Clips ship in English and Chinese, following the app's language setting.
There is also an optional recording reminder: a short tick every few seconds while capture is running, so a wearer can't forget they're recording. It ships off — turn it on under Device settings → Recording reminder. It applies immediately.
Hand detection on EGO1GS
EGO1GS can run a hand detector on the headset itself, in real time, alongside recording. Detections are drawn over the live preview in the companion app, and the speaker announces when both hands leave the frame — so a data collector finds out about a wasted session while it is still fixable, not in post-processing.
This is what the wider 157° field of view is for: it keeps both hands in frame through a full reach envelope, which is the precondition for the detector being useful.
Hand detection ships in a dedicated firmware build rather than in the standard EGO1GS image. See Connect, preview & capture for how it works and how to tell whether your units have it.
Specifications
| Item | Detail |
|---|---|
| SKU | EGO1 (rolling shutter) · EGO1GS (global shutter) |
| Cameras | 2× 1080p @ 30 fps, color (stereo) |
| Shutter | Rolling (EGO1) · Global (EGO1GS) |
| Field of view | Wide-angle fisheye per camera — 125° H × 75° V (EGO1) · 157° H × 84° V (EGO1GS) |
| IPD / baseline | 63 mm center-to-center (average human inter-pupillary distance) |
| Motion sensor | 9-DoF IMU (accel + gyro + mag) — 200 Hz on EGO1, ≈470 Hz on EGO1GS |
| Audio | EGO1GS only — 2× microphone (stereo, 16 kHz) and a speaker for spoken status notices |
| Synchronization | Hardware-synced exposure and clocks across both cameras and the IMU |
| Calibration | Per-device factory calibration — intrinsics, stereo extrinsics, camera–IMU. No customer calibration session needed |
| Encoding | H.265 / HEVC, on-device; bitrate 0.5–50 Mbps, default 8 Mbps |
| Recording format | MCAP — a self-describing format (message schemas embedded); files are .mcap |
| Power | External USB power bank (user-supplied) over the built-in USB-A cable — runtime scales with pack capacity |
| Recording control | Physical record switch, or from the app or the device's own setup page |
| Indicator | Status LED — solid when idle, blinking while recording |
| Storage | MicroSD card — one card ships with the unit; also readable over USB as a drive |
| Connectivity | Wi-Fi — joins your network, or serves its own setup hotspot; USB — power and data |
| Cloud | Automatic upload to your own S3 or Aliyun OSS bucket |
| Mount | Adjustable bracket, pitch is wearer-tunable; elastic headband strap |
| Weight | ≈ 200 g, headset only (excluding the external battery) |
What's in the box
| Item | Qty | Notes |
|---|---|---|
| Headset | 1 | EGO1 or EGO1GS — stereo 1080p + 9-DoF IMU, built-in USB-A cable |
| MicroSD card | 1 | Movespeed A1 V30 128 GB, pre-formatted FAT32 — see SD cards |
| USB power bank | 0 | User-supplied — runtime scales with pack capacity |
You also supply: a USB power bank (or any other USB power source), an Android phone, and a computer for review.
How a session works
Insert SD card ─► Plug in USB power ─► Record ─► Stop ─► Collect ─► Review
(status LED) (switch, (switch, (cloud or (MCAP viewer)
app, or app, or SD card)
web page) web page)
- Insert a MicroSD card and power the device from any USB source. The status LED lights up.
- Record — flip the record switch, or start capture from the Visio Companion app or the device's own setup page. The LED blinks while a session is running.
- Stop the recording and let it finish saving before you remove power.
- Collect the recordings — either automatically, by
uploading to your own cloud bucket, or manually, by
pulling the MicroSD card. Then open the
.mcapfiles in any MCAP viewer (for example, Foxglove Studio).
Optionally connect the app or a browser at any point for live preview, to check framing and set the mount pitch — see Connect, preview & capture.
Getting data off the device
Three export paths, so you can match the method to how the fleet is deployed:
| Path | Best for | Notes |
|---|---|---|
| MicroSD card | Bulk offload after a field day, no network | Pull the card and copy the .mcap files off |
| Wi-Fi upload | Unattended fleet collection | The device uploads finished recordings to your own bucket by itself |
| USB | Getting files off without opening the housing | The card is exposed to a connected computer as a read-only USB drive |
Live preview is a separate thing from all three: it confirms the shot while you work, and is never the file you keep.
Stop the recording and let it finish saving before unplugging USB power — a clip still being written can be lost. Long recordings are written in parts as they go, so a power cut costs the part in flight rather than the whole session, but stopping properly costs nothing.
Mixing variants in one dataset
You can, but treat them as two different cameras, because they are:
- Calibration differs per unit and per variant. Every recording carries its own intrinsics and extrinsics — read them from the file rather than hard-coding one set. See Calibration data.
- Optics differ, substantially. 125° H × 75° V on EGO1 against 157° H × 84° V on EGO1GS means a markedly shorter focal length and a different distortion curve. Any pipeline that hard-codes one camera model across a mixed dataset will be wrong for half of it.
- IMU rates differ — 200 Hz against ≈470 Hz. A hard-coded sample period is wrong for one variant.
- Only GS recordings have an audio channel. Consumers must tolerate its absence.
- Rolling-shutter recordings carry skew that GS recordings don't. If you're training on or evaluating geometric accuracy, that's a systematic difference between the two halves of your dataset, not noise.
Record the variant alongside the data. Each recording's /device_info carries the device identity, and the
hardware version distinguishes the two.
Where to go next
- Quick start — the full happy path, start to finish.
- Know your device — every control and indicator explained.
- Connect, preview & capture — live view, resolution, and bitrate.
- Cloud upload — automatic delivery to your own bucket.
- Engineering integration — read the data streams from Python.