node package manager
Orgs are free. Discover, share, and reuse code in your team. Create a free org »


Simple rfidgeek adaptor to Node.js

This adaptor is primarily made for the Univelop 500 RFID reader/writer made by Texas Instruments.

This reader supports the following tags:

  • ISO15693
  • ISO14443A
  • ISO14443B


Uses event emitters for passing tag and content, and can be controlled by nodejs, or externally via TCP Socket or Websocket.

var rfid = require('rfidgeek'); 


rfid.init() takes optional parameters (defaults in parantheses):

tcpsocket:      (false)                  // {port: <port>, host: <host>} | true, defaults to localhost:4444
websocket:      (false)                  // {port: <port>, host: <host>} | true, defaults to localhost:4444
debug:          ('none')                 // show debug information, possible values: 'none', 'error', 'debug'
portname:       ('/dev/ttyUSB0')         // device path to reader
tagtype:        ('ISO15693')             // type rfid ['ISO15693', 'ISO14443A', 'ISO14443B', 'TAGIT']
scaninterval:   (1000)                   // interval between each scan, tested down to 100ms
readerconfig:   ('./univelop_500b.json') // path to json config file for rfid commands
bytes_to_read:  ('08')                   // block length to read from ISO15693


  tcpsocket: {
    port: 8888, 
    host: 'localhost'
  tagtype: "ISO14443A"
### TCP Socket or Websocket control
  • {"cmd": "SCAN-ON"} // start scan loop
  • {"cmd": "SCAN-OFF"} // stop scan loop
  • {"cmd": "ALARM-ON"} // activate alarm on all items within range
  • {"cmd": "ALARM-OFF"} // deactivate alarm on all items within range
  • {"cmd": "WRITE", "id", ""} // write to ISO15693 tag
### nodejs control
Start scan loop;
    rfid.startScan(function(err) {console.log(err) });
Stop scan loop
Deactivate alarm
    rfid.deactivateAFI(function(err) {console.log(err) });
Activate alarm
    rfid.activateAFI(function(err) {console.log(err) });
Write ISO15693 tag:
    rfid.writeISO15693("<tag id>", "<data>", function(err) { console.log(err) });
### Websocket in browser example

var ws = new WebSocket("ws://localhost:4444"); ws.onopen = function(evt) { console.log("connected!"); ws.send(JSON.stringify({cmd:"SCAN-ON"})); }

ws.onmessage = function(evt) { console.log(evt); };

For more info check the `rfid.js` file and the tests
Note, there is work on the reader in Python:
and in Ruby:
License is MIT