I started getting some problems with data from the ASI120MC in my capture application, with the image “tearing” or undebayered data appearing in what ought to be debayered frames as in these two examples:
It turns out that the problem relates to capture speed, frame size and USB traffic levels. It’s possible to pretty much control it by using the
CONTROL_BANDWIDTHOVERLOAD option. In my current version of the interface library it takes parameters ranging from 40 to 100 and the default is 85. By lowering it to 45 I was able to get a steady image.
I’m really not sure what’s actually going on here. Perhaps buffers are getting overwritten whilst in use in the interface library or in the camera. It’s not at all clear to me what actual change the bandwidth overload control makes, nor what side-effects it might have either. I shall worry about that another time. I’d already intended to provide a dialog box with access to camera controls that the main application window doesn’t expose, so this will have to get added there when I get around to doing that part.