Skip to main content

Modern python bindings for ZWO ASI astronomical cameras

Project description

zwoasi

Modern, type-safe, zero-dependency Python library for controlling ZWO ASI astronomical cameras.

Installation

pip install zwo

or

using your preferred environment / package manager of choice, e.g., poetry, conda or uv:

poetry add zwo
conda install zwo
uv add zwo

Linux Setup

To check if you any ZWO ASI cameras connected, run the following command:

lsusb | grep 03c3

You should see something like this as your output:

Bus 001 Device 016: ID 03c3:620b ZWO ASI6200MM Pro

To allow non-root users to access the ASI camera, you need to create a udev rule. The following command will copy the rule to the correct location:

sudo install /zwo/sdk/137/lib/asi.rules /lib/udev/asi-rules.d
sudo udevadm control --reload-rules && udevadm trigger

Once you have done this, check that the camera is accessible by running the following command:

ls -l /dev/bus/usb/$(lsusb | grep 03c3:620b | awk '{print $2}')/$(lsusb | grep 03c3:620b | awk '{print $4}' | tr -d :)

You should see something like this:

crw-rw-rw- 1 root root 189, 0 Jan  1 00:00 /dev/bus/usb/001/001

i.e., the camera is accessible by all users with permissions crw-rw-rw- with a mode of MODE=0666.

Then when you have verified these steps, run the following command:

cat /sys/module/usbcore/parameters/usbfs_memory_mb

If the output is anything other than 200, something has gone wrong. To fix, simply follow the steps above again.

Once you have verified that the camera is accessible, if you reconnect the camera by unplugging it from the UBS port and plugging it back in, you can now use the zwo library to control the camera.

Windows Setup

Unfortunately, ZWO ASI does not directly support .dll files for Windows. However, you can use the zwo library on Windows by using the Windows Subsystem for Linux (WSL) and following the Linux setup instructions above and passing through USB devices to the WSL from your host machine.

Usage

from zwo import import ZWOASICamera, ZWOASICameraParams

# Let's assume the camera ID is 0 (e.g., only 1 camera is connected):
id = 0

# Create a new camera parameters instance (for demonstration purposes we are
# connecting to a ASI62000M Pro model) which has a pid of "620b":
# N.B. Replace the pid with the correct one for your camera model.
pid: str = "620b"

params: ZWOASICameraParams = ZWOASICameraParams(pid=pid)

# Create a new camera instance:
zwo = ZWOASICamera(id, params)

# Check if the camera is ready:
is_ready = zwo.is_ready()

if not is_ready:
    print("Camera is not ready!")
    exit(1)

As the zwo instance is fully typed, you can use your IDE's autocompletion to see all the available methods and properties.

We have also provided further usage examples in the examples directory.


License

This project is licensed under the terms of the MIT license.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

zwo-0.0.0.tar.gz (18.9 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

zwo-0.0.0-py3-none-any.whl (25.9 MB view details)

Uploaded Python 3

File details

Details for the file zwo-0.0.0.tar.gz.

File metadata

  • Download URL: zwo-0.0.0.tar.gz
  • Upload date:
  • Size: 18.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for zwo-0.0.0.tar.gz
Algorithm Hash digest
SHA256 0edebb89f12ab41c4c97e4cd95fb42c2e273815e791cbf10c8aab6f057e4fba9
MD5 6eb5ef65bf9850c847f0ffa58e21a6af
BLAKE2b-256 5a52d8dfa9a3048be49f60bdb64ff4ff8e3acf7356e0497cacd5547571f20df1

See more details on using hashes here.

Provenance

The following attestation bundles were made for zwo-0.0.0.tar.gz:

Publisher: publish.yml on michealroberts/zwoasi

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file zwo-0.0.0-py3-none-any.whl.

File metadata

  • Download URL: zwo-0.0.0-py3-none-any.whl
  • Upload date:
  • Size: 25.9 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for zwo-0.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a6f2e5215969ac4698717eeed40d3b3198f53d554a072ebc20547812f9aa56fa
MD5 59e5a422884bc3ed728ec3fdd06899f9
BLAKE2b-256 a073f47c6c710d149b1bf7e1a9d00460ce395df029d9a3d46f445e74584dea5a

See more details on using hashes here.

Provenance

The following attestation bundles were made for zwo-0.0.0-py3-none-any.whl:

Publisher: publish.yml on michealroberts/zwoasi

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page