ZWOgain started with one job: give the camera another try. When a download failed, retry the transfer; when the camera hung, restart the SDK worker without taking N.I.N.A. down with it. That job has not changed. What changed is how much hardware now sits behind it. As of release 0.4.0.0 the project is PulsarFab Regain, and it is a driver hub for the rig rather than a plugin for one camera.

One engine, three front doors

Every device Regain drives is handled by a Rust worker, and every frontend talks to the same workers with the same recovery engine and the same settings. Pick the frontend your application wants:

FrontendRuns onWhat it offers
Native N.I.N.A. pluginWindows x64Cameras, CAA rotator, EFW filter wheel, EAF focuser and FocusCube3 in N.I.N.A.’s equipment lists, with matching setup dialogs
Native Windows ASCOMWindows x64, 32- and 64-bit clientsThe same devices in the ASCOM Chooser, with no Alpaca server needed; separate 32- and 64-bit clients share one local server
Standalone Alpaca serverWindows, Linux and macOSEverything above plus the OFP2 flat panel, exposed to any Alpaca client over the network

The recovery settings are identical everywhere: download retries, the replacement-exposure count and duration limit, the reconnect delay, cooler recovery and timeouts. Configure them once in whichever frontend you use and the behaviour is the same in the others.

The hardware behind the hub

Cameras. ZWO ASI cameras through the vendor SDK, which stays the default. For the ASI2600 and ASI6200 families, both P25 and non-P25, and the ASI676, an experimental direct USB driver captures without the SDK and can re-read a frame still held in camera memory, restarting the transfer from byte zero. A failed download therefore does not turn into a new long exposure. On Windows the ASI2600 P25 driver can even reopen its USB handle inside the same retry budget, checking the camera identity and the pixels already received before handing back the recovered frame.

Rotator, filter wheel, focuser. The ZWO CAA, EFW and EAF use an SDK-free Rust USB worker over the standard HID driver, in all three frontends. Filter names, focus offsets and unidirectional moves live in setup; a built-in wheel calibration detects the slots and finishes at slot one with names and offsets preserved.

A focuser from another vendor. The Pegasus Astro FocusCube3 arrives through a pure Rust USB-serial crate, with a native N.I.N.A. provider, a styled ASCOM driver and an Alpaca focuser device. Absolute moves, halt, temperature, direction, backlash and speed are all there, validated on a physical unit.

A flat panel. The Deep Sky Dad OFP2 is driven by another pure Rust serial crate and appears as an Alpaca CoverCalibrator: open, close, halt and brightness, with no vendor driver installed.

That mix is the point. A rig rarely comes from one maker, and a driver hub that only speaks to one vendor’s gear is not much of a hub.

Alpaca on any machine

The Alpaca server is a single binary with its workers beside it. It needs no .NET and no COM registration, and it runs on Windows, Linux and macOS, so the computer at the telescope can be whatever is convenient. Start it, open the setup page in a browser, select a camera slot and the accessories, and any Alpaca client on the LAN can discover and use them:

./regain-alpaca --listen 192.168.1.10 --port 11111

Only the machine hosting the server needs the USB drivers or permissions; the clients do not. The server has no authentication, so it belongs on a trusted network, and unattended startup is left to your own systemd, launchd or Windows task.

Where to get it

Add https://nina-plugins.pulsarfab.com/ as a N.I.N.A. plugin repository for the plugin; the older nina-plugins.psf-guard.com address is the same registry. Documentation for each frontend and device, from install through troubleshooting, is at pulsarfab.com/docs. Source and releases are at github.com/pulsarfab/regain, and the Linux and macOS server builds from source with a single cargo build.

Regain is an independent, Apache-2.0 project. It is not affiliated with or supported by ZWO, Pegasus Astro or Deep Sky Dad; bundled components keep their own licenses. Read the original camera-recovery write-up, or browse the astronomy software collection.