VINT Communication Speed Guide

From Phidgets Support

Video


Introduction

VINT devices communicate via a digital communication protocol. Data is transmitted bidirectionally on the white wire of a Phidget Cable. Second-generation devices can communicate at significantly higher speeds.

Upgrades to VINT now allow certain second-generation devices to communicate at significantly faster speeds.

Minimum VINT Communication Speed (kbps) Maximum VINT Communication Speed (kbps) Fastest Data Rate Possible (Hz)
VINT (First Generation) 10 100 50
VINT (Second Generation) 10 1000 1000+

The increased VINT communication speed results in higher data rates, as shown in the table above. It also results in significantly lower latency when sending commands to devices.

Design Considerations

Determine the VINT Communication Speed Max

The VINT Communication Speed Max property can be found in the specifications tab on your device's product page.

Visit the product page for your device, and navigate to the Specifications tab. Find the VINT Communication Speed Max property. If the value is 100kbit/s or less, your VINT Communication Speed is not configurable, and you do not have to consider it in your design. If the speed is 1 Mbit/s, your VINT Communication Speed is configurable, and you may need to consider it in your design. Continue reading for more information.

Determine the VINT Generation

The VINT Communication Speed Max property can be found in the specifications tab on your device's product page.

If you have a high-speed device (1Mbit/s), the next thing to consider is if the VINT Hub you are connecting to is first or second-generation, and whether the port you are connecting to supports high-speed communication.


Second-generation VINT Hubs will have a shield Shieldicon.jpg present on their enclosure. They will also have a megabit icon HUB0001 0 Speed.jpg present on any ports that support high-speed communication. If you have a high-speed device, but the hub you are connecting to does not support high-speed communication, your device speed will be locked to 100kbit/s and you will not have to consider communication speed in your design.


For more information about identifying second-generation systems, click here.

Phidget Control Panel

The Phidget Control Panel will highlight high-speed devices and hub ports.

You can also use the Phidget Control Panel on Windows to help you identify second-generation functionality. The control panel will indicate which hub ports and devices are capable of high-speed communication.








Phidget22 API

The Phidget22 API can also be used to programmatically check if a system has high-speed devices with configurable speeds. View the Phidget API section below for more information.

Selecting a VINT Communication Speed

There are seven options for VINT Communication Speed.

VINT Communication Speed (kbps)
100
160
250
400
500
800
1000


The communication speed can be adjusted automatically by the VINT Hub, or manually using the Phidget API.

Automatic Selection

By default, Auto Set Speed is enabled on every second-generation VINT Hub. This allows the VINT Hub to automatically negotiate the fastest speed possible with a given device. For most systems, this is acceptable and no further consideration is required.

Devices With Variable Data Intervals/Rates

The maximum data rate of the PhidgetSpatial Precision 3/3/3 is impacted by the VINT Communication Speed.

Some devices have data intervals/rates that are impacted by the VINT Communication Speed (e.g. PhidgetSpatial Precision 3/3/3). Use the Cable Length Calculator to determine if your device has this behavior. In these situations, it is important to understand the relationship between cable length/gauge, communication speed, and data interval.

Manual Selection

If your device has a variable data interval/rate, consider manually setting the VINT Communication Speed before deploying your system. Auto Set Speed may occasionally select a slightly lower communication speed due to cable length edge cases. By manually selecting your speed, you can guarantee that you will always have the expected communication speed and data rate for a given cable length.

Phidget API

As mentioned above, you can use the Phidget API to access properties related to the VINT Communication Speed of your device.

Vintcomms api example.jpg


View the Phidget API for VINT Communication properties. If your device supports USB and VINT (like the MOT0110 above) select VINT from the interface dropdown.


HubPortSpeed

  • This property configures the communication speed for a given VINT device.
  • The available speeds depend on the device.
  • The fastest speed is bound by the lesser of MaxHubPortSpeed and MaxVINTDeviceSpeed.
  • When read, this property reports the active VINT Speed regardless if it is set manually or set to automatic.

HubPortSupportsSetSpeed & VINTDeviceSupportsSetSpeed

  • These properties are used together to determine if setting the hub port speed is valid for a system.
  • This is typically used if there is a mix of VINT Hubs or a mix of device versions that are being used in different installations, or on different VINT Hub ports.

HubPortSupportsAutoSetSpeed and VINTDeviceSupportsAutoSetSpeed

  • Similar to HubPortSupportsSetSpeed, these properties are used to determine the validity of setting AutoSetSpeed of the Hub port.

MaxHubPortSpeed and MaxVINTDeviceSpeed

  • The maximum communication speed of a Hub port or a VINT Device.

Example

Code

using System;
using Phidget22;

namespace ConsoleApplication
{
	class Program
	{
		static void Main(string[] args)
		{
			Spatial spatial0 = new Spatial();
			spatial0.Open(5000);

			int hubPortSpeed = spatial0.HubPortSpeed;
			int maxVINTDeviceSpeed = spatial0.MaxVINTDeviceSpeed;
			int maxHubPortSpeed = spatial0.MaxHubPortSpeed;
			int maxVINTSpeed = Math.Min(maxVINTDeviceSpeed, maxHubPortSpeed);
			bool vintDeviceSupportsSetSpeed = spatial0.VINTDeviceSupportsSetSpeed;
			bool hubPortSupportsSetSpeed = spatial0.HubPortSupportsSetSpeed;

			Console.WriteLine("Current VINT Speed: " + hubPortSpeed);
			Console.WriteLine("VINT Device Supports Set Speed? " + vintDeviceSupportsSetSpeed);
			Console.WriteLine("Hub Port Supports Set Speed? " + hubPortSupportsSetSpeed);

			Console.WriteLine("Max VINT Device Speed: " + maxVINTDeviceSpeed);
			Console.WriteLine("Max Hub Port Speed: " + maxHubPortSpeed);

			String message = "";

			if(hubPortSupportsSetSpeed && vintDeviceSupportsSetSpeed)
            {
				message = "Max Settable VINT Speed: " + maxVINTSpeed;				
            }
            else
            {
				message = "Cannot set VINT Speed. Using VINT Speed: " + maxVINTSpeed;				
            }

			Console.WriteLine(message);
			Console.ReadLine();

			spatial0.Close();
		}
	}
}

Output 1

The program above was run with a PhidgetSpatial Precision 3/3/3 (MOT0110_0) connected to a VINT Hub Phidget (HUB0001_0) on port 0, which is a high-speed VINT port.

Vintspeed output 1.jpg

Output 2

Next, the program above was run with the same hardware, but the VINT sensor was connected to port 3, which is not a high-speed VINT port.

Vintspeed output 2.jpg

Result

This approach can be used when there is a mix of VINT Hubs and/or a mix of devices/device versions that are being used in different installations.

Impact on Cable Length

Modifying the VINT Communication Speed will impact the cable length you can use with your system. For more information, visit the Cable Length Calculator.

Phidget Control Panel

You can experiment with different VINT communication speeds using the Phidget Control Panel. For more information, click here.

Related