Page 2
Government, who has been provided access to such data must promptly notify ThingMagic, A Division of Trimble. ThingMagic, Mercury, Reads Any Tag, and the ThingMagic logo are trademarks or registered trademarks of ThingMagic, A Division of Trimble. Other product names mentioned herein may be trademarks or registered trademarks of ThingMagic, A Division of Trimble or other companies.
Page 3
Revision Table Date Version Description 4/2010 01 RevA First Draft for Beta release 8/2010 01 Rev1 • Updated GPIO content • Added FCC regulation info section 10/2010 02 Rev 2 • updated FCC info...
Communication Regulation Information Communication Regulation Information FCC 47 CFR, Part 15 Industrie Canada RSS-210 Federal Communication Commission Interference Statement This 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.
Page 10
“This device complies with Part 15..” “Any changes or modifications to the transmitting module not expressly approved by ThingMagic Inc. could void the user’s authority to operate this equipment” “ End Product Labeling The final end product must be labeled in a visible area with the following: “Contains Transmitter Module FCC ID: QV5MERCURY6E”...
End Product Labeling The final end product must be labeled in a visible area with the following: “Contains ThingMagic Mercury6e transmitting module FCC ID: QV5MERCURY6E (IC: 5407A-MERCURY6E)” Authorized Antennas This 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.
- This section provides detailed specifications of the M6e Hardware Overview hardware. This section should be read in its entirety before designing hardware or attempting to operate the M6e module in hardware other than the ThingMagic DevKit. - This section describes provides a detailed description of the M6e Firmware Overview firmware components including the bootloader and application firmware.
Hardware Overview The following section provides detailed specifications of the M6e hardware including: Hardware Interfaces Power Requirements Environmental Specifications Assembly Information Hardware Overview...
Hardware Interfaces Hardware Interfaces Antenna Connections The M6e supports four monostatic bidirectional RF antennas through four MMCX connectors: labeled J1 through J4 on the module. See for more Cables and Connectors information on antenna connector parts. The maximum RF power that can be delivered to a 50 ohm load from each port is 1 Watt, or +30 dBm.
Hardware Interfaces amp per pin rating. which mates with Molex housing p/n 51021-1500 with crimps p/n 63811-0300. See for more information on typical cable parts. Cables and Connectors M6e Digital Connector Signal Definition Molex Signal 53261-1571 Signal Direction Notes Pin Number (In/Out of M6e) P/S Return Must connect both GND pins to ground...
Page 18
Hardware Interfaces TTL Level TX V-Low: Max 0.4 VDC V-High: 2.1 to 3.3 VDC 8 mA max TTL Level RX V-Low: -0.3 to 0.6 VDC V-High: 2.2 to 5 VDC (Tied to ground through a 10kOhm pull-up resistor. It is not harmful, but not recommended to drive the input above 3.3 V.) A level converter could be necessary to interface to other devices that use standard 12V RS232.
Hardware Interfaces General Purpose Input/Output (GPIO) The four GPIO connections, provided through the M6e 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 to PA3 pins of the AT91SAM7X processor.
Hardware Interfaces defeated if the module is held in the boot loader by being held low. Lines Reset Line 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.
Power Requirements Power Requirements RF Power Output The M6e supports separate read and write power level which are command adjustable via the MercuryAPI. Power levels must be between: – Minimum RF Power = +5 dBm – Maximum RF Power = +30 dBm (+0.0/- 0.5 dB accuracy above +15 dBm) Note Maximum power may have to be reduced to meet regulatory limits, which specify the combined effect of the module, antenna, cable and enclosure...
Power Requirements Power Consumption The following table defines the power/transmit mode settings and power consumption specifications for the M6e. Additional details about Power/Transmit Modes can be found in the section. Power Management M6e Power Consumption RF Transmit Voltage Current Power Operation Max Power Power/Transmit Mode...
Environmental Specifications Environmental Specifications Operating Temperature Clamshell temperature must not exceed 70 degrees C. Heat sinking will be required for high duty cycle applications. Electro-Static Discharge (ESD) Specification Specifications to be determined. Hardware Overview...
Assembly Information Assembly Information Cables and Connectors The following are the cables and connectors used in the M6e Developer’s Kit interface board: Digital Interface The cable assembly used consists of the following parts: 2 Connector Shells [Molex 51021-1500] with 15 Crimp Contacts each [Molex 50079- 8100] 1 Wire (#28 AWG 7x36 - Black, Teflon) for Pin 1 connection [Alpha 284/7-2] 14 Wires (#28 AWG 7x36 - White, Teflon) for other connections [Alpha 284/7-1]...
Authorized Antennas Authorized Antennas This 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.
When a module is powered up or reset, the boot loader code is automatically loaded and executed. Note Unlike previous ThingMagic modules (M4e and M5e) the M6e bootloader should effectively be invisible to the user. The M6e 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.
For more information on the MercuryAPI see the MercuryAPI Programmers Guide and the MercuryAPI SDK, available on the ThingMagic website. Upgrading the M6e New features developed for the M6e 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.
Custom On-Reader Applications Custom On-Reader Applications The M6e does not support installing customer applications on the reader. Continuous reader, tag streaming, scripting and other methods of configuring the module to operate in an autonomous or semi-autonomous reading modes maybe supported through the MercuryAPI but custom application cannot be installed on the module.
Communication Protocol The following section provides an overview of the low level serial communications protocol used by the M6e. Communication Protocol...
Serial Communication Protocol Serial Communication Protocol The serial communication between a computer (host) and the M6e 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;...
Serial Communication Protocol Reader-to-Host Communication The 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. Header Data Length Command Status Word Data CRC-16 Checksum CRC HI...
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. Communication Protocol...
Functionality of the Mercury6e The following section provides detailed descriptions of the M6e features and functionality that are supported through the use of the MercuryAPI. Functionality of the Mercury6e...
Regulatory Support Regulatory Support Supported Regions The M6e 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. Supported Regions Region Regulatory Support North America (NA) FCC 47 CFG Ch.
Protocol Support Protocol Support The M6e has the ability to support many different tag protocols. Using the MercuryAPI ReadPlan classes the M6e 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-6B...
Protocol Support Protocol Specific Functionality See the MercuryAPI Programmers Guide and language specific reference guides for details on supported Gen2 command functionality. I-PX Protocol Configuration Options The M6e supports multiple I-PX profiles including the ability to specify the Return Link Frequency, encoding and modulation scheme.
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 16 logical antenna ports. Note The Logical Antenna values are static labels indicating the available control line states.
Page 40
Antenna Ports GPIO 1 & 2 Used for Antenna Switching GPIO GPIO Logical Antenna Active M6e Output 1 Output 2 Setting Physical Port State State High High High High High High High High High High High High High High High High If 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...
Antenna Ports GPIO Logical Antenna Active M6e Output 1 Setting Physical Port State High High High High Note The “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.
Page 42
Antenna Ports reader/antenna/settlingTimeList, respectively. The order the antennas settings are defined does not affect search order. Note Settling 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.
Tag Handling Tag Handling When the M6e performs inventory operations (MercuryAPI Read commands) data is stored in a until retrieved by the client application, or streamed directly to the Tag Buffer client if operating in Streaming mode [Not Yet Implemented]. Tag Buffer The M6e uses a dynamic buffer that depends on EPC length and quantity of data read.
Tag Read Meta Data Tag Read Meta Data In addition to the tag EPC ID resulting from M6e 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 Data Meta Data Field Description...
Power Management Power Management The M6e 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 usage and impact performance in different ways. The available power management modes are: - set in /reader/powerMode - Controls the power savings when the M6e Power Modes...
Power Management DRM Compliant Mode This mode maximizes performance in dense reader environments, minimizing interference when used with other M6e 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.
Performance Characteristics Performance Characteristics Event Response Times The following table provides some metrics on how long common M6e 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.
Save and Restore Configuration Save and Restore Configuration The M6e supports saving module and protocol configuration parameters to the module flash to provide configuration persistence across boots. See the MercuryAPI Programmers Guide and sample applications for details on saving and restoring reader configuration.
FAULT_UNIMPLEMENTED_OPCODE – 102h Cause Some 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. Solution Check the documentation for the opCode the host sent to the reader and make sure it is supported.
Common Error Messages Solution Check 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. FAULT_MSG_INVALID_FREQ_RECEIVED (104h) Cause A message was received by the reader to set the frequency outside the supported range...
Common Error Messages Solution Check the HW specifications for the supported powers and insure that level is not exceeded. The M6e supports powers between 5 and 30 dBm. FAULT_UNIMPLEMENTED_FEATURE - (109h) Cause Attempting to invoke a command not supported on this firmware or hardware. Solution Check the command being invoked against the documentation.
Bootloader Faults Bootloader Faults The following table lists the common faults discussed in this section. Fault Message Code FAULT_BL_INVALID_IMAGE_CRC 200h FAULT_BL_INVALID_APP_END_ADDR 201h FAULT_BL_INVALID_IMAGE_CRC – 200h Cause When 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.
Solution 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. FAULT_FLASH_BAD_WRITE_PASSWORD – 301h Cause A command was received to write some part of the flash but the password supplied with the command was not correct.
This is an internal error and it is caused by a software problem in module. Solution 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. FAULT_FLASH_ILLEGAL_SECTOR – 303h Cause An erase or write flash command was received with the sector value and password not matching.
Flash Faults Solution 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. FAULT_FLASH_VERIFY_FAILED – 306h Cause The module received a write flash command that was unsuccessful because data being written to flash contained an uneven number of bytes.
Protocol Faults FAULT_NO_TAGS_FOUND – (400h) Cause A 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...
Protocol Faults Solution This 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 FAULT_WRITE_PASSED_LOCK_FAILED – 403h Cause During a Write Tag Data for ISO18000-6B or UCODE, if the lock fails, this error is returned.
Protocol Faults FAULT_PROTOCOL_WRITE_FAILED – 406h Cause An attempt to modify the contents of a tag failed. There are many reasons for failure. Solution Check that the tag is good and try another operation on a few more tags. AULT_NOT_IMPLEMENTED_FOR_THIS_PROTOCOL – 407h Cause A command was received which is not supported by a protocol.
This 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. Solution Make a note of the operations you were performing and contact ThingMagic at http:// support.thingmagic.com FAULT_DATA_TOO_LARGE –...
Protocol Faults FAULT_PROTOCOL_BIT_DECODING_FAILED - 40Fh Cause Attempt to operate on a tag with an EPC length greater than the Maximum EPC length setting. Solution Check the EPC length being written. FAULT_PROTOCOL_INVALID_EPC – 410h Cause This error is used by the GEN2 module indicating an invalid EPC value has been specified for an operation.
Protocol Faults Solution Check 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 - 423h Cause This is an error returned by Gen2 tags. The specified memory location does not exist or the PC value is not supported by the Tag.
Protocol Faults FAULT_GEN2 PROTOCOL_NON_SPECIFIC_ERROR - 42Fh Cause This is an error returned by Gen2 tags. The tag does not support error specific codes. Solution Check the data that is being written and where its being written to in the command resulting in this error.
Analog Hardware Abstraction Layer Faults Analog Hardware Abstraction Layer Faults FAULT_AHAL_INVALID_FREQ – 500h Cause A command was received to set a frequency outside the specified range. Solution Check the values you are trying to set and be sure that they fall within the range of the set region of operation.
Analog Hardware Abstraction Layer Faults Solution Connect a detectable antenna (antenna must have some DC resistance). FAULT_TEMPERATURE_EXCEED_LIMITS – 504h Cause The module has exceeded the maximum or minimum operating temperature and will not allow an RF operation until it is back in range. Solution Take steps to resolve thermal issues with module: Reduce duty cycle...
Page 67
Analog Hardware Abstraction Layer Faults Solution Use the correct antenna setting or change the reader configuration. Appendix A: Error Messages...
A 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. Solution Send a testcase reproducing the behavior to support@thingmagic.com. FAULT_TAG_ID_BUFFER_FULL – 601h Cause The tag id buffer is full.
Tag ID Buffer Faults Solution Send a testcase reproducing the behavior to support@thingmagic.com. FAULT_TAG_ID_BUFFER_NUM_TAG_TOO_LARGE – 603h Cause The module received a request to retrieve more tags than is supported by the current version of the software. Solution Send a testcase reproducing the behavior to support@thingmagic.com.
System Errors FAULT_SYSTEM_UNKNOWN_ERROR – 7F00h Cause The error is internal. Solution Send a testcase reproducing the behavior to support@thingmagic.com. FAULT_TM_ASSERT_FAILED – 7F01h Cause An unexpected Internal Error has occurred. Solution The 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 Devkit USB Interfaces USB/RS232 The USB interface (connector labeled USB/ RS232) closest to the power plug is to the RS232 interface of the M6e through an FTDI USB to serial converter. The drivers for it are available at http://www.ftdichip.com/Drivers/VCP.htm Please follow the instructions in the installation guide appropriate for your operating...
Page 72
Devkit USB Interfaces Mercury6eUltra” should now be shown under the Model list. Select it and click Next then Finished. Note The M6e driver file has not been Microsoft certified so compatibility warnings will be displayed. These can be ignored and clicked through. A COM port should now be assigned to the M6e.
Demo Application Demo Application A demo application which supports multi-protocol reading and writing is provided in the MercuryAPI SDK package. The source code for this example is included in the MercuryAPI SDK package under /cs/samples/M6e-Read-Write-Demo-Tool. See the MercuryAPI Programming Guide for details on using the MercuryAPI. Demo Tool Notes The region is only changed upon initialization.
Page 74
Demo Application Appendix B: Getting Started - Devkit...
Need help?
Do you have a question about the Mercury6e M6e-30dBm and is the answer not in the manual?
Questions and answers