Tactrix USB Devices Driver



If you experience any issues in downloading the files on this page, please use a browser other than Internet Explorer.

EcuFlash is a general-purpose ECU reflashing and editing tool that supports an ever-growing list of vehicles. EcuFlash uses the OpenPort vehicle interface to reflash vehicles via the OBDII port. EcuFlash also allows you to edit ECU data (known as 'maps' or 'tables') in a human-readable format using a XML-based definition system to translate the data. With properly setup definitions, the ROM from any vehicle can be edited. Future plans for EcuFlash include logging support / overlay, and live tuning.

EULA
Uninstall Info

Tactrix Openport 2.0 The OpenPort 2.0 is our newest tuning tool hardware that is capable of communicating with most OBDII compliant vehicles using a standard J2534 interface. Combined with our EcuFlash software, the OpenPort 2.0 is capable of reflashing a large number of newer Subaru and Mitsubishi vehicles, and support for other cars is in. Please be warned that counterfeit (fake) PL-2303HX (Chip Rev A) USB to Serial Controller ICs using Prolific's trademark logo, brandname, and device drivers, were being sold in the China market. Counterfeit IC products show exactly the same outside chip markings but generally are of poor quality and causes Windows driver compatibility issues. Please be warned that counterfeit (fake) PL-2303HX (Chip Rev A) USB to Serial Controller ICs using Prolific's trademark logo, brandname, and device drivers, were being sold in the China market. Counterfeit IC products show exactly the same outside chip markings but generally are of poor quality and causes Windows driver compatibility issues.

EcuFlash version 1.38 for Mac OSX is provided for legacy OpenPort 1.3 cable support only. There is currently no EcuFlash support for the OpenPort 2.0 pending necessary OSX driver development. Alternately, EcuFlash 1.44 will work by running parallels on OSX.

EULA
Uninstall Info

Changes:

Devices

Drivers

--- bug fixes --

  • Fixed Openport 1.3 driver INF file section naming error which was preventing this driver from installing correctly
  • Fixed MSVC compiler library issue which made J2534 DLL incompatible with Windows XP
  • Changed driver signing certificates back to SHA1 from SHA256 for compatibility with pre-Win8 OS versions until MS release SHA256 kernel mode signing updates for these

EcuFlash

--- features ---

Tactrix Ecuflash

  • File dialogs offer all ROM types by default
  • Added SH boot mode support for SH725XX processors. User Boot MAT is still not supported yet pending read support for this area.
  • adding clarification to message indicating nothing was written due to no differences in ROM images.
  • support for 2015 WRX with Hitachi ECU
  • support for OEM reflashing of BRZ
  • mitsucan heuristically determines correct checksum area size
  • Allow for other responses in wrx02 bootloader init sequence (possibly for ecutek'd ECUs)
  • Update checker now looks at build numbers to notify you of incremental improvements that don't have a new minor version change

--- bug fixes ---

  • added additional delays when communicating with Mitsubishi bootloaders to avoid the ECU occasionally not receiving bytes
  • fixed MSVC compiler library issue which made EcuFlash incompatible with Windows XP
  • fix bug where reading response from kernel could report 'msg buffer too small' when it was not
  • get Evo X recovery mode write back in ECU menu options
  • Fix bug where vehicle type dialog selects first item if you do not interact with tree view, even though another item is shown as selected.
  • Fix problems with FTP uploads of unknown ROMs
  • Problems with failed readEcuIdentification requests in CAN Mitsubishis are ignored in case they are not supported in the current mode.
  • Fixed problem with non-ASCII (e.g. Cyrillic) filenames
  • Fix bug where patches and some other metadata was not appearing in metadata view

J2534 DLL

--- features ---

  • DLL no longer uses Qt to make smaller and more portable, uses boost library instead
  • OSX support coming shortly

--- bug fixes ---

  • fix bug where startMsgFilter was looking for the wrong synchronization stamp
  • fix wait condition problems in port to boost library causing communication problems with driver
  • report ERR_TIMEOUT in more places where waits fail
  • fix missing ExtraDataIndex values when dequeing rx messages

Firmware

-- new features --

  • change voltage / pin enable logic to allow more than one OEM pin to be set to the same voltage
  • add more Subaru seed-key tables
  • ISO: add beginnings of a ISO9141 'max msg len' J2534 custom parameter to allow chopping up of continuous ISO9141 stream to cut down on latency and potential message size overflow.
  • logging: add length limit to UDS requests (will break into multiple requests)
  • logging: add logical not function
  • logging: reduce SSM retry time by half
  • logging: improve error reporting
  • logging: disallow params that start with a number
  • logging: add mode23 UDS logging option 'mode23uds'
  • logging: add option to sort PIDs 'sortpids = 1' for channel (mode23 logging needs this to work well as it tries to optimize sequential byte reads)
  • do additional range validation on many J2534 parameters

-- bug fixes --

  • CAN: only send additional flow control frames if ISO15765_BS is not 0
  • CAN: complete missing implementation of ISO15765_BS and ISO15765_BS_TX which are needed to limit the number of continuing CAN messages sent between waiting for additional flow control (FC) messages from the other party.
  • CAN: return CAN_29BIT_ID flag on appropriate read results (was being masked by accident)

Changes since version 1.42:

EcuFlash

--- features --

  • Large number of definitions have been cleaned up and added (we recommend you use the default rommetadata folder settings)
  • Make category expansion on file open an option
  • Make MRU file list size adjustable
  • Apply 12V Vpp to 2004-2007 DBW Subarus, in case some models check for this
  • Definition XMLs errors are better identified
  • Definition metatdata has a notes field that displays in the log window when loading a ROM
  • Add option to show invalid leaf node tables for definition developers
  • Help prevent laptop from going to sleep during reflash
  • Switch to Qwt 6.0
  • Add Generic3072k and Generic4096k memory models
  • Added detail to read template selection
  • Added upload capability for unknown ROMs
  • Added display of VIN and CVN informationAdd additional checksumming for Mitsubishi M32R ROMs
  • Added patching module for Mitsubish CAN parameter logging
  • Added compare feature to compare any 2 ROMs that use the same table names - highlights changes in map tree and cells within maps
  • Added warning when checksumming is turned off in Subaru ROMs
  • Added scroll bars to maps that are too large to fit the screen
  • Support for flashing 512k and 768k M32R Mitsubishi processors (e.g. Colt)
  • Add H8 checksum module for editing of Evo 7/8/9 ACD ROMs
  • Add Mitsu CAN RAM parameter logging patch
  • Add support for Evo ACD reflashing
  • Show recovery mode in status bar
  • Add detection of Windows 7
  • EcuFlash.exe now has signing a proper version info
  • Add patching engine
  • Allow copy (not paste) of static values

--- bug fixes ---

  • Fix size of Generic3072k and Generic4096k memory models
  • Fix scaling color for NaN cases
  • Fix shbootmode progress bar
  • Improve table validation in reading of definitions
  • Fix document removal bug
  • Fix bug in checksum adjustment location that could be outside flashable area in the case of 768k Colt ECU
  • Fix bug where shbootmode FTDI devices were not enabled
  • Fix bug where OP1.3 (or other FTDI serial devices) had priority over OP2
  • Fix H8539FA kernel to flash reliably!
  • Fix table fix table cut paste to not lose precision on large uint32s
  • Make parsing of user input of 0xXXXX values unsigned to allow full 32 bit numbers
  • In SH boot mode, use actual multiplier values when calculating bit rate (newer 7058S have 8x mult instead of 4x)

J2534 DLL

Tactrix usb devices driver free

--- features ---

  • Contains newest firmware for OP2 (see below for details)
  • Add J2534 extension to support variable number of stop bits in serial communications
  • DLL is now signed and has correct version info
  • Added ability to add phase offset to periodic messages to control the relative timing of multiple periodic messages
  • DLL now use OP2 driver for improved performance and reliability (see below for details)
  • Add device instances ioctl
  • Add 29-bit CAN / ISO15765 support
  • Add 5-byte extended ID CAN / ISO15765 support
  • Add SNIFF_MODE support
  • Add C++ code samples

--- bug fixes ---

  • Fix bug in PassThruReadMsgs where fix use of incorrect variable in determining the actual number of messages read affected the result returned
  • Change ERR_INVALID_DEVICE_ID to 0x1A as it should be
  • Fix error in parsing of messages when using CAN_MIXED_MODE
  • Up NUM_PT_CHANNELS to 9 to support innovate

Driver

--- features ---

  • Driver synchronizes OP2 to system clock to allow log files to have correct time / date if OP2 remains plugged into the car
  • IMPORTANT - the OP2 now uses a custom driver I wrote for better speed and stability than the Microsoft usbser.sys driver. This allows for reduced latency and a cleaner installation as well. *** This means that initially you must do a full EcuFlash and J2534 / driver install so that all of these components will work together. OLDER ECUFLASH AND OP20PT32.DLL VERSIONS WILL NOT WORK WITH THE DRIVER. **

--- bug fixes ---

  • Use exclusive file access to prevent multiple connections to the driver
  • Add USB data disposal when no file is opened

Firmware

-- new features --

  • Add logging support for Zeitronix ZT2/ZT3 devices (see samples)
  • Add support for clock synchornization with dirver in order to have accurate file time / date
  • Add support for 32bit ints with no scaling to avoid loss in precision in that case (before, everything was promoted to a float32). This feature only happens if there is no scaling done to the value
  • Add finer granularity to 'friendly' logging intervals
  • Add ability to tweak OBD CAN and MRMACAN logging timing using calcsampinterval and calcconstantdelay parameters
  • Add support for mode $01,$22, and $23 OBD CAN logging
  • Add support for logging from AEM UEGO and any other devices which output ASCII streams of data (see logging examples)
  • Add J2534 extension to support variable number of stop bits in serial communications
  • Add support for LM-1, in both headerless and V2 header configurations (see logging examples)
  • Add support for logging signed parameters using issignedint=1
  • Add support for 50kbps CAN
  • Up to 60 parameters allowed
  • Completely changed innovate MTS bus logging to support multiple LC-1 and other MTS devices (see subaru k-line adc lc1.txt sample for details)
  • Support for more flexible lower speed/priority parameter sampling through the use of a new additional parameter feature called sampgroup.

sampgroups are numbered 1 through 15, the number simply being a label. All parameters in the same sampgroup will share a single timeslot. The OP2 will determine how many of each sampgroup there are, build a cycle of that size, and phase each of them properly. This allows you to have different groups of low speed parameters, running at different speeds, each optimally using the sample cycle. (see subaru k-line adc lc1.txt sample for details)
priority = 2 is still allowed, but all it does is assigned the parameter to sampgroup = 1

  • SD card uses DMA for greater speed in all cases
  • SD card multiblock read / write to increase speed when connected to USB (800kB/s read / 500kB/s write is typical)
  • Filesystem operations queued to a separate thread to allow seamless logging regardless of SD card latency
  • Multibyte parameter (up to 32-bit) mitsubishi support
  • Support for zeroing sample count each time a new file is started using zerosamplecount = 1
  • Support for zeroing time count each time a new file is started using zerotimecount = 1
  • Time count starts on nice intervals
  • Time only shows to the millisecond
  • Increased range and fine-granulatrity of possible logging intervals
  • Improved details in logcfg.out dumps
  • Support for filling in missing samples if ECU misses a response or two using fillmissingsamples = 1
  • Support for new file cuttting action 'newfile' which starts a new file if your conditions are met (see subaru k-line adc lc1.txt sample for details)
  • Improved timing estimates for most logging protocols
  • Up to 4 logging channels allowed (e.g. ssmcan, lc-1, adc, & calculated data)
  • Support for fast RAM parameters on Subaru CAN vehicles (assuming ROM patch has been made). just use the known RAM parameter ID (0xFFxxxx) and the OP2 will do the rest. reading of multibyte RAM parameters is sped up by the ROM patch which allow reading up to 4 bytes with a specially encoded 3-byte parameter request. due to current Subaru output buffer limitations, only 80 bytes can be returned in a single request, so only 20 4-byte params can be read at a time. i will make some changes to the OP2 firmware in the future to issue multiple requests to overcome this 80-byte of data limit.
  • New 'previous value' parameter added to RPN expressions (e.g. '#RPM' instead of 'RPM'). this is useful in creating trigger conditions that are sensitive to the direction of change in a value. for example, if you wanted to capture each dyno pull from 2000rpm to 7000rpm to a separate file, you could set the following conditions:

conditionrpn = #RPM,2000,<,RPM,2000,>=,&&
action = start
conditionrpn = #RPM,7000,<,RPM,7000,>=,&&
action = stop

  • Writing of logcfg.out has been speed up 100x or more - there is little need to use the debug=noout option anymore
  • Added some more finely spaced 'friendly' logging intervals
  • Time now starts at 1/1/2009 each time the OP2 boots to give more reasonable looking file times
  • Green status light now blinks during 5 baud inits (e.g. MUTII)
  • Parameters and triggers now use RPN based scalings so that you can do arbitrary equations or evaluations. i will add an infix (algebraic/parenthetical) to RPN parser later for those who are confused by RPN...
  • Calculated / derived parameters are now supported - you can now make new parameters based on equations of other parameters
  • MUTII logging is now much more robust - it will re-initialize if there is a break in communications
  • CAN (SSM/MRMACAN) logging is more robust - it will retry if there is a break in communications
  • SSM K-line logging is more robust - it will retry if there is a break in communications (it used to be this way before, but I had broke it with the priority logging)
  • Added the ability to set voltages or ground pins - this is handy for MUTII users who need to ground pin 1
  • Added isvisible option to parameters so that you can use them for triggering or calculations, but not write them to the log file
  • isfloat=1 parameters automatically default to databits=32 now

-- logging bug fixes --

  • Fix bug causing Innovate MTS to log at 9600 baud
  • Fix offset error in Mode $22 OBD logging
  • Fix bug writing more than 512 bytes at a time to file queue
  • Increase size of parameter header line buffer to accommodate long parameter names
  • Fix error in && and || tokens
  • Increase speed of SSM K-line comms
  • Fix occasional failed transition to logging after USB disconnect
  • Fix overly-rapid mitsubishi communication attempts if ECU not responding
  • Collecting lc-1 data does not cause additional steps in the sample countfix bug where logging could sometimes start immediately after a firmware reflash without they normal delay to check for USB
  • Fix bug where long SSM responses were not correctly parsed
  • Fix bug where 32 bit data fields (such as floats) were not masked correctly
  • Increased mrmacan logging interval estimates to avoid sampling overruns* logging mode now starts if the OP2 is already plugged into OBD and you remove the USB connection - this means you don't have to unplug the OP2 from OBD at all between logging / reading logs / tuning / flashing / etc.
  • Databits values over 31 could be truncated
  • Sample time is now in units of seconds
  • Sample number now should increment by 1 per log cycle for mitsubishis
  • Fix innovate baud rate bug

-- other bug fixes --

  • Fixed ISO15765 bug where long messages weren't dealing with CAN packets with lengths other than 8 bytes
  • Fixed cleanup of filters and periodic messages when using the CAN / ISO15765 / mixed mode channedls
  • Fixed data loss race condition in ring buffering
  • Fix rare but critical communications buffer bug that could cause data transposition
  • Corrected misuse of BS and STMIN in some cases
  • Fixed flow control bug in ISO15765

EULA

Copyright © 2004-2016 Tactrix Inc.

This software is provided 'as-is', without any express or implied warranty. This software reads and modifies code and data for engine computers (ECUs). Improper use of this software or errors within the software itself can cause engine damage and/or render the vehicle's ECU non-operational. Many ECUs can only be reflashed a limited number of times before the flash memory is no longer functional. Additionally, modification of your ECU's software will most likely void your drivetrain warranty from the manufacturer and violate emission control regulations in some regions. In no event will Tactrix or other contributors be held liable for any damages arising from the use of this software.

This software allows you read code/data from ECUs which can potentially be subject to various copyright and intellectual property laws where you live. It is your responsibility to use (or not use) this software in adherence with these laws.

Permission is granted to anyone to use this software in its complete distribution for any application, including for-hire work such as tuning customer vehicles or delivering tunes to remote customers, and to redistribute it free of charge to others, subject to the following restrictions:

  1. The origin of this software must not be misrepresented; you must not claim that you authored or produced the original software. If you use this software as part of a larger product or service, an acknowledgment in the product documentation should be made.
  2. When used with a hardware interface, the software is to be used solely with OpenPort vehicle interfaces from Tactrix Inc. or other officially licensed interfaces. These sales fund the project development and keep the cost of such a tool reasonable.
  3. This software distribution also contains many definition files which are the work of a large number individual contributors as well as Tactrix. Where known, attribution has been made to the original authors and subsequent contributors, including links to their websites where it may be possible to donate to help encourage their work.
  4. The software will check if a new version is available based on your current hardware and software. You are strongly encouraged to upgrade if your receive such a notice as new versions sometimes fix flaws that can cause ECU flashing to fail on some vehicles.
  5. The software may not be altered in a way which circumvents or violates any licensing provisions.
  6. This notice may not be removed or altered from any distribution.

EcuFlash 1.44.4799 Released

Tactrix Store

none1 ECU Tools (2) Tuning Tools and Parts (1)

List All Products
Forgot your password?
Forgot your username?
No account yet? Register
-->

Windows versions

  • Windows 10 for desktop editions (Home, Pro, Enterprise, and Education)
  • Windows 10 Mobile

Common points of discussion for OEMs who want to build Windows systems with USB Type-C connectors.

USB Type-C connector features

Symmetric and reversible design

  • The connector is symmetric. The cable has a USB Type-C connector on each end allowing the host and function device to use USB Type-C connectors. Here is an image that compares the connectors:
  • The connector is designed to be reversible. Traditional connectors had to be connected the 'right-side-up'. With the reversible design, the connector can be flipped.

Supports all USB device speeds

The connector can support USB devices that are low-speed, full-speed, high-speed, SuperSpeed (including SS+).

Alternate modes

The connector can support alternate modes. The alternate mode feature allows non-USB protocols to run over the USB cable, while simultaneously preserving USB 2.0 and charging functionality. Currently, the most popular alternate modes are DisplayPort/DockPort and MHL.

DisplayPort / DockPort

This alternate mode allows the user to project audio/video to external DisplayPort displays over a USB connector.

MHL

The MHL alternate mode is allows the user to project video/audio to external displays that support MHL.

Billboard error messages

If a user connects a USB Type-C alternate mode device or adapter that is not supported by the attached PC or phone, the device or adapter can expose a Billboard device that contains information about the error condition to help the user troubleshoot issues.

Tactrix Usb Devices Driver Free

Increased power limits

A system with USB Type-C connectors has higher power limits, it can support up to 5V, 3A, 15W.

In addition, the connector can optionally support the power delivery feature as defined by the USB Power Delivery OEM . If the connector supports power delivery, a USB Type-C system can be a power source provider or a consumer and support up to 100W.

Supports USB dual roles

Peripheral devices can connect to a mobile system with USB Type-C connectors, changing the traditional role of a mobile system from function to host. When the same system is connected to a PC, the system resumes the role of a function and PC becomes the host.

Operating system input into which alternate mode needs to be negotiated, such as DP 2-lane vs. DP 4-lane

No. The operating system (or any Microsoft-provided software component) plays no part in selecting an alternate mode. The decision is made by the driver for the connector, specifically the USB connector manager (UCM) client driver. The driver does so by communicating with the connector's firmware by using hardware interfaces.

Pre-OS charging with Type-C and PD

Enabling pre-OS charging is owned by the OEM. You can choose to not implement USB Power Delivery, and charge at USB Type-C power levels until you boot into the operating system.

Charging the phone when it is a USB host to enable docking scenarios like Continuum

Here are a few things to consider:

  • You must to implement USB Power Delivery, so that power and data roles can be swapped independently.

  • Your dock’s upstream port should be implemented as a Charging UFP, defined in the USB Type-C specification. For details, see section 4.8.4, version 1.1.

  • Your dock should request a DR_Swap if it resolved to a DFP, or a PR_Swap if it resolved to a UFP.

    The initial DFP is the power source, so you must change the data role. The initial UFP is the power sink, so you must change the power role. You can perform those operations in your implementation of these callback functions:

Windows 10 Mobile support of USB billboard devices

Yes, if you connect the phone to a device that supports a USB Billboard, as per the USB Device Class Definition for Billboard Devices specification, the user is notified. Your USB connector manager (UCM) client driver is not required to handle the notification. If your system does not recognize the alternate mode, do not enter the mode.

Support for USB Type-C on earlier versions of Windows

USB Type-C is not supported on versions of Windows prior to Windows 10.

UCSI support on earlier versions of Windows

UCSI is not supported on versions of Windows prior to Windows 10.

Devices

How to test an implementation of UCSI

To test your implementation, follow the guidelines given in USB Type-C manual interoperability test procedures. We recommend running USB tests in Windows Hardware Lab Kit (HLK) for Windows 10. These tests are listed in Windows Hardware Certification Kit Tests for USB.

Conditions and UI for the different errors

Windows 10 can show a set of USB Type-C error messages to help educate users about the limitations with different combinations of USB Type-C hardware and software. For example, the user might get 'Device is charging slowly' message if the charger connected to the USB Type-C connector is not powerful enough, not compatible with the system, or is connected to a non-charging port. For more information, see Troubleshoot messages for a USB Type-C Windows system.

Connecting a non-PD port to a PD provider and a PD consumer to a system that is not a PD provider

The non-PD port attempts to charge the system by using USB Type-C current levels. For more information, see USB 3.1 and USB Type-C specifications.

Connecting Thunderbolt, SuperMHL, or PCI express to a PC that does not support those capabilities

The alternate mode feature allows non-USB protocols (such as Thunderbolt, SuperMHL) to run over the USB cable, while simultaneously preserving USB 2.0 and charging functionality. If a user connects a USB Type-C alternate mode device or adapter that is not supported by the attached PC or phone running Windows 10, an error condition is detected and a message is shown to the user.

Tactrix
  • If the device or adapter exposes a Billboard device, the user sees information about the error condition to help the troubleshoot issues. Windows 10 provides an in-box driver for a Billboard device and notifies the user that an error has occurred.
  • The user might see an error notification, 'Try improving the USB connection'. For more information, see Fix USB-C Problems.

For the best results, make sure that the alternate mode device or adapter’s requirements are met by PC or phone or cable.

Support and limitations for MTP over USB Type-C in Windows

Windows 10 for desktop editions supports MTP in the initiator role; Windows 10 Mobile supports MTP in the responder role.

How downstream devices and hubs connect and communicate with USB Connector Manager (UCM)

UCM is its own device stack (see Architecture: USB Type-C design for a Windows system). Windows 10 support for USB Type-C includes the required plumbing to make sure that the different class drivers know how to communicate with the different USB Type-C connectors. In order to get Windows 10 support for USB Type-C, you must plug into the UCM device stack.

USB Type-C MUTT requirements for HLK tests

The Windows HLK for Windows 10 contains tests for USB host and function controllers. To test your system, use a USB C-A adapter. These tests are listed in Windows Hardware Certification Kit Tests for USB.

Microsoft support for P2P data transfer between the same Windows 10 SKU

This is not a valid connection.

  • You cannot connect two PCs running Windows 10 for desktop editions.
  • You cannot connect two mobile devices running Windows 10 Mobile.

If the user attempts to make such a connection, Windows shows an error message. For more information, see Error messages for a USB Type-C Windows system.

The only valid connection is between a Windows Mobile device and Windows desktop device.

UCM class extension (UcmCx) communication with PMIC or battery driver to get/set charging status

On software-assisted charging platforms, UcmCx communicates with PMIC and the battery subsystem. The client driver may determine the charging levels by communicating with the hardware through hardware interfaces. On hardware-assisted platforms, the embedded controller is responsible for charging. UcmCx takes no part in the process.

HLK support for USB Type-C

In Windows HLK for Windows 10, there are no USB Type-C specific tests. We recommend running USB tests in Windows HLK for Windows 10. These tests are listed in Windows Hardware Certification Kit Tests for USB.

UCSI

USB Type-C Connector System Software Interface (UCSI) Specification describes the capabilities of the USB Type-C Connector System software Interface (UCSI), and explains the registers and data structures, for hardware component designers, system builders, and device driver developers.

Microsoft provides an in-box driver with Windows, UcmUcsi.sys, that implements the features defined by the specification. This driver is intended for systems with embedded controllers.

Test a UCSI implementation running on Windows 10

We recommend running USB tests in Windows HLK for Windows 10. These tests are listed in Windows Hardware Certification Kit Tests for USB.

Tactrix Usb Devices Drivers

Test a UCMCx client driver on Windows 10

We recommend running USB tests in Windows HLK for Windows 10. These tests are listed in Windows Hardware Certification Kit Tests for USB.

Tactrix USB Devices Driver

VBus/VConn control and role switch operations handled by the UCM class extension

Tactrix Usb Devices Driver Download

The UCM class extension might get requests from the operating system to change data or power direction of the connector. When it gets those requests, it invokes client driver's implementation of EVT_UCM_CONNECTOR_SET_DATA_ROLE and EVT_UCM_CONNECTOR_SET_POWER_ROLE callback functions (if the connector implements PD). In the implementation, the client driver is expected control the VBUS and VCONN pins. For more information about those callback functions, see Write a USB Type-C connector driver.