User Tools

Site Tools


cvend

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
cvend [2026-03-15 04:01 UTC (3 weeks ago)] penguinowlcvend [2026-03-17 20:08 UTC (2 weeks ago)] (current) – [Card reader flow] penguinowl
Line 1: Line 1:
-{{ :0:m075031_desfire.pdf |}}====== cVEND NFC Reader ====== +====== cVEND NFC Reader ======
  
 cVEND is the NFC reader on the bottom half of the PM3 cVEND is the NFC reader on the bottom half of the PM3
Line 66: Line 65:
 | 0xba | -> | | //unknown, registered in ProxCardDesfire::ProxCardDesfire(RFIDReader&)// | | 0xba | -> | | //unknown, registered in ProxCardDesfire::ProxCardDesfire(RFIDReader&)// |
 | 0xbb | <- | DESFireCardRemoved | sent by reader when DESFire card removed from field | | 0xbb | <- | DESFireCardRemoved | sent by reader when DESFire card removed from field |
-| 0xbc | -> | DESFireCommand | sends desfire command, documented in {{ :m075031_desfire.pdf }} |+| 0xbc | -> | DESFireCommand | sends desfire command, documented in {{ 0:m075031_desfire.pdf}} |
 | 0xbd | <- | DESFireCommandReply | response to command, documented above | | 0xbd | <- | DESFireCommandReply | response to command, documented above |
 | 0xbe | <- | UnhandledCard | sent by reader when a card is presented that is not supported by any enabled ProxCardFunction, containing UID, historical bytes, and other data | | 0xbe | <- | UnhandledCard | sent by reader when a card is presented that is not supported by any enabled ProxCardFunction, containing UID, historical bytes, and other data |
Line 84: Line 83:
 <- - Reader to Host <- - Reader to Host
  
-==== Card reader flow ====+==== Sample reader flow ====
  
   - Host enables desired card type with ''ProxCardFunction''.   - Host enables desired card type with ''ProxCardFunction''.
   - Reader acknowledges with ''ProxCardFunctionReply''.   - Reader acknowledges with ''ProxCardFunctionReply''.
-  - Reader waits for card, will go to sleep without any stimuli. Can reawaken it with any host command (e.g. ''Status''.+  - Reader waits for card, seems like it eventually goes to sleep without any stimuli. Might have to keep it awake by sending packets occasionally (e.g. ''Status'').
   - When card is scanned, reader sends the corresponding read packet if the card type is enabled (e.g. ''DESFireRead'' for DESFire). If type is not enabled, sends ''UnhandledCard''.   - When card is scanned, reader sends the corresponding read packet if the card type is enabled (e.g. ''DESFireRead'' for DESFire). If type is not enabled, sends ''UnhandledCard''.
-  - Card data can then be queried by sending the equivalent command packets. Example for reading a page off a DESFire (commands documented in {{ :m075031_desfire.pdf }} (all of the following packets are of type ''DESFireCommand'' and ''DESFireCommandReply''):  +  - Card data can then be queried by sending the equivalent command packets. DESFire commands are documented in {{ 0:m075031_desfire.pdf }}. Example for reading a page off a DESFire ( all of the following packets are of type ''DESFireCommand'' and ''DESFireCommandReply''):  
-  - Host sets DESFire application (e.g. packet type ''DESFireCommand'' with body ''0x5AF210E0'' for application ID ''0xE010F2''). **NOTE:** The application ID will vary between issuer/agency. For example, the stock software uses application ID ''F9C32B'' while Portland's TriMet uses the one in the example. You can check this for you card with an NFC reader or app. +  - Host sets DESFire application (e.g. packet type ''DESFireCommand'' with body ''0x5AF210E0'' for application ID ''0xE010F2''). **NOTE:** The application ID will vary between issuer/agency. For example, the stock software uses application ID ''F9C32B'' while Portland's TriMet uses the one in the example. You can check this for your card with an NFC reader or app. 
   - Reader responds with a status code in accordance with the documentation. This comes in the form of a ''DESFireCommandReply'' packet.   - Reader responds with a status code in accordance with the documentation. This comes in the form of a ''DESFireCommandReply'' packet.
-  - Host sends read command. To read the full contents of file 0x00, this is ''0xBD00000000000000''.+  - Host sends read command. To read the full contents of file 0x00, the body is ''0xBD00000000000000''.
   - Reader responds with the status code and file data.   - Reader responds with the status code and file data.
  
cvend.1773547269.txt.gz · Last modified: by penguinowl