B-Insta360-ACE-Pro-2-Programmer-Setup
Insta360 ACE Pro 2 — Professional Programmer Setup Guide
Camera: Insta360 Ace Pro 2
Audience: Developers integrating the camera into software workflows, automation pipelines, or custom applications
Last updated: May 2026
Table of Contents
- Hardware Overview
- First-Time Activation
- MicroSD Card Setup
- Connectivity Options
- File Access and Transfer
- Camera Control via OSC (Open Spherical Camera API)
- Insta360 SDK Access
- Webcam / Virtual Camera Mode
- Firmware Updates (Programmatic)
- Key Technical Specs Reference
- Developer Tips and Known Quirks
- Useful Links
1. Hardware Overview
| Item | Detail |
|---|---|
| Sensor | 1/1.3” CMOS, up to 8K30fps, 50MP photos |
| Chip | Dual AI chip (5nm AI chip + dedicated imaging chip) |
| Lens | Leica SUMMARIT, F2.6 aperture, 13mm equiv. |
| Display | 2.5” rear flip screen (440 x 696 px, 329 PPI) |
| USB | Type-C, USB 3.0 |
| Wi-Fi | 2.4 GHz / 5 GHz, 802.11 a/b/g/n/ac |
| Bluetooth | BLE 5.2 |
| Wi-Fi range | ~50 m (open environment) |
| Storage | MicroSD only (no built-in), up to 1 TB |
| Battery | 1880 mAh, ~180 min (Endurance Mode, 1080p24) |
| Fast charge | 80% in 18 min via 30W USB-C PD |
| Waterproofing | Camera body: 12 m; with Dive Case: 60 m |
| OS support | Windows, macOS, Linux, Android 10+, iOS (iPhone 15+) |
2. First-Time Activation
Activation is mandatory before the camera can be used programmatically.
- Insert a charged battery and a formatted MicroSD card.
- Power on by holding the Power Button.
- Download the Insta360 App (iOS / Android) and create or log in to an Insta360 account.
- In the app: tap the camera icon -> select Insta360 Ace Pro 2 XXXXXX from the device list.
- Confirm the connection on the camera touchscreen when prompted.
- Follow the in-app wizard to complete activation and install any available firmware update.
Note: The camera’s default Wi-Fi SSID is
Insta360 Ace Pro 2 XXXXXXwhere XXXXXX = last six digits of the serial number printed on the box.
3. MicroSD Card Setup
Choosing the wrong card causes corrupted clips.
| Requirement | Value |
|---|---|
| Speed class | UHS-I, V30 or higher |
| Capacity | Up to 1 TB |
| File system | exFAT |
| Avoid | UHS-II, UHS-III, or cards over 1 TB |
Format from the camera (not from a computer):
Camera screen -> Swipe down -> Settings (gear icon) -> Storage -> Format SD Card
Formatting from the camera ensures the correct cluster size and avoids recording errors.
4. Connectivity Options
4.1 USB (Wired) Connection
Connect the camera to your computer using the included USB-C to USB-C cable.
On the camera, a pop-up offers three USB modes:
| Mode | Use case |
|---|---|
| U-Disk Mode | Camera appears as a USB mass storage device; access DCIM folder directly |
| Webcam Mode | Camera streams live video as a standard UVC webcam |
| Charge Only | No data, only charges the battery |
U-Disk Mode is the recommended mode for scripted file access on all platforms (Windows, macOS, Linux). Transfer speed is USB 3.0.
# Linux / macOS: mount point appears automatically, e.g.
ls /Volumes/Untitled/DCIM/ # macOS
ls /media/$USER/Untitled/DCIM/ # Linux
# Windows: drive letter assigned automatically (e.g., E:\DCIM\)4.2 Wi-Fi Connection
The camera hosts its own Wi-Fi access point.
Step 1 — Find credentials:
Swipe down (camera screen) -> Settings (gear) -> Wi-Fi Settings
Note the SSID and the randomly generated password.
Step 2 — Connect your computer:
# macOS / Linux: connect via standard network manager or nmcli
nmcli dev wifi connect "Insta360 Ace Pro 2 XXXXXX" password "YOUR_PASSWORD"Step 3 — Camera IP address:
Once connected, the camera is reachable at:
http://192.168.42.1
This is the base URL for all HTTP API commands (see Section 6).
Range: approximately 50 m line-of-sight. The camera can only connect to one Wi-Fi client at a time.
4.3 Bluetooth (BLE)
BLE 5.2 is used primarily for:
- Initial device discovery / pairing from the Insta360 App
- Wake-on-BLE (waking camera from standby without full Wi-Fi)
- Remote shutter trigger via Bluetooth accessories
BLE is not suitable for bulk file transfer or high-throughput control — use Wi-Fi or USB for those tasks.
5. File Access and Transfer
Via USB (U-Disk Mode)
The DCIM folder structure:
DCIM/
Camera01/
VID_YYYYMMDD_HHmmss_XX.mp4 (video clips)
IMG_YYYYMMDD_HHmmss_XX.jpg (JPEG photos)
IMG_YYYYMMDD_HHmmss_XX.dng (RAW photos, if enabled)
LRV_YYYYMMDD_HHmmss_XX.lrv (low-res proxy video)
THM_YYYYMMDD_HHmmss_XX.thm (thumbnail)
LRVfiles (Low Resolution Video) are proxy files for fast preview — they are not full-quality footage.THMfiles are JPEG thumbnails.
Python example — list all MP4 files from a mounted card:
import sys
sys.stdout.reconfigure(encoding='utf-8')
import os
DCIM_PATH = r"E:\DCIM\Camera01" # Adjust to your mount point
for root, dirs, files in os.walk(DCIM_PATH):
for fname in sorted(files):
if fname.lower().endswith(".mp4"):
full = os.path.join(root, fname)
size_mb = os.path.getsize(full) / (1024 * 1024)
print(f"{fname} -> {size_mb:.1f} MB")Via Wi-Fi (HTTP File Listing)
When connected over Wi-Fi, you can query available files:
GET http://192.168.42.1/osc/commands/execute
Content-Type: application/json
{
"name": "camera.listFiles",
"parameters": {
"fileType": "all",
"startPosition": 0,
"entryCount": 20,
"maxThumbSize": 0
}
}
6. Camera Control via OSC
The ACE Pro 2 supports OSC (Open Spherical Camera API) for HTTP-based camera control when connected via Wi-Fi.
Base URL: http://192.168.42.1
Protocol: HTTP/1.1, JSON body
Common OSC Endpoints
| Endpoint | Method | Description |
|---|---|---|
/osc/info |
GET | Camera info (model, firmware, API level) |
/osc/state |
POST | Current camera state |
/osc/checkForUpdates |
POST | Poll for state changes |
/osc/commands/execute |
POST | Execute a command |
/osc/commands/status |
POST | Check async command status |
Example: Get Camera Info
import sys
sys.stdout.reconfigure(encoding='utf-8')
import requests
import json
BASE_URL = "http://192.168.42.1"
def osc_info():
r = requests.get(f"{BASE_URL}/osc/info", timeout=5)
r.raise_for_status()
return r.json()
info = osc_info()
print(json.dumps(info, indent=2))Example: Take a Photo
import sys
sys.stdout.reconfigure(encoding='utf-8')
import requests
import json
BASE_URL = "http://192.168.42.1"
def take_photo():
payload = {"name": "camera.takePicture"}
r = requests.post(
f"{BASE_URL}/osc/commands/execute",
json=payload,
headers={"Content-Type": "application/json"},
timeout=10
)
r.raise_for_status()
return r.json()
result = take_photo()
print(json.dumps(result, indent=2))Example: Start / Stop Video Recording
def start_recording():
payload = {"name": "camera.startCapture"}
r = requests.post(f"{BASE_URL}/osc/commands/execute", json=payload, timeout=10)
return r.json()
def stop_recording():
payload = {"name": "camera.stopCapture"}
r = requests.post(f"{BASE_URL}/osc/commands/execute", json=payload, timeout=10)
return r.json()Checking Async Command Status
Some commands are asynchronous. Poll with:
def check_status(command_id):
payload = {"id": command_id}
r = requests.post(f"{BASE_URL}/osc/commands/status", json=payload, timeout=5)
return r.json()7. Insta360 SDK Access
For deeper integration (preview streaming, stitching, media processing), Insta360 provides a formal SDK. The ACE Pro 2 is an action camera; SDK access targets primarily the panoramic camera lines (X4, X5, etc.), but the Desktop SDK and Camera SDK-Cpp are worth evaluating for your use case.
SDK Options
| SDK | Platform | Use case |
|---|---|---|
| Camera SDK (C++) | Windows, Linux | Camera control, capture, parameter settings |
| Media SDK (C++) | Windows, Linux | Stitching, stabilization, chromatic calibration |
| Mobile SDK | iOS, Android | Camera control and media management from mobile apps |
How to Apply
- Visit:
https://www.insta360.com/sdk/apply - Fill in company/developer information and intended use case.
- Approval via email within approximately 3 business days.
- The download link provided is permanent and always delivers the latest version.
Note: SDK approval is required — there is no public open download. For the Pro/Pro2/Titan series specifically, the HTTP-based ProCameraApi is publicly available on GitHub at
https://github.com/Insta360Develop/ProCameraApi.
8. Webcam / Virtual Camera Mode
The camera can act as a standard UVC webcam over USB — no drivers required on modern operating systems.
Steps:
- Connect via USB-C cable.
- On the camera screen, select Webcam Mode from the USB pop-up.
- The camera appears as
Insta360 Acein your system’s camera/video device list.
Tested applications:
- Zoom, Microsoft Teams, Google Meet, BlueJeans, Lark, DingTalk, Tencent Meeting
Python / OpenCV access:
import sys
sys.stdout.reconfigure(encoding='utf-8')
import cv2
cap = cv2.VideoCapture(0) # Adjust index if multiple cameras present
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1920)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 1080)
while True:
ret, frame = cap.read()
if not ret:
break
cv2.imshow("Insta360 Ace Pro 2 Webcam", frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()9. Firmware Updates
Firmware updates are handled through the Insta360 app. For a programmatic check and update flow:
- Connect the camera via Wi-Fi or USB.
- Open the Insta360 app -> Camera Settings -> Firmware.
- The app will detect and download any available update.
Requirement: Battery must be at least 20% before initiating an update.
Tip: Keep firmware current; new releases regularly fix Wi-Fi stability and OSC API behavior.
10. Key Technical Specs Reference
| Parameter | Value |
|---|---|
| Max video resolution | 8K (7680 x 4320) @ 30fps |
| 4K Active HDR | 4K @ 60fps |
| Photo resolution | 50 MP |
| Log profile | I-Log (for professional color grading) |
| Bitrate modes | Standard / High |
| Stabilization | FlowState + 360 Horizon Lock |
| Gyroscope | 6-axis |
| USB protocol | USB 3.0 (Type-C) |
| Wi-Fi | 2.4 / 5 GHz, 802.11 a/b/g/n/ac |
| Bluetooth | BLE 5.2 |
| Operating temp. | -20 deg C to 45 deg C |
| Timecode sync | Yes (multi-device sync support) |
| Reverse charge | Yes (camera can charge other devices via USB-C) |
| Dive case depth | 60 m |
11. Developer Tips and Known Quirks
- Path separators on Windows: When building file paths from the DCIM directory programmatically on Windows, use
os.path.join()rather than hardcoding/to avoid backslash-related bugs. - U-Disk Mode is the safest for scripted access: Unlike Android Mode (used by the Insta360 App), U-Disk Mode mounts as a standard drive and requires no ADB or special protocols.
- LRV proxy files: Always filter out
.lrvand.thmfiles when enumerating footage unless you specifically need proxy resolution. - Wi-Fi is single-client: Only one device can be connected to the camera’s hotspot at a time. Disconnect from the hotspot before switching to USB.
- exFAT formatting: Always format the card from within the camera, not from Windows Explorer or macOS Disk Utility, to prevent cluster-size mismatches.
- I-Log for post-processing: Enable I-Log mode for maximum dynamic range when footage will be processed by Python/FFmpeg pipelines for color grading.
- Timecode sync: Useful for multi-camera setups — the Timecode Sync feature (accessible via the Insta360 app) aligns media timestamps across devices for editing.
- QuickCapture: The camera supports immediate recording on power-on without navigating menus — useful for automated trigger scenarios.
- OSC API compatibility: The ACE Pro 2 supports a subset of the OSC v2.1 API. Not all OSC commands are available; test each endpoint on your specific firmware version.
12. Useful Links
| Resource | URL |
|---|---|
| Official support page | https://www.insta360.com/support/supportdetail?name=acepro2 |
| Online manual | https://onlinemanual.insta360.com/acepro2/en-us |
| SDK application | https://www.insta360.com/sdk/apply |
| SDK documentation | https://onlinemanual.insta360.com/developer/en-us/resource/sdk |
| Insta360 GitHub (SDKs) | https://github.com/Insta360Develop |
| ProCamera HTTP API | https://github.com/Insta360Develop/ProCameraApi |
| OSC API spec (RICOH) | https://api.ricoh/docs/theta-web-api-v2.1/ |
Guide compiled from official Insta360 documentation, hardware specifications, and developer resources.