Update,
I have the system up and running and tested the cameras. I had to upgrade to Windows 10 of course, as this hardware doesn't support Windows 7 anymore. Thankfully all the software works the same in Windows 10 without any problems. This again is to look at my old hardware and old laptop moving forward to see what matters most to maintain maximum throughput of our typical planetary imaging CMOS cameras to have the maximum FPS at both the maximum resolution and the minimum resolution to see where the bottlenecks exist and what hardware influences what.
My previous Intel i3 CPU laptop with USB3 and SSD was not achieving maximum FPS on any of the cameras, but was faster than my oldest-older stuff.
My desktop AM3/AM2+ platform with DDR2 memory and a Quadcore CPU (Athlon II x4 600e AM3) was the slowest even with a PCIe USB3 card installs.
I recently picked up some modern hardware to really test what matters. The focus was on the system bus and the architecture between the devices, so the motherboard and memory lanes basically to allow for bandwidth to not be the limit and instead let the hardware (CMOS camera in this case) be the limit. I wanted to see if CPU mattered, so I got the lowest end desktop class APU I could that was modern (AM4, Zen Architecture). This is still not the latest hardware, but it's recent enough to be reasonable. I went with an AMD platform because of cost, while there are also reasonably low cost Intel platforms for this the motherboards were more costly, so I just went with what provided overall value for cost and went with an APU to avoid needing any sort of display output extra in the system (not that it matters, just adds to cost and power consumption).
$185 hardware I picked up, new:
MSI B450M PRO-M2 Max (AM4 motherboard, 450x chipset, USB3.1 Gen II)
TeamGroup T-Force Vulcan Z DDR4 16Gb (8x2) 3000Mhz CL16 RAM
AMD Athlon 3000G (Zen series APU, 2 Cores, 4 Hyperthreads, 35watt, 3.5Ghz)
The hardware already provided is the Samsung EVO 860 1TB SSD that the cameras will write to.
This is a very low power system in general, with humble gear. The goal again was to stress if the CPU mattered for acquisition and throughput of the CMOS cameras. I've used higher end CPUs and it didn't matter much. What does matter is the system bus and memory lanes and then finally the medium that is being written to, so ideally a SSD or NVMe M.2 SSD to avoid any bottlenecking and dropped frames.
Cameras tested (ZWO):
ASI224MC (IMX224)
ASI290MM (IMX290LQR)
ASI174MM (IMX174)
ASI183MM (IMX183)
I collected their documented throughput specs to compare my data to.
Capture Parameters and Method:
I used FireCapture (latest release). I did a fresh install with default values to avoid any custom stuff interfering. I left the preview at default. I enabled High Speed in the camera USB options and set the traffic to 100 on all cameras.
The test is 60 seconds capture time. Real capture, not preview. No gamma or any overlay used.
I captured at the maximum resolution of the sensor and the documented lower resolution of 320x240p on each sensor (as they listed specs down to this resolution).
Captures are 8/10 bit.
I let FireCapture give me the averages and information in log files.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Data and Observations:
ASI224MC (IMX224)
Code:
IMX224 Sensor Specs from ZWO
1304x976 150 fps
320x240 577.9 fps
Test Platform Throughput
FireCapture v2.6 Settings
------------------------------------
Camera=ZWO ASI224MC
Duration=59.985s
Frames captured=8961
File type=SER
ROI=1304x976
FPS (avg.)=149
Shutter=1.000ms
Gain=527 (87%)
FireCapture v2.6 Settings
------------------------------------
Camera=ZWO ASI224MC
Duration=60.012s
Frames captured=34338
File type=SER
ROI=320x240
FPS (avg.)=572
Shutter=1.000ms
Gain=527 (87%)
Results: Essentially achieving theoretical throughput at maximum resolution and a minute difference at lowest resolution, for a 0.0103% difference.
ASI290MM (IMX290LQR)
Code:
IMX290LQR Sensor Specs from ZWO
1936x1096 170 fps
320x240 737.5 fps
Test Platform Throughput
FireCapture v2.6 Settings
------------------------------------
Camera=ZWO ASI290MM
Duration=60.000s
Frames captured=10202
File type=SER
ROI=1936x1096
FPS (avg.)=170
Shutter=1.000ms
Gain=473 (78%)
FireCapture v2.6 Settings
------------------------------------
Camera=ZWO ASI290MM
Duration=60.000s
Frames captured=43665
File type=SER
ROI=320x240
FPS (avg.)=727
Shutter=1.000ms
Gain=473 (78%)
Results: Achieved maximum theoretical throughput with the maximum resolution, nearly achieved maximum on the lowest listed resolution (727 fps vs 737.5 fps) for a 0.0144% difference.
ASI274MM (IMX174)
Code:
IMX174 Sensor Specs from ZWO
1936x1216 164 fps
320x240 740 fps
Test Platform Throughput
FireCapture v2.6 Settings
------------------------------------
Camera=ZWO ASI174MM
Duration=60.007s
Frames captured=9814
File type=SER
ROI=1936x1216
FPS (avg.)=163
Shutter=1.000ms
Gain=377 (94%)
FireCapture v2.6 Settings
------------------------------------
Camera=ZWO ASI174MM
Duration=60.006s
Frames captured=43749
File type=SER
ROI=320x240
FPS (avg.)=729
Shutter=1.000ms
Gain=377 (94%)
Results: Theoretical throughput achieved at maximum resolution, 0.0061% difference and at the lowest resolution a difference of 0.0151%.
ASI183MM (IMX183)
Code:
IMX183 Sensor Specs from ZWO
5496x3672 19 fps
320x240 308.17 fps
Test Platform Throughput
FireCapture v2.6 Settings
------------------------------------
Camera=ZWO ASI183MM(ASI183MM)
Duration=60.006s
Frames captured=1142
File type=SER
ROI=5496x3672
FPS (avg.)=19
Shutter=1.000ms
Gain=398 (88%)
FireCapture v2.6 Settings
------------------------------------
Camera=ZWO ASI183MM(ASI183MM)
Duration=60.013s
Frames captured=18492
File type=SER
ROI=320x240
FPS (avg.)=308
Shutter=1.000ms
Gain=398 (88%)
Results: Theoretical throughput maintained at maximum resolution (100%) and at lowest resolution (308 vs 308.17, a 0.0005% difference likely only exists due to rounding in log file).
Observation conclusion, CPU has no impact on this throughput. The chipset, architecture, memory bandwidth, system bus and the write-to medium matter the most. I noted that maximum resolution throughput was achieved on all of the tests and that the only differences were found, even though they were all around the 0.01% range (completely negligible), it was only found when reducing to 320x240fps and increasing potential FPS in the 500~700 fps range. This may indicate averages because of more data collected over time, or maybe it indicates the small file write speed of the SSD is showing a tiny bit here. Either way, the differences are completely not noticeable and barely measurable, so I am happy with the current performance and don't see a reason to get fastest modern multi-core CPU components at the moment for acquisition purposes like this with the CMOS cameras. Modern architecture, system bus speed and memory speed and SSD write speed I think matter in this environment and purpose most.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Real Time Flat Frame Overlay
I threw in an extra test that would show a difference in throughput as the CPU would be involved (I think?). I often use real time flat frame overlay when doing some solar imaging at full FOV and this requires CPU performance and it slows down throughput because it takes the data stream, applies the overlay and then writes it to the write-to medium, so it adds another pathway and involves the CPU to do some minor work. This did show performance impact. Again, only theory in terms of how the CPU is involved.
I'm not sure how the flat frame overlay application works under the hood, maybe Emil could shine light on that to us if he's around (and thanks for your awesome software!!), so I'm only speculating that it's CPU intensive to do this (it may not be, it may be simply adding micro-seconds of time to each frame to avoid dropping frames, or maybe its dropped frames difference, etc).
I used the ASI290MM camera and a real time flat overlay with the following measurements and observations:
Code:
IMX290LQR Sensor Specs from ZWO
1936x1096 170 fps
IMX290LQR Sensor with Flat Overlay in FireCapture
FireCapture v2.6 Settings
------------------------------------
Camera=ZWO ASI290MM
Duration=60.015s
Frames captured=6284
File type=SER
ROI=1936x1096
FPS (avg.)=104
Shutter=1.000ms
Gain=484 (80%)
Results: Originally achieved 170 fps, 100% of theoretical spec, however with the flat overlay and CPU involvement, this dropped to 104 fps of 170 potential fps for a 63.4% throughput performance. This is not good! The CPU made a major impact here, costing many frames over the course of time, losing 66 fps recorded due to flat frame overlay processing in the pathway.
This can be eliminated by not doing the real time overlay and instead doing a separate flat video (this mainly applies to solar and potentially lunar, rarely if ever planetary). This could be potentially alleviated with a faster performing CPU with more cores, but I would need to get one to test this concept. If I do get another CPU I will test it. Until then, I think I will do separate flat frames to avoid losing 66 fps, which matters a lot in solar with limited time to capture before features change.
Very best,