Skip to main content

Unistellar Telescope Data Downloader

Reliable command-line tool to download FITS, TIFF, or PNG observation data from Unistellar telescopes (eVscope, eQuinox, Odyssey) over WiFi.

Why?

The official Unistellar web UI at http://192.168.100.1 bundles all selected observations into one giant zip download. On the telescope's Raspberry Pi WiFi, this frequently fails mid-transfer — especially for large science observations with thousands of FITS frames.

This tool fixes that by:

  • Downloading one observation at a time — a failure doesn't lose the others
  • Auto-retrying on WiFi drops — up to 10 attempts per observation
  • Concurrent event polling — required by the telescope's backend to stream data (the key discovery that makes this work)
  • Validating downloads — verifies zip integrity, won't skip corrupted files
  • Canceling stuck downloads — automatically clears stale telescope state before starting

Install

pip install unistellar-data-downloader

Or clone and run directly:

git clone https://github.com/vamshikesireddy/unistellar-data-downloader.git
cd unistellar-data-downloader
pip install .

Usage

  1. Connect your laptop WiFi to the telescope (the network named like eVscope-XXXX or UNI-XXXX)
  2. Run:
unistellar-download

That's it. The tool will:

  • Connect to the telescope at 192.168.100.1
  • List all observations stored on the telescope
  • Let you pick which ones to download and in what format
  • Download each one individually with progress and retry

Options

# Just list what's on the telescope
unistellar-download --check

# Download everything as FITS without prompting
unistellar-download --all --format fits

# Download to a specific folder
unistellar-download --output ~/my_observations

# Cancel a stuck download on the telescope
unistellar-download --cancel

Alternative ways to run

# As a Python module
python -m unistellar_downloader

# Directly (without installing)
python unistellar_download.py

Supported Telescopes

Works with any Unistellar telescope that uses the Direct Data Download web interface at http://192.168.100.1:

  • eVscope / eVscope 2
  • eQuinox / eQuinox 2
  • Odyssey / Odyssey Pro

All models run the same evsoft firmware and expose the same API.

How It Works

The telescope runs a Raspberry Pi with a web server. The official web UI is a Vue.js app that communicates via:

Endpoint Purpose
GET /api/observations/list List all stored observations
GET /api/observations/zip/{format}/0x0/{vpaths} Download observations as zip
GET /api/event Long-poll for download progress events
POST /api/event Send commands (e.g., cancel download)

Key discovery: The telescope backend will not stream zip data unless a client is actively long-polling /api/event. The browser's Vue.js app does this automatically. This tool replicates that behavior with a background EventPoller thread, which is why it works where a simple requests.get() to the zip URL would hang and return 502.

Requirements

  • Python 3.9+
  • requests (installed automatically)

License

MIT

Metadata

Release files for unistellar-data-downloader 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for unistellar-data-downloader 1.0.0
File Size Uploaded
unistellar_data_downloader-1.0.0.tar.gz 9.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for unistellar-data-downloader 1.0.0
File Interpreter ABI Platform
unistellar_data_downloader-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 19.7 kB

Release files / unistellar_data_downloader-1.0.0.tar.gz

Download URL unistellar_data_downloader-1.0.0.tar.gz
Size 9.4 kB
Tags Source
SHA-256 checksum
How to use checksums
cdb241993a79afbbe4334437f744896dcecd29f94d7120e8e95a1d893d8debeb
BLAKE2b-256 checksum
How to use checksums
fa2cc1d2342462de12424267975dd335cc2e74ad1da9fd90e853f9d884d8a926
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.12

Release files / unistellar_data_downloader-1.0.0-py3-none-any.whl

Download URL unistellar_data_downloader-1.0.0-py3-none-any.whl
Size 10.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7e8753c119f0bbc9e0252c97a3f757b7080664b361186edf41432385899b60b8
BLAKE2b-256 checksum
How to use checksums
f293218e8fdc0daa031abbfe1b9610dc789db939275e22ebc47395d5e0ce571b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.12

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page