MDA inter-frame interval fixed at ~1.5 s regardless of settings — AlliedVision Alvium USB3
Summary
When running Multi-Dimensional Acquisition (MDA) with the AlliedVisionCamera device adapter, each frame takes approximately 1.5 seconds regardless of the configured interval or exposure time. The CoreLog shows AcquisitionFrameRate being re-applied to the camera repeatedly between every frame, which appears to be the cause of the fixed overhead.
This is a separate issue from #961 (live stream fix, resolved in #963), which was recently fixed and confirmed working.
Environment
- OS: Windows 10 and Windows 7 (reproduced on both)
- MicroManager version: [20260624]
- Vimba X SDK version: [2026-1]
- Camera model: Allied Vision Alvium U-158m (USB3) — reproduced with two independent cameras on two independent machines
- Device adapter: AlliedVisionCamera
Steps to reproduce
- Configure AlliedVisionCamera in MicroManager
- Confirm camera runs at correct frame rate in Live view (e.g. 10 fps at 100 ms exposure) ✅
- Open Multi-Dimensional Acquisition dialog
- Set Time Points with any interval (e.g. 333 ms) and any exposure (e.g. 100 ms)
- Run MDA → frames are acquired at ~1 frame per 1.5 seconds regardless of settings ❌
Expected behavior
MDA respects the configured interval and exposure. At 100 ms exposure with 333 ms interval, frames should be acquired approximately every 333 ms.
Actual behavior
Frames are acquired at a fixed ~1.5 second interval regardless of:
- Exposure time
- Interval setting
- Image resolution
- Bit depth (tested at 8-bit)
- Whether saving to disk or keeping in RAM
- Whether an external Arduino trigger is used or not
Live view runs correctly at 10 fps (100 ms exposure), confirming the camera and USB transfer are not the bottleneck.
CoreLog evidence
The CoreLog shows AcquisitionFrameRate being re-applied to the camera approximately every second during MDA, interleaved with repeated invalid value errors for file-access properties:
2026-06-26T12:36:49.297416 [dbg,App] Notification for Device: DEV_1AB22C021439 Property: AcquisitionFrameRate changed to value: 29.666014
2026-06-26T12:36:50.803888 [dbg,App] Notification for Device: DEV_1AB22C021439 Property: AcquisitionFrameRate changed to value: 29.666014
2026-06-26T12:36:52.309689 [dbg,App] Notification for Device: DEV_1AB22C021439 Property: AcquisitionFrameRate changed to value: 29.666014
...
2026-06-26T12:36:57.646188 [IFO,dev:DEV_1AB22C021439] Device adapter requests invalid values (0, 0) for property: FileAccessOffset
2026-06-26T12:36:57.646342 [IFO,dev:DEV_1AB22C021439] Device adapter requests invalid values (0, 0) for property: FileSize
2026-06-26T12:36:57.646342 [IFO,dev:DEV_1AB22C021439] Device adapter requests invalid values (0, 0) for property: FileAccessLength
The AcquisitionFrameRate property is being set to the same value (29.666014) on every cycle, suggesting MicroManager's MDA engine is re-applying all camera properties between frames and the adapter is not skipping no-op property changes. Each re-application appears to trigger an internal camera reset that takes ~1.5 seconds.
The FileAccessOffset / FileSize / FileAccessLength invalid value errors are likely a secondary issue — the adapter appears to be polling file-transfer properties that are not applicable during live acquisition.
Hypothesis
MicroManager's MDA engine re-applies all channel properties between each frame. The AlliedVision adapter does not guard against re-applying a property when the value has not changed. Setting AcquisitionFrameRate on the Alvium likely causes the camera to restart its internal timing engine even when the value is identical, introducing ~1.5 s of overhead per frame.
A possible fix would be to cache the last-set value of AcquisitionFrameRate (and other expensive properties) in the adapter and skip the SDK call when the value has not changed.
Additional context
Reproduced across two cameras and two machines with different OS versions, ruling out hardware fault or local configuration. Happy to test patches or provide additional log excerpts.
Claude.io helped me get the info and writing this issue.
MDA inter-frame interval fixed at ~1.5 s regardless of settings — AlliedVision Alvium USB3
Summary
When running Multi-Dimensional Acquisition (MDA) with the AlliedVisionCamera device adapter, each frame takes approximately 1.5 seconds regardless of the configured interval or exposure time. The CoreLog shows
AcquisitionFrameRatebeing re-applied to the camera repeatedly between every frame, which appears to be the cause of the fixed overhead.This is a separate issue from #961 (live stream fix, resolved in #963), which was recently fixed and confirmed working.
Environment
Steps to reproduce
Expected behavior
MDA respects the configured interval and exposure. At 100 ms exposure with 333 ms interval, frames should be acquired approximately every 333 ms.
Actual behavior
Frames are acquired at a fixed ~1.5 second interval regardless of:
Live view runs correctly at 10 fps (100 ms exposure), confirming the camera and USB transfer are not the bottleneck.
CoreLog evidence
The CoreLog shows
AcquisitionFrameRatebeing re-applied to the camera approximately every second during MDA, interleaved with repeated invalid value errors for file-access properties:The
AcquisitionFrameRateproperty is being set to the same value (29.666014) on every cycle, suggesting MicroManager's MDA engine is re-applying all camera properties between frames and the adapter is not skipping no-op property changes. Each re-application appears to trigger an internal camera reset that takes ~1.5 seconds.The
FileAccessOffset / FileSize / FileAccessLengthinvalid value errors are likely a secondary issue — the adapter appears to be polling file-transfer properties that are not applicable during live acquisition.Hypothesis
MicroManager's MDA engine re-applies all channel properties between each frame. The AlliedVision adapter does not guard against re-applying a property when the value has not changed. Setting
AcquisitionFrameRateon the Alvium likely causes the camera to restart its internal timing engine even when the value is identical, introducing ~1.5 s of overhead per frame.A possible fix would be to cache the last-set value of
AcquisitionFrameRate(and other expensive properties) in the adapter and skip the SDK call when the value has not changed.Additional context
Reproduced across two cameras and two machines with different OS versions, ruling out hardware fault or local configuration. Happy to test patches or provide additional log excerpts.
Claude.io helped me get the info and writing this issue.