JADAK a business unit of Novanta MERCURY6E-M RFID Module User Manual M6e Micro HardwareGuide

Trimble Navigation Limited RFID Module M6e Micro HardwareGuide

Manual

875-0069-01 RevBM6e-Micro Hardware Guide For: M6e-Micro (Firmware Ver. 1.1.0 and later)
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 byparagraph (b)(3) of the Rights in Technical Data — Noncommercial Itemsclause (DFARS 252.227-7013(b)(3)), as amended from time-to-time. Anyreproduction of technical data or portions thereof marked with this legendmust also reproduce the markings. Any person, other than the U.S.Government, who has been provided access to such data must promptlynotify ThingMagic.ThingMagic, Mercury, Reads Any Tag, and the ThingMagic logo aretrademarks or registered trademarks of ThingMagic, A Division of Trimble. Other product names mentioned herein may be trademarks or registeredtrademarks of Trimble or other companies.©2012 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.dThingMagic, A Division of TrimbleOne Cambridge Center, 11th floorCambridge, MA 02142866-833-406901 Revision 1September, 2012
A DIVISION OF TRIMBLE3Revision TableDate Version Description9/2012 01 Rev1 Revision 1 final release11/2012 01 RevB Updated Authorized Antennas list
A DIVISION OF TRIMBLE4
Mercury Embedded Modules Developerʼs Guide  5 ContentsCommunication Regulation Information 11M6e-Micro 12Federal Communication Commission Interference Statement 12Industry Canada 14Industrie Canada 15Authorized Antennas 16M6e-Micro Introduction 17Hardware Overview 19Hardware Interfaces 20Antenna Connections 20Antenna Requirements 20Digital/Power Interfaces 20Control Signal Specification 21General Purpose Input/Output (GPIO) 23Reset Line 24Shutdown Line 25Power Requirements 26RF Power Output 26Power Supply Ripple 26Power Consumption 27Environmental Specifications 28Thermal Considerations 28Electro-Static Discharge (ESD) Specification 30Authorized Antennas 31Assembly Information 32Cables and Connectors 32Digital Interface 32Antennas 32M6e-Micro Mechanical Drawing 33
6Mercury Embedded Modules Developerʼs GuideM6e-Micro Footprint 34Firmware Overview 35Boot Loader 36Application Firmware 37Programming the M6e-Micro 37Upgrading the M6e-Micro 37Verifying Application Firmware Image 37Custom On-Reader Applications 38Communication Protocol 39Serial Communication Protocol 40Host-to-Reader Communication 40Reader-to-Host Communication 41CCITT CRC-16 Calculation 41User Programming Interface 42Functionality of the M6e-Micro 43Regulatory Support 44Supported Regions 44Protocol Support 45ISO 18000-6C (Gen2) 45Protocol Configuration Options 45Protocol Specific Functionality 46I-PX 46Protocol Configuration Options 46ISO 18000-6B 46Protocol Configuration Options 46Antenna Ports 48Using a Multiplexer 48Port Power and Settling Time 50Tag Handling 51Tag Buffer 51Tag Streaming/Continuous Reading 51Tag Read Meta Data 53Power Management 54Power Modes 54Transmit Modes 54
Mercury Embedded Modules Developerʼs Guide 7DRM Compliant Mode 55Power Save Mode (non-DRM Compliant) 55Performance Characteristics 56Event Response Times 56Save and Restore Configuration 57Appendix A: Error Messages 59Common Error Messages 59FAULT_MSG_WRONG_NUMBER_OF_DATA – (100h) 59FAULT_INVALID_OPCODE – (101h) 59FAULT_UNIMPLEMENTED_OPCODE – 102h 60FAULT_MSG_POWER_TOO_HIGH – 103h 60FAULT_MSG_INVALID_FREQ_RECEIVED (104h) 61FAULT_MSG_INVALID_PARAMETER_VALUE - (105h) 61FAULT_MSG_POWER_TOO_LOW - (106h) 61FAULT_UNIMPLEMENTED_FEATURE - (109h) 61FAULT_INVALID_BAUD_RATE - (10Ah) 62Bootloader Faults 63FAULT_BL_INVALID_IMAGE_CRC – 200h 63FAULT_BL_INVALID_APP_END_ADDR – 201h 63Flash Faults 64FAULT_FLASH_BAD_ERASE_PASSWORD – 300h 64FAULT_FLASH_BAD_WRITE_PASSWORD – 301h 64FAULT_FLASH_UNDEFINED_ERROR – 302h 65FAULT_FLASH_ILLEGAL_SECTOR – 303h 65FAULT_FLASH_WRITE_TO_NON_ERASED_AREA – 304h 65FAULT_FLASH_WRITE_TO_ILLEGAL_SECTOR – 305h 65FAULT_FLASH_VERIFY_FAILED – 306h 66Protocol Faults 67FAULT_NO_TAGS_FOUND – (400h) 68FAULT_NO_PROTOCOL_DEFINED – 401h 68FAULT_INVALID_PROTOCOL_SPECIFIED – 402h 68FAULT_WRITE_PASSED_LOCK_FAILED – 403h 69FAULT_PROTOCOL_NO_DATA_READ – 404h 69FAULT_AFE_NOT_ON – 405h 69FAULT_PROTOCOL_WRITE_FAILED – 406h 70FAULT_NOT_IMPLEMENTED_FOR_THIS_PROTOCOL – 407h 70FAULT_PROTOCOL_INVALID_WRITE_DATA – 408h 70FAULT_PROTOCOL_INVALID_ADDRESS – 409h 70
8Mercury Embedded Modules Developerʼs GuideFAULT_GENERAL_TAG_ERROR – 40Ah 71FAULT_DATA_TOO_LARGE – 40Bh 71FAULT_PROTOCOL_INVALID_KILL_PASSWORD – 40Ch 71FAULT_PROTOCOL_KILL_FAILED - 40Eh 71FAULT_PROTOCOL_BIT_DECODING_FAILED - 40Fh 72FAULT_PROTOCOL_INVALID_EPC – 410h 72FAULT_PROTOCOL_INVALID_NUM_DATA – 411h 72FAULT_GEN2 PROTOCOL_OTHER_ERROR - 420h 72FAULT_GEN2_PROTOCOL_MEMORY_OVERRUN_BAD_PC - 423h 73FAULT_GEN2 PROTOCOL_MEMORY_LOCKED - 424h 73FAULT_GEN2 PROTOCOL_INSUFFICIENT_POWER - 42Bh 73FAULT_GEN2 PROTOCOL_NON_SPECIFIC_ERROR - 42Fh 74FAULT_GEN2 PROTOCOL_UNKNOWN_ERROR - 430h 74Analog Hardware Abstraction Layer Faults 75FAULT_AHAL_INVALID_FREQ – 500h 75FAULT_AHAL_CHANNEL_OCCUPIED – 501h 75FAULT_AHAL_TRANSMITTER_ON – 502h 75FAULT_ANTENNA_NOT_CONNECTED – 503h 75FAULT_TEMPERATURE_EXCEED_LIMITS – 504h 76FAULT_POOR_RETURN_LOSS – 505h 76FAULT_AHAL_INVALID_ANTENA_CONFIG – 507h 76Tag ID Buffer Faults 78FAULT_TAG_ID_BUFFER_NOT_ENOUGH_TAGS_AVAILABLE – 600h 78FAULT_TAG_ID_BUFFER_FULL – 601h 78FAULT_TAG_ID_BUFFER_REPEATED_TAG_ID – 602h 79FAULT_TAG_ID_BUFFER_NUM_TAG_TOO_LARGE – 603h 79System Errors 80FAULT_SYSTEM_UNKNOWN_ERROR – 7F00h 80FAULT_TM_ASSERT_FAILED – 7F01h 80Appendix B: Getting Started - Devkit 81Devkit Hardware 81Included Components 81Setting up the DevKit 81Connecting the Antenna 82Powering up and Connecting to a PC 82Devkit USB Interfaces 83USB/RS232 83Native USB 83Devkit Jumpers 84
Mercury Embedded Modules Developerʼs Guide 9Devkit Schematics 85Demo Application 86Notice on Restricted Use of the DevKit 87Appendix C: Environmental Considerations 89ElectroStatic Discharge (ESD) Considerations 89ESD Damage Overview 89Identifying ESD as the Cause of Damaged Readers 90Common Installation Best Practices 91Raising the ESD Threshold 92Further ESD Protection for Reduced RF Power Applications 92Variables Affecting Performance 94Environmental 94Tag Considerations 94Multiple Readers 95
10 Mercury Embedded Modules Developerʼs Guide
Communication Regulation InformationA DIVISION OF TRIMBLE11Communication Regulation Information
M6e-Micro12M6e-MicroEMC  FCC 47 CFR, Part 15Industrie Canada RSS-210M6e-Micro Regulatory InformationFederal Communication Commission Interference StatementThis equipment has been tested and found to comply with the limits for a Class B digital device, pursuant to Part 15 of the FCC Rules. These limits are designed to provide reasonable protection against harmful interference in a residential installation. This equipment generates uses and can radiate radio frequency energy and, if not installed and used in accordance with the instructions, may cause harmful interference to radio communications. However, there is no guarantee that interference will not occur in a particular installation. If this equipment does cause harmful interference to radio or television reception, which can be determined by turning the equipment off and on, the user is encouraged to try to correct the interference by one of the following measures:Reorient or relocate the receiving antenna.Increase the separation between the equipment and receiver.Connect the equipment into an outlet on a circuit different from that to which the receiver is connected.Consult the dealer or an experienced radio/TV technician for help.This device complies with Part 15 of the FCC Rules. Operation is subject to the following two conditions: (1) This device may not cause harmful interference, and (2) this device must accept any interference received, including interference that may cause undesired operation.FCC Caution: Any changes or modifications not expressly approved by the party responsible for compliance could void the user's authority to operate this equipment.WARNING!Operation of the M6e-Micro module requires professional installation to correctly set the TX power for the RF cable and antenna selected.This transmitter module is authorized to be used in other devices only by OEM integrators under the following conditions:
M6e-MicroA DIVISION OF TRIMBLE131.    The antenna(s) must be installed such that a minimum separation distance of 25cm is maintained between the radiator (antenna) & userʼs/nearby peopleʼs body at all times.2.    The transmitter module must not be co-located with any other antenna or transmitter. As long as the two conditions above are met, further transmitter testing will not be required. However, the OEM integrator is still responsible for testing their end-product for any additional compliance requirements required with this module installed (for example, digital device emissions, PC peripheral requirements, etc.).NoteIn the event that these conditions can not be met (for certain configurations or co-location with another transmitter), then the FCC authorization is no longer considered valid and the FCC ID can not be used on the final product. In these circumstances, the OEM integrator will be responsible for re-evaluating the end product (including the transmitter) and obtaining a separate FCC authorization.The OEM integrator has to be aware not to provide information to the end user regarding how to install or remove this RF module in the user manual of the end product.User Manual RequirementThe user manual for the end product must include the following information in a prominent location;“To comply with FCC’s RF radiation exposure requirements, the antenna(s) used for this transmitter must be installed such that a minimum separation distance of 25cm is maintained between the radiator (antenna) & user’s/nearby people’s body at all times and must not be co-located or operating in conjunction with any other antenna or transmitter.”AND“The transmitting portion of this device carries with it the following two warnings:“This device complies with Part 15....”AND“Any changes or modifications to the transmitting module not expressly approved by ThingMagic Inc. could void the user’s authority to operate this equipment” “
M6e-Micro14End Product LabelingThe final end product must be labeled in a visible area with the following:“Contains Transmitter Module FCC ID: QV5MERCURY6E-M” or “Contains FCC ID: QV5MERCURY6E-M.” Industry CanadaUnder Industry Canada regulations, this radio transmitter may only operate using an antenna of a type and maximum (or lesser) gain approved for the transmitter by Industry Canada. To reduce potential radio interference to other users, the antenna type and its gain should be so chosen that the equivalent isotropically radiated power (e.i.r.p.) is not more than that necessary for successful communication.This radio transmitter (identify the device by certification number, or model number if Category II) has been approved by Industry Canada to operate with the antenna types listed below with the maximum permissible gain and required antenna impedance for each antenna type indicated. Antenna types not included in this list, having a gain greater than the maximum gain indicated for that type, are strictly prohibited for use with this deviceOperation is subject to the following two conditions: (1) this device may not cause interference, and (2) this device must accept any interference, including interference that may cause undesired operation of the device.To reduce potential radio interference to other users, the antenna type and its gain should be so chosen that the equivalent isotropically radiated power (e.i.r.p.) is not more than that permitted for successful communication.This device has been designed to operate with the antennas listed in Authorized Antennas table. Antennas not included in these lists are strictly prohibited for use with this device.To comply with IC RF exposure limits for general population/uncontrolled exposure, the antenna(s) used for this transmitter must be installed to provide a separation distance of at least 25 cm from all persons and must not be collocated or operating in conjunction with any other antenna or transmitter.
M6e-MicroA DIVISION OF TRIMBLE15End Product LabelingThe final end product must be labeled in a visible area with the following:“Contains ThingMagic Inc. M6e-Micro (or appropriate model number youʼre filing with IC) transmitting module FCC ID: QV5MERCURY6E-M (IC: 5407A-MERCURY6EM)”Industrie CanadaConformément à la réglementation d'Industrie Canada, le présent émetteur radio peut fonctionner avec une antenne d'un type et d'un gain maximal (ou inférieur) approuvé pour l'émetteur par Industrie Canada. Dans le but de réduire les risques de brouillage radioélectrique à l'intention des autres utilisateurs, il faut choisir le type d'antenne et son gain de sorte que la puissance isotrope rayonnée équivalente (p.i.r.e.) ne dépasse pas l'intensité nécessaire à l'établissement d'une communication satisfaisante.Le présent émetteur radio (identifier le dispositif par son numéro de certification ou son numéro de modèle s'il fait partie du matériel de catégorie I) a été approuvé par Industrie Canada pour fonctionner avec les types d'antenne énumérés ci-dessous et ayant un gain admissible maximal et l'impédance requise pour chaque type d'antenne. Les types d'antenne non inclus dans cette liste, ou dont le gain est supérieur au gain maximal indiqué, sont strictement interdits pour l'exploitation de l'émetteurLe fonctionnement de lʼ appareil est soumis aux deux conditions suivantes:1.    Cet appareil ne doit pas perturber les communications radio, et2.    cet appareil doit supporter toute perturbation, y compris les perturbations qui pourraient provoquer son dysfonctionnement.Pour réduire le risque d'interférence aux autres utilisateurs, le type d'antenne et son gain doivent être choisis de façon que la puissance isotrope rayonnée équivalente (PIRE) ne dépasse pas celle nécessaire pour une communication réussie. Lʼ appareil a été conçu pour fonctionner avec les antennes énumérés dans les tables Antennes Autorisées. Il est strictement interdit de lʼ utiliser lʼ appareil avec des antennes qui ne sont pas inclus dans ces listes.Au but de conformer aux limites d'exposition RF pour la population générale (exposition non-contrôlée), les antennes utilisés doivent être installés à une distance d'au moins 25 cm de toute personne et ne doivent pas être installé en proximité ou utilisé en conjonction avec un autre antenne ou transmetteur.Marquage sur l’ étiquette du produit complet dans un endroit visible: "Contient ThingMagic transmetteur, FCC ID: QV5MERCURY6E-M (IC:5407A-MERCURY6EM)"
M6e-Micro16Authorized AntennasThis device has been designed to operate with the antennas listed in Authorized Antennas. Antennas not included in this list are strictly prohibited for use with this device.
A DIVISION OF TRIMBLEM6e-Micro Introduction 17M6e-Micro IntroductionThe ThingMagic® M6e-Micro® embedded module is an RFID engines that you can integrate with other systems to create RFID-enabled products. Applications to control the M6e-Micro modules and derivative products can be written using the high level MercuryAPI. The MercuryAPI supports Java, .NET and C programming environments. The MercuryAPI Software Development Kit (SDK) contains sample applications and source code to help developers get started demoing and developing functionality. For more information on the MercuryAPI see the MercuryAPI Programmers Guide and the MercuryAPI SDK, available on the ThingMagic website.This document is for hardware designers and software developers. It describes the hardware specifications and firmware functionality and provides guidance on how to incorporate the M6e-Micro module within a third-party host system. The rest of the document is broken down into the following sections:Hardware Overview - This section provides detailed specifications of the M6e-Micro hardware. This section should be read in its entirety before designing hardware or attempting to operate the M6e-Micro module in hardware other than the ThingMagic DevKit.Firmware Overview - This section describes provides a detailed description of the M6e-Micro firmware components including the bootloader and application firmware.Communication Protocol - This section provides an overview of the low level serial communications protocol used by the M6e-Micro.Functionality of the M6e-Micro - This section provides detailed descriptions of the M6e-Micro features and functionality that are supported through the use of the MercuryAPI.Appendix A: Error Messages - This appendix lists and provides causes and suggested solutions for M6e-Micro Error Codes.Appendix B: Getting Started - Devkit - QuickStart guide to getting connected to the M6e-Micro Developerʼs Kit and using the Demo Applications included with the MercuryAPI SDK.
A DIVISION OF TRIMBLE18 M6e-Micro Introduction
A DIVISION OF TRIMBLEHardware Overview 19Hardware OverviewThe following section provides detailed specifications of the M6e-Micro hardware including:Hardware InterfacesPower RequirementsEnvironmental SpecificationsAssembly Information
Hardware InterfacesA DIVISION OF TRIMBLE20 Hardware OverviewHardware InterfacesAntenna ConnectionsThe M6e-Micro supports two monostatic bidirectional RF antennas through two U.FL connector or edge vias. See Cables and Connectors for more information on antenna connector parts and M6e-Micro Footprint for antenna edge via locations and layout guidelines.The maximum RF power that can be delivered to a 50 ohm load from each port is 1 Watt, or +30 dBm (regulatory requirements permitting). NoteThe RF ports can only be energized one at a time.Antenna RequirementsThe performance of the M6e-Micro is affected by antenna quality. Antennas that provide good 50 ohm match at the operating frequency band perform best. Specified sensitivity performance is achieved with antennas providing 17 dB return loss or better across the operating band. Damage to the module will not occur for any return loss of 1 dB or greater. Damage may occur if antennas are disconnected during operation or if the module sees an open or short circuit at its antenna port. Digital/Power InterfacesThe digital connector provides power, serial communications signals, shutdown and reset signals to the M6e-Micro module, and access to the GPIO lines. These signals are provided through edge vias and the Molex 53748-0208 connector. See Cables and Connectors for more information on parts. See M6e-Micro Footprint for pinout details of both connections and layout guidelines
Hardware InterfacesA DIVISION OF TRIMBLEHardware Overview 21Control Signal SpecificationThe module communicates to a host processor via a TTL logic level UART serial port or via a USB port. Both ports are accessed on the Molex connector or edge vias. The TTL logic level UART supports complete functionality. The USB port supports complete functionality except the lowest power operational mode. NotePower Consumption specifications apply to control via the TTL UART.M6e-Micro Digital Connector Signal DefinitionEdge Via Pin #Molex 53748-0208 Pin #SignalSignal Direction (In/Out of M6e-Micro)Notes1-15, 21, 23, 29, 315-8 GND P/S Return Must connect all GND pins to ground25, 27 1-4 Vin P/S Input 3.5 to 5.25VDC. Must connect all Vin supplies.22 11 GPIO1 Bi-directional Input 5VDC tolerant, 16mA Source/Sink24 13 GPIO2 Bi-directional28 15 UART_RX_TTL In26 17 UART_TX_TTL Out18 14 USB_DM Bi-directional USB Data (D-) signal16 12 USB_DP Bi-directional USB Data (D+) signal20 9 USB_5VSENSE In Input 5V to tell module to talk on USB19 19 SHUTDOWN In •  HIGH or Open Circuit to ENABLE module•  LOW or Ground to SHUTDOWN17 20 RESET Bi-directional •  HIGH output indicates Boot Loader is runningLOW output indicates Application Firmware is running30 U.FL Antenna 1 Bi-directional U.FL connector closest to the Molex connector32 U.FL Antenna 2 Bi-directional U.FL connector closest to the mod-uleʼs edge
Hardware InterfacesA DIVISION OF TRIMBLE22 Hardware OverviewNoteIt is not recommended to use the TTL interface when planning to operate the module in Tag Streaming/Continuous Reading mode. The TTL interface (both the module side and the host side) cannot detect physical disconnections, as can the USB Interface, simplifying reconnection. TTL Level UART InterfaceTTL Level TXV-Low: Max 0.4 VDCV-High: 2.1 to 3.3 VDC8 mA maxTTL Level  RXV-Low: -0.3 to 0.6 VDCV-High: 2.2 to 5 VDCA level converter could be necessary to interface to other devices that use standard 12V RS232. Only three pins are required for serial communication (TX, RX, and GND). Hardware handshaking is not supported. The M6e-Micro serial port has an interrupt-driven FIFO that empties into a circular buffer. The connected host processorʼs receiver must have the capability to receive up to 256 bytes of data at a time without overflowing.Baud rates supported:–   9600–   19200–   38400–   115200–   230400–   460800–   921600NoteThe baudrate in the Boot Loader mode depends on whether the module entered the bootloader mode after a power-up or through an assert or “boot bootloader” user command. Upon power up if the Reset Line is LOW then the default baud rate of 9600 will be used. If the module returns to the bootloader from Application Firmware mode, then the current state and baudrate will be retained.
Hardware InterfacesA DIVISION OF TRIMBLEHardware Overview 23USB InterfaceSupports USB 2.0 full speed device port (12 Megabits per second) using the two USB pins (USB_DM and USB_DP).General Purpose Input/Output (GPIO)The two GPIO connections, provided through the M6e-Micro Digital Connector Signal Definition, may be configured as inputs or outputs using the MercuryAPI. The GPIO pins connect through 100 ohm resistors to the high current PA0 and PA1 pins of the AT91SAM7S processor. The processor data sheet can be consulted for additional details.Pins configured as inputs must not have input voltages that exceed voltage range of -0.3 volts to +5.5 volts. In addition, during reset the input voltages should not exceed 3.3V.Outputs may source and sink 16 mA. Voltage drop in the internal series 100 ohm resistor will reduce the delivered voltage swing for output loads that draw significant current. Input Mode–   TTL compatible inputs, –   Logic low < 0.8 V,–   Logic high > 2.0V.–   5V tolerant  Output Mode–   3.3 Volt CMOS Logic Output with 100 ohms in series.–   Greater than 1.9 Volts when sourcing 8 mA.–   Greater than 2.9 Volts when sourcing 0.3 mA.–   Less than 1.2 Volts when sinking 8 mA.–   Less than 0.2 Volts when sinking 0.3 mA.Module power consumption can be adversely affected by incorrect GPIO configuration. Similarly, the power consumption of external equipment connected to the GPIOs can also be adversely affected. The following instructions will yield specification compliant operation. On power up, the M6e-Micro module configures its GPIOs as inputs to avoid contention from user equipment that may be driving those lines. The input configuration is as a 3.3 volt logic CMOS input and will have a leakage current not in excess of 400 nA. The input is in an undetermined logic level unless pulled externally to a logic high or low. Module power consumption for floating inputs is unspecified. With the GPIOs configured as
Hardware InterfacesA DIVISION OF TRIMBLE24 Hardware Overviewinputs and individually pulled externally to either high or low logic level, module power consumption is as listed in the M6e-Micro Power Consumption table. GPIOs may be reconfigured individually after power up to become outputs. This configuration takes effect either at API execution or a few tens of milliseconds after power up if the configuration is stored in nonvolatile memory. The configuration to outputs is defeated if the module is held in the boot loader by Reset Line being held low. Lines configured as outputs consume no excess power if the output is left open. Specified module power consumption is achieved for one or more GPIO lines set as output and left open. Users who are not able to provide external pull ups or pull downs on any given input, and who do not need that GPIO line, may configure it as an output and leave it open to achieve specified module power consumption.Configuring GPIO SettingsThe GPIO lines are configured as inputs or outputs through the MercuryAPI by setting the reader configuration parameters /reader/gpio/inputList and /reader/gpio/outputList. Once configured as inputs or outputs the state of the lines can be Get or Set using the gpiGet() and gpoSet() methods, respectively. See the language specific reference guide for more details.Reset LineUpon power up the RESET line is configured as an input. The input value will determine whether the Boot Loader (pulled LOW) will wait for user commands or immediately load the Application Firmware (left open) image and enter application mode. After that action is completed, this line is configured as an output line. While the unit continues to be in bootloader the line is driven high.Once in application mode, the RESET line is driven low. if the module returns to the bootloader mode, either due to an assert or “boot bootloader”, the RESET line will again be driven high. To minimize power consumption in the application, the RESET line should be either left open or pulled weakly low (10k to ground). See Note about baud rate applicable when using TTL Level UART Interface.
Hardware InterfacesA DIVISION OF TRIMBLEHardware Overview 25Shutdown LineCAUTION!!!The polarity of the shutdown line is opposite from the 4-port M6e mod-ule.The SHUTDOWN line must be set HIGH or Open Circuit to ENABLE module. In order to shutdown/reset/power cycle the module the line can be set LOW or pulled to Ground. Switching from high to low to high is equivalent to performing a power cycle of the module. All internal components are powered down when set low.
Power RequirementsA DIVISION OF TRIMBLE26 Hardware OverviewPower RequirementsRF Power OutputThe M6e-Micro supports separate read and write power level which are command adjustable via the MercuryAPI. Power levels must be between:–   Minimum RF Power = 0 dBm–   Maximum RF Power = +30 dBmNoteMaximum power may have to be reduced to meet regulatory limits, which specify the combined effect of the module, antenna, cable and enclosure shielding of the integrated product. Power Supply RippleThe following are the minimum requirements to avoid module damage and to insure performance and regulatory specifications are met. Certain local regulatory specifications may require tighter specifications.3.5 to 5.25VDCLess than 25 mV pk-pk ripple all frequencies,Less than 11 mV pk-pk ripple for frequencies less than 100 kHz,No spectral spike greater than 5 mV pk-pk in any 1 kHz band.
Power RequirementsA DIVISION OF TRIMBLEHardware Overview 27Power ConsumptionThe following table defines the power consumption specifications for the M6e-Micro in various states of operation. See Power Management for details. These nominal values should be used to calculate metrics such as battery life. To determine the absolute maximum DC power that would be required under any condition, one must consider temperature, channel of operation, and antenna return loss.M6e-Micro Power ConsumptionOperationRF Transmit Power Setting (dBm)Nominal DC Power1 (Watts)Active Reader (RF On) +30 5.5+27 3.5+23 2.5+10 2.0No Tag Reading (M6e idle)Power Mode = FULLn/a 0.325No Tag Reading (M6e idle)Power Mode = MINSAVEn/a 0.06No Tag Reading (M6e idle)Power Mode = SLEEPn/a 0.025Shutdown Line enabled n/a 0.000025Note:  1 - Power consumption is defined for TTL UART operation. Power consumption may vary if the USB interface is connected.Note:  2 - Power consumption is defined for operation into a 17dB return loss load or better. Power consumption may increase, up to TBD, during operation into return losses worse than 17dB and high ambient temperatures.
Environmental SpecificationsA DIVISION OF TRIMBLE28 Hardware OverviewEnvironmental SpecificationsThermal ConsiderationsThere are two ways of mounting the M6e-Micro, see M6e-Micro Footprint for additional details. One is to solder the board to the motherboard using its side “vias”, with the RF shield can facing upward. The other is to use the board-to-board connectors to connect to the motherboard and solder the 4 tabs on the shield to the motherboard as well. The orientation with the side “vias” soldered down is best for wicking heat away from the module. Most applications involve the module transmitting periodically to inventory tags in the field. The longer the transmitter is on in relation to its off time (the “duty cycle”) the faster the temperature will rise. The module will not transmit if the temperature is at a dangerous level, but will transmit again as soon as the temperature drops – often so quickly it is hardly noticeable. Other factors that affect the time before the module begins to protect itself is the ambient temperature and the power level at which the module is transmitting.  These factors are represented in the following table, which give the typical minutes of transmission time before thermal protection is enabled:Thermal CalculationsMounting Ambient Temp (C)RF Power (dBm)Duty Cycle %Time (m) to reach max temperatureBoard to board -40 30 98 >10Board to board 25 23 98 >10Board to board 25 30 80 >10Board to board 25 30 90 7.34Board to board 25 30 98 5.99Board to board 60 23 50 >10board to board 60 23 60 7.59Board to board 60 23 80 2.24Board to board 60 23 98 1.46Board to board 60 30 30 >10Board to board 60 30 50 4.17
Environmental SpecificationsA DIVISION OF TRIMBLEHardware Overview 29Board to board 60 30 60 1.99Board to board 60 30 80 1.11Board to board 60 30 98 0.98Soldered down -40 30 98 >10Soldered down 25 23 50 >10Soldered down 25 23 60 2.93Soldered down 25 23 80 2.22Soldered down 25 23 98 1.24Soldered down 25 30 40 >10Soldered down 25 30 50 6.68Soldered down 25 30 60 2.49Soldered down 25 30 80 1.5Soldered down 25 30 98 1.06Soldered down 60 23 30 5.64Soldered down 60 23 50 1.13Soldered down 60 23 60 0.81Soldered down 60 23 80 0.54Soldered down 60 23 98 0.29Soldered down 60 30 15 >10Soldered down 60 30 30 1.98Soldered down 60 30 50 0.73Soldered down 60 30 60 0.56Soldered down 60 30 80 0.27Soldered down 60 30 98 0.27Mounting Ambient Temp (C)RF Power (dBm)Duty Cycle %Time (m) to reach max temperature
Environmental SpecificationsA DIVISION OF TRIMBLE30 Hardware OverviewElectro-Static Discharge (ESD) SpecificationIEC-61000-4-2 and MIL-883 3015.7 discharges direct to operational antenna port tolerates max 2KV pulse.NoteSurvival level varies with antenna return loss and antenna characteristics. See ElectroStatic Discharge (ESD) Considerations for methods to increase ESD tolerances.WARNING!The M6e-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 and operation to avoid static discharge when handling or making connections to the M6e-Micro 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.
Authorized AntennasA DIVISION OF TRIMBLEHardware Overview 31Authorized AntennasThis device has been designed to operate with the antennas listed below, and having a maxi-mum gain of 6dBiL. Antennas not included in this list or having a gain greater than 6dBiLare strictly prohibited for use with this device without regulatory approval. The required antenna impedance is 50 ohms.M6e-Micro Authorized AntennasVendor Model Type Polarization Linear Gain1 (dBi)Laird S9025P Patch Circular 4.3MTI Wireless MT-242025 Patch Circular 5.1Laird FG9026 Dipole Linear 6.0Note:  1 - These are circularly polarized antennas, but since most tag antennas are linearly polarized, the equivalent linear gain, as provided, of the antenna should be used for all calculations.
Assembly InformationA DIVISION OF TRIMBLE32 Hardware OverviewAssembly InformationCables and ConnectorsThe following are the cables and connectors used in the M6e-Micro Developerʼs Kit interface board:Mating Connectors for Flip MountPower-I/O: Molex 52991-0208RF: Lighthorse LTI-IPXSF66GT-X1 or LTI-IPXSF54GTDigital InterfaceThe cable assembly used consists of the following parts:NotePin numbers and assignments are shown in the M6e-Micro Digital Connector Signal Definition table.AntennasThe cable assembly used to connect the “external” RP-TNC connectors on the M6e-Micro Devkit to the M6e-Micro MMCX connectors consists of the following parts:
Assembly InformationA DIVISION OF TRIMBLEHardware Overview 33M6e-Micro Mechanical DrawingM6e-Micro Dimensional Drawing
M6e-Micro FootprintA DIVISION OF TRIMBLE34 Hardware OverviewM6e-Micro Footprint
A DIVISION OF TRIMBLEFirmware Overview 35Firmware OverviewThe following section provides detailed description of the M6e-Micro firmware components: Boot Loader Application FirmwareCustom On-Reader Applications
Boot LoaderA DIVISION OF TRIMBLE36 Firmware OverviewBoot Loader The boot loader provides low-level functionality. This program provides the low level hardware support for configuring communication settings, loading Application Firmware and storing and retrieving data to/from flash. When a module is powered up or reset, the boot loader code is automatically loaded and executed. NoteUnlike previous ThingMagic modules (M4e and M5e) the M6e-Micro bootloader should effectively be invisible to the user. The M6e-Micro is by default configured to auto-boot into application firmware and for any operations that require the module be in bootloader mode the MercuryAPI will handle the switching automatically.
Application FirmwareA DIVISION OF TRIMBLEFirmware Overview 37Application Firmware The application firmware contains the tag protocol code along with all the command interfaces to set and get system parameters and perform tag operations. The application firmware is, by default, started automatically upon power up. Programming the M6e-MicroApplications to control the M6e-Micro module and derivative products are written using the high level MercuryAPI. The MercuryAPI supports Java, .NET and C programming environments. The MercuryAPI Software Development Kit (SDK) contains sample applications and source code to help developers get started demoing and developing functionality. For more information on the MercuryAPI see the MercuryAPI Programmers Guide and the MercuryAPI SDK, available on the ThingMagic website.Upgrading the M6e-MicroNew features developed for the M6e-Micro are made available to existing modules through an Application Firmware upgrade, along with corresponding updates to the MercuryAPI to make use of the new features. Firmware upgrades can be applied using the MercuryAPI to build the functionality into custom applications or using the MercuryAPI SDK demo utilities. Verifying Application Firmware ImageThe application firmware has an image level Cyclic Redundancy Check (CRC) embedded in it to protect against corrupted firmware during an upgrade process. (If the upgrade is unsuccessful, the CRC will not match the contents in flash.) When the boot loader starts the application FW, it first verifies that the image CRC is correct. If this check fails, then the boot loader does not start the application firmware and an error is returned.
Custom On-Reader ApplicationsA DIVISION OF TRIMBLE38 Firmware OverviewCustom On-Reader ApplicationsThe M6e-Micro does not support installing customer applications on the module. All reader configuration and control is performed using the documented MercuryAPI methods in applications running on a host processor.
A DIVISION OF TRIMBLECommunication Protocol 39Communication ProtocolThe following section provides an overview of the low level serial communications protocol used by the M6e-Micro.
Serial Communication ProtocolA DIVISION OF TRIMBLE40 Communication ProtocolSerial Communication ProtocolThe serial communication between a computer (host) and the M6e-Micro is based on a synchronized command-response/master-slave mechanism. Whenever the host sends a message to the reader, it cannot send another message until after it receives a response. The reader never initiates a communication session; only the host initiates a communication session. This protocol allows for each command to have its own timeout because some commands require more time to execute than others. The host must manage retries, if necessary. The host must keep track of the state of the intended reader if it reissues a command.Host-to-Reader CommunicationHost-to-reader communication is packetized according to the following diagram. The reader can only accept one command at a time, and commands are executed serially, so the host waits for a reader-to-host response before issuing another host-to-reader command packet. Header Data Length Command Data  CRC-16 ChecksumHdr Len Cmd CRC Hi CRC LOI1 byte 1 byte 1 byte 0 to 250 bytes 2 bytes
Serial Communication ProtocolA DIVISION OF TRIMBLECommunication Protocol 41Reader-to-Host CommunicationThe following diagram defines the format of the generic Response Packet sent from the reader to the host. The Response Packet is different in format from the Request Packet.CCITT CRC-16 CalculationThe same CRC calculation is performed on all serial communications between the host and the reader. The CRC is calculated on the Data Length, Command, Status Word, and Data bytes. The header is not included in the CRC.Header Data Length Command Data CRC-16 ChecksumHdr Len Cmd CRC HI CRC LO1 byte 1 byte 1 byte 2 bytesStatus WordStatus Word0 to 248 bytes2 bytes
User Programming InterfaceA DIVISION OF TRIMBLE42 Communication ProtocolUser Programming InterfaceThe M6e-Micro does not support programming to the serial protocol directly. All user interaction with the M6e-Micro must be performed using the MercuryAPI. The MercuryAPI supports Java, .NET and C programming environments. The MercuryAPI Software Development Kit (SDK) contains sample applications and source code to help developers get started demoing and developing functionality. For more information on the MercuryAPI see the MercuryAPI Programmers Guide and the MercuryAPI SDK, available on the ThingMagic website.
A DIVISION OF TRIMBLEFunctionality of the M6e-Micro 43Functionality of the M6e-MicroThe following section provides detailed descriptions of the M6e-Micro features and functionality that are supported through the use of the MercuryAPI.
Regulatory SupportA DIVISION OF TRIMBLE44 Functionality of the M6e-MicroRegulatory SupportSupported RegionsThe M6e-Micro has differing levels of support for operation and use under the laws and guidelines of several regions. The regional support is shown in the following table.The regional functionality is set using the MercuryAPI. Setting the region of operation configures the regional default settings including:Loads the frequency hop table with the appropriate table for the selected region.Sets the PLL frequency setting to the first entry in the hop table, even if the RF is off.Selects the transmit filter, if applicable.Supported RegionsRegion Regulatory Support NotesNorth America (NA) FCC 47 CFG Ch. 1 Part 15Industrie Canada RSS-210
Protocol SupportA DIVISION OF TRIMBLEFunctionality of the M6e-Micro 45Protocol SupportThe M6e-Micro has the ability to support many different tag protocols. Using the MercuryAPI ReadPlan classes the M6e-Micro can be configured to single or multi-protocol Read operations. The current protocols supported are (some may require a license to enable):ISO 18000-6C (Gen2)I-PXISO 18000-6BISO 18000-6C (Gen2)Protocol Configuration OptionsThe M6e-Micro supports multiple ISO-18000-6C profiles including the ability to specify the Link Frequency, encoding schemes, Tari value and modulation scheme. The protocol options are set in the MercuryAPI Reader Configuration Parameters (/reader/gen2/*). The following table shows the supported combinations:ISO-18000-6C Protocol OptionsBackscatter Link Frequency (kHz)Encoding Tari (usec)Modulation Scheme Notes250 Miller (M=8) 12.5 PR-ASK250 Miller (M=4) 12.5 PR-ASK250 Miller (M=2) 12.5 PR-ASK250 FM0 12.5 PR-ASK250 Miller (M=8) 25 PR-ASK250 Miller (M=4) 25 PR-ASK Default250 Miller (M=2) 25 PR-ASK250 FM0 25 PR-ASK250 Miller (M=8) 25 PR-ASK640 FM0 6.25 PR-ASK Not supported in PRC Region
Protocol SupportA DIVISION OF TRIMBLE46 Functionality of the M6e-MicroNoteIt is important that the /reader/baudRate is greater than /reader/gen2/BLF, in equivalent frequency units. If its not then the reader could be reading data faster than the transport can handle and send, and the readerʼs buffer might fill up.Protocol Specific FunctionalitySee the MercuryAPI Programmers Guide and language specific reference guides for details on supported Gen2 command functionality.I-PXProtocol Configuration OptionsThe M6e-Micro supports multiple I-PX profiles including the ability to specify the Return Link Frequency, encoding and modulation scheme. The two profiles are treated as distinct protocols, the individual parameters are not configurable as with the other protocols. The following table shows the supported combinations:NoteThe two link rates are effectively two different protocols and treated as such. I-PX tags are fixed to one of the two frequencies and cannot communicate on the other, unlike ISO 18000-6B/C tags which can operate under multiple profiles. ISO 18000-6BProtocol Configuration OptionsThe M6e-Micro supports multiple ISO-18000-6B profiles including the ability to specify the Return Link Frequency, encoding, Forward Link Rate and modulation scheme. The ISO-18000-6B Protocol OptionsReturn Link Freq (kHz)Modulation Scheme Notes64 PWM Protocol ID = TagProtocol.IPX64256 PWM Protocol ID = TagProtocol.IPX256
Protocol SupportA DIVISION OF TRIMBLEFunctionality of the M6e-Micro 47protocol options are set in the MercuryAPI Reader Configuration Parameters (/reader/iso18000-6b/*). The following table shows the supported combinations:DelimiterISO18000-6B tags support two delimiter settings on the transmitter. Not all tags support both delimiters, some tags require the delimiter be set to 1, the default is 4. The delimiter setting is set using the MercuryAPI Reader Configuration Parameter:/reader/iso180006b/delimiter In addition to setting the delimiter to 1, a TagFilter of the class ISO180006b.Select must be used in order to read certain ISO18000-6b tags, specifically one of the following options must be used:–  GROUP_SELECT_EQ–  GROUP_SELECT_NE–  GROUP_SELECT_GT–  GROUP_SELECT_LT–  GROUP_UNSELECT_EQ–  GROUP_UNSELECT_NE–  GROUP_UNSELECT_GT–  GROUP_UNSELECT_LTISO-18000-6B Protocol OptionsReturn Link Freq (kHz)Return EncodingForward Link Freq (kHz)Forward EncodingModulation Depth40 FM0 10 Manchester 11%40 FM0 10 Manchester 99%160 FM0 40 Manchester 11%160 FM0 40 Manchester 99% (default)
Antenna PortsA DIVISION OF TRIMBLE48 Functionality of the M6e-MicroAntenna PortsThe M6e-Micro has two monostatic antenna ports. Each port is capable of both transmitting and receiving. The modules also support Using a Multiplexer, allowing up to 8 total logical antenna ports, controlled using two GPIO lines and the internal physical port Antenna1/Antenna2 (A1/A2) switching. NoteThe M6e-Micro does not support bistatic operation.Using a MultiplexerMultiplexer switching is controlled through the use of the internal module physical port A1/A2 switch along with the use of one or more of the General Purpose Input/Output (GPIO) lines. In order to enable automatic multiplexer port switching the module must be configured to use Use GPIO as Antenna Switch in /reader/antenna/portSwitchGpos. Once the GPIO line(s) usage has been enabled the following control line states are applied when the different Logical Antenna settings are used. The tables below show the mapping that results using GPIO 1 and 2 for multiplexer control (as is used by the ThingMagic 1 to 4 multiplexer) allowing for 8 logical antenna ports. NoteThe Logical Antenna values are static labels indicating the available control line states. The specific physical antenna port they map to depends on the control line to antenna port map of the multiplexer in use. The translation from Logical Antenna label to physical port must be maintained by the control software.
Antenna PortsA DIVISION OF TRIMBLEFunctionality of the M6e-Micro 49GPIO 1 & 2 Used for Antenna SwitchingIf only one GPIO Output line is used for antenna control, the combinations of the available output control line states (the GPIO line in use and the module port) result in a subset of logical antenna settings which can be used. ONLY GPIO 1 Used for Antenna SwitchingNoteThe “missing” logical antenna settings are still usable when only one GPIO line is used for antenna control and simply results in redundant logical antenna settings. For example, using only GPIO 1, logical setting 1 and 3 both result in GPIO1=Low and M6e-Micro port A1 active. Logical Antenna SettingGPIO Output 1 StateGPIO Output 2 StateActive M6e-Micro Physical Port1Low Low A12Low Low A23Low High A14Low High A25High Low A16High Low A27High High A18High High A2Logical Antenna SettingGPIO Output 1 StateActive M6e-Micro Physical Port1Low A12Low A25High A16High A2
Antenna PortsA DIVISION OF TRIMBLE50 Functionality of the M6e-MicroONLY GPIO 2 Used for Antenna SwitchingPort Power and Settling TimeThe M6e-Micro allows the power and settling time for each logical antenna to be set using the reader configuration parameters /reader/radio/portReadPowerList and /reader/antenna/settlingTimeList, respectively. The order the antennas settings are defined does not affect search order.NoteSettling time is the time between the control lines switching to the next antenna setting and RF turning on for operations on that port. This allows time for external multiplexerʼs to fully switch to the new port before a signal is sent, if necessary. Default value is 0.Logical Antenna SettingGPIO Output 2 StateActive M6e-Micro Physical Port1Low A12Low A23High A14High A2
Tag HandlingA DIVISION OF TRIMBLEFunctionality of the M6e-Micro 51Tag HandlingWhen the M6e-Micro performs inventory operations (MercuryAPI Read commands) data is stored in a Tag Buffer until retrieved by the client application, or streamed directly to the client if operating in Tag Streaming/Continuous Reading mode. Tag BufferThe M6e-Micro uses a dynamic buffer that depends on EPC length and quantity of data read. As a rule of thumb it can store a maximum of 1024 96-bit EPC tags in the TagBuffer at a time. Since the M6e-Micro supports streaming of read results the buffer limit is, typically, not an issue. Each tag entry consists of a variable number of bytes and consists of the following fields:The Tag buffer acts as a First In First Out (FIFO) — the first Tag found by the reader is the first one to be read out. Tag Streaming/Continuous ReadingWhen reading tags during asynchronous inventory operations (MercuryAPI Reader.StartReading()) using an /reader/read/asyncOffTime=0 the M6e-Micro “streams” the tag results back to the host processor. This means that tags are pushed out of the buffer as soon as they are processed by the M6e-Micro and put into the buffer. The buffer is put into a circular mode that keeps the buffer from filling. This allows for the M6e-Micro to perform continuous search operations without the need to periodically stop reading and fetch the contents of the buffer. Aside from not seeing “down time” when performing a read operation this behavior is essentially invisible to the user as all tag handling is done by the MercuryAPI. Tag Buffer EntryTotal Entry Size Field Size Description68 bytes (Max EPC Length = 496bits)EPC Length2 bytes Indicates the actual EPC length of the tag read.PC Word 2 bytes Contains the Protocol Control bits for the tag.EPC 62 bytes Contains the tagʼs EPC value.Tag CRC 2 bytes The tagʼs CRC.Tag Read Meta Data
Tag HandlingA DIVISION OF TRIMBLE52 Functionality of the M6e-MicroNoteIt is recommended the USB Interface be used when operating the M6e-Micro in continuous reading mode. When the TTL Level UART Interface is used it is not possible for the module to detect a broken communications interface connection and stop streaming the tag results.
Tag Read Meta DataA DIVISION OF TRIMBLEFunctionality of the M6e-Micro 53Tag Read Meta DataIn addition to the tag EPC ID resulting from M6e-Micro inventory operation each TagReadData (see MercuryAPI for code details) contains meta data about how, where and when the tag was read. The specific meta data available for each tag read is as follows:Tag Read Meta DataMeta Data Field DescriptionAntenna ID The antenna on with the tag was read. If the same tag is read on more than one antenna there will be a tag buffer entry for each antenna on which the tag was read. When Using a Multi-plexer, if appropriately configured, the Antenna ID entry will contain the logical antenna port of the tag read.Read Count The number of times the tag was read on [Antenna ID]. Timestamp The time the tag was read, relative to the time the command to read was issued, in milliseconds. If the Tag Read Meta Data is not retrieved from the Tag Buffer between read commands there will be no way to distinguish order of tags read with dif-ferent read command invocations. Tag Data When reading an embedded TagOp is specified for a Read-Plan the TagReadData will contain the first 32 words of data returned for each tag. Note:  Tags with the same TagID but different Tag Data can be considered unique and each get a Tag Buffer entry if set in the reader configuration parameter /reader/tagReadData/uniqueByData. By default it is not.Frequency The frequency on which the tag was readTag Phase Average phase of tag response in degrees (0°-180°)LQI/RSSI The receive signal strength of the tag response in dBm.GPIO Status The signal status (High or Low) of all GPIO pins when tag was read.
Power ManagementA DIVISION OF TRIMBLE54 Functionality of the M6e-MicroPower ManagementThe M6e-Micro is designed for power efficiency and offers several different power management modes. The following power management modes affect the power consumption during different periods of M6e-Micro usage and impact performance in different ways. The available power management modes are:Power Modes - set in /reader/powerMode - Controls the power savings when the M6e-Micro is idle. Transmit Modes - set in /reader/radio/enablePowerSave - controls power savings while transmitting.Power ModesThe Power Mode setting (set in /reader/powerMode) allows the user to trade off increased RF operation startup time for additional power savings. The details of the amount of power consumed in each mode is shown in the table under Power Consumption. The behavior of each mode and impact on RF command latency is as follows:PowerMode.FULL – In this mode, the unit operates at full power to attain the best performance possible. This mode is only intended for use in cases where power consumption is not an issue. This is the default Power Mode at startup.PowerMode.MINSAVE – This mode may add up to 50 ms of delay from idle to RF on when initiating an RF operation. It performs more aggressive power savings, such as automatically shutting down the analog section between commands, and then restarting it whenever a tag command is issued. PowerMode.SLEEP – This mode essentially shuts down the digital and analog boards, except to power the bare minimum logic required to wake the processor.This mode may add up to 100 ms of delay from idle to RF on when initiating an RF operation. PowerMode.SLEEP is not supported when using the USB interface. Using the setting PowerMode.MEDSAVE is the same as SLEEP.NoteSee additional latency specifications under Event Response Times.Transmit ModesThe Transmit Mode setting (set in /reader/radio/enablePowerSave) allows the user to trade off RF spectral compliance with the Gen2 DRM Mask for increased power
Power ManagementA DIVISION OF TRIMBLEFunctionality of the M6e-Micro 55savings while transmitting. The details of the amount of power consumed in each mode is shown in the table under Power Consumption. The behavior of each mode is as follows:DRM Compliant ModeThis mode maximizes performance in dense reader environments, minimizing interference when used with other M6e-Micro or similar DRM-compliant readers, and is fully compliant with the Gen2 DRM spectral mask.Power Save Mode (non-DRM Compliant)This mode reduces the power consumption during RF operations but is not 100% compliant with the DRM spectral mask. This can result increased interference with other readers and reduce overall systems performance.
Performance CharacteristicsA DIVISION OF TRIMBLE56 Functionality of the M6e-MicroPerformance CharacteristicsEvent Response TimesThe following table provides some metrics on how long common M6e-Micro operations take. An event response time is defined as the maximum time from the end of a command (end of the last bit in the serial stream) or event (e.g. power up) to the response event the command or event causes. Event Response TimesStart Command/Event End Event Time (msecs) NotesPower Up Application Active (with CRC check)1500  This longer power up period should only occur for the first boot with new firm-ware.Power Up Application Active 120 Once the firmware CRC has been veri-fied subsequent power ups do not require the CRC check be performed, saving time.Tag Read RF On 20 When in Power Mode = FULLTag Read RF On 50 When in Power Mode = MINSAVETag Read RF On 120 When in Power Mode = SLEEPChange to MINSAVE PowerMode.MINSAVE 5 From Power Mode = FULLChange to SLEEP PowerMode.SLEEP 5 From Power Mode = FULL
Save and Restore ConfigurationA DIVISION OF TRIMBLEFunctionality of the M6e-Micro 57Save and Restore ConfigurationThe M6e-Micro supports saving module and protocol configuration parameters to the module flash to provide configuration persistence across boots. Currently the region, baud-rate, and default protocol can be saved across reboots. Future firmware upgrades will support saving other configuration values.See the MercuryAPI Programmers Guide and sample applications for details on saving and restoring reader configuration.
Save and Restore ConfigurationA DIVISION OF TRIMBLE58 Functionality of the M6e-Micro
Common Error MessagesAppendix A: Error Messages 59Appendix A: Error MessagesCommon Error MessagesThe following table lists the common faults discussed in this section.FAULT_MSG_WRONG_NUMBER_OF_DATA – (100h)CauseIf the data length in any of the Host-to-M5e/M5e-Compact messages is less than or more than the number of arguments in the message, the reader returns this message.SolutionMake sure the number of arguments matches the data length.FAULT_INVALID_OPCODE – (101h)CauseThe opCode received is invalid or not supported in the currently running program (bootloader or main application) or is not supported in the current version of code.Fault Message CodeFAULT_MSG_WRONG_NUMBER_OF_DATA – (100h) 100hFAULT_INVALID_OPCODE – (101h) 101hFAULT_UNIMPLEMENTED_OPCODE – 102h 102hFAULT_MSG_POWER_TOO_HIGH – 103h 103hFAULT_MSG_INVALID_FREQ_RECEIVED (104h) 104hFAULT_MSG_INVALID_PARAMETER_VALUE - (105h) 105hFAULT_MSG_POWER_TOO_LOW - (106h) 106hFAULT_UNIMPLEMENTED_FEATURE - (109h) 109hFAULT_INVALID_BAUD_RATE - (10Ah) 10Ah
Common Error Messages60 Appendix A: Error MessagesSolutionCheck the following:Make sure the command is supported in the currently running program.Check the documentation for the opCode the host sent and make sure it is correct and supported.Check the previous module responses for an assert (0x7F0X) which will reset the module into the bootloader.FAULT_UNIMPLEMENTED_OPCODE – 102hCauseSome of the reserved commands might return this error code. This does not mean that they always will do this since ThingMagic reserves the right to modify those commands at anytime. SolutionCheck the documentation for the opCode the host sent to the reader and make sure it is supported.FAULT_MSG_POWER_TOO_HIGH – 103hCauseA message was sent to set the read or write power to a level that is higher than the current HW supports.SolutionCheck the HW specifications for the supported powers and insure that the level is not exceeded. The M5e 1 Watt units support power from 5 dBm to 30 dBm.The M5e-Compact units support power from 10 dBm to 23 dBm.
Common Error MessagesAppendix A: Error Messages 61FAULT_MSG_INVALID_FREQ_RECEIVED (104h)CauseA message was received by the reader to set the frequency outside the supported rangeSolutionMake sure the host does not set the frequency outside this range or any other locally supported ranges.FAULT_MSG_INVALID_PARAMETER_VALUE - (105h)CauseThe reader received a valid command with an unsupported or invalid value within this command. For example, currently the module supports four antennas. If the module receives a message with an antenna value other than 1 to 4, it returns this error.SolutionMake sure the host sets all the values in a command according to the values published in this document.FAULT_MSG_POWER_TOO_LOW - (106h)CauseA message was received to set the read or write power to a level that is lower than the current HW supports.SolutionCheck the HW specifications for the supported powers and insure that level is not exceeded. The M6e-Micro supports powers between 5 and 30 dBm. FAULT_UNIMPLEMENTED_FEATURE - (109h)CauseAttempting to invoke a command not supported on this firmware or hardware.
Common Error Messages62 Appendix A: Error MessagesSolutionCheck the command being invoked against the documentation.FAULT_INVALID_BAUD_RATE - (10Ah)CauseWhen the baud rate is set to a rate that is not specified in the Baud Rate table, this error message is returned. SolutionCheck the table of specific baud rates and select a baud rate.
Bootloader FaultsAppendix A: Error Messages 63Bootloader FaultsThe following table lists the common faults discussed in this section.FAULT_BL_INVALID_IMAGE_CRC – 200hCauseWhen the application firmware is loaded the reader checks the image stored in flash and returns this error if the calculated CRC is different than the one stored in flash.SolutionThe exact reason for the corruption could be that the image loaded in flash was corrupted during the transfer or corrupted for some other reason. To fix this problem, reload the application code in flash.FAULT_BL_INVALID_APP_END_ADDR – 201hCauseWhen the application firmware is loaded the reader checks the image stored in flash and returns this error if the last word stored in flash does not have the correct address value.SolutionThe exact reason for the corruption could be that the image loaded in flash got corrupted during the transfer or, corrupted for some other reason. To fix this problem, reload the application code in flash.Fault Message CodeFAULT_BL_INVALID_IMAGE_CRC 200hFAULT_BL_INVALID_APP_END_ADDR 201h
Flash Faults64 Appendix A: Error MessagesFlash FaultsThe following table lists the common faults discussed in this section.FAULT_FLASH_BAD_ERASE_PASSWORD – 300hCauseA command was received to erase some part of the flash but the password supplied with the command was incorrect.SolutionWhen this occurs make note of the operations you were executing, save FULL error response and send a testcase reproducing the behavior to support@thingmagic.com.FAULT_FLASH_BAD_WRITE_PASSWORD – 301hCauseA command was received to write some part of the flash but the password supplied with the command was not correct.SolutionWhen this occurs make note of the operations you were executing, save FULL error response and send a testcase reproducing the behavior to support@thingmagic.com.Fault Message CodeFAULT_FLASH_BAD_ERASE_PASSWORD – 300h 300hFAULT_FLASH_BAD_WRITE_PASSWORD – 301h 301hFAULT_FLASH_UNDEFINED_ERROR – 302h 302hFAULT_FLASH_ILLEGAL_SECTOR – 303h 303hFAULT_FLASH_WRITE_TO_NON_ERASED_AREA – 304h 304hFAULT_FLASH_WRITE_TO_ILLEGAL_SECTOR – 305h 305hFAULT_FLASH_VERIFY_FAILED – 306h 306h
Flash FaultsAppendix A: Error Messages 65FAULT_FLASH_UNDEFINED_ERROR – 302hCauseThis is an internal error and it is caused by a software problem in module.SolutionWhen this occurs make note of the operations you were executing, save FULL error response and send a testcase reproducing the behavior to support@thingmagic.com.FAULT_FLASH_ILLEGAL_SECTOR – 303hCauseAn erase or write flash command was received with the sector value and password not matching.SolutionWhen this occurs make note of the operations you were executing, save FULL error response and send a testcase reproducing the behavior to support@thingmagic.com.FAULT_FLASH_WRITE_TO_NON_ERASED_AREA – 304hCauseThe module received a write flash command to an area of flash that was not previously erased.SolutionWhen this occurs make note of the operations you were executing, save FULL error response and send a testcase reproducing the behavior to support@thingmagic.com.FAULT_FLASH_WRITE_TO_ILLEGAL_SECTOR – 305hCauseThe module received a write flash command to write across a sector boundary that is prohibited.
Flash Faults66 Appendix A: Error MessagesSolutionWhen this occurs make note of the operations you were executing, save FULL error response and send a testcase reproducing the behavior to support@thingmagic.com.FAULT_FLASH_VERIFY_FAILED – 306hCauseThe module received a write flash command that was unsuccessful because data being written to flash contained an uneven number of bytes.SolutionWhen this occurs make note of the operations you were executing, save FULL error response and send a testcase reproducing the behavior to support@thingmagic.com.
Protocol FaultsAppendix A: Error Messages 67Protocol FaultsThe following table lists the common faults discussed in this section.Fault Message CodeFAULT_NO_TAGS_FOUND – (400h) 400hFAULT_NO_PROTOCOL_DEFINED – 401h 401hFAULT_INVALID_PROTOCOL_SPECIFIED – 402h 402hFAULT_WRITE_PASSED_LOCK_FAILED – 403h 403hFAULT_PROTOCOL_NO_DATA_READ – 404h 404hFAULT_AFE_NOT_ON – 405h 405hFAULT_PROTOCOL_WRITE_FAILED – 406h 406hFAULT_NOT_IMPLEMENTED_FOR_THIS_PROTOCOL – 407h 407hFAULT_PROTOCOL_INVALID_WRITE_DATA – 408h 408hFAULT_PROTOCOL_INVALID_ADDRESS – 409h 409hFAULT_GENERAL_TAG_ERROR – 40Ah 40AhFAULT_DATA_TOO_LARGE – 40Bh 40BhFAULT_PROTOCOL_INVALID_KILL_PASSWORD – 40Ch 40ChFAULT_PROTOCOL_KILL_FAILED - 40Eh 40EhFAULT_PROTOCOL_BIT_DECODING_FAILED - 40Fh 40FhFAULT_PROTOCOL_INVALID_EPC – 410h 410hFAULT_PROTOCOL_INVALID_NUM_DATA – 411h 411hFAULT_GEN2 PROTOCOL_OTHER_ERROR - 420h 420hFAULT_GEN2_PROTOCOL_MEMORY_OVERRUN_BAD_PC - 423h423hFAULT_GEN2 PROTOCOL_MEMORY_LOCKED - 424h 424hFAULT_GEN2 PROTOCOL_INSUFFICIENT_POWER - 42Bh 42BhFAULT_GEN2 PROTOCOL_NON_SPECIFIC_ERROR - 42Fh 42FhFAULT_GEN2 PROTOCOL_UNKNOWN_ERROR - 430h 430h
Protocol Faults68 Appendix A: Error MessagesFAULT_NO_TAGS_FOUND – (400h)CauseA command was received (such as like read, write, or lock) but the operation failed. There are many reasons that can cause this error to occur. Here is a list of possible reasons that could be causing this error: No tag in the RF fieldRead/write power too lowAntenna not connectedTag is weak or deadSolutionMake sure there is a good tag in the field and all parameters are set up correctly. The best way to check this is to try few tags of the same type to rule out a weak tag. If none passed, then it could be SW configuration such as protocol value, antenna, and so forth, or a placement configuration like a tag location.FAULT_NO_PROTOCOL_DEFINED – 401hCauseA command was received to perform a protocol command but no protocol was initially set. The reader powers up with no protocols set.SolutionA protocol must be set before the reader can begin RF operations.FAULT_INVALID_PROTOCOL_SPECIFIED – 402hCauseThe protocol value was set to a protocol that is not supported with the current version of SW.
Protocol FaultsAppendix A: Error Messages 69SolutionThis value is invalid or this version of SW does not support the protocol value. Check the documentation for the correct values for the protocols in use and that you are licensed for it.FAULT_WRITE_PASSED_LOCK_FAILED – 403hCauseDuring a Write Tag Data for ISO18000-6B or UCODE, if the lock fails, this error is returned. The write command passed but the lock did not. This could be a bad tag.SolutionTry to write a few other tags and make sure that they are placed in the RF field.FAULT_PROTOCOL_NO_DATA_READ – 404hCauseA command was sent but did not succeed.SolutionThe tag used has failed or does not have the correct CRC. Try to read a few other tags to check the HW/SW configuration.FAULT_AFE_NOT_ON – 405hCauseA command was received for an operation, like read or write, but the AFE was in the off state.SolutionMake sure the region and tag protocol have been set to supported values.
Protocol Faults70 Appendix A: Error MessagesFAULT_PROTOCOL_WRITE_FAILED – 406hCauseAn attempt to modify the contents of a tag failed. There are many reasons for failure.SolutionCheck that the tag is good and try another operation on a few more tags.FAULT_NOT_IMPLEMENTED_FOR_THIS_PROTOCOL – 407hCauseA command was received which is not supported by a protocol.SolutionCheck the documentation for the supported commands and protocols.FAULT_PROTOCOL_INVALID_WRITE_DATA – 408hCauseAn ID write was attempted with an unsupported/incorrect ID length.SolutionVerify the Tag ID length being written.FAULT_PROTOCOL_INVALID_ADDRESS – 409hCauseA command was received attempting to access an invalid address in the tag data address space. SolutionMake sure that the address specified is within the scope of the tag data address space and available for the specific operation. The protocol specifications contain information about the supported addresses.
Protocol FaultsAppendix A: Error Messages 71FAULT_GENERAL_TAG_ERROR – 40AhCauseThis error is used by the GEN2 module. This fault can occur if the read, write, lock, or kill command fails. This error can be internal or functional.SolutionMake a note of the operations you were performing and contact ThingMagic at http://support.thingmagic.comFAULT_DATA_TOO_LARGE – 40BhCauseA command was received to Read Tag Data with a data value larger than expected or it is not the correct size.SolutionCheck the size of the data value in the message sent to the reader.FAULT_PROTOCOL_INVALID_KILL_PASSWORD – 40ChCauseAn incorrect kill password was received as part of the Kill command. SolutionCheck the password.FAULT_PROTOCOL_KILL_FAILED - 40EhCauseAttempt to kill a tag failed for an unknown reasonSolutionCheck tag is in RF field and the kill password.
Protocol Faults72 Appendix A: Error MessagesFAULT_PROTOCOL_BIT_DECODING_FAILED - 40FhCauseAttempt to operate on a tag with an EPC length greater than the Maximum EPC length setting.SolutionCheck the EPC length being written.FAULT_PROTOCOL_INVALID_EPC – 410hCauseThis error is used by the GEN2 module indicating an invalid EPC value has been specified for an operation. This fault can occur if the read, write, lock, or kill command fails. SolutionCheck the EPC value that is being passed in the command resulting in this error.FAULT_PROTOCOL_INVALID_NUM_DATA – 411hCauseThis error is used by the GEN2 module indicating invalid data has been specified for an operation. This fault can occur if the read, write, lock, or kill command fails. SolutionCheck the data that is being passed in the command resulting in this error.FAULT_GEN2 PROTOCOL_OTHER_ERROR - 420hCauseThis is an error returned by Gen2 tags. Its a catch-all for error not covered by other codes.
Protocol FaultsAppendix A: Error Messages 73SolutionCheck the data that is being passed in the command resulting in this error. Try with a different tag.FAULT_GEN2_PROTOCOL_MEMORY_OVERRUN_BAD_PC - 423hCauseThis is an error returned by Gen2 tags. The specified memory location does not exist or the PC value is not supported by the Tag. SolutionCheck the data that is being written and where its being written to in the command resulting in this error.FAULT_GEN2 PROTOCOL_MEMORY_LOCKED - 424hCauseThis is an error returned by Gen2 tags.The specified memory location is locked and/or permalocked and is either not writable or not readable.SolutionCheck the data that is being written and where its being written to in the command resulting in this error. Check the access password being sent.FAULT_GEN2 PROTOCOL_INSUFFICIENT_POWER - 42BhCauseThis is an error returned by Gen2 tags. The tag has insufficient power to perform the memory-write operation.SolutionTry moving the tag closer to the antenna. Try with a different tag.
Protocol Faults74 Appendix A: Error MessagesFAULT_GEN2 PROTOCOL_NON_SPECIFIC_ERROR - 42FhCauseThis is an error returned by Gen2 tags. The tag does not support error specific codes. SolutionCheck the data that is being written and where its being written to in the command resulting in this error. Try with a different tag.FAULT_GEN2 PROTOCOL_UNKNOWN_ERROR - 430hCauseThis is an error returned by M6e-Micro when no more error information is available about why the operation failed.SolutionCheck the data that is being written and where its being written to in the command resulting in this error. Try with a different tag.
Analog Hardware Abstraction Layer FaultsAppendix A: Error Messages 75Analog Hardware Abstraction Layer FaultsFAULT_AHAL_INVALID_FREQ – 500hCauseA command was received to set a frequency outside the specified range.SolutionCheck the values you are trying to set and be sure that they fall within the range of the set region of operation.FAULT_AHAL_CHANNEL_OCCUPIED – 501hCauseWith LBT enabled an attempt was made to set the frequency to an occupied channel.SolutionTry a different channel. If supported by the region of operation turn LBT off.FAULT_AHAL_TRANSMITTER_ON – 502hCauseChecking antenna status while CW is on is not allowed.SolutionDo not perform antenna checking when CW is turned on.FAULT_ANTENNA_NOT_CONNECTED – 503hCauseAn attempt was made to transmit on an antenna which did not pass the antenna detection when antenna detection was turned on.
Analog Hardware Abstraction Layer Faults76 Appendix A: Error MessagesSolutionConnect a detectable antenna (antenna must have some DC resistance).FAULT_TEMPERATURE_EXCEED_LIMITS – 504hCauseThe module has exceeded the maximum or minimum operating temperature and will not allow an RF operation until it is back in range.SolutionTake steps to resolve thermal issues with module:Reduce duty cycleAdd heat sink Use Power Save Mode (non-DRM Compliant)FAULT_POOR_RETURN_LOSS – 505hCauseThe module has detected a poor return loss and has ended RF operation to avoid module damage.SolutionTake steps to resolve high return loss on receiver:Make sure antenna VSWR is within module specificationsMake sure antennas are correctly attached before transmittingCheck environment to ensure no occurrences of high signal reflection back at antennas.FAULT_AHAL_INVALID_ANTENA_CONFIG – 507hCauseAn attempt to set an antenna configuration that is not valid.
Analog Hardware Abstraction Layer FaultsAppendix A: Error Messages 77SolutionUse the correct antenna setting or change the reader configuration.
Tag ID Buffer Faults78 Appendix A: Error MessagesTag ID Buffer FaultsThe following table lists the common faults discussed in this section.FAULT_TAG_ID_BUFFER_NOT_ENOUGH_TAGS_AVAILABLE – 600hCauseA command was received to get a certain number of tag ids from the tag id buffer. The reader contains less tag ids stored in its tag id buffer than the number the host is sending.SolutionSend a testcase reproducing the behavior to support@thingmagic.com.FAULT_TAG_ID_BUFFER_FULL – 601hCauseThe tag id buffer is full.SolutionMake sure the baud rate is set to a higher frequency that the /reader/gen2/BLF frequency. Send a testcase reproducing the behavior to support@thingmagic.com.Fault Message CodeFAULT_TAG_ID_BUFFER_NOT_ENOUGH_TAGS_AVAILABLE – 600h 600hFAULT_TAG_ID_BUFFER_FULL – 601h 601hFAULT_TAG_ID_BUFFER_REPEATED_TAG_ID – 602h 602hFAULT_TAG_ID_BUFFER_NUM_TAG_TOO_LARGE – 603h 603h
Tag ID Buffer FaultsAppendix A: Error Messages 79FAULT_TAG_ID_BUFFER_REPEATED_TAG_ID – 602hCauseThe module has an internal error. One of the protocols is trying to add an existing TagID to the buffer.SolutionSend a testcase reproducing the behavior to support@thingmagic.com.FAULT_TAG_ID_BUFFER_NUM_TAG_TOO_LARGE – 603hCauseThe module received a request to retrieve more tags than is supported by the current version of the software.SolutionSend a testcase reproducing the behavior to support@thingmagic.com.
System Errors80 Appendix A: Error MessagesSystem ErrorsFAULT_SYSTEM_UNKNOWN_ERROR – 7F00hCauseThe error is internal.SolutionSend a testcase reproducing the behavior to support@thingmagic.com.FAULT_TM_ASSERT_FAILED – 7F01hCauseAn unexpected Internal Error has occurred.SolutionThe error will cause the module to switch back to Bootloader mode. When this occurs make note of the operations you were executing, save FULL error response and send a testcase reproducing the behavior to support@thingmagic.com.
Appendix B: Getting Started - Devkit  81 Appendix B: Getting Started - DevkitDevkit HardwareIncluded ComponentsWith the devkit, you will receive the following components:The M6e-Micro module and power/interface developers boardOne USB cableOne antenna One coax cableOne 9V power supplyInternational power adapter kit Sample tagsOne paper insert:–  QuickStart Guide - Details on which documents and software to download to get up and running quickly, along with details on how to register for and contact support.Setting up the DevKitWhen setting up the DevKit, use the following procedures:Connecting the AntennaPowering up and Connecting to a PC
Devkit Hardware82 Appendix B: Getting Started - DevkitConnecting the AntennaThingMagic supplies one antenna that can read tags from 20ʼ away with most of the provided tags. The antenna is monstatic. Use the following procedure to connect the antenna to the DevKit.1.    Connect one end of the coax cable to the antenna.2.    Connect the other end of the cable to the antenna port 1 connector on the DevKit.Powering up and Connecting to a PCAfter connecting the antenna you can power up the DevKit and establish a host connection.1.    Connect the USB cable (use only the black connector) from a PC to the developerʼs kit. There are two Devkit USB Interfaces options.2.    Plug the power supply into the DevKitʼs DC power input connector. 3.    The LED next to the DC input jack, labeled DS1, should light up. If it doesnʼt light up check jumper J17 to make sure the jumper is connecting pins 2 and 34.    Follow the steps based on the Devkit USB Interfaces used and make note of the COM port or /dev device file, as appropriate for your operating system the USB interface is assigned.5.    To start reading tags start the Demo Application (Universal Reader Assistant).WARNING!While the module is powered up, do not touch components. Doing so may be damaged the devkit and M6e-Micro module.
Devkit HardwareAppendix B: Getting Started - Devkit 83Devkit USB InterfacesUSB/RS232The USB interface (connector labeled USB/RS232) closest to the power plug is to the RS232 interface of the M6e-Micro through an FTDI USB to serial converter. The drivers for it are available athttp://www.ftdichip.com/Drivers/VCP.htmPlease follow the instructions in the installation guide appropriate for your operating system.Native USBTo use the M6e-Micro native USB interface (connector labeled USB), if on Windows, a few installation steps are required for Windows to recognize the M6e-Micro and properly configure the communications protocol. In order to use the USB interface with Windows you must have the M6e-Micro.inf file (available for download from rfid.thingmagic.com/devkit). The installation steps are:1.    Plug in the USB cable to the M6e-Micro (devkit) and PC.2.    Windows should report is has “Found New Hardware - Mercury6eUltra” and open the Hardware Installation Wizard.3.    Select the Install from a list or specific location (Advanced) option, click Next.4.    Select Donʼt search..., click Next, then Next again. 5.    Click Have Disk and navigate to where the m6ultra.inf file is stored and select it, click Open, then OK.6.    “Mercury6eUltra” should now be shown under the Model list. Select it and click Next then Finished.NoteThe M6e-Micro driver file has not been Microsoft certified so compatibility warnings will be displayed. These can be ignored and clicked through.7.    A COM port should now be assigned to the M6e-Micro. If you arenʼt sure what COM port is assigned you can find it using the Windows Device Manager:a.    Open the Device Manager (located in Control Panel | System).b.    Select the Hardware tab and click Device Manager.
Devkit Hardware84 Appendix B: Getting Started - Devkitc.    Select View | Devices by Type | Ports (COM & LPT) The device appears as Mercury6eUltra (COM#).Devkit JumpersJ8Jumpers to connect M6e-Micro I/O lines to devkit. J9Header for alternate power supply. Make sure DC plug (J1) is not connected if using J9.J10, J11, J13, J15Jump pins OUT to GPIO# to connect M6e-Micro GPIO lines to output LEDs. Jumpe pins IN to GPIO# to connect M6e-Micro GPIO to corresponding input switches SW[3-6]GPIO#. Make sure GPIO lines are correspondingly configured as input or outputs (see Configuring GPIO Settings).J14Can be used to connect GPIO lines to external circuits. If used jumpers should be removed from J10, J11, J13, J15.J16Jump pins 1 and 2 or 2 and 3 to reset devkit power supply. Same as using switch SW1 except allows for control by external circuit.J17Jump pins 1 and 2 to use the 5V INPUT and GND inputs to provide power. Jump pins 2 and 3 to use the DevKitʼs DC power jack and power brick power.J19Jump SHUTDOWN to GND to enable module. While grounded SHUTDOWN pushbutton (SW2) will break circuit and shutdown the M6e-Micro (see M6e-Micro Digital Connector Signal Definition). AUTO_BOOT controls Reset Line.
Devkit HardwareAppendix B: Getting Started - Devkit 85Devkit SchematicsAvailable upon request from support@thingmagic.com.
Demo Application86 Appendix B: Getting Started - DevkitDemo ApplicationA demo application which supports multi-protocol reading and writing is provided in the MercuryAPI SDK package. The executable for this example is included in the MercuryAPI SDK package under /cs/samples/exe/Universal-Reader-Assistant.exe and is also available for direct download from rfid.thingmagic.com/devkit. See the Readme.txt in /cs/samples/Universal-Reader-Assistant/Universal-Reader-Assistant for usage details.See the MercuryAPI Programming Guide for details on using the MercuryAPI.
Notice on Restricted Use of the DevKitAppendix B: Getting Started - Devkit 87Notice on Restricted Use of the DevKitThe Mercury6e Developers Kit (DevKit) is intended for use solely by professional engineers for the purpose of evaluating the feasibility of applications.The userʼs evaluation must be limited to use within a laboratory setting. This DevKit has not been certified for use by the FCC in accordance with Part 15 of the FCC regulations, ETSI, KCC or any other regulatory bodies and may not be sold or given for public use.Distribution and sale of the DevKit is intended solely for use in future development of devices which may be subject to regional regulatory authorities governing radio emission. This DevKit may not be resold by users for any purpose. Accordingly, operation of the DevKit in the development of future devices is deemed within the discretion of the user and the user shall have all responsibility for any compliance with any regional regulatory authority governing radio emission of such development or use, including without limitation reducing electrical interference to legally acceptable levels. All products developed by user must be approved by the appropriate regional regulatory authority governing radio emission prior to marketing or sale of such products and user bears all responsibility for obtaining the prior appropriate regulatory approval, or approval as needed from any other authority governing radio emission.
Notice on Restricted Use of the DevKit88 Appendix B: Getting Started - Devkit
Appendix C: Environmental Considerations  89 Appendix C: Environmental ConsiderationsThis Appendix details environmental factors that should be considered relating to reader performance and survivability.ElectroStatic Discharge (ESD) ConsiderationsWARNING!The M6e-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 M6 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.ESD Damage OverviewIn M6e-Micro-based reader installations where readers have failed without known cause, based on anecdotal information ESD has been found to be the most common cause. Failures due to ESD tend to be in the M6e-Micro power amplifier section (PA). PA failures typically manifest themselves at the software interface in the following ways:RF operations (read, write, etc.) respond with Assert - 7F01 - indicating a a fatal error. This is typically due the the module not being able to reach the target power level due to PA damage.RF operations (read, write, etc.) respond with No Antenna Connected/Detected even when a known good antenna is attached. Unexpected Invalid Command errors, indicating command not supported, when that command had worked just fine shortly before. The reason a command becomes suddenly not supported is that the reader, in the course of its self protection routines,
ElectroStatic Discharge (ESD) Considerations90 Appendix C: Environmental Considerationshas returned to the bootloader to prevent any further damage. This jump to boot loader caused by power amp damage occurs at the start of any read tag commands. Ultimately determining that ESD is the root cause of failures is difficult because it relies on negative result experiments, i.e. it is the lack of failure after a configuration change, rather than a positive flag wave that says “Iʼm ESD”. Such flag waves are sometimes, but only sometimes, available at the unpackaged transistor level under high power microscopy. The remoteness of microscopic examination from the installed field failures is indicative of the high cost of using such analysis methods for chasing down ESD issues. Therefore most ESD issue resolutions will be using the negative result experiments to determine success.ESD discharges come with a range of values, and like many things in life there is the “matter of degree”. For many installations, the M6e-Micro has been successfully deployed and operates happily. For these, there is no failure issue, ESD or otherwise. For a different installation that with bare M6e-Micro, has a failure problem from ESD, there will be some distribution of ESD intensities occurring. Without knowledge of a limit in the statistics of those intensities, there may always be the bigger zap waiting in the wings. For the bare M6e-Micro equipped with the mitigation methods described below, there will always be the rouge ESD discharge that exceeds any given mitigation, and results in failure. Fortunately, many installations will have some upper bound on the value of ESD events given the geometry of that installation.Several sequential steps are recommended for a) determining the ESD is the likely cause of a given group of failures, and b) enhancing the M6e-Microʼs environment to eliminate ESD failures. The steps vary depending on the required M6e-Micro output power in any given application.Identifying ESD as the Cause of Damaged ReadersThe following are some suggested methods to determine if ESD is a cause of reader failures, i.e. ESD diagnostics. Please remember- some of these suggestions have the negative result experiment problem.Return failed units for analysis. Analysis should be able to say if it is the power amplifier that has in fact failed, but wonʼt be able to definitively identify that the cause is ESD. However, ESD is one of the more common causes of PA failure.Measure ambient static levels with static meter. AlphaLabs SVM2 is such a meter, but there are others. You may be surprised at the static potentials floating detected. However, high static doesnʼt necessarily mean discharges, but should be considered cause for further investigation. High levels that keep changing are highly indicative of discharges.Touch some things around the antenna, and operating area. If you feel static discharges, that qualitatively says quite a bit about what is in front of the antenna.
ElectroStatic Discharge (ESD) ConsiderationsAppendix C: Environmental Considerations 91What actually gets to the M6e-Micro is also strongly influenced by the antenna installation, cabling, and grounding discussed above.Use the mean operating time statistic before and after one or more of the changes listed below to quantitatively determine if the change has resulted in an improvement. Be sure to restart your statistics after the change.Common Installation Best PracticesThe 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:Insure that M6e-Micro, M6e-Micro enclosing housing (e.g. Vega reader housing), and antenna ground connection are all grounded to a common low impedance ground. 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 (per item 1) 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 current are minimized. Routing antenna cables against grounded metallic chassis parts helps minimize ground loop currents.Keep the antenna radome 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, numbers of units operating. You need this information to know that your mean operating life time is. Only with this number will you be able to know if you have a failure problem in the first place, ESD or otherwise. And then after any given change, whether things have improvement or not. Or if the failures are confined to one instantiation, or distributed across your population.
ElectroStatic Discharge (ESD) Considerations92 Appendix C: Environmental ConsiderationsRaising the ESD ThresholdFor applications where full M6e-Micro power is needed for maximum tag read range and ESD is suspected the following components are recommended additions to the installation to raise the level of ESD the reader can tolerate: Select or change to 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. (This also makes the antenna compatible with the M6e-Micro antenna detect methods.)Install a Minicircuits SHP600+ high pass filter in the cable run at the M6e-Micro (or Vega or other finished reader) end. This additional component will reduce transmit power by 0.4 dB which may affect read range in some critical applications. However the filter will significantly attenuate discharges and improve the M6e-Micro ESD survival level. NoteThe SHP600+ is not rated for the full +31.5 dBm output of the M6e-Micro reader at +85 degree C. Operation at reduced temperature has been anecdotally observed to be OK, but has not been fully qualified by ThingMagic.Install a Diode Clamp* circuit immediately outboard from the SHP600 filter. This will reduce transmit power by an additional 0.4 dB, but in combination with the SHP600 will further improve the M6e-Micro ESD survival level. * Not yet productized. Needs DC power, contact support@thingmagic.com for details.Further ESD Protection for Reduced RF Power ApplicationsIn addition to the protective measures recommended above, for applications where reduced M6e-Micro RF power is acceptable and ESD is suspected the following protective measures can also be applied:Install a one watt attenuator with a decibel value of +30 dBm minus the dBm value needed for tag power up. Then run the reader at +30 dBm instead of reduced transmit power. This will attenuate inbound ESD pulses by the installed decibel value, while keeping the tag operation generally unchanged. Attenuators of 6 dB have been shown to not adversely effect read sensitivity. Position the attenuator as close to the M6e-Micro as feasible.As described above add the SHP600 filter immediately adjacent to the attenuator, on the antenna side.
ElectroStatic Discharge (ESD) ConsiderationsAppendix C: Environmental Considerations 93Add Diode Clamp, if required, adjacent to the SHP600, on the antenna side.
Variables Affecting Performance94 Appendix C: Environmental ConsiderationsVariables Affecting PerformanceReader performance may be affected by the following variables, depending on the site where your Reader is being deployed:EnvironmentalTag Considerations Multiple Readers Environmental Reader performance may be affected by the following environmental conditions:Metal surfaces such as desks, filing cabinets, bookshelves, and wastebaskets may enhance or degrade Reader performance.Antennas should be mounted far away from metal surfaces that may adversely affect the system performance.Devices that operate at 900 MHz, such as cordless phones and wireless LANs, can degrade Reader performance. The Reader may also adversely affect the performance of these 900 MHz devices.Moving machinery can interfere the Reader performance. Test Reader performance with moving machinery turned off.Fluorescent lighting fixtures are a source of strong electromagnetic interference and if possible should be replaced. If fluorescent lights cannot be replaced, then keep the Reader cables and antennas away from them.Coaxial cables leading from the Reader to antennas can be a strong source of electromagnetic radiation. These cables should be laid flat and not coiled up.Tag ConsiderationsThere are several variables associated with tags that can affect Reader performance:Application Surface: Some materials, including metal and moisture, interfere with tag performance. Tags applied to items made from or containing these materials may not perform as expected.
Variables Affecting PerformanceAppendix C: Environmental Considerations 95Tag Orientation: Reader performance is affected by the orientation of the tag in the antenna field. The ThingMagic antenna is circularly polarized, so it reads face-to but not edge-to.Tag Model: Many tag models are available. Each model has its own performance characteristics.Multiple ReadersThe Reader adversely affect performance of 900 MHz devices. These devices also may degrade performance of the Reader.Antennas on other Readers operating in close proximity may interfere with one another, thus degrading performance of the Readers.Interference from other antennas may be eliminated or reduced by using either one or both of the following strategies:w Affected antennas may be synchronized by a separate user application using a time-multiplexing strategy.w Antenna power can be reduced by reconfiguring the RF Transmit Power setting for the Reader.NotePerformance tests conducted under typical operating conditions at your site are recommended to help you optimize system performance.

Navigation menu