Resolving USB Conflicts with Virtual COM Ports

If you run multiple USB devices that operate as virtual RS232 COM ports (the ubiquitous serial port standard) on Windows, you may have run into problems with conflicts between devices. An application may connect to the appropriate device when it’s the only one connected, only to “get confused” if there is another device sharing the PC. Happily, there are a few simple things you can try that will often resolve the problem.

9103s and Arduinos Playing Nice Together

9103 and Arduino USB Devices

A 9103 Picoammeter and Arduino

To most Windows applications, virtual COM ports (VCPs) all look the same. An application can open a port and and attempt to communicate with the connected device, but since there’s no fixed protocol – each device speaks its own “language”, any message sent can have undetermined effects if the device you’re communicating with is not the one your were expecting. Some applications simply connect to the first COM port available, other’s may provide a way to select the COM port your device is connected to – but you’re still responsible for figuring that out.

When manufacturers produce hardware for PCs they can apply for unique vendor ad product IDs for their device, and there are ways for applications to safely query these. But that only solves part of the problem. Many devices use third-party USB chips and drivers from companies like FTDI, so they share the same IDs. These devices look the same to a Windows client application, or to a person perusing the Device Manager in Control Panel.

RBD’s own 9103 Picoammeter utilizes FTDI’s popular USB VCP chips, as do many versions of the popular Arduino microcontroller boards, so these two sets of devices can be confused by client applications when used on the same PC. And s it turns out, they are often used together. Here are a few tricks for getting these device to play nice together.

Solution 1: Connect Each Device and Run Each Client in Order

Many applications require you to specify the port for the selected device. Others (like Actuel for the 9103) poll the COM ports in numerical order and check and connect to the first available. If these devices first check the vendor and product ID (like the 9103), they will at least skip ports that do not match. But they cannot distinguish between two devices using the same USB chip (like FTDI’s). Setting up a device connection / application order can solve this.

In the case of a 9103 / Arduino conflict, remove all other devices, then plug in the 9103 and power it on. Next run the Actuel software. The software will find and take control of the 9103 port, and once assigned, you can safely plug in the next device and run its client.

Another order might make more sense for your particular application. Experiment with your configuration, and there are more than two devices, try getting two working first. Document the process and just make sure it’s followed anytime you reboot / power-on.

Solution 2: Change the COM Port Number for a Particular USB Port

You can force Windows to use a different COM port number than the one automatically assigned. This may help with applications that select the lowest numbered port.

For example, if the 9103 is connected to COM4 and another FTDI device is on COM3, the 9103 client software may incorrectly select the device on COM3. Setting the 9103 to COM2 may allow you to now connect the devices and run the client applications in any order, depending on how those other devices / applications behave. Some experimentation may be necessary.

With the 9103 connected and turned on, run Control Panel / Device Manager, and find the selection for “Ports (COM and LPT)”, click and you should see an entry for “USB Serial Port (COM4)” (the COM# may be different of course). Double-click for properties.

The COM port settings for the 9103 USB VCP

The COM port settings for the 9103

Now select the “Port Settings” tab, and click the “Advanced…” button. From this window you can select a new COM port assignment:

Choosing a COM port for the 9103

Choosing a COM port for the 9103

Keep in mind that plugging a device into different USB port will change the COM port assigned to it.

More Info

Of course, you’ll want to ensure you have the latest drivers installed. For FTDI, they can be found here:

http://www.ftdichip.com/FTDrivers.htm

If you’re thinking of programming your own serial port application, here’s a quick tutorial at the API level. Many popular languages include code for VCP programming, and third-party libraries are available:

http://xanthium.in/Serial-Port-Programming-using-Win32-API

 

9103 Picoammeter bias modes

9103 Picoammeter bias modes

This post explains the 9103 picoammeter bias modes and also explains the concept of “floating”.

There are 4 picoammeter bias modes:

No bias – the current source is connected directly to the picoammeter input

No_bias_functionality

Internal – a low noise DC supply (two 45 V DC batteries in series) provides a bias between the current source and the input of the picoammeter. This application is typically used for providing a +90V bias to a target in a vacuum chamber in order to prevent secondary electrons from leaving the sample. Adding the 90V bias results in a more accurate measurement for both electron and ion current. It is also possible to use regular 9V batteries and so lower internal bias voltages are possible. Batteries are used for the internal bias as they are very clean with no ripple.

Internal_bias_functionality

External – An isolated low noise voltage source (provided be the user) is inserted between the current source and the input of the picoammeter. Isolated means that the voltage source is not referenced to ground. A typical voltage supply has the negative lead referenced to ground internally. If you were to measure the resistance of the supply negative lead to the chassis ground it would have a resistance of less than 1 ohm. On an isolated supply the resistance between the negative lead and the chassis ground would be open.   The maximum voltage that can be applied in this mode is 600V DC (that is the rating of the BNC input on the 9103 USB picoammeter).

External_bias_functionality

Floating – In this mode the picoammeter signal ground is raised from near chassis ground up to a value as high as 1500V DC.   If you were to measure between the signal input and the signal ground reference the voltage would be low (under 1V typically). However measuring the DC voltage from the signal reference to chassis ground the voltage would be high, the floating supply value.

Floating the 9103 Functionality

When floating the 9103 USB picoammeter there are some safety considerations. First of all, the input to the 9103 is changed from a BNC to either a SHV or MHV connector (user specified). These connectors are rated for up to 5kV. The recorder output on the back of the 9103 also floats. For example if you apply a floating voltage of 1000V the recorder output would also measure 1000V with respect to chassis ground. So if you are using the recorder output and also floating the 9103 the meter that you are measuring the recorder output with also needs to be isolated from ground. Finally, to prevent voltage spikes a current limit resistor is placed between the floating supply and the 9103 signal ground.   The floating mode is typically used to measure the collector output of an electron multiplier or a Faraday cup.

The floating mode cannot be used with either the internal or external bias modes.

For all modes of operation the chassis ground of the 9103 USB picoammeter should be connected to the ground on the PC or chamber.

If you would like more detailed information please contact us via email at tech at rbdinstruments.com

9103 Actuel Beta: Data Cursor and Auto-save

UPDATE: A new Actuel Beta featuring a data cursor and auto-save is now available.

Actuel, RBD’s Windows application for controlling the 9103 USB Picoammeter, has currently been updated with some great new features. While the official release is a few weeks away, the beta release contains some new features in addition to the previously previewed micro-window display.

Auto-Save while recording:

In response to customer requests, we’ve added a feature to automatically save data while recording. The auto-save feature comes in handy when leaving the 9103 unattended for long periods. While rare, brownouts, etc., can cause a temporary communication failure between the 9103 and PC, and USB failures can sometimes lock-up or crash a system. Auto-save ensures that data is stored to a text file every 5 minutes, and again when recording is stopped (for completeness).

Auto-save always works automatically when multiple 9103 picoammeters are synced together. Simply select the option for all instances of Actuel, then select the file name (and keep the Data window open for each instance you want to record/save from). The data from each 9103 will be appended to the file sequentially, separated by the device identifier.

9103 Actuel Auto-save Feature

Data Cursor:

Sometimes it’s handy to see the exact data at a particular point in time during or after data acquisition. While high sampling rates make it difficult to mouse-over every data point in large data sets, the data cursor can help track current vs. time more easily without the need to export data as text. By simply hovering over the graph, a vertical line appears, while current and time is displayed in the upper right-hand corner of the graph window.

actuel-data-cursor

As always, Actuel is free for all owners of a 9103 Picoammeter. Meanwhile, you can download the most recent version of Actuel here:

Download Actuel for the 9103 USB Picoammeter

More Information on the 9103 USB Picoammeter