Skip to content

Filter wheel

A filter wheel selects which optical filter sits in front of the camera for an exposure. SkyNode treats filter wheels as independently-controlled devices that the optical imaging task executor commands between exposures.

Config shape

{
  "device_type": "filter_wheel",
  "driver": "ascom" | "maxim" | "simulator",
  "driver_configs": {
    "ascom":     { /* see below */ },
    "maxim":     { /* see below */ },
    "simulator": { /* see below */ }
  }
}

The slot-to-filter mapping is not in the device config — it's managed centrally on the hub (FilterWheelPosition records linking filter wheel slots to Filter records). The task executor uses that mapping to pick the correct slot for a request's selected filter.

Drivers

ascom — production

For any ASCOM-conformant filter wheel on Windows.

"ascom": {
  "prog_id": "ASCOM.FLI.FilterWheel"
}
Key Meaning
prog_id ASCOM ProgID of the filter wheel driver. Examples: ASCOM.FLI.FilterWheel, ASCOM.QHYCFW.FilterWheel, ASCOM.Simulator.FilterWheel

maxim — production

For MaxIm DL-driven cameras that include the filter wheel as a sibling device. SkyNode commands the filter wheel through MaxIm's COM API.

"maxim": {
  "move_timeout_sec": 60.0,
  "poll_interval_sec": 0.5
}
Key Meaning
move_timeout_sec How long SkyNode waits for a filter-wheel move to complete before marking it stalled. Default 60 seconds; raise for big filter wheels with long mechanical settles
poll_interval_sec How often SkyNode checks MaxIm for move completion. Default 0.5 seconds

Notes:

  • The MaxIm filter wheel driver is paired with the MaxIm camera driver. Both bind to the same MaxIm process.

simulator — testing only

Paper filter wheel. Moves to any slot instantly and reports success.

"simulator": {}

Troubleshooting

  • "Filter changes don't happen between exposures." The task executor only commands filter changes when an exposure specifies a different filter. Verify with the camera dashboard control panel — manually select filters and confirm the wheel responds.
  • "Wheel reports the wrong filter." The slot-to-filter mapping on the hub (FilterWheelPosition records) is out of sync with the physical wheel. Update through the telescope settings page in the web app.
  • "Wheel takes forever to settle." Some wheels report "complete" before mechanical settling. If you see image vignetting or filter-misalignment artifacts, the move_timeout_sec isn't the issue — you need a filter-driver setting (in the ASCOM or MaxIm app) that holds the move- complete signal longer.