← All articles

13 August 2026  ·  🔭 Astronomy

Thirty out of thirty – the second night with Astro PM

After the first session I had a list of six items. I worked through four of them before it got dark in Texas again. This time M16, the Eagle Nebula, was the target – thirty frames in narrowband, ten per channel.

This is what was on the disk in the morning:

30

lights out of 30 planned

15

flats

15

flat-darks

The three findings, one night on

The three findings from the first night set against their state in the second: gain now 125 throughout, 15 flat-darks instead of none, 30 of 30 subs instead of four of five
Three changes, three items done. All figures from the two logs.

The gain is right. In Astro PM, under Equipment → Camera, I had 150 sitting there by mistake while my N.I.N.A. profile is on 125. In this night's log the 150 does not appear once – lights, flats, flat-darks, plate solving and autofocus all ran on Gain: 125; Offset 50 without exception. One field in a form, as suspected.

The flat-darks are there – and by a route I had ruled out in the last article. I had written that Astro PM fills in only the Trained Flat Exposure, and that the dark instruction therefore has to be given a filter by hand. This night's log says otherwise:

AstroPM | Flats: Trained Flat Exposure set to HA G125 O50 1×1
AstroPM | Flats: Trained Dark Flat Exposure set to HA G125 O50 1×1

Two lines, for every filter. Astro PM writes into both instructions. That makes my explanation from the last article – that the dark instruction absolutely needs a filter set by hand – obsolete.

This log does not say what actually went wrong on the first night either; all that is established is that it worked this time. My guess is the position: back then the dark instruction sat in After Flats, outside the loop that runs per combination – and whatever sits outside gets nothing assigned to it. Now it is inside the loop, and the assignment happens by itself.

The result: 15 flats and 15 flat-darks in two minutes and 55 seconds. The panel brightness values were 768 for Hα, 256 for OIII and 1024 for SII – exactly the values from the trained table, this time at the gain they were found for. The darks land in _CALIB\DARK\3.00s_G125\.

The five per filter are deliberate: for a test run I wanted to see whether the mechanism engages at all, not wait twenty minutes for calibration frames. For normal operation I will go back up – in the flat panel article I worked out that below ten to fifteen frames the outlier rejection during stacking becomes unreliable.

Sequential instead of Time-Aware. On the first night the Time-Aware mode threw away the green sub to stay on schedule. This time the playback mode was set to Sequential – and there is not one Time-sync message in the whole log. All thirty planned exposures were taken.

The first meridian flip under Astro PM

From Texas, M16 culminates at around 44 degrees and crosses the meridian in the middle of the session. A clean flip is nothing new for me – in the old sequencer it has run reliably since the end of July, after a lesson learned the hard way. What is new is that it now happens inside the Astro PM container, fired by a trigger that hangs on the “While Safe” container. That was precisely the point where I had trusted the plugin least.

Timeline of the meridian flip: trigger at 22:25:45, ten minutes with tracking off, flip from pierWest to pierEast, autofocus, recentring, new guide star, done at 22:41:42
Sixteen minutes, eleven steps, no intervention.

The trigger fired at 22:25:45 with six seconds left before its own limit. Then: guiding off, tracking off, ten minutes of waiting until the target really was past the meridian, slew to the other side of the pier on the first attempt, autofocus, plate solving back onto the target, new guide star, guiding on. At 22:41:42 the log read:

NightSummary: Event logged — MeridianFlip: Meridian flip completed successfully

Ten of the sixteen minutes are pure waiting – that is not sluggishness but design: N.I.N.A. deliberately lets the target cross the meridian rather than fidgeting about at the changeover point.

The night in figures

The block ran from 22:00:00 to 01:05:43, so 186 minutes. Of those, 150 minutes had the shutter open – 81 per cent. As for where the rest went, the log parser works it out itself at the end:

overhead categories: MeridianFlip:1(958s), Autofocus:3(821s),
  CameraTemp:1(538s), ImageSave:60(108s), FlatPanel:23(54s),
  Wait:1(30s), MountOps:3(26s), CameraDownload:30(9s),
  PlateSolve:4(3s), Guiding:2(0s)

Two caveats about that list. It covers the whole session, not just the block – the 538 seconds of CameraTemp are the camera warming up after the last flat and lie entirely outside it. And the 821 seconds of autofocus count only the three runs after filter changes; the fourth belonged to the flip and sits inside its 958 seconds. Together, all four autofocus runs come to around 17.6 minutes.

So of the 36 minutes in the block with the shutter closed, just under 30 go to the flip and autofocus. The rest is saving, dithering and filter changes.

Incidentally: the Night Summary report itself uses a different window and arrives at coverage=59.2% – there the time from 21:37 counts as well, including the wait for M16.

The small stuff has come right as well: Night Summary runs before the disconnect and writes the device names into the report instead of last week's n/a lines. Except for Rotator=n/a – I simply do not have one.

Two new things

The cloud token had expired. While building the schedule at 21:37:

AstroPM | Couldn't reach the Astro PM cloud — using this NINA
          install's local scheduling settings.
AstroPM | Cloud error: Invalid or expired sync token., falling back to cache
AstroPM | Using cached targets (fetched 6.9 hours ago)

Without consequence, because the cache was from the same afternoon. The cause: I had bought the full licence the evening before, and that invalidates the old sync token. After the purchase you have to generate a new one and enter it in the plugin – done, the connection is back. This is not in the documentation; the token is described there only as an account-wide key.

Autofocus after filter change is still running. That was on my list and is the item I did not work through. Three of the four runs came from this trigger, the fourth belonged to the flip. With 300-second subs those not-quite fourteen minutes weigh less than they would in short sequences – so it is no longer urgent.

Still to do

Turn off autofocus after filter change, keep the temperature trigger.

Open the flat panel cover later. It opened at 21:37 again, although the first exposure did not come until 22:05.

Check whether Siril finds the flat-darks. They sit in the calibration library as IMAGETYP = DARK at three seconds. My stacking script has a category of its own, DARKFLAT – whether it assigns the three-second darks to the flats by itself or whether I have to help it along, I will only know after the first stack.

After two nights it looks like this: the automation itself did nothing wrong – in either of them. What went wrong was a wrong value in a form, an instruction in the wrong place, and a token that wants renewing after a licence purchase. All of them things you can work through. That is a reassuring sort of fault.

I did the analysis of the log, as has become my habit, together with Claude AI.

Sources

Astro PM – Playback Modes · Automated Flat Handling
N.I.N.A. log of the night: 20260812-143006-3.2.0.9001.11680-202608.log

🔭 The night before: The first session with Astro PM →  ·  How the sequence is built: My start with Astro PM  ·  The rig behind it: My rig @ Starfront in Texas