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
- Connect your laptop WiFi to the telescope (the network named like
eVscope-XXXXorUNI-XXXX) - 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)
| File | Size | Uploaded | |
|---|---|---|---|
| unistellar_data_downloader-1.0.0.tar.gz | 9.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|