From owner-freebsd-usb@freebsd.org Fri Mar 16 16:17:29 2018 Return-Path: Delivered-To: freebsd-usb@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 17860F5AF1C for ; Fri, 16 Mar 2018 16:17:29 +0000 (UTC) (envelope-from 7c2f1922.AMQAAAGH0g4AAAAAAAAAAGf8IIcAAAAAjvkAAAAAAAXflABaq-vI@bnc3.mailjet.com) Received: from o14.p25.mailjet.com (o14.p25.mailjet.com [185.189.236.14]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 99B9F873E3 for ; Fri, 16 Mar 2018 16:17:28 +0000 (UTC) (envelope-from 7c2f1922.AMQAAAGH0g4AAAAAAAAAAGf8IIcAAAAAjvkAAAAAAAXflABaq-vI@bnc3.mailjet.com) Message-Id: <7c2f1922.AMQAAAGH0g4AAAAAAAAAAGf8IIcAAAAAjvkAAAAAAAXflABaq-vI@mailjet.com> Mime-Version: 1.0 From: Waitman Gobble To: Matthias Apitz Subject: Re: RFID reader/writer with USB interface for FreeBSD Date: Fri, 16 Mar 2018 10:07:30 -0600 Cc: freebsd-usb@freebsd.org In-Reply-To: <20180316141619.GA2937@c720-r314251> Organization: Waitman Gobble References: <20180316141619.GA2937@c720-r314251> X-CSA-Complaints: whitelist-complaints@eco.de X-MJ-AUTH-USER: bea55e35e4fb61a1ad1eacbd3650a917 X-MJ-GUID: 521ca0e4-e766-4d1d-b268-5086146da87a X-MJ-Mid: AMQAAAGH0g4AAAAAAAAAAGf8IIcAAAAAjvkAAAAAAAXflABaq-vIUhyg5OdmTR2yaFCGFG2oegAFoPU X-MJ-SMTPGUID: 50179971-fbe8-474a-b43a-f8b03778a436 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: freebsd-usb@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: FreeBSD support for USB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Mar 2018 16:17:29 -0000 On Fri, 16 Mar 2018 15:16:19 +0100 Matthias Apitz 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