We are committed to supporting and evolving the U Grok It SDK. We want your feedback and your questions, the best method is email:

develop@ugrokit.com

Sales

U Grok It is FCC and CE certified and is shipping now for North America, Europe, Australia, Brazil and India. Please contact sales@ugrokit.com if you have any additional questions.

We have a 30 day return policy, so you can feel comfortable that you can test with U Grok It to be sure it’s working as part of your solution.

We are signing up resellers now, please email reseller@ugrokit.com for more details.

U Grok It doesn’t sell tags. There are many suppliers available on the internet. We have found Atlas RFID store to be very helpful answering tag related questions.

RFID

Both barcodes and RFID tags give items a digital serial number. The difference between barcodes and RFID (in general, as a technology) is that with barcodes, you need line of sight - and with RFID you don’t. The barcode “light” has to scan directly over the bar code in order to read it. If you are going to want to touch each item as you inventory, then barcodes are a good option; if you want to be able to inventory a rack of items or a closed box, then RFID is better. RFID can also find tags much more quickly, up to several hundred a minute. Another benefit of RFID is that you can locate an item by scanning for it and find it from a distance of six to ten, up to twenty five feet away.. Many apps that work with the Grokker have a “locate” option that will beep as the reader comes into proximity of the tag. RFID tags can hold a much longer serial number (usually 96 bit) than barcodes, which allows RFID tags to have a unique serial number for each item, not just each SKU or type of item. And some RFID tags can hold data as well as the serial numbers; barcodes cannot hold data.

Our friends at Atlas provide a more detailed explaination here.

Introductory information about how RFID works: RFID Basics

The RFID Industry: RFID Journal, RFID FAQs

Specs: EPC UHF Gen2 Specifications

A good book about the low-level details of RFID: The RF in RFID

You need to have a basic understanding of how RFID works, but nothing more.

No. Tags that work at 13.56MHz use an entirely different RFID technology, called HF or NFC. The Grokker only works with UHF Gen2 tags (also called RAIN RFID tags).

The Grokker

U Grok It is designed to work with any UHF Gen 2 tag.

U Grok It's effective read range is 6'-25' (2-7m). U Grok It's read range depends on the tag and on the environment. In general, the larger the tag the farther away it can be read, because a larger tag has a larger antenna. The chip that the tag is based on and the antenna design also have some effect. The tag's orientation with respect to the reader affects read range also. A tag facing the reader can be read farther away than a tag that is edge-on. Metal adversely affects read range; special tags are needed for use on metal, and having metal between the reader and the tag significantly lowers read range (such as scanning items inside a metal locker).

Any standard UHF Gen2 tag will work with U Grok It. There are many types and sizes of tags available, varying in size and intended application. Over time we will post more information about U Grok It's performance with different tags.

Generally not. What the Grokker does know is how strong the reply is that it gets from the tags, and the percentage of times a tag appears during inventory scans. Using this, you can provide some directional feedback to your users (i.e. beeping faster or louder when you get more hits per cycle and slower or softer when you get less hits).

Yes, U Grok It fully supports the EPC UHF Gen2, ISO #18000-6C standard.

When a call comes in, the U Grok It app is suspended and the smartphone rings via the internal speaker. The user then unplugs the Grokker and answers the call. If the Grokker is scanning when a call come in, the scan will be interrupted. Other phone functions that make sounds (such as alarms) behave similarly.

There are a number of reasons that an Android device might not properly communicate with the Grokker.

  • Make sure the Grokker is charged. When the Grokker’s battery is low, it will not connect to any smart device.
  • Some phone cases can block the audio jack from completely inserting. Try removing the case.
  • Sometimes a dirty audio port can be an issue, try cleaning with compressed air and/or a toothpick. Here is one guide to cleaning your audio port
  • Try restarting the phone.
  • If possible, verify that the Grokker is working by using it with an iOS device or a different Android device.
  • The Grokker may need new firmware so it can communicate with this specific Android device. Try updating the firmware using an iOS or try a different Android device, then try the problematic Android device again.

We support the iPhone 7 through the Lightning audio port cable shipped with the iPhone 7. The audio port to lightning cable will also work with all iPhones, even if they have an audio port. We expect a similar solution (audio port to micro USB cable) to work with Android phones without audio ports.

Older Windows laptops have two audio ports, one for speakers and one for microphone. Newer Windows laptops have a single audio port that contains both speaker and microphone (like iOS and Android phones do). The Grokker needs the single audio port with both speaker and microphone.

Most of the older laptops can work with the Grokker with a TRRS splitter cable like this.

There are similar looking splitter cables for directing audio from two audio sources to one speaker, so both of the plugs are for speaker output (speaker left, speaker right, ground) - the Grokker will not work with these.

U Grok It will work with an audio cable extension of any length. You must use a 4 pole jack and audio port extension that includes a mic channel (also called TRRS). An example can be found here.

We have some ideas for how you can affix the phone to the Grokker that are more permanent than the included rubber band. Examples can be found here.

The Grokker will work outdoors, but it is not ruggedized nor waterproof, so it is not appropriate for all weather. We do have some customers that have used a dry bag/dry case over their phone and Grokker to provide weatherproofing.

No. We do have a Windows SDK that supports Windows laptops when connected via the audio port.

The Grokker can re-program (change the 96-bit ID) on any unlocked tag. The tags used in the supply chain that come attached to items in stores are generally locked. These tags are generally also removed at the retail store, but if not, they can be read by the Grokker.

The Grokker can read these tags and use their 96-bit ID. However, there is not currently a publically-available database that will allow you to connect that 96-bit ID with product information (unlike the publically available UPC/barcode database). So you will need to connect the 96-bit ID with your own data in your database or work with the store or manufacturer to provide you their database.

The audio port provides a simple, universal connection that does not require pairing.

U Grok It Apps

A keyboard wedge is an app that allows the Grokker to scan tags into a text field in any app or browser window.

A U Grok It keyboard wedge is available for Android, download the free “Grok Keyboard” app from the Play Store. Grok Keyboard installs a custom keyboard. Using that keyboard, you will see a button with the Grok logo, touching it causes the scanner to scan.

A U Grok It keyboard wedge is not available for iOS or for Windows.

Grok Keyboard allows scanning tags into text fields of a web page or other application.

NOTE: These instructions are for recent Samsung phones; they vary on different Android devices.

  1. Install Grok Keyboard from the Google Play Store
  2. Activate Grok Keyboard as one of the alternative keyboards
    1. Go to Settings, touch “Language and Input”
    2. Touch “Default Keyboard”
    3. Touch “Set Up Input Methods”
    4. Turn on “Grok Keyboard”
  3. Go to the web page or app you wish to input in
    1. Go to a text input area and touch to display the keyboard
    2. Drag from the top of the screen to display the settings popup
    3. Touch “Select keyboard” and select “Grok Keyboard”
  4. You should now see the Grok keyboard with the Grok icon on a key near the lower left
    1. Connect the Grokker. After a few seconds the Grok icon should change to orange to indicate that it is connected
    2. Touch the Grok icon to scan
    3. To change settings, touch the gear key to the right of the grok icon. If you want to scan only one tag, turn on the “Find one tag only” setting

Send Grok (iOS or Android) can display EPCs as ASCII, configure the “EPC Display” setting to “Text (ASCII)”.

iOS Discover Grok can display EPCs as ASCII. Touch “data”, then the “fields” icon in the top-right corner, then touch “EPC display” and select “Text (ASCII)”.

Android Grok Demo cannot display EPCs as ASCII.

Yes, you can access Discover Grok data from a browser on any device (laptop, mobile, etc.). In a browser, go to the Discover Grok login page and log in with the same email and password as you use in Discover Grok on an iOS device. You will be able to view and edit your data and your database fields. Any changes made in the browser will be reflected in the Discover Grok app on the iOS device.

Discover Grok data is stored in Amazon Web Services (AWS), using their Relational Database Service (RDS), in the US West region. AWS has quite good security and we have made reasonable efforts to secure our apps and servers, but we make no guarantees of security or uptime.

There is no limit on the number of customizable fields.

There is not a limit on the number of items, but Discover Grok slows down as the number of items increases. On older, slower iOS devices (such as iphone 4) this may be noticeable with several hundred items. Newer, faster iOS devices (iPhone 6 or 7) can usually handle a few thousand items without noticeable slowdown.

No. You can use our Send Grok app to send data to your server, but to do this you must build the database and backend yourself.

If you have turned on the USER or TID setting in Send Grok (either iOS or Android) but no tags are being found, the most likely cause is that the tags do not have as much USER or TID memory as you are trying to read. Try reducing the number of bytes to 2 and see if any tags are found.

General SDK (applicable to all SDKs)

Our applications (Grok Demo, Discover Grok, Send Grok) use the default configuration for the Grokker, which is optimized for best performance in most conditions. Apps can change this configuration, which may possibly get better performance in specific situations, but this is rarely the case.

It is important to make the correct choice between INVENTORY and LOCATE configurations.

  • INVENTORY
    Inventory configurations will find each tag only once, and will give one longer beep for each find. This is much more efficient in tag-dense environments, because the same tag is not found over and over again. INVENTORY_DISTANCE is the inventory configuration most often used.
  • LOCATE
    Locate configurations will find the same tags again and again and have a “geiger counter” style beep, which is important if you are trying to locate a specific tag by following the beeps. LOCATE_DISTANCE is the locate configuration most often used.

The details of RFID configuration are discussed here.

You can't change the scan range of the reader directly, but you can change the power level, which roughly corresponds to read range. You can use one of the SHORT_RANGE modes, or you can change the power level in the UgiRfidConfiguration.

Usually the highest power will provide the longest scan range in any given situation (the read range is an interaction of the Grokker, the tag and the environment), but that is not always the case.

Or, if you are trying to find the closest tag only, you can use SINGLE_FIND mode. This mode starts at low power and ramps the power up, increasing the probability that you find the closest tag.

Use SINGLE_FIND mode. This mode starts at low power and ramps the power up, increasing the probability that you find the closest tag.

Yes, by setting these fields in the UgiRfidConfiguration passed to startInventory:

  • selectMask - the prefix bytes to look for
    If you want to find all tags that start with 0x1122, you would pass two bytes, 0x11 and 0x22
  • selectBank - EPC
  • selectOffset - 32
  • selectMaskBitLength - the length of the prefix to look for, in bits
    Defaults to 0, which uses the length of selectMask * 8

There are two ways to read USER and TID memory.

For every tag

If you want to read USER and TID memory for every tag, the best approach is to configure the UgiRfidConfiguration that you pass to StartInventory to read the USER and/or TID for every tag (in addition to the EPC, which is read automatically).

  • USER
    Set the minUserBytes and maxUserBytes to the number of USER bytes you want to read. The UgiTag object will have the USER data in it.
  • TID
    Set the minTidBytes and maxTidBytes to the number of TID bytes you want to read. The UgiTag object will have the TID data in it.

If you know exactly how many bytes of USER and/or TID you want to read, pass MIN=MAX.

Using this approach you can only read USER or TID starting at the first byte (offset 0), and you can read a maximum of 208 bytes of USER and TID combined.

For individual tags

If you want to read USER and/or TID for a specific tag only, or if you want to read only a portion of USER or TID, or if you want to read more than 208 bytes, call readTag() after calling startInventory(). After the tag is read, the completion function passed to readTag() will be called with the data.

SendGrok is not getting the latitude and longitude of the tags, it is getting the lat/long of the phone at the time it finds the tag, using the standard iOS or Android APIs for getting location.

UHF/RAIN RFID systems (including U Grok It) cannot recognize multiple tags with the same EPC. EPCs must be unique. If multiple tags have the same EPC, the Grokker will see them all as the same tag. EPCs are large (96-bits), so you can have a portion of the EPC be an item code that represents a specific item, and the rest be a unique number. You can serialize EPCs by changing just a small portion of the 96-bit tag, but there must be at least one bit different for individual tags to be recognized.

You need to close the U Grok It connection (via closeConnection()) in order to play sounds. There is a noticable delay (100-300ms) for the OS to switch the audio, and reconnecting to the Grokker takes a similar amount of time, so this is only viable in some situations. This is why the Grokker has a speaker internally, so that audio feedback while finding an item is instantaneous.

You can change the volume of the beeping by changing the volume field in the UgiRfidConfiguration object passed to start inventory. The volume is a float between 0 (silent) and 1 (full volume).

The best way to get connection and battery status is to use reportConnectionStateAndBatteryInfoPeriodically(). The callback passed to this function will be called whenever the connection or battery status changes.

The SDKs are designed to appear single threaded to the app. All APIs should be called on the app’s main thread, and all callback/completion functions are called on the main thread. Internally the SDKs use multiple threads to communicate with the Grokker.

Sending data to a URL or to a database is not part of the SDKs, you need to write the code to send the data, using the general iOS/Android/Windows APIs. To send the data to a URL, you can use the Send Grok app, which you can call from your app or browser.

The default low-level RFID configuration is:

  • TARI: 12.5uS for U.S., 25uS for EU
    This can be forced to 25uS for U.S. using the forceTari25 flag in UgiRfidConfiguration
  • LF: 320 KHz
  • Modulation: Miller8

Other than forcing the TARI to 25uS, this low-level configuration cannot be changed.

No, we only support iOS, Android and Windows. If you are looking for a dedicated, inexpensive controller, you might look for an inexpensive Android board. As long as the board has an audio port it should work, but you will need to test the specific board for compatibility.

SDK specific

U Grok It supports iOS devices running iOS 6 and later, which includes iPhones 4 and later, iPads 2 and later and iPod Touches 4th generation and later.

With XCode 8 Apple has removed support for iOS 6 or iOS 7, so to support iOS 6 or iOS7 you must use XCode 7.

U Grok It supports most Android devices with Android 3.0 (Honeycomb, API level 11, released in early 2011) and later.

On Android devices identified as phones and known to have the audio jack on the top of the phone, the SDK will display a warning if the device’s auto-rotation setting is turned off. To disable this:

  • Android
    Immediately after creating the singleton, add:
    Ugi.getSingleton().setHandleScreenRotation(false);
  • Cordova
    Before calling ugi.openConnection(), add:
    ugi.setHandleScreenRotation(false);
  • Xamarin
    Immediately after creating the singleton, add:
    Ugi.GetSingleton().HandleScreenRotation = false;

On some Android devices, a message similar to “high volume for long periods may damage your hearing” appears when the Grokker is connected. This is built into Android and there appears to be no way to prevent it.

U Grok It supports Windows 8 and Windows 10, and works with many Windows 7 devices also.

The Windows SDK is built with Visual Studio 2017, and also works with Visual Studio 2015. The SDK can work with Visual Studio 2013, but there can be issues with getting the correct runtime DLLs, so Visual Studio 2013 is not recommended.

Device specific

These Android devices have been tested are are known to work. Pricing and availability as os April 2017.

  • Medium phone - Samsung Galaxy J3 (model SM-J320P) - $80 at Amazon
    This is a sleek, fast device with a 5" screen. It works well.
    The audio jack is on the top, so the user needs to rotate the phone upside-down to use it with the Grokker.
    Because this is a phone, it is connected to a carrier, Boost Mobile in this case. When you get to the Activate screen, touch “Activate”. You will see “are you replacing a phone”, touch “No”. The Activate screen should not appear again, other than after software updates.
  • Larger phone - Samsung Galaxy J7 (model SM-J700P) - $155 at Amazon
    This is a sleek, fast device with a 5.5" screen. It works well. It feels slightly large on the Grokker, but not uncomfortably so.
    Because this is a phone, it is connected to a carrier, Boost Mobile in this case. When you get to the Activate screen, touch “Activate”. You will see “are you replacing a phone”, touch “No”. The Activate screen should not appear again, other than after software updates.
  • Small tablet - Samsung Galaxy Tab A 7” (model SM-T280) - $140 at Amazon
    This is a solid device, not super fast but fine for most uses.

A few Android devices need the Grokker to have its firmware updated a firmware update before they can connect. You will need to use an iOS device or a different Android device for this. Download Grok Demo (Android) or Discover Grok (iOS) on that other device and connect the Grokker. Within a few seconds the app should prompt to update the firmware. The update takes a couple minutes. After the update the Grokker should connect to your Android device.

  • Samsung Galaxy Tab 4 7.0 (models SM-T230, SM-T231)
  • Samsung Galaxy Tab 3 Lite 7.0 (model SM-T110)
  • Samsung Galaxy Tab 4 8.0 (models SM-T330, SM-T332)
  • Galaxy Tab 3 7.0 (models SM-T210, SAMSUNG-SM-T217)
  • Asus ZenPad 10 (models P023, P00)