-
-
Notifications
You must be signed in to change notification settings - Fork 107
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Identiv 3700F occasionally fails to power up card #102
Comments
The "error" is reported by the reader itself.
The reader reports: card absent or mute. So there is no point trying a power up again. I could modify the CCID driver to try again a new power up. Try with the attached patch for the CCID driver. |
Thank you! This does indeed fix the problem. I applied to this to the latest git master for CCID, tested on both ubuntu and raspbian. I also had a python script using pyscard that was returning blank events to the |
Here is the rough log output now:
|
That is interesting. To write a correct fix I would like to know what the Windows driver is doing to avoid the problem. Maybe it does something completely different. I moved the reader from the list "Should work but untested by me" to the list "Unsupported or partly supported CCID readers". |
I have a beagle USB protocol analyser, would it help if I captured some dumps from the device communication under windows? |
Yes. That would help. |
The reader sometimes fails to power up a card. See "Identiv 3700F occasionally fails to power up card #102" LudovicRousseau/PCSC#102
I have been playing around with this further on windows. It seems that I can reproduce the problem on windows if the diagnostic software is not running. If it is running, I have not been able to get it to fail, but the accesses slow down quite a bit; I have the tag in the field for 2-3 seconds before the LED changes from green to orange and the device starts sending USB transfers. So I wonder if this is perhaps a timing issue (other than the fact that there is clearly a bug in the reader firmware)? I have attached two logs of the USB packets. "tag_reader_failure.tdc" is a log with the diagnostic software not running and some tag startup failures. "tag_reader_working.tdc" is a log with the diagnostic software running. In both cases I swiped the tag in and out of the reader field a number of times. You can view the files in the free viewer tool from Beagle: https://www.totalphase.com/products/data-center/ ; if that is a problem let me know and I think I can export them as CSV, although the software interface is much more helpful in my experience. |
I should add: with the diagnostic software running, both the detection and reaction of the reader to the tag entering and tag leaving the field is delayed significantly. Ie the light will take ~2s to go from green to orange when putting the tag on the reader, and ~2s to go from orange to green after removing the tag from the field. |
I have tried the following patch and it also works, basically just wrapping the
(edit: tidy up the patch a little) |
You traces contains PC_to_RDR_Escape frames (frames with 6Bh as the 1st byte). These frames are NOT documented by the CCID specification and are used to send proprietary commands to the reader.
In the working case you can see you have the command Without the documentation from Identiv/SCM it is nearly impossible to know what these commands are doing. I sent an email to Identiv/SCM asking what they plan to do. We will see... |
Please check with firmware v1.19 now available on Identiv website. |
I can confirm that I was able to reproduce the problem before the update, and after I can not reproduce it anymore. So I would consider this fixed. Thank you for your help! @LudovicRousseau You can move the 3700F back into the supported list and close this issue if you feel this is acceptable. |
Done. |
I am using PCSC 0.9.1 with an Identiv uTrust 3700F and an NTAG213/NTAG216 NFC tag. It works quite well, but occasionally it is unable to power up the card and has a blinking red light on the device. I am testing on both raspbian and xubuntu 20.04, both show the same issue.
I can't reproduce this problem with the device connected to Windows with the Identiv diagnostic tool. I also can't reproduce the issue using a uTrust 3720F connected to PCSC on linux.
If I leave the tag there, eventually the red blinking status light turns green again (indicating idle or no card detected) and no matter how long I leave the card there it will not read it. Is it possible to configure PCSC to retry the connection if it fails ?
Below is the log of me swiping a tag on and off a number of times, the line which contains "ifdhandler.c:1251:IFDHPowerICC() PowerUp failed" is what corresponds to the issue.
log.txt
The text was updated successfully, but these errors were encountered: