From ec8c6648819d21167a67817c0e6fa5c9937ec289 Mon Sep 17 00:00:00 2001
From: Jacek Kowalski <Jacek@jacekk.info>
Date: Mon, 25 Mar 2019 00:12:55 +0000
Subject: [PATCH] Add README.md

---
 README.md |   44 ++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 44 insertions(+), 0 deletions(-)

diff --git a/README.md b/README.md
new file mode 100644
index 0000000..8cdc287
--- /dev/null
+++ b/README.md
@@ -0,0 +1,44 @@
+# Enable NFC on Dell ControlVault2
+
+## Introduction
+
+Recent Dell laptops - i.e. E7470 - contain integrated Broadcom NFC (contactless), (contacted) chip card and fingerprint reader (USB 0a5c:5834 - Broadcom BCM5880 USH).
+
+The contacted card reader works out of the box on Linux, yet NFC reader does not - no RF field is present.
+
+Instructions from [blog.g3rt.nl](https://blog.g3rt.nl/enable-dell-nfc-contactless-reader.html) are not applicable: the ushdiag.exe does not recognize the device at all.
+
+This project aims to enable Linux to read NFC cards the same way Windows does.
+
+## Usage
+
+1. Clone the repository.
+1. Install python3 and python3-usb.
+1. Run: `./bcm20795.py on`
+1. Run `pcsc_scan` or whatever you prefer.
+1. Enjoy!
+
+To disable the reader replace `on` with `off`.
+
+## Supported devices
+
+Currently only the following devices were tested and are known to work:
+
+* `0a5c:5834`
+
+Firmware update (done during driver installation on Windows) may be required.
+
+## How it works?
+
+Python script sends the same sequence of commands the Windows driver does. The traffic was sniffed using USBPcap and Wireshark (kudos to [~jkramarz](https://github.com/jkramarz) for that).
+
+The data is sent as-is and responses are read, but no error-checking is done.
+
+The semi-annotated traffic dump is available as [traffic.txt](traffic.txt) - feel free to decode it further!
+
+The communication protocol is based on NCI (NFC Controller Interface). Unfortunately the specs are not freely available and some proprietary extensions are used. libnfc-nci and kernel sources were used to decode some structs.
+
+## References
+
+* https://android.googlesource.com/platform/external/libnfc-nci/ - the driver of NFC component (BCM 20795),
+* https://blog.g3rt.nl/enable-dell-nfc-contactless-reader.html - this does not work on E7470.

--
Gitblit v1.9.1