-
Notifications
You must be signed in to change notification settings - Fork 135
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
Control Error in LED Example #13
Comments
Hi @therealri, I think that it caused by the special feature of standard PCSC drivers (in all OSs). By default standard system PCSC driver doesn't allow to send any commands in direct mode (i.e. without any card present). You can still send LED control commands when a card is present but it is quite useless. To allow sending control (i.e. escape) commands in direct mode, you have to set a special value in registry (when you are on Windows) or in Info.plist of driver (on macOS and Linux). Here is an article to this problematic, but it is quite old. I was dealing with this problem too (I am also on macOS and btw using ACR122U too 😄). You have to set the value of So step by step:
Let me know if you have any problems. Hope it helps. |
Thanks so much @pokusew! |
any help on how to enable this on win 10 x64? |
I figured out where to add the DWORD values, but I'm still unable to connect in direct mode. If anyone stumbles upon this and is able to figure it out, please let me know! Here's how to figure out where to add your values:
The error I get is:
Obviously changing port means you have to re-add the values for that entry. I'm pretty confident this is the right place, but for some reason it just isn't working :/ |
Hey, I'm also stuck in turning off the buzzer of the ACR122 reader. Is it possible to turn it off in the code behind? Anyone who can help me? |
@mich356c I am having the same issue with an ACR1222L. I tried your solution but it didn't work. Did you manage to find a solution? |
@carol-braileanu Unfortunately I haven’t |
@pokusew Any docs for how to do this on linux? Debby based. Edit: Editing the file should work
Making the change as per above then
Should do it :) |
Hi, { ControlError: An error occurred while transmitting control. |
Any update on windows 10? I'm getting:
|
@carol-braileanu Any luck ? |
No luck here either. The problem (I think) lies in the manufacturer's driver itself. I was not able to disable the buzzer or the LEDs on Windows 10 even when using the provided ACR122UTool which is made by the same people that made the ACR122U reader/writer. Upon disabling the buzzer and applying changes, the reader responds with a "success" message, but the buzzer doesn't actually turn off. I tried using older driver versions as well to no avail. I was able to connect and disable the buzzer and manipulate the LEDs on Linux though (Raspberry Pi 3 using Raspbian). Might be worth checking if this is possible on Windows 7 or even message the manufacturer to see if they have any suggestions. I'll get back with any more info. |
Any new info on this? :/ |
Hello, I'm trying to disable the buzzer with the ACR122U on ubuntu. Sending the turn-off ADPU when a card is placed on the reader works but it will beep when the card is detected for the first time. Any idea? |
Looks like it is possible to disable the speaker when using
|
For me, the control commands do not work at all and a quick fix seems to be sending everything as a transmit command.
UPDATE
to
And in pcsclite change in Maybe they released a new hardware version and by that the escape command changed?! |
@aximut has the key solution but it's easier than they outline. I extracted the logic of Reader.js (https://github.com/pokusew/nfc-pcsc/blob/master/src/Reader.js#L215) into my own code and called |
@AdamMcCormick ACS included it in their card reader tool. Nevertheless, they were lazy enough to not update their API docs and made me drain some hours on this. Meanwhile, I did some other hacky improvements on this, e. g. do a repeated connect attempt in case it fails once, because if you reconnect to the card shortly after disconnecting from direct mode, it will fail undeterministically. I work with a lot of APIs, but this hardware and/or the Windows driver stack is really crap and a pain for developers, I would not want to be the one responsible for it. |
@pokusew workaround no longer works on Big Sur in which the system volume is mounted read only. I asked on Apple Developers: https://developer.apple.com/forums/thread/678700 Maybe they will help... |
Just remove the buzzer :D https://wf.lavatech.top/ave/wogsd-physically-removing-the-buzzer-from-acr122u |
Pasting this from the forum that I found this issue attached to. In case anyone's still trying to figure out how to do it on OSX. It took Apple completely dropping the ball with Sonoma in terms of smart card reader support for the solution to this problem to come to light. In turns out, there is a way to completely ignore the CCID driver that comes with OSX and just install you own. Not sure why I never thought about doing that until I was forced to do it. Here are the steps I took to achieve this: Make sure you have installed both libusb and pkg-config from brew.
Assuming you've followed along correctly and everything ran without issues, you should now have a new CCID driver installed in /usr/local/libexec/SmartCardServices/drivers/ifd-ccid.bundle. If you open the bundle, you can find the same Info.plist but this one is editable. Once you have made all your changes, in order for this driver to take effect you have to reboot the system. |
I'm on MAC (Sonoma), my SIP is disabled (and Filevault too), impossible to change ifdDriverOptions to 0x0001 (Info.plist), as soon as I save it, the system resets systematically the value to 0x0000. I don't understand, any ideas? |
Are you using the ifdDriverOptions in /usr/local/libexec/SmartCardServices/drivers/ifd-ccid.bundle or the one in /usr/libexec/SmartCardServices/drivers/ifd-ccid.bundle? The one in usr/libexec is in a read only part of the OS file structure |
/usr/local/libexec/SmartCardServices/drivers/ifd-ccid.bundle/Contents/MacOS/Info.pList file (ifdDriverOptions to 0x0001), but after a reboot some APDU commands (LED, Initiator Mode, ... -> NFC Tag Emulation) don't work, I always get a transmission error (Transaction failed.(0x80100016). |
Odd, my change has survived after reboots and OS updates. What are you using to edit the file? |
I m having similar issue as you. |
Update, on Windows you need to SCardConnect with no Protocol value (0) |
Hey @pokusew,
Thanks for this great package!
I am getting this error when trying to run the led.js example on macOS 10.12.4:
The text was updated successfully, but these errors were encountered: