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_toleranceis too tight. Check the cooling-curve telemetry in the dashboard'sdashboard-controls-imagerpanel first. - "Exposure starts but never returns." Usually means readout
timed out. Check
readout_timeout_buffer_secfor 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.