Hello Invengo XC-1003!

Mehfuz just published an initial NativeScript Plugin to call into the RFID libraries in the Invengo XC-1003 (see Part I for details of the device).  Mehfuz also published a simple NativeScript App that uses the Plugin to read a tag and display it.


The plugin is written in JavaScript/TypeScript. The code (see invengo.android.ts) is platform and library specific but it is plain TypeScript calling into the RFID API via the meta-data automatically extracted by NativeScript from the .aar file.  The plugin builds on that “raw” interface and provides a nice abstraction to be used by applications.

The structure of the demo application using the Plugin is like any other NativeScript App: some Javascript (or more properlyTypeScript in this case), the CSS for the visual elements, and some Layouts (created manually or through a tool) for the screens.

In this particular case the app is not intended to be cross-platform but in general the platform-specific features are pushed down to the plugin and the app itself can be cross-platform.  All while using TypeScript/JavaScript and CSS.

Mehfuz is working on a nicer version of the app; stay tuned.

Addendumhere is a short video with the RFID plugin and a SQLite plugin.

Addendum 2 – A more capable solution,  using also the GeoLocation plugin and the Google Maps plugin, is now available.

HackMIT 2016

Progress was again a sponsor at HackMIT this year, and our main emphasis was on NativeScript as a cross-platform framework to create native mobile Applications using JavaScript (or TypeScript) and CSS.


Most of HackMIT was at the Johnson Ice Rink; it gathers over 1K hackers for a 24 hour Hackathon that starts Saturday morning and runs through Sunday morning; it is much more civilized than the usual 36 hour Hackathons – a single all-nighter is much easier than two!  The event had “the usual sponsors”, ranging from a16z to Microsoft, Google and Facebook.  Infrastructure, Financial, Medical, Services, Technology and more, they were all well represented.

The two keynotes were excellent.  Dina Katabi, the Director of MIT’s Center for Wireless Networks and Mobile Computing, presented on her recent work on seeing through walls using WiFi – with multiple applications, including Emerald, a fall detection device for caregivers. Sanjit Biswas talked about his previous startup, Meraki, on mesh-based WiFi, and his current one, Samsara, on industrial sensors.

Last year one of the most popular technology trends was Computer Vision, this year it was Machine Learning: our 3 winners use it.  There was also a fairly large number of projects that included some hardware, including one of our winners.  I love attending HackMIT and similar high-quality Hackathons and see how quickly new technology is adopted.

We had 3 API prizes for NativeScript Apps and multiple teams wrote apps. NativeScript supports very well Angular 2 but it also works well by itself; since the teams didn’t know neither NativeScript nor Angular 2, they went for the “bare-bones / native” NativeScript.

Our 3 winners were

Team PushEats


Their tag line is: “Pusheen + psychology research = healthier eating habits via mobile app”. Team members are: Katherine Tan, Stasiek Świdwiński, Cameron Yick and Wendy Sun, all from Yale (IIRC). The project site is here.

Team Picky Pusheen


Yep, another Pusheen project!  This time the tag line is: “A mobile app that pairs friends together for everyday activities such as eating or jogging seamlessly”.  Team members are: Michael Hu, Matt Dang, Naoki Yokoyama, and Joanne Truong; I believe they are all from Northeastern University. The project site is here, and the github is here.

Team ClassSense


And the last winner… is not a Pusheen project!  The project’s goal is to help the professor in a lecture get a feel for whether the class is following the material being presented. Team members are: Josh Rees-Jones, Nate Graf,  Chris Turner and Halaa Menasi; they come from USC, Texas A&M, NCSU and Stony Brook. The project site is here but it’s very sparse; instead check the github project here, including the README file.

Additional Info

Peter Filipov, from our DevRel team, and myself were the mentors.  Peter just published a post on the event at the NativeScript blog.  And I have more photos at this Flickr album.

And looking forward to 2017!

Linux Inside … ThingMagic Sargas


Our ThingMagic Sargas just arrived.  This is a small (87mm x 80 mm x ) fixed RFID reader that packs a nice punch.  It has 2 high performance UHF RFID antenna ports capable of reading 750 tags a second at distances over 9 meters and an ethernet port, but it also has a BLE, USB, 4 GPIOs, micro-SD, and HDMI.  Inside there is a 1GHz ARM Cortex 8 running Linux (Debian) where you can run your own code.

We will use the Sargas as a second reader so we can manage more RFID Antennas covering a larger space. Initially we will connect the Sargas to a Raspberry Pi 3 in the same arrangement we used previously  with the ThingMagic M6.  In that configuration the pi 3 runs the AMTech Gateway and it communicates with the reader using LLRP over ethernet.

The next step will be to move the gateway inside the Sargas, so we no longer need the pi 3.  This should be straight-forward; Debian running Node.js.

After that we want to run applications directly in the Sargas using the HDMI to connect an external monitor.  We have not yet decided on what to try out first.   The application could just report on the setup and simple statistics, or can be an actual application.  For example, a Sargas can be combined with a couple of short-range antennas and a large monitor, to provide a smart display for clothing that has RFID tags.

Ideally, we would like to write these applications using NativeScript, similar to how we want to use NativeScript to write RFID applications for the Invengo XC-1003, but more on that later…

NativeScript and the Invengo XC-1003 – Part I

The Invengo XC-1003 is an Android Smartphone (KitKat) with an UHF RFID reader/writer.   Ours just showed up yesterday from AtlasRFID.  Invengo positions it as a Mobile IoT device, advertising it as working on “the RAIN RFID Frequency 865-868MHz (ETSI) – 902-928MHz (FCC)”.

RAIN is a global alliance (part of AIM) recently created to encourage the adoption of UHF RFID (CS1 – 18000-63) across multiple vendors, with an emphasis on interacting with Cloud-based services and data.  The board includes companies with deep expertise in RFID technologies like NXP, Smartrac, Embisphere, Impinj and Acceptto.  There are currently 124 members in the directory, including names like Amazon and Google.


We got the device to use it for hand-held applications that interact (read/writer) with RFID tags.  A typical use would be to support the registration and on-the-spot support for an event like our recent MeetUp or the ProgressNEXT event.  The Intengo XC-1003 comes with an SDK and some (Java) sample apps.  Initially we will use the apps as they come but our goal is to write a NativeScript plugin (see tutorial) so you can write your RFID applications using just JavaScript and CSS.

I believe RFID (wikipedia) is poised for significant adoption increase.  The technology has been around for quite a bit (history) and initial attempts at adoption suffered from technology shortcomings as well as high costs for tags and readers.  The new technology is much more reliable, flexible and cheaper.  Examples include FasTrak,  Transponder timing in Sports Events, Inventory (Zara is a big proponent, so is Walmart) and possibly my favorite: RFID tags at the bottom of paper cups to control soda refills at Walt Disney World (video).

Stay tuned for more details in this experiment.

Addendumhere is a short video with the RFID plugin and a SQLite plugin.

Addendum 2 – A more capable solution,  using also the GeoLocation plugin and the Google Maps plugin, is now available.

CSUMB Capstone Project Fall 2016 – A Connected Capstone Festival App

The CSUMB Capstone project for Fall 2016 is a Digitally Connected Capstone Festival App using RFID Tags and Antennas, iBeacons and Mobile Apps.

The basic architecture is sensors connected to an Activity Management platform to track the real-time activities interacting with a Mobile Application used by the public and presenters at the Festival.  The project will leverage lessons learned from the Capstone project in Spring 2016, Quantifying the BIT Building,  and two previous projects: the ProgressNEXT app and a NativeScript MeetUp in Palo Alto.

The bulk of the sensor data will be from RFID tags worn by the attendees to the Festival, but additional data may come via mobile apps, reading BLE beacon proximity data and/or Geolocation data.  The Activity information will be used by mobile applications that may also provide information on the different presentations and events.


The Mobile Apps will be written using the NativeScript framework.  The backend will be based on Node.js on Modulus, though we may also use Sitefinity platform.  The Activity Monitoring Platform is that of AMTech Solutions.


We currently have 4 fixed RFID Antennas, connected to one RFID Reader that interacts with an AMTech Gateway running on a Raspberry Pi 3.  We will soon get an Invengo XC-1003 Android phone that includes an RFID reader and we can use this for operating the event.  RFID tags are 20 cents each in a volume of 1000 so we can easily provide tags for all attendees.

We have several iBeacon/Eddystone beacons that can be used to map the Capstone space and interact with the Capstone Mobile App.

Sketch of a presentation is at Slideshare.

Activity Monitoring using IOT

I put together a quick presentation on Using IOT for Digital Activity Monitoring.  I’ll refine it when I have an opportunity of presenting it, but, for now, check the slides at Slideshare.  See this Umbrella Post for quick links to some other related posts.

IOT-based Activity Monitoring can be used in a very large number of applications, often relying on related services like geolocation, spatial operations (“close-to”, “within”) and notifications (sending mail).  A practical product needs strong security, performance, scalability, support for many protocols (sensors and server-side), administration and flexibility of deployment options.


AMTech – The M2MBridge

The AMTech M2MBridge is a node.js service that implements the AMTech IOT Protocol.  The M2MBridge can run in a variety of devices; for our demos we currently have it running on a Raspberry Pi 3 using Ubuntu MATE.

The M2MBridge includes a core and an extensible plugin architecture, plus a growing set of plugins.  The bridge is a common component of most real-life IOT applications connecting edge devices to the sensor and reasoning layers of the AMTech platform, providing intelligence at the edge, and supporting security, access control, auto-configuration and other key properties of real-life deployments.

Here is a sketch of the Bridge Functionality:


We used the M2M Bridge to control RFID antennas in the ProgressNEXT Conference App at Las Vegas and in our recent NativeScript MeetUp in our Palo Alto office.  In both setups the bridge used the LLRP plugin to control the RFID readers, which were connected to the antennas via coax cable.

In the case of ProgressNext, the bridge was running on a laptop and was controlling 3 RFID readers, connecting to them via the hotel internet.  In the case of our MeetUp, we used just one RFID reader that was connected directly to the Raspberry Pi 3 via an ethernet wire.


The MeetUp setup was logistically simpler: we configured the pi3 as a DHCP server and it could talk directly to the RFID box; at Las Vegas we had to work with the IT administrator of the hotel to whitelist the laptop and the RFID readers so they could talk to each other.

BridgeSetups-2In both deployments the bridge connected to an AMTech tenant to receive configuration data and to push observations and receive commands.

The AMTech M2M Bridge functionality includes:

  • Support for many devices andM2M protocols – e.g. SNMP, LLRP (for RFID), iBeacon and eddystone, etc
  • Support for device-to-device and device-to-cloud communication – e.g. LoRa, BLE, etc
  • Centralized management of IOT devices and gateways
  • Configurable Edge Intelligence
  • Configurable Auto-Discovery
  • Access Control and Customization of observations at the edge.

One of the nicest features of the M2M Bridge is the centralized management of IOT devices and gateways: when a M2M Bridge instance starts, it connects to its corresponding AMTech tenant to extract the configuration details from there, which makes it very easy to adjust the configuration of the production of observations (events).  Another very useful feature is the ability to clone a configuration so multiple M2M Bridge instances inherit the properties from a master setup.