<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title>Xyphros electronic workshop</title>
	<link href="https://xyphro.de/blog/atom.php" rel="self" />
	<link href="https://xyphro.de/blog/" />
	<id>https://xyphro.de/blog/index.php</id>
	<updated>2026-05-13T00:42:34Z</updated>
	<author>
		<name>xyphro@gmail.com</name>
		<email>xyphro@gmail.com</email>
	</author>
	<entry>
		<title>WinUsbTmc - A simple interface for USBTMC based measurement devices</title>
		<link href="https://xyphro.de/blog/index.php?entry=entry130705-223439" />
		<link rel="alternate" type="text/html" href="https://xyphro.de/blog/index.php?entry=entry130705-223439" />
		<link rel="edit" href="https://xyphro.de/blog/index.php?entry=entry130705-223439" />
		<id>https://xyphro.de/blog/index.php?entry=entry130705-223439</id>
		<summary type="html"><![CDATA[In the past every decent measurement device had one of these bulky GPIB connectors to be able to control them with a PC.<br />This was a very handy feature and powerful automated measurement setups could be easily built.<br /><br />Nowadays there are many devices on the market with a USB connector. When you intend to make use of this feature, you will notice that you have to download and install a several hundred MB sized library which includes a driver for such devices.<br />Integrating this library into your own applications can be rather complex depending on your development environment.<br /><br />Is this really neccesary just to send commands and get a response from your device?<br /><br />At least I was not happy with this situation. <br /><br />After doing some research I noticed that these devices implement a certain USB class called USBTMC for which a well described documentation is available.<br /><br />The communication protocol is very simple and I started to write a small software module with a simple interface to talk to such devices. For this I needed only 2 days of work.<br />I called it WinUsbTmc and published it as Open source project under GitHub:<br /><br /><a href="http://github.com/xyphro/WinUsbTmc" >http://github.com/xyphro/WinUsbTmc</a><br /><br />The current status of the project consists of the following elements:<br />- A UsbTmc driver which can be used with all USBTmc measurement devices<br />- A command line utility to talk to your device from command line or batch file<br />- A Dll. In case you want to integrate UsbTmc communication in your product this is an easy interface to it<br /><br />and finally a Matlab interface.<br /><br />WinUsbTmc follows the KISS principle and everybody should be able to start communicating to his device in the matter within a few minutes.<br /><br />WinUsbTmc was tested succesfully with 3 devices:<br />- Rigol 1052E (Scope)<br />- Rigol DS2072 (Scope)<br />- Siglent SDG1020 (Function generator)<br /><br />While developing, it was also interesting to see that some devices don&#039;t implement the UsbTmc standard completely. E.g. some class functions which are mandatory according to the UsbTmc specification don&#039;t work with some devices.<br />Nevertheless, I tried to work around it and could use WinUsbTmc already in a automated test setup.<br /><br />In case you would like to participate: You are welcome. <br /><br />Adding interfaces for other tools like Matlab would be a nice thing to have, e.g. Labview, Visual C, Borland Delphi, ...<br /><br />]]></summary>
		<updated>2013-07-05T20:34:39Z</updated>
	</entry>
</feed>
