ASI178MM for infrared- and astro-photography
The ZWO ASI178MM is a mono USB3 camera with a 3096×2080 sensor (2.40 µm pixels) and a 14bit ADC — an excellent sensor for infrared, night-sky, and high-speed capture, sensitive well into the near-infrared range. The desktop app was written in C++ / Qt 6 to drive the camera from a Linux machine. The result is the infrared-camera project.
| Photo | Interval | Video |
|---|---|---|
![]() | ![]() | ![]() |
Three modes, one live preview
The application window shows the live preview on the left and all controls in a touch-friendly side panel on the right:
- Photo — single-frame stills. The exposure spans 32 µs to 60 s on a logarithmic slider with a range switch. Shots are saved as 8bit PNG or 16bit TIFF.
- Interval — back-to-back long-exposure sequences. The next shot starts interval seconds after the previous one finished.
- Video — 8bit H.264 MP4 or uncompressed 8/16bit
.serfiles that keep the sensor’s full bit depth.
The preview refreshes at roughly 30 fps in every mode and is accompanied by a 128-bin histogram. When pixels saturate, the histogram shows a ⚠ CLIPPED x.xx% warning and the clipped pixels are marked red directly in the preview.
What it is good for
- Infrared photography and video — using an infrared filter on the mono sensor enables near infrared photography and video recording.
- All sky camera — a fisheye lens plus interval mode produces timelapse material for the Milky Way, aurora, and cloud cover, with every frame saved at 8bit or 16bit.
- Astro photography — exposures up to 60s and fixed-interval sequences of 16bit TIFF stills provide stackable data for deep-sky imaging.
- High speed video — up to ~400 fps at smaller image sizes and 8-bit .ser format.
Under the hood
C++17, Qt 6 Widgets, OpenCV, and GStreamer on x86_64 Linux. Capture runs on a dedicated worker thread, while a separate thread renders the preview and histogram at 30 Hz. H.264 encoding is a GStreamer pipeline, and .ser writing is a small standalone writer for the LUCAM-RECORDER v3 format.
Source, build instructions, and a detailed README are in the repository


