Skip to content

[Feature Proposal] Step-count based mount control tools for step-driver mounts (OnStep): Step Jog, Mount Calibration, and related sequencer items #322

Description

@HNishimura0504

Motivation

Budget step-driver mounts (e.g. OnStep conversions of older mounts such as the Vixen GP) often lack GPS, encoders, and precise goto ability. Before plate solving can take over, users need a reliable way to make coarse and fine pointing adjustments. NINA's existing manual mount control (MoveAxis at a rate for a duration) is not reproducible on these mounts: the same button press can produce different displacements depending on timing.

Since step-driver controllers ultimately count motor steps, controlling movement by step count instead of rate × time gives deterministic, repeatable motion. I have built a working prototype of this idea on top of develop (3.3.0.1047) and would like to ask whether any of it is of interest for NINA core, or whether a plugin is the better home for it.

Proposed features (prototype implemented)

  1. Step Jog panel (Imaging tab) — jog the mount N/S/E/W by a configurable number of motor steps per click.
  2. Mount Calibration — builds a calibration map between commanded step counts and actual sky displacement (measured by plate solving), so step-based moves can be translated to arcseconds and vice versa.
  3. New sequencer instructionsGuidedSlewToRaDec, GuidedCenterTarget, MoveAxisBySteps: slew/centering that iteratively corrects pointing using the calibration map and plate solving.
  4. Camera rotation alignment panel — measures current rotation angle via plate solving and interactively guides manual rotation of the camera to a target position angle (similar in spirit to the manual rotator flow, but as a live Imaging panel with a compass-style display).

Important caveat: firmware dependency

Features 1–3 rely on custom commands added to OnStep firmware (a small patch adding step-count telemetry and step-based move commands). Stock OnStep / standard ASCOM drivers do not expose these. I am fully aware this is a significant constraint for core inclusion — this is exactly what I would like guidance on:

  • Would this functionality be acceptable in core behind a capability check, or
  • Should this live as a plugin (possibly together with the firmware patch), and if so, is there any interest in a generic "step-based mount control" abstraction in core that such a plugin could build on?

Feature 4 (camera rotation alignment) has no firmware dependency and only uses plate solving; if there is interest, I can split it into its own proposal/PR.

Implementation status

Working prototype, built and in nightly use on my own setup (Vixen GP + OnStep, Canon EOS 6D). ~30 files touched/added on top of develop. Screenshots and diffs available on request; I did not want to open an unsolicited PR before discussing direction here, per CONTRIBUTING.md.

AI disclosure

Per the contribution guidelines: the majority of the prototype code was written with substantial AI assistance (Anthropic Claude). I understand that I remain fully responsible for the code and for defending it during review.

Questions for maintainers

  1. Core vs. plugin — which is appropriate for the step-based features?
  2. Is the camera rotation alignment panel worth proposing separately for core?
  3. If plugin is the answer, any pointers on the preferred way to expose mount-specific extended commands would be appreciated.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions