|How to - Use the VCP mode|
The VCP - Virtual COMport - mode of the Infinity USB Unlimited, makes it possible to use software that would normally require a serial COMport-based Phoenix or Smartmouse interface.
Installing the VCP
The VCP is part of the setup file for Infinity USB Unlimited (from v2.50 and up) and the necessary drivers and setup will be done automatically when installing the Infinity USB Unlimited software.
Enabling and setting up the VCP mode
In the "Tools" menu of the Infinity USB Unlimited, choose "Virtual COM port (VCP) mode", and the following setup-window will appear:
First, choose the basic settings:
COMport Choose which port to create. Ports already existing on the PC (most PCs have a COM1 and COM2 port), are marked with [!]. This doesn't mean you cannot use them though, if you choose a port marked with [!], the existing port will be disabled, and the VCP will take over it's place. When you exit VCP mode, the VCP will be disabled and the previous port enabled again.
When choosing a COMport it is recommended to use a port that is not already in use (for instance COM3 if not marked by [!]) but some 3rd party software limits the available ports to COM1-COM4, or even only COM1 or COM2, so that may not be possible.
Reset-polarity Choose Phoenix or Smartmouse reset-polarity (Phoenix is most typical).
Frequency Choose the frequency that matches the card you wish to use, and the frequency the 3rd party software expects. This will typically be 3.579MHz (3.58MHz). For special cards or experimentation, choose "userdefined", and enter the frequency in Hz below (1000000Hz = 1MHz). Any frequency between 760000 (760kHz) and 25000000 (25MHz) can be chosen. Do not choose a high frequency (>10MHz) unless you're certain the card can tolerate it.
Transparent boost Increases the communication speed and therefore the overall programming speed, by equally increasing frequency and baudrate. This will be completely transparent to the 3rd party software used, and no changes are therefore required in the 3rd party software settings, to increase the speed.
If for instance a SIMcard is to be accessed by Phonefile, choose a COM port, reset-polarity (Smartmouse) and frequency (3.579MHz) as usual. Then change the transparent boost slider to for instance 2.0.
You'll see that the frequency next to the ratio, will be changed to "2.0 x (7.516MHz)" (2 * 3,579MHz), but the baudrate chosen by the 3rd party software (typically 9600bps) will also be changed by the VCP to twice the normal speed (or whichever ratio has been chosen).
The 3rd party software will connect to the VCP as usual (at 3.579MHz / 9600bps) but the card will actually be accessed by the programmer at 7.516MHz / 19200bps.
The maximum speed depends on the card and the 3rd party software. Tests have shown that most OS cards only works below 8MHz (boost 2.1 or less), while SIM cards work fine up to boost 3.0.
This setting is for advanced or experimenting users, so use it only if you're certain the card can tolerate the higher frequency.
VCP settings Making an easy to use yet compatible VCP is very complex due to the very high combinations of different cards and 3rd party software. In the Infinity USB Unlimited VCP, it is therefore possible to choose between a number of profiles, that closely matches specific cards or software.
Since some cards need very specific timing, especially in regards to trapping the card, the VCP actually analyzes all data going from and to the card, and intercepts and modifies certain trap sequences. The VCP can also override the timeout values setup in the 3rd party software and override/predefine the COMport pins normally used on a serial-based Phoenix/Smartmouse interface.
Choosing any other profiles than "Custom" will preset all Timeout values and Port flowcontrol states so they work with the specific card.
Choose the profile that closest matches your card. If the card is not listed, choose "Default". The "Custom" setting is only for very experienced users, and explained further below. Logging can be enabled if you wish to see what's going on "behing the scene" or if you experience a problem and wish to use the log for finding the cause. Enabling the VCP log will open a separate log window.
Press "Enable" when everything has been setup. The LED on the Infinity USB Unlimited will turn purple, and the Infinity USB Unlimited software will be minimized to the systray:
By rightclicking the blue Infinity USB Unlimited icon, you can exit VCP mode (or the entire Infinity USB Unlimited software which will also close the VCP), or you can change the VCP settings. Changing the VCP settings can even be done "on the fly" (while 3rd party software has opened the Virtual COMport and is communicating with the smartcard).
Using the VCP
Open up the 3rd party software you wish to use. Choose the COMport (for instance COM3) you just created in the VCP settings, and choose the correct frequency and Resetpolarity (if available). When the 3rd party software connects to the COMport, the LED will light up bright purple, and the blue icon in the systray will change. During activity (communication between the Infinity USB Unlimited and the 3rd party software, the LED will flash.
Please note that WB Electronics cannot help with specific 3rd party software, but if you experience a problem you may think is related to the VCP, please use our forum for support.
The use of 3rd party software is supported by WB Electronics thru Phoenix and Smartmouse but WB Electronics do not offer help/support on issues regarding software not developed by WB Electronics.
"Custom" profile settings - Advanced VCP use
Maximum time allowed to elapse between the arrival of two characters on the communications line, in milliseconds. During a ReadFile operation, the time period begins when the first character is received. If the interval between the arrival of any two characters exceeds this amount, the ReadFile operation is completed and any buffered data is returned. A value of zero indicates that interval time-outs are not used.
A value of MAXDWORD (-1), combined with zero values for both the ReadTotalTimeoutConstant and ReadTotalTimeoutMultiplier members, specifies that the read operation is to return immediately with the characters that have already been received, even if no characters have been received.
Multiplier used to calculate the total time-out period for read operations, in milliseconds. For each read operation, this value is multiplied by the requested number of bytes to be read.
Constant used to calculate the total time-out period for read operations, in milliseconds. For each read operation, this value is added to the product of the ReadTotalTimeoutMultiplier member and the requested number of bytes.
A value of zero for both the ReadTotalTimeoutMultiplier and ReadTotalTimeoutConstant members indicates that total time-outs are not used for read operations.
Multiplier used to calculate the total time-out period for write operations, in milliseconds. For each write operation, this value is multiplied by the number of bytes to be written.
Constant used to calculate the total time-out period for write operations, in milliseconds. For each write operation, this value is added to the product of the WriteTotalTimeoutMultiplier member and the number of bytes to be written.
A value of zero for both the WriteTotalTimeoutMultiplier and WriteTotalTimeoutConstant members indicates that total time-outs are not used for write operations.
If an application sets ReadIntervalTimeout and ReadTotalTimeoutMultiplier to MAXDWORD (-1) and sets ReadTotalTimeoutConstant to a value greater than zero and less than MAXDWORD (-1), one of the following occurs when the ReadFile function is called:
If there are any characters in the input buffer, ReadFile returns immediately with the characters in the buffer.
If there are no characters in the input buffer, ReadFile waits until a character arrives and then returns immediately.
If no character arrives within the time specified by ReadTotalTimeoutConstant, ReadFile times out.
Very few 3rd party applications may require the flowcontrol pins to be preset in a specific state. Since the VCP is "Virtual" by nature, only the CTS pin for detecting cardinsertion (as on a standard Phoenix/Smartmouse interface) is implemented in hardware. Setting CTS in the Port flowcontrol setttings, will fool 3rd party software into thinking that the card is always inserted. Removing the checkmark will make it work normally (card can be detected). For DCD (Data Carrier Detected), DSR (Data Set Ready) and RING (Ring Indicate), they can be set or cleared depending on which state the 3rd party software requires.