Skip to content

Camera

The camera captures the exposures that optical imaging observations produce. Skynet expects cooled CCD/CMOS cameras with controllable exposure time, gain, binning, and cooling setpoint.

Config shape

{
  "device_type": "camera",
  "driver": "ascom" | "maxim" | "simulator",
  "temperature_setpoint_tolerance": 0.5,
  "driver_configs": {
    "ascom":     { /* see below */ },
    "maxim":     { /* see below */ },
    "simulator": { /* see below */ }
  }
}
Key Meaning
temperature_setpoint_tolerance Degrees Celsius. SkyNode considers the camera "at temperature" when within ±this of the setpoint. Default 0.5. Tighten for high-precision photometry; loosen for cameras with twitchy cooling loops

Drivers

ascom — production

For any ASCOM-conformant camera on Windows.

"ascom": {
  "prog_id": "ASCOM.QHYCCD.Camera"
}
Key Meaning
prog_id The ASCOM ProgID of the camera driver. Examples: ASCOM.QHYCCD.Camera, ASCOM.FLI.Camera, ASCOM.ZWO.Camera, ASCOM.Simulator.Camera

Notes:

  • Like other ASCOM devices, the driver app needs to be installed and configured before SkyNode tries to load it. Make sure the camera connects from inside the ASCOM driver's own configuration dialog first.
  • Cooling, gain, offset, and readout-mode settings come through ASCOM's standard interface — what's exposed depends on the underlying driver.

maxim — production

For installations running MaxIm DL as the camera control surface. SkyNode binds to MaxIm via COM and uses MaxIm's exposure / cooling / filter wheel APIs.

"maxim": {
  "output_dir": "C:\\Users\\<user>\\AppData\\Local\\sky-node-desktop\\maxim",
  "readout_timeout_buffer_sec": 120.0,
  "poll_interval_sec": 0.5
}
Key Meaning
output_dir Directory MaxIm writes temporary FITS files to during exposures. SkyNode reads from here. Default is the user-data dir — usually fine; override if disk layout requires
readout_timeout_buffer_sec Extra time added to the requested exposure duration before SkyNode considers the exposure stalled. Default 120 seconds; raise for slow USB chains or large-sensor cameras with multi-minute readouts
poll_interval_sec How often SkyNode checks MaxIm for exposure readiness. Default 0.5 seconds; finer for short exposures, coarser to reduce COM chatter

Notes:

  • MaxIm DL must be running and licensed on the SkyNode host before SkyNode tries to talk to it.
  • MaxIm is also where the filter wheel binding typically lives — see Filter wheel.

simulator — testing only

Paper camera. Generates synthetic FITS frames with the requested exposure duration and reports back to the executor as if a real exposure happened.

"simulator": {}

Troubleshooting

  • "Camera never reaches setpoint." Two flavors: the cooling loop is genuinely slow (ambient too warm, fan or pump failing, TEC stage struggling), or the temperature_setpoint_tolerance is too tight. Check the cooling-curve telemetry in the dashboard's dashboard-controls-imager panel first.
  • "Exposure starts but never returns." Usually means readout timed out. Check readout_timeout_buffer_sec for MaxIm; for ASCOM, check the driver app's own diagnostics.
  • "Frames are saturated / black / blank." ADU values are an ASCOM/MaxIm driver-side concern. Verify with the driver's own capture tool first — SkyNode hands the frame through unchanged.
  • "Filter changes don't sync with exposures." Filter wheel ordering is enforced by the task executor; if exposures are going through the wrong filter, the filter wheel driver isn't reporting completion. See Filter wheel.