ThingMagic Mercury xPRESS User Manual

A DIVISION OF TRIMBLE
875-0072-02 Rev A

Mer cury®xPRESS Platf orm Guide

SDK Version 1.7.1

1
A DIVISION OF TRIMBLE
Government Limited Rights Notice: All documentation and manuals were developed at private expense and no part of it was developed using Government funds.
The U.S. Government’s rights to use, modify, reproduce, release, perform, display, or disclose the technical data contained herein are restricted by paragraph (b)(3) of the Rights in Technical Data — Noncommercial Items clause (DFARS 252.227-7013(b)(3)), as amended from time-to-time. Any reproduction of technical data or portions thereof marked with this legend must also reproduce the markings. Any person, other than the U.S. Government, who has been provided access to such data must promptly notify ThingMagic.
ThingMagic, Mercury, Reads Any Tag, and the ThingMagic logo are trademarks or registered trademarks of ThingMagic, A Division of Trimble.
Other product names mentioned herein may be trademarks or registered trademarks of Trimble or other companies.
©2014 ThingMagic – a division of Trimble Navigation Limited. ThingMagic and The Engine in RFID are registered trademarks of Trimble Navigation Limited. Other marks may be protected by their respective owners. All Rights Reserved.d
ThingMagic, A Division of Trimble 1 Merrill Street Woburn, MA 01801 866-833-4069
02 Revision A September, 2014
2
A DIVISION OF TRIMBLE
Revision Table
Version Date Description
875-0072-01 Rev A
875-0072-02 Rev A
Dec 2013
Sept 2014
Initial Release for SDK version 1.5.1
Added SAM-BA Appendix and changes introduced with revision
1.7.1 of the SDK, plus hardware and software instructions for new WiFi, POE, and GPS modules
3
A DIVISION OF TRIMBLE
4
A DIVISION OF TRIMBLE

Contents

Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Ordering Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Regulatory and Safety Compliance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Authorized Antennas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Micro and Micro-LTE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
M6e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
ElectroStatic Discharge (ESD) Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Common Installation Best Practices. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16
Quick Start Guide. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
xPRESS Platform Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Hardware Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Using the Sample Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
RFID Sensor Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Architecture of the RFID Sensor App . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26
Demo App Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Demo App Program Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Demo App Program Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
RTC: Real Time Clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
xPRESS Console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Connecting to the Console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Console Commands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Contents 5
A DIVISION OF TRIMBLE
Log and Debug Levels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Run-time Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Using the Optional Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Bluetooth Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Hardware Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Linux Bluetooth Keyboard Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Windows Bluetooth Keyboard Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Android (4.2) Bluetooth Keyboard Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
RFID Sensor Demo Instructions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
RN-42 Initialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
RN-42 Flow Control. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
RN-42 Connection Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45
WiFi Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Features Implemented . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Initialization Process. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Connection Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Power Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Console Command Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Configuration Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Mapping of RN-171 Config. Parameters to xPRESS Names. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Known Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Known Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Power-Over-Ethernet Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Power over Ethernet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Initialization Process. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Flow Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Connection Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Known Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
GPS Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
GPS Metadata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Status Indication Through GPI Lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .69
Installing Developer Tools on Windows OS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Installing GNU Tools for ARM Embedded Processors. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Install Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
6 Contents
A DIVISION OF TRIMBLE
Install Eclipse IDE for C/C++ Developers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Install USB Driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Next Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Installing Developer Tools on LINUX OS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Install GNU Tools for ARM Embedded Processors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Installing Java Runtime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Install Eclipse IDE for C/C++ Developers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Next Steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Using the Developer Toolkit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Importing Project Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Build Tool Adjustments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Project Building . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Common Build Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Common Error1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Common Error 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Installing JTAG ICE and J-LINK GDB Server. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Obtaining a JTAG ICE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
JTAG Hardware Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .90
Linux JLINK Software Installation (JLinkGDBServer) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Windows JLINK Software Installation (JLinkGDBServer) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Preparing the xPRESS motherboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Running the Debugger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Running the Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Relaunching the Program. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Disconnecting the Console. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Hardware Reference Guide. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Description of Functional Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Processor (MCU). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
RFID Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Battery Charging Controller. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Interfaces, Indicators and Controls. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
AC Adapter Input. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Battery, “Loop” and Comm Bus Power Inputs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
System controls and indicators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
OTG USB Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Debug USB Port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Module USB Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Programmable LEDs and Switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Contents 7
A DIVISION OF TRIMBLE
Buzzer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
“Coin” battery. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
xBee Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Communications Interface Bus Connector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Test Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
JTAG Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Power Source Precedence. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
AC Input Adapter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
USB Connection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Li-ion Battery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
Comm Bus (“POE”) Power . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
Known HW Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
Known Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
Software Reference Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
SW Block diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
Toolchain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
Toolchain Downloads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
Toolchain Build Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
JLink GDB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
Eclipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
ASF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
SDK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
Appendix A: SAM-BA for Windows 129
Preparing the xPRESS motherboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
Installing SAM-BA Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
Installing the Windows USB Driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
Setting Up SAM-BA to work with xPRESS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
Using SAM-BA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
8 Contents
A DIVISION OF TRIMBLE

Introduction

The Mercury® xPRESS RFID Solution Development Platform is a microcontroller-based hardware and software platform designed to enable rapid development of custom finished UHF RFID readers using the ThingMagic Mercury6e-Series modules (M6e, Micro, and Micro-LTE). The xPRESS Platform is designed to support multiple interfaces for use across a wide range of applications via support for option modules.
Note
The Micro and Micro-LTE RFID modules are identical except for read rate performance, so all information given for the “Micro” applies to both products.
This document is broken down into the following chapters:
Regulatory and Safety Compliance - Regulatory and safety information that must be
followed if using the xPRESS platform outside of a development environment. Includes advice for best practices to avoid Electrostatic Discharge (ESD) damage.
Quick Start Guide - This chapter instructs the user how to connect the xPRESS
motherboard to a host PC and run the pre-installed RFID Sensor application.
Using the Optional Modules - This chapter provides details about installing and
operating the optional modules, including Bluetooth, WiFi, Power-Over-Ethernet (POE) and GPS.
Installing Developer Tools on Windows OS - This chapter provides detailed instructions
for installing 3rd-party development tools and the ThingMagic SDK on a Windows PC in order to develop or modify ThingMagic applications (including the RFID Sensor sample application).
Installing Developer Tools on LINUX OS - This chapter provides detailed instructions for
installing 3rd-party development tools and the ThingMagic SDK on a LINUX PC in order to develop or modify ThingMagic applications (including the RFID Sensor sample application).
Using the Developer Toolkit - This chapter explains how to build and download an
application on both Windows and LINUX PC hosts.
Using the Sample Application - This chapter provides information on the sample
applications included with the development platform (initially only the RFID Sensor) for programmers who would like to modify it.
Hardware Reference Guide - This chapter provides detailed information about the
xPRESS platform hardware architecture, controls, indicators, and interfaces.
Software Reference Guide - This chapter provides detailed information about the
xPRESS platform software architecture and the development tools used to create applications for the platform.
Introduction 9
A DIVISION OF TRIMBLE
Appendix A: SAM-BA for Windows - This chapter provides instructions for creating an
application “bin” file that can be downloaded to the xPRESS platform via the USB port directly from a PC.

Ordering Information

The available xPRESS platform models and accessories are listed in the following table.
Product Description Part Number
xPRESS Development Platform with M6e RFID Module
xPRESS Development Platform with Micro RFID Module
xPRESS Development Platform with Micro-LTE RFID module
Optional Bluetooth Interface Module XP-BT Optional Power-Over-Ethernet Module XP-PoE Optional WiFi Module with integrated
antenna Optional GPS module with antenna XP-GPS
ThingMagic also offers RFID antennas and tags that are compatible with this platform.
www.thingmagic.com for additional information.
See
XP6e
XP6e-M
XP6e-Micro
XP-Wi-Fi
10 Introduction
A DIVISION OF TRIMBLE

Regulatory and Safety Compliance

!
CAUTION!
!
The xPRESS platform has been tested for regulatory compliance in order to validate its design, but further testing and certification is required before the xPRESS platform can be deployed as an RFID reader in an application environment.
Note
Detailed information regarding the compliance of the modules and the installation requirements necessary to insure compliance when the reader is deployed is found in the user guide for each module:

M6e Hardware Guide (Current version: November 2013)

Micro Hardware Guide (Current version: March 2014)
In order to be approved for deployment, an RFID reader based on the xPRESS platform must pass several categories of certification:
1. Certification as an “intentional radiator”. This category includes the following sub-
categories of requirements:
Correct in-band characteristics to make it compatible with other transmitters that
share the same frequency band
Adequate suppression of radiated signals outside the frequency band of operation
so as to not interfere with services in adjacent frequency bands
Statement detailing the distance from the antenna that must be maintained to
insure that RF levels are below recommended safe levels.
2. Certification as an “unintentional radiator” when the RFID reader is not actively
transmitting.
3. Safety compliance to protect installers and operators
Each country establishes its own regulatory and safety requirements for transmitters such as RFID readers. Often these requirements are strongly based on those established by FCC or EU standards bodies, as they were published or with minor changes. Both the
Regulatory and Safety Compliance 11
A DIVISION OF TRIMBLE
M6e and Micro modules (including the Micro-LTE) conform to requirements for most countries. Refer to the module User Guides for a list of which regions are supported.
FCC certification is required for operation in the US. Many other countries have adopted FCC requirements as their own. Other countries have adopted all requirements but the frequency band of operation. These countries require that the reader operate in a subset of the FCC band (902 to 928 MHz) in order to avoid interfering with existing RF services that were previously assigned to a portion of the FCC band. ThingMagic modules accomplish this by allowing a custom “hop table” to be defined after FCC regional settings are applied.
With respect to requirements for intentional radiation, the FCC will certify the RFID module to be compliant as a component of a product and that certification covers any product that contains the module. ThingMagic has obtained modular certification for our M6e and Micro modules. The FCC ID’s for the modules in the xPRESS platform are:.
Micro and Micro-LTE: QV5MERCURY6E-M
M6e: QV5MERCURY6E
Bluetooth Module: T9J-RN42
WiFi Module: T9JRN171-1
Your product will be required to be labeled with a statement of compliance that refers to these ID numbers if you are using our modular certification.
Included in the filing to the FCC is a calculation that shows the distance from the antenna that should be maintained to keep RF levels at or below FCC-recommended safe exposure limits. For UHF RFID, this is around 23 cm (9 inches), at the maximum permissible transmission level when using antennas with the highest allowed gain. We submit this calculation for the RF module alone when we obtain approval for the module. This calculation may have to be amended if other intentional radiators, such as a Bluetooth module, are present as well. The calculation depends on the separation between the RFID antenna(s) and other simultaneously radiating antennas, so can only be done once a finished product is created from the xPRESS platform.
The FCC does not allow vendors to pre-certify modules or platforms such as xPRESS for unintentional radiation, but we have pre-tested the xPRESS platform to give our customers confidence that any readers based on the xPRESS design will have a very high probability of obtaining certification.
The Industry Canada (Industrie Canada) has the same technical requirements as FCC, and allows modular certification, but has their own filing and labeling requirements. One significant deviation from FCC is that all products containing the modules must be declared to the IC, whereas FCC only requires that the modules FCC ID be on the outside
12 Regulatory and Safety Compliance
A DIVISION OF TRIMBLE
label of the product (which IC requires for their ID as well). The Industry Canada product ID’s for the xPRESS modules are:
Micro and Micro-LTE: 5407A-MERCURY6EM
M6e: 5407-QV5MERCURY6E
Bluetooth Module: 6514A-RN42
WiFi Module: 6514A-RN171
EU has their own set of regulatory requirements for RFID equipment, created by ETSI. ETSI requirements have been adopted by many countries and several others have adopted their RF requirements with a slightly different band of operation. The EU band is roughly in the range of 865 to 868 MHz, which is well below the FCC range.
Unlike FCC, EU requires self-certification rather than submitting a reader (or module) for approval to a certified test house. The self-certification consists of a test report (which is usually from a 3rd-party test facility) and a letter certifying compliance, signed by an officer of the company. ThingMagic customers can use the ThingMagic module test results as the test results they supply to their customers, but they must supply their own certificate of compliance sighed by one of their officers. As ETSI augments and amends their requirements, they continue to allow use of equipment that conforms to older requirements for a period of time. The standard that covers UHF RFID is document number “EN 302 208” and the current version is 1.4.1.
The optional modules are certified to the following ETSI standards;
Bluetooth Module: EN 300 328: v1.8.1
WiFi Module: EN 300 328: v1.8.1
Although both the M6e and Micro support both the FCC and EU regions in a single SKU, this does not necessarily mean that a single product can be created which can be operated in both these (and other) regions. Two factors limit the ability to create a single world-wide model:
1. Conflicting labeling requirements among various regions which cannot be resolved
by including all information on a single label.
2. FCC’s insistence on a “BIOS-level” lock-out for altering the RF characteristics of a
transmitter in a way that would violate FCC requirements. This means that the EU region of operation, for example, cannot be selected via a simple configuration menu option along with the other RF characteristics, even if the hardware supports it.
Safety certification to protect people installing, using, and maintaining the product is governed by Underwriters Laboratory (UL) in the US and CE in Europe. When ThingMagic certifies a reader for safety, we have the reader tested against the “CB” requirements, which is a super-set of other requirements and is accepted by most countries as proof of conformance (although they often require that certification be
Regulatory and Safety Compliance 13
A DIVISION OF TRIMBLE
applied for, with “CB” test results included in the paperwork that is submitted for approval).

Authorized Antennas

FCC and IC modular certification requires that the vendor submit a list of antennas which have been tested for compliance with the module. Antennas of the same type as a compliant antenna, but having lower gain, are permitted to be used in place of approved antennas. The following table provides information about the antennas that ThingMagic has successfully submitted for approval when modular certification was obtained.

Micro and Micro-LTE

Maximum
Vendor Model Type Polarization
Linear Gain
(dBi)*
ThingMagic (Laird)
ThingMagic (Laird)
ThingMagic (MTI WIreless)
ThingMagic (MTI Wireless)
ThingMagic (MTI Wireless)
Laird FG9026 Dipole Linear 6.0
ANT-NA-9025 (S9025P)
ANT-NA-A5 (S8658WPL)
ANT-NB-7-2031 (MT-262031)
ANT-WB-12­2043 (MT-
242043)
ANT-WB-6-2025 (MT-242025)
Patch Circular 4.3
Patch Circular 6.0
Patch Circular 6.0
Patch Circular 6.0
Patch Circular 6.0
*For circularly polarized antennas, the maximum linear gain is the maximum gain as measured with a calibrated linear dipole antenna, facing the C.P. antenna at any rotational angle. The published circular polarized gain can be as much as 3 dB higher than the maximum linear gain.
14 Regulatory and Safety Compliance
A DIVISION OF TRIMBLE
M6e
Vendor Model Type Polarization
Maximum
Linear Gain
(dBi)*
ThingMagic (Laird)
ThingMagic (Laird)
ThingMagic (MTI WIreless)
ThingMagic (MTI Wireless)
ThingMagic (MTI Wireless)
ANT-NA-9025 (S9025P)
ANT-NA-A5 (S8658WPL)
ANT-NB-7-2031 (MT-262031)
ANT-WB-12­2043 (MT-
242043)
ANT-WB-6-2025 (MT-242025)
Patch Circular 4.3
Patch Circular 6.0
Patch Circular 6.0
Patch Circular 6.0
Patch Circular 6.0
*For circularly polarized antennas, the maximum linear gain is the maximum gain as measured with a calibrated linear dipole antenna, facing the C.P. antenna at any rotational angle. The published circular polarized gain can be as much as 3 dB higher than the maximum linear gain.

ElectroStatic Discharge (ESD) Considerations

WARNING!
The M6e and Micro antenna ports may be susceptible to damage from
Electrostatic Discharge (ESD). Equipment failure can result if the antenna or communication ports are subjected to ESD. Standard ESD precautions should be taken during installation to avoid static discharge when handling or making connections to the reader antenna or communication ports. Environmental analysis should also be performed to ensure static is not building up on and around the antennas, possibly causing discharges during operation. See the User Guides for the modules for additional information on protecting readers from ESD.
Regulatory and Safety Compliance 15
A DIVISION OF TRIMBLE

Common Installation Best Practices

The following are common installation best practices which will ensure the readers isn’t being unnecessarily exposed to ESD in even low risk environments. These should be applied to all installations, full power or partial power, ESD or not:
Select an antenna with all radiating elements grounded for DC. The MTI MT-
262031-T(L,R)H-A is such an antenna. The Laird IF900-SF00 and CAF95956 are not such antennas. The grounding of the antenna elements dissipates static charge leakage, and provides a high pass characteristic that attenuates discharge events.
Verify R-TNC knurled threaded nuts are tight and stay tight. Don’t use a thread
locking compound that would compromise the grounding connection of the thread to thread mate. If there is any indication that field vibration might cause the R-TNC to loosen, apply RTV or other adhesive externally.
Use antenna cables with double shield outer conductors, or even full metallic
shield semirigid cables. ThingMagic specified cables are double shielded and adequate for most applications. ESD discharge currents flowing ostensibly on the outer surface of a single shield coaxial cable have been seen to couple to the inside of coaxial cables, causing ESD failure. Avoid RG-58. Prefer RG-223.
Minimize ground loops in coaxial cable runs to antennas. Having the M6e/Micro
and antenna both tied to ground leads to the possibility of ground currents flowing along antenna cables. The tendency of these currents to flow is related to the area of the conceptual surface marked out by the antenna cable and the nearest continuous ground surface. When this conceptual surface has minimum area, these ground loop currents are minimized. Routing antenna cables against grounded metallic chassis parts helps minimize ground loop currents.
Keep the antenna radome (non-metallic cover) in place. It provides significant
ESD protection for the metallic parts of the antenna, and protects the antenna from performance changes due to environmental accumulation.
Keep careful track of serial numbers, operating life times, and numbers of units
operating. You need this information to know what your mean operating life-time is. Only with this number will you be able to know if you have a systemic failure problem, ESD or otherwise. After any given change, you will be able to determine whether things have improved and whether the failures are confined to one area, or distributed across your population.
16 Regulatory and Safety Compliance
A DIVISION OF TRIMBLE

Quick Start Guide

This chapter provides a brief introduction to xPRESS with instructions to install, setup and test the basic, default functionality of the xPRESS Platform.
Quick Start Guide 17
A DIVISION OF TRIMBLE

xPRESS Platform Contents

The xPRESS development platform is shipped as an open system allowing maximum flexibility in changing hardware configuration and peripherals. This chapter explains how to assemble the development platform and operate the RFID Sensor demo program over the USB interface. Once successful, you may want to run this application over one of the optional module interfaces and add GPS location sensing. If so, consult the
Optional Modules section. Use caution when configuring the hardware.
Note
Always turn off the power and unplug the power cord before changing hardware configuration and peripherals.

Hardware

xPRESS Platform Contents
Using the
Processor Motherboard with one module (either M6e, Micro, or Micro-LTE)
AC Power Adapter with international adapter plugs
Two USB cables
Antenna cable which converts MMCX to Reverse-TNC
The xPRESS Development Platform comes with an AC power adapter, two USB cables, one antenna cable, and one of the UHF RFID modules shown in the picture. The red
18 Quick Start Guide
xPRESS Platform Contents
A DIVISION OF TRIMBLE
Bluetooth module shown in the picture is optional. Here are all the optional interface and sensor modules.
Additional components available from ThingMagic include:
Antennas
Reverse-TNC to Reverse-TNC cable
The xPRESS platform supports a coin-cell battery (to power a Real Time Clock) and rechargeable Li-ION batteries, but these items are not currently available from ThingMagic.

Software

All software is available to download from the ThingMagic Support site:
http://www.thingmagic.com/manuals-firmware
The xPRESS platform is shipped with a demonstration application pre-installed. This application allows you to read RFID tags, optionally add GPS information to the data received, and output the information via any of the supported interfaces. USB and Bluetooth are supported without any modification to the application code. To use any other optional modules, the xPRESS SDK will need to be imported into an Eclipse development environment, minor changes made to the configurable values, the application program recompiled (“built”), and the resulting binary file downloaded to the xPRESS processor. Later, you may wish to make other changes to customize the program’s behavior to better address your application requirements.
Quick Start Guide 19
xPRESS Platform Contents
A DIVISION OF TRIMBLE

Documentation

All documentation is available to download from the ThingMagic support site using this URL:
http://www.thingmagic.com/manuals-firmware
This site also offers hardware design documentation that will allow you to develop your own processor board based on the xPRESS platform design: This documentation includes:
Schematics
Layout files
Gerber files
Bill of Materials
Component Data Sheets
20 Quick Start Guide
A DIVISION OF TRIMBLE

Hardware Setup

The main connectors and switches on the xPRESS motherboard are shown in the diagram below. Your board may have a different RFID module than the M6e shown here.
Hardware Setup
The following steps will take you through the hardware set-up, power-up and connecting the xPRESS platform using its pre-installed application which will read UHF RFID tags and report them through the USB interface.
1. Connect the micro USB connector to the “USBOTG” port on the motherboard and the
other end to your Windows or LINUX PC.
Quick Start Guide 21
Hardware Setup
A DIVISION OF TRIMBLE
2. Connect the supplied MMCX antenna cable to port 1 of the RFID module. Connect
your antenna to the other end of the cable (though an R-TNC to R-TNC cable if necessary). Make sure all the antenna cable connections are tight.
3. Make sure the Flash Erase jumper is in the “NORM” position.
4. If you are using a Li-ion battery (not supplied with platform), plug it into the two- or
three-port jack, as appropriate.
22 Quick Start Guide
Hardware Setup
A DIVISION OF TRIMBLE
5. Make sure the POE jumper is in the correct position for AC operation, as shown in the
photo below. Later, if powering the module from a POE module, you can move the jumper into the “POE” position.
Always-on jumper.
Keep in this position
to use on/off switch
to start
POE jumper. Keep in this position
to power via AC
adapter
6. Move the Always-on jumper to the position away from the board edge if you want the
board to be on whenever the power source is present. Otherwise, leave it in the position closest to the board edge and use the on/off switch to control power to the system.
7. Plug the AC adapter into the motherboard and connect it to an AC power source.
8. If you wish to run the pre-installed RFID Sensor application, move your PC cursor to
a database field or document where you would normally enter text via a keyboard.
9. Place one or more tags near the antenna and push the “User Switch” once.
Quick Start Guide 23
Hardware Setup
A DIVISION OF TRIMBLE
10. Tags in the vicinity of the antenna will be read and “typed” on separate lines
repeatedly every second. All the tag “metadata” (information relating to tag reading conditions) are included, as well as the tag identity (its “EPC”).
The blue LED will be on when the module is actively reading. The yellow LED will flash and the buzzer will chirp whenever a tag is read.
11. If you wish to see status messages while the xPRESS platform is operating, connect
the second USB cable into the “Debug” USB port and connect it to your PC. You will need to activate a serial terminal application (such as puTTY) at 115200 bits per second to view the messages. The guide to interacting with the console is found in the
Using the Sample Application chapter.
12. Press the “User Switch” button again to stop reading
24 Quick Start Guide
A DIVISION OF TRIMBLE

Using the Sample Application

Initially, only one sample application will be available for the xPRESS platform, the RFID Sensor (an enhanced version of the original application that we called the “Keyboard Wedge”. The xPRESS platform will ship with this application pre-installed and the source code for it will be included in the SDK.
Basic instructions for operating this application were given in the Quick Start Guide. This section provides additional information about its architecture how to interpret and control the console messages seen while the xPRESS system is active.
Using the Sample Application 25

RFID Sensor Application

A DIVISION OF TRIMBLE
RFID Sensor Application
The RFID Sensor is an application that reads tags in the vicinity of the antenna and forwards their ID’s and environmental information to the active interface. If the active interface is the USB port or Bluetooth port, they act as if they are a keyboard connected to your host device and transfer the tag information just as if you were typing it. If either of the network interfaces (WiFi or Ethernet) are the active interface, then they will stream this same data using text-based IP protocols. Instructions for using the USB interface were given in the Optional Bluetooth, WiFi and Ethernet interfaces are explained in the
Modules Chapter.

Architecture of the RFID Sensor App

The RFID Sensor App is designed to get a user up and running with a minimum of effort. The demonstration application simultaneously controls the RFID module, maintains the active data interface, and forma ts the data that is sent out that interface.
Quick Start Guide Chapter. Setup, configuration, and operation of the
Using the Optional
We call this a “Sensor App” because it aggregates the information collected from the tag with local information it knows about environmental conditions at the time the tag was read and (optionally) the GPS location of the reader at the time the tag was read.
A console interface is provided which provides status information while the xPRESS platform is operating and allows some interaction with the optional modules. Changing of configuration settings are not supported through the console in this version of the application. Settings are modified in the source code of the application, which is then re-built and downloaded to the xPRESS platform.
Demo App Architecture
The Demo App includes off-the-shelf software that provides a framework for it. These
include:
FreeRTOS: Provides tasks and queues
ASF: Provides drivers (except for Bluetooth module)
Mercury API: Provides control for the RFID module
The App itself consists of:
GPI monitor task
26 Using the Sample Application
RFID Sensor Application
A DIVISION OF TRIMBLE
RFID reader task
Keyboard output task
EPC formatter function
Custom drivers: Bluetooth module
These functional utilities interact with each other as shown in the diagram below:
Demo App Program Flow
Execution starts at xpressReader/app_demo/main.c, which launches 2 tasks: RfidReader and KBWedge.
Task RfidReader runs task_rfid, which controls the reader.
Task KBWedge runs task_wedge, which controls the UI (keyboard output,
pushbutton inputs).
The workflow begins when the user presses the read trigger button
pin_edge_handler fires on the falling edge of the button press, having previously
been set up by wedge_configure_buttons, which was called in task_wedge’s initialization.
pin_edge_handler reads the current state of the read trigger button and sets the
global activateTagReads accordingly.
task_rfid monitors activateTagReads. When it becomes true, it enters readTags.
readTags operates the RFID reader then calls reportTags to retrieve the tag
reads.
reportTags fetches each tag read, formats it, then adds it to epcQueue
task_wedge constantly runs wedge_ui_process, which executes the state machine
that generates USB HID keyboard output. This has to be written as a state machine because the USB host polls for one HID message at a time, and each HID message corresponds to a single keypress (or release.) Note that only low-speed USB connections do not poll automatically, so task_wedge’s inner loop only needs to run in that case. For faster USB modes, the USB driver calls wedge_ui_process directly.
Using the Sample Application 27
RFID Sensor Application
A DIVISION OF TRIMBLE
Within wedge_ui_process is a call to xQueueReceive from epcQueue.
Whenever the current string is depleted, the state machine automatically calls this function to get the next available tag read string.
Demo App Program Configuration
To modify the workflow, there are many compile-time switches in xpressreader/app/ conf/conf_xpress_reader.h:
To change which button is the trigger, modify all strings related to
PRODUCT_MAIN_BUTTON.
To change trigger behavior, change the ENABLE_GPI_READ definition.
ENABLE_GPI_READ_WHILE_PRESSED: Keep reading as long as trigger is held
down.
ENABLE_GPI_READ_ON_OFF: Toggle reading each time trigger is pulled.
ENABLE_GPI_READ_ONCE: Read once for each trigger pull.
To change tag read feedback
ENABLE_TAG_READ_BUZZER
ENABLE_TAG_READ_LEDS
To change the tag read output format
SIMPLE_TAG_EPC_OUTPUT
FULL_TAG_DATA_SINGLE_LINE_OUTPUT
FULL_TAG_DATA_FORM_OUTPUT
For finer-grained control, use the TAG_*_{PRE,POST}FIX macros

RTC: Real Time Clock

The xPRESS system has RTC block which is in-built to main controller and used to append timestamp of tag read into Sensor output data format.
Due to hardware limitation of not having external 32kHz crystal (RTC will have to use internal RC which won’t be as accurate), the user will need to set RTC date and time at
28 Using the Sample Application
RFID Sensor Application
A DIVISION OF TRIMBLE
every power cycle using CLI command. otherwise timestamp will start from default RTC value ie, 2007-01-01 in Sensor output tag data format.
tag{epc=0xdeadbeafdeadbeafdeadbeaf protocol=GEN2 ant=1 readcount=5 rssi=-79 frequency=926750 timestamp=2007-01-01T00:00:07.587 phase=2 gpio=1111 lat=17.260672 lon=78.236042 }
Using the Sample Application 29

xPRESS Console

A DIVISION OF TRIMBLE
xPRESS Console

Connecting to the Console

The Console provides status information for the xPRESS platform. Some interactive utilities supported by
the FreeRTOS operating system and maintenance utilities for the optional modules are supported as well.
Follow these steps to view the Console:
1. Install the FTDI Virtual Com Port drivers for your OS:
http://www.ftdichip.com/Drivers/VCP.htm
2. Run a terminal program (such as PuTTY) and connect to the console (debug port) as
a serial connection at 115200 bps.

Console Commands

The console has a limited number of commands that it can interpret.
Here are the supported commands:
30 Using the Sample Application
Loading...
+ 114 hidden pages