Hello!
I am trying to hook up a Lakeshore 321 temperature controller to Sweepme! but I get an error message that the respective COM port does not respond.
First, has anyone a custom Lakeshore 321 device class because the device manager provides only Lakeshore 33x?
Second, the Lakeshore 321 is quite old so I also may have a COM adapter driver problem (on top of the missing device class).
if the Model 321 temperature controller does not work with our SweepMe! driver for the Model 33x series, it can be indeed due to a different set of programming commands.
You can find the programming manual here:
And you can compare with the source code of our SweepMe! driver here:
The Model 321 supports the “*IDN?” query (without quotation marks) which you could add to the driver to check whether a response is received.
If the first command of the 33x driver is not known by the 321 temperature controller, it would also not respond. Sometimes, you can at least see an error on the display of your instrument if a wrong command is used. This would be already a good indication that the command is at least physically transmitted.
If this does not work, it is more likely that the serial communication needs to be configured correctly. Does the instrument use the same baudrate, terminator character like the Model 33x series?
Do you maybe need a special nullmodem cable for the RS-232 connection?
Hope this helps. Let us know if you need further help. We also offer to support you with creating a SweepMe! driver.
Indeed, the failure of the initial communication was a hardware problem. So, I am sorry to have bothered you! But I provide my solution anyway here, in case other users have a similar problem:
First, one can either modify a SweepMe! driver or use the Lakeshore software Instrument communication utility to check whether the fundamental communication (command: *IDN?) works.
In my case, it did not. The Lakeshore 321 has a serial I/O RJ11 4p4c (I also read RJ10 or RJ9 somewhere) receptible (telephone cable with four contacts only) and I used a RJ11 to RS232 D-sub9 cable and a COM-USB adapter to connect it to my computer. The first cable was not wired according to the Lakeshore 321 manual pinout description and that’s why I did not get the communication going in the first place. I resoldered the connections according to Fig. 6-8 in the manual.
Now, I am adapting the Lakeshore 33x device class and can share it here when I am done.
Thanks a lot Anton, that you shared all your experience with debugging the problem here! Always helpful for other users to see which problems can occur and how to tackle them.
Good luck with the driver creation!
Hej Axel!
I adapted the Lakeshore 33x device class and it can now operate my old Lakeshore 321. I share it here in case someone wants to operate such a device. It only includes the temperature set, get and sweep mode (the functions would most people use, I guess). The device could also be run sweeping the heater output power but this needs to be added if required.
Attention: The “default” SweepMe! port settings do not work and that’s why one always gets a port error message when loading the driver. You have to navigate to Tools/Port manager and set the COM specifications as detailed in my file (baudrate = 1200 etc.).
Anton, that’s great that you have been able to modify the driver and make it working for the Lake Shore 321.
Thanks for posting the driver here!
Regarding the baudrate, we should figure out why the driver does not work out of the box.
Basically, you can use the variable self.port_properties to define a dictionary that tells the Port manager of SweepMe! which baudrate, timeout, terminator/EOL to use.