Enable NFC for Linux and pcscd on Dell E7470 (and others) with ControlVault2
Jacek Kowalski
2019-03-25 ec8c6648819d21167a67817c0e6fa5c9937ec289
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
Sniffed communication between Windows 10 driver and Dell ControlVault2 USB device (vendor-specific interface):
 
 
##########
TURNING ON
##########
 
 
# CTRL 0x41 0x00 0x0001 0x0003
 
  TAG?- LEN--  VALUE
               ADDR
               10 NCI_COMMAND
 
> 01 00 00 04  10 2f 04  00
                  2f = NCI_MTS_CMD | NCI_PBF_NO_OR_LAST | NCI_GID_PROP
< 00 00 00 28  10 4f 04  24 00 44 65 63 20 31 33 20 32 30 31 33 32 32 3a 30 35 3a 30 36 00 01 0c 22 a1 95 07 02 07 32 30 37 39 35 41 31
                  4f = NCI_MTS_RSP | NCI_PBF_NO_OR_LAST | NCI_GID_PROP
 
> 01 00 00 07  10 2f 1d  03 05 90 65
                  2f = NCI_MTS_CMD | NCI_PBF_NO_OR_LAST | NCI_GID_PROP
< 00 00 00 05  10 4f 1d  01 01 07 32 30 37 39 35 41 31
                  4f = NCI_MTS_RSP | NCI_PBF_NO_OR_LAST | NCI_GID_PROP
 
> 01 00 00 04  10 2f 2d  00
                  2f = NCI_MTS_CMD | NCI_PBF_NO_OR_LAST | NCI_GID_PROP
< 00 00 00 27  10 4f 2d  23 00 00 00 07 32 30 37 39 35 41 31 00 00 00 00 00 00 00 00 00 71 06 05 00 00 00 e4 47 0f 02 db 40 00 00 00
                  4f = NCI_MTS_RSP | NCI_PBF_NO_OR_LAST | NCI_GID_PROP
 
> 01 00 00 05  10 2f 11  01 f7
                  2f = NCI_MTS_CMD | NCI_PBF_NO_OR_LAST | NCI_GID_PROP
< 00 00 00 05  10 4f 11  01 00
                  4f = NCI_MTS_RSP | NCI_PBF_NO_OR_LAST | NCI_GID_PROP
 
> 01 00 00 10  01 27 fc  0c 08 00 01 00 01 00 00 00 00 00 00 00
< 00 00 00 07  04 0e  04 01 27 fc 00
 
# CTRL 0x41 0x01 0x0000 0x0003
 
> 01 00 00 05  10 20 00  01 01
                  20 = NCI_MTS_CMD | NCI_PBF_NO_OR_LAST | NCI_GID_CORE
                     00 = NCI_MSG_CORE_RESET
                         01 = NCI_CORE_PARAM_SIZE_RESET
                            01 = NCI_RESET_TYPE_RESET_CFG
< 00 00 00 07  10 40 00  03 00 11 01
                  40 = NCI_MTS_RSP | NCI_PBF_NO_OR_LAST | NCI_GID_CORE
                     00 = NCI_MSG_CORE_RESET
                         03 = NCI_CORE_PARAM_SIZE_RESET_RSP
                            00 = NCI_STATUS_OK
                               11 = NCI_VERSION (1.1)
                                  01 = NCI_RESET_STATUS_RESET_CFG
 
> 01 00 00 06  10 20 01  02 01 00
                  20 = NCI_MTS_CMD | NCI_PBF_NO_OR_LAST | NCI_GID_CORE
                     01 = NCI_MSG_CORE_INIT
                         02 = size
< 00 00 00 1f  10 40 01  1b 00 03 1e 03 01 0a 00 01 02 03 81 84 83 04 82 05 0a 00 02 f7 3d 00 2e 02 01 0c 22
                  40 = NCI_MTS_RSP | NCI_PBF_NO_OR_LAST | NCI_GID_CORE
                     01 = NCI_MSG_CORE_INIT
                          1b = size
                            00 = NCI_STATUS_OK
 
> 01 00 00 6b  10 20 02  67 01 b9 64 01 00 ff ff 50 00 8b 13 00 10 00 06 00 00 00 00 00 ff 00 00 00 ff 00 00 04 00 00 00 00 03 00 00 00 03 00 0c 00 00 0d 00 00 00 00 00 00 00 00 00 00 33 23 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 02 53 3b 0f 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00
                  20 = NCI_MTS_CMD | NCI_PBF_NO_OR_LAST | NCI_GID_CORE
                     02 = NCI_MSG_CORE_SET_CONFIG
< 00 00 00 06  10 40 02  02 00 00
                  40 = NCI_MTS_RSP | NCI_PBF_NO_OR_LAST | NCI_GID_CORE
                     02 = NCI_MSG_CORE_SET_CONFIG
 
> 01 00 00 94  10 20 02  90 0a ca 05 00 00 00 00 2c 80 01 01 b0 05 01 03 03 03 08 b5 03 01 03 ff c9 0d 24 00 00 00 01 00 bb 00 e4 00 0a 01 02 d6 0d 01 02 00 00 00 00 00 01 00 01 5a 00 8a b2 02 e8 03 c8 1e 06 1f 00 0a 00 30 00 04 24 00 1c 00 75 00 77 00 76 00 1c 00 03 00 0a 00 56 01 00 00 40 04 d7 01 07 dd 32 00 00 00 29 16 08 08 06 04 00 00 00 1f 27 0a 6d 20 00 52 20 00 00 00 01 85 00 00 32 1f 00 00 02 0a 16 00 02 55 55 55 55 55 55 55 55 55 55 55 55 55 1e
                  20 = NCI_MTS_CMD | NCI_PBF_NO_OR_LAST | NCI_GID_CORE
                     02 = NCI_MSG_CORE_SET_CONFIG
< 00 00 00 06  10 40 02  02 00 00
                  40 = NCI_MTS_RSP | NCI_PBF_NO_OR_LAST | NCI_GID_CORE
                     02 = NCI_MSG_CORE_SET_CONFIG
 
> 01 00 00 0a  10 20 02  06 01 b7 03 02 00 01
                  20 = NCI_MTS_CMD | NCI_PBF_NO_OR_LAST | NCI_GID_CORE
                     02 = NCI_MSG_CORE_SET_CONFIG
< 00 00 00 05  10 61 07  01 00
                  61 = NCI_MTS_NTF | NCI_PBF_NO_OR_LAST | NCI_GID_RF_MANAGE
                     07 = NCI_MSG_RF_FIELD
< 00 00 00 06  10 40 02  02 00 00
                  40 = NCI_MTS_RSP | NCI_PBF_NO_OR_LAST | NCI_GID_CORE
                     02 = NCI_MSG_CORE_SET_CONFIG
 
> 01 00 00 05  10 2f 06  01 01
                  2f = NCI_MTS_CMD | NCI_PBF_NO_OR_LAST | NCI_GID_PROP
< 00 00 00 05  10 4f 06  01 00
                  4f = NCI_MTS_RSP | NCI_PBF_NO_OR_LAST | NCI_GID_PROP
 
> 01 00 00 12  10 20 02  0e 02 51 08 20 79 ff ff ff ff ff ff 58 01 07
                  20 = NCI_MTS_CMD | NCI_PBF_NO_OR_LAST | NCI_GID_CORE
                     02 = NCI_MSG_CORE_SET_CONFIG
< 00 00 00 06  10 40 02  02 00 00
                  40 = NCI_MTS_RSP | NCI_PBF_NO_OR_LAST | NCI_GID_CORE
                     02 = NCI_MSG_CORE_SET_CONFIG
 
> 01 00 00 0b  10 21 00  07 02 04 03 02 05 03 03
                  21 = NCI_MTS_CMD | NCI_PBF_NO_OR_LAST | NCI_GID_RF_MANAGE
                     00 = NCI_MSG_RF_DISCOVER_MAP
                         07 = size
                            02 = num_mapping_configs
                               04 = NCI_PROTOCOL_ISO_DEP
                                  03 = NCI_INTERFACE_MODE_POLL_N_LISTEN
                                     02 = NCI_INTERFACE_ISO_DEP
                                        05 = NCI_PROTOCOL_NFC_DEP
                                           03 = NCI_INTERFACE_MODE_POLL_N_LISTEN
                                              03 = NCI_INTERFACE_NFC_DEP
< 00 00 00 05  10 41 00  01 00
                  41 = NCI_MTS_RSP | NCI_PBF_NO_OR_LAST | NCI_GID_RF_MANAGE
                     00 = NCI_MSG_RF_DISCOVER_MAP
                         01 = NCI_DISCOVER_PARAM_SIZE_RSP
 
> 01 00 00 1b  10 20 02  17 01 29 14 46 66 6d 01 01 11 02 02 07 ff 03 02 00 13 04 01 64 07 01 03
                  20 = NCI_MTS_CMD | NCI_PBF_NO_OR_LAST | NCI_GID_CORE
                     02 = NCI_MSG_CORE_SET_CONFIG
< 00 00 00 06  10 40 02  02 00 00
                  40 = NCI_MTS_RSP | NCI_PBF_NO_OR_LAST | NCI_GID_CORE
                     02 = NCI_MSG_CORE_SET_CONFIG
 
> 01 00 00 1e  10 20 02  1a 02 61 14 46 66 6d 01 01 11 02 02 07 ff 03 02 00 13 04 01 64 07 01 03 60 01 07
                  20 = NCI_MTS_CMD | NCI_PBF_NO_OR_LAST | NCI_GID_CORE
                     02 = NCI_MSG_CORE_SET_CONFIG
< 00 00 00 06  10 40 02  02 00 00
                  40 = NCI_MTS_RSP | NCI_PBF_NO_OR_LAST | NCI_GID_CORE
                     02 = NCI_MSG_CORE_SET_CONFIG
 
> 01 00 00 14  10 20 02  10 05 30 01 04 31 01 00 32 01 40 38 01 00 50 01 02
                  20 = NCI_MTS_CMD | NCI_PBF_NO_OR_LAST | NCI_GID_CORE
                     02 = NCI_MSG_CORE_SET_CONFIG
< 00 00 00 06  10 40 02  02 00 00
                  40 = NCI_MTS_RSP | NCI_PBF_NO_OR_LAST | NCI_GID_CORE
                     02 = NCI_MSG_CORE_SET_CONFIG
 
> 01 00 00 09  10 20 02  05 01 00 02 fa 00
                  20 = NCI_MTS_CMD | NCI_PBF_NO_OR_LAST | NCI_GID_CORE
                     02 = NCI_MSG_CORE_SET_CONFIG
< 00 00 00 06  10 40 02  02 00 00
                  40 = NCI_MTS_RSP | NCI_PBF_NO_OR_LAST | NCI_GID_CORE
                     02 = NCI_MSG_CORE_SET_CONFIG
 
                               nfc_hal_pre_discover_cfg
> 01 00 00 0f  10 20 02  0b 01 c2 08 01 08 00 04 80 c3 c9 01
                  20 = NCI_MTS_CMD | NCI_PBF_NO_OR_LAST | NCI_GID_CORE
                     02 = NCI_MSG_CORE_SET_CONFIG
< 00 00 00 06  10 40 02  02 00 00
                  40 = NCI_MTS_RSP | NCI_PBF_NO_OR_LAST | NCI_GID_CORE
                     02 = NCI_MSG_CORE_SET_CONFIG
 
> 01 00 00 11  10 21 03  0d 06 00 01 01 01 02 01 80 01 82 01 06 01
                  21 = NCI_MTS_CMD | NCI_PBF_NO_OR_LAST | NCI_GID_RF_MANAGE
                     03 = NCI_MSG_RF_DISCOVER
< 00 00 00 05  10 41 03  01 00
                  41 = NCI_MTS_RSP | NCI_PBF_NO_OR_LAST | NCI_GID_RF_MANAGE
                     03 = NCI_MSG_RF_DISCOVER
 
# CTRL 0x41 0x01 0x0001 0x0003
 
 
 
###########
TURNING OFF
###########
 
# CTRL 0x41 0x01 0x0000 0x0003
# CTRL 0x41 0x00 0x0000 0x0003