# Table of Contents - [Welcome | Theseus Docs](#welcome-theseus-docs) - [Getting Started | Theseus Docs](#getting-started-theseus-docs) - [Installation | Theseus Docs](#installation-theseus-docs) - [Vozilla 2.0 | Theseus Docs](#vozilla-2-0-theseus-docs) - [Navigation Panel | Theseus Docs](#navigation-panel-theseus-docs) - [Quick Start | Theseus Docs](#quick-start-theseus-docs) - [Maps | Theseus Docs](#maps-theseus-docs) - [Create Account | Theseus Docs](#create-account-theseus-docs) - [Creating a new camera calibration | Theseus Docs](#creating-a-new-camera-calibration-theseus-docs) - [Cameras | Theseus Docs](#cameras-theseus-docs) - [Vozilla GCS | Theseus Docs](#vozilla-gcs-theseus-docs) - [Vehicles | Theseus Docs](#vehicles-theseus-docs) - [Setting a home position | Theseus Docs](#setting-a-home-position-theseus-docs) - [Creating a new vehicle | Theseus Docs](#creating-a-new-vehicle-theseus-docs) - [Create an Account | Theseus Docs](#create-an-account-theseus-docs) - [Manual camera calibration | Theseus Docs](#manual-camera-calibration-theseus-docs) - [Creating a new map | Theseus Docs](#creating-a-new-map-theseus-docs) - [Calibrating your camera | Theseus Docs](#calibrating-your-camera-theseus-docs) - [Installation | Theseus Docs](#installation-theseus-docs) - [Maps | Theseus Docs](#maps-theseus-docs) - [Selecting a map | Theseus Docs](#selecting-a-map-theseus-docs) - [Reviewing a flight | Theseus Docs](#reviewing-a-flight-theseus-docs) - [Selecting a map | Theseus Docs](#selecting-a-map-theseus-docs) - [Organizations | Theseus Docs](#organizations-theseus-docs) - [Setting a home position | Theseus Docs](#setting-a-home-position-theseus-docs) - [MAVLink | Theseus Docs](#mavlink-theseus-docs) - [Flights | Theseus Docs](#flights-theseus-docs) - [Lockdown Mode | Theseus Docs](#lockdown-mode-theseus-docs) - [Creating a new map | Theseus Docs](#creating-a-new-map-theseus-docs) - [Flights | Theseus Docs](#flights-theseus-docs) - [Installation | Theseus Docs](#installation-theseus-docs) - [Legacy Software | Theseus Docs](#legacy-software-theseus-docs) - [Settings | Theseus Docs](#settings-theseus-docs) - [Reviewing a flight | Theseus Docs](#reviewing-a-flight-theseus-docs) - [Managing flight logs | Theseus Docs](#managing-flight-logs-theseus-docs) - [Theseus Micro VPS | Theseus Docs](#theseus-micro-vps-theseus-docs) - [Quick Start | Theseus Docs](#quick-start-theseus-docs) - [Vehicle Integration | Theseus Docs](#vehicle-integration-theseus-docs) - [Flight Controller | Theseus Docs](#flight-controller-theseus-docs) - [Validation | Theseus Docs](#validation-theseus-docs) - [Theseus GCS App | Theseus Docs](#theseus-gcs-app-theseus-docs) - [Power | Theseus Docs](#power-theseus-docs) - [MAVLink | Theseus Docs](#mavlink-theseus-docs) - [Operation Manual | Theseus Docs](#operation-manual-theseus-docs) - [System | Theseus Docs](#system-theseus-docs) - [Feature List | Theseus Docs](#feature-list-theseus-docs) - [Getting Started | Theseus Docs](#getting-started-theseus-docs) - [Vehicle Configuration | Theseus Docs](#vehicle-configuration-theseus-docs) - [Operation | Theseus Docs](#operation-theseus-docs) - [Create account | Theseus Docs](#create-account-theseus-docs) - [Vehicle Integration | Theseus Docs](#vehicle-integration-theseus-docs) - [Power | Theseus Docs](#power-theseus-docs) - [Pre-Flight Manual | Theseus Docs](#pre-flight-manual-theseus-docs) - [Flight test | Theseus Docs](#flight-test-theseus-docs) - [Cyclops Computer | Theseus Docs](#cyclops-computer-theseus-docs) - [Quick Start | Theseus Docs](#quick-start-theseus-docs) - [Pre-Requisites | Theseus Docs](#pre-requisites-theseus-docs) - [VPS Firmware Updates | Theseus Docs](#vps-firmware-updates-theseus-docs) - [Validation | Theseus Docs](#validation-theseus-docs) - [Theseus Maps App | Theseus Docs](#theseus-maps-app-theseus-docs) - [Pi 5 Walkthrough | Theseus Docs](#pi-5-walkthrough-theseus-docs) - [Vehicle Selection | Theseus Docs](#vehicle-selection-theseus-docs) - [Flight Controller | Theseus Docs](#flight-controller-theseus-docs) - [Autopilot Integration | Theseus Docs](#autopilot-integration-theseus-docs) - [GPS Switching | Theseus Docs](#gps-switching-theseus-docs) - [Download maps | Theseus Docs](#download-maps-theseus-docs) - [Viewing Maps | Theseus Docs](#viewing-maps-theseus-docs) - [MAVLink | Theseus Docs](#mavlink-theseus-docs) - [Feature List | Theseus Docs](#feature-list-theseus-docs) - [Generate maps | Theseus Docs](#generate-maps-theseus-docs) - [Dead Reckoning Switch | Theseus Docs](#dead-reckoning-switch-theseus-docs) - [Camera Calibration | Theseus Docs](#camera-calibration-theseus-docs) - [Home Position Setting | Theseus Docs](#home-position-setting-theseus-docs) - [Mechanical Installation | Theseus Docs](#mechanical-installation-theseus-docs) - [Releases | Theseus Docs](#releases-theseus-docs) - [Pre-Requisites | Theseus Docs](#pre-requisites-theseus-docs) - [Mission Planner | Theseus Docs](#mission-planner-theseus-docs) - [QGroundControl | Theseus Docs](#qgroundcontrol-theseus-docs) - [Deactivating Map Matching | Theseus Docs](#deactivating-map-matching-theseus-docs) - [MAVLink Connection | Theseus Docs](#mavlink-connection-theseus-docs) - [Hardware Setup | Theseus Docs](#hardware-setup-theseus-docs) - [ArduPilot | Theseus Docs](#ardupilot-theseus-docs) - [Troubleshooting | Theseus Docs](#troubleshooting-theseus-docs) - [Recording Management | Theseus Docs](#recording-management-theseus-docs) - [MAVLink | Theseus Docs](#mavlink-theseus-docs) - [Autopilot Integration | Theseus Docs](#autopilot-integration-theseus-docs) - [Bench test | Theseus Docs](#bench-test-theseus-docs) - [Cyclops Safety Switch | Theseus Docs](#cyclops-safety-switch-theseus-docs) - [Mission Planner | Theseus Docs](#mission-planner-theseus-docs) - [vns-sdk Setup | Theseus Docs](#vns-sdk-setup-theseus-docs) - [System Health | Theseus Docs](#system-health-theseus-docs) - [Maps Management | Theseus Docs](#maps-management-theseus-docs) - [Pre-Flight Checklist | Theseus Docs](#pre-flight-checklist-theseus-docs) - [Theseus Account | Theseus Docs](#theseus-account-theseus-docs) - [Developer API | Theseus Docs](#developer-api-theseus-docs) - [Vehicle Configuration | Theseus Docs](#vehicle-configuration-theseus-docs) - [ArduPilot | Theseus Docs](#ardupilot-theseus-docs) - [SSH Setup | Theseus Docs](#ssh-setup-theseus-docs) - [Bench Test | Theseus Docs](#bench-test-theseus-docs) - [Getting Started | Theseus Docs](#getting-started-theseus-docs) - [QGroundControl | Theseus Docs](#qgroundcontrol-theseus-docs) - [vns_bench dev toolkit | Theseus Docs](#vns-bench-dev-toolkit-theseus-docs) - [VPS Firmware Updates | Theseus Docs](#vps-firmware-updates-theseus-docs) - [Mechanical Installation | Theseus Docs](#mechanical-installation-theseus-docs) - [Flight Test | Theseus Docs](#flight-test-theseus-docs) - [vns_bench dev toolkit | Theseus Docs](#vns-bench-dev-toolkit-theseus-docs) - [Map Download | Theseus Docs](#map-download-theseus-docs) - [Map Generation | Theseus Docs](#map-generation-theseus-docs) --- # Welcome | Theseus Docs [](https://docs.theseus.us/cyclops/getting-started) ![Cover](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252F9Bj4nUwUuTpCdJrYFpcH%252Fimage.png%3Falt%3Dmedia%26token%3Dcb1a2340-aca8-4219-920e-901871f645da&width=490&dpr=3&quality=100&sign=1db7d6b9&sv=2) Learn how to setup Cyclops on your drone [](https://docs.theseus.us/gcs-software/vozilla-gcs) ![Cover](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FWmzoWFJPTGs4MObZJoaK%252FvozMaps.png%3Falt%3Dmedia%26token%3D086a4424-7d61-4447-8ab1-71d3dae085ca&width=490&dpr=3&quality=100&sign=7e169280&sv=2) Learn how to operate Vozilla GCS [](https://docs.theseus.us/micro-vps/getting-started) ![Cover](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252F61bxrK04CYjTtdfjAFcz%252FVector%2520Enclosure%2520V2.3%2520Front%2520Right%2520Lower.png%3Falt%3Dmedia%26token%3D2d9693c6-dad0-482e-9dae-c56635dbd4f0&width=490&dpr=3&quality=100&sign=b8e875b1&sv=2) Learn how to integrate Micro VPS [NextGetting Startedchevron-right](https://docs.theseus.us/gcs-software/getting-started) Last updated 1 month ago This site uses cookies to deliver its service and to analyze traffic. By browsing this site, you accept the [privacy policy](https://policies.gitbook.com/privacy/cookies) . close AcceptReject --- # Getting Started | Theseus Docs Theseus Ground Control Software enables operators to setup and operate Theseus positioning systems from their laptop. Check out our latest Ground Control Software at circle-info Looking for the guide on installing Theseus on your drone? Head over to [CYCLOPS](https://docs.theseus.us/cyclops/getting-started) [PreviousWelcomechevron-left](https://docs.theseus.us/) [NextVozilla 2.0chevron-right](https://docs.theseus.us/gcs-software/vozilla-2.0) Last updated 1 month ago --- # Installation | Theseus Docs circle-exclamation The Vozilla GCS app is currently only available on **Windows and Linux**. Please contact us if you require support for another OS. [hashtag](https://docs.theseus.us/gcs-software/vozilla-2.0/installation#downloading-vozilla) Downloading Vozilla --------------------------------------------------------------------------------------------------------------------- Vozilla is Theseus' app to configure your devices, generate maps, and manage Cyclops. Follow this link to create an account and download Vozilla. [Download Vozilla](https://dashboard.theseus.us/downloads) [hashtag](https://docs.theseus.us/gcs-software/vozilla-2.0/installation#updates) Updates --------------------------------------------------------------------------------------------- Updates to the Vozilla app are shipped frequently as the app is still in rapid development. For the best experience using the app we always recommend using the most up to date version. The app checks for updates when you launch it, so you will be prompted to update if any new versions are released. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252Fhxbex0ulKh9O76M2daGT%252Fimage.png%3Falt%3Dmedia%26token%3D0f65a942-c49d-49ac-b0ed-cde55dd4378a&width=768&dpr=3&quality=100&sign=cf27e145&sv=2) [PreviousVozilla 2.0chevron-left](https://docs.theseus.us/gcs-software/vozilla-2.0) [NextQuick Startchevron-right](https://docs.theseus.us/gcs-software/vozilla-2.0/quick-start) Last updated 1 month ago * [Downloading Vozilla](https://docs.theseus.us/gcs-software/vozilla-2.0/installation#downloading-vozilla) * [Updates](https://docs.theseus.us/gcs-software/vozilla-2.0/installation#updates) --- # Vozilla 2.0 | Theseus Docs The Vozilla Ground Control Station (GCS) App allows you to control your Theseus system **(MicroVPS/Cyclops).** It is used to generate and upload map data to your device, review Theseus flight logs, and configure your Theseus system for GPS denied flight. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252F37jA2ZI0i0WNQ0q2TRvj%252Fimage.png%3Falt%3Dmedia%26token%3D62e2dec7-290f-44b7-8d4e-5156f34ea823&width=768&dpr=3&quality=100&sign=bf0c4426&sv=2) Vozilla 2.0+ Homepage Begin by installing the Vozilla GCS app with [Installation](https://docs.theseus.us/gcs-software/vozilla-gcs/installation) and learn how to connect and manage your Micro VPS device in [Quick Start](https://docs.theseus.us/gcs-software/vozilla-gcs/quick-start) . [PreviousGetting Startedchevron-left](https://docs.theseus.us/gcs-software/getting-started) [NextInstallationchevron-right](https://docs.theseus.us/gcs-software/vozilla-2.0/installation) Last updated 1 month ago --- # Navigation Panel | Theseus Docs On the right of the screen is a dockable panel. This panel is the main place where all navigation will happen. This panel lets you navigate to the maps, vehicles, cameras and flights subpages that allow you to configure and view their respective content. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FTprK0svDS0n9RMwTyVfS%252Fimage.png%3Falt%3Dmedia%26token%3D3312348b-4799-4887-84da-f75e16f38763&width=768&dpr=3&quality=100&sign=aa1d5b18&sv=2) 1 ### [hashtag](https://docs.theseus.us/gcs-software/vozilla-2.0/navigation-panel#sub-page) [Maps](https://docs.theseus.us/gcs-software/vozilla-2.0/maps) Sub page When in the root panel and a device is connected, you will be able to see the currently active map selected for your device. Clicking "Manage Maps" will take you to the [Maps](https://docs.theseus.us/gcs-software/vozilla-2.0/maps) 2 ### [hashtag](https://docs.theseus.us/gcs-software/vozilla-2.0/navigation-panel#sub-page-1) [Vehicles](https://docs.theseus.us/gcs-software/vozilla-2.0/vehicles) Sub page When in the root panel and a device is connected, you will be able to see the currently active vehicle configured for your device. Clicking "Manage Vehicles" will take you to the [Vehicles](https://docs.theseus.us/gcs-software/vozilla-2.0/vehicles) Sub page 3 ### [hashtag](https://docs.theseus.us/gcs-software/vozilla-2.0/navigation-panel#sub-page-2) [Cameras](https://docs.theseus.us/gcs-software/vozilla-2.0/cameras) Sub page When in the root panel and a device is connected, you will be able to see the currently active vehicle configured for your device. Clicking "Manage Cameras" will take you to the [Cameras](https://docs.theseus.us/gcs-software/vozilla-2.0/cameras) Sub page 4 ### [hashtag](https://docs.theseus.us/gcs-software/vozilla-2.0/navigation-panel#sub-page-3) [Flights](https://docs.theseus.us/gcs-software/vozilla-2.0/flights) Sub page When in the root panel and a device is connected, you will be able to see the currently active vehicle configured for your device. Clicking "View all flights" will take you to the [Flights](https://docs.theseus.us/gcs-software/vozilla-2.0/flights) Sub page [PreviousQuick Startchevron-left](https://docs.theseus.us/gcs-software/vozilla-2.0/quick-start) [NextMapschevron-right](https://docs.theseus.us/gcs-software/vozilla-2.0/maps) Last updated 1 month ago * [Sub page](https://docs.theseus.us/gcs-software/vozilla-2.0/navigation-panel#sub-page) * [Sub page](https://docs.theseus.us/gcs-software/vozilla-2.0/navigation-panel#sub-page-1) * [Sub page](https://docs.theseus.us/gcs-software/vozilla-2.0/navigation-panel#sub-page-2) * [Sub page](https://docs.theseus.us/gcs-software/vozilla-2.0/navigation-panel#sub-page-3) --- # Quick Start | Theseus Docs Vozilla GCS app allows you to manage your Micro VPS device. This page will go over the core features of the app. It will also go over connecting your computer to the Micro VPS circle-info Make sure you installed the Vozilla GCS app on your Windows/Linux laptop following [Installation](https://docs.theseus.us/gcs-software/vozilla-gcs/installation) before proceeding. [hashtag](https://docs.theseus.us/gcs-software/vozilla-2.0/quick-start#log-in) Log In ------------------------------------------------------------------------------------------ You need to log into vozilla to be able to use the ground control station. If you already have a previous account with Theseus, use this to sign in. If not, please [Create an Account](https://docs.theseus.us/gcs-software/vozilla-2.0/create-an-account) . ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FgqhSHG0eDWyuCOpFvNci%252Fimage.png%3Falt%3Dmedia%26token%3D014ae2b7-0205-460c-8fe9-39dd294504a7&width=768&dpr=3&quality=100&sign=c3d7fa54&sv=2) [hashtag](https://docs.theseus.us/gcs-software/vozilla-2.0/quick-start#homepage) Homepage ---------------------------------------------------------------------------------------------- Once logged in, you will be taken to the homepage. This is where you will find everything you need to fly using Theseus. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252F0l0EDYLu2OzsGs2ur6CS%252Fimage.png%3Falt%3Dmedia%26token%3D26fcb378-9777-4efc-a3e3-ad67ec162a7e&width=768&dpr=3&quality=100&sign=939cd13b&sv=2) [hashtag](https://docs.theseus.us/gcs-software/vozilla-2.0/quick-start#connecting-to-micro-vps) Connecting to Micro VPS ---------------------------------------------------------------------------------------------------------------------------- Vozilla GCS app supports connectivity over Ethernet and MAVLink to the Micro VPS. You will need to **edit your computer Ethernet network interface** configuration in order to establish a connection to the Micro VPS. By default we have the edge device configured to a static ip address of `192.168.218.100`. If you change this default address, your network interface settings will need to match the subnet of the different ip address. If using the default ip, follow the instructions below to configure your computer to communicate with the Micro VPS over Ethernet. Windows Linux Here are the IP settings for the network interface: * IP address: 192.168.218.10 * Subnet mask: 255.255.255.0 * Default gateway: 192.168.218.1 On your Windows computer: * Open Windows Settings (Windows key + I) * Click on "Network & Internet" * Click on "Ethernet" * Click on your network adapter * Under "IP assignment", click "Edit" * Select "Manual" and turn on IPv4 * Enter the IP settings shown above * Click "Save" Here are the IP settings for the network interface: * IP address: 192.168.218.10 * Subnet mask: 255.255.255.0 * Default gateway: 192.168.218.1 Create a new Ethernet network interface with these IPv4 settings in your settings app. When connected. Vozilla will display status information on the product service ### [hashtag](https://docs.theseus.us/gcs-software/vozilla-2.0/quick-start#using-another-ip-address-for-your-edge-device) Using another ip address for your edge device If your system requires a specific ip address for the compute that differs from the default address of `192.168.218.100`, you can still connect to it with Vozilla. To edit the address, enter the settings and navigate to the device settings. Input your custom ip under device URL ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FLhvrQGphHSDWwjZLesN8%252Fimage.png%3Falt%3Dmedia%26token%3Dd5d5affd-dfb1-4e01-af9e-fd692fba1f71&width=768&dpr=3&quality=100&sign=5660b005&sv=2) [hashtag](https://docs.theseus.us/gcs-software/vozilla-2.0/quick-start#overview) Overview ---------------------------------------------------------------------------------------------- Below is a breakdown of all the main features on the homepage ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FbA4Fq21QWBzwvPqXqUJ4%252Fimage.png%3Falt%3Dmedia%26token%3D7c755e2f-3e45-4643-bf6c-872acc6336f4&width=768&dpr=3&quality=100&sign=70d43e9e&sv=2) 1 ### [hashtag](https://docs.theseus.us/gcs-software/vozilla-2.0/quick-start#vozilla-directory-and-version) Vozilla Directory and Version The on the left side of the title bar can be used to determine the version of your Vozilla application. The text also updates as you navigate throughout the app. Displaying "Home" for the homepage, "Maps" when you are setting and generating maps, "Vehicles" when setting and generating vehicle calibrations and so on. 2 ### [hashtag](https://docs.theseus.us/gcs-software/vozilla-2.0/quick-start#map-controls) Map Controls The top left corner of the map contains the map controls. These include, zoom controls, recentering and a lat, lon value for your cursor position on the map. 3 ### [hashtag](https://docs.theseus.us/gcs-software/vozilla-2.0/quick-start#search-bars) Search Bars Search bars will always be located centered along the top of your screen. The global search can be found in the title bar. This can be used to navigate to different components of the app, navigate to certain settings and search through configurations. 4 ### [hashtag](https://docs.theseus.us/gcs-software/vozilla-2.0/quick-start#connection-info) Connection Info The top right corner consists of 3 essential connection info. The right most component (1) is used to connect to your flight controller and set up a mavproxy output to any other receivers. To the left of it (2) is the device status information. This will indicate device status and will be green when everything is running smoothly. The left most component is the recording toggle (3), this can be used to quickly toggle on/off flight recordings. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252F1twuhEn0wuvvzQUBV4Ja%252Fimage.png%3Falt%3Dmedia%26token%3D60939650-21cc-4e83-84af-070c0628ef71&width=768&dpr=3&quality=100&sign=23dfe49c&sv=2) 5 ### [hashtag](https://docs.theseus.us/gcs-software/vozilla-2.0/quick-start#undefined-1) [Navigation Panel](https://docs.theseus.us/gcs-software/vozilla-2.0/navigation-panel) On the right of the screen is a dockable panel. This panel is the main place where all navigation will happen. This panel lets you navigate to the maps, vehicles, cameras and flights subpages that allow you to configure and view their respective content. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FMp5oNP5tbjKA6Zekna5J%252Fimage.png%3Falt%3Dmedia%26token%3D6f3030fc-13bf-4368-ba06-80036361c310&width=768&dpr=3&quality=100&sign=eaf8b71d&sv=2) 6 ### [hashtag](https://docs.theseus.us/gcs-software/vozilla-2.0/quick-start#settings) Settings The settings Button located in the title bar next to the window controls will take you to the settings page. This page is where a majority of device, user, and account settings live. 7 ### [hashtag](https://docs.theseus.us/gcs-software/vozilla-2.0/quick-start#diagnostics-panel) Diagnostics Panel The panel docked to the bottom of the screen contains all diagnostics information related to the device. This includes any MAV messages, heartbeats, parameters and a MAV console when connected to a MAV input source. In addition to this, there are system diagnostics for the Theseus system when connected. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252F45F9YTUPZAtYor1pI1jZ%252Fimage.png%3Falt%3Dmedia%26token%3De372ffe6-8683-4660-8199-795001f1fea3&width=768&dpr=3&quality=100&sign=287c90d2&sv=2) [PreviousInstallationchevron-left](https://docs.theseus.us/gcs-software/vozilla-2.0/installation) [NextNavigation Panelchevron-right](https://docs.theseus.us/gcs-software/vozilla-2.0/navigation-panel) Last updated 1 month ago * [Log In](https://docs.theseus.us/gcs-software/vozilla-2.0/quick-start#log-in) * [Homepage](https://docs.theseus.us/gcs-software/vozilla-2.0/quick-start#homepage) * [Connecting to Micro VPS](https://docs.theseus.us/gcs-software/vozilla-2.0/quick-start#connecting-to-micro-vps) * [Using another ip address for your edge device](https://docs.theseus.us/gcs-software/vozilla-2.0/quick-start#using-another-ip-address-for-your-edge-device) * [Overview](https://docs.theseus.us/gcs-software/vozilla-2.0/quick-start#overview) * [Vozilla Directory and Version](https://docs.theseus.us/gcs-software/vozilla-2.0/quick-start#vozilla-directory-and-version) * [Map Controls](https://docs.theseus.us/gcs-software/vozilla-2.0/quick-start#map-controls) * [Search Bars](https://docs.theseus.us/gcs-software/vozilla-2.0/quick-start#search-bars) * [Connection Info](https://docs.theseus.us/gcs-software/vozilla-2.0/quick-start#connection-info) * [](https://docs.theseus.us/gcs-software/vozilla-2.0/quick-start#undefined-1) * [Settings](https://docs.theseus.us/gcs-software/vozilla-2.0/quick-start#settings) * [Diagnostics Panel](https://docs.theseus.us/gcs-software/vozilla-2.0/quick-start#diagnostics-panel) Copy Put Gif of connection here --- # Maps | Theseus Docs The Maps page allows you to generate and upload maps prior to your operations with the system. This is also where you can set your home/takeoff position and switch between generated maps. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252F0ra01I9AU9RjzNIsWMyK%252Fimage.png%3Falt%3Dmedia%26token%3D84e84e92-162c-44fc-9a62-97255ae5f156&width=768&dpr=3&quality=100&sign=ad014c8e&sv=2) Maps Page [hashtag](https://docs.theseus.us/gcs-software/vozilla-2.0/maps#why-do-i-need-this) Why do I need this? ------------------------------------------------------------------------------------------------------------ Theseus products require **pre-processed satellite imagery** to perform map matching. Micro VPS can store up to 50,000 sq. km of map area for any mission (e.g. 20 km x 2500 km area). The Maps tab allows you to generate and download these maps before your mission. To learn more about Micro VPS, Cyclops and our map matching technology visit the [Technology page on Theseus' websitearrow-up-right](https://www.theseus.us/technology) . [hashtag](https://docs.theseus.us/gcs-software/vozilla-2.0/maps#maps-information) Maps Information ------------------------------------------------------------------------------------------------------- Map file sizes are ~5-6MB per km2. A 20,000 km2 would be around 100GB. The amount of time it takes to download a map depends on your internet speed. Large maps take a long time to generate and download, so please be sure to do this well in advance of your flights. Maps are generated with a buffer area around them, so the exact size of the map and number of tiles generated will always be more than the selected area. The percentage of the total map that is the buffer area depends on the size and shape of the map. [PreviousNavigation Panelchevron-left](https://docs.theseus.us/gcs-software/vozilla-2.0/navigation-panel) [NextCreating a new mapchevron-right](https://docs.theseus.us/gcs-software/vozilla-2.0/maps/creating-a-new-map) Last updated 1 month ago * [Why do I need this?](https://docs.theseus.us/gcs-software/vozilla-2.0/maps#why-do-i-need-this) * [Maps Information](https://docs.theseus.us/gcs-software/vozilla-2.0/maps#maps-information) --- # Create Account | Theseus Docs Open the Vozilla GCS app and select the "_sign up_" tab to create your account and access the app. If you already have a previous account with Theseus, use that to sign in on the "_sign in_" tab. circle-exclamation To create an account, you need a unique registration code. Reach out to your Theseus point of contact for help. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FZ1atYpTFXpAqPAe1AXSy%252FScreenshot%25202025-12-15%2520102117.png%3Falt%3Dmedia%26token%3D3d9e0fbb-bbaa-430c-a46e-b7a46e947460&width=768&dpr=3&quality=100&sign=f32c531c&sv=2) Vozilla GCS app account sign up page [PreviousInstallationchevron-left](https://docs.theseus.us/gcs-software/vozilla-gcs/installation) [NextQuick Startchevron-right](https://docs.theseus.us/gcs-software/vozilla-gcs/quick-start) Last updated 3 months ago --- # Creating a new camera calibration | Theseus Docs [hashtag](https://docs.theseus.us/gcs-software/vozilla-2.0/cameras/creating-a-new-camera-calibration#camera-calibration) Camera Calibration ------------------------------------------------------------------------------------------------------------------------------------------------ Camera calibrations are required when using cyclops on your system. To start calibrating the camera you plan to use with cyclops on your machine. Navigate to the camera panel. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FMjvfiJVGSWOUA3tnirPr%252Fimage.png%3Falt%3Dmedia%26token%3Df0f0cc06-b44e-4dad-8c53-aa23c8f5d69b&width=768&dpr=3&quality=100&sign=471d0a7d&sv=2) Then click the **NEW CALIBRATION** button at the bottom of the panel. This will open up the camera calibration utility ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FZYqtOVxDtB6vng2qmXFg%252Fimage.png%3Falt%3Dmedia%26token%3Dd4745462-3ea9-448a-bf99-838cc1ea9f24&width=768&dpr=3&quality=100&sign=e9a5acf7&sv=2) From here, refer to the instructions outlined in [Calibrating your camera](https://docs.theseus.us/gcs-software/vozilla-2.0/cameras/calibrating-your-camera) circle-info The config will automatically be uploaded and set as the active config on your device if a Theseus system is connected to your computer. Otherwise, the config will be saved locally. [PreviousCameraschevron-left](https://docs.theseus.us/gcs-software/vozilla-2.0/cameras) [NextCalibrating your camerachevron-right](https://docs.theseus.us/gcs-software/vozilla-2.0/cameras/calibrating-your-camera) Last updated 1 month ago --- # Cameras | Theseus Docs [Creating a new camera calibrationchevron-right](https://docs.theseus.us/gcs-software/vozilla-2.0/cameras/creating-a-new-camera-calibration) [Calibrating your camerachevron-right](https://docs.theseus.us/gcs-software/vozilla-2.0/cameras/calibrating-your-camera) [Manual camera calibrationchevron-right](https://docs.theseus.us/gcs-software/vozilla-2.0/cameras/manual-camera-calibration) [PreviousCreating a new vehiclechevron-left](https://docs.theseus.us/gcs-software/vozilla-2.0/vehicles/creating-a-new-vehicle) [NextCreating a new camera calibrationchevron-right](https://docs.theseus.us/gcs-software/vozilla-2.0/cameras/creating-a-new-camera-calibration) --- # Vozilla GCS | Theseus Docs The Vozilla Ground Control Station (GCS) App allows you to **control your Micro VPS device, generate and upload new maps, review flight logs, and perform system administration tasks**. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FQ8CzlRyscLPt43uVLh44%252FScreenshot%25202025-12-15%2520093336.png%3Falt%3Dmedia%26token%3D82d16043-3e25-4d99-ad5a-24f7dcf1765a&width=768&dpr=3&quality=100&sign=f61416ac&sv=2) Vozilla GCS app Begin by installing the Vozilla GCS app with [Installation](https://docs.theseus.us/gcs-software/vozilla-gcs/installation) and learn how to connect and manage your Micro VPS device in [Quick Start](https://docs.theseus.us/gcs-software/vozilla-gcs/quick-start) . [PreviousLockdown Modechevron-left](https://docs.theseus.us/gcs-software/vozilla-2.0/lockdown-mode) [NextInstallationchevron-right](https://docs.theseus.us/gcs-software/vozilla-gcs/installation) Last updated 1 month ago --- # Vehicles | Theseus Docs The Vehicles page allows you to generate and upload maps prior to your operations with the system. This is also where you can set your home/takeoff position and switch between generated maps. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252F7UBsdjZpf5CZ5cNKgdul%252Fimage.png%3Falt%3Dmedia%26token%3D4af5bfab-8f5c-433d-ad4c-914370c665ec&width=768&dpr=3&quality=100&sign=4fcac4f7&sv=2) [hashtag](https://docs.theseus.us/gcs-software/vozilla-2.0/vehicles#why-do-i-need-this) Why do I need this? ---------------------------------------------------------------------------------------------------------------- The Micro VPS needs to know the orientation of the flight controller relative to itself in order to accurately give a position estimate. The GCS App has a tool to define this transformation and save it to a file. Check out our [Mechanical Installation](https://docs.theseus.us/micro-vps/vehicle-integration/mechanical-installation) page for information on how to properly mount you Micro VPS. [PreviousSetting a home positionchevron-left](https://docs.theseus.us/gcs-software/vozilla-2.0/maps/setting-a-home-position) [NextCreating a new vehiclechevron-right](https://docs.theseus.us/gcs-software/vozilla-2.0/vehicles/creating-a-new-vehicle) Last updated 1 month ago --- # Setting a home position | Theseus Docs Each map has a corresponding home position. This position represents the takeoff location of your UAV, and is the location where the Micro VPS will initialize. It is represented by a circle within the map boundary on the map screen. To set your home position, either drag the circle to a desired location within the map boundary or enter coordinates in the _Home Position_ field. Then click the **SAVE** button to set this as the new home position. Saving the home position automatically restarts the MVPS service to load in the new starting position. [PreviousSelecting a mapchevron-left](https://docs.theseus.us/gcs-software/vozilla-2.0/maps/selecting-a-map) [NextVehicleschevron-right](https://docs.theseus.us/gcs-software/vozilla-2.0/vehicles) Last updated 1 month ago --- # Creating a new vehicle | Theseus Docs [hashtag](https://docs.theseus.us/gcs-software/vozilla-2.0/vehicles/creating-a-new-vehicle#vehicle-configuration) Vehicle Configuration -------------------------------------------------------------------------------------------------------------------------------------------- To create vehicle configurations follow the steps on our [Mechanical Installation](https://docs.theseus.us/cyclops/vehicle-integration/mechanical-installation) page for information on how to properly mount your camera system. Then come back here to input the vehicle configuration circle-info The config will automatically be uploaded and set as the active config on your device if a Theseus system is connected to your computer. Otherwise, the config will be saved locally. 1 ### [hashtag](https://docs.theseus.us/gcs-software/vozilla-2.0/vehicles/creating-a-new-vehicle#creating-a-custom-vehicle-configuration) Creating a custom vehicle configuration Click the **NEW CONFIG** button at the bottom of your Vehicle Panel to start creating a custom configuration. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FlV0zfHfeUBEhEe4sIDHC%252Fimage.png%3Falt%3Dmedia%26token%3D05e57e45-9f1b-471d-bb50-0e735e8ec916&width=768&dpr=3&quality=100&sign=8d0787ea&sv=2) 2 ### [hashtag](https://docs.theseus.us/gcs-software/vozilla-2.0/vehicles/creating-a-new-vehicle#input-custom-translation-and-rotation) Input custom translation and rotation Once a you have measured your transformation, follow the steps in [Mechanical Installation](https://docs.theseus.us/cyclops/vehicle-integration/mechanical-installation) , you can input the translation and rotation values in the top left card. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FHLMeuH1tnr16WBagknwp%252F2026-02-24%252012-48-03.gif%3Falt%3Dmedia%26token%3Da6834dd2-29ea-40ce-acac-23ac83c75c35&width=768&dpr=3&quality=100&sign=89ba28a&sv=2) [PreviousVehicleschevron-left](https://docs.theseus.us/gcs-software/vozilla-2.0/vehicles) [NextCameraschevron-right](https://docs.theseus.us/gcs-software/vozilla-2.0/cameras) Last updated 1 month ago * [Vehicle Configuration](https://docs.theseus.us/gcs-software/vozilla-2.0/vehicles/creating-a-new-vehicle#vehicle-configuration) * [Creating a custom vehicle configuration](https://docs.theseus.us/gcs-software/vozilla-2.0/vehicles/creating-a-new-vehicle#creating-a-custom-vehicle-configuration) * [Input custom translation and rotation](https://docs.theseus.us/gcs-software/vozilla-2.0/vehicles/creating-a-new-vehicle#input-custom-translation-and-rotation) --- # Create an Account | Theseus Docs Open the Vozilla GCS app and select the "Create account" text to create your account and access the app. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FO6cD0dvlcNTWdyJq0cki%252Fimage.png%3Falt%3Dmedia%26token%3D90852352-bc98-4b3f-9807-0443041f13b5&width=768&dpr=3&quality=100&sign=72dc5a6d&sv=2) circle-exclamation Clicking this will take you to the [Theseus Dashboardarrow-up-right](https://dashboard.theseus.us/signup) , create an account here in order to sign in on vozilla. [PreviousOrganizationschevron-left](https://docs.theseus.us/gcs-software/vozilla-2.0/settings/organizations) [NextLockdown Modechevron-right](https://docs.theseus.us/gcs-software/vozilla-2.0/lockdown-mode) Last updated 1 month ago --- # Manual camera calibration | Theseus Docs In certain cases you may need to manually configure the calibration parameters for your camera. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FUKbMHUqwYQVuLhH2SL2V%252Fcustom_camera_calibration.gif%3Falt%3Dmedia%26token%3De28e6ac1-3dff-4a26-94c2-5df46fe84619&width=768&dpr=3&quality=100&sign=6e985ded&sv=2) To do so: * Navigate to the Camera section from the right panel on Vozilla * Select "New Calibration" at the bottom of the panel * Click the "Advanced" drop down below the image stream * Click on "Write custom calibration" * Manually enter your camera calibration parameters in the panel * When you're done, click the "Save" button Here is the default configuration for a Flir Boson+ 640 with a 95° HFOV / 4.9mm lens: [PreviousCalibrating your camerachevron-left](https://docs.theseus.us/gcs-software/vozilla-2.0/cameras/calibrating-your-camera) [NextFlightschevron-right](https://docs.theseus.us/gcs-software/vozilla-2.0/flights) Last updated 13 days ago Copy resolution: width: 640 height: 512 fps: 60 intrinsics: fx: 411.37 fy: 411.22 cx: 317.80 cy: 257.89 k1: 0.133336 k2: 0.0 k3: 0.0 k4: 0.52395 --- # Creating a new map | Theseus Docs [hashtag](https://docs.theseus.us/gcs-software/vozilla-2.0/maps/creating-a-new-map#map-generation) Map Generation ---------------------------------------------------------------------------------------------------------------------- To generate maps follow these steps on the Maps tab: circle-info You can expect the map generation to take ~1 hour per 1000 km2. The completed maps take up ~1GB per 200 km2 so downloading a large map may take a long time over a slow internet connection. 1 ### [hashtag](https://docs.theseus.us/gcs-software/vozilla-2.0/maps/creating-a-new-map#generating-a-new-map) Generating a new map Click the **NEW MAP** button at the bottom of your Map Panel, then navigate to your desired flight area. You can do this by entering either the name of your location or the WGS84 coordinates in the search bar. Hit _enter_ and the map will pan to your location. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FBLbg3rP5MnCOr8dvcUkW%252Fimage.png%3Falt%3Dmedia%26token%3D602179af-88e6-4bf7-95bc-2a34f65a9c40&width=768&dpr=3&quality=100&sign=8d7141f7&sv=2) 2 [hashtag](https://docs.theseus.us/gcs-software/vozilla-2.0/maps/creating-a-new-map#create-your-map-boundary) Create your map boundary ------------------------------------------------------------------------------------------------------------------------------------------ Draw the polygonal map boundary around your flight area. Ensure the boundary covers the entire flight area for your mission, as your system cannot localize outside of the map. Add a distinct name for your map in the field provided. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FZV7mAfUtQhMWZ5duA4SF%252FUntitled%2520design.gif%3Falt%3Dmedia%26token%3D8c364a5a-6fcd-43f7-a52c-5f9668d05193&width=768&dpr=3&quality=100&sign=a395fba8&sv=2) circle-exclamation **Your selected area size must be between 50 and 50,000 km****2****.** Newly generated maps cover the entire selected area. If using maps from before Nov 19th, 2025, make sure that the boundaries of your autonomous mission include at least 2 km of padding to the edges of the selected map area. 3 ### [hashtag](https://docs.theseus.us/gcs-software/vozilla-2.0/maps/creating-a-new-map#generating-your-map) Generating your map Once you've selected your map area and added a name, click the **GENERATE** button on the left of the screen. The map will begin generating in the background. This process may take a few hours, so it is best to generate maps well before flying. [hashtag](https://docs.theseus.us/gcs-software/vozilla-2.0/maps/creating-a-new-map#what-happens-under-the-hood) What happens under the hood? ------------------------------------------------------------------------------------------------------------------------------------------------- Theseus queries its satellite map provider for imagery over the area you selected. Theseus' map matching technology is invariant to seasonal and landscape changes in the imagery. We employ commercial-grade satellite imagery with medium resolution. [hashtag](https://docs.theseus.us/gcs-software/vozilla-2.0/maps/creating-a-new-map#large-and-non-rectangular-maps) Large & Non-rectangular maps ---------------------------------------------------------------------------------------------------------------------------------------------------- Theseus now supports generating maps larger than 2000 km2 as well as maps that fit any desired shape. You can generate a precise map to fit a mission, or select a large area if you plan on mostly flying many routes in the same area. [PreviousMapschevron-left](https://docs.theseus.us/gcs-software/vozilla-2.0/maps) [NextSelecting a mapchevron-right](https://docs.theseus.us/gcs-software/vozilla-2.0/maps/selecting-a-map) Last updated 1 month ago * [Map Generation](https://docs.theseus.us/gcs-software/vozilla-2.0/maps/creating-a-new-map#map-generation) * [Generating a new map](https://docs.theseus.us/gcs-software/vozilla-2.0/maps/creating-a-new-map#generating-a-new-map) * [Create your map boundary](https://docs.theseus.us/gcs-software/vozilla-2.0/maps/creating-a-new-map#create-your-map-boundary) * [Generating your map](https://docs.theseus.us/gcs-software/vozilla-2.0/maps/creating-a-new-map#generating-your-map) * [What happens under the hood?](https://docs.theseus.us/gcs-software/vozilla-2.0/maps/creating-a-new-map#what-happens-under-the-hood) * [Large & Non-rectangular maps](https://docs.theseus.us/gcs-software/vozilla-2.0/maps/creating-a-new-map#large-and-non-rectangular-maps) --- # Calibrating your camera | Theseus Docs ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FNt4oyV0Lv5FB1u184Xwj%252FUntitled%2520design.gif%3Falt%3Dmedia%26token%3D05b79a3b-6dda-44b6-91b0-0ebf6f8db78d&width=768&dpr=3&quality=100&sign=5284eca5&sv=2) The Camera Calibration tool in Vozilla lets you generate and save a calibration file (camera intrinsic) for your camera. A good calibration improves Cyclops tracking accuracy and reduces distortion, especially at the edges of the image. #### [hashtag](https://docs.theseus.us/gcs-software/vozilla-2.0/cameras/calibrating-your-camera#what-you-need) What you need * A 7×8 asymmetric circle grid calibration target, found below. file-image 130KB [circle\_grid\_7x8\_30mm.png](https://3178815652-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhUdZltvGJCfBMBzRuwSC%2Fuploads%2FB7Zs10TffFHuj9sapLg2%2Fcircle_grid_7x8_30mm.png?alt=media&token=cd41d910-b832-41da-822b-e3878c6c30ab) image downloadDownload[arrow-up-right-from-squareOpen](https://3178815652-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhUdZltvGJCfBMBzRuwSC%2Fuploads%2FB7Zs10TffFHuj9sapLg2%2Fcircle_grid_7x8_30mm.png?alt=media&token=cd41d910-b832-41da-822b-e3878c6c30ab) * For thermal cameras, we’ve found it works best to 3D print the grid and place it on a uniform warm surface so the pattern is clearly visible. A step file for this grid can be found below. file-download 310KB [Cutout Thermal Calibration.STEP](https://3178815652-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhUdZltvGJCfBMBzRuwSC%2Fuploads%2FRve8McpU2VgRAnaMHSLj%2FCutout%20Thermal%20Calibration.STEP?alt=media&token=8ed2b62f-62c9-4e8d-8491-dbbb2f4e8217) downloadDownload[arrow-up-right-from-squareOpen](https://3178815652-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhUdZltvGJCfBMBzRuwSC%2Fuploads%2FRve8McpU2VgRAnaMHSLj%2FCutout%20Thermal%20Calibration.STEP?alt=media&token=8ed2b62f-62c9-4e8d-8491-dbbb2f4e8217) circle-info Placing the 3D print against a monitor works well for thermal cameras, providing a consistent warm background. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FktmDtNPnsPtqBtmUACPc%252Fimage.png%3Falt%3Dmedia%26token%3D7c1fc4c5-b319-44c7-9935-030df9505d79&width=300&dpr=3&quality=100&sign=a330b92&sv=2) #### [hashtag](https://docs.theseus.us/gcs-software/vozilla-2.0/cameras/calibrating-your-camera#capture-calibration-images) Capture calibration images 1. Connect your camera and open the Camera Calibration page. 2. Use Capture Frame to record images of the detected grid. 3. Move the target through a variety of: * angles (tilt and rotate) * positions (across the full frame, including corners) * distances (close, medium, far) For best results, capture 20+ frames where the pattern is cleanly detected. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FCq52fwlcHHG63F7Cz38V%252FUntitled%2520design%281%29.gif%3Falt%3Dmedia%26token%3D9a978119-a89f-4c0b-8b64-ed3e9c83390e&width=768&dpr=3&quality=100&sign=3360dd7&sv=2) circle-exclamation If your target is white dots on a black background, enable Inverted Pattern so detection works correctly. #### [hashtag](https://docs.theseus.us/gcs-software/vozilla-2.0/cameras/calibrating-your-camera#compute-and-save) Compute and save After capturing enough frames, Vozilla will prompt you to compute the calibration. Save it using the default name or a descriptive name (helpful if you switch cameras or lenses later). The saved calibration can be reused in the future. #### [hashtag](https://docs.theseus.us/gcs-software/vozilla-2.0/cameras/calibrating-your-camera#verify-quality) Verify quality After saving, use the Distortion toggle (bottom-right of the camera view) to preview the effect of the calibration. A good calibration should reduce warping and keep lines and features looking consistent across the frame. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FqRbPkIasgYQeze2qtCNx%252FUntitled%2520design%283%29.gif%3Falt%3Dmedia%26token%3D31cdcf13-7a2e-47b0-b6a9-30b4b63afc6a&width=768&dpr=3&quality=100&sign=462d0df5&sv=2) #### [hashtag](https://docs.theseus.us/gcs-software/vozilla-2.0/cameras/calibrating-your-camera#advanced-options) Advanced options triangle-exclamation We don’t recommend manually editing calibration values or entering custom intrinsics unless you’re an advanced user. If needed, you can also create a calibration by selecting a starting point from the Camera Presets dropdown. [PreviousCreating a new camera calibrationchevron-left](https://docs.theseus.us/gcs-software/vozilla-2.0/cameras/creating-a-new-camera-calibration) [NextManual camera calibrationchevron-right](https://docs.theseus.us/gcs-software/vozilla-2.0/cameras/manual-camera-calibration) Last updated 1 month ago --- # Installation | Theseus Docs circle-exclamation The Vozilla GCS app is currently only available on **Windows and Linux**. Please contact us if you require support for another OS. [hashtag](https://docs.theseus.us/gcs-software/vozilla-gcs/installation#downloading-vozilla) Downloading Vozilla --------------------------------------------------------------------------------------------------------------------- Vozilla is Theseus' app to configure your devices, generate maps, and manage Cyclops. Follow this link to create an account and download Vozilla. [Download Vozilla](https://dashboard.theseus.us/downloads) [hashtag](https://docs.theseus.us/gcs-software/vozilla-gcs/installation#updates) Updates --------------------------------------------------------------------------------------------- Updates to the Vozilla app are shipped frequently as the app is still in rapid development. For the best experience using the app we always recommend using the most up to date version. The app checks for updates when you launch it, so you will be prompted to update if any new versions are released. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FvUrHTSMm9K6bzBpUk5mf%252Fimage.png%3Falt%3Dmedia%26token%3Da9a13741-974e-4632-885d-e870942d361d&width=768&dpr=3&quality=100&sign=28d25f91&sv=2) [PreviousVozilla GCSchevron-left](https://docs.theseus.us/gcs-software/vozilla-gcs) [NextCreate Accountchevron-right](https://docs.theseus.us/gcs-software/vozilla-gcs/create-account) Last updated 1 month ago * [Downloading Vozilla](https://docs.theseus.us/gcs-software/vozilla-gcs/installation#downloading-vozilla) * [Updates](https://docs.theseus.us/gcs-software/vozilla-gcs/installation#updates) --- # Maps | Theseus Docs The **Maps** tab allows you to **generate and upload maps prior to your operations** with the Micro VPS. This is also where you can **set your home/takeoff position and switch between generated maps.** ![Vozilla Maps tab](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FQ8CzlRyscLPt43uVLh44%252FScreenshot%25202025-12-15%2520093336.png%3Falt%3Dmedia%26token%3D82d16043-3e25-4d99-ad5a-24f7dcf1765a&width=768&dpr=3&quality=100&sign=f61416ac&sv=2) Maps Tab [hashtag](https://docs.theseus.us/gcs-software/vozilla-gcs/maps#why-do-i-need-this) Why do I need this? ------------------------------------------------------------------------------------------------------------ Theseus Micro VPS **requires pre-processed satellite imagery** to perform map matching. Micro VPS can store up to 50,000 sq. km of map area for any mission (e.g. 20 km x 2500 km area). The Maps tab allows you to generate and download these maps before your mission. To learn more about Micro VPS and our map matching technology visit the [Technology page on Theseus' websitearrow-up-right](https://www.theseus.us/technology) . [hashtag](https://docs.theseus.us/gcs-software/vozilla-gcs/maps#maps-information) Maps Information ------------------------------------------------------------------------------------------------------- Map file sizes are ~5-6MB per km2. A 20,000 km2 would be around 100GB. The amount of time it takes to download a map depends on your internet speed. Large maps take a long time to generate and download, so please be sure to do this well in advance of your flights. Maps are generated with a buffer area around them, so the exact size of the map and number of tiles generated will always be more than the selected area. The percentage of the total map that is the buffer area depends on the size and shape of the map. [PreviousQuick Startchevron-left](https://docs.theseus.us/gcs-software/vozilla-gcs/quick-start) [NextCreating a new mapchevron-right](https://docs.theseus.us/gcs-software/vozilla-gcs/maps/creating-a-new-map) Last updated 3 months ago * [Why do I need this?](https://docs.theseus.us/gcs-software/vozilla-gcs/maps#why-do-i-need-this) * [Maps Information](https://docs.theseus.us/gcs-software/vozilla-gcs/maps#maps-information) --- # Selecting a map | Theseus Docs [hashtag](https://docs.theseus.us/gcs-software/vozilla-gcs/maps/selecting-a-map#map-flow) Map Flow ------------------------------------------------------------------------------------------------------- Maps are large files and are generated and stored on the cloud. If you want to put a map on your edge device, you first need to download it from the cloud to your local machine. This can take a long time even with a good internet connection depending on the size of the map. After the map is downloaded, you can upload it to the edge device. It will be stored there until you delete it. You can select any of the maps on the edge device as the active map simply by selecting it in the maps tab of the app. [hashtag](https://docs.theseus.us/gcs-software/vozilla-gcs/maps/selecting-a-map#map-library) Map Library ------------------------------------------------------------------------------------------------------------- All maps linked to your account can be viewed from the Maps Tab on the Vozilla GCS App. Any previously generated map can be downloaded to your device. You will also be able to see and map generations that have failed, as well as archive maps that you are not using. To download a map, click on the name in the Map Library, then click the orange DOWNLOAD button. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252F0nweUj8jLcjoiBpPAlCc%252Fimage.png%3Falt%3Dmedia%26token%3Db7c6c600-f543-4205-b109-96739ca68506&width=768&dpr=3&quality=100&sign=abf5d4d6&sv=2) circle-info Maps are downloaded as a single **.tar.gz** file to be uploaded to your device. [hashtag](https://docs.theseus.us/gcs-software/vozilla-gcs/maps/selecting-a-map#uploading-maps-to-the-edge-device) Uploading maps to the edge device --------------------------------------------------------------------------------------------------------------------------------------------------------- Once a map has been downloaded to your local machine, you can upload it to the edge device. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FqKeYl2orWKBcDNHJ1WjB%252FPeek%25202025-12-18%252014-39.gif%3Falt%3Dmedia%26token%3D7a5b37b7-323f-430c-8dfe-ebf9895c97fb&width=768&dpr=3&quality=100&sign=8c6a26f8&sv=2) After being uploaded, the new map is automatically selected as the active map and the home position is set. [PreviousCreating a new mapchevron-left](https://docs.theseus.us/gcs-software/vozilla-gcs/maps/creating-a-new-map) [NextSetting a home positionchevron-right](https://docs.theseus.us/gcs-software/vozilla-gcs/maps/setting-a-home-position) Last updated 3 months ago * [Map Flow](https://docs.theseus.us/gcs-software/vozilla-gcs/maps/selecting-a-map#map-flow) * [Map Library](https://docs.theseus.us/gcs-software/vozilla-gcs/maps/selecting-a-map#map-library) * [Uploading maps to the edge device](https://docs.theseus.us/gcs-software/vozilla-gcs/maps/selecting-a-map#uploading-maps-to-the-edge-device) --- # Reviewing a flight | Theseus Docs Select a flight to display that flight on the map. Both GPS and position estimate tracks are displayed if your UAV has both. ### [hashtag](https://docs.theseus.us/gcs-software/vozilla-2.0/flights/reviewing-a-flight#metrics-tab) Metrics Tab The **Metrics** tab shows the median accuracy of the VPS relative to the GPS and the coordinates of both positions. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FIWkU20Y21bBprq8Wuder%252Fimage.png%3Falt%3Dmedia%26token%3D46568890-a175-4544-902f-a1f5df8a28c7&width=768&dpr=3&quality=100&sign=54004160&sv=2) Metrics tab The **Metrics** tab provides tools to generate an MCAP file for flight visualizations. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FHp3zNcJ1SaB4yBdhRswW%252Fimage.png%3Falt%3Dmedia%26token%3D8392aab8-b5ae-401f-bd9b-fba36a0198dc&width=768&dpr=3&quality=100&sign=3178f772&sv=2) circle-info We recommend [Foxglove Studioarrow-up-right](https://foxglove.dev/download) as your MCAP viewer. ### [hashtag](https://docs.theseus.us/gcs-software/vozilla-2.0/flights/reviewing-a-flight#notes-tab) Notes Tab The **Notes** tab allows you to add observations and comments to your flight logs for later reference. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FhDlRdekhzCfcvIW5Eeto%252Fimage.png%3Falt%3Dmedia%26token%3D6dda29bf-d385-4e96-b017-9eaa44f5721d&width=768&dpr=3&quality=100&sign=69a3a9a9&sv=2) Notes tab [PreviousFlightschevron-left](https://docs.theseus.us/gcs-software/vozilla-2.0/flights) [NextSettingschevron-right](https://docs.theseus.us/gcs-software/vozilla-2.0/settings) Last updated 1 month ago * [Metrics Tab](https://docs.theseus.us/gcs-software/vozilla-2.0/flights/reviewing-a-flight#metrics-tab) * [Notes Tab](https://docs.theseus.us/gcs-software/vozilla-2.0/flights/reviewing-a-flight#notes-tab) --- # Selecting a map | Theseus Docs [hashtag](https://docs.theseus.us/gcs-software/vozilla-2.0/maps/selecting-a-map#map-flow) Map Flow ------------------------------------------------------------------------------------------------------- Maps are large files and are generated and stored on the cloud. If you want to put a map on your edge device, you first need to download it from the cloud to your local machine. This can take a long time even with a good internet connection depending on the size of the map. After the map is downloaded, you can upload it to the edge device. It will be stored there until you delete it. You can select any of the maps on the edge device as the active map simply by selecting it in the maps tab of the app. [hashtag](https://docs.theseus.us/gcs-software/vozilla-2.0/maps/selecting-a-map#map-library) Map Library ------------------------------------------------------------------------------------------------------------- All maps linked to your account can be viewed from the Maps panel on the Vozilla GCS App. Any previously generated map can be downloaded to your device. You will also be able to see and map generations that have failed, as well as archive maps that you are not using. To download a map onto your device. First navigate to the maps panel. This can be done from anywhere using the spotlight search ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FNmeWzk6qUXQBTcA5q0SR%252FUntitled%2520design%282%29.gif%3Falt%3Dmedia%26token%3Dda1545fc-e5dd-4c14-ae7c-8f963289bdbf&width=768&dpr=3&quality=100&sign=23145bd9&sv=2) Then, Download the map using the download button ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252Fdqzr0gMP6lRwZEzWZxNo%252Fimage.png%3Falt%3Dmedia%26token%3D10a3d3ff-31cf-456d-afec-669c3408123e&width=768&dpr=3&quality=100&sign=5307b8c6&sv=2) circle-info Maps are downloaded as a single **.tar.gz** file to be uploaded to your device. [hashtag](https://docs.theseus.us/gcs-software/vozilla-2.0/maps/selecting-a-map#uploading-maps-to-the-edge-device) Uploading maps to the edge device --------------------------------------------------------------------------------------------------------------------------------------------------------- Once a map has been downloaded to your local machine, you can upload it to the edge device. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FqKeYl2orWKBcDNHJ1WjB%252FPeek%25202025-12-18%252014-39.gif%3Falt%3Dmedia%26token%3D7a5b37b7-323f-430c-8dfe-ebf9895c97fb&width=768&dpr=3&quality=100&sign=8c6a26f8&sv=2) After being uploaded, the new map is automatically selected as the active map and the home position is set. [PreviousCreating a new mapchevron-left](https://docs.theseus.us/gcs-software/vozilla-2.0/maps/creating-a-new-map) [NextSetting a home positionchevron-right](https://docs.theseus.us/gcs-software/vozilla-2.0/maps/setting-a-home-position) Last updated 1 month ago * [Map Flow](https://docs.theseus.us/gcs-software/vozilla-2.0/maps/selecting-a-map#map-flow) * [Map Library](https://docs.theseus.us/gcs-software/vozilla-2.0/maps/selecting-a-map#map-library) * [Uploading maps to the edge device](https://docs.theseus.us/gcs-software/vozilla-2.0/maps/selecting-a-map#uploading-maps-to-the-edge-device) --- # Organizations | Theseus Docs circle-info This feature is currently only available in dev versions of Vozilla Theseus organizations allow you to share maps you generate with people on your team, and allow your team to use a single map quota across many accounts. Maps shared with an org subtract from the [owner](https://docs.theseus.us/gcs-software/vozilla-2.0/settings/organizations#organization-structure) 's map quota rather than from the account that created the map. ### [hashtag](https://docs.theseus.us/gcs-software/vozilla-2.0/settings/organizations#creating-an-org) Creating an org Creating an org can be done either through Vozilla or through [dashboard.theseus.usarrow-up-right](https://dashboard.theseus.us/) . The process in both is the same. Find the organizations tab in the Vozilla settings and create a new org. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FudxKHO9o6id3ar8lUrh1%252FPeek%25202026-02-18%252011-07.gif%3Falt%3Dmedia%26token%3Dc23fbd8a-2be6-4cc6-8c59-84f1d3be56dd&width=768&dpr=3&quality=100&sign=d0498c5d&sv=2) You can accept invites from others from the same page. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FTT0FUDDwAeT5q2h9GVHH%252FScreenshot%2520from%25202026-02-18%252011-12-42.png%3Falt%3Dmedia%26token%3Da32a743b-2df0-4144-9546-1b57d41e4a74&width=768&dpr=3&quality=100&sign=c3d39baf&sv=2) ### [hashtag](https://docs.theseus.us/gcs-software/vozilla-2.0/settings/organizations#organization-structure) Organization Structure Roles include: * **Owner:** person who created the org * **Member:** anyone that has been invited to the org by the owner and has accepted the invitation Owners have full control over who is a part of an org and can remove members at from an org. When a user is removed from an org, the maps they generated as a part of the org are reverted to personal maps. ### [hashtag](https://docs.theseus.us/gcs-software/vozilla-2.0/settings/organizations#viewing-shared-maps) Viewing Shared maps ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252F6Q7fzghPdMvkQANeTAH8%252FPeek%25202026-02-18%252012-27.gif%3Falt%3Dmedia%26token%3Da6b160a5-4143-440a-8576-5195a8a1d93c&width=768&dpr=3&quality=100&sign=6380d9e1&sv=2) [PreviousSettingschevron-left](https://docs.theseus.us/gcs-software/vozilla-2.0/settings) [NextCreate an Accountchevron-right](https://docs.theseus.us/gcs-software/vozilla-2.0/create-an-account) Last updated 1 month ago * [Creating an org](https://docs.theseus.us/gcs-software/vozilla-2.0/settings/organizations#creating-an-org) * [Organization Structure](https://docs.theseus.us/gcs-software/vozilla-2.0/settings/organizations#organization-structure) * [Viewing Shared maps](https://docs.theseus.us/gcs-software/vozilla-2.0/settings/organizations#viewing-shared-maps) --- # Setting a home position | Theseus Docs Each map has a corresponding home position. This position represents the takeoff location of your UAV, and is the location where the Micro VPS will initialize. It is represented by a circle within the map boundary on the map screen. To set your home position, either drag the circle to a desired location within the map boundary or enter coordinates in the _Home Position_ field. Then click the **SAVE** button to set this as the new home position. Saving the home position automatically restarts the MVPS service to load in the new starting position. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FR5nfCfT0ZexYBf2vbgns%252Fimage.png%3Falt%3Dmedia%26token%3De652480c-8125-4a68-ba39-2a8d28154fd7&width=768&dpr=3&quality=100&sign=d7df4d21&sv=2) ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FfXBlEaVrgg3SeGxza6Bw%252FPeek%25202025-12-18%252014-49.gif%3Falt%3Dmedia%26token%3D6c7bd00f-bce5-407b-8802-28fbd271db04&width=768&dpr=3&quality=100&sign=21162d29&sv=2) ### [hashtag](https://docs.theseus.us/gcs-software/vozilla-gcs/maps/setting-a-home-position#uploading-to-the-edge-device) Uploading to the edge device Once your map has been generated, click the download button and then upload to VPS. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FRkqjHvgVbAMT0gSIEj8t%252FScreencastfrom01-14-2026125315PM-ezgif.com-video-to-gif-converter.gif%3Falt%3Dmedia%26token%3D85513aa7-cd42-4c08-b901-754c1a3928b4&width=768&dpr=3&quality=100&sign=35fd1853&sv=2) [PreviousSelecting a mapchevron-left](https://docs.theseus.us/gcs-software/vozilla-gcs/maps/selecting-a-map) [NextFlightschevron-right](https://docs.theseus.us/gcs-software/vozilla-gcs/flights) Last updated 1 month ago --- # MAVLink | Theseus Docs The MAVLink Tab is where you can connect your preferred GCS software such as Mission Planner or QGroundControl to the Vozilla app through a MAVProxy connection. This allows you to see messages and data from your UAV while it is in the air. You can view the MAVProxy console, edit parameters, view MAVLink messages, and see a real-time map of ArduPilot's GPS and GPS2 positions. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FyNL16w6Gqm0QPCV3xspl%252Fimage.png%3Falt%3Dmedia%26token%3D9b012397-80c6-4791-82e4-103e5d1163d9&width=768&dpr=3&quality=100&sign=a91b126c&sv=2) [PreviousManaging flight logschevron-left](https://docs.theseus.us/gcs-software/vozilla-gcs/flights/managing-flight-logs) [NextSystemchevron-right](https://docs.theseus.us/gcs-software/vozilla-gcs/system) Last updated 3 months ago --- # Flights | Theseus Docs The **Flights** sub page stores logs from all of your flights using a theseus system. Here, you can analyze the performance of the system, as well as compare the VPS position to GPS, if applicable. You can also use playback tools to review your flights. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FM9FCNiIphByS6MGQHK7l%252Fimage.png%3Falt%3Dmedia%26token%3D1b518a31-c5e4-4a38-85f5-835a6f672f37&width=768&dpr=3&quality=100&sign=38efd85&sv=2) Flights subpage [hashtag](https://docs.theseus.us/gcs-software/vozilla-2.0/flights#syncing-flights) Syncing Flights -------------------------------------------------------------------------------------------------------- Vozilla automatically synchronizes all logs from your device. This enables you to review logs offline and share logs with our team for further analysis. We read the `MAV_LANDED_STATE` values from the autopilot throughout the flight to determine the state of the aircraft. Vozilla looks for transitions from `ON_GROUND` to `IN_AIR` states to determine whether logs synced off the device correspond to a real flight or a recording while on the bench. circle-info After a flight, plug your device into your laptop running Vozilla to auto sync flight logs. [hashtag](https://docs.theseus.us/gcs-software/vozilla-2.0/flights#evaluating-performance) Evaluating Performance ---------------------------------------------------------------------------------------------------------------------- Theseus software running on the edge automatically pulls GPS from GPS 1 on ArduPilot when it is available. These GPS positions get logged alongside our estimated position. Once your flights are synchronized on Vozilla, you can review performance by clicking on flights listed under the Flights panel. Several tracks will appear on the map: * Gray track shows GPS positions * Dots show map matching points, color indicates scales with accuracy of the estimated position (red for lower accuracy, green for higher accuracy) The accuracy figure shown under the Metrics tab is the median accuracy between GPS and map matching throughout the flight. [PreviousManual camera calibrationchevron-left](https://docs.theseus.us/gcs-software/vozilla-2.0/cameras/manual-camera-calibration) [NextReviewing a flightchevron-right](https://docs.theseus.us/gcs-software/vozilla-2.0/flights/reviewing-a-flight) Last updated 1 month ago * [Syncing Flights](https://docs.theseus.us/gcs-software/vozilla-2.0/flights#syncing-flights) * [Evaluating Performance](https://docs.theseus.us/gcs-software/vozilla-2.0/flights#evaluating-performance) --- # Lockdown Mode | Theseus Docs Activating lockdown mode increases the security of your system by enabling encryption of all SDK logs and sensor data, as well as displacing home position information to a volatile disk partition, such that any reboot would cause the data to be erased. To _activate lockdown mode_, navigate to the Device settings page on Vozilla: ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FNpjSbLCndH3Dy4hwhJiK%252Flockdown_activation_w_reboot.gif%3Falt%3Dmedia%26token%3Dd8d47779-234f-4955-b0c0-48d9eac9109c&width=768&dpr=3&quality=100&sign=c1aabe46&sv=2) After activation, your device will reboot automatically. SDK logs and sensor data for all new sessions will now be encrypted. Vozilla API and journal logs remain in plaintext, however, we do not log any sensitive information over these channels in lockdown mode (e.g., home position, coordinates, etc.) circle-info You need to reset the home position after each reboot once you activate lockdown mode. circle-exclamation Lockdown mode encrypts SDK logs and sensor data. It does not encrypt the raw map data. [hashtag](https://docs.theseus.us/gcs-software/vozilla-2.0/lockdown-mode#audit-your-device) Audit your device ------------------------------------------------------------------------------------------------------------------ Once you've activated lockdown mode, run a security audit to check whether your device contains logs with sensitive information exposed in clear text: ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FnezauuZljTxPnPx6bO3V%252Flockdown_scan_v2.gif%3Falt%3Dmedia%26token%3Df586cdc9-b7c3-4b5f-8072-80867a115349&width=768&dpr=3&quality=100&sign=fb42d2c8&sv=2) This security audit checks key log locations on your device for plain text log files and common sensitive information patterns, such as: * Journald logs * Vozilla API logs * Cyclops logs * Sensor recordings If you see reported failures, make sure to address them to remove sensitive information from your device. circle-exclamation Activating lockdown mode does not delete previous logs or recordings on your device. [hashtag](https://docs.theseus.us/gcs-software/vozilla-2.0/lockdown-mode#delete-offending-logs) Delete offending logs -------------------------------------------------------------------------------------------------------------------------- After running an audit you may choose to delete plaintext logs to ensure no sensitive information remains on your device. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252F10pSH3Bk9frdE22ODIP0%252Flockdown_delete_logs_v2.gif%3Falt%3Dmedia%26token%3Ddc91980f-9938-4834-b380-d345d1bf840c&width=768&dpr=3&quality=100&sign=b5a8bd61&sv=2) circle-info Updating the firmware causes the lockdown mode to reset. [PreviousCreate an Accountchevron-left](https://docs.theseus.us/gcs-software/vozilla-2.0/create-an-account) [NextVozilla GCSchevron-right](https://docs.theseus.us/gcs-software/vozilla-gcs) Last updated 13 days ago * [Audit your device](https://docs.theseus.us/gcs-software/vozilla-2.0/lockdown-mode#audit-your-device) * [Delete offending logs](https://docs.theseus.us/gcs-software/vozilla-2.0/lockdown-mode#delete-offending-logs) --- # Creating a new map | Theseus Docs [hashtag](https://docs.theseus.us/gcs-software/vozilla-gcs/maps/creating-a-new-map#map-generation) Map Generation ---------------------------------------------------------------------------------------------------------------------- To generate maps follow these steps on the Maps tab: 1. Click the **New Map** button at the top of your Map Library 2. Create your map boundary circle-info You can expect the map generation to take ~1 hour per 1000 km2. The completed maps take up ~1GB per 200 km2 so downloading a large map may take a long time over a slow internet connection. [hashtag](https://docs.theseus.us/gcs-software/vozilla-gcs/maps/creating-a-new-map#id-1.-generating-a-new-map) 1\. Generating a new map -------------------------------------------------------------------------------------------------------------------------------------------- Click the **NEW MAP** button at the top of your Map Library, then navigate to your desired flight area. You can do this by entering either the name of your location or the WGS84 coordinates in the search bar. Hit _enter_ and the map will pan to your location. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FXmg8WtMaCLRHVBVyOWyN%252Fimage.png%3Falt%3Dmedia%26token%3D94469e32-9763-496f-b275-2d021d365a76&width=768&dpr=3&quality=100&sign=bc7bbfd5&sv=2) [hashtag](https://docs.theseus.us/gcs-software/vozilla-gcs/maps/creating-a-new-map#id-2.-create-your-map-boundary) 2\. Create your map boundary ---------------------------------------------------------------------------------------------------------------------------------------------------- Draw the polygonal map boundary around your flight area. Ensure the boundary covers the entire flight area for your mission, as your system cannot localize outside of the map. Add a distinct name for your map in the field provided. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252Fc0ZMqMtr3BwS782TXuNt%252FScreencastfrom01-14-2026124221PM-ezgif.com-video-to-gif-converter.gif%3Falt%3Dmedia%26token%3De3174ac9-2fbe-4bc9-825e-d8381a1d7ca2&width=768&dpr=3&quality=100&sign=7100365f&sv=2) circle-exclamation **Your selected area size must be between 50 and 50,000 km****2****.** Newly generated maps cover the entire selected area. If using maps from before Nov 19th, 2025, make sure that the boundaries of your autonomous mission include at least 2 km of padding to the edges of the selected map area. [hashtag](https://docs.theseus.us/gcs-software/vozilla-gcs/maps/creating-a-new-map#id-3.-generating-your-map) 3\. Generating your map ------------------------------------------------------------------------------------------------------------------------------------------ Once you've selected your map area and added a name, click the **GENERATE** button on the left of the screen. The map will begin generating in the background. This process may take a few hours, so it is best to generate maps well before flying. [hashtag](https://docs.theseus.us/gcs-software/vozilla-gcs/maps/creating-a-new-map#what-happens-under-the-hood) What happens under the hood? ------------------------------------------------------------------------------------------------------------------------------------------------- Theseus queries its satellite map provider for imagery over the area you selected. Theseus' map matching technology is invariant to seasonal and landscape changes in the imagery. We employ commercial-grade satellite imagery with medium resolution. [hashtag](https://docs.theseus.us/gcs-software/vozilla-gcs/maps/creating-a-new-map#large-and-non-rectangular-maps) Large & Non-rectangular maps ---------------------------------------------------------------------------------------------------------------------------------------------------- Theseus now supports generating maps larger than 2000 km2 as well as maps that fit any desired shape. You can generate a precise map to fit a mission, or select a large area if you plan on mostly flying many routes in the same area. [PreviousMapschevron-left](https://docs.theseus.us/gcs-software/vozilla-gcs/maps) [NextSelecting a mapchevron-right](https://docs.theseus.us/gcs-software/vozilla-gcs/maps/selecting-a-map) Last updated 1 month ago * [Map Generation](https://docs.theseus.us/gcs-software/vozilla-gcs/maps/creating-a-new-map#map-generation) * [1\. Generating a new map](https://docs.theseus.us/gcs-software/vozilla-gcs/maps/creating-a-new-map#id-1.-generating-a-new-map) * [2\. Create your map boundary](https://docs.theseus.us/gcs-software/vozilla-gcs/maps/creating-a-new-map#id-2.-create-your-map-boundary) * [3\. Generating your map](https://docs.theseus.us/gcs-software/vozilla-gcs/maps/creating-a-new-map#id-3.-generating-your-map) * [What happens under the hood?](https://docs.theseus.us/gcs-software/vozilla-gcs/maps/creating-a-new-map#what-happens-under-the-hood) * [Large & Non-rectangular maps](https://docs.theseus.us/gcs-software/vozilla-gcs/maps/creating-a-new-map#large-and-non-rectangular-maps) --- # Flights | Theseus Docs The **Flights** tab stores logs from all of your flights using the Micro VPS. Here, you can analyze the performance of the system, as well as compare the VPS position to GPS, if applicable. You can also use playback tools to review your flights. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FxRL2Z6diQJXD08X809UL%252Fflights%2520tab.png%3Falt%3Dmedia%26token%3D1b04e455-d313-47ef-bb01-c557df6530ae&width=768&dpr=3&quality=100&sign=5dc36d48&sv=2) Flights Tab [hashtag](https://docs.theseus.us/gcs-software/vozilla-gcs/flights#syncing-flights) Syncing Flights -------------------------------------------------------------------------------------------------------- Vozilla automatically synchronizes all logs from your device. This enables you to review logs offline and share logs with our team for further analysis. We read the `MAV_LANDED_STATE` values from the autopilot throughout the flight to determine the state of the aircraft. Vozilla looks for transitions from `ON_GROUND` to `IN_AIR` states to determine whether logs synced off the device correspond to a real flight or a recording while on the bench. circle-info After a flight, plug your device into your laptop running Vozilla to auto sync flight logs. [hashtag](https://docs.theseus.us/gcs-software/vozilla-gcs/flights#evaluating-performance) Evaluating Performance ---------------------------------------------------------------------------------------------------------------------- Theseus software running on the edge automatically pulls GPS from GPS 1 on ArduPilot when it is available. These GPS positions get logged alongside our estimated position. Once your flights are synchronized on Vozilla, you can review performance by clicking on flights listed under the Flights panel. Several tracks will appear on the map: * Gray track shows GPS positions * Dots show map matching points, color indicates scales with accuracy of the estimated position (red for lower accuracy, green for higher accuracy) The accuracy figure shown under the Metrics tab is the median accuracy between GPS and map matching throughout the flight. [PreviousSetting a home positionchevron-left](https://docs.theseus.us/gcs-software/vozilla-gcs/maps/setting-a-home-position) [NextReviewing a flightchevron-right](https://docs.theseus.us/gcs-software/vozilla-gcs/flights/reviewing-a-flight) Last updated 1 month ago * [Syncing Flights](https://docs.theseus.us/gcs-software/vozilla-gcs/flights#syncing-flights) * [Evaluating Performance](https://docs.theseus.us/gcs-software/vozilla-gcs/flights#evaluating-performance) --- # Installation | Theseus Docs circle-exclamation The Theseus GCS app is currently only available on **Windows and Linux**. Please contact us if you require support for another OS. Go to [https://maps.theseus.us/latest-releasearrow-up-right](https://maps.theseus.us/latest-release) to download the latest version of the Theseus GCS app. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FMzdgz24NTLrDjwA46Jmj%252FScreenshot%25202025-09-24%2520at%252011.39.32%25E2%2580%25AFAM.png%3Falt%3Dmedia%26token%3Dc51ae559-a626-441d-b5f6-6687a406dae6&width=768&dpr=3&quality=100&sign=e899c98d&sv=2) [PreviousTheseus GCS Appchevron-left](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app) [NextQuick Startchevron-right](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/quick-start) Last updated 3 months ago --- # Legacy Software | Theseus Docs [Theseus GCS Appchevron-right](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app) [Theseus Maps Appchevron-right](https://docs.theseus.us/gcs-software/legacy-software/theseus-maps-app) [PreviousVPS Firmware Updateschevron-left](https://docs.theseus.us/gcs-software/vozilla-gcs/feature-list/vps-firmware-updates) [NextTheseus GCS Appchevron-right](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app) Last updated 3 months ago --- # Settings | Theseus Docs The settings page contains all relevant device, account and mav settings that may need to be configured off vozilla. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FaVXXTklOfPBVQis2SB6U%252Fimage.png%3Falt%3Dmedia%26token%3De030de89-e29d-4b73-b38c-fa7707d17562&width=768&dpr=3&quality=100&sign=991bbab5&sv=2) 1 ### [hashtag](https://docs.theseus.us/gcs-software/vozilla-2.0/settings#setting-search) Setting Search This search bar can be used to search for various setttings and information cards that are available on the settings page. 2 ### [hashtag](https://docs.theseus.us/gcs-software/vozilla-2.0/settings#setting-groups) Setting Groups All the setting groups can be found on the left side of the settings page. 3 ### [hashtag](https://docs.theseus.us/gcs-software/vozilla-2.0/settings#setting-content) Setting Content Each setting groups displays various content for the configurable settings and information available. This is where you will find all the tools needed to configure your vozilla application, manage [Organizations](https://docs.theseus.us/gcs-software/vozilla-2.0/settings/organizations) , configure device settings, and configure your mav settings. [PreviousReviewing a flightchevron-left](https://docs.theseus.us/gcs-software/vozilla-2.0/flights/reviewing-a-flight) [NextOrganizationschevron-right](https://docs.theseus.us/gcs-software/vozilla-2.0/settings/organizations) Last updated 1 month ago * [Setting Search](https://docs.theseus.us/gcs-software/vozilla-2.0/settings#setting-search) * [Setting Groups](https://docs.theseus.us/gcs-software/vozilla-2.0/settings#setting-groups) * [Setting Content](https://docs.theseus.us/gcs-software/vozilla-2.0/settings#setting-content) --- # Reviewing a flight | Theseus Docs Select a flight to display that flight on the map. Both GPS and position estimate tracks are displayed if your UAV has both. Pressing the play button below the map replays the flight so you can track the accuracy at any point of the flight. You can also drag the slider along the playback bar to scrub through the flight. The **Metrics** tab shows the median accuracy of the VPS relative to the GPS and the coordinates of both positions. Moving the slider on the playback bar to any given point during the flight will display the accuracy and coordinates at that point in the flight. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FxRL2Z6diQJXD08X809UL%252Fflights%2520tab.png%3Falt%3Dmedia%26token%3D1b04e455-d313-47ef-bb01-c557df6530ae&width=768&dpr=3&quality=100&sign=5dc36d48&sv=2) Metrics Tab The **Notes** tab allows you to add observations and comments to your flight logs for later reference. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FJ01RkAHP93dSXobFCobU%252Fnotes%2520tab.png%3Falt%3Dmedia%26token%3Dbb7f98fc-a0be-4e80-a2c2-cf27f69ca3f6&width=768&dpr=3&quality=100&sign=6e82a414&sv=2) Notes Tab [PreviousFlightschevron-left](https://docs.theseus.us/gcs-software/vozilla-gcs/flights) [NextManaging flight logschevron-right](https://docs.theseus.us/gcs-software/vozilla-gcs/flights/managing-flight-logs) Last updated 3 months ago --- # Managing flight logs | Theseus Docs [PreviousReviewing a flightchevron-left](https://docs.theseus.us/gcs-software/vozilla-gcs/flights/reviewing-a-flight) [NextMAVLinkchevron-right](https://docs.theseus.us/gcs-software/vozilla-gcs/mavlink) --- # Theseus Micro VPS | Theseus Docs Theseus Micro Visual Positioning System (VPS) is camera-based system enabling daytime visual navigation for drones in GPS-denied environments. ![Micro VPS](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FuHDoMD8ITtS1zd4OQJRg%252Fmicrovpsdrawing.png%3Falt%3Dmedia%26token%3D58805aff-531d-45d7-9914-7b1e40c4c142&width=768&dpr=3&quality=100&sign=aa9b35ea&sv=2) Micro VPS ![Micro VPS All-In-One (AIO)](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252Fk8S8u4Bkoo2YJAzybVzf%252Faio%2520drawing.png%3Falt%3Dmedia%26token%3Db5d026b1-e555-41ac-9f04-20b6a8ed5db1&width=768&dpr=3&quality=100&sign=5de8cf58&sv=2) Micro VPS All-in-One (AIO) [hashtag](https://docs.theseus.us/micro-vps/theseus-micro-vps#whats-in-the-box) What's in the box ------------------------------------------------------------------------------------------------------ The Micro VPS package includes the following items: * Sensor module * Compute module * UART serial cables (x2) * USB-C sensor power cable (x1) * XT30-F compute power cable (x1) * 1/4"-20 mounting screws for sensor (x2) The Micro VPS **AIO** package includes the following items: * All-in-One sensor + compute module with picatinny rail mount * UART serial cables (x2) * XT30-F power cable (x1) * M4x35mm SHCS for rail mount (x2 pre-installed) ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FASy70tmOuBtdieXpUTG9%252FIMG_0950.jpeg%3Falt%3Dmedia%26token%3Da650d99b-528a-45e7-ab9c-a9e943b91c6c&width=768&dpr=3&quality=100&sign=2fa5701d&sv=2) AIO package contents file-pdf 10MB [Micro VPS Data Sheet.pdf](https://3178815652-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhUdZltvGJCfBMBzRuwSC%2Fuploads%2F7DvZlSscpXLHwSyCZVwA%2FMicro%20VPS%20Data%20Sheet.pdf?alt=media&token=0daf1653-7d0c-4d8f-929e-3aa7542c8059) PDF downloadDownload[arrow-up-right-from-squareOpen](https://3178815652-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhUdZltvGJCfBMBzRuwSC%2Fuploads%2F7DvZlSscpXLHwSyCZVwA%2FMicro%20VPS%20Data%20Sheet.pdf?alt=media&token=0daf1653-7d0c-4d8f-929e-3aa7542c8059) file-pdf 4MB [Micro VPS AIO datasheet.pdf](https://3178815652-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhUdZltvGJCfBMBzRuwSC%2Fuploads%2FkkJYp7vLsCh2ENZnt9u4%2FMicro%20VPS%20AIO%20datasheet.pdf?alt=media&token=6c917e90-e7ba-4ca0-b3cd-2b4c9e6ec895) PDF downloadDownload[arrow-up-right-from-squareOpen](https://3178815652-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhUdZltvGJCfBMBzRuwSC%2Fuploads%2FkkJYp7vLsCh2ENZnt9u4%2FMicro%20VPS%20AIO%20datasheet.pdf?alt=media&token=6c917e90-e7ba-4ca0-b3cd-2b4c9e6ec895) [PreviousPre-Requisiteschevron-left](https://docs.theseus.us/micro-vps/pre-requisites) [NextVehicle Integrationchevron-right](https://docs.theseus.us/micro-vps/vehicle-integration) Last updated 3 months ago --- # Quick Start | Theseus Docs Vozilla GCS app allows you to manage your Micro VPS device. In this section, we go over **connecting your computer** to the Micro VPS and taking a look at the **core features** of the Vozilla GCS app. Before starting make sure that you have the following items: * Micro VPS device, powered * Ethernet cable * Windows computer * Vozilla GCS app installed [hashtag](https://docs.theseus.us/gcs-software/vozilla-gcs/quick-start#connecting-to-micro-vps) Connecting to Micro VPS ---------------------------------------------------------------------------------------------------------------------------- circle-info Make sure you installed the Vozilla GCS app on your Windows/Linux laptop following [Installation](https://docs.theseus.us/gcs-software/vozilla-gcs/installation) before proceeding. Vozilla GCS app supports connectivity over Ethernet and MAVLink to the Micro VPS. You will need to **edit your computer Ethernet network interface** configuration in order to establish a connection to the Micro VPS. By default we have the edge device configured to a static ip address of `192.168.218.100`. If you change this default address, your network interface settings will need to match the subnet of the different ip address. If using the default ip, follow the instructions below to configure your computer to communicate with the Micro VPS over Ethernet. Windows Linux Here are the IP settings for the network interface: * IP address: 192.168.218.10 * Subnet mask: 255.255.255.0 * Default gateway: 192.168.218.1 On your Windows computer: * Open Windows Settings (Windows key + I) * Click on "Network & Internet" * Click on "Ethernet" * Click on your network adapter * Under "IP assignment", click "Edit" * Select "Manual" and turn on IPv4 * Enter the IP settings shown above * Click "Save" Here are the IP settings for the network interface: * IP address: 192.168.218.10 * Subnet mask: 255.255.255.0 * Default gateway: 192.168.218.1 Create a new Ethernet network interface with these IPv4 settings in your settings app. ### [hashtag](https://docs.theseus.us/gcs-software/vozilla-gcs/quick-start#using-another-ip-address-for-you-edge-device) Using another ip address for you edge device If your system requires a specific ip address for the compute that differs from the default address of `192.168.218.100`, you can still connect to it with Vozilla. When you open the app, navigate to the system tab and change the connection url to the correct ip address or hostname. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252F8zwHBb2TDRMQCK3FA3XP%252FScreencastfrom01-14-2026123919PM-ezgif.com-video-to-gif-converter.gif%3Falt%3Dmedia%26token%3D153706c2-dff5-42a4-a50c-c78bab59eef2&width=768&dpr=3&quality=100&sign=516f952d&sv=2) ### [hashtag](https://docs.theseus.us/gcs-software/vozilla-gcs/quick-start#connecting-with-mavlink) Connecting with MAVLink Unless you have your system setup to route ippackets through your radio connection, when in the air you won't be able to access the edge device's REST server. Essential functions like uploading maps, setting the home position, and updating firmware cannot be done over MAVLink. Vozilla can still be used to display important information about the system through the [MAVLink](https://docs.theseus.us/gcs-software/vozilla-gcs/mavlink) feature. circle-exclamation At this stage, you should be able to open the Vozilla GCS app and connect to your Micro VPS from your laptop over Ethernet. [hashtag](https://docs.theseus.us/gcs-software/vozilla-gcs/quick-start#overview) Overview ---------------------------------------------------------------------------------------------- Below is a breakdown of the key features of the Vozilla GCS app top menu. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FsKfyg39s6ChllRxzTQgZ%252FScreenshot%25202025-12-15%2520103819.png%3Falt%3Dmedia%26token%3De47d237f-26a0-4699-bf68-4acfbac3b771&width=768&dpr=3&quality=100&sign=7d9a590c&sv=2) ### [hashtag](https://docs.theseus.us/gcs-software/vozilla-gcs/quick-start#tabs-1) Tabs (1) The tabs on the top left of the app allows you to access each feature of the Vozilla GCS app. ### [hashtag](https://docs.theseus.us/gcs-software/vozilla-gcs/quick-start#vehicle-configuration-tool-2) Vehicle Configuration tool (2) This allows you to select your vehicle configuration from the drop down menu or create your own by clicking on the edit button. [Vehicle Configuration](https://docs.theseus.us/gcs-software/vozilla-gcs/feature-list/vehicle-configuration) ### [hashtag](https://docs.theseus.us/gcs-software/vozilla-gcs/quick-start#recording-toggle-3) Recording toggle (3) Toggle recording feature of the VPS. [Sensor Recordings](https://docs.theseus.us/gcs-software/vozilla-gcs/system#sensor-recordings) ### [hashtag](https://docs.theseus.us/gcs-software/vozilla-gcs/quick-start#account-4) Account (4) Shows account information and sign out option. [PreviousCreate Accountchevron-left](https://docs.theseus.us/gcs-software/vozilla-gcs/create-account) [NextMapschevron-right](https://docs.theseus.us/gcs-software/vozilla-gcs/maps) Last updated 1 month ago * [Connecting to Micro VPS](https://docs.theseus.us/gcs-software/vozilla-gcs/quick-start#connecting-to-micro-vps) * [Using another ip address for you edge device](https://docs.theseus.us/gcs-software/vozilla-gcs/quick-start#using-another-ip-address-for-you-edge-device) * [Connecting with MAVLink](https://docs.theseus.us/gcs-software/vozilla-gcs/quick-start#connecting-with-mavlink) * [Overview](https://docs.theseus.us/gcs-software/vozilla-gcs/quick-start#overview) * [Tabs (1)](https://docs.theseus.us/gcs-software/vozilla-gcs/quick-start#tabs-1) * [Vehicle Configuration tool (2)](https://docs.theseus.us/gcs-software/vozilla-gcs/quick-start#vehicle-configuration-tool-2) * [Recording toggle (3)](https://docs.theseus.us/gcs-software/vozilla-gcs/quick-start#recording-toggle-3) * [Account (4)](https://docs.theseus.us/gcs-software/vozilla-gcs/quick-start#account-4) --- # Vehicle Integration | Theseus Docs [Mechanical Installationchevron-right](https://docs.theseus.us/micro-vps/vehicle-integration/mechanical-installation) [Flight Controllerchevron-right](https://docs.theseus.us/micro-vps/vehicle-integration/flight-controller) [Powerchevron-right](https://docs.theseus.us/micro-vps/vehicle-integration/power) [PreviousTheseus Micro VPSchevron-left](https://docs.theseus.us/micro-vps/theseus-micro-vps) [NextMechanical Installationchevron-right](https://docs.theseus.us/micro-vps/vehicle-integration/mechanical-installation) Last updated 1 month ago --- # Flight Controller | Theseus Docs The Micro VPS requires **one (1) UART port on the flight controller** to communicate with ArduPilot. 4-pin to 6-pin GH-JST serial cables are provided in the box. For the Cube Orange+ flight controller, this means the **TELEM 1, TELEM 2, and GPS 2 UART ports** are ready to interface with the Micro VPS. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252F9N2xEwUC7bqlwb3ffSca%252FScreenshot2023-06-14at9.25.34AM_800x.png%3Falt%3Dmedia%26token%3Dca0cbf82-93d9-420e-859e-872661074240&width=768&dpr=3&quality=100&sign=340a2129&sv=2) Using the provided serial cables, connect the 4-pin GH-JST end to the Micro VPS compute module and the 6-pin end of the cable to your available UART port on your flight controller. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252F1OpFhoMhRIPazf9cKAM5%252Fsignal-2025-07-23-184502_002.jpeg%3Falt%3Dmedia%26token%3D8addf549-3fee-44b1-a8aa-5c949f714a99&width=768&dpr=3&quality=100&sign=1243904d&sv=2) Navigate to [Autopilot Integration](https://docs.theseus.us/micro-vps/autopilot-integration) to see how to configure ArduPilot to connect with the Micro VPS over these UART ports. circle-check Serial data cable connects the Micro VPS compute module to your flight controller. [PreviousMechanical Installationchevron-left](https://docs.theseus.us/micro-vps/vehicle-integration/mechanical-installation) [NextPowerchevron-right](https://docs.theseus.us/micro-vps/vehicle-integration/power) Last updated 3 months ago --- # Validation | Theseus Docs [Bench testchevron-right](https://docs.theseus.us/micro-vps/validation/bench-test) [Flight testchevron-right](https://docs.theseus.us/micro-vps/validation/flight-test) [vns\_bench dev toolkitchevron-right](https://docs.theseus.us/micro-vps/validation/vns_bench-dev-toolkit) [PreviousGPS Switchingchevron-left](https://docs.theseus.us/micro-vps/autopilot-integration/gps-switching) [NextBench testchevron-right](https://docs.theseus.us/micro-vps/validation/bench-test) --- # Theseus GCS App | Theseus Docs The Theseus Ground Control Station (GCS) app allows you to **control your Micro VPS device and perform system administration tasks**. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FtdyvTyVKNjGBpVou7dql%252FScreenshot%2520from%25202025-07-23%252000-18-31.png%3Falt%3Dmedia%26token%3De2223470-3f55-4277-abbb-ead9cf59e50a&width=768&dpr=3&quality=100&sign=1291765c&sv=2) Theseus GCS app Begin by installing the Theseus GCS app with [Installation](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/installation) and learn how to connect and manage your Micro VPS device in [Quick Start](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/quick-start) . [PreviousLegacy Softwarechevron-left](https://docs.theseus.us/gcs-software/legacy-software) [NextInstallationchevron-right](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/installation) Last updated 3 months ago --- # Power | Theseus Docs The sensor and compute module need to be powered separately. Component Input Voltage Power Draw Compute 2S-6S via XT-30 / 5 VDC via USB-C port 12 W idle, 15 W peak Sensor 5 VDC 10 W idle, 15 W peak circle-exclamation **Do not power the compute module via XT-30 and USB-C simultaneously.** The USB-C port on the compute module does not support USB-C Power Delivery. It requires a 5V DC power source. circle-check Sensor and compute module have adequate power sources. [PreviousFlight Controllerchevron-left](https://docs.theseus.us/micro-vps/vehicle-integration/flight-controller) [NextAutopilot Integrationchevron-right](https://docs.theseus.us/micro-vps/autopilot-integration) Last updated 4 months ago --- # MAVLink | Theseus Docs [MAVLinkarrow-up-right](https://mavlink.io/en/about/overview.html) is a standardized protocol used frequently with drones. It works with many different flight controllers, programming languages, and links. Visit the mavlink docs for more info about how it works. We also use a program called mavproxy that implements the mavlink protocol and includes lots of important features to make mav usable. The docs for mavproxy can be found [herearrow-up-right](https://deepwiki.com/ArduPilot/MAVProxy) . Below is a diagram of a proposed mavlink system. The below setup is how we setup our drones for testing at Theseus. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FO1hdnJX0vkp0ozHShzrn%252Fmavproxy_diagram.png%3Falt%3Dmedia%26token%3D9d2f4218-4266-460d-94ac-9145466f3696&width=768&dpr=3&quality=100&sign=656debc4&sv=2) Theseus provides two ways to connect to your system over mavlink: 1. Connect to the edge device (for debug) 1. Devices running Theseus software route mav packets through mavproxy 2. Mavproxy has an open tcp output connection (1) that you can connect to 3. Mavproxy on the edge device lists the flight controller (4) as the one and only master 1. Cyclops/mvps (3) and the external mav connection (1) are listed as outputs 2. Mav packets are only routed from an output to a master, or a master to all outputs 3. You will not be able to see mav packets from the edge device, or send mav packets to the edge device if you connect over this link 4. It exists solely as a pass through to allow you to connect to your flight controller through the edge device (mainly for convenience) 2. Direct connect to the flight controller 1. Use this connection method for flying 2. If using ardupilot, status text messages will be routed from the edge device to your ground station ### [hashtag](https://docs.theseus.us/gcs-software/mavlink#other-mavlink-info) Other MAVLink info mvps mavlink info [MAVLinkchevron-right](https://docs.theseus.us/micro-vps/autopilot-integration/mavlink) cyclops mavlink info [MAVLinkchevron-right](https://docs.theseus.us/cyclops/autopilot-integration/mavlink) vozilla (<2.0) mavlink page [MAVLinkchevron-right](https://docs.theseus.us/gcs-software/vozilla-gcs/mavlink) [PreviousReleaseschevron-left](https://docs.theseus.us/gcs-software/legacy-software/theseus-maps-app/releases) [NextGetting Startedchevron-right](https://docs.theseus.us/micro-vps/getting-started) Last updated 24 days ago --- # Operation Manual | Theseus Docs The Micro VPS is a camera-based system that combines inertial and optical data with satellite imagery to deliver drift-free, high-accuracy positioning. Failure patterns of the Micro VPS differ from a GPS. For example, while it cannot be jammed, the current version of the system cannot operate in dark environments and will fail if all cameras are obstructed. We outline below a series of potential pitfalls to avoid when using the Micro VPS for a successful flight. circle-info If you believe we're missing something below, please let us know! [hashtag](https://docs.theseus.us/micro-vps/operation/operation-manual#initialization) Initialization ---------------------------------------------------------------------------------------------------------- It **can take a minute for the VPS to initialize**. The VPS is waiting for movement to correlate the observed pixel changes from its camera feeds to the measured IMU accelerations and rotations. During initialization, ensure that Micro VPS is seeing objects or textured elements in its field of view. Gently move the system after powering it on to help with initialization. circle-info **Apply some movement to the VPS to help it with initialization.** [hashtag](https://docs.theseus.us/micro-vps/operation/operation-manual#pitfalls) Pitfalls ---------------------------------------------------------------------------------------------- VPS relies on 4 cameras and an inertial measurement unit (IMU) to estimate its position. Below are some patterns to avoid when using Micro VPS on your vehicle. ### [hashtag](https://docs.theseus.us/micro-vps/operation/operation-manual#obstructing-all-cameras) Obstructing all cameras Much like if you place a GPS inside a building where it cannot receive any signal, obfuscating all cameras will make Micro VPS fail because it is not getting any visual data. triangle-exclamation When initializing on the vehicle, make sure Micro VPS is clear off the ground and cameras are not obstructed. ### [hashtag](https://docs.theseus.us/micro-vps/operation/operation-manual#prolonged-vertical-movement) Prolonged vertical movement The Micro VPS relies on its estimation of the size of the world around it. It correlates inertial measurements with pixel movements to determine how much the vehicle moved during a fixed time interval. When mission planning, avoid large straight vertical climb (>150m). Such movement can cause correlation issues between the inertial and optical measurements, potentially resulting in failure of the VPS. Instead, follow a stair stepping pattern which breaks up the vertical climb into multiple progressive stages. circle-info ArduPilot QuadPlane should handle the climb automatically for VTOL aircrafts. triangle-exclamation TLDR; don't vertical climb straight for more than 150 m. Break up the climb in several stages. ### [hashtag](https://docs.theseus.us/micro-vps/operation/operation-manual#prolonged-position-hold) Prolonged position hold circle-info **Theseus is working on a fix** to enable longer position holds on quadcopters. Similar to [Prolonged vertical movement](https://docs.theseus.us/micro-vps/operation/operation-manual#prolonged-vertical-movement) , flight modes that hold a position limit the relative movement of pixels. The current version of the firmware supports uninterrupted position holds for up to 60 seconds. Any longer position hold risks causing system failure. Include movement in your flight plan between periods of position holds or alternatively circle around a small radius to mitigate potential failures. triangle-exclamation TLDR; on VPS v1.5.3 avoid position hold for more than 60s. Add some movement between periods. [PreviousPre-Flight Manualchevron-left](https://docs.theseus.us/micro-vps/operation/pre-flight-manual) [NextGetting Startedchevron-right](https://docs.theseus.us/cyclops/getting-started) Last updated 3 months ago * [Initialization](https://docs.theseus.us/micro-vps/operation/operation-manual#initialization) * [Pitfalls](https://docs.theseus.us/micro-vps/operation/operation-manual#pitfalls) * [Obstructing all cameras](https://docs.theseus.us/micro-vps/operation/operation-manual#obstructing-all-cameras) * [Prolonged vertical movement](https://docs.theseus.us/micro-vps/operation/operation-manual#prolonged-vertical-movement) * [Prolonged position hold](https://docs.theseus.us/micro-vps/operation/operation-manual#prolonged-position-hold) --- # System | Theseus Docs [hashtag](https://docs.theseus.us/gcs-software/vozilla-gcs/system#vps-status) VPS Status --------------------------------------------------------------------------------------------- The service responsible for publishing global position updates is the most important part of the system. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252Fzhukp9kmitbab1UgBJ3p%252Fimage.png%3Falt%3Dmedia%26token%3D7f15603d-f7fd-4f3a-89e2-c0a933d51c07&width=768&dpr=3&quality=100&sign=9bf66773&sv=2) The status of this service should be "_active_" if you're planning to fly. If it displays a "_failed_" state, try restarting it as it needs an active MAVLink connection to work properly. If it continues to fail, check the service diagnostics area for a detailed error message. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FoIAzMqOxnlurYHf8ze2P%252Fimage.png%3Falt%3Dmedia%26token%3D0d91091b-362e-4550-b54d-eb1b984bd893&width=768&dpr=3&quality=100&sign=c5561389&sv=2) The most common reasons for the service failing are not having set an active map or home position, and not having a proper connection to a flight controller. [hashtag](https://docs.theseus.us/gcs-software/vozilla-gcs/system#configuring-mavproxy) Configuring MAVProxy ----------------------------------------------------------------------------------------------------------------- We use [MAVProxyarrow-up-right](https://ardupilot.org/mavproxy/) onboard the compute to route MAV connections. The Configuration panel lets you customize MAV settings when connecting to your flight controller. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FTOkOMyLaD6sHV0GN7bwT%252Fimage.png%3Falt%3Dmedia%26token%3Da7a443f5-f906-4d1f-a8a0-a7399cdd9757&width=768&dpr=3&quality=100&sign=3e7b77a9&sv=2) [hashtag](https://docs.theseus.us/gcs-software/vozilla-gcs/system#sensor-recordings) Sensor Recordings ----------------------------------------------------------------------------------------------------------- All of the important information and sensor data is stored as protobuf messages in a live recording format called [hdf5arrow-up-right](https://www.hdfgroup.org/solutions/hdf5/) . You can enable or disable these recordings from any tab in the Vozilla app using the **REC** toggle in the top right corner . ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FTAyRWtKYa4EKzECy4WoX%252Fimage.png%3Falt%3Dmedia%26token%3Ded8e24ec-2abc-46a3-b52e-6c60120ce94d&width=768&dpr=3&quality=100&sign=6cc54bb8&sv=2) Sensor recordings are large files and can fill up space on the NVMe drive. It is recommended that your disable recording while testing on the bench. We strongly advise that you enabled recording before flying your UAV. It will be difficult to help debug any issues with VIO performance without sensor recordings. circle-exclamation The recording setting is persistent. If you disable it for bench testing, you will need to remember to turn it back on when you go out and fly. It is better to leave it enabled at all times if you're worried you might forget to enable it when flying. [hashtag](https://docs.theseus.us/gcs-software/vozilla-gcs/system#remote-support) Remote Support ----------------------------------------------------------------------------------------------------- The remote support feature allows Theseus to create an ssh connection to your edge device so we can help configure things and debug issues with the product. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252Fgwc1ZWkhUTQzlJkhDYuU%252Fimage.png%3Falt%3Dmedia%26token%3D07d682e6-33bb-482b-ae5c-603838f03891&width=768&dpr=3&quality=100&sign=b579620b&sv=2) circle-info Please set up a call with the Theseus team if you're running into issues. This feature allows our team to offer better remote support to customers. There is no on-call engineer waiting to fix issues. [PreviousMAVLinkchevron-left](https://docs.theseus.us/gcs-software/vozilla-gcs/mavlink) [NextFeature Listchevron-right](https://docs.theseus.us/gcs-software/vozilla-gcs/feature-list) Last updated 3 months ago * [VPS Status](https://docs.theseus.us/gcs-software/vozilla-gcs/system#vps-status) * [Configuring MAVProxy](https://docs.theseus.us/gcs-software/vozilla-gcs/system#configuring-mavproxy) * [Sensor Recordings](https://docs.theseus.us/gcs-software/vozilla-gcs/system#sensor-recordings) * [Remote Support](https://docs.theseus.us/gcs-software/vozilla-gcs/system#remote-support) --- # Feature List | Theseus Docs [Vehicle Configurationchevron-right](https://docs.theseus.us/gcs-software/vozilla-gcs/feature-list/vehicle-configuration) [VPS Firmware Updateschevron-right](https://docs.theseus.us/gcs-software/vozilla-gcs/feature-list/vps-firmware-updates) [PreviousSystemchevron-left](https://docs.theseus.us/gcs-software/vozilla-gcs/system) [NextVehicle Configurationchevron-right](https://docs.theseus.us/gcs-software/vozilla-gcs/feature-list/vehicle-configuration) --- # Getting Started | Theseus Docs ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FAdbeVi32CweEemNQhtoU%252Fsensor.png%3Falt%3Dmedia%26token%3D1005aec3-cf0a-44f0-9afc-d9bb0265574e&width=768&dpr=3&quality=100&sign=bec1dfcc&sv=2) Theseus Micro VPS sensor module [hashtag](https://docs.theseus.us/micro-vps/getting-started#vehicle-integration-process) Vehicle Integration Process ------------------------------------------------------------------------------------------------------------------------- 1. Have required Micro VPS hardware: [Theseus Micro VPS](https://docs.theseus.us/micro-vps/theseus-micro-vps) 2. Check pre-requisites: [Pre-Requisites](https://docs.theseus.us/micro-vps/pre-requisites) 3. Mount Micro VPS to your vehicle: [Vehicle Integration](https://docs.theseus.us/micro-vps/vehicle-integration) 4. Configure ArduPilot for Micro VPS: [Autopilot Integration](https://docs.theseus.us/micro-vps/autopilot-integration) 5. Configure Micro VPS in software: [Theseus GCS App](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app) 6. Perform a bench test: [Bench test](https://docs.theseus.us/micro-vps/validation/bench-test) 7. Perform a flight test: [Flight test](https://docs.theseus.us/micro-vps/validation/flight-test) [PreviousMAVLinkchevron-left](https://docs.theseus.us/gcs-software/mavlink) [NextPre-Requisiteschevron-right](https://docs.theseus.us/micro-vps/pre-requisites) Last updated 3 months ago --- # Vehicle Configuration | Theseus Docs circle-info Cyclops users don't need to do this step. The transformation is needed for the vio only. The Micro VPS needs to know the orientation of the flight controller relative to itself in order to accurately give a position estimate. The GCS App has a tool to define this transformation and save it to a file. Check out our [Mechanical Installation](https://docs.theseus.us/micro-vps/vehicle-integration/mechanical-installation) page for information on how to properly mount you Micro VPS. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252Ffz7qsCGlNdnaVUTvXGrl%252Fimage.png%3Falt%3Dmedia%26token%3Dbc604ad9-2508-4f2b-821f-51679a1c44ac&width=768&dpr=3&quality=100&sign=e86a05e0&sv=2) Clicking the edit button will bring up a panel with some 3D models. You can translate and rotate the Micro VPS, then upload the config to the edge device when it matches your physical setup. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252F1mj2spkbvk5iPIP2YZFD%252Fimage.png%3Falt%3Dmedia%26token%3De13c642c-d76f-4445-a010-2acc7b3a62fa&width=768&dpr=3&quality=100&sign=b222024d&sv=2) [PreviousFeature Listchevron-left](https://docs.theseus.us/gcs-software/vozilla-gcs/feature-list) [NextVPS Firmware Updateschevron-right](https://docs.theseus.us/gcs-software/vozilla-gcs/feature-list/vps-firmware-updates) Last updated 3 months ago --- # Operation | Theseus Docs [Pre-Flight Manualchevron-right](https://docs.theseus.us/micro-vps/operation/pre-flight-manual) [Operation Manualchevron-right](https://docs.theseus.us/micro-vps/operation/operation-manual) [Previousvns\_bench dev toolkitchevron-left](https://docs.theseus.us/micro-vps/validation/vns_bench-dev-toolkit) [NextPre-Flight Manualchevron-right](https://docs.theseus.us/micro-vps/operation/pre-flight-manual) --- # Create account | Theseus Docs Go to [https://maps.theseus.usarrow-up-right](https://maps.theseus.us/) to create your account and access the Theseus Maps app. circle-exclamation To create an account, you need a unique registration code. Reach out to your Theseus point of contact for help. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FmlrBZZGzlWaxT4Un3bir%252F2025-09-25_09-49.png%3Falt%3Dmedia%26token%3Db4fc94a7-a3cd-43a4-aff3-6a05343b2156&width=768&dpr=3&quality=100&sign=ab30ca34&sv=2) Theseus Maps app account creation page [PreviousTheseus Maps Appchevron-left](https://docs.theseus.us/gcs-software/legacy-software/theseus-maps-app) [NextGenerate mapschevron-right](https://docs.theseus.us/gcs-software/legacy-software/theseus-maps-app/generate-maps) Last updated 3 months ago --- # Vehicle Integration | Theseus Docs Integrating Cyclops into your UAV requires 3 considerations: 1. Properly mounting your Cyclops-compatible camera [Mechanical Installation](https://docs.theseus.us/cyclops/vehicle-integration/mechanical-installation) 2. Connecting and configuring Cyclops with your [Flight Controller](https://docs.theseus.us/cyclops/vehicle-integration/flight-controller) 3. Providing your camera and flight computer with adequate [Power](https://docs.theseus.us/cyclops/vehicle-integration/power) [PreviousTroubleshootingchevron-left](https://docs.theseus.us/cyclops/cyclops-computer/pi-5-walkthrough/troubleshooting) [NextMechanical Installationchevron-right](https://docs.theseus.us/cyclops/vehicle-integration/mechanical-installation) Last updated 3 months ago --- # Power | Theseus Docs Your camera and flight computer should have power sources that meet the specs provided by the manufacturers. Cyclops requires a data connection between the camera and the flight computer. If you are using a **digital video camera** powered via USB-C or a similar cable, one cable can typically handle both the power and data connections. If you are using an **analog video camera** (i.e. Runcam or other common FPV cameras), you will need an **analog to digital converter**. These modules are usually powered via USB and have low voltage limitations. If your camera requires a higher voltage power source, be prepared to power it separately. circle-check Camera and flight computer have adequate power sources. circle-exclamation Ensure your power supply has adequate current. Powering multiple devices (e.g. camera, external SSD) off of USB will draw significant current. triangle-exclamation Current draw will increase while device is under load. [PreviousFlight Controllerchevron-left](https://docs.theseus.us/cyclops/vehicle-integration/flight-controller) [NextAutopilot Integrationchevron-right](https://docs.theseus.us/cyclops/autopilot-integration) Last updated 3 months ago --- # Pre-Flight Manual | Theseus Docs Check that all components are connected to their respective power sources as defined in [Power](https://docs.theseus.us/micro-vps/vehicle-integration/power) . Check that the data cable connects the sensor to the compute module. Ensure the correct vehicle config is selected. **INSERT IMAGE** Ensure the sensor data is recording. We highly recommend enabling sensor recordings when flying the VPS for debugging any issues with the flight. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FhcPeawhAt1gAe5b9Jb7p%252Fimage.png%3Falt%3Dmedia%26token%3D443495bc-2aae-44ba-aa56-dbc7f077adb4&width=768&dpr=3&quality=100&sign=2cc2280e&sv=2) Verify the vps service is up and running without errors. This means the map and home position have been correctly set. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FEulkbaYVfHVbtYbECBL4%252Fimage.png%3Falt%3Dmedia%26token%3Db35dceaf-dd12-4a5d-82da-2eff91d3fa5f&width=768&dpr=3&quality=100&sign=30a65f35&sv=2) [PreviousOperationchevron-left](https://docs.theseus.us/micro-vps/operation) [NextOperation Manualchevron-right](https://docs.theseus.us/micro-vps/operation/operation-manual) Last updated 3 months ago --- # Flight test | Theseus Docs At this point, you should have successfully completed the hardware and software integration of the VPS, as well as a bench test. Theseus recommends running several test flights prior to full operational deployment of the VPS. circle-exclamation Contact the Theseus team prior to executing test flights. They will assist and confirm validity at each step of the process. Test Flight # Configuration Purpose Flight 1 GPS is available and primary position source. VPS acts as GPS 2 and not in the loop. Collect VPS recording and ArduPilot logs. Analyze and confirm nominal performance of the system. Flight 2-3 GPS is available as a secondary position source. VPS acts as GPS and is in the loop from take off to landing. Confirm nominal performance of the system through multiple live flights. Analyze VPS recordings and ArduPilot logs. [PreviousBench testchevron-left](https://docs.theseus.us/micro-vps/validation/bench-test) [Nextvns\_bench dev toolkitchevron-right](https://docs.theseus.us/micro-vps/validation/vns_bench-dev-toolkit) Last updated 3 months ago --- # Cyclops Computer | Theseus Docs The Cyclops system uses a flight computer to process camera data in order to provide a position estimate to the flight controller. Cyclops has successfully integrated with the following flight computers: * Nano Pi R6C (Ubuntu 22 LTS) * [Raspberry Pi 5arrow-up-right](https://pip-assets.raspberrypi.com/categories/892-raspberry-pi-5/documents/RP-008348-DS-4-raspberry-pi-5-product-brief.pdf?disposition=inline) (Ubuntu 24 LTS) See [Pi 5 Walkthrough](https://docs.theseus.us/cyclops/cyclops-computer/pi-5-walkthrough) to get started setting up your Flight Computer [PreviousPre-Requisiteschevron-left](https://docs.theseus.us/cyclops/pre-requisites) [NextPi 5 Walkthroughchevron-right](https://docs.theseus.us/cyclops/cyclops-computer/pi-5-walkthrough) Last updated 3 months ago --- # Quick Start | Theseus Docs Theseus GCS app allows you to manage your Micro VPS device. In this section, we go over **connecting your computer** to the Micro VPS and taking a look at the **core features** of the Theseus GCS app. Before starting make sure that you have the following items: * Micro VPS device, powered * Ethernet cable * Windows computer * Theseus GCS app installed [hashtag](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/quick-start#connecting-to-micro-vps) Connecting to Micro VPS ------------------------------------------------------------------------------------------------------------------------------------------------ circle-info Make sure you installed the Theseus GCS app on your Windows/Linux laptop following [Installation](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/installation) before proceeding. Theseus GCS app supports connectivity over Ethernet and MAVLink to the Micro VPS. You will need to **edit your computer Ethernet network interface** configuration in order to establish a connection to the Micro VPS. Follow the instructions below to configure your computer to communicate with the Micro VPS over Ethernet. Windows Linux Here are the IP settings for the network interface: * IP address: 192.168.218.10 * Subnet mask: 255.255.255.0 * Default gateway: 192.168.218.1 On your Windows computer: * Open Windows Settings (Windows key + I) * Click on "Network & Internet" * Click on "Ethernet" * Click on your network adapter * Under "IP assignment", click "Edit" * Select "Manual" and turn on IPv4 * Enter the IP settings shown above * Click "Save" Here are the IP settings for the network interface: * IP address: 192.168.218.10 * Subnet mask: 255.255.255.0 * Default gateway: 192.168.218.1 Create a new Ethernet network interface with these IPv4 settings in your settings app. Ethernet connection is preferred for all system administration tasks (e.g., software, maps, recordings management). MAVLink is available as an alternative mode of connection to the Micro VPS to access the system through your vehicle telemetry. circle-info Due to bandwidth limitations, MAVLink connectivity limits functionalities to status monitoring, VPS control and launch position setting. [hashtag](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/quick-start#dashboard-overview) Dashboard Overview -------------------------------------------------------------------------------------------------------------------------------------- circle-exclamation At this stage, you should be able to open the Theseus GCS and connect to your Micro VPS from your laptop over Ethernet. Below is a breakdown of the key features of the central dashboard, essential to the operation of the Micro VPS. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252F6QOE1YpWdsyQn951nnH1%252FScreenshot%2520from%25202025-07-23%252000-18-31.png%3Falt%3Dmedia%26token%3D1ccbff40-f325-4cfe-aad7-07650ed4acdf&width=768&dpr=3&quality=100&sign=9eb9ba6&sv=2) ### [hashtag](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/quick-start#menu-1) Menu (1) The menu on the left of the app allows you to access each feature of the system as indexed in [Feature List](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list) . ### [hashtag](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/quick-start#vps-control-2) VPS control (2) The VPS control section enables you to start/stop/restart the VPS software running on your Micro VPS device at any time. This enables you to manually restart the system in case of failures without having to physically reboot the system or vehicle. ### [hashtag](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/quick-start#connectivity-3) Connectivity (3) Toggle between Ethernet and MAVLink connectivity modes with Micro VPS. Make sure you have configured your Ethernet connection [Connecting to Micro VPS](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/quick-start#connecting-to-micro-vps) . Find more details about the MAVLink connection in [MAVLink Connection](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/mavlink-connection) . ### [hashtag](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/quick-start#version-numbers-4) Version numbers (4) The version number at the bottom of the left side bar displays the version number of the Micro VPS firmware present on the device as well as the Theseus GCS app version. circle-info **Both version numbers should be the same.** Ensure your Micro VPS is up to date before flying. [hashtag](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/quick-start#setting-launch-location) Setting Launch Location ------------------------------------------------------------------------------------------------------------------------------------------------ Navigate to [Home Position Setting](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/home-position-setting) to see how to set your launch location for your mission with the Theseus GCS. circle-info Theseus Micro VPS requires manually setting home launch location prior to flight and **does not require GPS signal for initialization**. [hashtag](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/quick-start#uploading-maps) Uploading Maps ------------------------------------------------------------------------------------------------------------------------------ Navigate to [Maps Management](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/maps-management) to see how to upload maps for your area of operation with the Theseus GCS. [PreviousInstallationchevron-left](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/installation) [NextFeature Listchevron-right](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list) Last updated 8 months ago * [Connecting to Micro VPS](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/quick-start#connecting-to-micro-vps) * [Dashboard Overview](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/quick-start#dashboard-overview) * [Menu (1)](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/quick-start#menu-1) * [VPS control (2)](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/quick-start#vps-control-2) * [Connectivity (3)](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/quick-start#connectivity-3) * [Version numbers (4)](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/quick-start#version-numbers-4) * [Setting Launch Location](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/quick-start#setting-launch-location) * [Uploading Maps](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/quick-start#uploading-maps) --- # Pre-Requisites | Theseus Docs [hashtag](https://docs.theseus.us/micro-vps/pre-requisites#platform-requirements) Platform Requirements ------------------------------------------------------------------------------------------------------------ The UAV must have a mounting point for the sensor and compute modules. The system needs to be able to support the added payload weight (300 g total). See [Mechanical Installation](https://docs.theseus.us/micro-vps/vehicle-integration/mechanical-installation) for more information on the mounting procedure. [hashtag](https://docs.theseus.us/micro-vps/pre-requisites#power-requirements) Power Requirements ------------------------------------------------------------------------------------------------------ Theseus Micro VPS requires a 2S-6S (6-27V) power input for the compute module and 5V power input for the sensor module. It is possible to power the sensor from the compute module. Find more information about power integration for Theseus Micro VPS in [Power](https://docs.theseus.us/micro-vps/vehicle-integration/power) . [hashtag](https://docs.theseus.us/micro-vps/pre-requisites#flight-controller-requirements) Flight Controller Requirements ------------------------------------------------------------------------------------------------------------------------------ Theseus has integrated with the following flight controller hardware successfully: * Cube Orange + * Matek Sys H743 Micro VPS requires a single UART serial port on the flight controller to run MAVLink telemetry to the compute module. See [Flight Controller](https://docs.theseus.us/micro-vps/vehicle-integration/flight-controller) for more information on flight controller integration. Your flight controller must have a barometer (or other altitude source other than GPS) as well as a reliable compass. See [Autopilot Integration](https://docs.theseus.us/micro-vps/autopilot-integration) for more information on how Micro VPS interfaces with ArduPilot. circle-info Micro VPS currently **only supports ArduPilot**. If you would like to integrate other autopilot software, contact our team. [hashtag](https://docs.theseus.us/micro-vps/pre-requisites#components) Components -------------------------------------------------------------------------------------- Before proceeding with integration, make sure that you have the following: * Micro VPS box (including compute and sensor modules, UART cables, power cables) * Drone with ArduPilot-compatible flight controller * Windows laptop * Ethernet cable * Power source for UAV and Micro VPS See [Theseus Micro VPS](https://docs.theseus.us/micro-vps/theseus-micro-vps) for more information on the specifications of the Micro VPS. circle-check Check that you have all listed components and proceed to the next section. [PreviousGetting Startedchevron-left](https://docs.theseus.us/micro-vps/getting-started) [NextTheseus Micro VPSchevron-right](https://docs.theseus.us/micro-vps/theseus-micro-vps) Last updated 3 months ago * [Platform Requirements](https://docs.theseus.us/micro-vps/pre-requisites#platform-requirements) * [Power Requirements](https://docs.theseus.us/micro-vps/pre-requisites#power-requirements) * [Flight Controller Requirements](https://docs.theseus.us/micro-vps/pre-requisites#flight-controller-requirements) * [Components](https://docs.theseus.us/micro-vps/pre-requisites#components) --- # VPS Firmware Updates | Theseus Docs Theseus continually improves performance of the VPS software. We always recommend using the most up to date firmware. Many times when the Micro VPS displays poor performance or there is a serious issue, the user is on an outdated firmware version and the problems are already fixed on the most recent release. [hashtag](https://docs.theseus.us/gcs-software/vozilla-gcs/feature-list/vps-firmware-updates#over-the-air-ota-updates) Over-the-air (OTA) Updates ------------------------------------------------------------------------------------------------------------------------------------------------------ Vozilla requires firmware version 1.10.0 or higher to work properly. If you connect it to an outdated Micro VPS it will prompt you to update. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FhZxgdDuUA8F56AAUsECf%252Fimage.png%3Falt%3Dmedia%26token%3D84ae8878-4630-4f6e-8e90-7da533fe2cc8&width=768&dpr=3&quality=100&sign=55e0963e&sv=2) ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252Ftju2VppAYs5QNEVrvonU%252Fimage.png%3Falt%3Dmedia%26token%3D64daca9a-7a05-4c88-acbd-02f61a1f8f21&width=768&dpr=3&quality=100&sign=440330d8&sv=2) circle-exclamation It's important that you keep the edge device on and powered until the install process is complete. If it doesn't finish installing properly you will need to reinstall the firmware package. When new firmware updates are available you will be able to check in the system tab and update from there. [PreviousVehicle Configurationchevron-left](https://docs.theseus.us/gcs-software/vozilla-gcs/feature-list/vehicle-configuration) [NextLegacy Softwarechevron-right](https://docs.theseus.us/gcs-software/legacy-software) Last updated 3 months ago --- # Validation | Theseus Docs [Bench Testchevron-right](https://docs.theseus.us/cyclops/validation/bench-test) [Pre-Flight Checklistchevron-right](https://docs.theseus.us/cyclops/validation/pre-flight-checklist) [Flight Testchevron-right](https://docs.theseus.us/cyclops/validation/flight-test) [vns\_bench dev toolkitchevron-right](https://docs.theseus.us/cyclops/validation/vns_bench-dev-toolkit) [PreviousCyclops Safety Switchchevron-left](https://docs.theseus.us/cyclops/autopilot-integration/cyclops-safety-switch) [NextBench Testchevron-right](https://docs.theseus.us/cyclops/validation/bench-test) --- # Theseus Maps App | Theseus Docs [Theseus Maps apparrow-up-right](https://maps.theseus.us/) is a web application that allows you to **generate map sets for your operations** with the Micro VPS. ![Theseus Map app](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FMYOv9PcqTw5zETEeJfFz%252FScreenshot%25202025-07-22%2520at%25205.37.45%25E2%2580%25AFPM.png%3Falt%3Dmedia%26token%3D33ec694b-d851-4371-95de-d1b2b4f0226a&width=768&dpr=3&quality=100&sign=4ed0f96f&sv=2) Theseus Maps app main dashboard [hashtag](https://docs.theseus.us/gcs-software/legacy-software/theseus-maps-app#id-3-steps-to-generate-maps) 3 steps to generate maps ------------------------------------------------------------------------------------------------------------------------------------------ 1. [Create account](https://docs.theseus.us/gcs-software/legacy-software/theseus-maps-app/create-account) 2. [Generate maps](https://docs.theseus.us/gcs-software/legacy-software/theseus-maps-app/generate-maps) 3. [Download maps](https://docs.theseus.us/gcs-software/legacy-software/theseus-maps-app/download-maps) [hashtag](https://docs.theseus.us/gcs-software/legacy-software/theseus-maps-app#why-do-i-need-this) Why do I need this? ---------------------------------------------------------------------------------------------------------------------------- Theseus Micro VPS **requires pre-processed satellite imagery** to perform map matching. Micro VPS can store up to 50,000 sq. km of map area for any mission (e.g. 20 km x 2500 km area). The map app allows you to generate and download these maps before your mission. To learn more about Micro VPS and our map matching technology visit the [Technology page on Theseus' websitearrow-up-right](https://www.theseus.us/technology) . [PreviousVehicle Configurationchevron-left](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/vehicle-configuration) [NextCreate accountchevron-right](https://docs.theseus.us/gcs-software/legacy-software/theseus-maps-app/create-account) Last updated 3 months ago * [3 steps to generate maps](https://docs.theseus.us/gcs-software/legacy-software/theseus-maps-app#id-3-steps-to-generate-maps) * [Why do I need this?](https://docs.theseus.us/gcs-software/legacy-software/theseus-maps-app#why-do-i-need-this) --- # Pi 5 Walkthrough | Theseus Docs ### [hashtag](https://docs.theseus.us/cyclops/cyclops-computer/pi-5-walkthrough#pi-5-walkthrough) Pi 5 Walkthrough This tutorial walks through setting up a Raspberry Pi 5 from scratch #### [hashtag](https://docs.theseus.us/cyclops/cyclops-computer/pi-5-walkthrough#install-ubuntu-24) Install Ubuntu 24 We will use the Raspberry Pi Imager. We will use the Desktop build of Ubuntu, since that has better built in support for external drives. Ubuntu Server is fully supported, and recommended for more experienced users. Set up your Pi: [![Logo](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2Fwww.raspberrypi.com%2Fdocumentation%2Ffavicon.ico&width=20&dpr=3&quality=100&sign=fc72d600&sv=2)Getting started - Raspberry Pi DocumentationRaspberry\_Pichevron-right](https://www.raspberrypi.com/documentation/computers/getting-started.html) Your Pi should now boot. Open the terminal and proceed to the ssh setup. [SSH Setupchevron-right](https://docs.theseus.us/cyclops/cyclops-computer/pi-5-walkthrough/ssh-setup) You can return to [Setup steps](https://docs.theseus.us/cyclops/getting-started#setup-steps) and proceed to step 4 to setup your flight controller. [PreviousCyclops Computerchevron-left](https://docs.theseus.us/cyclops/cyclops-computer) [NextSSH Setupchevron-right](https://docs.theseus.us/cyclops/cyclops-computer/pi-5-walkthrough/ssh-setup) Last updated 1 month ago --- # Vehicle Selection | Theseus Docs [PreviousSystem Healthchevron-left](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/system-health) [NextRecording Managementchevron-right](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/recording-management) --- # Flight Controller | Theseus Docs Cyclops requires **one (1) UART port on the flight controller** to communicate with ArduPilot. 4-pin to 6-pin GH-JST serial cables are provided in the box. For the Cube Orange+ flight controller, this means the **TELEM 1, TELEM 2, and GPS 2 UART ports** are ready to interface with Cyclops. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252F9N2xEwUC7bqlwb3ffSca%252FScreenshot2023-06-14at9.25.34AM_800x.png%3Falt%3Dmedia%26token%3Dca0cbf82-93d9-420e-859e-872661074240&width=768&dpr=3&quality=100&sign=340a2129&sv=2) You will need to connect the flight controller to your Cyclops computer using a UART port, hat, or USB TTL converter. Once you have physically connected to your flight controller[Autopilot Integration](https://docs.theseus.us/cyclops/autopilot-integration) covers how to configure ArduPilot to connect with Cyclops over these UART ports. circle-check Serial data cable connects the Cyclops flight computer to your flight controller. [PreviousCamera Calibrationchevron-left](https://docs.theseus.us/cyclops/vehicle-integration/camera-calibration) [NextPowerchevron-right](https://docs.theseus.us/cyclops/vehicle-integration/power) Last updated 2 months ago --- # Autopilot Integration | Theseus Docs circle-exclamation Theseus Micro VPS currently only supports ArduPilot. The Theseus Micro VPS communicates with ArduPilot over MAVLink. Several operations are performed: * **Synchronize time**: the Micro VPS contains a real-time clock and synchronizes the time on your flight controller. * **Pull sensor readings**: compass and barometer data are read over MAVLink and used by Micro VPS. * **Send GPS data**: Micro VPS sends GPS inputs to ArduPilot over MAVLink. This section goes over each parameter that needs to be configured in [ArduPilot](https://docs.theseus.us/micro-vps/autopilot-integration/ardupilot) and how to do so from [Mission Planner](https://docs.theseus.us/micro-vps/autopilot-integration/mission-planner) or [QGroundControl](https://docs.theseus.us/micro-vps/autopilot-integration/qgroundcontrol) . [PreviousPowerchevron-left](https://docs.theseus.us/micro-vps/vehicle-integration/power) [NextMAVLinkchevron-right](https://docs.theseus.us/micro-vps/autopilot-integration/mavlink) Last updated 3 months ago --- # GPS Switching | Theseus Docs Theseus provides a Lua script to enable automatic switching between GPS and VPS. circle-info The script has been **tested in a jammed environment**. It is not expected to perform auto switching in a spoofed environment. Micro VPS appears as a GPS to ArduPilot. If you followed our recommended parameter setup, VPS should be configured as GPS 2 and your real GPS as GPS 1 on ArduPilot. Upload the script below to ArduPilot to enable auto switching: file-download 9KB [gps\_vps\_disable-1.7.lua](https://3178815652-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhUdZltvGJCfBMBzRuwSC%2Fuploads%2FsbnEnRfptPAYlOUyBXMT%2Fgps_vps_disable-1.7.lua?alt=media&token=beff3846-0bc5-47df-be9c-0a8b1c9898fa) downloadDownload[arrow-up-right-from-squareOpen](https://3178815652-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhUdZltvGJCfBMBzRuwSC%2Fuploads%2FsbnEnRfptPAYlOUyBXMT%2Fgps_vps_disable-1.7.lua?alt=media&token=beff3846-0bc5-47df-be9c-0a8b1c9898fa) [hashtag](https://docs.theseus.us/micro-vps/autopilot-integration/gps-switching#jamming-detection) Jamming Detection ------------------------------------------------------------------------------------------------------------------------- The script employs high level heuristics to determine whether jamming is present on GPS 1: * **Number of satellites < 16**: fewer satellites indicate likely jamming. * **HDOP > 160**: high spatial concentration of origin satellites. * **Horizontal, vertical, speed accuracy**: low accuracy (high values) are also indicators of poor satellite geometry or interference in the signal path. Copy local MIN_NUM_SATS_GPS1 = 16 local MAX_HDOP_GPS1 = 160 local MAX_HORIZONTAL_ACCURACY_GPS1 = 5 local MAX_VERTICAL_ACCURACY_GPS1 = 8 local MAX_SPEED_ACCURACY_GPS1 = 1.8 These heuristics have been tested against air defense jammers in Eastern Ukraine. [hashtag](https://docs.theseus.us/micro-vps/autopilot-integration/gps-switching#switching-logic) Switching Logic --------------------------------------------------------------------------------------------------------------------- The script will automatically try to use the GPS (GPS 1) if it is available. If GPS is not healthy, it will switch to VPS (GPS 2). If GPS becomes healthy again, the script will switch back to GPS. If the user manually disables either sources of position, the script will not switch into it. For example, if the user disables VPS, the script will stay on GPS. If both sources of position are unhealthy and/or manually disabled, the ArduPilot GPS backend is disabled using DISABLE\_GPS\_RC\_OPTION. [hashtag](https://docs.theseus.us/micro-vps/autopilot-integration/gps-switching#configuring-rc-switches) Configuring RC Switches ------------------------------------------------------------------------------------------------------------------------------------- The script also assumes that two RC switches are configured: one for GPS 1 and one for GPS 2. These RC switches can be used by the operator to manually enable or disable either GPS sources in the Lua script. Select which channels (RCX) you intend on using for these manual switches (e.g., RC7 and RC11), and set the corresponding option to 300 (GPS 1) and 301 (for GPS 2). circle-info You also need to set `SCR_USER1=1` to enable these switches. For example: * RC7\_OPTION = 300, RC7 controls the GPS 1 switch * RC11\_OPTION = 301, RC11 controls the GPS 2 switch If the switch is latched, the corresponding GPS will be deactivated in the Lua script and the source switched to the other GPS. circle-exclamation Note: The Scripting RCx\_OPTION values in ArduPilot are hardcoded within the GPS Switching Lua script. If you are using multiple Lua scripts on the same flight controller, make sure that those scripts do not use Scripting1 or Scripting2 (RCx\_OPTION = 300, 301, respectively). [PreviousMap Generationchevron-left](https://docs.theseus.us/micro-vps/autopilot-integration/developer-api/map-generation) [NextValidationchevron-right](https://docs.theseus.us/micro-vps/validation) Last updated 3 months ago * [Jamming Detection](https://docs.theseus.us/micro-vps/autopilot-integration/gps-switching#jamming-detection) * [Switching Logic](https://docs.theseus.us/micro-vps/autopilot-integration/gps-switching#switching-logic) * [Configuring RC Switches](https://docs.theseus.us/micro-vps/autopilot-integration/gps-switching#configuring-rc-switches) --- # Download maps | Theseus Docs The Theseus Map app allows you to view all your maps that are being generated and have completed generation. [hashtag](https://docs.theseus.us/gcs-software/legacy-software/theseus-maps-app/download-maps#active-jobs) Active Jobs --------------------------------------------------------------------------------------------------------------------------- See all the maps currently being generated under the "Active Jobs" tab on the left side of the dashboard. Each card shows the name of the map and time since creation. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FfVlN2UiX37kwdxYs1XnR%252FScreenshot%25202025-07-22%2520at%25207.32.47%25E2%2580%25AFPM.png%3Falt%3Dmedia%26token%3D0474cec2-5332-490e-9eef-d487129f0602&width=768&dpr=3&quality=100&sign=ef412ab8&sv=2) [hashtag](https://docs.theseus.us/gcs-software/legacy-software/theseus-maps-app/download-maps#job-history) Job History --------------------------------------------------------------------------------------------------------------------------- All completed and current jobs are listed in the job history tab. Click on the "Job History" tab on the top menu to pop up a panel with all your map generation jobs. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252Fh6chEDtDoYa1Ld3J6CHZ%252FScreenshot%25202025-07-22%2520at%25205.37.45%25E2%2580%25AFPM%2520copy%25204.png%3Falt%3Dmedia%26token%3D935a2a03-cfd8-46fe-bd9f-04f65d0ffc1b&width=768&dpr=3&quality=100&sign=22948398&sv=2) You can view and download maps from this panel. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252Fykzp0xQ6FlWAfGupGr6q%252FScreenshot%25202025-07-24%2520at%252011.17.17%25E2%2580%25AFAM.png%3Falt%3Dmedia%26token%3D9bd2c64d-e028-44a0-9896-cc64c7324b43&width=768&dpr=3&quality=100&sign=5a9fc13d&sv=2) circle-info Maps are downloaded as a single **.tar.gz** file to be uploaded to your device. [PreviousGenerate mapschevron-left](https://docs.theseus.us/gcs-software/legacy-software/theseus-maps-app/generate-maps) [NextViewing Mapschevron-right](https://docs.theseus.us/gcs-software/legacy-software/theseus-maps-app/viewing-maps) Last updated 3 months ago * [Active Jobs](https://docs.theseus.us/gcs-software/legacy-software/theseus-maps-app/download-maps#active-jobs) * [Job History](https://docs.theseus.us/gcs-software/legacy-software/theseus-maps-app/download-maps#job-history) --- # Viewing Maps | Theseus Docs The Maps App lets you view information about previously generated maps. Click on the map card in the row in the job history. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252F6YP13FpPlLZ4ZlkHnpZc%252F2025-11-03_10-12.png%3Falt%3Dmedia%26token%3D106eb71b-e901-45ef-8dce-5dd6e9ae6a50&width=768&dpr=3&quality=100&sign=6ca023b0&sv=2) It pulls up the original bounding, so you can view the area the map covers. There is also a card with some map metadata. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252F1la8qTQzg42EX0PPkGNT%252FScreenshot%2520from%25202025-11-03%252010-11-17.png%3Falt%3Dmedia%26token%3D9025814e-a88c-43fb-8ce2-dc2dc092c062&width=768&dpr=3&quality=100&sign=d10976fa&sv=2) [hashtag](https://docs.theseus.us/gcs-software/legacy-software/theseus-maps-app/viewing-maps#map-information) Map Information ---------------------------------------------------------------------------------------------------------------------------------- ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252F2TOEv4WVZdAgBuVAwSlk%252FScreenshot%2520from%25202025-11-20%252011-09-36.png%3Falt%3Dmedia%26token%3D95b384b5-c7f9-460c-a48f-3fe26707a4e5&width=768&dpr=3&quality=100&sign=a2249cc7&sv=2) ### [hashtag](https://docs.theseus.us/gcs-software/legacy-software/theseus-maps-app/viewing-maps#map-id) Map ID circle-info If you are having issues with the map contact us citing the map id as it helps us find the map quickly to debug the issue. ### [hashtag](https://docs.theseus.us/gcs-software/legacy-software/theseus-maps-app/viewing-maps#checksum) Checksum The checksum allows you to check that the map wasn't corrupted on its journey from the cloud to your Micro VPS. [PreviousDownload mapschevron-left](https://docs.theseus.us/gcs-software/legacy-software/theseus-maps-app/download-maps) [NextReleaseschevron-right](https://docs.theseus.us/gcs-software/legacy-software/theseus-maps-app/releases) Last updated 3 months ago * [Map Information](https://docs.theseus.us/gcs-software/legacy-software/theseus-maps-app/viewing-maps#map-information) * [Map ID](https://docs.theseus.us/gcs-software/legacy-software/theseus-maps-app/viewing-maps#map-id) * [Checksum](https://docs.theseus.us/gcs-software/legacy-software/theseus-maps-app/viewing-maps#checksum) --- # MAVLink | Theseus Docs [MAVLinkarrow-up-right](https://mavlink.io/en/) is a communication protocol supported on a variety of UAV systems. The Micro VPS uses MAVLink for two-way communication with the flight controller. This allows us to send MAVLink packets over the same serial link that receives important information from the flight controller. By using MAVLink, we only need one serial connection between the flight controller and the Micro VPS. Below is a list of the messages we use. If your flight controller does _not_ support these message types, or only allows for one-way communication over MAVLink, contact the Theseus team for help integrating on your system. / [hashtag](https://docs.theseus.us/micro-vps/autopilot-integration/mavlink#messages-sent) Messages Sent ----------------------------------------------------------------------------------------------------------- We send a number of packets aside from just the GPS Input packets. * [STATUSTEXT (253)arrow-up-right](https://mavlink.io/en/messages/common.html#STATUSTEXT) * [MAV\_CMD\_USER\_2 (31011)arrow-up-right](https://mavlink.io/en/messages/common.html#MAV_CMD_USER_2) * crosstrack start command * [GPS\_INPUT (232)arrow-up-right](https://mavlink.io/en/messages/common.html#GPS_INPUT) * [SYSTEM\_TIME (2)arrow-up-right](https://mavlink.io/en/messages/common.html#SYSTEM_TIME) * [TIMESYNC (111)arrow-up-right](https://mavlink.io/en/messages/common.html#TIMESYNC) * [MAV\_CMD\_SET\_MESSAGE\_INTERVAL (511)arrow-up-right](https://mavlink.io/en/messages/common.html#MAV_CMD_SET_MESSAGE_INTERVAL) [hashtag](https://docs.theseus.us/micro-vps/autopilot-integration/mavlink#messages-received) Messages Received ------------------------------------------------------------------------------------------------------------------- * [LOCAL\_POSITION\_NED (32)arrow-up-right](https://mavlink.io/en/messages/common.html#LOCAL_POSITION_NED) * [ATTITUDE\_QUATERNION (31)arrow-up-right](https://mavlink.io/en/messages/common.html#ATTITUDE_QUATERNION) * [GPS\_RAW\_INT (24)arrow-up-right](https://mavlink.io/en/messages/common.html#GPS_RAW_INT) * [NAV\_CONTROLLER\_OUTPUT (62)arrow-up-right](https://mavlink.io/en/messages/common.html#NAV_CONTROLLER_OUTPUT) * [VFR\_HUD (74)arrow-up-right](https://mavlink.io/en/messages/common.html#VFR_HUD) * [SYSTEM\_TIME (2)arrow-up-right](https://mavlink.io/en/messages/common.html#SYSTEM_TIME) * [TIMESYNC (111)arrow-up-right](https://mavlink.io/en/messages/common.html#TIMESYNC) * [EXTENDED\_SYS\_STATE (245)arrow-up-right](https://mavlink.io/en/messages/common.html#EXTENDED_SYS_STATE) [hashtag](https://docs.theseus.us/micro-vps/autopilot-integration/mavlink#system-id-sysid) System ID (sysid) ----------------------------------------------------------------------------------------------------------------- If you want to connect to multiple systems over MAVLink, you'll need to use different sysids for each flight controller. The default sysid is 1 so the Micro VPS automatically looks to connect with sysid 1. If the flight controller has a different sysid than the default, the Micro VPS will report no MAV heartbeat. To configure your Micro VPS to connect with a flight controller with some other sysid, you'll need to edit the vehicle config. Take a look at [Changing the sysid](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/vehicle-configuration#changing-the-sysid) for more information. [PreviousAutopilot Integrationchevron-left](https://docs.theseus.us/micro-vps/autopilot-integration) [NextArduPilotchevron-right](https://docs.theseus.us/micro-vps/autopilot-integration/ardupilot) Last updated 3 months ago * [Messages Sent](https://docs.theseus.us/micro-vps/autopilot-integration/mavlink#messages-sent) * [Messages Received](https://docs.theseus.us/micro-vps/autopilot-integration/mavlink#messages-received) * [System ID (sysid)](https://docs.theseus.us/micro-vps/autopilot-integration/mavlink#system-id-sysid) --- # Feature List | Theseus Docs [MAVLink Connectionchevron-right](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/mavlink-connection) [System Healthchevron-right](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/system-health) [Vehicle Selectionchevron-right](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/vehicle-selection) [Recording Managementchevron-right](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/recording-management) [Home Position Settingchevron-right](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/home-position-setting) [Maps Managementchevron-right](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/maps-management) [VPS Firmware Updateschevron-right](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/vps-firmware-updates) [Deactivating Map Matchingchevron-right](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/deactivating-map-matching) [Theseus Accountchevron-right](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/theseus-account) [Vehicle Configurationchevron-right](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/vehicle-configuration) [PreviousQuick Startchevron-left](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/quick-start) [NextMAVLink Connectionchevron-right](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/mavlink-connection) --- # Generate maps | Theseus Docs [hashtag](https://docs.theseus.us/gcs-software/legacy-software/theseus-maps-app/generate-maps#recent-changes) Recent Changes --------------------------------------------------------------------------------------------------------------------------------- We recently changed how maps are stored and generated so you can make larger maps, and as well as more efficient non-rectangular maps. If flying near the edge of the map is something you plan on doing, please make sure all your software is up to date. The important changes are listed below: * New maps require VPS firmware version >=1.7.7 to work properly * Versions 1.7.4-1.7.6 will not be able to check the boundary, so leaving the map area runs the risk of breaking the VPS * Maps are now generated to cover the entire selected area which means you are good to fly to the edges of the map. No buffer is needed anymore * Since maps have a buffer zone around the selected area built in, map generation takes slightly longer due to more tiles needing to be processed [hashtag](https://docs.theseus.us/gcs-software/legacy-software/theseus-maps-app/generate-maps#map-generation) Map Generation --------------------------------------------------------------------------------------------------------------------------------- To generate maps follow these three steps on the Theseus Maps app: 1. Search for your location [1\. Search location](https://docs.theseus.us/gcs-software/legacy-software/theseus-maps-app/generate-maps#id-1.-search-location) 2. Select your area [2\. Select area](https://docs.theseus.us/gcs-software/legacy-software/theseus-maps-app/generate-maps#id-2.-select-area) 3. Launch map generation [3\. Create maps](https://docs.theseus.us/gcs-software/legacy-software/theseus-maps-app/generate-maps#id-3.-create-maps) circle-info You can expect the map generation to take ~1 hour per 1000 square km. The completed maps take up ~1GB per 200 square km so downloading a large map may take a long time with slow internet connection. [hashtag](https://docs.theseus.us/gcs-software/legacy-software/theseus-maps-app/generate-maps#id-1.-search-location) 1\. Search location --------------------------------------------------------------------------------------------------------------------------------------------- Either enter the name of your location in the search bar or enter the WGS84 coordinates of your area. Hit enter and the map will pan to your location automatically. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FFHMgDVuQ2pylFNYlY1aS%252FScreenshot%25202025-07-22%2520at%25205.37.45%25E2%2580%25AFPM%2520copy.png%3Falt%3Dmedia%26token%3D1e023679-896b-405a-bb89-efa58793009f&width=768&dpr=3&quality=100&sign=a6426fd1&sv=2) ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FsZCu1GqKoe9WutxroOu1%252FScreenshot%25202025-07-22%2520at%25207.14.20%25E2%2580%25AFPM.png%3Falt%3Dmedia%26token%3D1e0f004f-1ce4-4ba2-b03f-80559b355464&width=768&dpr=3&quality=100&sign=9d7b3ef8&sv=2) [hashtag](https://docs.theseus.us/gcs-software/legacy-software/theseus-maps-app/generate-maps#id-2.-select-area) 2\. Select area ------------------------------------------------------------------------------------------------------------------------------------- Click the draw area button. This allows you to drag your area onto the map below. A widget appears with information about the size of the selected area, boundaries. circle-exclamation **Your selected area size must be between 50 and 50,000 sqkm.** Newly generated maps cover the entire selected area. If using maps from before Nov 19th, 2025, make sure that the boundaries of your autonomous mission include at least 2 km of padding to the edges of the selected map area. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FLqLHa8FPvjZOeXwMlzul%252FScreenshot%25202025-07-22%2520at%25205.37.45%25E2%2580%25AFPM%2520copy%25202.png%3Falt%3Dmedia%26token%3D0027c9d9-df86-433e-ab8b-011190c4cfe9&width=768&dpr=3&quality=100&sign=876cac0f&sv=2) ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FPeD7GzD6X66VVjANnLOL%252FScreenshot%25202025-07-22%2520at%25207.18.31%25E2%2580%25AFPM.png%3Falt%3Dmedia%26token%3De4ccd4e8-b630-403e-8728-fe3093bfa13f&width=768&dpr=3&quality=100&sign=3b774c7d&sv=2) [hashtag](https://docs.theseus.us/gcs-software/legacy-software/theseus-maps-app/generate-maps#id-3.-create-maps) 3\. Create maps ------------------------------------------------------------------------------------------------------------------------------------- Once you've selected your map area, click the Generate Maps button in the top right section of the dashboard. This will prompt with you a confirmation modal. Confirm your request to start generating your maps. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252Ff2ZucBW5a6JfK7KPbIbv%252FScreenshot%25202025-07-22%2520at%25207.26.12%25E2%2580%25AFPM.png%3Falt%3Dmedia%26token%3D8d0b345d-db95-4854-a722-c88310ff4d69&width=768&dpr=3&quality=100&sign=d3b39f47&sv=2) ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252Fier3PDTSZs7vyHnfMPOj%252FScreenshot%25202025-07-22%2520at%25207.31.46%25E2%2580%25AFPM.png%3Falt%3Dmedia%26token%3D32bf1eb3-8932-448b-9ff0-07a8a2809e1e&width=768&dpr=3&quality=100&sign=95a06015&sv=2) [hashtag](https://docs.theseus.us/gcs-software/legacy-software/theseus-maps-app/generate-maps#what-happens-under-the-hood) What happens under the hood? ------------------------------------------------------------------------------------------------------------------------------------------------------------ Theseus queries its satellite map provider for imagery over the area you selected. Theseus' map matching technology is invariant to seasonal and landscape changes in the imagery. We employ commerical-grade satellite imagery with medium resolution. [hashtag](https://docs.theseus.us/gcs-software/legacy-software/theseus-maps-app/generate-maps#large-and-non-rectangular-maps) Large & Non-rectangular maps --------------------------------------------------------------------------------------------------------------------------------------------------------------- Theseus now supports generating maps larger than 2000 square km as well as maps that fit any desired shape. You can custom make a map to fit your mission, or just choose a large area if you plan on mostly flying in the same place. [PreviousCreate accountchevron-left](https://docs.theseus.us/gcs-software/legacy-software/theseus-maps-app/create-account) [NextDownload mapschevron-right](https://docs.theseus.us/gcs-software/legacy-software/theseus-maps-app/download-maps) Last updated 3 months ago * [Recent Changes](https://docs.theseus.us/gcs-software/legacy-software/theseus-maps-app/generate-maps#recent-changes) * [Map Generation](https://docs.theseus.us/gcs-software/legacy-software/theseus-maps-app/generate-maps#map-generation) * [1\. Search location](https://docs.theseus.us/gcs-software/legacy-software/theseus-maps-app/generate-maps#id-1.-search-location) * [2\. Select area](https://docs.theseus.us/gcs-software/legacy-software/theseus-maps-app/generate-maps#id-2.-select-area) * [3\. Create maps](https://docs.theseus.us/gcs-software/legacy-software/theseus-maps-app/generate-maps#id-3.-create-maps) * [What happens under the hood?](https://docs.theseus.us/gcs-software/legacy-software/theseus-maps-app/generate-maps#what-happens-under-the-hood) * [Large & Non-rectangular maps](https://docs.theseus.us/gcs-software/legacy-software/theseus-maps-app/generate-maps#large-and-non-rectangular-maps) --- # Dead Reckoning Switch | Theseus Docs Theseus provides a Lua script that allows pilots to disable GPS position in the EKF with a 2- or 3-position RC switch. Disabling this position input allows your UAV to dead reckon using the EKF sensor data with Cyclops providing localized position updates. The script does this by setting the value of the `EK3_SRC1_POSXY` parameter to 3 (GPS) or 0 (Disabled). Upload the script below to ArduPilot to enable this functionality: file-download 3KB [EK3\_POSXY\_SwitchScript.lua](https://3178815652-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhUdZltvGJCfBMBzRuwSC%2Fuploads%2F3fj6Rw8rBcn7nGfX9z93%2FEK3_POSXY_SwitchScript.lua?alt=media&token=4a37a7e9-4144-4ff1-9b4e-e7ffb2dae7ca) downloadDownload[arrow-up-right-from-squareOpen](https://3178815652-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhUdZltvGJCfBMBzRuwSC%2Fuploads%2F3fj6Rw8rBcn7nGfX9z93%2FEK3_POSXY_SwitchScript.lua?alt=media&token=4a37a7e9-4144-4ff1-9b4e-e7ffb2dae7ca) ### [hashtag](https://docs.theseus.us/cyclops/autopilot-integration/dead-reckoning-switch#configuring-an-rc-switch) Configuring an RC Switch Select which switch on your controller you want to use and identify its corresponding RC channel in your mixing model. On your GCS software, set the corresponding RC option to Scripting 4 (value 303). _For example, if your switch is on RC channel 7, set_ `RC7_OPTION = 303`. circle-info To enable this script in ArduPilot, set `SCR_USER2=1` in the Full Parameters List. To prevent the script from running, set this parameter to 0. circle-exclamation Note: The script functionality is hardcoded to Scripting 4 (value 303) within the provided Lua script. If you are using multiple Lua scripts on the same flight controller, make sure that those scripts do not use Scripting 4. ### [hashtag](https://docs.theseus.us/cyclops/autopilot-integration/dead-reckoning-switch#switch-positions) Switch Positions * **LOW / MID**: GPS position source **enabled** (`EK3_SRC1_POSXY = 3`) * **HIGH**: GPS position source **disabled** (`EK3_SRC1_POSXY = 0`) ### [hashtag](https://docs.theseus.us/cyclops/autopilot-integration/dead-reckoning-switch#startup-behavior) Startup Behavior On boot, the script reads the current switch position and immediately sets EK3\_SRC1\_POSXY to match. If the switch is in the HIGH position when the flight controller boots, GPS position will be disabled as soon as the script initializes. If SCR\_USER2 is set to 0, the script will not run and EK3\_SRC1\_POSXY will remain at whatever value is set in your parameters. circle-check The script prints a status message to the GCS every 5 seconds indicating the current GPS position source state, so you can confirm the active configuration at a glance during flight. [PreviousQGroundControlchevron-left](https://docs.theseus.us/cyclops/autopilot-integration/qgroundcontrol) [NextCyclops Safety Switchchevron-right](https://docs.theseus.us/cyclops/autopilot-integration/cyclops-safety-switch) Last updated 1 month ago * [Configuring an RC Switch](https://docs.theseus.us/cyclops/autopilot-integration/dead-reckoning-switch#configuring-an-rc-switch) * [Switch Positions](https://docs.theseus.us/cyclops/autopilot-integration/dead-reckoning-switch#switch-positions) * [Startup Behavior](https://docs.theseus.us/cyclops/autopilot-integration/dead-reckoning-switch#startup-behavior) --- # Camera Calibration | Theseus Docs circle-exclamation Refer to [Calibrating your camera](https://docs.theseus.us/gcs-software/vozilla-2.0/cameras/calibrating-your-camera) for instructions on how to calibrate your camera using Vozilla 2.0+ [hashtag](https://docs.theseus.us/cyclops/vehicle-integration/camera-calibration#camera-calibration) Camera Calibration ---------------------------------------------------------------------------------------------------------------------------- ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FNt4oyV0Lv5FB1u184Xwj%252FUntitled%2520design.gif%3Falt%3Dmedia%26token%3D05b79a3b-6dda-44b6-91b0-0ebf6f8db78d&width=768&dpr=3&quality=100&sign=5284eca5&sv=2) The Camera Calibration page in Vozilla lets you generate and save a calibration file (camera intrinsics) for your camera. A good calibration improves Cyclops tracking accuracy and reduces distortion, especially at the edges of the image. #### [hashtag](https://docs.theseus.us/cyclops/vehicle-integration/camera-calibration#what-you-need) What you need * A 7×8 asymmetric circle grid calibration target, found below. file-image 314KB [circle\_grid\_7x9\_30mm.png](https://3178815652-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhUdZltvGJCfBMBzRuwSC%2Fuploads%2F4tWNfIHIPQvMV5kvU6GG%2Fcircle_grid_7x9_30mm.png?alt=media&token=7b1361cb-b4d3-42a6-830d-e5924517d850) image downloadDownload[arrow-up-right-from-squareOpen](https://3178815652-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhUdZltvGJCfBMBzRuwSC%2Fuploads%2F4tWNfIHIPQvMV5kvU6GG%2Fcircle_grid_7x9_30mm.png?alt=media&token=7b1361cb-b4d3-42a6-830d-e5924517d850) * For thermal cameras, we’ve found it works best to 3D print the grid and place it on a uniform warm surface so the pattern is clearly visible. A step file for this grid can be found below. file-download 310KB [Cutout Thermal Calibration.STEP](https://3178815652-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhUdZltvGJCfBMBzRuwSC%2Fuploads%2FRve8McpU2VgRAnaMHSLj%2FCutout%20Thermal%20Calibration.STEP?alt=media&token=8ed2b62f-62c9-4e8d-8491-dbbb2f4e8217) downloadDownload[arrow-up-right-from-squareOpen](https://3178815652-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhUdZltvGJCfBMBzRuwSC%2Fuploads%2FRve8McpU2VgRAnaMHSLj%2FCutout%20Thermal%20Calibration.STEP?alt=media&token=8ed2b62f-62c9-4e8d-8491-dbbb2f4e8217) circle-info Placing the 3D print against a monitor works well for thermal cameras, providing a consistent warm background. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FktmDtNPnsPtqBtmUACPc%252Fimage.png%3Falt%3Dmedia%26token%3D7c1fc4c5-b319-44c7-9935-030df9505d79&width=300&dpr=3&quality=100&sign=a330b92&sv=2) #### [hashtag](https://docs.theseus.us/cyclops/vehicle-integration/camera-calibration#capture-calibration-images) Capture calibration images 1. Connect your camera and open the Camera Calibration page. 2. Use Capture Frame to record images of the detected grid. 3. Move the target through a variety of: * angles (tilt and rotate) * positions (across the full frame, including corners) * distances (close, medium, far) For best results, capture 20+ frames where the pattern is cleanly detected. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FCq52fwlcHHG63F7Cz38V%252FUntitled%2520design%281%29.gif%3Falt%3Dmedia%26token%3D9a978119-a89f-4c0b-8b64-ed3e9c83390e&width=768&dpr=3&quality=100&sign=3360dd7&sv=2) circle-exclamation If your target is white dots on a black background, enable Inverted Pattern so detection works correctly. #### [hashtag](https://docs.theseus.us/cyclops/vehicle-integration/camera-calibration#compute-and-save) Compute and save After capturing enough frames, Vozilla will prompt you to compute the calibration. Save it using the default name or a descriptive name (helpful if you switch cameras or lenses later). The saved calibration can be reused in the future. #### [hashtag](https://docs.theseus.us/cyclops/vehicle-integration/camera-calibration#verify-quality) Verify quality After saving, use the Distortion toggle (bottom-right of the camera view) to preview the effect of the calibration. A good calibration should reduce warping and keep lines and features looking consistent across the frame. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FqRbPkIasgYQeze2qtCNx%252FUntitled%2520design%283%29.gif%3Falt%3Dmedia%26token%3D31cdcf13-7a2e-47b0-b6a9-30b4b63afc6a&width=768&dpr=3&quality=100&sign=462d0df5&sv=2) #### [hashtag](https://docs.theseus.us/cyclops/vehicle-integration/camera-calibration#advanced-options) Advanced options triangle-exclamation We don’t recommend manually editing calibration values or entering custom intrinsics unless you’re an advanced user. If needed, you can also create a calibration by selecting a starting point from the Camera Presets dropdown. [PreviousMechanical Installationchevron-left](https://docs.theseus.us/cyclops/vehicle-integration/mechanical-installation) [NextFlight Controllerchevron-right](https://docs.theseus.us/cyclops/vehicle-integration/flight-controller) Last updated 1 month ago --- # Home Position Setting | Theseus Docs Theseus Micro VPS enables operation in GPS-denied environments from takeoff to landing. It allows you to set your home position/launch location from the Theseus GCS app without GPS. circle-exclamation Your launch location needs to be located within your uploaded map area. See [Maps Management](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/maps-management) . [hashtag](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/home-position-setting#setting-home-position-with-wgs84-coordinates) Setting Home Position with WGS84 Coordinates ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Navigate to the "Position" tab on the left menu. Scroll down to the bottom of the page and enter a latitude/longitude pair into the respective fields. Click the "Update Home Position" button to set the home position on the device. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FT3b6Il9o8htTCWOqS5fl%252Fhomeposition%2520update.png%3Falt%3Dmedia%26token%3Dfbce0354-d5e9-4466-a51b-99f463a59866&width=768&dpr=3&quality=100&sign=3db436f3&sv=2) To confirm that your home position was set properly, refresh the page and navigate to the top of the "Position" page. [hashtag](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/home-position-setting#setting-home-position-with-search-and-map-cursor) Setting Home Position with Search and Map Cursor ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Alternatively, the "Position" page allows you to search the name of the location you would like to set your home position at and drag your cursor on the map. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FEJR3Yb3nCt384khaqWqy%252Fsearchlocation%2520homepoition.png%3Falt%3Dmedia%26token%3Dc6e4ebb3-8f2d-42cf-849c-f7ff65b91178&width=768&dpr=3&quality=100&sign=f9e429ff&sv=2) The cursor automatically updates the latitude and longitude fields as set above. Click the "Update Home Position" button once you've set your cursor at the desired location. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FfB5SuQyZwPUN4dMpCDhs%252Fsethomeposition.png%3Falt%3Dmedia%26token%3Dc3cdf6a2-175f-4469-8a22-7c81f2ee8fb3&width=768&dpr=3&quality=100&sign=d3495a6&sv=2) The home position should be located within the boundary of the map you currently have selected. If the select a point outside the the map boundary, you will be prompted to confirm the selection. If you get this prompt, check back to confirm you have the correct maps selected. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FSvmUVddTKwrKoYDeI0Ua%252Fimage.png%3Falt%3Dmedia%26token%3Dde2438ca-9d8e-4b1d-ba5a-aab6fff6269b&width=768&dpr=3&quality=100&sign=d53337fb&sv=2) circle-info **Restart the VPS** via the VPS control tab after selecting new maps. [PreviousRecording Managementchevron-left](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/recording-management) [NextMaps Managementchevron-right](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/maps-management) Last updated 3 months ago * [Setting Home Position with WGS84 Coordinates](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/home-position-setting#setting-home-position-with-wgs84-coordinates) * [Setting Home Position with Search and Map Cursor](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/home-position-setting#setting-home-position-with-search-and-map-cursor) --- # Mechanical Installation | Theseus Docs There are 2 steps to mounting Cyclops on your aircraft: 1. Properly [Mounting your camera](https://docs.theseus.us/cyclops/vehicle-integration/mechanical-installation#mounting-your-camera) 2. Calculating your [Mounting Calibration](https://docs.theseus.us/cyclops/vehicle-integration/mechanical-installation#mounting-calibration) [hashtag](https://docs.theseus.us/cyclops/vehicle-integration/mechanical-installation#mounting-your-camera) Mounting your camera ------------------------------------------------------------------------------------------------------------------------------------- Your camera should be mounted under the wings or on the belly of your aircraft. The ideal mounting solution has the camera **parallel to the ground** during normal flight. Our test flights have demonstrated that Cyclops can tolerate some amount of obstruction, but performance will degrade. Ideally your camera can see **as much of the ground as possible.** circle-exclamation Add vibration isolation to your mounting solution if you are mounting near a source of vibration or on a rigid surface. ### [hashtag](https://docs.theseus.us/cyclops/vehicle-integration/mechanical-installation#example-mounting-solutions) Example mounting solutions file-download 9MB [Thermal Camera Mount.step](https://3178815652-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhUdZltvGJCfBMBzRuwSC%2Fuploads%2FEyZJ8lljZjdLQxq2s2J1%2FThermal%20Camera%20Mount.step?alt=media&token=4d1e7dad-b4d8-462e-8996-a3712dc608d7) downloadDownload[arrow-up-right-from-squareOpen](https://3178815652-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhUdZltvGJCfBMBzRuwSC%2Fuploads%2FEyZJ8lljZjdLQxq2s2J1%2FThermal%20Camera%20Mount.step?alt=media&token=4d1e7dad-b4d8-462e-8996-a3712dc608d7) Once you've settled on your mounting solution, proceed to measuring the orientation and translation of the sensor relative to your flight controller. [hashtag](https://docs.theseus.us/cyclops/vehicle-integration/mechanical-installation#mounting-calibration) Mounting Calibration ------------------------------------------------------------------------------------------------------------------------------------- Here's a calibration walk through with a camera setup on our internal test VTOL plane (named Songbird). Cyclops uses attitude and relative position data from the flight controller. It is crucial to calibrate the camera relative to the flight controller for Cyclops to perform as expected. ### [hashtag](https://docs.theseus.us/cyclops/vehicle-integration/mechanical-installation#measurement-steps) Measurement steps 1. Measure the **translation** between the camera and the flight controller 1. Measure the distance on the **X axis (forward/backward)**. The camera is mounted 10 cm **behind** the flight controller. 2. Measure the distance on the **Y axis (left/right)**. The camera and flight controller are aligned, so we have 0 m of translation. 3. Measure the distance on the **Z axis (down/up).** The camera is mounted 12 cm **below** the flight controller. 2. Measure the orientation of the camera relative to the flight controller. _Our camera is aligned with the flight controller (pointing straight down, no rotation). We have 0 degrees of pitch, roll or yaw._ ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FOmWl9m2b7woI5j7NAhwt%252FIMG_4048.gif%3Falt%3Dmedia%26token%3D81011534-1cda-4de8-af36-822c3f5c70c8&width=768&dpr=3&quality=100&sign=d8323918&sv=2) ### [hashtag](https://docs.theseus.us/cyclops/vehicle-integration/mechanical-installation#configuration-steps) Configuration steps circle-info For those using Vozilla 2.0+ refer to [Creating a new vehicle](https://docs.theseus.us/gcs-software/vozilla-2.0/vehicles/creating-a-new-vehicle) for instructions on how to save your custom vehicle preset. Once I have all my measurements, I use the **Vehicle Calibration** page on Vozilla to generate the calibration file for my vehicle. Our vehicle frame is in North East Down frame. 1. Select the **Custom** preset in the Vehicle Preset drop down. This gives us a blank configuration. 2. Give a name to my vehicle configuration in the Configuration Name box: _Songbird_. 3. Configure the translation: 1. The camera is 10 cm behind the flight controller, so I **input -0.1 in the X (Forward) box**. 2. The camera is aligned with the FC, I leave the Y input box at 0. 3. The camera is 12 cm below the FC, so I **input 0.12 in the Z (Down) box.** 4. Configure the rotation. _We don't have any rotation, so I leave all the rotation fields at zero._ 5. Visually inspect the position of the VPS (green) relative to the flight controller (red). The translation and rotation should match with your setup on your vehicle. 6. Once everything looks correct, **click the Save to Cloud button**. circle-info You need to save the vehicle configuration. If your vehicle is connected to Vozilla, the configuration will be uploaded automatically. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FJ9RaDD9F0Ar8gzcHWLDp%252FUntitled%2520design%282%29.gif%3Falt%3Dmedia%26token%3Dbc41a2a3-3ff9-4114-9457-901c8fb50a4d&width=768&dpr=3&quality=100&sign=bd517c61&sv=2) circle-exclamation Before flying, verify that the correct vehicle configuration is selected in the dropdown menu. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FQFlPzfqvA338y6kXtY7h%252Fimage.png%3Falt%3Dmedia%26token%3D9f5f43cd-e215-4cad-a8b4-766d4f93d192&width=300&dpr=3&quality=100&sign=62cc9bb6&sv=2) [PreviousVehicle Integrationchevron-left](https://docs.theseus.us/cyclops/vehicle-integration) [NextCamera Calibrationchevron-right](https://docs.theseus.us/cyclops/vehicle-integration/camera-calibration) Last updated 1 month ago * [Mounting your camera](https://docs.theseus.us/cyclops/vehicle-integration/mechanical-installation#mounting-your-camera) * [Example mounting solutions](https://docs.theseus.us/cyclops/vehicle-integration/mechanical-installation#example-mounting-solutions) * [Mounting Calibration](https://docs.theseus.us/cyclops/vehicle-integration/mechanical-installation#mounting-calibration) * [Measurement steps](https://docs.theseus.us/cyclops/vehicle-integration/mechanical-installation#measurement-steps) * [Configuration steps](https://docs.theseus.us/cyclops/vehicle-integration/mechanical-installation#configuration-steps) --- # Releases | Theseus Docs The maps app has tabs to view and download software releases. [hashtag](https://docs.theseus.us/gcs-software/legacy-software/theseus-maps-app/releases#latest-release) Latest Release ---------------------------------------------------------------------------------------------------------------------------- ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FFYEiMQNX8jX9TXcqt7l4%252F2025-09-25_10-22.png%3Falt%3Dmedia%26token%3D23e2d256-ee03-48a2-bcd8-12f558af36fc&width=768&dpr=3&quality=100&sign=235e64aa&sv=2) The "Latest Release" tab shows only the most recent release for the Micro VPS. Also included in these releases are the latest GCS App version. If the release is missing the binaries for the GCS App it means there were no new updates to the GCS App since the last release. [hashtag](https://docs.theseus.us/gcs-software/legacy-software/theseus-maps-app/releases#releases) Releases ---------------------------------------------------------------------------------------------------------------- ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FgTGOdw1ZWuCE7yJlb7cf%252F2025-09-25_10-23.png%3Falt%3Dmedia%26token%3D72996bc6-d480-400c-b675-f85ed6ba4461&width=768&dpr=3&quality=100&sign=a12548a&sv=2) The "Releases" tab show all software releases for Theseus products. Changelogs for the maps app can also be found here, but they do not have binaries since the maps app is hosted in the cloud. ### [hashtag](https://docs.theseus.us/gcs-software/legacy-software/theseus-maps-app/releases#subscribe-to-release-notes) Subscribe to release notes You can subscribe to be notified by email about our software releases and stay up to date with what the team is working. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FlPmIq6U7QVveAe6nQg9U%252F2025-10-20_12-02.png%3Falt%3Dmedia%26token%3Defc4c9f0-3b2f-4edb-a677-817be1e3256f&width=768&dpr=3&quality=100&sign=dd1eb05d&sv=2) You can also find release notes posted in the releases channel of our support discord server. [PreviousViewing Mapschevron-left](https://docs.theseus.us/gcs-software/legacy-software/theseus-maps-app/viewing-maps) [NextMAVLinkchevron-right](https://docs.theseus.us/gcs-software/mavlink) Last updated 3 months ago * [Latest Release](https://docs.theseus.us/gcs-software/legacy-software/theseus-maps-app/releases#latest-release) * [Releases](https://docs.theseus.us/gcs-software/legacy-software/theseus-maps-app/releases#releases) * [Subscribe to release notes](https://docs.theseus.us/gcs-software/legacy-software/theseus-maps-app/releases#subscribe-to-release-notes) --- # Pre-Requisites | Theseus Docs [hashtag](https://docs.theseus.us/cyclops/pre-requisites#uav-requirements) UAV Requirements ------------------------------------------------------------------------------------------------ Cyclops only works with fixed wing platforms that have an airspeed sensor. The UAV must have a mounting point for your Cyclops camera module that provides an unobstructed view of the terrain below the vehicle. circle-info In the future we plan to add support to Cyclops on quads and other non-fixed wing drones, but right now Cyclops cannot be run on such systems. [hashtag](https://docs.theseus.us/cyclops/pre-requisites#power-and-data-requirements) Power and Data Requirements ---------------------------------------------------------------------------------------------------------------------- You must have power source(s) for your Cyclops system that meet the specs provided by the onboard computer and camera manufacturer. For example, Raspberry Pi 5 accepts 5V DC input power via its GPIO rail. circle-info If your camera and flight computer have different power specs, be prepared to power them separately! [hashtag](https://docs.theseus.us/cyclops/pre-requisites#flight-controller-requirements) Flight Controller Requirements ---------------------------------------------------------------------------------------------------------------------------- Theseus has integrated with the following flight controller hardware successfully: * Cube Orange + The Cyclops system requires a single UART serial port on the flight controller to run MAVLink telemetry to the compute module. See [Flight Controller](https://docs.theseus.us/cyclops/vehicle-integration/flight-controller) for more information on flight controller integration. Your flight controller must have a barometer (or another altitude source that is not GPS) as well as a reliable compass/magnetometer and airspeed sensor. See [Autopilot Integration](https://docs.theseus.us/cyclops/autopilot-integration) for more information on how Cyclops interfaces with ArduPilot. circle-info Cyclops currently **only supports ArduPilot**. If you would like to integrate other autopilot software, contact our team. [hashtag](https://docs.theseus.us/cyclops/pre-requisites#computer-requirements) Computer Requirements ---------------------------------------------------------------------------------------------------------- Resource Minimum Recommended Architecture ARM64 ARM64 CPU 2 cores @ 2.4 GHz 4 cores @ 2.4 GHz RAM 4 GB 8 GB Storage 32 GB free 256 GB free OS Ubuntu 22.04 Ubuntu 24.04 circle-info Raspberry pi 5 8GB is the recommended computer to run Cyclops. ### [hashtag](https://docs.theseus.us/cyclops/pre-requisites#soms) SOMs * Raspberry Pi 5 8GB (recommended): * [https://www.amazon.com/Raspberry-Pi-8GB-SC1112-Quad-core/dp/B0CK2FCG1Karrow-up-right](https://www.amazon.com/Raspberry-Pi-8GB-SC1112-Quad-core/dp/B0CK2FCG1K) (US) * [https://prom.ua/p2872354832-mikrokontroler-raspberry-8gb.htmlarrow-up-right](https://prom.ua/p2872354832-mikrokontroler-raspberry-8gb.html) (Ukraine) * NanoPi R6C 8GB: * [https://www.amazon.com/Rockchip-RK3588S-Ethernet-Support-SingleBoard/dp/B0BYRR783B?th=1arrow-up-right](https://www.amazon.com/Rockchip-RK3588S-Ethernet-Support-SingleBoard/dp/B0BYRR783B?th=1) (US) See [Pi 5 Walkthrough](https://docs.theseus.us/cyclops/cyclops-computer/pi-5-walkthrough) for more information on how to setup your raspberry pi for Cyclops. ### [hashtag](https://docs.theseus.us/cyclops/pre-requisites#active-cooling) Active Cooling It is recommended to use an active cooler on your Raspberry Pi to reduce the chance of thermal throttling. * [https://a.co/d/04mha9l0arrow-up-right](https://a.co/d/04mha9l0) (US) * [https://prom.ua/ua/m-3513148981465497898-raspberry-active-cooler.html?p=2250872371arrow-up-right](https://prom.ua/ua/m-3513148981465497898-raspberry-active-cooler.html?p=2250872371) (Ukraine) ### [hashtag](https://docs.theseus.us/cyclops/pre-requisites#storage) Storage It is recommended to use a NVMe disk for storage, with a hat on the raspberry pi. It is not important to have a high-end NVME, as the Pi is limited to PCIe Gen 2 speeds (~500 MB/s practical). * Pi 5 NVMe hat: * [https://www.amazon.com/Raspberry-Pi-RPI-MD2-HATP-M-2-HAT/dp/B0CRDY6Q3Carrow-up-right](https://www.amazon.com/Raspberry-Pi-RPI-MD2-HATP-M-2-HAT/dp/B0CRDY6Q3C) (US) * [https://www.amazon.com/Geekworm-X1002-Peripheral-Bottom-Raspberry/dp/B0CQYBBNP5arrow-up-right](https://www.amazon.com/Geekworm-X1002-Peripheral-Bottom-Raspberry/dp/B0CQYBBNP5) (US) * [https://prom.ua/p2443489790-raspberry-hat-nakladka.htmlarrow-up-right](https://prom.ua/p2443489790-raspberry-hat-nakladka.html) (Ukraine) * [https://prom.ua/ua/m-583047955808308296-plata-rasshireniya-seedstudio.html?p=2601907163arrow-up-right](https://prom.ua/ua/m-583047955808308296-plata-rasshireniya-seedstudio.html?p=2601907163) (Ukraine - M.2 2280 compatible) * M.2 2242 256GB NVME SSD (Samsung PM991): * [https://www.amazon.com/Samsung-256GB-PM991-MZALQ256HAJD-MZ-ALQ2560/dp/B08K79T9G5arrow-up-right](https://www.amazon.com/Samsung-256GB-PM991-MZALQ256HAJD-MZ-ALQ2560/dp/B08K79T9G5) (US) * [https://prom.ua/m-4038680394547299264-ssd-nakopichuvach-samsung.html?p=2882454233arrow-up-right](https://prom.ua/m-4038680394547299264-ssd-nakopichuvach-samsung.html?p=2882454233) (Ukraine) * alternative: M.2 2280 512GB/1TB/2TB NVME SSD ( Silicon Power P34A60, Crucial P310, etc) * [https://a.co/d/06y5iqnCarrow-up-right](https://a.co/d/06y5iqnC) (US - Silicon Power P34A60) * [https://prom.ua/p1722044277-silicon-power-1tb.htmlarrow-up-right](https://prom.ua/p1722044277-silicon-power-1tb.html) (Ukraine) * [https://a.co/d/032Omyxparrow-up-right](https://a.co/d/032Omyxp) (US - Crucial P310) * [https://prom.ua/m-461289430496965065-ssd-nakopitel-crucial.html?p=2941046957arrow-up-right](https://prom.ua/m-461289430496965065-ssd-nakopitel-crucial.html?p=2941046957) (Ukraine) circle-exclamation Avoid using the boot SD card for storage. [hashtag](https://docs.theseus.us/cyclops/pre-requisites#camera-requirements) Camera Requirements ------------------------------------------------------------------------------------------------------ The Cyclops system requires a single wide angle digital video camera for full operation. If you are using an analog video camera (i.e. Runcam or other common FPV cameras), you will need an analog to digital converter. These modules usually have low voltage limitations, so be prepared to power your camera separately in this case. Minimum Recommended Resolution 256 x 192 1280 x 800 Type EO (daytime-only) LWIR (nighttime) Interface USB \- Shutter Rolling Global circle-exclamation We recommend using **fixed-focus** cameras. **Global shutters** are preferred over rolling shutters to minimize motion blur during flight. EO (OV9281 UVC): * [https://www.amazon.com/Arducam-Distortion-Microphones-Computer-Raspberry/dp/B096M5DKY6arrow-up-right](https://www.amazon.com/Arducam-Distortion-Microphones-Computer-Raspberry/dp/B096M5DKY6) (US) * [https://prom.ua/p2768422777-usb-kamera-arducam.htmlarrow-up-right](https://prom.ua/p2768422777-usb-kamera-arducam.html) (Ukraine) * [https://www.arducam.com/arducam-120fps-global-shutter-usb-camera-board-1mp-720p-ov9281-uvc-webcam-module-with-low-distortion-m12-lens-without-microphones-for-computer-laptop-android-device-and-raspberry-pi.htmlarrow-up-right](https://www.arducam.com/arducam-120fps-global-shutter-usb-camera-board-1mp-720p-ov9281-uvc-webcam-module-with-low-distortion-m12-lens-without-microphones-for-computer-laptop-android-device-and-raspberry-pi.html) LWIR: * FLIR Boson+ 640 * FLIR Boson 320 * Caddx 256x192 * [https://prom.ua/ua/p2490791368-teplovizionnaya-fpv-kamera.htmlarrow-up-right](https://prom.ua/ua/p2490791368-teplovizionnaya-fpv-kamera.html) (Ukraine) * [https://www.aliexpress.com/item/1005009885355752.htmlarrow-up-right](https://www.aliexpress.com/item/1005009885355752.html) circle-info Cyclops is compatible with EO or thermal cameras; however, if you plan on flying after sunset, a thermal camera is required. [hashtag](https://docs.theseus.us/cyclops/pre-requisites#components) Components ------------------------------------------------------------------------------------ Before proceeding with integration, make sure that you have the following: * Cyclops system hardware (including camera and flight computer, UART cables, power cables) * UAV with ArduPilot-compatible flight controller, magnetometer, barometer, and airspeed sensor * Windows laptop * Ethernet cable * Power source for UAV and Cyclops system circle-check Check that you have all listed components and proceed to the next section. [PreviousGetting Startedchevron-left](https://docs.theseus.us/cyclops/getting-started) [NextCyclops Computerchevron-right](https://docs.theseus.us/cyclops/cyclops-computer) Last updated 6 days ago * [UAV Requirements](https://docs.theseus.us/cyclops/pre-requisites#uav-requirements) * [Power and Data Requirements](https://docs.theseus.us/cyclops/pre-requisites#power-and-data-requirements) * [Flight Controller Requirements](https://docs.theseus.us/cyclops/pre-requisites#flight-controller-requirements) * [Computer Requirements](https://docs.theseus.us/cyclops/pre-requisites#computer-requirements) * [SOMs](https://docs.theseus.us/cyclops/pre-requisites#soms) * [Active Cooling](https://docs.theseus.us/cyclops/pre-requisites#active-cooling) * [Storage](https://docs.theseus.us/cyclops/pre-requisites#storage) * [Camera Requirements](https://docs.theseus.us/cyclops/pre-requisites#camera-requirements) * [Components](https://docs.theseus.us/cyclops/pre-requisites#components) --- # Mission Planner | Theseus Docs This page shows you how to configure your ArduPilot UAV described in [ArduPilot](https://docs.theseus.us/micro-vps/autopilot-integration/ardupilot) using Mission Planner. To begin, open Mission Planner and connect to your UAV. [hashtag](https://docs.theseus.us/cyclops/autopilot-integration/mission-planner#configuring-serial-ports) Configuring Serial Ports --------------------------------------------------------------------------------------------------------------------------------------- In Mission Planner, click on "_SETUP_", then "_Mandatory Hardware_", then "_Serial Ports_". Find the serial port that matches the port you used in [Flight Controller](https://docs.theseus.us/cyclops/vehicle-integration/flight-controller) and configure the **Protocol** to **MAVLink 2** and the **Speed (baud rate)** to **921600**. We use a default baud of 921600, but this is configurable and can be changed from Vozilla [Configuring MAVProxy](https://docs.theseus.us/gcs-software/vozilla-gcs/system#configuring-mavproxy) ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FvckJIum9C5JfhqLc36N2%252Fserialports.png%3Falt%3Dmedia%26token%3D9f457683-1062-4cbc-b222-02918e1bbad5&width=768&dpr=3&quality=100&sign=7e0c1b87&sv=2) Restart your autopilot after setting the serial port. [hashtag](https://docs.theseus.us/cyclops/autopilot-integration/mission-planner#editing-ardupilot-parameters) Editing ArduPilot Parameters ----------------------------------------------------------------------------------------------------------------------------------------------- Navigate to the "_CONFIG_" tab on main menu, then "_Full Parameter List_", then click on the "_Search_" bar in the menu to the right of the screen. circle-check Make sure to click "_Write Params_" to the right of the list before exiting the Full Parameter List! Set **GPS\_AUTO\_SWITCH to 0** and **GPS\_BLEND\_MASK to 0**. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FoOR0w8n1PIF1T9tMm3H0%252Fgpsautoswitch_blendmask.png%3Falt%3Dmedia%26token%3D4f9b602d-6d3e-4658-a3d5-a2c33e61bce2&width=768&dpr=3&quality=100&sign=afca3b63&sv=2) Set **EK3\_SRC\_OPTIONS to 0**. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FEJyxJxIcvZN7gEKeaIpa%252Fek3srcoptions.png%3Falt%3Dmedia%26token%3Dd1747182-5019-49df-8956-909e46be1f0b&width=768&dpr=3&quality=100&sign=43e18221&sv=2) Set **EK3\_MAG\_CAL to 3**. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FybLYK7TUjsIllZhyvhtA%252Fek3magcal.png%3Falt%3Dmedia%26token%3Dbd3aec86-bbde-4473-b381-acc413bd9fa9&width=768&dpr=3&quality=100&sign=6724f15&sv=2) Set **BRD\_RTC\_TYPES to 2**. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FT6FmUkO6EuSTsjMBn5rv%252Fbrdrtctypes.png%3Falt%3Dmedia%26token%3D5a5db701-51cb-48a7-9173-0497a09817e0&width=768&dpr=3&quality=100&sign=670e02c6&sv=2) Set **EK3\_GPS\_CHECK to 23**. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252F5XCe87n38H6ps5W4Wb3S%252Fek3_gps_check.png%3Falt%3Dmedia%26token%3Ddd40f5ac-c010-42c6-9fff-5f2c5c5336cf&width=768&dpr=3&quality=100&sign=7b5a2480&sv=2) Set EK3\_SRC1 param values as shown below. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FZoezUJ5afDvZeYjrAbdw%252Fek3_src1.png%3Falt%3Dmedia%26token%3D14d74b10-e6b4-435a-b18a-8bd634c0f676&width=768&dpr=3&quality=100&sign=1e0895bf&sv=2) Once you have set all your parameters, click the "_Write Params_" button on the right side of the screen before exiting. circle-check All parameters have been written to the autopilot from Mission Planner. [PreviousArduPilotchevron-left](https://docs.theseus.us/cyclops/autopilot-integration/ardupilot) [NextQGroundControlchevron-right](https://docs.theseus.us/cyclops/autopilot-integration/qgroundcontrol) Last updated 3 months ago * [Configuring Serial Ports](https://docs.theseus.us/cyclops/autopilot-integration/mission-planner#configuring-serial-ports) * [Editing ArduPilot Parameters](https://docs.theseus.us/cyclops/autopilot-integration/mission-planner#editing-ardupilot-parameters) --- # QGroundControl | Theseus Docs This page shows you how to configure your ArduPilot drone like described in [ArduPilot](https://docs.theseus.us/micro-vps/autopilot-integration/ardupilot) using QGroundControl (QGC). [hashtag](https://docs.theseus.us/micro-vps/autopilot-integration/qgroundcontrol#configuring-serial-ports) Configuring Serial Ports ---------------------------------------------------------------------------------------------------------------------------------------- On the main panel on QGC, click on the QGC logo on the top left corner of the screen, then in the "Select Tool" pop up menu, select "Vehicle Setup". At the bottom of the menu on the left side of the screen on the Vehicle Setup page, click on "Parameters". Then, click on the search bar at the top of the screen to search for your parameter. Search for the serial port which matches the setting you chose in [Flight Controller](https://docs.theseus.us/micro-vps/vehicle-integration/flight-controller) . In our case, it is serial2. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FNa0yfTGPpibCjB23IJYP%252Fserial2.png%3Falt%3Dmedia%26token%3D9bf228cb-a3c1-40f9-89d1-b01c91029850&width=768&dpr=3&quality=100&sign=15aeff2e&sv=2) [hashtag](https://docs.theseus.us/micro-vps/autopilot-integration/qgroundcontrol#editing-ardupilot-params) Editing ArduPilot Params ---------------------------------------------------------------------------------------------------------------------------------------- Set **GPS\_BLEND\_MASK to 0** and **GPS\_AUTO\_SWITCH to 0** (use primary). ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FZpaoU0H9Cs0EIEJVMBR7%252Fgpsblendmask_autoswitch.png%3Falt%3Dmedia%26token%3Da28907e8-af20-4bdd-af81-1fd9e45885b5&width=768&dpr=3&quality=100&sign=68c586d2&sv=2) Set **GPS2\_TYPE to 14**. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252F4HmdXHiQLa73idx83C3X%252Fgps2_type.png%3Falt%3Dmedia%26token%3Dc16d689a-0f8e-4dd7-becb-5d4582cfcebf&width=768&dpr=3&quality=100&sign=16ede7cd&sv=2) Set **EK3\_SRC\_OPTIONS to 0**. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252Fq52zdjikcUNbsXrpAzK9%252Fek3_src_options.png%3Falt%3Dmedia%26token%3Da0be8ee1-b2cb-4492-bba1-56135676236d&width=768&dpr=3&quality=100&sign=cca5efe5&sv=2) Set **EK3\_MAG\_CAL to 3** (after first climb yaw reset). ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FL7Jh0phQi4ixLrOh2RcD%252Fek3_mag_cal.png%3Falt%3Dmedia%26token%3Da83596ee-6748-444a-9975-278e7ca62313&width=768&dpr=3&quality=100&sign=c42333d5&sv=2) Set EK3\_SRC1 param values. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FTS7mFMIfJGpHbrWeLIMl%252Fek3_src1.png%3Falt%3Dmedia%26token%3Dff554ca3-3515-40fe-9022-c3755d5f2cf6&width=768&dpr=3&quality=100&sign=37082aec&sv=2) Set **EK3\_GPS\_CHECK to 23**. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FiD9iOrvKbVLiE8p3QQp7%252Fek3_gps_check.png%3Falt%3Dmedia%26token%3Daec95606-a543-4624-8695-9fc086c0d784&width=768&dpr=3&quality=100&sign=29bf88d5&sv=2) Set **BRD\_RTC\_TYPES to 2**. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252F9rivvMmYyywdLa8zIkIA%252Fbrd_rtc_types.png%3Falt%3Dmedia%26token%3D7b7b8dcb-17cf-49cc-94f4-4f786fb35379&width=768&dpr=3&quality=100&sign=ce4ab42c&sv=2) circle-check All parameters have been written to the autopilot from QGroundControl. [PreviousMission Plannerchevron-left](https://docs.theseus.us/micro-vps/autopilot-integration/mission-planner) [NextDeveloper APIchevron-right](https://docs.theseus.us/micro-vps/autopilot-integration/developer-api) Last updated 8 months ago * [Configuring Serial Ports](https://docs.theseus.us/micro-vps/autopilot-integration/qgroundcontrol#configuring-serial-ports) * [Editing ArduPilot Params](https://docs.theseus.us/micro-vps/autopilot-integration/qgroundcontrol#editing-ardupilot-params) --- # Deactivating Map Matching | Theseus Docs You can deactivate the map matching functionality by toggling the button on the homepage of the dashboard. circle-exclamation Make sure you restart the VPS after deactivating map matching. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FTBnmD5QjZAV5qclvRurf%252Fdisablemapmatching.png%3Falt%3Dmedia%26token%3Df99ae25f-1037-4379-8fce-9eb16d679f6e&width=768&dpr=3&quality=100&sign=20650883&sv=2) When map matching is deactivated, the VPS will only use Visual Odometry to provide position estimates. The position estimate will drift as you fly. You do not need to load maps for the area of operations when flying without map matching. [PreviousVPS Firmware Updateschevron-left](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/vps-firmware-updates) [NextTheseus Accountchevron-right](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/theseus-account) Last updated 2 months ago --- # MAVLink Connection | Theseus Docs Theseus GCS app offers the option to connect to the VPS over MAVLink. Click on the "Wire Connection" dropdown at the top of the dashboard to select your connection type. Select "MAVLink Connection" in the dropdown. See the [MAVLinkarrow-up-right](https://mavlink.io/en/) and [ArduPilotarrow-up-right](https://ardupilot.org/dev/docs/mavlink-commands.html) documentations for reference. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252F5aNkYJ45e9vXWoUy5Khd%252Fservice%2520stopped%2520dashboard%2520copy.png%3Falt%3Dmedia%26token%3D822893bb-89c5-455e-a96c-2eec63d789aa&width=768&dpr=3&quality=100&sign=b79c4e5f&sv=2) To connect, specify: * Connection type (Serial, UDP, TCP) * Host address + port for UDP/TCP connections * COM port + baud rate for serial connections Then, click "Connect". Make sure the port you indicated is open and available. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252Fpx8016hrSnZ0H96Vm8e0%252Fconnect%2520with%2520mavlink.png%3Falt%3Dmedia%26token%3D2ee07dd2-aa10-464e-b0dd-3e2a3775da22&width=768&dpr=3&quality=100&sign=3cb254fb&sv=2) Due to bandwidth limitations, only select features are available over MAVLink: * VPS control * [System Health](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/system-health) * Recording start/stop * [Home Position Setting](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/home-position-setting) [PreviousFeature Listchevron-left](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list) [NextSystem Healthchevron-right](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/system-health) Last updated 26 days ago --- # Hardware Setup | Theseus Docs **Cyclops requires a drive** to store maps and recordings, a **camera**, and a **connection to the flight controller**. We will walk through each of those and ensure they are properly setup. Below are three scripts to help you setup each part of the system. The scripts you need to run depend on your hardware configuration. You may not need to run them all, and/or might have extra steps to set cyclops up with your particular system. #### [hashtag](https://docs.theseus.us/cyclops/cyclops-computer/pi-5-walkthrough/hardware-setup#scripts) Scripts file-download 4KB [setup-storage-mount.sh](https://3178815652-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhUdZltvGJCfBMBzRuwSC%2Fuploads%2FNN2aQfohpKtxaOqevVPh%2Fsetup-storage-mount.sh?alt=media&token=3a44a254-4ad3-495a-928d-15c1f22095fd) downloadDownload[arrow-up-right-from-squareOpen](https://3178815652-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhUdZltvGJCfBMBzRuwSC%2Fuploads%2FNN2aQfohpKtxaOqevVPh%2Fsetup-storage-mount.sh?alt=media&token=3a44a254-4ad3-495a-928d-15c1f22095fd) file-download 7KB [setup-usb-camera.sh](https://3178815652-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhUdZltvGJCfBMBzRuwSC%2Fuploads%2F7l1g0nAPyaWxIjMLwmEg%2Fsetup-usb-camera.sh?alt=media&token=eacf8a74-34ad-4e95-b79f-b0198eb6e098) downloadDownload[arrow-up-right-from-squareOpen](https://3178815652-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhUdZltvGJCfBMBzRuwSC%2Fuploads%2F7l1g0nAPyaWxIjMLwmEg%2Fsetup-usb-camera.sh?alt=media&token=eacf8a74-34ad-4e95-b79f-b0198eb6e098) Download the above scripts onto the device. Confirm the downloads with `ls Downloads` Copy pi@pi5:~$ ls Downloads/ setup-storage-mount.sh setup-usb-camera.sh #### [hashtag](https://docs.theseus.us/cyclops/cyclops-computer/pi-5-walkthrough/hardware-setup#verify-your-recording-drive) Verify your recording drive circle-info You need _a_ drive, but feel free to set it up however you like. Below are some instructions on how we recommend setting up a drive. This [tutorial on mounting a drive on linuxarrow-up-right](https://www.wikihow.com/Linux-How-to-Mount-Drive#:~:text=To%20mount%20a%20drive%20on,to%20mount%20and%20unmount%20drives.) will work with a PCIE NVME drive or a USB SSD. **OR** you can run the above script to setup a USB SSD drive. You may pick any name for the drive. I am using a Samsung T9 SSD, so I call it `/t9` Verify that the drive is mounted with: ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FVEenM7JlM2c0VsKd50US%252Fimage.png%3Falt%3Dmedia%26token%3D7d99bd28-49f6-4dfe-9f5f-a0501f705a87&width=768&dpr=3&quality=100&sign=cd9ca591&sv=2) #### [hashtag](https://docs.theseus.us/cyclops/cyclops-computer/pi-5-walkthrough/hardware-setup#verify-your-usb-camera) Verify your USB Camera Make sure you have the usb camera script on the edge device. file-download 7KB [setup-usb-camera.sh](https://3178815652-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhUdZltvGJCfBMBzRuwSC%2Fuploads%2F7l1g0nAPyaWxIjMLwmEg%2Fsetup-usb-camera.sh?alt=media&token=eacf8a74-34ad-4e95-b79f-b0198eb6e098) downloadDownload[arrow-up-right-from-squareOpen](https://3178815652-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhUdZltvGJCfBMBzRuwSC%2Fuploads%2F7l1g0nAPyaWxIjMLwmEg%2Fsetup-usb-camera.sh?alt=media&token=eacf8a74-34ad-4e95-b79f-b0198eb6e098) chevron-rightNote on pi video devices[hashtag](https://docs.theseus.us/cyclops/cyclops-computer/pi-5-walkthrough/hardware-setup#note-on-pi-video-devices) circle-exclamation The Pi comes with many video devices pre-configured. Your video device will likely be at /dev/video0 or /dev/video1 . The 19-37 video devices are not your camera #### [hashtag](https://docs.theseus.us/cyclops/cyclops-computer/pi-5-walkthrough/hardware-setup#setup-uart-serial) Setup UART Serial Your device needs to communicate with the flight controller using a serial connection. There are many ways to set this up. You can find docs on the manufacturer's website for your specific hardware setup. In the case of the nanopi, you can use a serial hat. In the case of the raspi 5, you can look at their provided [docsarrow-up-right](https://www.raspberrypi.com/documentation/computers/configuration.html#configure-uarts) on configuring this. Once you've set up the serial connection, verify you have the serial connections: #### [hashtag](https://docs.theseus.us/cyclops/cyclops-computer/pi-5-walkthrough/hardware-setup#recap) Recap We have now set up all of our hardware. Your addresses may vary, but we have: Great job! [PreviousSSH Setupchevron-left](https://docs.theseus.us/cyclops/cyclops-computer/pi-5-walkthrough/ssh-setup) [Nextvns-sdk Setupchevron-right](https://docs.theseus.us/cyclops/cyclops-computer/pi-5-walkthrough/vns-sdk-setup) Last updated 1 month ago Copy pi@pi5:~$ sudo Downloads/setup-storage-mount.sh /dev/sda2 /mnt/t9 Device: /dev/sda2 UUID: C443-4727 Filesystem: exfat Mount point: /mnt/t9 Creating systemd mount unit: mnt-t9.mount Created symlink /etc/systemd/system/multi-user.target.wants/mnt-t9.mount → /etc/systemd/system /mnt-t9.mount. Creating udev rule for auto-mount on plug: /etc/udev/rules.d/99-auto-mount-C443-4727.rules Mounting... ✓ Successfully mounted /dev/sda2 to /mnt/t9 Copy lsblk Copy pi@pi5:~$ sudo Downloads/setup-usb-camera.sh ═══════════════════════════════════════════════════════════ USB Camera Setup for VNS-SDK ═══════════════════════════════════════════════════════════ [1/5] Installing V4L2 utilities... ... [4/5] Checking permissions... ✓ User 'pi' is in 'video' group [5/5] Verifying camera functionality... Testing camera: /dev/video0 ✓ Successfully captured test frame ═══════════════════════════════════════════════════════════ Setup Complete! ═══════════════════════════════════════════════════════════ Copy [3/5] Probing cameras with v4l2-ctl... ✓ /dev/video0: AFN_Cap video Resolution: 720x576 FPS: 25.000 ✓ /dev/video1: AFN_Cap video ✓ /dev/video19: rpivid ✓ /dev/video20: pispbe ✓ /dev/video21: pispbe ✓ /dev/video22: pispbe ✓ /dev/video23: pispbe ✓ /dev/video24: pispbe [THERMAL] ✓ /dev/video25: pispbe [THERMAL] ✓ /dev/video26: pispbe [THERMAL] ✓ /dev/video27: pispbe [THERMAL] ✓ /dev/video28: pispbe ✓ /dev/video29: pispbe ✓ /dev/video30: pispbe ✓ /dev/video31: pispbe ✓ /dev/video32: pispbe ✓ /dev/video33: pispbe [THERMAL] ✓ /dev/video34: pispbe [THERMAL] ✓ /dev/video35: pispbe [THERMAL] ✓ /dev/video36: pispbe [THERMAL] ✓ /dev/video37: pispbe Copy pi@pi5:~$ ls /dev/tty* Copy Recording drive at /mnt/t9 Serial connections at /dev/ttySC0 and /dev/ttySC1 Video device at /dev/video0 --- # ArduPilot | Theseus Docs [ArduPilotarrow-up-right](https://ardupilot.org/) is an open-source autopilot. Theseus is proud to be an [ArduPilot partnerarrow-up-right](https://ardupilot.org/ardupilot/docs/common-partners.html) . Theseus Micro VPS does not require you to install any custom version of ArduPilot, Mission Planner, or QGroundControl. Our system works out of the box with existing software. Theseus **Micro VPS v1.5.3 is tested on ArduPilot v4.6**. We recommend using ArduPilot v4.6+ to guarantee compatibility. circle-info Theseus Micro VPS is expected to be compatible with ArduPilot v4.x. Please let us know if you integrate with an older version of ArduPilot. If using a flight controller with a MCU other than the H7, e.g. F405, you may need to build custom firmware ([custom.ardupilot.orgarrow-up-right](https://custom.ardupilot.org/) ) for your board and **enable MAVlink GPS** under the GPS Drivers drop-down. This is not enabled in the default ArduPilot firmware build on certain boards using MCUs such as the F405. [hashtag](https://docs.theseus.us/micro-vps/autopilot-integration/ardupilot#parameters) Parameters ------------------------------------------------------------------------------------------------------- Prior to configuring the ArduPilot parameters to enable communication with the Micro VPS, enable MAVLink on the port you selected when integrating with your flight controller in [Flight Controller](https://docs.theseus.us/micro-vps/vehicle-integration/flight-controller) . ### [hashtag](https://docs.theseus.us/micro-vps/autopilot-integration/ardupilot#uart-port) UART Port Set the port protocol to **MAVLink 2** and baud rate to **921600**. Here is the map between physical and UART ports for the Cube Orange +: UART Serial Physical Port UART 2 SERIAL 1 TELEM 1 UART 3 SERIAL 2 TELEM 2 UART 8 SERIAL 4 GPS 2 ### [hashtag](https://docs.theseus.us/micro-vps/autopilot-integration/ardupilot#ardupilot-system-params) ArduPilot System Params These parameters govern system time synchronization as well as GPS configuration. We disable GPS blending and auto switching. We choose to set the GPS 2 source to the VPS via MAVLink. This is interchangeable with GPS 1. ArduPilot Parameter Param Value Description BRD\_RTC\_TYPES 2 Set time from MAVLink GPS2\_TYPE 14 Set GPS 2 to MAVLink GPS\_BLEND\_MASK 0 Disable GPS blending GPS\_AUTO\_SWITCH 0 Disable GPS auto switching circle-info To enable navigation by VPS, **change GPS\_PRIMARY param to "1"** (second GPS) or whichever GPS is designated for the VPS system. ### [hashtag](https://docs.theseus.us/micro-vps/autopilot-integration/ardupilot#ardupilot-ekf-params) ArduPilot EKF Params These parameters govern how the ArduPilot EKF integrates sensor measurements to estimate its position. This is one of the key components in ArduPilot's navigation and control mechanisms. ArduPilot's EKF has three sensor source sets (EK3\_SRC1, EK3\_SRC2, EK3\_SRC3). You can configure each source sets with different sensor inputs. The configuration below sets EK3\_SRC1 to pull its information from the GPS, barometer and compass. The VPS relies on the barometer to estimate altitude. The altitude it forwards via its GPS signal is copied from the [VFR\_HUDarrow-up-right](https://mavlink.io/en/messages/common.html#VFR_HUD) altitude messages it receives. Do not use this GPS POSZ measurement as it can cause undesired feedback loops in the EKF. The Micro VPS estimates velocity on the XY axis. However, we found through evaluation that setting VEL\_XY to pull from the VPS causes instabilities in the EKF. We recommend to not use the GPS as a velocity source to the EKF. We recommend enabling continuous calibration of the compass during flight. It is recommend to set EK3\_MAG\_CAL to 3 (in the air) or 4 (always). circle-exclamation Do not pull velocity (VELXY, VELZ), altitude (POSZ), or yaw (YAW) inputs from the GPS when VPS is on. ArduPilot Parameter Param Value Description EK3\_SRC\_OPTIONS 0 Disable fusing velocity sources EK3\_GPS\_CHECK 23 Disable horizontal accuracy checks for arming EK3\_SRC1\_POSXY 3 Pull GPS for xy position input EK3\_SRC1\_VELXY 0 Disable xy velocity inputs EK3\_SRC1\_POSZ 1 Pull altitude from barometer EK3\_SRC1\_VELZ 0 Disable z velocity inputs EK3\_SRC1\_YAW 1 Pull yaw from compass EK3\_MAG\_CAL 3 Enabling mag cal in the air Go to [Mission Planner](https://docs.theseus.us/micro-vps/autopilot-integration/mission-planner) or [QGroundControl](https://docs.theseus.us/micro-vps/autopilot-integration/qgroundcontrol) to see how to configure your drone to operate with Micro VPS. [PreviousMAVLinkchevron-left](https://docs.theseus.us/micro-vps/autopilot-integration/mavlink) [NextMission Plannerchevron-right](https://docs.theseus.us/micro-vps/autopilot-integration/mission-planner) Last updated 11 days ago * [Parameters](https://docs.theseus.us/micro-vps/autopilot-integration/ardupilot#parameters) * [UART Port](https://docs.theseus.us/micro-vps/autopilot-integration/ardupilot#uart-port) * [ArduPilot System Params](https://docs.theseus.us/micro-vps/autopilot-integration/ardupilot#ardupilot-system-params) * [ArduPilot EKF Params](https://docs.theseus.us/micro-vps/autopilot-integration/ardupilot#ardupilot-ekf-params) --- # Troubleshooting | Theseus Docs Open [Vozilla GCS](https://docs.theseus.us/gcs-software/vozilla-gcs) > [System](https://docs.theseus.us/gcs-software/vozilla-gcs/system) and ensure that the device URL matches your device ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FDLUPMWqYIxFOsFu16TsQ%252Fimage.png%3Falt%3Dmedia%26token%3Df9d6b1d6-adcd-4651-b50c-68fe631f35e3&width=768&dpr=3&quality=100&sign=b25d7599&sv=2) You will see VPS Service Failed and the following error. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FUkD2vzsuCfRbS9SSYPSB%252Fimage.png%3Falt%3Dmedia%26token%3D6ba07159-46a0-4673-84d2-e3adf0b6188c&width=768&dpr=3&quality=100&sign=448c866&sv=2) This error indicates a map error We need to upload and select a map[Selecting a map](https://docs.theseus.us/gcs-software/vozilla-gcs/maps/selecting-a-map) Restart the VPS You'll see active and VNS-SDK Initialized in the logs. The service will time out without a MAVLink connection ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252F2xmmebMLJJJwnimpp0yU%252Fimage.png%3Falt%3Dmedia%26token%3Defaea4ce-cf93-4b62-b73a-0d16a34becb5&width=768&dpr=3&quality=100&sign=9da014d5&sv=2) I plug in all the devices on my desk to confirm ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252F9Bj4nUwUuTpCdJrYFpcH%252Fimage.png%3Falt%3Dmedia%26token%3Dcb1a2340-aca8-4219-920e-901871f645da&width=768&dpr=3&quality=100&sign=1db7d6b9&sv=2) View after restarting the VPS and viewing a camera snapshot ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FwI2JVIHk8t5iSDXxhWkE%252Fimage.png%3Falt%3Dmedia%26token%3Dd301203d-c686-4224-bf4b-24af01b3f00c&width=768&dpr=3&quality=100&sign=68c7a8a0&sv=2) #### [hashtag](https://docs.theseus.us/cyclops/cyclops-computer/pi-5-walkthrough/troubleshooting#connecting-to-the-mav-network) Connecting to the MAV network ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FJJqQkJBMXGwM8eThYdBh%252Fimage.png%3Falt%3Dmedia%26token%3D1657e309-8b35-49f6-bc1c-d837af6e3506&width=768&dpr=3&quality=100&sign=69880857&sv=2) ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FYVWr9uUgJJbvHoEXbChB%252Fimage.png%3Falt%3Dmedia%26token%3D6b71ce10-2ee4-42ea-a2ff-9f89fde9747e&width=768&dpr=3&quality=100&sign=a9d92b0e&sv=2) ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FkLJSB7G2YEEk0Xrt83MT%252Fimage.png%3Falt%3Dmedia%26token%3D2f5fdc05-b3d0-4447-96ef-b4eff883d060&width=768&dpr=3&quality=100&sign=e3ff344b&sv=2) #### [hashtag](https://docs.theseus.us/cyclops/cyclops-computer/pi-5-walkthrough/troubleshooting#debug-mavproxy-issues) Debug mavproxy issues To check mavproxy ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FewMOC36lMoBeVaPL2M9e%252Fimage.png%3Falt%3Dmedia%26token%3D2001d248-1030-4c1f-919d-a072cec87340&width=768&dpr=3&quality=100&sign=3d16cb90&sv=2) If you see data like this on your mavproxy terminal, check your serial connection wiring [![Logo](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2Fdiscuss.ardupilot.org%2Fuploads%2Fdefault%2Foptimized%2F3X%2F3%2F7%2F3716f7fdcf94bb36d1bb4ab1717ba0501a52b6b7_2_32x32.png&width=20&dpr=3&quality=100&sign=c774b25c&sv=2)Garbage/noise characters being generated over direct serial connectionArduPilot Discoursechevron-right](https://discuss.ardupilot.org/t/garbage-noise-characters-being-generated-over-direct-serial-connection/46371) [![Logo](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2Fdiscuss.ardupilot.org%2Fuploads%2Fdefault%2Foptimized%2F3X%2F3%2F7%2F3716f7fdcf94bb36d1bb4ab1717ba0501a52b6b7_2_32x32.png&width=20&dpr=3&quality=100&sign=c774b25c&sv=2)Mavproxy issue! non-readable message after connexionArduPilot Discoursechevron-right](https://discuss.ardupilot.org/t/mavproxy-issue-non-readable-message-after-connexion/45704) [Previousvns-sdk Setupchevron-left](https://docs.theseus.us/cyclops/cyclops-computer/pi-5-walkthrough/vns-sdk-setup) [NextVehicle Integrationchevron-right](https://docs.theseus.us/cyclops/vehicle-integration) Last updated 1 month ago Copy sudo systemctl status mavproxy --- # Recording Management | Theseus Docs Micro VPS offers the option to record all sensor data and real time processes to support development and troubleshooting. circle-info Enable recordings when conducting integration tests for sharing with the Theseus team. The recording service can be started/stopped from the main dashboard on the Theseus GCS app. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FFiRcu75tRVLdvyKAdfSm%252Fservice%2520stopped%2520dashboard%2520copy%25203.png%3Falt%3Dmedia%26token%3Dfcb9710f-1408-4c09-bea8-d114cd8a0df6&width=768&dpr=3&quality=100&sign=85acf94&sv=2) To access all your recordings, navigate to the "Recordings" tab on the left menu. [hashtag](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/recording-management#recordings-page) Recordings Page ------------------------------------------------------------------------------------------------------------------------------------------------------ The recordings page allows you to view the available storage space on your device, control your active recording, list all recordings on your device, and download recordings. The Micro VPS comes with two disks. The NVMe disk is where recordings are stored. eMMC disk is essential to operating system tasks. circle-exclamation Make sure **both disks remain below 80% capacity**. Get in touch with the Theseus team if it goes above. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FP9GExx8btGVJMXOClr2C%252Frecording%2520page%2520copy.png%3Falt%3Dmedia%26token%3Dc6a74db9-602b-494c-b53d-8a007f6b8e51&width=768&dpr=3&quality=100&sign=40b35733&sv=2) ### [hashtag](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/recording-management#current-recording) Current Recording The "Current Recording" panel shows you the recording for your current boot cycle. Recording directories are unique per sessions which are defined by boot cycles of the device. You can **start and stop recording** by clicking the "Start Recording" or "Stop Recording" button at the top left of the panel. Click the green "Download" button to **initiate a download of your recording** to your local computer. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FnV9B8FUGiDLc9iJlAi9Q%252Frecording%2520page%2520copy%25202.png%3Falt%3Dmedia%26token%3D6cc8b4bc-ea11-46a9-ae49-e658a020bfd1&width=768&dpr=3&quality=100&sign=92e0ce62&sv=2) ### [hashtag](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/recording-management#all-recordings) All Recordings The "All Recordings" panel offers the option to **list all available recordings** on disk and download them. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FQjipYi4U3l4hh431OmfD%252Fall%2520recordings.png%3Falt%3Dmedia%26token%3D71e8e985-6b81-4ac1-8f0b-a949ed027c37&width=768&dpr=3&quality=100&sign=870eab93&sv=2) [hashtag](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/recording-management#log-sharing) Log Sharing ---------------------------------------------------------------------------------------------------------------------------------------------- When sharing logs for a flight with the Theseus team, note the recording id of the flight. Download the recording by clicking the green "Download" button and share that file with us. [PreviousVehicle Selectionchevron-left](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/vehicle-selection) [NextHome Position Settingchevron-right](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/home-position-setting) Last updated 8 months ago * [Recordings Page](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/recording-management#recordings-page) * [Current Recording](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/recording-management#current-recording) * [All Recordings](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/recording-management#all-recordings) * [Log Sharing](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/recording-management#log-sharing) --- # MAVLink | Theseus Docs [MAVLinkarrow-up-right](https://mavlink.io/en/) is a communication protocol supported on a variety of UAV systems. Cyclops uses MAVLink for two-way communication with the flight controller. We require a bi-directional link to the flight controller (to send position estimates and receive sensor measurements). Below is a list of the messages we use. If your flight controller does _not_ support these message types, or only allows for one-way communication over MAVLink, contact the Theseus team for help integrating on your system. circle-info By default, Cyclops sends position using the `MAV_CMD_EXTERNAL_POSITION_ESTIMATE` message. To accept these estimates, ArduPilot needs to not use the GPS in its EKF sources. [hashtag](https://docs.theseus.us/cyclops/autopilot-integration/mavlink#messages-sent) Messages Sent --------------------------------------------------------------------------------------------------------- We send a number of packets * [STATUSTEXT (253)arrow-up-right](https://mavlink.io/en/messages/common.html#STATUSTEXT) * [MAV\_CMD\_USER\_2 (31011)arrow-up-right](https://mavlink.io/en/messages/common.html#MAV_CMD_USER_2) * crosstrack start command * [SYSTEM\_TIME (2)arrow-up-right](https://mavlink.io/en/messages/common.html#SYSTEM_TIME) * [TIMESYNC (111)arrow-up-right](https://mavlink.io/en/messages/common.html#TIMESYNC) * [MAV\_CMD\_EXTERNAL\_POSITION\_ESTIMATE (43003)arrow-up-right](https://mavlink.io/en/messages/common.html#MAV_CMD_EXTERNAL_POSITION_ESTIMATE) [hashtag](https://docs.theseus.us/cyclops/autopilot-integration/mavlink#messages-received) Messages Received ----------------------------------------------------------------------------------------------------------------- * [LOCAL\_POSITION\_NED (32)arrow-up-right](https://mavlink.io/en/messages/common.html#LOCAL_POSITION_NED) * [ATTITUDE\_QUATERNION (31)arrow-up-right](https://mavlink.io/en/messages/common.html#ATTITUDE_QUATERNION) * [GPS\_RAW\_INT (24)arrow-up-right](https://mavlink.io/en/messages/common.html#GPS_RAW_INT) (for testing purposes) * [NAV\_CONTROLLER\_OUTPUT (62)arrow-up-right](https://mavlink.io/en/messages/common.html#NAV_CONTROLLER_OUTPUT) * [VFR\_HUD (74)arrow-up-right](https://mavlink.io/en/messages/common.html#VFR_HUD) * [SYSTEM\_TIME (2)arrow-up-right](https://mavlink.io/en/messages/common.html#SYSTEM_TIME) * [TIMESYNC (111)arrow-up-right](https://mavlink.io/en/messages/common.html#TIMESYNC) * [EXTENDED\_SYS\_STATE (245)arrow-up-right](https://mavlink.io/en/messages/common.html#EXTENDED_SYS_STATE) [hashtag](https://docs.theseus.us/cyclops/autopilot-integration/mavlink#system-id-sysid) System ID (sysid) --------------------------------------------------------------------------------------------------------------- If you want to connect to multiple systems over MAVLink, you'll need to use different sysids for each flight controller. The default sysid is 1 so the Micro VPS automatically looks to connect with sysid 1. If the flight controller has a different sysid than the default, the Micro VPS will report no MAV heartbeat. To configure your Micro VPS to connect with a flight controller with some other sysid, you'll need to edit the vehicle config. Take a look at [Changing the sysid](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/vehicle-configuration#changing-the-sysid) for more information. [PreviousAutopilot Integrationchevron-left](https://docs.theseus.us/cyclops/autopilot-integration) [NextArduPilotchevron-right](https://docs.theseus.us/cyclops/autopilot-integration/ardupilot) Last updated 3 months ago * [Messages Sent](https://docs.theseus.us/cyclops/autopilot-integration/mavlink#messages-sent) * [Messages Received](https://docs.theseus.us/cyclops/autopilot-integration/mavlink#messages-received) * [System ID (sysid)](https://docs.theseus.us/cyclops/autopilot-integration/mavlink#system-id-sysid) --- # Autopilot Integration | Theseus Docs circle-exclamation Cyclops currently only supports ArduPilot. The Cyclops system communicates with ArduPilot over MAVLink. Several operations are performed: * **Synchronize time**: The Cyclops system contains a real-time clock and synchronizes the time on your flight controller. * **Pull sensor readings**: compass, barometer, and position data are read over MAVLink and used by Cyclops. This section goes over each parameter that needs to be configured in [ArduPilot](https://docs.theseus.us/micro-vps/autopilot-integration/ardupilot) and how to do so from [Mission Planner](https://docs.theseus.us/micro-vps/autopilot-integration/mission-planner) or [QGroundControl](https://docs.theseus.us/micro-vps/autopilot-integration/qgroundcontrol) . [PreviousPowerchevron-left](https://docs.theseus.us/cyclops/vehicle-integration/power) [NextMAVLinkchevron-right](https://docs.theseus.us/cyclops/autopilot-integration/mavlink) Last updated 3 months ago --- # Bench test | Theseus Docs This section details how to validate that the Micro VPS is operational before executing test flights. We will initialize the VPS and expect the drone to be in a flight-ready state before At this stage of the integration process you have: * Physically integrated the Micro VPS on your vehicle [Vehicle Integration](https://docs.theseus.us/micro-vps/vehicle-integration) * Configured ArduPilot for the Micro VPS [Autopilot Integration](https://docs.theseus.us/micro-vps/autopilot-integration) circle-exclamation You will need a Windows/Linux laptop with the [Theseus GCS App](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app) installed in order to proceed. We recommend that you go through the operation guide [GCS Software](https://docs.theseus.us/gcs-software/getting-started) to familiarize yourself with using the Micro VPS before proceeding. [hashtag](https://docs.theseus.us/micro-vps/validation/bench-test#before-powering-on) Before Powering On ------------------------------------------------------------------------------------------------------------- Ensure that the green Ethernet data cable connects the sensor to the compute. You may plug this cable into either Ethernet port available on the compute module. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FNR0vsXWEJOQP87xf2Faz%252Fsensor%2520connectivity.png%3Falt%3Dmedia%26token%3Ddaacfab6-db93-4c4a-9c70-2dfe210006dc&width=768&dpr=3&quality=100&sign=e43fe756&sv=2) Ensure that the flight controller is correctly linked to the compute module following [Flight Controller](https://docs.theseus.us/micro-vps/vehicle-integration/flight-controller) . [hashtag](https://docs.theseus.us/micro-vps/validation/bench-test#booting-the-vehicle) Booting the Vehicle --------------------------------------------------------------------------------------------------------------- Power on your vehicle and the Micro VPS (separately if you chose to power the Micro VPS separately from your main vehicle power). Verify that the two red LEDs on the Micro VPS compute module turn on as shown below. The sensor has no external indicator of power state, but will become warmer than room temperature after being powered for a few minutes. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FRRhz6Q0JaXDYaYolbvgA%252Fsignal-2025-07-23-185206.jpeg%3Falt%3Dmedia%26token%3D09821f9e-19d7-4765-838e-a4851c86e92d&width=768&dpr=3&quality=100&sign=88689946&sv=2) [hashtag](https://docs.theseus.us/micro-vps/validation/bench-test#initialize-vps) Initialize VPS ----------------------------------------------------------------------------------------------------- Connect your laptop to the compute module using the free Ethernet port. Open the Theseus GCS app on your laptop. The first step will be to upload maps and set the home position on the Micro VPS. Refer to [Maps Management](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/maps-management) and [Home Position Setting](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/home-position-setting) for more information on how to conduct these operations. ### [hashtag](https://docs.theseus.us/micro-vps/validation/bench-test#verify-data-connectivity) Verify Data Connectivity Verify the MAVLink connection on the compute module by navigating to the "_System Health_" screen[System Health](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/system-health) . ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FanU5S2b1cXEVdCJ8pmKa%252Fsystemhealth.png%3Falt%3Dmedia%26token%3Ded814472-45bb-4187-b249-f7ea5338242c&width=768&dpr=3&quality=100&sign=80b9e217&sv=2) The "_MAVProxy Service_" indicator should show "_Healthy_" with a green dot. If that is the case, the Micro VPS is connected to the autopilot over MAVLink. Also check the "_Sensor Connectivity_" indicator under the "_Hardware_" section. This displays the status of the connection to the sensor. It should also show "_Healthy_" with a green dot, indicating that the compute module is connected to the sensor. ### [hashtag](https://docs.theseus.us/micro-vps/validation/bench-test#update-active-maps) Update Active Maps On the "_Map Uploads_" screen, ensure the correct map is selected. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252F3B91B6uwvzRFILaoXP81%252Fmaps%2520updated.png%3Falt%3Dmedia%26token%3D3a7298e9-6af8-41f7-ae23-e0074a9b03cc&width=768&dpr=3&quality=100&sign=234c3da0&sv=2) ### [hashtag](https://docs.theseus.us/micro-vps/validation/bench-test#update-launch-location) Update Launch Location Set the home position to the location where you will be launching your UAV. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FT3b6Il9o8htTCWOqS5fl%252Fhomeposition%2520update.png%3Falt%3Dmedia%26token%3Dfbce0354-d5e9-4466-a51b-99f463a59866&width=768&dpr=3&quality=100&sign=3db436f3&sv=2) ### [hashtag](https://docs.theseus.us/micro-vps/validation/bench-test#restart-vps) Restart VPS Return to the main dashboard and restart the VPS by clicking the "_Restart_" button under VPS Control. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FVdO06OkkoGlPHCaSnMab%252Frunning%2520dashboard.png%3Falt%3Dmedia%26token%3Dea5c3e0f-69b3-43ee-9695-b885db4e4ab5&width=768&dpr=3&quality=100&sign=b2e72a6a&sv=2) The dashboard should now show that the system is **Running**. At this point you can expect: * Micro VPS to be connected to the autopilot over MAVLink. * Micro VPS sends GPS data to the autopilot over MAVLink. circle-check Micro VPS is running and all required systems are healthy on the Theseus GCS app. [hashtag](https://docs.theseus.us/micro-vps/validation/bench-test#open-gcs) Open GCS ----------------------------------------------------------------------------------------- Now that the Micro VPS is properly setup and running, move to the GCS to confirm that ArduPilot is receiving GPS data over MAVLink. ### [hashtag](https://docs.theseus.us/micro-vps/validation/bench-test#set-gps-2-as-primary) Set GPS 2 as Primary The first step is to set GPS 2 as the primary GPS. Similar to the previous procedures[Autopilot Integration](https://docs.theseus.us/micro-vps/autopilot-integration) , navigate to the "_Config_" tab, then "_Full Parameter List_" and search for **GPS\_PRIMARY**. Set **GPS\_PRIMARY to 1** (GPS1 is indexed as 0 and GPS2 is indexed as 1). Then, write the parameters by clicking the "_Write Params_" button. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FweO3d4w7S5fRU0a2RSm3%252Fset%2520gps%2520primary%2520to%2520be%2520gps%25202.png%3Falt%3Dmedia%26token%3D5d520610-dda3-44e7-a80c-7476d40f50c5&width=768&dpr=3&quality=100&sign=b06906ea&sv=2) circle-check Micro VPS turns on and appears as a GPS source on the GCS. Moving the vehicle reflects as displacement on the GCS map. Go back to the "_Data_" tab in the top menu on Mission Planner. You should see the VPS as **GPS 2 with a 3D fix on the bottom right corner of the HUD**. The aircraft should be located at the launch location you set above. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FHJhkzJMK1lyhftdqtHxp%252Fmission%2520planner%2520check%2520gps%25202%2520here.png%3Falt%3Dmedia%26token%3D7b4c7397-8051-4215-8212-5f26d69f9076&width=768&dpr=3&quality=100&sign=b2fa757&sv=2) Note that this bench test was performed indoors with no GPS fix. Pick up your UAV (if size permits) and walk around. Check that the track overlaid on the map on Mission Planner matches the movement you applied to the vehicle. circle-check GPS 2 shows a 3D fix on Mission Planner and aircraft position matches your displacement. [PreviousValidationchevron-left](https://docs.theseus.us/micro-vps/validation) [NextFlight testchevron-right](https://docs.theseus.us/micro-vps/validation/flight-test) Last updated 3 months ago * [Before Powering On](https://docs.theseus.us/micro-vps/validation/bench-test#before-powering-on) * [Booting the Vehicle](https://docs.theseus.us/micro-vps/validation/bench-test#booting-the-vehicle) * [Initialize VPS](https://docs.theseus.us/micro-vps/validation/bench-test#initialize-vps) * [Verify Data Connectivity](https://docs.theseus.us/micro-vps/validation/bench-test#verify-data-connectivity) * [Update Active Maps](https://docs.theseus.us/micro-vps/validation/bench-test#update-active-maps) * [Update Launch Location](https://docs.theseus.us/micro-vps/validation/bench-test#update-launch-location) * [Restart VPS](https://docs.theseus.us/micro-vps/validation/bench-test#restart-vps) * [Open GCS](https://docs.theseus.us/micro-vps/validation/bench-test#open-gcs) * [Set GPS 2 as Primary](https://docs.theseus.us/micro-vps/validation/bench-test#set-gps-2-as-primary) --- # Cyclops Safety Switch | Theseus Docs This Lua script allows pilots to enable/disable Cyclops position output to the autopilot using a 2- or 3-position RC switch. When disabled, Cyclops stops sending position updates to the flight controller, allowing the pilot to immediately cut Cyclops input if needed during flight. This acts as a safety cutoff for Cyclops navigation data. Upload the script below to ArduPilot to enable this functionality: file-download 6KB [cyclops\_safety\_switch.lua](https://3178815652-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhUdZltvGJCfBMBzRuwSC%2Fuploads%2FdgDhGq4uVnJEx2WMi9XL%2Fcyclops_safety_switch.lua?alt=media&token=c1e79507-0291-4237-9c1e-29eedc88f9da) downloadDownload[arrow-up-right-from-squareOpen](https://3178815652-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhUdZltvGJCfBMBzRuwSC%2Fuploads%2FdgDhGq4uVnJEx2WMi9XL%2Fcyclops_safety_switch.lua?alt=media&token=c1e79507-0291-4237-9c1e-29eedc88f9da) Inside of your scripts folder on MAVFTP, create a `modules/MAVLink` folder. Upload the scripts contained inside of the zip file below: file-archive 6KB [MAVLink.zip](https://3178815652-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhUdZltvGJCfBMBzRuwSC%2Fuploads%2F54GF05qGSxGAFljLIZpI%2FMAVLink.zip?alt=media&token=8e6544ea-b0d6-4461-b40a-ff4fb86bfebc) archive downloadDownload[arrow-up-right-from-squareOpen](https://3178815652-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhUdZltvGJCfBMBzRuwSC%2Fuploads%2F54GF05qGSxGAFljLIZpI%2FMAVLink.zip?alt=media&token=8e6544ea-b0d6-4461-b40a-ff4fb86bfebc) circle-info Make sure you upload the MAVLink dependency files to enable the cyclops safety switch. ### [hashtag](https://docs.theseus.us/cyclops/autopilot-integration/cyclops-safety-switch#configuring-an-rc-switch) Configuring an RC Switch Select which switch on your controller you want to use and identify its corresponding RC channel in your mixing model. On your GCS software, set the corresponding RC option to Scripting 5 (value 304). _For example, if your switch is on RC channel 8, set_ `RC8_OPTION = 304`_._ circle-info To enable this script in ArduPilot, set `SCR_USER3=1` in the Full Parameters List. To prevent the script from running, set this parameter to 0. circle-exclamation Note: The script functionality is hardcoded to Scripting 5 (value 304) within the provided Lua script. If you are using multiple Lua scripts on the same flight controller, make sure that those scripts do not use Scripting 5. ### [hashtag](https://docs.theseus.us/cyclops/autopilot-integration/cyclops-safety-switch#switch-positions) Switch Positions * **LOW / MID**: Cyclops output enabled (default) * **HIGH**: Cyclops output disabled (safety cutoff) ### [hashtag](https://docs.theseus.us/cyclops/autopilot-integration/cyclops-safety-switch#startup-behavior) Startup Behavior On boot, the script reads the current switch position and sends the corresponding enable or disable command to the Cyclops unit. This ensures the Cyclops output state always matches the physical switch position at startup. If the RC channel is not configured, no commands are sent and the Cyclops unit continues operating in its own default state (output enabled). [PreviousDead Reckoning Switchchevron-left](https://docs.theseus.us/cyclops/autopilot-integration/dead-reckoning-switch) [NextValidationchevron-right](https://docs.theseus.us/cyclops/validation) Last updated 1 month ago * [Configuring an RC Switch](https://docs.theseus.us/cyclops/autopilot-integration/cyclops-safety-switch#configuring-an-rc-switch) * [Switch Positions](https://docs.theseus.us/cyclops/autopilot-integration/cyclops-safety-switch#switch-positions) * [Startup Behavior](https://docs.theseus.us/cyclops/autopilot-integration/cyclops-safety-switch#startup-behavior) --- # Mission Planner | Theseus Docs This page shows you how to configure your ArduPilot UAV described in [ArduPilot](https://docs.theseus.us/micro-vps/autopilot-integration/ardupilot) using Mission Planner. To begin, open Mission Planner and connect to your UAV. [hashtag](https://docs.theseus.us/micro-vps/autopilot-integration/mission-planner#configuring-serial-ports) Configuring Serial Ports ----------------------------------------------------------------------------------------------------------------------------------------- In Mission Planner, click on "_SETUP_", then "_Mandatory Hardware_", then "_Serial Ports_". Find the serial port that matches the port you used in [Flight Controller](https://docs.theseus.us/micro-vps/vehicle-integration/flight-controller) and configure the **Protocol** to **MAVLink 2** and the **Speed (baud rate)** to **921600**. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FvckJIum9C5JfhqLc36N2%252Fserialports.png%3Falt%3Dmedia%26token%3D9f457683-1062-4cbc-b222-02918e1bbad5&width=768&dpr=3&quality=100&sign=7e0c1b87&sv=2) Restart your autopilot after setting the serial port. ### [hashtag](https://docs.theseus.us/micro-vps/autopilot-integration/mission-planner#changing-the-default-baud-rate) Changing the default baud rate Your flight controller may be limited to a baud rate other than 921600. In this case, you will need to change the baud rate your Micro VPS uses. The Micro VPS uses very little bandwidth and should work with most common baud rates. You can edit the baud rate through the [Theseus GCS App](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app) by going to the flight controller settings panel. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252F1lf7ceUmcVaSe4wJc2q3%252F2025-11-05_17-25.png%3Falt%3Dmedia%26token%3D6754cdad-68d3-40ef-949a-4fd79dc261cb&width=768&dpr=3&quality=100&sign=28d8b658&sv=2)![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FXZ0ViovNydkZNuAUbnrO%252F2025-11-05_17-23.png%3Falt%3Dmedia%26token%3D09afe2bf-4a18-4f5a-abc5-d2de3306fdfa&width=768&dpr=3&quality=100&sign=8ebac5ac&sv=2) You should see a widget at the top that allows you to configure the baud rate. If the widget is missing, you need to update both the GCS App and the VPS to **Version 1.7.7** or higher. Check out [VPS Firmware Updates](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/vps-firmware-updates) for more info on updating your system. This feature only configures the baud rate for the Micro VPS; you need to also configure the baud rate on your flight controller. [hashtag](https://docs.theseus.us/micro-vps/autopilot-integration/mission-planner#editing-ardupilot-parameters) Editing ArduPilot Parameters ------------------------------------------------------------------------------------------------------------------------------------------------- Navigate to the "_CONFIG_" tab on main menu, then "_Full Parameter List_", then click on the "_Search_" bar in the menu to the right of the screen. circle-check Make sure to click "_Write Params_" to the right of the list before exiting the Full Parameter List! Set **GPS\_AUTO\_SWITCH to 0** and **GPS\_BLEND\_MASK to 0**. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FoOR0w8n1PIF1T9tMm3H0%252Fgpsautoswitch_blendmask.png%3Falt%3Dmedia%26token%3D4f9b602d-6d3e-4658-a3d5-a2c33e61bce2&width=768&dpr=3&quality=100&sign=afca3b63&sv=2) Set **GPS2\_TYPE to 14**. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FtrigVWDLGD2i7ziPey0o%252Fgps2type.png%3Falt%3Dmedia%26token%3D110035b8-c86a-46a1-9917-e80211038a75&width=768&dpr=3&quality=100&sign=4d8a615a&sv=2) Set **EK3\_SRC\_OPTIONS to 0**. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FEJyxJxIcvZN7gEKeaIpa%252Fek3srcoptions.png%3Falt%3Dmedia%26token%3Dd1747182-5019-49df-8956-909e46be1f0b&width=768&dpr=3&quality=100&sign=43e18221&sv=2) Set **EK3\_MAG\_CAL to 3**. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FybLYK7TUjsIllZhyvhtA%252Fek3magcal.png%3Falt%3Dmedia%26token%3Dbd3aec86-bbde-4473-b381-acc413bd9fa9&width=768&dpr=3&quality=100&sign=6724f15&sv=2) Set **BRD\_RTC\_TYPES to 2**. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FT6FmUkO6EuSTsjMBn5rv%252Fbrdrtctypes.png%3Falt%3Dmedia%26token%3D5a5db701-51cb-48a7-9173-0497a09817e0&width=768&dpr=3&quality=100&sign=670e02c6&sv=2) Set **EK3\_GPS\_CHECK to 23**. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252F5XCe87n38H6ps5W4Wb3S%252Fek3_gps_check.png%3Falt%3Dmedia%26token%3Ddd40f5ac-c010-42c6-9fff-5f2c5c5336cf&width=768&dpr=3&quality=100&sign=7b5a2480&sv=2) Set EK3\_SRC1 param values as shown below. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FZoezUJ5afDvZeYjrAbdw%252Fek3_src1.png%3Falt%3Dmedia%26token%3D14d74b10-e6b4-435a-b18a-8bd634c0f676&width=768&dpr=3&quality=100&sign=1e0895bf&sv=2) Once you have set all your parameters, click the "_Write Params_" button on the right side of the screen before exiting. circle-check All parameters have been written to the autopilot from Mission Planner. [PreviousArduPilotchevron-left](https://docs.theseus.us/micro-vps/autopilot-integration/ardupilot) [NextQGroundControlchevron-right](https://docs.theseus.us/micro-vps/autopilot-integration/qgroundcontrol) Last updated 3 months ago * [Configuring Serial Ports](https://docs.theseus.us/micro-vps/autopilot-integration/mission-planner#configuring-serial-ports) * [Changing the default baud rate](https://docs.theseus.us/micro-vps/autopilot-integration/mission-planner#changing-the-default-baud-rate) * [Editing ArduPilot Parameters](https://docs.theseus.us/micro-vps/autopilot-integration/mission-planner#editing-ardupilot-parameters) --- # vns-sdk Setup | Theseus Docs In this step, we install Cyclops on the raspberry pi. Before you start, make sure to have: * MAVLink device port and baudrate * Storage device * Theseus account email and password for license activation If you're missing any of this you can come back later and edit your configuration. Open a shell and run the Cyclops install script on your edge device: Copy # download and install Cyclops curl -fsSL https://packages.theseus.us/install.sh | sudo bash > Installs all required Cyclops dependencies. Walks you through setting up MAVLink ports and storage for maps and recordings on your edge device. You will need your Theseus account credentials to activate your Cyclops license. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FhVajD5OlEaXobnqWLxTv%252FScreencastfrom01-14-2026113520AM-ezgif.com-video-to-gif-converter.gif%3Falt%3Dmedia%26token%3D1358b016-e7b2-43d2-be58-fb17bee584b6&width=768&dpr=3&quality=100&sign=a5d66d50&sv=2) This script installs all Cyclops dependencies as well as data and packages for Cyclops on your device. You will see this if things are working as expected: You will then be prompted to configure your device (MAVProxy and storage). Enter **y** to proceed. circle-exclamation Many flight controllers don't support higher baud rates like 921600. Ensure your serial baud rate is supported by the flight controller you use. circle-info Since we added both serial devices to the configuration, so either port on our serial hat will work for mavlink. circle-exclamation If the system clock on your device is skewed, you might have issues running the install script. Just resync the system clock to fix this issue. Next, the script will prompt you to activate your Cyclops license. You receive two licenses when creating your Theseus account. > You can come back to activate your license later by running `cyclops_exe --activate-license`. You should see the following message once you've gone through all the installation steps: Reboot the device [PreviousHardware Setupchevron-left](https://docs.theseus.us/cyclops/cyclops-computer/pi-5-walkthrough/hardware-setup) [NextTroubleshootingchevron-right](https://docs.theseus.us/cyclops/cyclops-computer/pi-5-walkthrough/troubleshooting) Last updated 1 month ago Copy pi@dronepi:~$ curl -fsSL https://packages.theseus.us/install.sh | sudo bash ======================================== Theseus Cyclops Installation Script ======================================== [OK] Architecture: arm64 [OK] Ubuntu version: 24.04 (Noble) [INFO] Adding Theseus APT repository... [INFO] Downloading GPG key... File '/usr/share/keyrings/theseus.gpg' exists. Overwrite? (y/N) y [OK] GPG key installed [INFO] Adding repository to sources.list.d... [OK] Repository added: /etc/apt/sources.list.d/theseus.list [INFO] Updating package lists... [INFO] Installing cyclops and vns-sdk-data (this may take a few minutes)... Reading package lists... Done Building dependency tree... Done Reading state information... Done cyclops is already the newest version (1.12.0+dev.d6faa68). vns-sdk-data is already the newest version (1.1.0). 0 upgraded, 0 newly installed, 0 to remove and 148 not upgraded. [OK] Packages installed successfully! [INFO] Installed version: Cyclops ================== Version: 1.12.0+dev.d6faa68 Git Branch: dev Git Commit: d6faa68 Build Timestamp: 2026-01-13 22:54:32 UTC Build Configuration ------------------- Copy Would you like to configure your device now? (y/N): y Enter recordings directory path (e.g., /mnt/nvme) [skip]: /mnt/t9 Set paths.recordings_dir = /mnt/t9 [OK] Recordings path set to: /mnt/t9 Enter MAVProxy serial device (e.g., /dev/ttyS4) [skip]: /dev/ttyS4 Enter baud rate [921600]: Device /dev/ttyS4 already exists, updating baudrate to 921600 [OK] Added MAVProxy device: /dev/ttyS4 @ 921600 Copy pi@NanoPi-R6C:~$ curl -fsSL https://packages.theseus.us/install.sh | sudo bash curl: (60) SSL certificate problem: certificate is not yet valid More details here: https://curl.se/docs/sslcerts.html curl failed to verify the legitimacy of the server and therefore could not establish a secure connection to it. To learn more about this situation and how to fix it, please visit the web page mentioned above. Copy sudo timedatectl set-ntp true sudo date -s "2026-02-17 12:00:00" Copy ======================================== License Activation ======================================== License activation requires a Theseus account. If you don't have one, visit: https://docs.theseus.us Would you like to activate your license now? (y/N): [INFO] Skipping license activation. [INFO] You can activate later by running: cyclops_exe --activate-license Copy ======================================== Installation Complete ======================================== [OK] Cyclops has been installed! Useful commands: vns-config show # View current configuration vns-config set recordings /mnt/ssd # Set recordings directory cyclops_exe --license-info # View license status cyclops_exe --activate-license # Activate license sudo systemctl start cyclops # Start Cyclops service Documentation: https://docs.theseus.us Support: [email protected] --- # System Health | Theseus Docs The Micro VPS exposes system health indicators for three key system services and hardware components. An overview of the system health is present on the main dashboard. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FK77RLjznmlXsSM1i7Le5%252Fservice%2520stopped%2520dashboard%2520copy%25202.png%3Falt%3Dmedia%26token%3D3aa48e8c-a121-49ec-ac3f-b517ebc670fe&width=768&dpr=3&quality=100&sign=50ef8559&sv=2) circle-info Recording service is not required for operation of the VPS. [hashtag](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/system-health#health-indicator-overview) Health Indicator Overview ------------------------------------------------------------------------------------------------------------------------------------------------------------------- Services break down as follows: * MAVProxy service, connects with autopilot over MAVLink. * VPS service, core VPS software. * Recording service, records sensor and system data. Only the MAVProxy and VPS services are required for operation of the VPS. Both hardware components are required for normal operation of the VPS: * NVMe storage, disk storage to save maps and logs on the device. * Sensor connectivity, connection to the sensor module. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FDBbWpfNUgw8HHuoGNo7B%252Fsystemhealth%2520copy.png%3Falt%3Dmedia%26token%3Db57fa6d4-b947-4473-bcab-7e8c20c4f7b8&width=768&dpr=3&quality=100&sign=a1de0c35&sv=2) [hashtag](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/system-health#home-position-outside-map-bound) Home Position Outside Map Bound ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- If the current home position is outside of the bounds of the currently selected map, you might see an error like this at the top of the page. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252Fe8O5jeoWP4BRSbLn4vo3%252Fimage.png%3Falt%3Dmedia%26token%3D8415aff0-4085-43cf-b034-f3df93c645aa&width=768&dpr=3&quality=100&sign=aa8f232f&sv=2) When the VPS service is unhealthy, the error logs will be printed out in the system diagnostics. To fix the bad initial fix error, visit [Home Position Setting](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/home-position-setting) . [hashtag](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/system-health#troubleshooting) Troubleshooting ----------------------------------------------------------------------------------------------------------------------------------------------- Use the "System Health" tab to diagnose issues with your Micro VPS. Issue Troubleshooting Steps Unhealthy NVMe storage Issue with firmware setup or hardware failure. Contact your Theseus point of contact immediately. Unhealthy sensor connectivity Is the sensor powered on? Is the Ethernet cable connected to the compute module? Unhealthy MAVProxy service Is the serial cable connected between the compute module and flight controller? See [Flight Controller](https://docs.theseus.us/micro-vps/vehicle-integration/flight-controller) . Is the serial port configured for MAVLink in the ArduPilot settings? See [ArduPilot](https://docs.theseus.us/micro-vps/autopilot-integration/ardupilot) . Unhealthy VPS service Is your MAVProxy service healthy? Is the launch location set? See [Home Position Setting](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/home-position-setting) . Are maps uploaded on your device? See [Maps Management](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/maps-management) . Unhealthy recording service Not an issue unless you are trying to record sensor data for log sharing. See [Recording Management](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/recording-management) . [PreviousMAVLink Connectionchevron-left](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/mavlink-connection) [NextVehicle Selectionchevron-right](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/vehicle-selection) Last updated 6 months ago * [Health Indicator Overview](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/system-health#health-indicator-overview) * [Home Position Outside Map Bound](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/system-health#home-position-outside-map-bound) * [Troubleshooting](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/system-health#troubleshooting) --- # Maps Management | Theseus Docs Uploading maps is a key step in getting your Micro VPS ready for operation. circle-info Refer to [Theseus Maps App](https://docs.theseus.us/gcs-software/legacy-software/theseus-maps-app) to see how to generate maps for your area of operation. circle-exclamation You need to **select your maps after uploading** them. Navigate to the "Map Uploads" tab in the left menu to access the Map Uploads dashboard. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FJkA7M5VJTg3ZOccDqVHC%252Fmap%2520no%2520maps.png%3Falt%3Dmedia%26token%3D1f74c256-5165-4727-95b1-94f9115a15fe&width=768&dpr=3&quality=100&sign=ee7b0e22&sv=2) [hashtag](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/maps-management#uploading-new-maps) Uploading New Maps ------------------------------------------------------------------------------------------------------------------------------------------------------- To upload new maps, click the green "Upload Map" button inside of the "Upload Information" panel. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FX2QV4tjRanK2OwsOTauj%252Fmap%2520no%2520maps%2520copy.png%3Falt%3Dmedia%26token%3Dec045e45-ddfa-4719-a2e7-709c074c6956&width=768&dpr=3&quality=100&sign=609b98f5&sv=2) This will bring up a window into your computer's file system where you can select the .tar.gz map files to upload. Once you have selected your maps, a progress bar will appear, indicating the estimated time to completion of your map upload process. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252Fq8QDxh3lTBEo9rf9uo0W%252FScreenshot%2520from%25202025-07-23%252019-22-59%2520copy%25202.png%3Falt%3Dmedia%26token%3Ddd701ac7-e292-46f5-9dde-0ae3aa0f9998&width=768&dpr=3&quality=100&sign=3d59096&sv=2) circle-info After the uploading process completes, give a few seconds to the app to reflect the new map upload. Once completed, a success message will appear and your new map will be listed under the "All Maps" panel. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252Fn4hrCyiTYgx42prHJwRr%252FScreenshot%2520from%25202025-07-23%252019-25-16%2520copy.png%3Falt%3Dmedia%26token%3D7effa3c3-aa59-42e2-b31f-4b98cea819b9&width=768&dpr=3&quality=100&sign=ca081d95&sv=2) [hashtag](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/maps-management#verify-map-checksum) Verify Map Checksum --------------------------------------------------------------------------------------------------------------------------------------------------------- circle-info First visit [Map Information](https://docs.theseus.us/gcs-software/legacy-software/theseus-maps-app/viewing-maps#map-information) to learn where to find the maps app checksum. You will need to do this before proceeding in this step. Our system has checks to ensure the uploaded map has not been corrupted, but there is no way to ensure that 100% of the data is correct. That's why manually verifying that the checksums match is important. Once the map upload has successfully completed, you will see a popup window displaying the checksum of the file you just uploaded. You must manually check to make sure this matches with the checksum on the Maps App. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FjuesCNkqCPFXA6LhyzLH%252F2025-09-25_13-15.png%3Falt%3Dmedia%26token%3D98e2d6f4-dd21-41bb-8159-fe69bbda21cc&width=768&dpr=3&quality=100&sign=521db8ca&sv=2)![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FQNJAXHaEjqDKRYmeeu3h%252F2025-09-25_13-14.png%3Falt%3Dmedia%26token%3D9c35a0dd-8372-4a62-aefa-bc9556d2910b&width=768&dpr=3&quality=100&sign=200aaec2&sv=2) You can also view the same checksum in the maps list after the popup is dismissed. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252Fl1JesAiysZ1zY8TTmhxX%252F2025-09-25_13-21.png%3Falt%3Dmedia%26token%3D493a9b27-80c6-47f6-9806-cac15e04856e&width=768&dpr=3&quality=100&sign=f51828f7&sv=2)![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252Fac1OLt43b0UhhVaj2jHh%252F2025-09-25_13-22.png%3Falt%3Dmedia%26token%3D1e4edf5a-e782-427f-9e40-bd682270171d&width=768&dpr=3&quality=100&sign=295e16c5&sv=2) [hashtag](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/maps-management#selecting-maps) Selecting Maps ----------------------------------------------------------------------------------------------------------------------------------------------- Once you have uploaded maps to your device, you can select which map you would like to use from the "Map Selection" panel on the left side of the screen. Click on the dropdown showing the currently selected map area and **select the name of the maps you would like to use**. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252F1yKT53Fju4xqfIDqt7Un%252Fmaps%2520updated.png%3Falt%3Dmedia%26token%3Dc3c4b824-d939-4edc-b54f-df0ee4cb8a12&width=768&dpr=3&quality=100&sign=75f6bc59&sv=2) circle-info **Restart the VPS** via the VPS control tab after selecting new maps. [PreviousHome Position Settingchevron-left](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/home-position-setting) [NextVPS Firmware Updateschevron-right](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/vps-firmware-updates) Last updated 6 months ago * [Uploading New Maps](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/maps-management#uploading-new-maps) * [Verify Map Checksum](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/maps-management#verify-map-checksum) * [Selecting Maps](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/maps-management#selecting-maps) --- # Pre-Flight Checklist | Theseus Docs [hashtag](https://docs.theseus.us/cyclops/validation/pre-flight-checklist#on-uav) On UAV --------------------------------------------------------------------------------------------- * Camera and Computer are [mounted](https://docs.theseus.us/cyclops/vehicle-integration/mechanical-installation#mounting-your-camera) securely * Installed camera is appropriate for flight conditions (i.e. thermal camera for night missions) * All Cyclops components are properly connected and [powered](https://docs.theseus.us/cyclops/vehicle-integration/power) * Redundant position source (GPS, CRPA, remote pilot, etc.) is available [hashtag](https://docs.theseus.us/cyclops/validation/pre-flight-checklist#on-vozilla) On Vozilla ----------------------------------------------------------------------------------------------------- While connected to Cyclops over Ethernet: * [Home position](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/home-position-setting) is set to the intended takeoff location * [Loaded map](https://docs.theseus.us/gcs-software/vozilla-gcs/maps) covers the entire mission area * Correct [Camera calibration](https://docs.theseus.us/cyclops/vehicle-integration/camera-calibration) configuration is selected * Correct [Mounting configuration](https://docs.theseus.us/cyclops/vehicle-integration/mechanical-installation#mounting-calibration) is selected After disconnecting Ethernet: * Vozilla is connected to UAV over [MAVLink](https://docs.theseus.us/gcs-software/vozilla-gcs/mavlink) and position(s) are visible [hashtag](https://docs.theseus.us/cyclops/validation/pre-flight-checklist#on-gcs) On GCS --------------------------------------------------------------------------------------------- * [Dead Reckoning](https://docs.theseus.us/cyclops/autopilot-integration/dead-reckoning-switch) and [Cyclops Safety](https://docs.theseus.us/cyclops/autopilot-integration/cyclops-safety-switch) Lua scripts are uploaded to FC, mapped to RC switches, and running properly * UAV appears at the home position set on Vozilla * Mission plan is uploaded (see: [Flight Test](https://docs.theseus.us/cyclops/validation/flight-test) ) [hashtag](https://docs.theseus.us/cyclops/validation/pre-flight-checklist#test-conditions) Test Conditions --------------------------------------------------------------------------------------------------------------- Note the following conditions: 1. Is GPS being jammed/spoofed? 2. Is it raining, snowing, or cloudy in the mission area? 3. Are there air raid alerts or other events that will ground your UAV? [PreviousBench Testchevron-left](https://docs.theseus.us/cyclops/validation/bench-test) [NextFlight Testchevron-right](https://docs.theseus.us/cyclops/validation/flight-test) Last updated 1 month ago * [On UAV](https://docs.theseus.us/cyclops/validation/pre-flight-checklist#on-uav) * [On Vozilla](https://docs.theseus.us/cyclops/validation/pre-flight-checklist#on-vozilla) * [On GCS](https://docs.theseus.us/cyclops/validation/pre-flight-checklist#on-gcs) * [Test Conditions](https://docs.theseus.us/cyclops/validation/pre-flight-checklist#test-conditions) --- # Theseus Account | Theseus Docs We've linked your Theseus Maps App account to the Theseus GCS App. This allows us to check for updates to make sure you're using the most up to date versions of our software. Navigate to the "Account" tab on the left menu. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FJagMwSD8465HWiLiBRBD%252F2025-09-25_09-42.png%3Falt%3Dmedia%26token%3D7e442809-0e84-472e-96ca-c00166703d91&width=768&dpr=3&quality=100&sign=fd796741&sv=2)![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FLdYO7SzU749YjhZjSxS1%252F2025-09-25_09-44.png%3Falt%3Dmedia%26token%3Dcd78801b-48c1-4741-8d2b-6673f0d6314b&width=768&dpr=3&quality=100&sign=bdabb58f&sv=2) This brings you to the Theseus account sign in page. If you don't already have an account, check out [Create account](https://docs.theseus.us/gcs-software/legacy-software/theseus-maps-app/create-account) . Once you have an account with the Theseus Maps App, you can sign in with your email and password in the GCS App. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FlN82zVFCuQTaYONWaK0h%252F2025-09-25_09-57.png%3Falt%3Dmedia%26token%3D2fb4b97a-a094-4f11-8ca8-9879108f55a5&width=768&dpr=3&quality=100&sign=d6aa82ed&sv=2)![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252F2172453wdknNUBNsm0ue%252F2025-09-25_09-46.png%3Falt%3Dmedia%26token%3D7c77d0ef-9d4f-44a7-bf09-87b5ad187498&width=768&dpr=3&quality=100&sign=c96fc7d9&sv=2) ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252Ff2Mzn71RVGxt8GirCv6q%252F2025-09-25_09-59.png%3Falt%3Dmedia%26token%3D1f430d29-0438-4186-a976-e317021c3a85&width=768&dpr=3&quality=100&sign=ef634a08&sv=2)![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FooSEFPAkDrvHirGM35eP%252F2025-09-25_10-00.png%3Falt%3Dmedia%26token%3D3d79286a-267c-4b61-b011-051152fd67ea&width=768&dpr=3&quality=100&sign=b3d329f1&sv=2) Message upon successful sign in Now you're all ready to receive updates to your product. If your curious about this feature, see [VPS Firmware Updates](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/vps-firmware-updates) . [PreviousDeactivating Map Matchingchevron-left](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/deactivating-map-matching) [NextVehicle Configurationchevron-right](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/vehicle-configuration) Last updated 6 months ago --- # Developer API | Theseus Docs The Micro VPS exposes a REST API over HTTP for direct integration with your GCS software. **Default Base URL:** `http://192.168.218.100:5000` All responses are JSON. Endpoints return `{"code": "SUCCESS", ...}` on success and `{"code": "ERROR", "message": "..."}` on failure. * * * ### [hashtag](https://docs.theseus.us/micro-vps/autopilot-integration/developer-api#integration-flow) Integration Flow 1. `GET /api/ping` — verify the module is reachable 2. `POST /api/upload/maps` — upload a map archive 3. `GET /api/extraction/status` — poll until extraction completes 4. `POST /api/maps/set` — activate the uploaded map 5. `POST /api/home-position` — set the takeoff / starting location * * * ### [hashtag](https://docs.theseus.us/micro-vps/autopilot-integration/developer-api#connectivity) Connectivity #### [hashtag](https://docs.theseus.us/micro-vps/autopilot-integration/developer-api#ping) Ping Copy GET /api/ping **Response** `**200**`**:** Copy { "status": "ok" } * * * ### [hashtag](https://docs.theseus.us/micro-vps/autopilot-integration/developer-api#map-management) Map Management #### [hashtag](https://docs.theseus.us/micro-vps/autopilot-integration/developer-api#upload-a-map) Upload a Map Uploads a `.tar.gz` map archive. The file is received synchronously; extraction happens in the background. **Headers:** Header Required Description `filename` Yes URL-encoded filename, must end in `.tar.gz` `checksum` No SHA256 checksum for integrity verification **Body:** Raw binary stream of the `.tar.gz` file. **Response** `**200**`**:** After a successful upload, poll `/api/extraction/status` until extraction is complete. * * * #### [hashtag](https://docs.theseus.us/micro-vps/autopilot-integration/developer-api#get-extraction-status) Get Extraction Status Poll this endpoint after uploading a map to monitor background extraction progress. **Response** `**200**`**:** * * * #### [hashtag](https://docs.theseus.us/micro-vps/autopilot-integration/developer-api#list-available-maps) List Available Maps **Response** `**200**`**:** `completed` is `false` while extraction is still in progress. A map cannot be activated until `completed` is `true`. * * * #### [hashtag](https://docs.theseus.us/micro-vps/autopilot-integration/developer-api#get-active-map) Get Active Map **Response** `**200**`**:** Returns `"active_map": null` if no map is selected. * * * #### [hashtag](https://docs.theseus.us/micro-vps/autopilot-integration/developer-api#set-active-map) Set Active Map **Request body:** **Response** `**200**`**:** Error Code Reason 400 Missing `map_name` 400 Map extraction not yet complete 404 Map not found * * * #### [hashtag](https://docs.theseus.us/micro-vps/autopilot-integration/developer-api#delete-a-map) Delete a Map **Request body:** Field Required Description `map_name` Yes Name of the map to delete `new_active_map` No If deleting the active map, switch to this map first `new_home_position` No Home position for the new active map (`lat`, `lon`, `alt`) * * * ### [hashtag](https://docs.theseus.us/micro-vps/autopilot-integration/developer-api#home-position) Home Position #### [hashtag](https://docs.theseus.us/micro-vps/autopilot-integration/developer-api#get-home-position) Get Home Position **Response** `**200**`**:** * * * #### [hashtag](https://docs.theseus.us/micro-vps/autopilot-integration/developer-api#set-home-position) Set Home Position Sets the starting point for navigation. **A map must be active before setting the home position.** **Request body:** Field Required Description `lat` Yes Latitude in degrees (-90 to 90) `lon` Yes Longitude in degrees (-180 to 180) `alt` Yes Altitude in meters — automatically replaced by an elevation lookup from the active map data **Response** `**200**`**:** Error Code Reason 400 Missing `lat` or `lon` 400 Coordinates not numeric or out of valid range 500 Elevation lookup failed — is a map loaded? [PreviousQGroundControlchevron-left](https://docs.theseus.us/micro-vps/autopilot-integration/qgroundcontrol) [NextMap Downloadchevron-right](https://docs.theseus.us/micro-vps/autopilot-integration/developer-api/map-download) Last updated 11 days ago * [Integration Flow](https://docs.theseus.us/micro-vps/autopilot-integration/developer-api#integration-flow) * [Connectivity](https://docs.theseus.us/micro-vps/autopilot-integration/developer-api#connectivity) * [Map Management](https://docs.theseus.us/micro-vps/autopilot-integration/developer-api#map-management) * [Home Position](https://docs.theseus.us/micro-vps/autopilot-integration/developer-api#home-position) Copy POST /api/upload/maps Copy { "code": "SUCCESS", "message": "Upload received, extraction started for my-map.tar.gz", "size": 104857600, "chunks_processed": 12800, "checksum": "abc123...", "extraction_queued": true, "map_name": "my-map" } Copy GET /api/extraction/status Copy { "code": "SUCCESS", "data": { ... } } Copy GET /api/maps Copy { "code": "SUCCESS", "data": [\ {\ "name": "my-map",\ "size": 209715200,\ "size_human": "200.0 MB",\ "modified": 1710000000.0,\ "completed": true,\ "checksum": "abc123...",\ "format_version": "1.0.0",\ "min_firmware_version": "1.16.0"\ }\ ] } Copy GET /api/maps/current Copy { "code": "SUCCESS", "data": { "active_map": "my-map" } } Copy POST /api/maps/set Content-Type: application/json Copy { "map_name": "my-map" } Copy { "code": "SUCCESS", "data": { "active_map": "my-map", "message": "Active map set to my-map" } } Copy POST /api/maps/delete Content-Type: application/json Copy { "map_name": "my-map" } Copy GET /api/home-position Copy { "home_position": { "lat": 54.0887, "lon": 12.1407, "alt": 42.5 } } Copy POST /api/home-position Content-Type: application/json Copy { "lat": 54.0887, "lon": 12.1407, "alt": 0 } Copy { "code": "SUCCESS", "message": "Home position updated successfully", "home_position": { "lat": 54.0887, "lon": 12.1407, "alt": 42.5 } } --- # Vehicle Configuration | Theseus Docs The Micro VPS needs to know the orientation of the flight controller relative to itself in order to accurately give a position estimate. The GCS App has a tool to define this transformation and save it to a file. Check out our [Mechanical Installation](https://docs.theseus.us/micro-vps/vehicle-integration/mechanical-installation) page for information on how to properly mount you Micro VPS and create the transformation. [hashtag](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/vehicle-configuration#generator-tool) Generator Tool ----------------------------------------------------------------------------------------------------------------------------------------------------- ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FSEj27eB6WFnQrC1psfHV%252F2025-10-10_12-53.png%3Falt%3Dmedia%26token%3Dc6f61d75-fd99-4cbe-9509-6c423aff7ca9&width=768&dpr=3&quality=100&sign=c20e9d7a&sv=2)![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FHBCPgBw8ilvs8bRnTO8R%252F2025-10-10_12-52.png%3Falt%3Dmedia%26token%3D5a04643b-11b2-46e7-8b81-fbc200059e62&width=768&dpr=3&quality=100&sign=d8b71c6&sv=2) ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FKpBnNb3lV1AQcAvKpRXU%252Fimage.png%3Falt%3Dmedia%26token%3Df233a895-793c-47b9-a40c-82db6e0fbdff&width=768&dpr=3&quality=100&sign=9dff5d89&sv=2)![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FEizDtipqX08bsUYiS2Rm%252F2025-10-10_13-03.png%3Falt%3Dmedia%26token%3D615511ad-cf5a-4267-8c7b-2c4f803cf0f0&width=768&dpr=3&quality=100&sign=9855685a&sv=2) [hashtag](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/vehicle-configuration#changing-the-sysid) Changing the sysid ------------------------------------------------------------------------------------------------------------------------------------------------------------- You might wish to change the sysid of your flight controller, but by default the Micro VPS searches for sysid 1. To change this default, you can use the vehicle configuration generator tool (≥ v1.7.7). Create your vehicle config file and change the sysid/compid to the values used by your flight controller, then upload the config file, select it in the vehicle params dropdown, and finally restart the Micro VPS. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252Fg6fO2m46wWy673H6dT6h%252F2025-11-04_17-23.png%3Falt%3Dmedia%26token%3Dc12bd81b-93b9-4abd-90cd-3f225af60935&width=768&dpr=3&quality=100&sign=6514a74e&sv=2)![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252Fx1OLnqbPhWGd0mvKbBd9%252F2025-11-04_17-22.png%3Falt%3Dmedia%26token%3D3936a260-a8e8-4689-8fd6-14f8d9cabf83&width=768&dpr=3&quality=100&sign=70a8b2bc&sv=2) [PreviousTheseus Accountchevron-left](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/theseus-account) [NextTheseus Maps Appchevron-right](https://docs.theseus.us/gcs-software/legacy-software/theseus-maps-app) Last updated 3 months ago * [Generator Tool](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/vehicle-configuration#generator-tool) * [Changing the sysid](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/vehicle-configuration#changing-the-sysid) --- # ArduPilot | Theseus Docs [ArduPilotarrow-up-right](https://ardupilot.org/) is an open-source autopilot. Theseus is proud to be an [ArduPilot partnerarrow-up-right](https://ardupilot.org/ardupilot/docs/common-partners.html) . Cyclops does not require you to install any custom version of ArduPilot, Mission Planner, or QGroundControl. Our system works out of the box with existing software. **The Cyclops system is tested on ArduPilot v4.6**. We recommend using ArduPilot v4.6+ to guarantee compatibility. circle-info The Cyclops system is expected to be compatible with ArduPilot v4.x. Please let us know if you integrate with an older version of ArduPilot. [hashtag](https://docs.theseus.us/cyclops/autopilot-integration/ardupilot#parameters) Parameters ----------------------------------------------------------------------------------------------------- Prior to configuring the ArduPilot parameters to enable communication with Cyclops, enable MAVLink on the port you selected when integrating with your flight controller in [Flight Controller](https://docs.theseus.us/cyclops/vehicle-integration/flight-controller) . ### [hashtag](https://docs.theseus.us/cyclops/autopilot-integration/ardupilot#uart-port) UART Port Set the port protocol to **MAVLink 2** and baud rate to **921600**. Here is the map between physical and UART ports for the **Cube Orange +**: UART Serial Physical Port UART 2 SERIAL 1 TELEM 1 UART 3 SERIAL 2 TELEM 2 UART 8 SERIAL 4 GPS 2 ### [hashtag](https://docs.theseus.us/cyclops/autopilot-integration/ardupilot#ardupilot-system-params) ArduPilot System Params circle-info By default, Cyclops sends position using the `MAV_CMD_EXTERNAL_POSITION_ESTIMATE` message. circle-exclamation To accept these estimates, ArduPilot needs to not use the GPS in its EKF sources. These parameters govern system time synchronization. We disable GPS blending and auto switching. ArduPilot Parameter Param Value Description BRD\_RTC\_TYPES 2 Set time from MAVLink circle-info If you plan on sending positions using the GPS input message type, we recommend you look at our parameter configuration for the Micro VPS in [Autopilot Integration](https://docs.theseus.us/micro-vps/autopilot-integration) . We disable the `GPS_AUTO_SWITCH` and `GPS_BLEND_MASK` to avoid naive fusion with a real GPS by ArduPilot. ### [hashtag](https://docs.theseus.us/cyclops/autopilot-integration/ardupilot#ardupilot-dead-reckoning-ekf-params) ArduPilot Dead Reckoning EKF Params These parameters govern how the ArduPilot EKF integrates sensor measurements to estimate its position. This is one of the key components in ArduPilot's navigation and control mechanisms. circle-info These are the parameters we use for our internal testing when dead reckoning with ArduPlane. ArduPilot's EKF has three sensor source sets (`EK3_SRC1`, `EK3_SRC2`, `EK3_SRC3`). You can configure each source sets with different sensor inputs. The configuration below sets `EK3_SRC1` to pull sensor information from the barometer and compass, and to not use the GPS. Cyclops relies on the barometer to estimate altitude. We recommend enabling continuous calibration of the compass during flight. It is recommend to set EK3\_MAG\_CAL to 3 (in the air) or 4 (always). circle-exclamation Do not pull velocity (VELXY, VELZ), altitude (POSZ), or yaw (YAW) inputs from the GPS when VPS is on. ArduPilot Parameter Param Value Description EK3\_SRC\_OPTIONS 0 Disable fusing velocity sources EK3\_GPS\_CHECK 23 Disable horizontal accuracy checks for arming EK3\_SRC1\_POSXY 0 Disable xy position input EK3\_SRC1\_VELXY 0 Disable xy velocity inputs EK3\_SRC1\_POSZ 1 Pull altitude from barometer EK3\_SRC1\_VELZ 0 Disable z velocity inputs EK3\_SRC1\_YAW 1 Pull yaw from compass EK3\_MAG\_CAL 3 Enabling mag cal in the air Go to [Mission Planner](https://docs.theseus.us/micro-vps/autopilot-integration/mission-planner) or [QGroundControl](https://docs.theseus.us/cyclops/autopilot-integration/qgroundcontrol) to see how to configure your drone to operate with Micro VPS. circle-info We provide a Lua script for toggling the `EK3_SRC1_POSXY` to switch between dead reckoning mode and GPS mode, allowing your UAV to dead reckon with the EKF. This is covered in [Dead Reckoning Switch](https://docs.theseus.us/cyclops/autopilot-integration/dead-reckoning-switch) [PreviousMAVLinkchevron-left](https://docs.theseus.us/cyclops/autopilot-integration/mavlink) [NextMission Plannerchevron-right](https://docs.theseus.us/cyclops/autopilot-integration/mission-planner) Last updated 1 month ago * [Parameters](https://docs.theseus.us/cyclops/autopilot-integration/ardupilot#parameters) * [UART Port](https://docs.theseus.us/cyclops/autopilot-integration/ardupilot#uart-port) * [ArduPilot System Params](https://docs.theseus.us/cyclops/autopilot-integration/ardupilot#ardupilot-system-params) * [ArduPilot Dead Reckoning EKF Params](https://docs.theseus.us/cyclops/autopilot-integration/ardupilot#ardupilot-dead-reckoning-ekf-params) --- # SSH Setup | Theseus Docs Install the SSH daemon. This must be done in a Terminal window on the Pi. Copy sudo apt update && sudo apt install ssh sudo systemctl start ssh && sudo systemctl enable ssh Next, you will need to [find your IParrow-up-right](https://help.ubuntu.com/stable/ubuntu-help/net-findip.html.en#:~:text=network)%20IP%20address-,Open%20the%20Activities%20overview%20and%20start%20typing%20Settings.,sidebar%20to%20open%20the%20panel.&text=Click%20the-,button%20next%20to%20the%20active%20connection,IP%20address%20and%20other%20details.) . Avoid using the dynamic `pi.local` address as this uses mDNS which can cause unexpected behavior in other applications. circle-info Make sure the Pi is connected to your router to get the correct IP address. Verify you can ping the device at its IP address from your windows machine: 1. Add the IP and host name to [/etc/hostsarrow-up-right](https://www.theserverside.com/blog/Coffee-Talk-Java-News-Stories-and-Opinions/How-to-edit-the-Ubnutu-hosts-file-and-ping-a-domain-name-locally) or [C:\\windows\\system32\\drivers\\etc\\hostsarrow-up-right](https://kb.parallels.com/129398/) file and ping the host name Copy $ ping pi5-tutorial PING pi5-tutorial (100.64.155.31) 56(84) bytes of data. 64 bytes from pi5-tutorial (100.64.155.31): icmp_seq=1 ttl=64 time=60.4 ms 64 bytes from pi5-tutorial (100.64.155.31): icmp_seq=2 ttl=64 time=6.26 ms ^C --- pi5-tutorial ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1001ms rtt min/avg/max/mdev = 6.255/33.340/60.426/27.085 ms OR 1. Type out the IP address each time Copy $ ping 100.64.155.31 PING 100.64.155.31 (100.64.155.31) 56(84) bytes of data. 64 bytes from 100.64.155.31: icmp_seq=1 ttl=64 time=81.8 ms ^C --- 100.64.155.31 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 81.796/81.796/81.796/0.000 ms I will use `pi5-tutorial` as the hostname and `pi` as the user for the rest of the tutorial. Verify you can SSH into the Pi from your windows machine with the command `ssh user@hostname` Proceed to step #4 of [Setup steps](https://docs.theseus.us/cyclops/getting-started#setup-steps) [PreviousPi 5 Walkthroughchevron-left](https://docs.theseus.us/cyclops/cyclops-computer/pi-5-walkthrough) [NextHardware Setupchevron-right](https://docs.theseus.us/cyclops/cyclops-computer/pi-5-walkthrough/hardware-setup) Last updated 1 month ago Copy $ ssh pi@pi5-tutorial The authenticity of host 'pi5-tutorial (100.64.155.31)' can't be established. ED25519 key fingerprint is SHA256:gaErV4cIsStaQjpiTEljI1Ac2NETlUHMnipmgd6nwC0. This key is not known by any other names Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added 'pi5-tutorial' (ED25519) to the list of known hosts. pi@pi5-tutorial's password: Welcome to Ubuntu 24.04 LTS (GNU/Linux 6.8.0-1031-raspi aarch64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/pro Expanded Security Maintenance for Applications is not enabled. 295 updates can be applied immediately. 119 of these updates are standard security updates. To see these additional updates run: apt list --upgradable Enable ESM Apps to receive additional future security updates. See https://ubuntu.com/esm or run: sudo pro status The programs included with the Ubuntu system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. pi@pi5:~$ --- # Bench Test | Theseus Docs This section details how to validate that Cyclops is operational before executing test flights. We will initialize the Cyclops system and expect the drone to be in a flight-ready state before At this stage of the integration process you have: * Physically integrated Cyclops on your vehicle [Vehicle Integration](https://docs.theseus.us/cyclops/vehicle-integration) * Configured ArduPilot for Cyclops [Autopilot Integration](https://docs.theseus.us/cyclops/autopilot-integration) circle-exclamation You will need a Windows/Linux laptop with [Vozilla GCS](https://docs.theseus.us/gcs-software/vozilla-gcs) installed in order to proceed. We recommend that you go through the documentation for [Vozilla GCS](https://docs.theseus.us/gcs-software/vozilla-gcs) to familiarize yourself with using Cyclops before proceeding. [hashtag](https://docs.theseus.us/cyclops/validation/bench-test#before-powering-on) Before Powering On ----------------------------------------------------------------------------------------------------------- You must generate a map of your flight area before testing Cyclops on your UAV. Refer to [Creating a new map](https://docs.theseus.us/gcs-software/vozilla-gcs/maps/creating-a-new-map) in the Vozilla GCS app documentation for details on this process. [hashtag](https://docs.theseus.us/cyclops/validation/bench-test#booting-the-vehicle) Booting the Vehicle ------------------------------------------------------------------------------------------------------------- Power on your UAV and Cyclops system. Ensure that your camera and flight computer both boot properly. [hashtag](https://docs.theseus.us/cyclops/validation/bench-test#initialize-cyclops) Initialize Cyclops ----------------------------------------------------------------------------------------------------------- Connect your laptop to the flight computer using the Ethernet port. Open the Vozilla app on your laptop. The first step will be to upload your map(s) and set the home position on Cyclops from the [Maps](https://docs.theseus.us/gcs-software/vozilla-gcs/maps) tab. Refer to [Selecting a map](https://docs.theseus.us/gcs-software/vozilla-gcs/maps/selecting-a-map) and [Setting a home position](https://docs.theseus.us/gcs-software/vozilla-gcs/maps/setting-a-home-position) for more information on these operations. ### [hashtag](https://docs.theseus.us/cyclops/validation/bench-test#verify-data-connectivity) Verify Data Connectivity Verify the camera connection on the compute module by navigating to the [System](https://docs.theseus.us/gcs-software/vozilla-gcs/system) tab. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FBOGNh4wkWYLrGnBmo9Rm%252FScreenshot%2520from%25202025-12-19%252018-05-14.png%3Falt%3Dmedia%26token%3Daf78f0ef-b15e-4752-a023-6b29861f90d1&width=768&dpr=3&quality=100&sign=ad4f9af8&sv=2) You can use the SNAPSHOT button to verify the image is up-to-date and not occluded ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FALMtAVfObGn4HEunqoje%252FScreenshot%2520from%25202025-12-19%252018-06-33.png%3Falt%3Dmedia%26token%3Dd803e71d-8a11-41d1-b7d6-6df133d3d4d4&width=768&dpr=3&quality=100&sign=e5b8df31&sv=2) Verify the MAVLink connection on the compute module by navigating to the [System](https://docs.theseus.us/gcs-software/vozilla-gcs/system) tab. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FbddgAZ9X5jFd777Cc3aJ%252FScreenshot%2520from%25202025-12-19%252015-38-50.png%3Falt%3Dmedia%26token%3Dac7bc8c4-3fcb-4343-b55c-ca0eb807f40c&width=768&dpr=3&quality=100&sign=e622abe4&sv=2) Connect to the VPS Edge Device. The default URL is `tcp:192.168.218.100:14559` ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FyIxieuCNSeqriEXU5d5Y%252FScreenshot%2520from%25202025-12-19%252015-38-34.png%3Falt%3Dmedia%26token%3Df1dc9fc1-a5b1-4c4c-823c-7fc06c2eb064&width=768&dpr=3&quality=100&sign=817a454d&sv=2) You should see MAV information from your drone displayed. If you do not see an autopilot, verify your wiring and baud rate. The default baud rate is 921600. ### [hashtag](https://docs.theseus.us/cyclops/validation/bench-test#update-active-maps) Update Active Maps On the [Maps](https://docs.theseus.us/gcs-software/vozilla-gcs/maps) , ensure the correct map is selected. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FzNQ0bmWNSet0DZp11zpJ%252Fimage.png%3Falt%3Dmedia%26token%3Df4005621-c3d9-46a2-bb85-8057e2f1d1fa&width=768&dpr=3&quality=100&sign=9e3dd9f6&sv=2) ### [hashtag](https://docs.theseus.us/cyclops/validation/bench-test#update-launch-location) Update Launch Location Set the home position to the location where you will be launching your UAV by dragging the marker or entering manually. ### [hashtag](https://docs.theseus.us/cyclops/validation/bench-test#restart-vps) Restart VPS Return to the main dashboard and restart Cyclops by clicking the "_Restart_" button under VPS Control. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FgH4ZDPpINbTExKneEGHa%252Fimage.png%3Falt%3Dmedia%26token%3Dd8a1b7c9-debc-44cd-9b95-095aab6601f0&width=768&dpr=3&quality=100&sign=48970dae&sv=2) The dashboard should now show that the system is **Running**. At this point you can expect: * Cyclops to be connected to the autopilot over MAVLink. * Cyclops is receiving data from the camera. circle-check Cyclops is running and all required systems are healthy on Vozilla. [PreviousValidationchevron-left](https://docs.theseus.us/cyclops/validation) [NextPre-Flight Checklistchevron-right](https://docs.theseus.us/cyclops/validation/pre-flight-checklist) Last updated 3 months ago * [Before Powering On](https://docs.theseus.us/cyclops/validation/bench-test#before-powering-on) * [Booting the Vehicle](https://docs.theseus.us/cyclops/validation/bench-test#booting-the-vehicle) * [Initialize Cyclops](https://docs.theseus.us/cyclops/validation/bench-test#initialize-cyclops) * [Verify Data Connectivity](https://docs.theseus.us/cyclops/validation/bench-test#verify-data-connectivity) * [Update Active Maps](https://docs.theseus.us/cyclops/validation/bench-test#update-active-maps) * [Update Launch Location](https://docs.theseus.us/cyclops/validation/bench-test#update-launch-location) * [Restart VPS](https://docs.theseus.us/cyclops/validation/bench-test#restart-vps) --- # Getting Started | Theseus Docs Cyclops is a software-only visual positioning system for fixed-wing UAVs operating in GPS-denied environments. It delivers drift-free global position estimates using onboard camera imagery, runs on commercial hardware, works day or night, and integrates directly with ArduPilot. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FWmzoWFJPTGs4MObZJoaK%252FvozMaps.png%3Falt%3Dmedia%26token%3D086a4424-7d61-4447-8ab1-71d3dae085ca&width=768&dpr=3&quality=100&sign=7e169280&sv=2) [hashtag](https://docs.theseus.us/cyclops/getting-started#before-starting) Before starting ----------------------------------------------------------------------------------------------- This quick start guide walks you through setting up Cyclops on your drone. By the end you'll be ready to perform bench tests and run your first flight with Cyclops. What you need: **On the drone:** * ArduPilot v4.6+ fixed-wing with compass, barometer, airspeed sensor * Camera (EO or thermal), ≥0.05MP resolution, global shutter is optimal * ARM64 edge computer: 2+ cores @ 2.4GHz, 4GB RAM, Ubuntu 22/24 * Tested: Raspberry Pi 5, NanoPi R6C * MAVLink connection (UART or UDP) between autopilot and edge device **On the ground:** * Host computer running Linux or Windows circle-info Learn more about supported hardware here. [hashtag](https://docs.theseus.us/cyclops/getting-started#setup-steps) Setup steps --------------------------------------------------------------------------------------- The following steps walk you through the software setup process. For information on mechanical installation check out [Vehicle Integration](https://docs.theseus.us/cyclops/vehicle-integration) . 1. [Create a Theseus accountarrow-up-right](https://dashboard.theseus.us/signup) 2. [Get Vozilla](https://docs.theseus.us/gcs-software/vozilla-gcs/installation) 3. [Setup edge device OS with ssh](https://docs.theseus.us/cyclops/cyclops-computer/pi-5-walkthrough) 4. [Connect your edge device to the flight controller and setup drive](https://docs.theseus.us/cyclops/cyclops-computer/pi-5-walkthrough/hardware-setup) 5. [Run Cyclops installer](https://docs.theseus.us/cyclops/cyclops-computer/pi-5-walkthrough/vns-sdk-setup) 6. [Setup camera with edge device](https://docs.theseus.us/cyclops/cyclops-computer/pi-5-walkthrough/hardware-setup#verify-your-usb-camera) 7. [Connect to edge device with Vozilla](https://docs.theseus.us/gcs-software/vozilla-gcs/quick-start#using-another-ip-address-for-you-edge-device) 8. [Configure edge device with Vozilla](https://docs.theseus.us/cyclops/getting-started#add-your-vehicle) 9. [Calibrate camera](https://docs.theseus.us/cyclops/vehicle-integration/camera-calibration) 10. [Generate maps](https://docs.theseus.us/gcs-software/vozilla-gcs/maps) 11. [Set ardupilot params](https://docs.theseus.us/cyclops/getting-started#update-ardupilot-parameters) 12. [Bench test the system](https://docs.theseus.us/cyclops/validation/bench-test) ### [hashtag](https://docs.theseus.us/cyclops/getting-started#add-your-vehicle) Add your Vehicle Cyclops requires the camera pose relative to the flight controller. To ensure this goes smoothly, refer to the [mechanical installation](https://docs.theseus.us/cyclops/vehicle-integration/mechanical-installation) guide. Once your camera is mounted to your platform, enter: * the translation from camera to flight controller, and * the camera orientation relative to the flight controller On the vehicle calibration page and upload your vehicle configuration. Cyclops includes a few default configs to help you get started. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FcVNWRGaMaZI1nKAiJlNl%252FUntitled%2520design%282%29.gif%3Falt%3Dmedia%26token%3Dede7991e-f111-4207-8341-2f46e014fe76&width=768&dpr=3&quality=100&sign=97d88895&sv=2) ### [hashtag](https://docs.theseus.us/cyclops/getting-started#update-ardupilot-parameters) Update ArduPilot parameters Cyclops requires time synchronization between your autopilot and the edge device. Enable time sync over MAVLink by setting the `BRD_RTC_TYPES` parameter to 2 on your drone. circle-exclamation Time synchronization is essential, set `BRD_RTC_TYPES=2` on ArduPilot. Cyclops sends position updates with the `MAV_CMD_EXTERNAL_POSITION_ESTIMATE` command. For ArduPilot to accept these commands, GPS cannot be an EK3 sensor source. We recommend that you use our EK3 source switching scripts to toggle between dead-reckoning with Cyclops and flying with a GPS during testing. Learn more about ArduPilot configuration [here](https://docs.theseus.us/cyclops/autopilot-integration) . ### [hashtag](https://docs.theseus.us/cyclops/getting-started#generate-and-upload-a-map) Generate and upload a map Congrats! You are done with all initial setup steps for Cyclops: * Vozilla is downloaded and Theseus account is created * Cyclops is installed on your edge device * MAVLink ports and storage on edge device * Cyclops license is activated * Camera is calibrated Next, **generate a map** and upload it to Cyclops. Cyclops uses reference maps to estimate your drone's positioning when flying. Check out [Maps](https://docs.theseus.us/gcs-software/vozilla-gcs/maps) for more info on how to complete this step. ### [hashtag](https://docs.theseus.us/cyclops/getting-started#bench-tests-and-test-flights) Bench tests and test flights Before flying, make sure that your home position has been set correctly in Vozilla and that Cyclops is active. Learn more about bench tests [here](https://docs.theseus.us/cyclops/validation/bench-test) and flight test [here](https://docs.theseus.us/cyclops/validation/flight-test) . [hashtag](https://docs.theseus.us/cyclops/getting-started#learn-more) Learn More ------------------------------------------------------------------------------------- 1. Check pre-requisites: [Pre-Requisites](https://docs.theseus.us/cyclops/pre-requisites) 2. Have required Cyclops hardware: 3. Install Cyclops on your Flight Computer [Cyclops Computer](https://docs.theseus.us/cyclops/cyclops-computer) 4. Mount your Cyclops system to your vehicle: [Vehicle Integration](https://docs.theseus.us/cyclops/vehicle-integration) 5. Configure ArduPilot for Cyclops: [Autopilot Integration](https://docs.theseus.us/cyclops/autopilot-integration) 6. Configure Cyclops in software: [Vozilla GCS](https://docs.theseus.us/gcs-software/vozilla-gcs) 7. Perform a bench test: [Bench Test](https://docs.theseus.us/cyclops/validation/bench-test) 8. Perform a flight test: [Flight Test](https://docs.theseus.us/cyclops/validation/flight-test) [PreviousOperation Manualchevron-left](https://docs.theseus.us/micro-vps/operation/operation-manual) [NextPre-Requisiteschevron-right](https://docs.theseus.us/cyclops/pre-requisites) Last updated 5 days ago * [Before starting](https://docs.theseus.us/cyclops/getting-started#before-starting) * [Setup steps](https://docs.theseus.us/cyclops/getting-started#setup-steps) * [Add your Vehicle](https://docs.theseus.us/cyclops/getting-started#add-your-vehicle) * [Update ArduPilot parameters](https://docs.theseus.us/cyclops/getting-started#update-ardupilot-parameters) * [Generate and upload a map](https://docs.theseus.us/cyclops/getting-started#generate-and-upload-a-map) * [Bench tests and test flights](https://docs.theseus.us/cyclops/getting-started#bench-tests-and-test-flights) * [Learn More](https://docs.theseus.us/cyclops/getting-started#learn-more) --- # QGroundControl | Theseus Docs This page shows you how to configure your ArduPilot drone like described in [ArduPilot](https://docs.theseus.us/micro-vps/autopilot-integration/ardupilot) using QGroundControl (QGC). [hashtag](https://docs.theseus.us/cyclops/autopilot-integration/qgroundcontrol#configuring-serial-ports) Configuring Serial Ports -------------------------------------------------------------------------------------------------------------------------------------- On the main panel on QGC, click on the QGC logo on the top left corner of the screen, then in the "Select Tool" pop up menu, select "Vehicle Setup". At the bottom of the menu on the left side of the screen on the Vehicle Setup page, click on "Parameters". Then, click on the search bar at the top of the screen to search for your parameter. Search for the serial port which matches the setting you chose in [Flight Controller](https://docs.theseus.us/micro-vps/vehicle-integration/flight-controller) . In our case, it is serial2. We use a default baud of 912600, but this is configurable and can be changed with Vozilla [Configuring MAVProxy](https://docs.theseus.us/gcs-software/vozilla-gcs/system#configuring-mavproxy) ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FNa0yfTGPpibCjB23IJYP%252Fserial2.png%3Falt%3Dmedia%26token%3D9bf228cb-a3c1-40f9-89d1-b01c91029850&width=768&dpr=3&quality=100&sign=15aeff2e&sv=2) [hashtag](https://docs.theseus.us/cyclops/autopilot-integration/qgroundcontrol#editing-ardupilot-params) Editing ArduPilot Params -------------------------------------------------------------------------------------------------------------------------------------- Set **GPS\_BLEND\_MASK to 0** and **GPS\_AUTO\_SWITCH to 0** (use primary). ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FZpaoU0H9Cs0EIEJVMBR7%252Fgpsblendmask_autoswitch.png%3Falt%3Dmedia%26token%3Da28907e8-af20-4bdd-af81-1fd9e45885b5&width=768&dpr=3&quality=100&sign=68c586d2&sv=2) Set **EK3\_SRC\_OPTIONS to 0**. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252Fq52zdjikcUNbsXrpAzK9%252Fek3_src_options.png%3Falt%3Dmedia%26token%3Da0be8ee1-b2cb-4492-bba1-56135676236d&width=768&dpr=3&quality=100&sign=cca5efe5&sv=2) Set **EK3\_MAG\_CAL to 3** (after first climb yaw reset). ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FL7Jh0phQi4ixLrOh2RcD%252Fek3_mag_cal.png%3Falt%3Dmedia%26token%3Da83596ee-6748-444a-9975-278e7ca62313&width=768&dpr=3&quality=100&sign=c42333d5&sv=2) Set EK3\_SRC1 param values. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FTS7mFMIfJGpHbrWeLIMl%252Fek3_src1.png%3Falt%3Dmedia%26token%3Dff554ca3-3515-40fe-9022-c3755d5f2cf6&width=768&dpr=3&quality=100&sign=37082aec&sv=2) Set **EK3\_GPS\_CHECK to 23**. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FiD9iOrvKbVLiE8p3QQp7%252Fek3_gps_check.png%3Falt%3Dmedia%26token%3Daec95606-a543-4624-8695-9fc086c0d784&width=768&dpr=3&quality=100&sign=29bf88d5&sv=2) Set **BRD\_RTC\_TYPES to 2**. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252F9rivvMmYyywdLa8zIkIA%252Fbrd_rtc_types.png%3Falt%3Dmedia%26token%3D7b7b8dcb-17cf-49cc-94f4-4f786fb35379&width=768&dpr=3&quality=100&sign=ce4ab42c&sv=2) circle-check All parameters have been written to the autopilot from QGroundControl. [PreviousMission Plannerchevron-left](https://docs.theseus.us/cyclops/autopilot-integration/mission-planner) [NextDead Reckoning Switchchevron-right](https://docs.theseus.us/cyclops/autopilot-integration/dead-reckoning-switch) Last updated 3 months ago * [Configuring Serial Ports](https://docs.theseus.us/cyclops/autopilot-integration/qgroundcontrol#configuring-serial-ports) * [Editing ArduPilot Params](https://docs.theseus.us/cyclops/autopilot-integration/qgroundcontrol#editing-ardupilot-params) --- # vns_bench dev toolkit | Theseus Docs [hashtag](https://docs.theseus.us/micro-vps/validation/vns_bench-dev-toolkit#prerequisites) Prerequisites -------------------------------------------------------------------------------------------------------------- * Make sure you have python 3.10+ available on your system * Install [Foxglove Studioarrow-up-right](https://foxglove.dev/download) * Optional: set `FOXGLOVE_STUDIO_BIN=/path/to/foxglove-studio` if the binary is not on your `$PATH` Install `sshpass` (to connect to the VPS): Copy # Install sshpass sudo apt install sshpass [hashtag](https://docs.theseus.us/micro-vps/validation/vns_bench-dev-toolkit#quick-start) Quick Start ---------------------------------------------------------------------------------------------------------- ### [hashtag](https://docs.theseus.us/micro-vps/validation/vns_bench-dev-toolkit#installation) Installation Copy # For production use pip install "https://theseus-public-releases.s3.us-west-1.amazonaws.com/vns_bench-0.1.0-py3-none-any.whl" # Verify installation vns_bench --help ### [hashtag](https://docs.theseus.us/micro-vps/validation/vns_bench-dev-toolkit#setting-up-foxglove) Setting up Foxglove Open Foxglove Studio. Download the `default_layout.json` below and [upload it on Foxglove Studioarrow-up-right](https://docs.foxglove.dev/docs/visualization/layouts) : * Toggle the `default_layout` drop down on the menu bar * Choose "Import from file" * Select the default\_layout.json file and import it to Foxglove file-download 6KB [default\_layout.json](https://3178815652-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhUdZltvGJCfBMBzRuwSC%2Fuploads%2F9tmkGLfY46DUfBp5HiFG%2Fdefault_layout.json?alt=media&token=264681e8-27a7-47c5-81a6-627da88a0e4f) downloadDownload[arrow-up-right-from-squareOpen](https://3178815652-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhUdZltvGJCfBMBzRuwSC%2Fuploads%2F9tmkGLfY46DUfBp5HiFG%2Fdefault_layout.json?alt=media&token=264681e8-27a7-47c5-81a6-627da88a0e4f) Here's what you should see once you configure Foxglove Studio and run the `vns_bench analyze` command on your data: ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FlqJAIBZjYNQYDODNqIRq%252FScreenshot%2520from%25202025-11-26%252013-24-53.png%3Falt%3Dmedia%26token%3Df196d26d-f33c-4fea-af0d-593bc4fcf4eb&width=768&dpr=3&quality=100&sign=d7cdf6f3&sv=2) The tool gives some statistics on how the VPS perfomed during a flight and lets you see the tracks for both the VPS and GPS. ### [hashtag](https://docs.theseus.us/micro-vps/validation/vns_bench-dev-toolkit#analyzing-recordings) Analyzing Recordings The `analyze` command detects and processes flights from your recordings. _Make sure you connect and power the VPS before running this._ circle-check **Joe, the command you want is:** > Specify or select a recording when running `vns_bench analyze`. `vns_bench` automatically calculates metrics for your flight and opens Foxglove for visualization. #### [hashtag](https://docs.theseus.us/micro-vps/validation/vns_bench-dev-toolkit#available-commands) Available commands Remote logs are downloaded to your current directory and kept for future reference. #### [hashtag](https://docs.theseus.us/micro-vps/validation/vns_bench-dev-toolkit#remote-mode) Remote Mode The `--remote` flag allows pulling logs directly from a NanoPi edge device before analysis: * Connects via SSH to the device (default: `[[email protected]](https://docs.theseus.us/cdn-cgi/l/email-protection) `) * Lists available recordings with sizes * Downloads to your current directory: * Structured logs (`structured_logs/` directory with `.jsonl` files) * Telemetry data (`telemetry/` directory with `.jsonl` and `.idx` files) * Legacy log files (`.log` files) * Metadata files (`.json` files) * Excludes measurement data (camera images - too large) * Automatically uses structured logs if available, or converts legacy logs if needed * Runs flight detection analysis * Exports to MCAP and launches Foxglove if flight detected * Keeps all downloaded files for future reference Remote options: * `--host`: SSH host (default: `[[email protected]](https://docs.theseus.us/cdn-cgi/l/email-protection) `) * `--password`: SSH password (default: `pi`) * `--folder`: Specific recording folder to download (if not provided, interactive prompt) * `--base-dir`: Base directory on device (default: `/mnt/nvme`) ### [hashtag](https://docs.theseus.us/micro-vps/validation/vns_bench-dev-toolkit#metrics-within-foxglove) Metrics within Foxglove circle-info Version 1.7 and earlier of Micro VPS may only show limited support for metrics. Please reach out if you are interested in a metric that is not accessible from your data. #### [hashtag](https://docs.theseus.us/micro-vps/validation/vns_bench-dev-toolkit#position) Position * `/vns/gps_location`, `/vns/map_match_location` - LocationFix (for Map) * `/vns/gps_pose`, `/vns/map_match_pose` - PoseInFrame (for 3D) * `/tf` - Frame transforms #### [hashtag](https://docs.theseus.us/micro-vps/validation/vns_bench-dev-toolkit#events) Events * `/vns/events` - Diagnostic log messages (WARN, ERROR, INFO) with structured fields #### [hashtag](https://docs.theseus.us/micro-vps/validation/vns_bench-dev-toolkit#performance) Performance * `/vns/horizontal_error_m` - GPS vs Map Match error (meters) * `/vns/convergence_m` - Convergence indicator * `/vns/horizontal_error_rollup`, `/vns/convergence_rollup` - Rolling stats #### [hashtag](https://docs.theseus.us/micro-vps/validation/vns_bench-dev-toolkit#execution-metrics) Execution Metrics * **Timing**: `/vns/execution/map_match_total_ms`, `patch_extract_ms`, `localization_ms`, `map_match_publish_ms`, `frame_prep_ms` * **Map Reload**: `/vns/execution/map_reload_total_ms`, `map_reload_wait_ms`, `map_reload_grid_ms` * **System Health**: `/vns/execution/work_queue_depth`, `vio_velocity_mps`, `distance_since_realignment_m` * **Factor graph**: `/vns/execution/ins_calibration_scale`, `ins_calibration_heading_deg` * **Counters**: `/vns/execution/odom_skip`, `realignment_blocked`, `map_match_publish`, `waypoint_detected` #### [hashtag](https://docs.theseus.us/micro-vps/validation/vns_bench-dev-toolkit#grouped-metrics-multi-series-plotting) Grouped Metrics (multi-series plotting) * `/vns/groups/latencies` - All timing metrics with `metric_name` tag * `/vns/groups/system_health` - Queue depth, VIO velocity, realignment distance * `/vns/groups/calibration` - INS scale and heading * `/vns/groups/map_reload` - Map reload timing breakdown #### [hashtag](https://docs.theseus.us/micro-vps/validation/vns_bench-dev-toolkit#counter-breakdowns-aggregated-tables) Counter Breakdowns (aggregated tables) * `/vns/counters/odom_skip_breakdown` - Skip counts by reason * `/vns/counters/realignment_blocked_breakdown` - Block counts by reason * `/vns/counters/map_match_publish_breakdown` - Publish counts by status #### [hashtag](https://docs.theseus.us/micro-vps/validation/vns_bench-dev-toolkit#summary-and-debug) Summary & Debug * `/vns/summary_table` - Flight metrics (for Table panel) * `/vns/summary` - Raw JSON summary * `/vns/debug/nadir`, `/vns/debug/belief_grid` - Debug images ### [hashtag](https://docs.theseus.us/micro-vps/validation/vns_bench-dev-toolkit#troubleshooting) Troubleshooting The `mav_manager` module uses the [EXTENDED\_SYS\_STATEarrow-up-right](https://mavlink.io/en/messages/common.html#EXTENDED_SYS_STATE) mav message to determine if the drone is in the air or on the ground. When analyzing logs, vns\_bench looks at the `landed_state` recorded in the mav manager logs to check if the recording is an actual flight. Older versions of ardupilot might not support this message leading to the following output. If you encounter this issue make sure you have a local copy of the logs downloaded, then try running the following command instead: The export command doesn't do the flight detection check and should open up the recording in foxglove. [PreviousFlight testchevron-left](https://docs.theseus.us/micro-vps/validation/flight-test) [NextOperationchevron-right](https://docs.theseus.us/micro-vps/operation) Last updated 3 months ago * [Prerequisites](https://docs.theseus.us/micro-vps/validation/vns_bench-dev-toolkit#prerequisites) * [Quick Start](https://docs.theseus.us/micro-vps/validation/vns_bench-dev-toolkit#quick-start) * [Installation](https://docs.theseus.us/micro-vps/validation/vns_bench-dev-toolkit#installation) * [Setting up Foxglove](https://docs.theseus.us/micro-vps/validation/vns_bench-dev-toolkit#setting-up-foxglove) * [Analyzing Recordings](https://docs.theseus.us/micro-vps/validation/vns_bench-dev-toolkit#analyzing-recordings) * [Metrics within Foxglove](https://docs.theseus.us/micro-vps/validation/vns_bench-dev-toolkit#metrics-within-foxglove) * [Troubleshooting](https://docs.theseus.us/micro-vps/validation/vns_bench-dev-toolkit#troubleshooting) Copy # Pull specific recording and visualize vns_bench analyze --remote --folder 76_0af56fa4-b899-4380-b462-f03f213177a5 Copy # Analyze and visualize (default - auto-opens in Foxglove) vns_bench analyze /path/to/recording/ # Pull from device and auto-visualize (downloads to current directory) vns_bench analyze --remote # Analyze without launching Foxglove (just export MCAP) vns_bench analyze --remote --no-launch # Skip visualization entirely vns_bench analyze --remote --no-export # Analyze all recordings in a directory vns_bench analyze /path/to/recordings/ --batch # Output results as JSON vns_bench analyze /path/to/recording/ --json Copy holden@kyobancha:~/Downloads/81_9d$ vns_bench analyze 81_9d9b5ba2-8b78-410b-9673-ffccc24913ed/ ℹ Detected VIO legacy logs, converting... Parsing global.log... Parsed 33 lines Parsing map_match_gps_fusion.log... Parsed 164517 lines Parsing map_matcher.log... Parsed 88015 lines Parsing vio_transformer.log... Parsed 746 lines Parsing vio_health.log... Parsed 3720 lines Parsing vio_supervisor.log... Parsed 84 lines Parsing mav_manager.log... Parsed 138 lines Parsing scheduler.log... Parsed 5 lines Parsing timesync.log... Parsed 8729 lines Conversion complete: Variant: VIO Metrics: 65879 Poses: 37649 Output: /home/holden/.vns_bench/converted/81_9d9b5ba2-8b78-410b-9673-ffccc24913ed ✔ Converted 65879 metrics, 37649 poses ⚠ No flight detected Copy vns_bench export /local/path/to/recording/ --- # VPS Firmware Updates | Theseus Docs Theseus continually improves performance of the VPS software. New software updates can be installed on the Micro VPS device via the Theseus GCS app. Navigate to the "Update Firmware" tab on the left menu. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FKd8fNiRNwxBbS1hE2Dr0%252Fservice%2520stopped%2520dashboard%2520copy%25204.png%3Falt%3Dmedia%26token%3Dba1645ae-ffcc-4e96-8050-5428c32d1385&width=768&dpr=3&quality=100&sign=80c03726&sv=2) This brings you to the firmware updating dashboard. Click on the "Test Connection" button on the left side of the screen to verify the health of your connection to the compute module. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FuumP5YL45D7WQAgU79gC%252Ffirmware%2520man%2520page%2520copy.png%3Falt%3Dmedia%26token%3Daaad6e0f-440b-40df-b58c-2ce577126611&width=768&dpr=3&quality=100&sign=87e1f601&sv=2) [hashtag](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/vps-firmware-updates#over-the-air-ota-updates) Over-the-air (OTA) Updates -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Signing in to your [Theseus Account](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/theseus-account) allows us to automatically check for updates to the Micro VPS. Once you are signed in, the dashboard will check if your software is out of date. You will see a warning badge on the Update Firmware tab prompting you to update. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FpjOxFbPI436xMfGds9ex%252F2025-09-25_10-09.png%3Falt%3Dmedia%26token%3D40fab7d9-c1da-428d-ae48-314b859ed5fc&width=768&dpr=3&quality=100&sign=1cbb8b89&sv=2)![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FsuS3hS33vt2YszZb1iH4%252F2025-09-25_10-08.png%3Falt%3Dmedia%26token%3Dcb6ae61e-abc6-4784-9ace-a2962bcd8a11&width=768&dpr=3&quality=100&sign=5b03cd82&sv=2) Highlighting update firmware tab Click the "Download Update" button to begin updating your Micro VPS. The update process needs an internet connection to download the software, and for you to be signed in to your Theseus account. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FWQcl28mVqadlfus4gdvR%252F2025-09-25_10-39.png%3Falt%3Dmedia%26token%3D28dd9616-4877-41a1-820b-ae44bd9174be&width=768&dpr=3&quality=100&sign=271b7c3f&sv=2)![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FTSnbC4hz0VpY0hxt7W40%252F2025-09-25_10-39_1.png%3Falt%3Dmedia%26token%3D42281f08-b69e-4d4d-bf56-2f1ae24c5320&width=768&dpr=3&quality=100&sign=509396f0&sv=2) Downloading the update can take up to few minutes. When the update has been downloaded successfully, you'll be prompted to install it. Click "Install Firmware" to proceed with the update. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FhACcdXKhijz6IMUFmpZy%252F2025-09-25_10-50.png%3Falt%3Dmedia%26token%3D58bbbd73-e3a2-46da-bf09-7bc3f35427c1&width=768&dpr=3&quality=100&sign=e47896e0&sv=2)![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FUsiCkqs9RmumKTassmBN%252F2025-09-25_10-48.png%3Falt%3Dmedia%26token%3Dbbbf120d-8a14-44b5-9593-4bc6178e083d&width=768&dpr=3&quality=100&sign=557b9784&sv=2) You can view the status updates while the software is being updated. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FyAVEMB6ZWpwbMJWi5Bkr%252F2025-09-25_10-52.png%3Falt%3Dmedia%26token%3Dd70576a4-4193-47cb-b21b-4ce6f72177f6&width=768&dpr=3&quality=100&sign=3c1065f9&sv=2)![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FDDu2Mz6kSEhDAEr6Qde3%252F2025-09-25_10-53.png%3Falt%3Dmedia%26token%3D5644033f-fc23-4f9b-809f-439c5135f08d&width=768&dpr=3&quality=100&sign=88a35985&sv=2) Once the software update is complete, you will be prompted to reboot the device. This ensures all services have been properly refreshed and are using the up-to-date code. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FYvfTSlEe201oncdEYvWP%252F2025-09-25_10-54.png%3Falt%3Dmedia%26token%3Ddbbd59f9-06c3-4ed4-97e7-7af1a8714687&width=768&dpr=3&quality=100&sign=9192cd25&sv=2)![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FhyxfTGeaST8p79dPq69O%252F2025-09-25_10-53_1.png%3Falt%3Dmedia%26token%3Df1897906-faf0-41b1-b1f2-668dec692f5b&width=768&dpr=3&quality=100&sign=84ec7f8b&sv=2) [hashtag](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/vps-firmware-updates#uploading-new-software) Uploading New Software -------------------------------------------------------------------------------------------------------------------------------------------------------------------- circle-info This section is for manually installing a .deb binary. You can also update software with [Over-the-air (OTA) Updates](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/vps-firmware-updates#over-the-air-ota-updates) . If you'd prefer manually updating the Micro VPS software, you need to go and download the [latest software release](https://docs.theseus.us/gcs-software/legacy-software/theseus-maps-app/releases#latest-release) from our website. The Micro VPS software is a contained in a **.deb** file which should be uploaded to the Micro VPS using the "Update Firmware" page. Click on the "Update Controls" panel to select your .deb file and upload it to the device. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FI2j2N16EfEH4K9hCtGH5%252FScreenshot%2520from%25202025-07-23%252019-28-09%2520copy.png%3Falt%3Dmedia%26token%3D436f4bb3-9b9b-4244-90b1-3a7f140f58d5&width=768&dpr=3&quality=100&sign=3c580bb3&sv=2) Once you select your file, it will be uploaded to the device. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252F1UoIuz9gDEmvsVTQB7n0%252FScreenshot%2520from%25202025-07-23%252019-28-40%2520copy.png%3Falt%3Dmedia%26token%3D36192c42-4d7a-4dcc-880f-9d9e3785a9cb&width=768&dpr=3&quality=100&sign=58559e3c&sv=2) Once your binary is uploaded, it is ready to be deployed. Click the "Update VPS" button to deploy the software. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252F3IicDlVaWyeFVhEFHLTs%252Ffirmware%2520ready%2520to%2520update%2520copy.png%3Falt%3Dmedia%26token%3Dd34f32be-1736-4fa3-bd0b-1d3cd3504d80&width=768&dpr=3&quality=100&sign=5256a391&sv=2) All versions of the software present on the device are shown at the bottom of the page. You may select another version and choose to install it as you see fit. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FjgUwin8jxExLH5mK1CCO%252Ffirmware%2520select%2520version%2520copy.png%3Falt%3Dmedia%26token%3D298e3ce7-6167-4df9-8e9d-64aae683fdf6&width=768&dpr=3&quality=100&sign=6d8e4bb9&sv=2) circle-info We recommend **always using the** [**latest version**](https://docs.theseus.us/gcs-software/legacy-software/theseus-maps-app/releases#latest-release) **of the VPS software**. [PreviousMaps Managementchevron-left](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/maps-management) [NextDeactivating Map Matchingchevron-right](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/deactivating-map-matching) Last updated 2 months ago * [Over-the-air (OTA) Updates](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/vps-firmware-updates#over-the-air-ota-updates) * [Uploading New Software](https://docs.theseus.us/gcs-software/legacy-software/theseus-gcs-app/feature-list/vps-firmware-updates#uploading-new-software) --- # Mechanical Installation | Theseus Docs There are three steps to mounting the Theseus Micro VPS on your aircraft: 1. Figure out [Sensor Mounting](https://docs.theseus.us/micro-vps/vehicle-integration/mechanical-installation#sensor-mounting) 2. Calculate [Mounting Calibration](https://docs.theseus.us/micro-vps/vehicle-integration/mechanical-installation#mounting-calibration) (very important!) 3. Finally, [Compute Mounting](https://docs.theseus.us/micro-vps/vehicle-integration/mechanical-installation#compute-mounting) [hashtag](https://docs.theseus.us/micro-vps/vehicle-integration/mechanical-installation#sensor-mounting) Sensor Mounting ----------------------------------------------------------------------------------------------------------------------------- circle-info For any question about your mounting solution, contact us and we will assist. The sensor modules comes with three 1/4"-20 mounting holes. The sensor module can withstand light rain and environmental wear. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FVdJXjeyCOv8iumOYQfSK%252Fsensor%2520mounting%2520holes.png%3Falt%3Dmedia%26token%3D389a02a0-466b-48bf-85b1-4a7aaad05ec2&width=768&dpr=3&quality=100&sign=9cf19753&sv=2) The sensor can be mounted under the wings or on the belly of your aircraft. It is fine if your mounting solution partially obstructs some of the cameras of the sensor module. For example, if you are mounting under a wing on a fixed-wing aircraft, it is acceptable for one of the side cameras to be obstructed up to 70%. circle-exclamation Add vibration isolation to your mounting solution if you are mounting near a source of vibration or on a rigid surface. circle-exclamation We recommend using the top mounting (1&2) holes instead of the GoPro mount (3) to avoid calibration issues. ### [hashtag](https://docs.theseus.us/micro-vps/vehicle-integration/mechanical-installation#example-mounting-solutions) Example mounting solutions file-download 984KB [vibration isolating mount.step](https://3178815652-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhUdZltvGJCfBMBzRuwSC%2Fuploads%2FsZaJPTRz5VlRIG9ykNLA%2Fvibration%20isolating%20mount.step?alt=media&token=fbdcf8a2-d7e4-40a9-a9bb-16d75e046035) downloadDownload[arrow-up-right-from-squareOpen](https://3178815652-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhUdZltvGJCfBMBzRuwSC%2Fuploads%2FsZaJPTRz5VlRIG9ykNLA%2Fvibration%20isolating%20mount.step?alt=media&token=fbdcf8a2-d7e4-40a9-a9bb-16d75e046035) file-download 678KB [holybro mount.step](https://3178815652-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhUdZltvGJCfBMBzRuwSC%2Fuploads%2FB4YxZsCawYO2rF9NOiBb%2Fholybro%20mount.step?alt=media&token=8cfe141e-0f5f-4607-909e-98ff3d569873) downloadDownload[arrow-up-right-from-squareOpen](https://3178815652-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhUdZltvGJCfBMBzRuwSC%2Fuploads%2FB4YxZsCawYO2rF9NOiBb%2Fholybro%20mount.step?alt=media&token=8cfe141e-0f5f-4607-909e-98ff3d569873) file-download 243KB [sensor mount master.step](https://3178815652-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhUdZltvGJCfBMBzRuwSC%2Fuploads%2FssmwbSYLQeOO9Dv7ganV%2Fsensor%20mount%20master.step?alt=media&token=281c9cbc-281a-4531-a440-50eafa73696e) downloadDownload[arrow-up-right-from-squareOpen](https://3178815652-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhUdZltvGJCfBMBzRuwSC%2Fuploads%2FssmwbSYLQeOO9Dv7ganV%2Fsensor%20mount%20master.step?alt=media&token=281c9cbc-281a-4531-a440-50eafa73696e) Once you've settled on your mounting solution, proceed to measuring the orientation and translation of the sensor relative to your flight controller. [hashtag](https://docs.theseus.us/micro-vps/vehicle-integration/mechanical-installation#mounting-calibration) Mounting Calibration --------------------------------------------------------------------------------------------------------------------------------------- **This step is crucial to ensure nominal performance of the Micro VPS.** **Note:** If your compute module and sensor are separate units, the orientation and position of the compute module is irrelevant here, we're only interested in the **sensor** and the **flight controller**. If the compute and the sensor are integrated you can ignore this note. chevron-rightWhy does this matter?[hashtag](https://docs.theseus.us/micro-vps/vehicle-integration/mechanical-installation#why-does-this-matter) Part of the Micro VPS stack involves inertial measurements, which tracks the movement of the vehicle in a local frame of reference (e.g., the point where the system initializes is the origin, and displacement is measured relative to that point). The Micro VPS communicates with the autopilot to transform this inertial frame into a North-East-Down frame using the attitude data from the autopilot (onboard IMU and compass). Proper calibration ensures this transformation is optimal and reduces projection error. ### [hashtag](https://docs.theseus.us/micro-vps/vehicle-integration/mechanical-installation#orientation) Orientation The system needs to know which way the sensor is mounted relative to the flight controller (FC). Take your **right** hand, index finger pointing forward, and align it with the FC, as shown. Usually there will be an arrow on the FC that indicates the forward direction. If your FC is not flat, you'll have to rotate around your index finger to match the orientation of the FC. See the image for reference. This is called the **flight controller reference frame**. chevron-rightNote on reference frames[hashtag](https://docs.theseus.us/micro-vps/vehicle-integration/mechanical-installation#note-on-reference-frames) This exercise is done using NWU (XYZ => North, West, Up) frames to make it as intuitive as possible. If you're used to the flight controller/Ardupilot reference frame being NED (XYZ ⇒ North, West, Down), don't worry, we will account for this in a later step. ![Flight controller reference frame](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FqQVpwKAzdTM1TTGgtm0j%252F1000088712.jpg%3Falt%3Dmedia%26token%3Da855d69a-ed00-440a-b57e-5e1f7dbb19d5&width=300&dpr=3&quality=100&sign=8ecd880b&sv=2) Now we will do the same thing to find the **sensor reference frame**. Align your right hand index finger pointing directly out of the front camera, your middle finger pointing left, and your thumb pointing up at right-angles to the top surface of the sensor. See image for reference. This is the **sensor reference frame**. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FSsvpzO0gxGE4JICfac2y%252F1000088713.jpg%3Falt%3Dmedia%26token%3Da7d5baeb-ac56-450f-acf6-f81a07102c6e&width=300&dpr=3&quality=100&sign=995578d5&sv=2) Now we need to find the sequence of rotations around each of the 3 axes (i.e. index finger, middle finger and thumb) that rotate the sensor reference frame to the flight controller reference frame. We will label these axes: * X: index finger * Y: middle finger * Z: thumb If the two reference frames are already aligned, then you have nothing to worry about. If not follow on. A positive rotation means going counter-clockwise around the axis. If you take your right hand thumb and align it with the axis, curling your fingers represents this positive, counter-clockwise direction. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252F0R7EEAc8m37tdzZ0bIbI%252Fimage.png%3Falt%3Dmedia%26token%3D37cf0937-e8b6-4d9c-a38c-8a5a953fcc38&width=300&dpr=3&quality=100&sign=43a07619&sv=2) Let's run through an example. The left image shows the sensor reference frame, and the right shows the FC reference frame. This is a simple scenario - we only have to tilt our hand upwards a bit to get from sensor to FC reference frame, i.e. a rotation around the Y axis. Now, is the rotation negative or positive? If we align our thumb with the Y axis and curl our thumb, a positive rotation (in the direction of our curled fingers) means rotating downwards. So, here we have the opposite, a negative rotation. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FBW1y3N1f1UocMtUJ5izp%252F1000088724.jpg%3Falt%3Dmedia%26token%3Dd45942e4-daa1-470b-9767-bd0fb04d7640&width=300&dpr=3&quality=100&sign=6c00a699&sv=2)![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FN4tFVPunvkYxXG8cY50K%252F1000088725.jpg%3Falt%3Dmedia%26token%3D8ee7450f-3a38-43be-b259-63fd4792d2f0&width=300&dpr=3&quality=100&sign=8e5935e2&sv=2) How much are we rotating by? We know the mounting for the sensor here is angled by 20 degrees. So our final rotations, also known as **euler angles**, are: {X: 0, Y: -20, Z: 0}. For vehicles with more than one axis of rotation, the order matters. Make sure you keep track of the order of rotations as well. #### [hashtag](https://docs.theseus.us/micro-vps/vehicle-integration/mechanical-installation#euler-angles-to-rotation-matrix) Euler angles to rotation matrix Use Theseus Micro VPS Dashboard to enter the euler angles under and generate the vehicle configuration. In the main dashboard, select "Generate Config" under the Vehicle Parameters widget. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FSEj27eB6WFnQrC1psfHV%252F2025-10-10_12-53.png%3Falt%3Dmedia%26token%3Dc6f61d75-fd99-4cbe-9509-6c423aff7ca9&width=768&dpr=3&quality=100&sign=c20e9d7a&sv=2)![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FHBCPgBw8ilvs8bRnTO8R%252F2025-10-10_12-52.png%3Falt%3Dmedia%26token%3D5a04643b-11b2-46e7-8b81-fbc200059e62&width=768&dpr=3&quality=100&sign=d8b71c6&sv=2) Enter the euler angles from the previous step into the fields in the Vehicle Configuration Generator window. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FKpBnNb3lV1AQcAvKpRXU%252Fimage.png%3Falt%3Dmedia%26token%3Df233a895-793c-47b9-a40c-82db6e0fbdff&width=768&dpr=3&quality=100&sign=9dff5d89&sv=2)![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FEizDtipqX08bsUYiS2Rm%252F2025-10-10_13-03.png%3Falt%3Dmedia%26token%3D615511ad-cf5a-4267-8c7b-2c4f803cf0f0&width=768&dpr=3&quality=100&sign=9855685a&sv=2) You can save the config to your computer to upload later, or upload it right away to the drone. Make sure to select the newly created from the configuration files dropdown menu after you upload it. [hashtag](https://docs.theseus.us/micro-vps/vehicle-integration/mechanical-installation#compute-mounting) Compute Mounting ------------------------------------------------------------------------------------------------------------------------------- The compute module offers flat surfaces for adhesive mounting. circle-check Sensor and compute modules are mounted on your vehicle and you completed the calibration procedure. [PreviousVehicle Integrationchevron-left](https://docs.theseus.us/micro-vps/vehicle-integration) [NextFlight Controllerchevron-right](https://docs.theseus.us/micro-vps/vehicle-integration/flight-controller) Last updated 3 months ago * [Sensor Mounting](https://docs.theseus.us/micro-vps/vehicle-integration/mechanical-installation#sensor-mounting) * [Example mounting solutions](https://docs.theseus.us/micro-vps/vehicle-integration/mechanical-installation#example-mounting-solutions) * [Mounting Calibration](https://docs.theseus.us/micro-vps/vehicle-integration/mechanical-installation#mounting-calibration) * [Orientation](https://docs.theseus.us/micro-vps/vehicle-integration/mechanical-installation#orientation) * [Compute Mounting](https://docs.theseus.us/micro-vps/vehicle-integration/mechanical-installation#compute-mounting) --- # Flight Test | Theseus Docs At this point, you should have successfully completed the hardware and software integration of the Cyclops system, as well as a bench test. Theseus recommends running several test flights prior to full operational deployment of Cyclops. Test Flight # Configuration Purpose Flight 1 & 2 GPS is available and primary position source. Cyclops will run in the background. Observe background position updates on Vozilla app. Collect Cyclops recording and ArduPilot logs. Analyze and confirm nominal performance of the system. Flight 3 & 4 GPS is disabled by pilot. UAV flies using EKF dead reckoning with position updates from Cyclops. Confirm nominal performance of the system through multiple live flights. position updates on Vozilla app. Analyze Cyclops recordings and ArduPilot logs. circle-info Remember: Cyclops position updates **will not be sent** when GPS is enabled as a position source, but they will always be recorded in the background. [hashtag](https://docs.theseus.us/cyclops/validation/flight-test#flight-1-and-2-ride-along) Flight 1 & 2 - Ride along -------------------------------------------------------------------------------------------------------------------------- The goal of the first two flights is to validate your UAV setup with Cyclops estimating positions in the background (i.e. not running in the loop). This way you can fly without the risk of sending bad inputs to the flight controller in the event that something is not working as expected. Here are some errors to look out for on the first flight: * Camera calibration issues * Hardware power and overheating issues * Flight controller configuration It is preferable to test in an environment where GPS is available. This enables us to collect ground truth position data and evaluate Cyclops' performance against GPS. ### [hashtag](https://docs.theseus.us/cyclops/validation/flight-test#gps-denied-environment) GPS-Denied Environment A working VTX, pilot capable of manually flying the aircraft, and a redundant source of position (e.g., CRPA GPS antennas) are all useful to avoid issues in case GPS is compromised during test flights. Making sure that you have a stable way to navigate while setting up Cyclops is essential. circle-exclamation If you are **testing in GPS-denied environments,** make sure you have several redundancies before running test flights. You should not rely on Cyclops for positioning on your first test flight. circle-exclamation If you are disabling GPS on ArduPilot, make sure you setup the [Cyclops safety switch](https://docs.theseus.us/cyclops/autopilot-integration/cyclops-safety-switch) script and **disable Cyclops inputs for the first test flight**. Otherwise, your flight controller may use Cyclops' position estimates when GPS is disabled. ### [hashtag](https://docs.theseus.us/cyclops/validation/flight-test#success-criteria) Success Criteria * Cyclops position updates appear on [Vozilla under the MAVLink tab](https://docs.theseus.us/gcs-software/vozilla-gcs/mavlink) * Cyclops position estimates correspond to UAV trajectory ### [hashtag](https://docs.theseus.us/cyclops/validation/flight-test#mission-plan) Mission Plan The goal of this first mission is to feed Cyclops all the necessary inputs to its normal operation and validate that we get a nominal predicted trajectory. Here's what to include in this first mission plan: * 3-5 km in total distance * Fly above 100 m AGL * Include terrain features (e.g., roads, tree lines, houses) circle-info If you are flying in a GPS-denied environment, it is recommended to keep a line of sight to the UAV at all times to avoid fly-aways and facilitate recovery. ![Example mission plan for initial test flight](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FzTpsyxl0Q9jeACi7TDbM%252Fimage.png%3Falt%3Dmedia%26token%3D18acdcdd-8d0e-408b-b90a-35c5dfc5f97d&width=768&dpr=3&quality=100&sign=5cbb5eb1&sv=2) Example mission plan for initial Cyclops test flights ### [hashtag](https://docs.theseus.us/cyclops/validation/flight-test#before-the-flight) Before the flight Refer to the [pre-flight checklist](https://docs.theseus.us/cyclops/validation/pre-flight-checklist) . ### [hashtag](https://docs.theseus.us/cyclops/validation/flight-test#during-the-flight) During the flight * You should see the position appear in real time under the [MAVLink tab on Vozilla](https://docs.theseus.us/gcs-software/vozilla-gcs/mavlink) ### [hashtag](https://docs.theseus.us/cyclops/validation/flight-test#after-the-flight) After the flight * Connect your device to your laptop running Vozilla to synchronize logs * Review the performance under the [Vozilla Flights page](https://docs.theseus.us/gcs-software/vozilla-gcs/flights) Run this first mission on one flight, if possible repeat with a second flight. The Cyclops position track should match the trajectory of the UAV (and GPS track, if available). circle-check Once you've successfully run two ride-along flights, you are good to go in the loop and rely on Cyclops your next test flight. [hashtag](https://docs.theseus.us/cyclops/validation/flight-test#flight-3-and-4-in-the-loop) Flight 3 & 4 - In the loop ---------------------------------------------------------------------------------------------------------------------------- The goal of these flights is to **progressively start relying on Cyclops for navigation**. Cyclops works by correcting drift while the aircraft is dead reckoning. For these flights, you should take off and switch GPS off to let Cyclops send position inputs to the autopilot. It is helpful to use the provided [dead reckoning switch](https://docs.theseus.us/cyclops/autopilot-integration/dead-reckoning-switch) and [Cyclops safety switch](https://docs.theseus.us/cyclops/autopilot-integration/cyclops-safety-switch) Lua scripts to facilitate transitions between GPS and Cyclops. ### [hashtag](https://docs.theseus.us/cyclops/validation/flight-test#success-criteria-1) Success Criteria * Cyclops position updates appear on Vozilla and match mission plan * UAV navigates with Cyclops in the loop without GPS input ### [hashtag](https://docs.theseus.us/cyclops/validation/flight-test#mission-plan-1) Mission Plan We recommend you repeat the [same mission plan](https://docs.theseus.us/cyclops/validation/flight-test#mission-plan) from the ride along flights to minimize variables while bringing Cyclops in the loop. ### [hashtag](https://docs.theseus.us/cyclops/validation/flight-test#before-the-flight-1) Before the flight Refer to the [pre-flight checklist](https://docs.theseus.us/cyclops/validation/pre-flight-checklist) . ### [hashtag](https://docs.theseus.us/cyclops/validation/flight-test#during-the-flight-1) During the flight Typical operation for the first flight with Cyclops in the loop: * Take off (with or without GPS, depending on environment and CONOP) * Fly without Cyclops until mission altitude is reached * After first waypoint, transition to Cyclops (enable Cyclops, switch GPS off) * During the test, monitor Cyclops and GPS tracks on Vozilla. Your aircraft should now be dead reckoning and receiving occasional position updates from Cyclops. You **should not be seeing any increase in EKF variance** compared to normal dead reckoning operations. Cyclops position updates should appear as "jumps" on the aircraft position on Mission Planner/QGC. ### [hashtag](https://docs.theseus.us/cyclops/validation/flight-test#after-the-flight-1) After the flight * Connect your device to your laptop running Vozilla to synchronize logs * Review the performance under the [Vozilla Flights page](https://docs.theseus.us/gcs-software/vozilla-gcs/flights) circle-info If anything seems off (UAV behaving erratically, inaccurate Cyclops position), default to safety and fallback to another method of navigation (e.g., GPS, manual). [hashtag](https://docs.theseus.us/cyclops/validation/flight-test#further-test-flights) Further Test Flights ---------------------------------------------------------------------------------------------------------------- It is helpful to extend the total distance and mission envelope flown to validate the performance of the system on your UAV. If you validated stages 1 and 2 of flight testing, you should expect normal operation at this stage. Below is an example of a longer mission plan (17 km) which covers feature-sparse terrain and a maximum distance-to-home of 6 km. ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252F8Tvy0OQM2PTVuYBjBRMt%252Fimage.png%3Falt%3Dmedia%26token%3Df19b5a10-e529-454b-ba3b-4c6e202daa31&width=768&dpr=3&quality=100&sign=525a3c9e&sv=2) [hashtag](https://docs.theseus.us/cyclops/validation/flight-test#best-practices) Best Practices ---------------------------------------------------------------------------------------------------- ### [hashtag](https://docs.theseus.us/cyclops/validation/flight-test#mission-planning) Mission Planning We recommend creating a few small, autonomous mission plans to test Cyclops' performance on your UAV. There are a few procedures that will help you make the best mission plans for these initial tests as well as in full deployment: 1) **Fly over features**: Cyclops is more likely to get a map match when it is flying over distinct terrain such as roads, tree lines, or neighborhoods. Avoid planning long durations over "textureless" terrains like fields, sand, and especially bodies of water. 2) **Avoid dramatic banks**: large bank angles can reduce the amount of visible terrain directly below your UAV. This will limit Cyclops' ability to estimate its position in this area. Large banks pose more of a risk if you are flying at high altitude or your camera is mounted off the roll axis of your UAV (i.e. on the wing or a protruding mount). 3) **Prioritize reaching >100m**: Time spent flying below this altitude will lead to uncorrected position drift. We recommend that operators prioritize reaching at least 100m before flying toward distant waypoints so Cyclops can begin correcting this drift. 4) **Keep the mission plan inside the map boundary**: Cyclops cannot localize ### [hashtag](https://docs.theseus.us/cyclops/validation/flight-test#reducing-risks) Reducing Risks Testing any system on a UAV has some level of risk. There are many ways to mitigate these risks when testing with Cyclops: 1) **Test using a validated platform**: Fly Cyclops on a UAV that has already flown successfully 2) **Avoid using expensive/critical components**: If you plan on using a more expensive camera for missions, we recommend using a cheaper camera for testing if available 3) **Understand testing conditions**: Be aware of the conditions in your test flight area such as GPS jamming, bad weather (clouds, rain, wind), air raid alerts, etc. circle-info Dense clouds can obstruct Cyclops' view. Be sure to note the altitude of any cloud cover and plan your missions below it. ### [hashtag](https://docs.theseus.us/cyclops/validation/flight-test#identifying-potential-issues) Identifying Potential Issues It is important to be able to quickly identify any problems that may occur in the air and have a plan to recover the UAV safely. [PreviousPre-Flight Checklistchevron-left](https://docs.theseus.us/cyclops/validation/pre-flight-checklist) [Nextvns\_bench dev toolkitchevron-right](https://docs.theseus.us/cyclops/validation/vns_bench-dev-toolkit) Last updated 1 month ago * [Flight 1 & 2 - Ride along](https://docs.theseus.us/cyclops/validation/flight-test#flight-1-and-2-ride-along) * [GPS-Denied Environment](https://docs.theseus.us/cyclops/validation/flight-test#gps-denied-environment) * [Success Criteria](https://docs.theseus.us/cyclops/validation/flight-test#success-criteria) * [Mission Plan](https://docs.theseus.us/cyclops/validation/flight-test#mission-plan) * [Before the flight](https://docs.theseus.us/cyclops/validation/flight-test#before-the-flight) * [During the flight](https://docs.theseus.us/cyclops/validation/flight-test#during-the-flight) * [After the flight](https://docs.theseus.us/cyclops/validation/flight-test#after-the-flight) * [Flight 3 & 4 - In the loop](https://docs.theseus.us/cyclops/validation/flight-test#flight-3-and-4-in-the-loop) * [Success Criteria](https://docs.theseus.us/cyclops/validation/flight-test#success-criteria-1) * [Mission Plan](https://docs.theseus.us/cyclops/validation/flight-test#mission-plan-1) * [Before the flight](https://docs.theseus.us/cyclops/validation/flight-test#before-the-flight-1) * [During the flight](https://docs.theseus.us/cyclops/validation/flight-test#during-the-flight-1) * [After the flight](https://docs.theseus.us/cyclops/validation/flight-test#after-the-flight-1) * [Further Test Flights](https://docs.theseus.us/cyclops/validation/flight-test#further-test-flights) * [Best Practices](https://docs.theseus.us/cyclops/validation/flight-test#best-practices) * [Mission Planning](https://docs.theseus.us/cyclops/validation/flight-test#mission-planning) * [Reducing Risks](https://docs.theseus.us/cyclops/validation/flight-test#reducing-risks) * [Identifying Potential Issues](https://docs.theseus.us/cyclops/validation/flight-test#identifying-potential-issues) --- # vns_bench dev toolkit | Theseus Docs [hashtag](https://docs.theseus.us/cyclops/validation/vns_bench-dev-toolkit#prerequisites) Prerequisites ------------------------------------------------------------------------------------------------------------ * Make sure you have python 3.10+ available on your system * Install [Foxglove Studioarrow-up-right](https://foxglove.dev/download) * Optional: set `FOXGLOVE_STUDIO_BIN=/path/to/foxglove-studio` if the binary is not on your `$PATH` Install `sshpass` (to connect to the VPS): Copy # Install sshpass sudo apt install sshpass [hashtag](https://docs.theseus.us/cyclops/validation/vns_bench-dev-toolkit#quick-start) Quick Start -------------------------------------------------------------------------------------------------------- ### [hashtag](https://docs.theseus.us/cyclops/validation/vns_bench-dev-toolkit#installation) Installation Copy # For production use pip install "https://theseus-public-releases.s3.us-west-1.amazonaws.com/vns_bench-0.1.0-py3-none-any.whl" # Verify installation vns_bench --help ### [hashtag](https://docs.theseus.us/cyclops/validation/vns_bench-dev-toolkit#setting-up-foxglove) Setting up Foxglove Open Foxglove Studio. Download the `default_layout.json` below and [upload it on Foxglove Studioarrow-up-right](https://docs.foxglove.dev/docs/visualization/layouts) : * Toggle the `default_layout` drop down on the menu bar * Choose "Import from file" * Select the default\_layout.json file and import it to Foxglove file-download 6KB [default\_layout.json](https://3178815652-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhUdZltvGJCfBMBzRuwSC%2Fuploads%2F9tmkGLfY46DUfBp5HiFG%2Fdefault_layout.json?alt=media&token=264681e8-27a7-47c5-81a6-627da88a0e4f) downloadDownload[arrow-up-right-from-squareOpen](https://3178815652-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FhUdZltvGJCfBMBzRuwSC%2Fuploads%2F9tmkGLfY46DUfBp5HiFG%2Fdefault_layout.json?alt=media&token=264681e8-27a7-47c5-81a6-627da88a0e4f) Here's what you should see once you configure Foxglove Studio and run the `vns_bench analyze` command on your data: ![](https://docs.theseus.us/~gitbook/image?url=https%3A%2F%2F3178815652-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FhUdZltvGJCfBMBzRuwSC%252Fuploads%252FlqJAIBZjYNQYDODNqIRq%252FScreenshot%2520from%25202025-11-26%252013-24-53.png%3Falt%3Dmedia%26token%3Df196d26d-f33c-4fea-af0d-593bc4fcf4eb&width=768&dpr=3&quality=100&sign=d7cdf6f3&sv=2) The tool gives some statistics on how the VPS perfomed during a flight and lets you see the tracks for both the VPS and GPS. ### [hashtag](https://docs.theseus.us/cyclops/validation/vns_bench-dev-toolkit#analyzing-recordings) Analyzing Recordings The `analyze` command detects and processes flights from your recordings. _Make sure you connect and power the VPS before running this._ circle-check **Joe, the command you want is:** > Specify or select a recording when running `vns_bench analyze`. `vns_bench` automatically calculates metrics for your flight and opens Foxglove for visualization. #### [hashtag](https://docs.theseus.us/cyclops/validation/vns_bench-dev-toolkit#available-commands) Available commands Remote logs are downloaded to your current directory and kept for future reference. #### [hashtag](https://docs.theseus.us/cyclops/validation/vns_bench-dev-toolkit#remote-mode) Remote Mode The `--remote` flag allows pulling logs directly from a NanoPi edge device before analysis: * Connects via SSH to the device (default: `[[email protected]](https://docs.theseus.us/cdn-cgi/l/email-protection) `) * Lists available recordings with sizes * Downloads to your current directory: * Structured logs (`structured_logs/` directory with `.jsonl` files) * Telemetry data (`telemetry/` directory with `.jsonl` and `.idx` files) * Legacy log files (`.log` files) * Metadata files (`.json` files) * Excludes measurement data (camera images - too large) * Automatically uses structured logs if available, or converts legacy logs if needed * Runs flight detection analysis * Exports to MCAP and launches Foxglove if flight detected * Keeps all downloaded files for future reference Remote options: * `--host`: SSH host (default: `[[email protected]](https://docs.theseus.us/cdn-cgi/l/email-protection) `) * `--password`: SSH password (default: `pi`) * `--folder`: Specific recording folder to download (if not provided, interactive prompt) * `--base-dir`: Base directory on device (default: `/mnt/nvme`) ### [hashtag](https://docs.theseus.us/cyclops/validation/vns_bench-dev-toolkit#metrics-within-foxglove) Metrics within Foxglove circle-info Version 1.7 and earlier of Micro VPS may only show limited support for metrics. Please reach out if you are interested in a metric that is not accessible from your data. #### [hashtag](https://docs.theseus.us/cyclops/validation/vns_bench-dev-toolkit#position) Position * `/vns/gps_location`, `/vns/map_match_location` - LocationFix (for Map) * `/vns/gps_pose`, `/vns/map_match_pose` - PoseInFrame (for 3D) * `/tf` - Frame transforms #### [hashtag](https://docs.theseus.us/cyclops/validation/vns_bench-dev-toolkit#events) Events * `/vns/events` - Diagnostic log messages (WARN, ERROR, INFO) with structured fields #### [hashtag](https://docs.theseus.us/cyclops/validation/vns_bench-dev-toolkit#performance) Performance * `/vns/horizontal_error_m` - GPS vs Map Match error (meters) * `/vns/convergence_m` - Convergence indicator * `/vns/horizontal_error_rollup`, `/vns/convergence_rollup` - Rolling stats #### [hashtag](https://docs.theseus.us/cyclops/validation/vns_bench-dev-toolkit#execution-metrics) Execution Metrics * **Timing**: `/vns/execution/map_match_total_ms`, `patch_extract_ms`, `localization_ms`, `map_match_publish_ms`, `frame_prep_ms` * **Map Reload**: `/vns/execution/map_reload_total_ms`, `map_reload_wait_ms`, `map_reload_grid_ms` * **System Health**: `/vns/execution/work_queue_depth`, `vio_velocity_mps`, `distance_since_realignment_m` * **Factor graph**: `/vns/execution/ins_calibration_scale`, `ins_calibration_heading_deg` * **Counters**: `/vns/execution/odom_skip`, `realignment_blocked`, `map_match_publish`, `waypoint_detected` #### [hashtag](https://docs.theseus.us/cyclops/validation/vns_bench-dev-toolkit#grouped-metrics-multi-series-plotting) Grouped Metrics (multi-series plotting) * `/vns/groups/latencies` - All timing metrics with `metric_name` tag * `/vns/groups/system_health` - Queue depth, VIO velocity, realignment distance * `/vns/groups/calibration` - INS scale and heading * `/vns/groups/map_reload` - Map reload timing breakdown #### [hashtag](https://docs.theseus.us/cyclops/validation/vns_bench-dev-toolkit#counter-breakdowns-aggregated-tables) Counter Breakdowns (aggregated tables) * `/vns/counters/odom_skip_breakdown` - Skip counts by reason * `/vns/counters/realignment_blocked_breakdown` - Block counts by reason * `/vns/counters/map_match_publish_breakdown` - Publish counts by status #### [hashtag](https://docs.theseus.us/cyclops/validation/vns_bench-dev-toolkit#summary-and-debug) Summary & Debug * `/vns/summary_table` - Flight metrics (for Table panel) * `/vns/summary` - Raw JSON summary * `/vns/debug/nadir`, `/vns/debug/belief_grid` - Debug images ### [hashtag](https://docs.theseus.us/cyclops/validation/vns_bench-dev-toolkit#troubleshooting) Troubleshooting The `mav_manager` module uses the [EXTENDED\_SYS\_STATEarrow-up-right](https://mavlink.io/en/messages/common.html#EXTENDED_SYS_STATE) mav message to determine if the drone is in the air or on the ground. When analyzing logs, vns\_bench looks at the `landed_state` recorded in the mav manager logs to check if the recording is an actual flight. Older versions of ardupilot might not support this message leading to the following output. If you encounter this issue make sure you have a local copy of the logs downloaded, then try running the following command instead: The export command doesn't do the flight detection check and should open up the recording in foxglove. [PreviousFlight Testchevron-left](https://docs.theseus.us/cyclops/validation/flight-test) Last updated 3 months ago * [Prerequisites](https://docs.theseus.us/cyclops/validation/vns_bench-dev-toolkit#prerequisites) * [Quick Start](https://docs.theseus.us/cyclops/validation/vns_bench-dev-toolkit#quick-start) * [Installation](https://docs.theseus.us/cyclops/validation/vns_bench-dev-toolkit#installation) * [Setting up Foxglove](https://docs.theseus.us/cyclops/validation/vns_bench-dev-toolkit#setting-up-foxglove) * [Analyzing Recordings](https://docs.theseus.us/cyclops/validation/vns_bench-dev-toolkit#analyzing-recordings) * [Metrics within Foxglove](https://docs.theseus.us/cyclops/validation/vns_bench-dev-toolkit#metrics-within-foxglove) * [Troubleshooting](https://docs.theseus.us/cyclops/validation/vns_bench-dev-toolkit#troubleshooting) Copy # Pull specific recording and visualize vns_bench analyze --remote --folder 76_0af56fa4-b899-4380-b462-f03f213177a5 Copy # Analyze and visualize (default - auto-opens in Foxglove) vns_bench analyze /path/to/recording/ # Pull from device and auto-visualize (downloads to current directory) vns_bench analyze --remote # Analyze without launching Foxglove (just export MCAP) vns_bench analyze --remote --no-launch # Skip visualization entirely vns_bench analyze --remote --no-export # Analyze all recordings in a directory vns_bench analyze /path/to/recordings/ --batch # Output results as JSON vns_bench analyze /path/to/recording/ --json Copy holden@kyobancha:~/Downloads/81_9d$ vns_bench analyze 81_9d9b5ba2-8b78-410b-9673-ffccc24913ed/ ℹ Detected VIO legacy logs, converting... Parsing global.log... Parsed 33 lines Parsing map_match_gps_fusion.log... Parsed 164517 lines Parsing map_matcher.log... Parsed 88015 lines Parsing vio_transformer.log... Parsed 746 lines Parsing vio_health.log... Parsed 3720 lines Parsing vio_supervisor.log... Parsed 84 lines Parsing mav_manager.log... Parsed 138 lines Parsing scheduler.log... Parsed 5 lines Parsing timesync.log... Parsed 8729 lines Conversion complete: Variant: VIO Metrics: 65879 Poses: 37649 Output: /home/holden/.vns_bench/converted/81_9d9b5ba2-8b78-410b-9673-ffccc24913ed ✔ Converted 65879 metrics, 37649 poses ⚠ No flight detected Copy vns_bench export /local/path/to/recording/ --- # Map Download | Theseus Docs This document describes how to authenticate, list available maps, and download a map archive using raw HTTP requests against the Supabase backend. All Supabase requests require the project URL and anon key, referred to as `SUPABASE_URL` and `SUPABASE_ANON_KEY` throughout this document. 1 ### [hashtag](https://docs.theseus.us/micro-vps/autopilot-integration/developer-api/map-download#authenticate) Authenticate #### [hashtag](https://docs.theseus.us/micro-vps/autopilot-integration/developer-api/map-download#post-auth-v1-token-grant_type-password) `POST /auth/v1/token?grant_type=password` Exchange an email and password for a session containing an access token. **Headers:** Header Value `apikey` `SUPABASE_ANON_KEY` `Content-Type` `application/json` **Body:** Copy { "email": "[email protected]", "password": "hunter2" } **Example:** Copy POST /auth/v1/token?grant_type=password apikey: Content-Type: application/json { "email": "[email protected]", "password": "hunter2" } **Response 200:** Copy { "access_token": "eyJhbGciOiJIUzI1NiIs...", "token_type": "bearer", "expires_in": 3600, "expires_at": 1711324800, "refresh_token": "v1.MjQ3...", "user": { "id": "d0d8c19e-1b2a-4c3d-8e4f-5a6b7c8d9e0f", "email": "[email protected]", "role": "authenticated" } } Save the `access_token` — every subsequent request uses it as a Bearer token. 2 ### [hashtag](https://docs.theseus.us/micro-vps/autopilot-integration/developer-api/map-download#list-maps) List Maps #### [hashtag](https://docs.theseus.us/micro-vps/autopilot-integration/developer-api/map-download#get-rest-v1-map_requests) `GET /rest/v1/map_requests` Fetch all non-deleted map requests for the authenticated user, joined with their results. Row-Level Security (RLS) restricts rows to those owned by the caller or shared via an organization. **Headers:** Header Value `apikey` `SUPABASE_ANON_KEY` `Authorization` `Bearer ` `Accept` `application/json` `Prefer` `count=exact` **Query parameters:** Parameter Value Purpose `select` `*,map_results(*)` Join `map_results` onto each request `deleted_at` `is.null` Exclude soft-deleted maps `order` `created_at.desc` Newest first `limit` `50` Page size (optional, default varies) `offset` `0` Pagination offset (optional) **Example:** Copy GET /rest/v1/map_requests?select=*,map_results(*)&deleted_at=is.null&order=created_at.desc&limit=50&offset=0 apikey: Authorization: Bearer Accept: application/json Prefer: count=exact **Response 200:** The response is a JSON array. Each element is a `map_request` row with a nested `map_results` object (or `null` if the map is still processing). Copy [\ {\ "id": 42,\ "user_id": "d0d8c19e-1b2a-4c3d-8e4f-5a6b7c8d9e0f",\ "workflow_id": "wf-abc-123",\ "area_name": "Downtown Austin",\ "status": "completed",\ "percent_complete": 100,\ "status_message": null,\ "sw_lat": 30.26,\ "sw_lon": -97.75,\ "ne_lat": 30.28,\ "ne_lon": -97.73,\ "geometry_geojson": null,\ "home_position": { "lat": 30.27, "lon": -97.74, "alt": 0 },\ "created_at": "2026-03-20T14:30:00Z",\ "started_at": "2026-03-20T14:31:00Z",\ "completed_at": "2026-03-20T15:05:00Z",\ "failed_at": null,\ "deleted_at": null,\ "error_message": null,\ "area_km2": 1.25,\ "org_id": null,\ "map_results": {\ "id": 99,\ "request_id": 42,\ "unique_id": "map-1710942300000",\ "download_url": "https://storage.example.com/maps/map-1710942300000_Downtown_Austin.tar.gz",\ "compressed_size_mb": 85.4,\ "compressed_file": "map-1710942300000_Downtown_Austin.tar.gz",\ "upload_path": "/maps/map-1710942300000_Downtown_Austin",\ "checksum": "e3b0c44298fc1c149afbf4c8996fb924...",\ "created_at": "2026-03-20T15:05:00Z"\ }\ },\ {\ "id": 41,\ "workflow_id": "wf-def-456",\ "area_name": "Lake Travis",\ "status": "processing",\ "percent_complete": 63,\ "map_results": null\ }\ ] **Key fields for download:** A map is downloadable when `map_results` is **not** `null` and `map_results.download_url` is present. Maps where `map_results` is `null` are still being generated. Field Description `workflow_id` Unique identifier for this map generation job `area_name` Human-readable name of the mapped area `status` `queued`, `started`, `processing`, `completed`, `failed` `map_results.download_url` Direct URL to the `.tar.gz` archive `map_results.compressed_size_mb` Archive size in megabytes `map_results.checksum` SHA-256 hex digest for integrity verification `map_results.unique_id` Unique map identifier used in the archive filename The `content-range` response header contains the total count (e.g., `0-49/73`) when `Prefer: count=exact` is set, useful for pagination. 3 ### [hashtag](https://docs.theseus.us/micro-vps/autopilot-integration/developer-api/map-download#get-download-link-for-a-specific-map) Get Download Link for a Specific Map #### [hashtag](https://docs.theseus.us/micro-vps/autopilot-integration/developer-api/map-download#get-rest-v1-map_requests-1) `GET /rest/v1/map_requests` If you already know the `workflow_id`, you can fetch just the download-relevant fields. **Query parameters:** Parameter Value `select` `area_name,map_results(download_url,compressed_size_mb,checksum)` `workflow_id` `eq.` `deleted_at` `is.null` **Example:** Copy GET /rest/v1/map_requests?select=area_name,map_results(download_url,compressed_size_mb,checksum)&workflow_id=eq.wf-abc-123&deleted_at=is.null apikey: Authorization: Bearer Accept: application/vnd.pgrst.object+json The `Accept: application/vnd.pgrst.object+json` header tells PostgREST to return a single object instead of an array (equivalent to `.single()` in the JS client). **Response 200:** Copy { "area_name": "Downtown Austin", "map_results": { "download_url": "https://storage.example.com/maps/map-1710942300000_Downtown_Austin.tar.gz", "compressed_size_mb": 85.4, "checksum": "e3b0c44298fc1c149afbf4c8996fb924..." } } 4 ### [hashtag](https://docs.theseus.us/micro-vps/autopilot-integration/developer-api/map-download#download-the-map-file) Download the Map File #### [hashtag](https://docs.theseus.us/micro-vps/autopilot-integration/developer-api/map-download#get-less-than-download_url-greater-than) `GET ` Download the `.tar.gz` archive directly from the URL returned in `map_results.download_url`. This request requires **no authentication** — the URL is publicly accessible. **Headers:** None required. **Example:** Copy GET https://storage.example.com/maps/map-1710942300000_Downtown_Austin.tar.gz **Response 200:** Raw binary stream of the `.tar.gz` file. The `Content-Length` header indicates the total size in bytes. **Post-download verification:** If `map_results.checksum` was provided, verify the downloaded file's integrity by computing its SHA-256 hash and comparing: Copy sha256sum map-1710942300000_Downtown_Austin.tar.gz # should match the checksum value from the API response [hashtag](https://docs.theseus.us/micro-vps/autopilot-integration/developer-api/map-download#complete-flow-summary) Complete Flow Summary ---------------------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://docs.theseus.us/micro-vps/autopilot-integration/developer-api/map-download#expected-filename-format) Expected filename format The archive filename follows the pattern: For example: `map-1710942300000_Downtown_Austin.tar.gz` [PreviousDeveloper APIchevron-left](https://docs.theseus.us/micro-vps/autopilot-integration/developer-api) [NextMap Generationchevron-right](https://docs.theseus.us/micro-vps/autopilot-integration/developer-api/map-generation) Last updated 12 days ago * [Authenticate](https://docs.theseus.us/micro-vps/autopilot-integration/developer-api/map-download#authenticate) * [List Maps](https://docs.theseus.us/micro-vps/autopilot-integration/developer-api/map-download#list-maps) * [Get Download Link for a Specific Map](https://docs.theseus.us/micro-vps/autopilot-integration/developer-api/map-download#get-download-link-for-a-specific-map) * [Download the Map File](https://docs.theseus.us/micro-vps/autopilot-integration/developer-api/map-download#download-the-map-file) * [Complete Flow Summary](https://docs.theseus.us/micro-vps/autopilot-integration/developer-api/map-download#complete-flow-summary) * [Expected filename format](https://docs.theseus.us/micro-vps/autopilot-integration/developer-api/map-download#expected-filename-format) Copy _.tar.gz --- # Map Generation | Theseus Docs This document describes how to submit a map generation job, monitor its progress, and cancel jobs using raw HTTP requests against the Supabase backend. All requests go through Supabase and require the project URL and anon key, referred to as `SUPABASE_URL` and `SUPABASE_ANON_KEY` throughout this document. Quota enforcement is handled server-side — the submit endpoint rejects requests that exceed the caller's annual km² allowance. 1 #### [hashtag](https://docs.theseus.us/micro-vps/autopilot-integration/developer-api/map-generation#authenticate) Authenticate `**POST /auth/v1/token?grant_type=password**` Exchange an email and password for a session containing an access token. **Headers:** Header Value `apikey` `SUPABASE_ANON_KEY` `Content-Type` `application/json` **Body:** Copy { "email": "[email protected]", "password": "hunter2" } **Example:** Copy POST /auth/v1/token?grant_type=password apikey: Content-Type: application/json { "email": "[email protected]", "password": "hunter2" } **Response 200:** Copy { "access_token": "eyJhbGciOiJIUzI1NiIs...", "token_type": "bearer", "expires_in": 3600, "expires_at": 1711324800, "refresh_token": "v1.MjQ3...", "user": { "id": "d0d8c19e-1b2a-4c3d-8e4f-5a6b7c8d9e0f", "email": "[email protected]", "role": "authenticated" } } Save the `access_token` — every subsequent request uses it as a Bearer token. 2 #### [hashtag](https://docs.theseus.us/micro-vps/autopilot-integration/developer-api/map-generation#submit-map-generation-job) Submit Map Generation Job `**POST /functions/v1/submit-map-job**` Submit a map generation job. The server validates the caller's quota before accepting the job. If the requested area would exceed the annual km² allowance, the request is rejected with a `403` and a descriptive error. On success, the server records the area and quota year automatically — no separate quota recording step is needed. **Headers:** Header Value `Authorization` `Bearer ` `Content-Type` `application/json` **Body:** Field Type Required Description `area_name` `string` Yes 3–50 chars: lowercase letters, numbers, underscores `geometry` `Polygon` Yes GeoJSON polygon of the map area `org_id` `string` No Organization ID if generating under an org's quota **Example:** Copy POST /functions/v1/submit-map-job Authorization: Bearer Content-Type: application/json { "area_name": "downtown_austin", "geometry": { "type": "Polygon", "coordinates": [[\ [-97.75, 30.26],\ [-97.73, 30.26],\ [-97.73, 30.28],\ [-97.75, 30.28],\ [-97.75, 30.26]\ ]] } } **Response 200 (job accepted):** Copy { "workflow_id": "wf-abc-123", "request_id": 42, "status": "queued", "message": "Map generation job submitted successfully", "area_name": "downtown_austin", "area_km2": 1.25, "quota_info": { "total_quota_km2": 500, "used_km2": 120.5, "remaining_km2": 378.25, "requested_km2": 1.25, "after_request_km2": 121.75 } } Save the `workflow_id` — it is used for status polling, cancellation, and download. **Response 403 (quota exceeded):** Copy { "error": "Quota exceeded. You have 0.2 km² remaining, but requested 1.3 km².", "quota_info": { "total_quota_km2": 500, "used_km2": 499.8, "remaining_km2": 0.2, "requested_km2": 1.3, "after_request_km2": 501.1 } } **Response 403 (no license):** Copy { "error": "No active license found. Please purchase a license at https://dashboard.theseus.us", "quota_info": null } **Key fields:** Field Description `workflow_id` Unique identifier for this generation job `area_km2` Calculated area of the submitted polygon in km² `quota_info.remaining_km2` Remaining quota after this submission `quota_info.total_quota_km2` `0` means unlimited — no quota limit is enforced 3 #### [hashtag](https://docs.theseus.us/micro-vps/autopilot-integration/developer-api/map-generation#poll-job-status) Poll Job Status `**POST /functions/v1/map-workflow-status**` Poll for real-time progress on a generation job. Returns the current state and percent complete. **Headers:** Header Value `Authorization` `Bearer ` `Content-Type` `application/json` **Body:** Field Type Required Description `workflow_id` `string` Yes The `workflow_id` from the submit step **Example:** Copy POST /functions/v1/map-workflow-status Authorization: Bearer Content-Type: application/json { "workflow_id": "wf-abc-123" } **Response 200 (in progress):** Copy { "state": "processing", "status": "Generating tiles (batch 3/8)", "percent_complete": 42, "area_name": "downtown_austin", "task_id": "wf-abc-123" } **Response 200 (completed):** Copy { "state": "completed", "status": "Map generation complete", "percent_complete": 100, "area_name": "downtown_austin", "task_id": "wf-abc-123" } **Response 200 (failed):** Copy { "state": "failed", "error": "Satellite imagery unavailable for the requested area", "area_name": "downtown_austin", "task_id": "wf-abc-123" } **Key** `**state**` **values:** State Meaning `queued` Job accepted, waiting for a worker `started` Worker picked up the job `processing` Actively generating tiles `completed` Generation finished, download available `failed` Generation failed — check `error` for details `cancelled` Job was cancelled by the user **Recommended polling interval:** 5 seconds. Continue polling until `state` is `completed`, `failed`, or `cancelled`. 4 #### [hashtag](https://docs.theseus.us/micro-vps/autopilot-integration/developer-api/map-generation#cancel-a-job-optional) Cancel a Job (Optional) `**POST /functions/v1/cancel-map-workflow**` Cancel a running or queued map generation job. **Headers:** Header Value `Authorization` `Bearer ` `Content-Type` `application/json` **Body:** Field Type Required Description `workflow_id` `string` Yes The `workflow_id` to cancel **Example:** Copy POST /functions/v1/cancel-map-workflow Authorization: Bearer Content-Type: application/json { "workflow_id": "wf-abc-123" } **Response 200:** Copy { "workflow_id": "wf-abc-123", "status": "cancelled", "message": "Workflow cancelled successfully", "area_name": "downtown_austin" } 5 #### [hashtag](https://docs.theseus.us/micro-vps/autopilot-integration/developer-api/map-generation#confirm-completion-via-supabase) Confirm Completion via Supabase Once the status endpoint reports `completed`, the map result will also appear in the Supabase `map_requests` table with a populated `map_results` join. This is the same query described in [Map Download — List Maps](https://docs.theseus.us/micro-vps/autopilot-integration/developer-api/map-download#list-maps) . Poll the Supabase table or filter by `workflow_id` to confirm the result is available: **Example:** Copy GET /rest/v1/map_requests?select=*,map_results(*)&workflow_id=eq.wf-abc-123&deleted_at=is.null apikey: Authorization: Bearer Accept: application/vnd.pgrst.object+json When `map_results` is no longer `null` and `map_results.download_url` is present, the map is ready to download. Follow the [Map Download](https://docs.theseus.us/micro-vps/autopilot-integration/developer-api/map-download) flow from there. [hashtag](https://docs.theseus.us/micro-vps/autopilot-integration/developer-api/map-generation#complete-flow-summary) Complete Flow Summary ------------------------------------------------------------------------------------------------------------------------------------------------ [hashtag](https://docs.theseus.us/micro-vps/autopilot-integration/developer-api/map-generation#geometry-format) Geometry Format ------------------------------------------------------------------------------------------------------------------------------------ The `geometry` field must be a valid [GeoJSON Polygonarrow-up-right](https://datatracker.ietf.org/doc/html/rfc7946#section-3.1.6) . Coordinates are `[longitude, latitude]` pairs (GeoJSON order). The ring must be closed — the first and last coordinate must be identical. Minimum 4 coordinates (3 unique vertices + closing point). The server calculates the polygon area in km² using a spherical trapezoidal approximation. [hashtag](https://docs.theseus.us/micro-vps/autopilot-integration/developer-api/map-generation#area-name-requirements) Area Name Requirements -------------------------------------------------------------------------------------------------------------------------------------------------- Rule Constraint Length 3–50 characters Characters Lowercase letters, numbers, underscores Uniqueness Must not match an existing map name Sanitization Hyphens are converted to underscores [PreviousMap Downloadchevron-left](https://docs.theseus.us/micro-vps/autopilot-integration/developer-api/map-download) [NextGPS Switchingchevron-right](https://docs.theseus.us/micro-vps/autopilot-integration/gps-switching) Last updated 10 days ago * [Complete Flow Summary](https://docs.theseus.us/micro-vps/autopilot-integration/developer-api/map-generation#complete-flow-summary) * [Geometry Format](https://docs.theseus.us/micro-vps/autopilot-integration/developer-api/map-generation#geometry-format) * [Area Name Requirements](https://docs.theseus.us/micro-vps/autopilot-integration/developer-api/map-generation#area-name-requirements) Copy { "type": "Polygon", "coordinates": [[\ [-97.75, 30.26],\ [-97.73, 30.26],\ [-97.73, 30.28],\ [-97.75, 30.28],\ [-97.75, 30.26]\ ]] } ---