Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 16 Mar 2018 10:07:30 -0600
From:      Waitman Gobble <waitman@waitman.net>
To:        Matthias Apitz <guru@unixarea.de>
Cc:        freebsd-usb@freebsd.org
Subject:   Re: RFID reader/writer with USB interface for FreeBSD
Message-ID:  <7c2f1922.AMQAAAGH0g4AAAAAAAAAAGf8IIcAAAAAjvkAAAAAAAXflABaq-vI@mailjet.com>
In-Reply-To: <20180316141619.GA2937@c720-r314251>
References:  <20180316141619.GA2937@c720-r314251>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 16 Mar 2018 15:16:19 +0100
Matthias Apitz <guru@unixarea.de> wrote:

> 
> Hello,
> 
> Is there any RFID reader/writer solution which is OpenSource and runs on
> FreeBSD using libusb? The background of the question is: We own some
> Java written application, written for Windows, which works fine as well
> on FreeBSD and Linux. Is the following exception:
> 
> It uses from the Java code through a C++ call interface, written by us,
> some proprietary Windows DLL to access the RFID pad.
> 
> Running the Java app on FreeBSD, the  JVM looks for the interface shared
> lib as 'libRFIDInterface.so' (on Windows as 'RFIDInterface.dll'), which
> ofcourse is not there. On Windows our 'RFIDInterface.dll' in turn
> uses the proprietary 'BiblioChip.dll' from a 3rd party to handle the
> requests to/from the RFID pad. As the 'libRFIDInterface.so' is not there the JVM gives
> 
> java.lang.UnsatisfiedLinkError: com.sisis.rfid.RFIDNativeInterface.BibOpenReader()
> ...
> 
> If there would be any OpenSource RFID reader software, I could write the
> required interface in C or C++ on top of its API.
> 
> Any ideas or comments on this?
> 
> Thanks
> 
> 	matthias
> 
> -- 
> Matthias Apitz, ✉ guru@unixarea.de, ⌂ http://www.unixarea.de/  📱 +49-176-38902045

I wrote some drivers for Impinj chipset, which are supposedly standard but I haven't tried with other chipsets.

Works great on Windows and I have a FreeBSD driver working. It should also work on Linux but I have some issue with the data coming in chunks, that I haven't spent time troubleshooting.

For USB I was using a serial-to-usb cable. If the device already has a USB connection it is probably using the same hardware as a serial-to-usb cable, I think there are only one or two mfgs that make the chipset for that. On FreeBSD and Windows machines I have used the drivers with a small RFID reader/writer as well as larger devices.

My drivers are based on 'stream reading' without using the buffer on the device, but it's easy to switch to buffered mode if you want. These devices do round-robin on the antennas if you have multiple antennas, it's not simultaneous. With buffered reading you do not get duplicates but you also do lose precision in the time that you are able to record the chip. stream-reading you will get a *bunch* of dups but much more granularity in reading.

I never published the software but I don't mind sharing, just have to dig it up. 

There are written in C++. I don't do java but as I recall I believe one issue is java does not support unsigned chars without some 'finangling' or a third-party driver, i think google has one.  And these devices totally operate with unsigned chars.


-- 
Waitman Gobble 
+1 650 621 0423



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?7c2f1922.AMQAAAGH0g4AAAAAAAAAAGf8IIcAAAAAjvkAAAAAAAXflABaq-vI>