ACS Unified Bluetooth PC/SC Driver Installer (MSI)
Advanced Card Systems Ltd.
 
Contents
--------

   1. Release Notes
   2. Installation
   3. History
   4. File Contents
   5. Limitations
   6. Support


1. Release Notes
----------------

Version: 2.3.0.0
Release Date: 12/18/2019 (MM/DD/YYYY)

Supported Readers
-----------------

Reader            Reader Name               
-----------       ------------------------  
ACR3901U-S1       ACR3901 BLE ICC Reader  
ACR1255U-J1       ACR1255U-J1 BLE PICC Reader  
ACR1311U-N2       ACR1311 BLE PICC Reader
ACR3901T-W1       ACR3901 BLE ICC Reader
ACR1255U-J1 V2    ACR1255U-J1 V2 BLE PICC Reader
AMR220-C          AMR220-C ICC BLE Reader
                  AMR220-C PICC BLE Reader
          
1. Supported Operating Systems
    Windows 7 32-bit
    Windows 7 64-bit
    Windows 8.1 32-bit
    Windows 8.1 64-bit
    Windows 10 32-bit
    Windows 10 64-bit
    
2. Supported Languages
    Arabic
    Chinese (Simplified)
    Chinese (Traditional)
    Czech
    Danish
    Dutch
    English
    Finnish
    French
    German
    Greek
    Hebrew
    Hungarian
    Italian
    Japanese
    Korean
    Norwegian
    Polish
    Portuguese (Brazil)
    Portuguese (Portugal)
    Romanian (Romania)
    Russian
    Spanish
    Swedish
    Turkish
    Ukrainian
    
3. Driver version
    v2.3.0.0

4. Command Options

    Setup [option]

    /q          Quiet mode
    /x          Uninstall driver
    /norestart  Do not restart after driver installation/uninstallation

    Exit Codes:

    ERROR_SUCCESS                       0x00000000  Success
    ERROR_FILE_NOT_FOUND                0x00000002  File not found
    ERROR_NOT_ENOUGH_MEMORY             0x00000008  Not enough memory
    SETUP_ERROR_OS_NOT_SUPPORTED        0x20000001  Operating system is not supported
    SETUP_ERROR_WINNT4_SP6_REQUIRED     0x20000002  Windows NT 4.0 Service Pack 6 is required
    SETUP_ERROR_UNEXPECTED              0x20000003  Unexpected error
    SETUP_ERROR_MSI2_REQUIRED           0x20000004  Windows Installer 2.0 is required
    SETUP_ERROR_MSI_LOCATION_NOT_FOUND  0x20000005  Cannot find the location of Windows Installer

    Note: Other error codes are defined in Windows API and MSI.


2. Installation
---------------

1. Before running the MSI Installer, please unpower the reader first.
2. Double click the .msi program icon to launch the installer. If your system does not have installed Windows Installer 2.0 or above, you will receive a warning message and you need to go to Windows Update to update your system.
3. Follow the on-screen instructions to install the driver to the system.
4. After the installation is completed, please plug the reader to the system.
5. To remove the driver, please go to "Add or Remove Programs" in Control Panel.

   
3. History (vx.x.x.x (MM/DD/YYY))
----------
v2.3.0.0 (12/13/2019)
1. Installer
- Added support to setup installer other languages

v2.3.0.0 (12/13/2019)
1. Driver
- Update 32-bit project configuration

v2.3.0.0 (12/04/2019)
1. Driver
- Update driver date and version
- Fix application crashing after uninstalling the turned off reader
- Add setup.exe to call the MSI Installer according to OS platform

v2.3.0.0 (10/25/2019)
1. Driver
- Change parameter for GAP_TerminateLinkReq, added REASON parameter
- Add support to new TI Dongle based on SDK version 1.41

v2.3.0.0 (09/06/2019)
1. Driver
- Update slave latency, minimum and maximum interval and timeout for ACR1255 readers
- Allowed multiple readers to be scanned and installed in Dongle bluetooth mode

v2.3.0.0 (08/16/2019)
1. Driver
- Add support to AMR220-C1 authentication and data encryption
- Fix issues encountered on Escape Commands for AMR220-C1
- Add card and reader polling for AMR220-C1 

Limitations for AMR220-C1:
1. Installation should be one slot at a time, i.e. PICC slot only or ICC slot only. If there is an existing slot installed, it is necessary to uninstall first the currently installed slot and then proceed with the installation steps below:
1.1 Power Off AMR220-C1
1.2 Power On AMR220-C1
1.3 Select which slot to install, either ICC or PICC slot
1.4 Then right click 'Install' and wait for the reader to be installed successfully, if error occurred please repeat installation steps.

2. Card insertion and removal status will take up some time due to AMR220-C1 limitation.

v2.2.0.0 (02/26/2019)
1. Driver
- Added readers support. Affected readers:
  * AMR220-C1
  * ACR3901U-S1
  * ACR1255U-J1

2. ACSBDMT.exe
- Enabled resizing of column

v2.1.0.0 (04/12/2018)
1. Driver
- Added support to AMR220-C1 using TI dongle. Affected readers:
  * AMR220-C1

- Updated firmware version checking to handle Extended APDU feature. 
Affected readers:
  * ACR3901T-W1
  * ACR3901U-S1
  * ACR1255U-J1

2. ACSBDMT.exe
- Improved Bluetooth Management Tool with the following updates:
* Minimize to System Tray
* Support for multiple installation of readers using dongle
* Quick Access from System Tray
* Simplified button operations
* Sorting of entries per column

v2.0.0.0 (06/7/2018)
1. Driver
- Added support to new reader ACR1311U-N2.
- Added Extended APDU support for ACR3901U-S1.
- Added Wait Time Extension feature for ACR3901U-S1.
- Added support to new UUID for ACR1255U-J1.
- Add handling to non-extended apdu firmware versions of ACR1255U-J1 and ACR3901U-S1.

2. ACSBDMT.exe
- Added Connect/Disconnect feature on built-in and dongle.
- Added autoscanning feature on built-in and dongle.
- Removed unpaired devices on Bluetooth Management Tool list when using dongle.
- Removed unsupported bluetooth devices scanned on Bluetooth Management Tool list on built-in and dongle.
- Fixed Pairing-Connectivity Status on built-in and dongle.

v1.0.0.14 (30/1/2017)
1. Driver
- Update set parameters default values
- Implement encryption/decryption of Authentication Key saved in registry

v1.0.0.13 (27/10/2016)
1. Driver
- Add support for ACR3901U-S1 FW V2.02		
2. ACSBDMT.exe (v1.0.0.13)
- Use ACR1255U-J1 Link parameters on authentication during installation (Fixed ACR1255U-J1 installation)

v1.0.0.12 (19/10/2016)
1. Driver
- Initialize dongle's link connection parameters based on reader type.
       *ACR3901_TYPE: max_interval = 0x0006, min_interval = 0x0006, slave_latency = 0, connection_timeout = 0x03E8
       *ACR1255_TYPE: max_interval = 0x0020, min_interval = 0x0006, slave_latency = 1, connection_timeout = 0x0258            
2. acsbluetoothleapis.dll (1.0.0.13)
- Modified AcsBluetoothInitialize() to AcsBluetoothInitialize(USHORT minConnectionInterval ,USHORT maxConnectionInterval, USHORT connectionLatency, USHORT connectionTimeout)
- Ignores LinkParameterUpdate Event        
3. ACSBDMT.exe (v1.0.0.12)
- Updated installation process to use one connection link only (fix installation error for ACR3901U-S1 fw V1.09)

v1.0.0.11 (10/10/2016)
1. Driver
- Remove restart on installation        
2. acsbluetoothleapis.dll (1.0.0.12)
- Adjust initial link parameter to prevent ACR3901U-S1 FW V1.09 Transmit error
       * Maximum Connection Interval = 0x0006 (7.25ms)
- Handle Link_Parameter_Update_Event to automatically adjust Link Parameters.

v1.0.0.10 (07/10/2016)
1. Driver
     - Changed PCSC reader name to "ACS [Model]-[Serial] N" Format for all readers        
2. ACSBDMT.exe (v1.0.0.11)
     - Add "Device Information" in item context menu to get FW Version and Serial number when using dongle

v1.0.0.9 (03/10/2016)
1. Driver
     - Added SCARD_ATTR_VENDOR_IFD_BT_ADDRESS to retrieve device bluetooth address
     - Added SCARD_ATTR_VENDOR_IFD_BT_PROFILE to retrieve device type (ACR3901 = 1 and ACR1255 = 2)
     - PC/SC Reader name for ACR3901U-S1 with firmware V1.13 is now same as Model number characteristic value        
2. ACSBDMT.exe (v1.0.0.10)
     - Tool identifies a device by service UUID instead of Device Model Name value
     - Displays Advertisement information only when scanning devices using dongle, FW and Serial number will be set to "Not Available"
     - Gets Device information FW and Serial upon installation only    
3. acsbluetoothleapis.dll (1.0.0.11)
     - Adjust link parameters to prevent ACR1255U-J1 from disconnecting.
       * Supervision Timeout = 0x03E8 (1000ms)
       * Minimum Connection Interval = 0x0006 (7.25ms)
       * Maximum Connection Interval = 0x0025 (46.25ms)
       * Slave Latency = 0x0002

v1.0.0.8 (26/8/2016)
1. Driver
     - Add backward compatibility to ACR3901U-S1 FWV1.09
     - Uses single HWID for all ACR3901U-S1 devices (*ACO0011) regardless of FW version
     - Updated PnP Algorithm to handle Windows OS Hibernate properly
2. ACSBDMT.exe (v1.0.0.9)
      - Add support for single HWID for all ACR3901U-S1 devices
      - Fix device scanning cannot see all BT readers

v1.0.0.7 (04/8/2016)
1. Driver
     - TI Dongle COM port driver is uninstalled correctly. Fixed COM port number keeps incrementing
     - Fixed error on WHQL test when card is inserted backward
     - Removed force reboot on installation
     - Added support for PPS (ACR3901U-S1)
     - Stability updates    
2. acsbluetoothleapis.dll (1.0.0.10)
     - Set connection parameters to optimum values
       *Minimum Connection Interval: 7.25 ms (TI Dongle Limit)
       *Maximum Connection Interval: 7.25 ms
     - Reduced thread usage
     - Fixed racing of data frames
     - Stability updates        
    
v1.0.0.6 (26/5/2016)
1. Driver
     - Fixed ACR1255U-J1 device do not stop beeping and does not detect card        
2. acsbluetoothleapis.dll (1.0.0.7)
     - Fixed 32bit build by disabling compile optimization
        
v1.0.0.6 (04/5/2016)
1. ACSBDMT.exe (v1.0.0.8)
     - Fix crashing when unknown bt device were detected (non-ACS reader bluetooth device)     
2. acsbluetoothleapis.dll (1.0.0.6)
     - Fixed timeout error during device authentication with ACR1255U-J1
     - Fixed handling multiple event during authentication with ACR1255U-J1
        
v1.0.0.6 (28/4/2016)
1. Driver
     - Change drivers name in the device manager.
     - "ACR3901 V0 BLE Virtual Reader" => "ACR3901 V0 BLE ICC Reader"
     - "ACR1255U-J1 BLE Virtual Reader" => "ACR1255U-J1 BLE PICC Reader"
     - "ACR3901 BLE Virtual Reader" => "ACR3901 BLE ICC Reader"
     - Added support for ACR1255U-J1 reader sleep notification. will change SCARD_PRESENT to SCARD_SWALLOWED
     - Fixed memory leaks
     - Fixed memory access violation errors
        
2. acsbluetoothleapis.dll (1.0.0.5)
     - Fixed memory access violation errors
     - Fixed heap allocation leak
     - Fixed TLS not freed error

v1.0.0.5 (08/3/2016)
1. Driver 
     - fixed ACR1255 authenticate IOCTL

2. ACSBDMT.exe (v1.0.0.7)
     - fixed spelling error "retreiving"
     - fixed BT007952: add "list readers ok" message after scan
     - added support for FW T0XX

3. acsbluetoothleapis.dll (v1.0.0.4)
     - changed Events to manual reset to prevent unwanted event triggers

v1.0.0.5 (12/2/2016)
1. ACSBDMT.exe
     - authenticates reader upon installation
    
v1.0.0.5 (03/2/2016)
1. Driver 
     - added reboot prompt after package install
     - fixed card not detected after sleep-wakeup
     - fixed driver not responding/connecting
2. ACSBDMT.exe
     - auto enable/disable of installation menus based on driver status
     - changed TI dongle paring status from "NA" to "Paired/Unpaired"
     - fixed acceptance of invalid device key value on install and authenticate
     - automatic setting bt adapter on first run of the application
3. acsbluetoothleapis.dll
     - fixed error in reading COM port when IO is pending (win 10 issue)
     - close COM port if initialize() failed
     - finalize() command will always succeed after a successful initialize() 
    
v1.0.0.5 (21/1/2016)
1. Driver
     - updated reader names
     - "ACS ACR3901 V1 BLE ICC Reader" to "ACS ACR3901 BLE ICC Reader" for encrypted
     - "ACS ACR3901 BLE ICC Reader" to "ACS ACR3901 V0 BLE ICC Reader" not encrypted
2. ACSBDMT.exe
     - added some tooltips
     - updated reader names 
     - "ACS ACR3901 V1 BLE ICC Reader" to "ACS ACR3901 BLE ICC Reader" for encrypted
     - "ACS ACR3901 BLE ICC Reader" to "ACS ACR3901 V0 BLE ICC Reader" not encrypted
3. acsbluetoothleapis.dll
     - none    

v1.0.0.5 (08/01/2016)
1. Driver
     - will check if driver is idle before checking if the device is connected
     - changes state to SCARD_SWALLOWED when device goes to sleep
     - merge modules for msvc++ 2013 are included in the msi instead of dll files
2. ACSBDMT.exe
     - application adapter switch: dongle or bluetooth adapter
     - driver adapter switch: dongle or bluetooth adapter
3. acsbluetoothleapis.dll:
        fixed access violation errors

v1.0.0.5 (01/10/2015)
1. Phase 5: Driver (01/10/2015)
     - supports Windows 7 (using TI Dongle) and later OS (using Windows BT stack).
     - supports ACR3901 (FW V1.XX and FW V0.XX)
     - supports ACR1255 (FW V1.13.0)
     - fixed authenticate command
2. ACSBDMT.exe (24/09/2015):
     - reads device information upon scanning in windows 7
3. acsbluetoothleapis.dll (24/09/2015)
     - will scan on any available TI Dongle
    
v1.0.0.4 (24/7/2015)
1. Phase 4: added support for ACR3901 authentication and encryption (FW 1.06)

v1.0.0.4 (22/6/2015)
1. Phase 3: added support for ACR1255 authentication and encryption (FW 1.11)

v1.0.0.3
1. update to driver for ACR3901 (FW 0.NN)

v1.0.0.0 Preview (26/9/2014)
1. New release.


4. File Contents
----------------

|   ReadMe.txt
|   Setup.exe
|   Setup.ini
|
+---redist
|       InstMsiW.exe
|
+---x64
|       ACS_Unified_Bluetooth_PCSC_Driver-2.3.0.0.msi
|       Arabic.mst
|       Chinese (Simplified).mst
|       Chinese (Traditional).mst
|       Czech.mst
|       Danish.mst
|       Dutch.mst
|       Finnish.mst
|       French.mst
|       German.mst
|       Greek.mst
|       Hebrew.mst
|       Hungarian.mst
|       Italian.mst
|       Japanese.mst
|       Korean.mst
|       Norwegian.mst
|       Polish.mst
|       Portuguese (Brazil).mst
|       Portuguese (Portugal).mst
|       Romanian (Romania).mst
|       Russian.mst
|       Spanish.mst
|       Swedish.mst
|       Turkish.mst
|       Ukrainian.mst
|
\---x86
        ACS_Unified_Bluetooth_PCSC_Driver-2.3.0.0.msi
        Arabic.mst
        Chinese (Simplified).mst
        Chinese (Traditional).mst
        Czech.mst
        Danish.mst
        Dutch.mst
        Finnish.mst
        French.mst
        German.mst
        Greek.mst
        Hebrew.mst
        Hungarian.mst
        Italian.mst
        Japanese.mst
        Korean.mst
        Norwegian.mst
        Polish.mst
        Portuguese (Brazil).mst
        Portuguese (Portugal).mst
        Romanian (Romania).mst
        Russian.mst
        Spanish.mst
        Swedish.mst
        Turkish.mst
        Ukrainian.mst


5. Limitations
--------------



6. Support
----------

In case of problem, please contact ACS through:

Web Site: http://www.acs.com.hk/
E-mail: info@acs.com.hk
Tel: +852 2796 7873
Fax: +852 2796 1286



-----------------------------------------------------------------


Copyright
Copyright by Advanced Card Systems Ltd. (ACS) No part of this reference manual may be reproduced or transmitted in any from without the expressed, written permission of ACS.

Notice
Due to rapid change in technology, some of specifications mentioned in this publication are subject to change without notice. Information furnished is believed to be accurate and reliable. ACS assumes no responsibility for any errors or omissions, which may appear in this document.

