GI Labs Support / EGO1 & EGO1GS
Restore factory calibration
Restore the factory camera and IMU calibration using the JSON file supplied for your device and the GI Labs utility. You do not need to capture a calibration target or run a new calibration.
Download the restore utility
Save this file beside your device's calibration JSON. Keep the filename set_calibration.py.
Before you begin
- Use an EGO1 or EGO1GS with enough battery or a stable power supply.
- Use a computer with Python 3.10 or newer.
- Have the restore format calibration JSON supplied for this specific device.
- Have a USB data cable, or connect your computer to the device's Wi-Fi.
Work with one standalone device at a time. Disconnect other Visio devices and devices attached through a hub. Stop recording and close applications that control the device.
Use the JSON supplied for this unit and keep it unchanged. Calibration is specific to each device. A JSON exported from a recording or calibration report may use a different format.
1. Prepare the files and Python
Put set_calibration.py and the supplied JSON in one folder. Open Terminal on macOS or Linux, or Command Prompt on Windows, and change to that folder. The examples use calibration.json; substitute your exact filename if needed.
While your computer has internet access, create a Python environment and install the required package.
macOS or Linux
python3 --version
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade "visio-schema>=0.9.1" protobufWindows Command Prompt
py -3 --version
py -3 -m venv .venv
.venvScriptsactivate.bat
python -m pip install --upgrade "visio-schema>=0.9.1" protobufThe version command must show Python 3.10 or newer. Keep this terminal open. Complete installation before joining the device's Wi-Fi, which may have no internet access.
2. Check the supplied file
Run this before connecting to the device:
python set_calibration.py "calibration.json" --dry-runFor a complete EGO1 or EGO1GS restore, expect a device serial and five items:
would set cam0 intrinsics
would set cam1 intrinsics
would set cam1 extrinsics
would set imu0 info
would set imu0 extrinsicsThe dry run reads the file and lists what would be written. It does not connect to the device or change calibration. If it reports an error or does not list all five items, contact GI Labs support. Do not edit the values or serial.
3. Connect the device
Power on the device and wait for startup. Temporarily disable VPN or proxy software that routes local device traffic.
USB
Connect the device directly to your computer with a USB data cable. USB network restoration requires firmware 1.1.6 or later. A charging-only cable will not work. Allow time for the connection to establish.
Wi-Fi
Join the device's GILABS-XXXXXX network using the credentials supplied with it. Stay connected even if the computer says the network has no internet.
4. Restore the calibration
For USB, run:
python set_calibration.py "calibration.json"The utility tries USB first, then the device's Wi-Fi address. For a Wi-Fi connection, select it explicitly:
python set_calibration.py "calibration.json" --host 192.168.4.1The utility checks that the connected device serial matches the JSON before writing. Keep the device powered and connected until the command finishes. If the serial does not match, use the correct device and its matching file.
5. Confirm the result
A successful run reports all five checks as ok:
check cam0 intrinsics: ok
check cam1 intrinsics: ok
check cam1 extrinsics: ok
check imu0 info: ok
check imu0 extrinsics: ok
DONE: calibration restored. Keep the device on for a few seconds before powering it off.Save the terminal output. Leave the device powered for several seconds, then restart it. Make a short test recording; GI Labs support can use it to confirm that calibration remains present after restart.
The utility checks live device reports before restart. It does not perform a separate post-restart check. At a different capture resolution, the reported camera matrix changes; the camera check compares the distortion model and coefficients.
Troubleshooting
| Message or symptom | What to do |
|---|---|
Python or py is not found | Install Python 3.10 or newer, reopen the terminal, and repeat step 1. |
No module named visio_schema or protobuf error | Activate the environment and rerun the package installation command while online. |
| File not found | Check the working folder and use the exact JSON filename in quotation marks. |
Invalid JSON, KeyError, or unexpected item count | Ask GI Labs support for the correct restore format file. Do not edit calibration values. |
| Cannot reach the device | Check power and the USB data cable, or rejoin Wi-Fi. Disable VPN or proxy routing. On Wi-Fi, use --host 192.168.4.1. |
| Serial mismatch | Connect the unit named in the JSON, or request the correct file from GI Labs. |
device rejected, wrong_resolution, MISMATCH, or NOT REPORTED | Save the full output and contact GI Labs support. Do not treat the restore as complete. |
| Connection lost during a write | Some items may already have been written. Reconnect the same device and rerun with its original matching file. Contact support if it repeats. |
When contacting GI Labs support, include the device model, serial and firmware version printed by the utility, your computer's operating system, whether you used USB or Wi-Fi, the JSON filename, and the complete terminal output.