PHD2 guider
PHD2 is a peer process. Starship doesn't replace it, doesn't embed it, doesn't try to autoguide on its own. It connects to PHD2's JSON-RPC server, reads status, and — when you allow it — commands PHD2 the way Voyager does: set the guide exposure, start guiding, dither between subs, and stop guiding.
Connection
Settings → PHD2 guider, enable, set host (typically 127.0.0.1 if same PC) and port (PHD2 default is 4400). Save and restart.
In PHD2: Tools → Enable Server. Without this PHD2 doesn't accept connections.
Test connection on the PHD2 settings page opens a socket to PHD2 to confirm it's running with its server enabled, without changing anything.
Starship keeps the connection alive on its own — it reconnects with backoff if PHD2 is closed or restarts, so you don't have to re-establish the link by hand.
What's exposed (read-only)
The Status / Guiding section shows:
- PHD2 connection state (connected / disconnected / not running)
- Current state (looping, calibrating, guiding, lost lock, paused)
- Last RA and Dec error in arcseconds
- Star SNR
- Whether dithering / settling is in progress
These come from PHD2 events: AppState, GuideStep, Settling, Calibrating, LoopingExposures, SettleBegin/SettleDone, etc. Reading these never requires Allow control — the observe path always works.
Letting Starship command PHD2
Turn on Settings → PHD2 → Allow Starship to command PHD2. With this off the link stays strictly read-only. With it on, a sequence that enables guiding can drive PHD2 — nothing commands PHD2 unless a plan asks for it.
Commands mirror the set an observed Voyager rig sends: set the guide exposure (snapped to the nearest duration PHD2 actually supports), start guiding and wait for settle, dither and wait to re-settle, and stop guiding.
Auto-start (unattended rigs)
Auto-start PHD2 lets an unattended rig come up with no human at the guider. When it's on, Starship launches PHD2 if it isn't already running, selects the Equipment profile you name (by profile name or numeric id), and — if Connect equipment on start is ticked — connects PHD2's guide camera and mount. Fill in the PHD2 executable path (the full path to phd2.exe) so Starship can launch it; Start delay is how long to wait after launch before connecting to PHD2's server.
Off (the default) means Starship only connects to a PHD2 you started yourself — it never launches or reconfigures it.
PHD2 launches on Starship startup or when you click Connect all — not on sequence start. Auto-start is also self-healing: if PHD2 crashes, it's relaunched on the next connect retry.
Guiding in a sequence
Open a sequence's Guiding tab and tick Enable guiding for this sequence. When guiding is enabled (and control is allowed), Starship:
- Sets the guide exposure and starts guiding once each target is centred, and waits for PHD2 to settle before the first frame.
- Dithers between subs at your cadence, waiting for guiding to re-settle each time.
- Stops guiding before the next slew, then re-starts guiding on the next target.
Binning comes from the PHD2 profile (the Guide binning dropdown can override it). If guiding can't start on a target — no star, settle timeout — that target is skipped rather than imaged unguided.
The Guiding tab options:
- Guide exposure (s) — Starship snaps this to the nearest exposure PHD2 supports.
- Guide binning — leave on "use PHD2 profile" or force 1×–4×.
- Dither between frames — nudge a small random offset every N subs, then wait for guiding to settle; averages out hot pixels and fixed-pattern noise.
- Dither every (exposures) — how many subs between dithers. - Dither amount (px) — dither size in guide-camera pixels. - RA-only dither — for setups where Dec backlash makes 2-axis dither slow to settle.
- Settle gate — how tight the guiding has to be before Starship treats a start/dither as done: settle within (px), settle for (s), and a settle timeout (s) after which the settle is considered failed. Voyager production values are 1 px · 10 s · 60 s.
Guiding as sequence actions
Beyond the Guiding tab, three action steps let you place guiding explicitly in a plan (e.g. in on-start / on-resume / on-end blocks):
- Start guiding — sets the exposure, starts guiding, waits for settle.
- Stop guiding — stops PHD2 capture.
- dither — dithers and waits for re-settle, using the plan's settle gate.
When PHD2 control is off, or the plan doesn't enable guiding/dithering, these steps record a no-op instead of failing.
Guiding precondition
If a plan enables guiding but PHD2 isn't connected (or control is off), the sequence fails fast with a clear message — pointing you to open PHD2 and connect the guide camera + mount (or hit Connect all) — instead of silently imaging unguided or spamming connection retries.
Guiding watchdog
Optional, off by default (Settings → PHD2 → Guiding watchdog). When on, it holds the next sub until guiding recovers, so the rig never starts an exposure under a lost or degraded guide star. Set a max guide RMS (0 = hold only on a lost star), a recover timeout after which the exposure step fails so the on-error policy decides, and a poll interval. It pairs with frame acceptance, which rejects a sub ruined mid-exposure.
Why peer-process
Two reasons: PHD2 is the de-facto standard and is mature, and keeping autoguiding in a separate process means a Starship crash doesn't take guiding with it.
Because the commands drive the mount, watch the first guided run on your rig — the command path is verified in code and unit-tested, but the live round-trip is only exercised on hardware.