Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Lab Brick LMS Synthesizer: Silently unstable with newer 64bit drivers #124

Open
JeanOlivier opened this issue Feb 22, 2021 · 0 comments
Open

Comments

@JeanOlivier
Copy link

JeanOlivier commented Feb 22, 2021

Description:

The Lab Brick LMS Synthesizer Labber driver appears, at first sight, to be compatible with the newest 64bit vnx_fmsynth.dll available on the Vaunix website as long as the "Run in 32bit mode" flag is set to False.

However, random "silent crashes" can happen in this situation, with the source behaving erratically even though everything looks fine within the instrument server. E.g. there can be a wrong output state, frequency or power depending on the situation, but Labber behaves as if all was fine.

For reference, this "silent crashes" situation occurs with the 64bit vnx_fmsynth.dll found in the "LMS Win64 SDK 6-16-18_v1.zip" archive obtained through Vaunix's support. The md5 checksum of the tested version of the dll is 6ac4a10bee16422cb4ba830f29c992fe.

Reproducing the issue:

To reproduce the issue, one can simply launch a lot of measurements in quick succession via Labber or manually spam the device with commands by loading the provided python interface like this (where 12345 is the device id of the source):

import LabBrick_LMS_Wrapper as LB
labbrick = LB.LabBrick_Synthesizer()
labbrick.initDevice(12345)
 
i=0
while True:
    print("Iteration:,", i)
    i = i+1
    try:
        labbrick.setRFOn(False)
        labbrick.setFrequency(6e9)
        labbrick.getRFOn()
        labbrick.getFrequency()
        labbrick.setRFOn(True)
        labbrick.setFrequency(4.5e9)
        labbrick.getRFOn()
        labbrick.getFrequency()
    except:
        labbrick.setFrequency(3e9)
        labbrick.setRFOn(True)
        labbrick.closeDevice()

The source is typically crashed after a few thousand iterations.

A proper fix would most likely only involve this LabBrick_LMS_Wrapper.py wrapper.

Workaround:

Loading an older driver in 32bit mode is a viable workaround until the issue is fixed.
For reference, the 32bit version of vnx_fmsynth.dll found in the "LMS Win32 ANSI SDK 6-16-18_v1.zip" archive obtained through Vaunix's support, with md5 checksum eb59aaf900c14a8f806242d59b6a4df8, seems to be stable using the code snippet provided above.

However, as newer driver normally come with bug fixes, new features, and improved stability, it'd be ideal to have proper support for the newest 64bit drivers.


Edit:

It turns out that the Labber driver still crashes using the 32bit Vaunix DLL, but it seems to happen less often.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant