Digital Logic have a very nice set of Smart Card readers. I have purchased one of those.

They work well with the Infineon Securyty 2Go smart cards I received for the Infineon Blockchain Starter Kit road test.

Its a well buit reader from a interesting company. But there's a but .

 

The readers don't support PC/SC, and to program them, you depend on libraries and executables that are available in binary format.

Many, but not all, utilities come with source code. They have dependencies on D-Logic libs that are released in binary only though.

Others utilities are available as executables, but the Linux binaries are for Intel platforms. No Arm, so not runnable on a Raspberry Pi or BeagleBone. And that's where I need them.

 

I'd like to avoid libs with unknown license in a public blog. And I'd like to find an open way to talk to the NFC device.

There may be a solution. D-Logic published an Android Java example that's not dependent on their proprietary libraries.

This example / user tutorial is not depending on D-Logic libraries.

It is depending on FTDI's serial lib - but that's in essence a serial communication wrapper. By just reading how the lib is called in the example you can defer what's requested on the serial side.

All other dependencies are open source or standard (android, java.io, java.util and xmlpull.org).

 

import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.pm.PackageManager;
import android.hardware.usb.UsbAccessory;
import android.hardware.usb.UsbManager;
import android.os.BatteryManager;
import android.os.Build;
import android.os.ParcelFileDescriptor;

import com.ftdi.j2xx.D2xxManager;
import com.ftdi.j2xx.FT_Device;

import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;

import java.io.FileDescriptor;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;

 

This should be doable. My next steps will be to try and find the flow in the example.

Then find where the essentials for APDU communication.

Then abstract away dependencies on android and FTDI. Hang on ...