--------------------------------------------------------------------------------
                                  Diebold Nixdorf
                            USB Serial Port Filter Driver
--------------------------------------------------------------------------------

0. CONTENTS

   1.  Installation package
   2.  Products Supported
   3.  Backward Compatibility
   4.  Supported Operating Systems
   5.  Installation Information
   6.  Changes history

--------------------------------------------------------------------------------
1. INSTALLATION PACKAGE 

   1.1 usbserfilters.inf
       Driver package setup file.

   1.2 usbserfilters.cat
       Driver package catalog file.

   1.3 usbserUpper.sys
       Usbser Upper Filter driver

   1.4 usbserLower.sys
       Usbser Lower Filter driver

   1.5 install.bat
       Batch file for installing the drivers.

   1.6 uninstall.bat
       Batch file for uninstalling the drivers.

       NOTE: Uninstall.bat uninstall the Filter Drivers but does not delete the
             Driver Pacakge from the DriverStore. For clean uninstallation,
             please refer to section 6.

   1.7 devcon.exe
       Console utility for driver installation.

   1.8 readme.txt
       Text file providing information about the installation package.

--------------------------------------------------------------------------------
2. PRODUCTS SUPPORTED

   A-Series IO Hubs (DA53 and H3342) in conjunction with the following system 
   products.

   Model Name           Chipset/Processor 
   ----------           ----------------- 
   Beetle A-Series      Whiskey Lake
                        Coffee Lake

--------------------------------------------------------------------------------
2. PRE-REQUISITE

   A-Series IO Hub (DA53) with firmware 03.10 or later. 
   H3342 Hub with firmware 01.00 or later. 

--------------------------------------------------------------------------------
4. SUPPORTED OPERATING SYSTEMS

   Windows 10 64-bit only

--------------------------------------------------------------------------------
5. INSTALLATION INSTRUCTION

   Peform an Update of the USB Serial Device following the procedure below.

        1) Open a CMD Prompt in Administrator mode
        2) Change directory to ..\usbserfilter\driver_package
        3) Run Install.bat
        4) Open the Device Manager and expand the "Ports (COM & LPT)" nodes. 
		   You should see the name change from 
           "USB Serial Device" to "USB Serial Port".
        5) As the enumeration by the PNP Manager may not be in the same order 
		   as the physical arrangement of the ports on 
           on the IO Hub, you may need to rename the ports. The logical name 
		   assigned should correspond to the respective
           hardware ID as shown below.

           Logical Name   Hardware ID
           ------------   -----------
           COM5           USB\VID_2F7C&PID_6004&MI_02
           COM6           USB\VID_2F7C&PID_6004&MI_04
           COM7           USB\VID_2F7C&PID_6004&MI_06

           COM5           USB\VID_2F7C&PID_300C&MI_02
           COM6           USB\VID_2F7C&PID_300C&MI_04

           If not matching, please change it manually by opening the Port's Properties dialog box.

--------------------------------------------------------------------------------
6. INSTRUCTION FOR CLEAN UNINSTALLATION

   6.1  Reboot Windows.
   6.2  Open Device Manager and expand the Ports (COM & LPT) node.
   6.3  Point the cursor at "USB Serial Port (COM5)".
   6.4  Right-click and then click on the "Uninstall device" option.
   6.5  On the "Uninstall Device" dialog box, click on the "Delete the driver software for this device" checkbox.
   6.6  Press the "Uninstall" button.
   6.7  Repeat steps 6.2 to 6.5 for the other two Ports.
   6.8  This complete the uninstallation. There is no need to run uninstall.bat.

--------------------------------------------------------------------------------
7. SERIAL COMMUNICATION API

7.1 Supported API

    7.1.1   CreateFile - Open and enable the COM port.
    7.1.2   CloseHandle - Close and disable the COM port.
    7.1.3   ReadFile
    7.1.4   WriteFile
    7.1.5   DeviceIoControl 
            - IOCTL_SERIAL_PURGE
            - IOCTL_SERIAL_SET_DTR
            - IOCTL_SERIAL_CLR_DTR
            - IOCTL_SERIAL_SET_RTS
            - IOCTL_SERIAL_CLR_DTR
            - IOCTL_SERIAL_SET_BAUD_RATE
            - IOCTL_SERIAL_GET_BAUD_RATE
            - IOCTL_SERIAL_GET_DTRRTS
            - IOCTL_SERIAL_GET_COMMSTATUS
            - IOCTL_SERIAL_SET_LINE_CONTROL
            - IOCTL_SERIAL_GET_LINE_CONTROL
            - IOCTL_SERIAL_SET_BREAK_ON
            - IOCTL_SERIAL_SET_BREAK_OFF
            - IOCTL_SERIAL_GET_MODEMSTATUS
            - IOCTL_SERIAL_GET_HANDFLOW
            - IOCTL_SERIAL_SET_HANDFLOW
            - IOCTL_SERIAL_GET_STATS
            - IOCTL_SERIAL_CLEAR_STATS

7.2 Unsupported API

    7.2.1   DeviceIoControl 
            - IOCTL_SERIAL_GET_MODEM_CONTROL
            - IOCTL_SERIAL_SET_MODEM_CONTROL
            - IOCTL_SERIAL_SET_XOFF
            - IOCTL_SERIAL_SET_XON
            - IOCTL_SERIAL_SET_CHARS
            - IOCTL_SERIAL_GET_CHARS

Note: API and IOCTL control codes not mentioned are not relevant to the IO 
      Hub ports and are not neccesarily not supported.

--------------------------------------------------------------------------------
8. KNOWN ISSUES       


--------------------------------------------------------------------------------		
9. CHANGE HISTORY

   *****************  Version 1.0.0.2  *****************
   Date (MM/DD/YYYY): 09/28/2021 CGLEE
   Pre-release version.

   *****************  Version 1.1.0.6  *****************
   Date (MM/DD/YYYY): 10/08/2021 CGLEE
   Block SET_CONTROL_LINE _STATE request code from the USB CDC Class driver 
   (usbser.sys) from getting to the device to prevent it from messing up our 
   control of DTR and RTS.
   Support IOCTL_SERIAL_GET_STATS and IOCTL_SERIAL_CLEAR_STATS.

   *****************  Version 1.2.0.7  *****************
   Date (MM/DD/YYYY): 12/07/2021 CGLEE
   Fixed an issue where the port that the USB Composite device is connected
   to becoming disabled during USB re-enumeration that followed a Surprise
   Removal.

   *****************  Version 1.2.0.11  *****************
   Date (MM/DD/YYYY): 12/07/2021 CGLEE
   The filter driver will let the data returned by the usbser for the
   IOCTL_SERIAL_GET_COMMSTATUS command pass through to the application
   without any modification.
 
   *****************  Version 1.2.0.12  *****************
   Date (MM/DD/YYYY): 03/21/2024
   Added H3342 COM ports to .inf file.
 
  

