Skip to content

Releases: theatrus/autopiercam

AutoPierCam 0.2.28

Choose a tag to compare

@github-actions github-actions released this 23 Oct 17:59
d0d4ced

AutoPierCam 0.2.28 adds configurable timelapse recording windows and an independent
local-clock send time. Record sunset to sunrise and send the completed movie at
noon in your observing timezone. Existing UTC-day settings keep their behavior.

Changes

  • Choose UTC day, local noon-to-noon, or sunset-to-sunrise recording in Imaging
    settings. Night mode defaults to sunset/sunrise, with optional civil or
    astronomical twilight. Enter observing coordinates and an IANA timezone;
    daylight-saving changes do not turn local noon into a fixed 24-hour countdown.
  • Choose immediate Chatstronomy delivery or a local clock time, defaulting to
    noon when selecting Night. Movie sharing remains a separate opt-in. The movie
    must finish encoding first; AutoPierCam does not wake a sleeping PC or start a
    stopped camera to send it. Generic HTTP PUT uploads remain immediate.
  • Persist new recording windows and delayed delivery intents across restart.
    Catch-up expires 24 hours after window close to respect the existing Hub
    contract. A changed schedule, location, pairing or sharing revision cancels the
    old intent. An interrupted claimed send is not replayed, avoiding duplicate
    posts at the cost of possibly missing that send.
  • Protect a waiting movie from retention while counting it against storage
    limits. Original still retention, immutable upload snapshots, bounded HTTP
    retries, Hub size limits and the 512 MiB client ceiling remain unchanged.
    Discord delivery is best-effort; no MP4 is split, resized or overwritten.
  • Include 25-hour local windows in the bounded sample cache. Polar periods with
    no complete sunset/sunrise pair produce no night clip. Solar times are
    minute-resolution estimates, not terrain/weather-aware measurements.

Regain remains pinned to released 0.5.15.1 source (Rust crates 0.5.15). Camera
acquisition, motion images, estimated post-slew freshness and opt-in overlays
are unchanged. Changing the schedule does not abort or restart an exposure.
See video setup for configuration and failure behavior.

Validation scope

Software tests cover DST gaps/folds, 23/25-hour windows, midnight-spanning nights,
exact send and expiry boundaries, restart/rollback, consent changes during
snapshot copying, retention protection, native encoding and immutable uploads.
Negative controls remove the send-time guard and replace local-calendar windows
with 24-hour arithmetic; both must fail their regression tests. No physical
camera, optical, long-soak, live Discord upload or local installation is tested.

Install or upgrade

Use AutoPierCam-0.2.28-x64.msi to update the agent and Viewer together. Existing
settings and images are preserved. Configure the new schedule explicitly;
upgrading does not enable movie sharing or change your machine's timezone.
NINA plugin 0.2.28.0 is distributed through both public feeds,
https://nina-plugins.psf-guard.com/ and https://nina-plugins.pulsarfab.com/.
Minimum NINA remains 3.2.0.9001. The plugin never opens a camera handle.

AutoPierCam 0.2.27

Choose a tag to compare

@github-actions github-actions released this 23 Oct 05:18
de6879c

AutoPierCam 0.2.27 adds Windows-native video, daily timelapses from saved stills,
and richer opt-in Chatstronomy sharing. Regain remains pinned to the released
0.5.15.1 source (Rust crates 0.5.15); camera acquisition is unchanged.

Changes

  • Replaces the external FFmpeg encoder with Windows Media Foundation H.264 MP4
    for security segments and daily timelapses. Hardware encoding is allowed with
    a Windows software fallback. No separate encoder installation is required;
    Windows N needs the Media Feature Pack. Old ffmpeg_path settings are ignored.
  • Daily timelapses use the first saved still in each UTC minute. A closed UTC
    day is processed at startup or the next periodic check. Private sample caches
    are bounded and removed after successful local publication and registration;
    original stills remain subject to their ordinary retention policy. Local
    publication does not itself mean an upload or Discord post.
  • Adds optional target, successfully saved LIGHT-exposure count, and focuser or
    external temperature labels. All toggles default off. An explicit telescope
    selection and fresh Hub v4 telemetry are required. Unknown or stale values
    are omitted; later telemetry never relabels an earlier captured sample.
    Overlays affect private timelapse samples, not the original stills.
  • Adds richer target/action captions and separately consented daily-movie
    sharing. The existing v3 upload contract is unchanged. Hub-advertised limits
    are honored up to an independent 512 MiB client ceiling; higher limits do
    not invalidate the connection. A private disk snapshot streams in bounded
    chunks with Content-Length, preserving identical bytes, UUID and timestamp
    across bounded retries. Quota admission and rechecks include the extra copy.
  • Size/media rejection is terminal and visible. Discord may reject larger
    clips even when the Hub accepts them; the local movie is not modified by
    sharing and remains available subject to normal retention. MP4s are never
    split into arbitrary attachments. Consent withdrawal and cancellation clean
    up the private upload snapshot.
  • Fixes replayed older telemetry reviving labels after a newer clearing state.
    Existing motion images and conservative estimated post-slew freshness remain
    intact; no exposure is cancelled or restarted for sharing.

Overlays require the Hub v4 observation-state support shipped in Chatstronomy
0.4.13 and source telemetry from NINA plugin 0.1.0.34 or compatible newer
versions, deployed together. Legacy peers retain their negotiated capabilities.
See video setup and sharing setup for size,
retention, consent and timing details.

Validation scope

Validation uses synthetic frames, loopback HTTP/WebSocket peers, simulated
camera workers and software tests. Regressions cover uploads above 20 MiB,
bounded chunks, immutable retries, rejection, cancellation, quota cleanup,
telemetry freshness and replay. No physical-camera, optical, long-soak or local
installed-artifact validation is claimed. Host capture times are not guaranteed
sensor exposure timestamps; missing telemetry is not interpolated.

Install or upgrade

Use AutoPierCam-0.2.27-x64.msi to update the agent and Viewer together.
Existing settings and images are preserved; video, movie sharing and overlays
are opt-in. NINA plugin 0.2.27.0 is distributed through both public feeds,
https://nina-plugins.psf-guard.com/ and https://nina-plugins.pulsarfab.com/.
Minimum NINA remains 3.2.0.9001. The plugin never opens a camera handle.

AutoPierCam 0.2.26

Choose a tag to compare

@github-actions github-actions released this 10 Oct 05:04
6e45020

AutoPierCam 0.2.26 updates the bundled Regain camera worker from 0.5.11 to
the released 0.5.15.1 source. The pop-out settings window, shared Imaging and
Chatstronomy saves, clock-aligned periodic sharing and post-slew image selection
from earlier releases are retained.

Changes

  • Pins all Regain dependencies to the same released commit,
    c6d0c463192eb4912f9d03d8808df5cca77525e1. The four Rust crates use version
    0.5.15; the worker version label and packaging check match that version.
  • Includes the intervening upstream maintenance changes to recovery diagnostics
    and Direct cooling regulation. AutoPierCam's low-level adapter does not use
    Regain's shared camera-session supervisor or its NINA/ASCOM frontends, so their
    cooling-restoration, chart and Driver Info changes are not new AutoPierCam UI
    features. AutoPierCam still requires a color camera.
  • Includes the new Direct host-read sizing implementation while retaining its
    default 1024 KiB requests. This update does not expose a read-size control in
    the Viewer or change camera-side USB Traffic settings. The upstream managed
    telemetry-retention fix applies to Regain's frontends, not AutoPierCam's UI.
  • Keeps camera selection, exposure handling, continuous-frame delivery and
    automatic recovery policy unchanged. No exposure is cancelled to obtain a
    post-slew image; timing remains an explicitly conservative estimate.

Validation scope

The dependency integration uses hardware-free SDK and Direct worker simulation,
including frame provenance, transitions, serial selection, error cleanup and
the preview pipeline. Physical-camera, optical timing and long-soak validation
are not part of this update. Published upstream hardware results do not qualify
AutoPierCam on every camera model.

Install or upgrade

Use AutoPierCam-0.2.26-x64.msi to update the agent and Viewer together.
Existing settings and images are preserved. NINA plugin 0.2.26.0 is
distributed through both public plugin feeds:
https://nina-plugins.psf-guard.com/ and https://nina-plugins.pulsarfab.com/.
Minimum NINA remains 3.2.0.9001. The plugin never opens a camera handle.

AutoPierCam 0.2.25

Choose a tag to compare

@github-actions github-actions released this 06 Oct 21:20
1ce7f96

AutoPierCam 0.2.25 adds a separate settings window and clock-aligned Chatstronomy
image scheduling. It retains Regain 0.5.11.0 and the post-slew selection from
0.2.24, including useful motion images and no exposure cancellation.

Changes

  • Settings opens its own window without replacing the live preview. Imaging and
    Chatstronomy retain their drafts when you switch tabs, with one Save all
    settings
    and Discard all changes footer.
  • Numeric edits enable Save while you type; you do not need to leave the field.
    Invalid numbers remain visible for correction. Closing settings or the Viewer
    with edits prompts to save both tabs, discard, or keep editing.
  • Both drafts are validated before either is written. A later write failure is
    reported explicitly; the two agent requests are not an atomic transaction.
    Successfully saved changes are not written again when retrying the other tab.
  • Send an image every N minutes uses UTC slots anchored at the Unix epoch,
    not a countdown from Save or connection time. For 15 minutes, slots are
    :00, :15, :30 and :45. Unchanged saves and reconnects preserve the next slot;
    changing N selects the next boundary of the new interval. Zero disables it.
    This is a clock-aligned interval, not a full cron-expression editor.
  • Missed slots coalesce instead of forming a backlog. Sharing still needs local
    consent, a connection and a fresh completed preview; a busy event burst may
    take the slot. Post-slew completion wins a coincident periodic slot and keeps
    its conservative timing estimate and send-spacing requirements.

Validation

Deterministic clock tests cover exact boundaries, repeated configuration,
connection recreation, interval changes, backwards time, missed slots and
periodic/post-slew overlap. A countdown-reset negative control must fail the
clock regression. The settings UI is checked against isolated in-memory agent
responses, with no physical cameras, installed settings writes or live messages.

Install or upgrade

Use AutoPierCam-0.2.25-x64.msi. Existing settings and images are preserved.
Update both the Viewer and agent to get the UI and scheduling changes.
NINA plugin 0.2.25.0 is distributed through both public plugin feeds:
https://nina-plugins.psf-guard.com/ and https://nina-plugins.pulsarfab.com/.
Minimum NINA remains 3.2.0.9001. The plugin never opens a camera handle.

AutoPierCam 0.2.24

Choose a tag to compare

@github-actions github-actions released this 06 Oct 08:13
b33caf8

AutoPierCam 0.2.24 improves Chatstronomy slew-image captions and post-slew
selection, using the Regain 0.5.11.0 maintenance release.

Changes

  • Motion images remain useful: start updates and numbered follow-ups may show
    blur while the telescope moves. They are not relabelled as completion images.
  • A slew-completed event reserves one separate post-slew image, even when the
    motion burst has used its quota. Selection waits for settled timing that puts
    the estimated exposure start, minus a full-frame freshness margin, after the
    completion notification. A later delivery timestamp alone is insufficient.
  • The pending completion request does not stop, cancel or restart an exposure.
    At 30–60 seconds it can wait several exposure cycles. Send spacing and consent
    remain enforced; duplicate notifications do not continually reset the wait.
  • Post-slew captions explicitly say exposure timing is estimated. The SDK video
    path has no sensor exposure-start timestamp; native buffering, readout delays
    and clock changes prevent a guarantee of exact optical timing.

One pending completion is retained, not an image backlog. It expires after
four known exposure durations plus 180 seconds (minimum 300, maximum 3600), or
when the capture session/consent changes. A new slew supersedes it. Missing or
transition timing never qualifies. No new physical-camera testing is claimed.
The separate settings-window and periodic-schedule PR is not included.

Install or upgrade

Use AutoPierCam-0.2.24-x64.msi. Existing settings and images are preserved.
NINA plugin 0.2.24.0 is distributed through both public plugin feeds:
https://nina-plugins.psf-guard.com/ and https://nina-plugins.pulsarfab.com/.
Minimum NINA remains 3.2.0.9001. The plugin never opens a camera handle.

AutoPierCam 0.2.23

Choose a tag to compare

@github-actions github-actions released this 05 Oct 06:46
1d61776

AutoPierCam 0.2.23 fixes Direct USB startup selection and updates the bundled
worker to the released Regain 0.5.10 drivers. SDK remains the default.

Changes

  • When a stale saved camera ID rejects all Direct candidates, use the saved
    model filter to select one unambiguous interface whose serial is not yet known.
    Open only that interface on the capture thread and verify the saved serial
    before capture. A serial mismatch still fails; multiple matching interfaces
    still require explicit selection. Saved configuration is not rewritten.
  • Keep discovery metadata-only. The Viewer can show "serial unavailable" until
    the selected camera is opened; discovery does not probe other cameras.
  • Pin Regain 0.5.10.0's released source and update the worker packaging contract
    and dependency notices. Upstream adds experimental ASI585MM Pro support, but
    AutoPierCam still requires a color camera and does not enable monochrome capture.

Hardware-free regressions cover the stale-ID startup failure, ambiguity, missing
interface identity, known serial mismatches, cached verified identity, and actual
worker acceptance/rejection of a saved serial. The startup regression fails
against the old selection behavior. This release adds no new physical-camera,
optical, disconnect, or long-soak validation.

Install or upgrade

Use AutoPierCam-0.2.23-x64.msi. Existing settings and images are preserved;
the ZWO USB driver remains required. Previous releases are not overwritten.
NINA plugin 0.2.23.0 is published to both public plugin feeds:
https://nina-plugins.psf-guard.com/ and https://nina-plugins.pulsarfab.com/.
Minimum NINA remains 3.2.0.9001; the plugin never opens a camera handle.

AutoPierCam 0.2.22

Choose a tag to compare

@github-actions github-actions released this 05 Oct 04:17
98b9ec6

AutoPierCam 0.2.22 improves preview timing with Regain 0.5.9. SDK remains
the default. Camera selection and existing configuration are preserved.

Changes

  • Keep preview flowing during exposure/gain transitions. Frames whose settings
    are not settled have unknown exposure/gain metadata; they cannot drive
    auto-exposure, satisfy startup convergence, or consume saved snapshot requests.
  • Serve cached stream status and latest frames independently of blocking SDK
    reads. Use atomic frame polling and retain bounded latest-only buffering.
  • Increase the SDK video-read cap from 1s to 5s and give owner commands enough
    IPC time to finish a read. The exposure-aware watchdog and terminal errors
    remain enforced; this is not an unbounded timeout or retry loop.
  • Add raw-frame timing diagnostics so acquisition and delivery can be distinguished.
    Preserve the delivery FPS cap, single camera owner and boundary-safe controls.

Automated tests use simulators and inert SDK libraries, including a deliberately
blocked acquisition read and blocked output. No automated test opens hardware.
The reported SDK stall's underlying cause is not proven. These changes do not
claim a firmware/power fix, optical settings accuracy or long-soak validation.
No images, camera identities or raw traces are included in the release.

Install or upgrade

Use AutoPierCam-0.2.22-x64.msi. Existing settings and images are preserved;
the ZWO USB driver remains required. Previous releases are not overwritten.
NINA plugin 0.2.22.0 is published to both public plugin feeds:
https://nina-plugins.psf-guard.com/ and https://nina-plugins.pulsarfab.com/.
Minimum NINA remains 3.2.0.9001; the plugin never opens a camera handle.

AutoPierCam 0.2.21

Choose a tag to compare

@github-actions github-actions released this 05 Oct 01:19
ff29682

AutoPierCam 0.2.21 adopts Regain 0.5.8 continuous acquisition. SDK remains the
default; existing camera selection, settings and opt-in USB recovery are retained.

Changes

  • Keep the isolated camera owner draining while preview, encoding and storage
    consumers wait. A bounded latest-frame slot prevents an accumulating queue.
    Fractional FPS caps delivery, not the sensor's acquisition rate.
  • Use SDK native video instead of repeated SDK single exposures. Direct
    ASI662MC/ASI676MC use native video through 30 seconds and repeated stills above
    that limit. Other Direct families retain their supported still protocols.
  • Apply exposure/gain changes at a completed-frame boundary without restarting
    native video. Discard transition frames and account for the previous exposure
    and settling fence in the watchdog. Geometry changes still restart safely.
  • Adopt the ASICap-observed Direct long-exposure timing-write order. Normal SDK
    read timeouts back off without restarting; terminal failures remain visible.
  • Add continuous-stream counters and settings-generation breadcrumbs to bounded
    fault diagnostics. No extra camera discovery, silent camera selection or
    implicit USB resets are added.
  • Preserve 30-second session retries, malformed-frame recovery and optional
    serial-bound USB recovery with administrator rights and a five-minute cooldown.

Validation and limits

Local operator-authorized full-frame transition checks passed 234 ms through
6.4, 25 and 60 seconds and back on ASI662MC USB 2 and ASI676MC USB 3 through
SDK and Direct. AutoPierCam's SDK adapter also passed the 60-second-to-234-ms
transition on both cameras with the previous-exposure timeout allowance.
Automated tests cover the capture pipeline, pacing, WB, legacy recovery and
isolated worker failures without opening physical cameras.

The remote hard lock was not reproduced; firmware, interference and power remain
unproven explanations. These bounded checks do not guarantee long-running
stability, optical accuracy, cold startup or physical-disconnect recovery.
No private images, camera identities or raw traces are bundled.

Install or upgrade

Use AutoPierCam-0.2.21-x64.msi. Settings and images are preserved; the ZWO
USB driver is still required. Previously published assets remain unchanged.
NINA plugin 0.2.21.0 is published to both
https://nina-plugins.psf-guard.com/ and https://nina-plugins.pulsarfab.com/.
Minimum NINA version remains 3.2.0.9001; the plugin never owns the camera.

AutoPierCam 0.2.20

Choose a tag to compare

@github-actions github-actions released this 04 Oct 07:42
f777343

AutoPierCam 0.2.20 adopts Regain 0.5.7 and adds bounded camera recovery and
fault diagnostics. SDK remains the default; existing driver and USB recovery
settings are unchanged.

Changes

  • ASI662MC/ASI676MC Direct USB video discards one malformed frame, restarts
    the stream on the same handle and captures a fresh validated frame. FPS and
    cancellation remain respected. Repeated failures remain bounded and visible.
  • Retry SDK ASI_EXP_FAILED once on the existing handle without extending the
    outer frame deadline. Arbitrary SDK errors are not silently retried.
  • Log fault snapshots with exposure/gain/ROI, elapsed time, last valid frame,
    retry attempts and a bounded history of worker phases. Preserve native errors.
  • Keep routine phases at DEBUG, with INFO health summaries at most once per
    minute. Record USB transport at startup without extra camera discovery.
  • Keep 30-second session retries and optional serial-bound USB port recovery.
    USB reset remains off by default, requires an explicitly selected serial and
    an elevated agent, and observes a five-minute cooldown. No hub-wide resets.

Validation and limits

Local capped ASI662MC USB 2 tests passed seven fixed 60-second frames per
backend. Both old and candidate Direct workers passed the gain-300
6.4/25/25/6.4/25-second sequence. The updated AutoPierCam adaptive pipeline
passed 6.4-to-25.6-to-60 seconds, settled after four valid 60-second samples,
saved a still and exited cleanly. Automated recovery tests use simulators only.

The reported remote USB 2 framing failure was not reproduced locally. These
tests establish recovery behavior, not an interference diagnosis or a guarantee
of long-running stability. Optical accuracy, cold startup, physical-disconnect
recovery and Linux/macOS video hardware remain unvalidated. No private images
or camera identities are bundled.

Install or upgrade

Use AutoPierCam-0.2.20-x64.msi. Settings and images are preserved; the ZWO
USB driver is still required. Previously published release assets are unchanged.
NINA plugin 0.2.20.0 is published to both
https://nina-plugins.psf-guard.com/ and https://nina-plugins.pulsarfab.com/.
Minimum NINA version remains 3.2.0.9001; the plugin never owns the camera.

AutoPierCam 0.2.19

Choose a tag to compare

@github-actions github-actions released this 04 Oct 05:34
4ad204c

AutoPierCam 0.2.19 adopts Regain 0.5.6 and extends experimental Direct USB video
to ASI676MC, following ASI662MC video in 0.2.18. SDK remains the default; existing
configurations do not change driver or enable USB recovery.

Changes

  • Use the worker's advertised video mode for ASI676MC exposures through 30 seconds
    on USB 2 and USB 3. Both supported color models now reuse sensor initialization
    and calibration between matching frames.
  • Preserve model-specific ROI, gain, offset and timing limits. Longer exposures
    use retained still capture; there is no silent SDK fallback or reduced ceiling.
  • Preserve fractional acquisition FPS caps, exposure-aware stall deadlines,
    cancellable waits, WB/AWB, cached identity and discovery backoff.
  • Keep 30-second automatic capture retry and optional serial-bound USB recovery.

Optional USB recovery

The Viewer can optionally reset the selected camera's port after capture failure.
This remains off by default and requires an explicit serial plus an
administrator-started agent. Identity checks and a five-minute cooldown remain;
no hub-wide reset, automatic elevation or local installed-setting changes.

Validation and limits

Regain's operator-authorized ASI676MC SDK references and Direct USB matrices passed
on Windows USB 2 and USB 3. Each matrix covered 21 video frames, full frame/ROI,
fractional FPS, exposure changes through 30 seconds, cancellation, restart and
return to still capture. AutoPierCam adapter/pipeline regressions use simulations.

FPS caps grabs, not sensor output; slow consumers may receive buffered frames.
Optical accuracy, cold startup, physical USB-disconnect recovery, long-running
stability, Linux/macOS video hardware and the installed Viewer's full driver
handoff remain unvalidated. No private images or identities are bundled.

Install or upgrade

Use AutoPierCam-0.2.19-x64.msi. Settings and images are preserved; the ZWO USB
driver remains required. Previously published assets are unchanged.

NINA plugin 0.2.19.0 must be published to both
https://nina-plugins.psf-guard.com/ and https://nina-plugins.pulsarfab.com/.
Minimum NINA version remains 3.2.0.9001. The plugin never owns the camera.