The firmware is up to date (1.01.01.33R3).
The latest guide from Siglent makes use of Python 2.7 and an outdated version of PyVISA (1.4) which cannot be installed anymore (at least with PIP) but I'm using the equivalent code with Python 3 and PyVISA 1.12.0.
Thanks for pointing to the VISA backend: I'm using pyvisa-py (0.5.3) and it seems to be the only backend with this problem: the *IDN? query is successful in the following cases:
- Ethernet with pyvisa-py on Linux
- USB with NI-VISA application on Windows (NI-VISA 2022 Q3)
- USB with python-usbtmc on Linux
I'd really like to get this working in PyVISA on Linux: it's by far the easiest and most maintained solution. But no luck so far:
- With pyvisa_py backend it crashes the device
- With librevisa backend it doesn't work (known issue: this library doesn't implement viParseRsrcEx and the library is unmaintained)
- With NI-VISA backend: I cannot install NI-VISA on my system as it's not compatible with the latest Linux kernels. Haven't tried the Keysight version but I expect similar problems since they don't support the latest Linux versions.
I'll bring this to the PyVISA developers, hopefully the pyvisa_py backend can be fixed (though I suppose the bug could also be in the device firmware and only triggered by pyvisa_py for some reason).
Here's a minimal example to reproduce the freeze if someone wants to try (you need to install the pyvisa, pyvisa_py and pyusb Python packages):
#!/usr/bin/python3
import pyvisa as visa
rm = visa.ResourceManager('@py')
# Replace the serial number with your device's
addr = 'USB0::0xF4EC::0x1103::SDG1XDCX6R2773::0::INSTR'
device = rm.open_resource(addr)
(This is basically the initialization code from
https://int.siglent.com/resource-detail/27/ . See also
https://www.siglenteu.com/application-note/programming-example-create-a-stair-step-waveform-using-python-and-pyvisa-using-lan/ for another example.)
Even if the bug is in pyvisa_py maybe Siglent should fix the firmware to avoid the freeze... If I look at the Linux kernel messages when I connect the device with USB, there's definitely something that looks wrong:
[17263.890859] usb 1-4: new high-speed USB device number 25 using xhci_hcd
[17265.203020] usb 1-4: device descriptor read/64, error -71
[17265.497789] usb 1-4: config 1 interface 0 altsetting 0 bulk endpoint 0x81 has invalid maxpacket 64
[17265.497804] usb 1-4: config 1 interface 0 altsetting 0 bulk endpoint 0x1 has invalid maxpacket 64
[17265.538695] usb 1-4: New USB device found, idVendor=f4ec, idProduct=1103, bcdDevice= 0.20
[17265.538702] usb 1-4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[17265.538705] usb 1-4: Product: SDG1032X
[17265.538707] usb 1-4: Manufacturer: Siglent
[17265.538708] usb 1-4: SerialNumber: SDG1XDCX6R2773
(See errors in lines 2,3,4)