From owner-freebsd-questions@FreeBSD.ORG Mon Oct 13 03:45:42 2014 Return-Path: Delivered-To: freebsd-questions@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 1A3CE8A2 for ; Mon, 13 Oct 2014 03:45:42 +0000 (UTC) Received: from mail-la0-x229.google.com (mail-la0-x229.google.com [IPv6:2a00:1450:4010:c03::229]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 8006D2C5 for ; Mon, 13 Oct 2014 03:45:41 +0000 (UTC) Received: by mail-la0-f41.google.com with SMTP id pn19so6011703lab.14 for ; Sun, 12 Oct 2014 20:45:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=n9AlqAJEliw3pQmvCRuXfpr589Molj18ByIUetEb/+o=; b=hwGSdqAN9geBlrR+7Mkwel60NuERb9rewHe0SfDpSVtSlwpljtsKh1mN7wiMCSdRe2 ksglBo0f3CZY8uR7RqCh9Y4tcqzzTx46eh63SV7+MAo0mjSeP5jL1heRHsgBaSimtmSa j+u++i05C8HGcQInNf8QD3Sdrc/eKlNJyRSkFBXXe9rr61XePjbN21b1q5qM3aDppLVv h15KTc1OmJqtwzxRrr7iy20dl3PBvQ01J+jnVLG7QKyQWDiWWchn3U1ZwHYu/ZbyHzPP 2G+VKxeJzB4yQrHSHhTd9RiXdaJ561dlKlvECKWPL5Btmp1SO7t6OiPdlL7OQKLEonZ3 B4NQ== MIME-Version: 1.0 X-Received: by 10.112.170.165 with SMTP id an5mr21299098lbc.6.1413171938905; Sun, 12 Oct 2014 20:45:38 -0700 (PDT) Received: by 10.25.215.29 with HTTP; Sun, 12 Oct 2014 20:45:38 -0700 (PDT) In-Reply-To: References: Date: Sun, 12 Oct 2014 20:45:38 -0700 Message-ID: Subject: Re: RFID tag read/write on FreeBSD From: Waitman Gobble To: "freebsd-questions@freebsd.org" Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.18-1 X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Oct 2014 03:45:42 -0000 On Sun, Oct 12, 2014 at 5:05 PM, Waitman Gobble wrote: > Hi, > > If you are wanting to read and write RFID tags (for like tracking people, > and stuff) on FreeBSD I am working on software based on the Impinj R2000 > chipset. The SDK/demos are in c# / .NET, which runs in 'mono' but the mono > people have apparently omitted the code for serial port callback functions > so it basically sits there.. which is useless IMHO. So it looked to me like > more work to make the code do what i need it to, at least in my > application, instead of starting from scratch. > > Anyhow at the moment it's performing basic functions and reading tags.. > writing tags soon. > > ie, > > # ./rfid > Connected to /dev/cuaU0 at 115200 baud. > RFID read/write tags > Control-C or Q to quit, > R to Read Tag > > Received Command: 72 > Firmware Version: 1.9 > r > Received Command: 81 > Tag: [pc 30 0] [epc e2 0 57 76 76 6 1 52 5 90 d7 5f] [crc 7f 6] [data e2 0 > 57 76] [ant 1] [cnt 1] > > It's free. > > https://github.com/waitman/rfid > > builds with clang but needs boost port. i presume it may work with the > RS500, R500 or R1000 chips but I've not any of those to test. > > -- > Waitman Gobble > Los Altos California USA > 510-830-7975 > Update, writing tags now works. Also tested on PR9200 chip, Phychips. Which is apparently optimized for "Fast Moving Consumer Goods". so if you want to track those kinds of things instead of people. After I talked to some people I now understand the protocol is mostly standardized so it might be good to turn this into a port, since it should theoretically work with all the modern RFID chipsets. And "AFAIK" RFID tag stuff has been limited to MS OS computers. # ./rfid Connected to /dev/cuaU0 at 115200 baud. RFID read/write tags Control-C or Q to quit, R to Read Tag W to Write Tag Received Command: 72 Firmware Version: 1.9 r Received Command: 81 Tag: [pc 30 0] [epc 11 22 33 44 76 6 1 52 5 90 d7 5f] [crc 8a 6] [data 11 22 33 44] [ant 1] [cnt 1] w Write Tag. Now enter data on one line. Four bytes separated by SPACEs. Example: 11 22 33 44 55 77 88 33 Received Command: 82 Tag Write Operation Complete. Read Tag to confirm data. r Received Command: 81 Tag: [pc 30 0] [epc 55 77 88 33 76 6 1 52 5 90 d7 5f] [crc 6a 2f] [data 55 77 88 33] [ant 1] [cnt 1] q Note: At the moment it's hard-coded for 4 data bytes in EPC. This can be adjusted in the code, eventually may be entered as command. -- Waitman Gobble Los Altos California USA 510-830-7975