cancel
Showing results for 
Search instead for 
Did you mean: 

ST25R3911B-DISCO with Android

itsgimbi
Associate II

I am attempting to use the ST25R3911B-DISCO plugged into Android and I am wondering if this is possible. Right now, I am using the ST25AndroidDemoApp with Android Studio and I am able to use NFC from my android tablet and find a ST25 tag. My end goal is instead of using the NFC of my android tablet, I want to try and use the NFC from the ST25R3911B-DISCO which would be connected to the android tablet through USB. Is this possible, and if so, how might I go about implementing this?

This discussion has been locked for participation. If you have a question, please start a new topic in order to ask your question
1 ACCEPTED SOLUTION

Accepted Solutions

Hi,

I don't know the ST25SDK in detail but I think yes, this is what is used for Windows PC. Similar will be needed for Linux but I guess some parts of it may even be re-used.

BR, Ulysses 

View solution in original post

7 REPLIES 7
Ulysses HERNIOSUS
ST Employee

Hello itsgimbi,

I think what you describe nobody has done before and I also expect huge efforts which I expect will not pay off for you. Giving some hints for you:

  1. Android NFC stack is running on top of an NFC controller which talks NCI. An NFC controller typically uses high-level primitives like "Start Discovery", inform me when a tag is found, etc. NCI typically goes over I2C
  2. ST25R3911B-DISCO is on a lower layer, typically send/receive single NFC frames. The board talks a proprietary protocol over USB HID.

Those two don't really fit together and for integration one would need to become experts on NCI, ST25R3911B-DISCO protocol and on NFC.

 

Best Regards, Ulysses

Hello Ulysses, 

Thanks for the quick reply. To follow up, there is a ST25 Java SDK introduction presentation that I found online that says on Android that "The RF reader interface implementation is directly plugged on Android SDK APIs (thin wrapper)." Does this mean that it is possible to plug the ST25R3911B-DISCO into my Android tablet and pull up a GUI to see if there is communication between the board and a ST25 tag? Or is it just in general not possible to run the ST25R3911B-DISCO on Android? Here is the link to the presentation if you unaware of it. ST25SDK presentation

 

Hi,

Your question sounded like you wanted to replace the stock Android NFC with ST25R3911B-DISCO. I.e. replace "Android RF reader" with ST25R3911B-DISCO. Any app/system using NFC would then implicitly use ST25R3911B-DISCO. That is what I was answering below.

What you describe now would be to use ST25SDK from one Android app to use the ST25R3911B-DISCO. This would be a bit easier, however you still need to hack into the Android system to be able to use JNI/control the USB HID to execute the proprietary USB HID protocol spoken by ST25R3911B-DISCO.

On Windows PC a DLL is provided which is used by some Reader implementation to drive the board. This you would need to replicate somehow on Android.

BR, Ulysses

Hi, 

So just to sum it up, if I am trying to make an app to use the ST25R3911B-DISCO NFC which would be connected to an android tablet through USB instead of the tablet's NFC, I would try to use JNI and control the USB HID.

Hi, 

yes, JNI or whatever other means you have to directly control the USB HID device (don't have experience on Android/Linux here).

Regards, Ulrich

Hi,

Thanks for the clarification. In the ST25SDK download, there a ST folder that contains support files for reader discovery kits based on CR95HF, ST25R3911B and ST25R3916 that includes RFReaderInterface implementation and JNI and dynamic library dependencies according to the readme. Could this be of help for me or are they used for something else?

Hi,

I don't know the ST25SDK in detail but I think yes, this is what is used for Windows PC. Similar will be needed for Linux but I guess some parts of it may even be re-used.

BR, Ulysses