A native desktop application for managing firmware on ZWO Seestar smart telescopes.
Built with egui and Rust. Available as a GUI and a --tui terminal interface.
- Firmware Update — install firmware from a local APK/XAPK file, a raw
iscopebinary, or downloaded directly from APKPure - Download Only — fetch a firmware APK without immediately flashing it
- Extract PEM — extract the TLS private key from a Seestar APK for use with local API access
- Diagnostics — authenticate to the scope and collect raw
get_device_stateandpi_get_infoAPI responses, with export to JSON - Animated progress bar with installation countdown
- Color-coded output log
- Confirmation dialog before any firmware flash
Pre-built binaries are available on the Releases page for:
| Platform | File |
|---|---|
| macOS (Apple Silicon) | seestar-tool-aarch64-apple-darwin-*.dmg |
| macOS (Intel) | seestar-tool-x86_64-apple-darwin-*.dmg |
| Linux x86_64 | seestar-tool_*_amd64.deb |
| Linux arm64 | seestar-tool_*_arm64.deb |
| Windows x86_64 | seestar-tool-x86_64-pc-windows-msvc-*.zip |
macOS: Open the .dmg and drag Seestar Tool to Applications.
Linux: sudo dpkg -i seestar-tool_*.deb
Windows: Extract the .zip and run seestar-tool.exe.
macOS may display:
Apple could not verify "SeestarTool" is free of malware that may harm your Mac or compromise your privacy.
This occurs because the app is not code-signed. You can safely bypass this by:
Option 1: Right-click to open
- Right-click (or Ctrl+click) the app in Finder
- Select Open from the context menu
- Click Open in the confirmation dialog
Option 2: Terminal command
xattr -d com.apple.quarantine /Applications/SeestarTool.appThen open the app normally. This removes the quarantine flag that triggers the warning.
Requires the Rust toolchain.
cargo build --releaseThe binary will be at target/release/seestar-tool.
Linux also requires GUI system libraries:
sudo apt-get install libgtk-3-dev libxcb-render0-dev libxcb-shape0-dev \
libxcb-xfixes0-dev libxkbcommon-dev libssl-dev libfontconfig1-dev libgl1-mesa-devseestar-toolseestar-tool --tuiWhy APK?
ZWO distributes Seestar firmware bundled inside the Android companion app APK (Android Package). The app itself runs on your phone, but it also carries the telescope's firmware as an embedded asset. An APK is a ZIP archive, so this tool unpacks it, extracts the firmware binary (iscope or iscope_64), and uploads it directly to your scope.
APK vs. XAPK
- APK — a single archive file containing all firmware components
- XAPK — a split APK format used for large packages; it's a ZIP containing multiple APK files plus metadata
Both formats can be used with this tool—it handles the extraction automatically.
What is iscope?
iscope comes in two variants:
iscope— 32-bit firmware binary (used on S50, S30)iscope_64— 64-bit firmware binary (used on S30 Pro)
Both are bzip2-compressed tarballs containing the firmware binary and related system files, stored in the APK's assets/iscope or assets/iscope_64 entry. This tool automatically detects and extracts the correct variant from your APK. You can:
- Extract and use a raw
iscopeoriscope_64file directly - Let this tool extract the appropriate variant from an APK/XAPK before uploading
- Extract it as a reference or for use with other tools (e.g., seestar_alp)
- Choose a firmware source:
- Local APK / XAPK — pick a
.apkor.xapkfile you already have - Local iscope — pick a raw extracted
iscopefirmware binary - Download from APKPure — fetch a version list and download directly
- Local APK / XAPK — pick a
- Enter your Seestar's IP address or hostname (default:
seestar.local) - Click Update Seestar (or Download & Install) and confirm the dialog
The app connects to the scope's OTA updater, uploads the firmware, and monitors the reboot. A progress bar counts down the estimated install time (~3 minutes), then waits for the scope to come back online.
Pick a Seestar APK/XAPK and click Extract PEM Key. The extracted key can be saved to a .pem file.
The Diagnostics tab connects to a live scope and collects raw API responses without modifying anything.
- Enter your Seestar's IP address or hostname (default:
seestar.local) - Pick a Seestar APK/XAPK — the PEM key is extracted automatically in the background (status shown below the file field)
- Once the key is ready, click Run Diagnostics
- The raw JSON responses from
get_device_stateandpi_get_infoare displayed in scrollable panels - Click Save to file (GUI) or Save JSON to file (TUI) to export both responses as a single
seestar_diagnostics.jsonfile
This is useful for inspecting the scope's reported state, battery level, hardware info, and any other fields returned by the API — without touching the firmware.
Interoperability Notice: PEM key extraction is provided for interoperability purposes under 17 U.S.C. § 1201(f) (the DMCA interoperability exemption), enabling independent programs to interoperate with your Seestar device. The legality of key extraction and use varies by jurisdiction. You are solely responsible for ensuring compliance with the laws of your region.
PEM key extraction is provided for interoperability purposes under 17 U.S.C. § 1201(f) — the DMCA interoperability exemption. That provision permits circumvention of access controls solely to the extent necessary to achieve interoperability of an independently created program with other programs. Extraction of the TLS private key is performed to enable independent software (such as seestar_alp) to interoperate with the Seestar device's local API.
The legality of key extraction and use varies by jurisdiction. The DMCA interoperability exemption applies within the United States. Laws governing reverse engineering, circumvention, and interoperability differ significantly across countries and regions. You are solely responsible for ensuring that your use of this feature complies with the laws of your region.
The author(s) of this software make no representations regarding the legality of this feature outside the United States, and expressly disclaim any liability arising from use of the Extract PEM feature in jurisdictions where such activity may not be permitted.
Known firmware version number mappings:
| App version | asiair version_int | version_string |
|---|---|---|
| 3.1.2 | 2732 | 7.32 |
| 3.1.1 | 2718 | 7.18 |
| 3.1.0 | 2706 | 7.06 |
| 3.0.2 | 2670 | 6.70 |
| 3.0.1 | 2658 | 6.58 |
| 3.0.0 | 2645 | 6.45 |
| 2.7.0 | 2597 | 5.97 |
| 2.6.4 | 2582 | 5.82 |
| 2.6.1 | 2550 | 5.50 |
| 2.6.0 | 2534 | 5.34 |
| 2.5.0 | 2470 | 4.70 |
| 2.4.1 | 2443 | 4.43 |
| 2.4.0 | 2427 | 4.27 |
| 2.3.1 | 2402 | 4.02 |
| 2.3.0 | 2400 | 4.00 |
| 2.2.1 | 2368 | 3.68 |
| 2.2.0 | 2358 | 3.58 |
| 2.1.0 | 2331 | 3.31 |
| 2.0.0 | 2295 | 2.95 |
| 1.20.2 | 2276 | 2.76 |
| 1.20.0 | 2271 | 2.71 |
| 1.19.0 | 2261 | 2.61 |
| 1.18.0 | 2253 | 2.53 |
Read carefully before use.
This project is independent, unofficial, and unsupported. It is not affiliated with, endorsed by, or supported by ZWO Co., Ltd. in any way. "Seestar" is a trademark of ZWO Co., Ltd. Use of that name here is purely descriptive.
Using this tool to flash firmware onto your Seestar telescope may void your manufacturer's warranty. ZWO may refuse to service or repair devices whose firmware has been modified or replaced through unofficial means. You use this tool entirely at your own risk.
Flashing firmware to any device carries inherent risks. Interrupting the process, using incompatible firmware, or encountering unexpected hardware or software conditions can result in the device becoming non-functional ("bricked"). There is no guaranteed recovery path. Before proceeding:
- Ensure the scope is fully charged and will not lose power during the update
- Ensure your network connection is stable throughout the upload
- Verify you are using a firmware version intended for your specific hardware
By using this software, you acknowledge and accept full responsibility for any outcome, including but not limited to: damage to your equipment, loss of data, voided warranty, or device failure. The author(s) of this software provide it "as-is", without warranty of any kind, express or implied.
The author(s) of this software shall not be held liable for any direct, indirect, incidental, special, or consequential damages arising from the use or misuse of this software, regardless of whether such damages were foreseeable. This includes, without limitation, damage to your telescope, loss of use, or any costs incurred as a result of device failure or repair.
By downloading, building, or running this software, you agree to these terms.
GPL v3 — see LICENSE.